El servicio web ASP.NET+ permite compartir software
Autor:Eve Cole
Fecha de actualización:2009-06-30 15:39:48
Resumen Este artículo propone un nuevo método de intercambio de software a través del intercambio de funciones de software. La ventaja de este método es que realiza el intercambio de funciones de software en forma de invocación remota de servicios web sin copiar el software al cliente y también reduce el costo. Alguna redundancia de recursos en la red también favorece el intercambio de servicios web existentes y la integración de nuevos sistemas. Además, este artículo analiza la eficacia de este nuevo método a través de un ejemplo del módulo de verificación de identidad del estudiante.
introducción
El intercambio de software tradicional consiste en copiar el software del servidor de red al cliente para realizar el intercambio de software. La desventaja de este método es que cada cliente que necesita utilizar el software debe copiarlo primero, lo que genera redundancia de espacio en la red. da como resultado una gran cantidad de datos aislados y lógica empresarial duplicada.
Los servicios web proporcionan una solución viable para lograr la interoperabilidad de datos y sistemas al permitir el intercambio de datos y la invocación remota de la lógica de la aplicación utilizando mensajes XML, permitiendo que los datos pasen a través de firewalls y moviendo datos entre sistemas heterogéneos.
Este artículo propone un nuevo método de intercambio de software a través del intercambio de funciones de software para abordar los problemas tradicionales de intercambio de software. La ventaja de este método es que el intercambio de funciones de software se logra mediante la invocación remota de servicios web sin copiar el software al cliente. También reduce cierta redundancia de recursos en la red y también favorece el intercambio de servicios web existentes y la integración de nuevos sistemas. Además, este artículo analiza la eficacia de este nuevo método a través de un ejemplo del módulo de verificación de identidad del estudiante.
El significado de compartir software
Con la popularización y el desarrollo de las aplicaciones informáticas, se ha desarrollado y aplicado software informático práctico en diversas industrias y en empresas tan pequeñas como una empresa o un departamento. Este software ha mejorado enormemente la eficiencia del trabajo y el nivel de gestión moderno de la empresa, y se ha convertido en el núcleo de la operación y gestión comercial de la empresa. Pero la adopción generalizada de software personalizado en casi todos los departamentos de la mayoría de las empresas ha dado lugar a una gran cantidad de fragmentos de lógica empresarial útiles, pero aislados y repetitivos. Si se puede evitar la duplicación de diseño durante el diseño y el desarrollo, y se utiliza el uso compartido de funciones de software para lograr las mismas funciones de cada módulo, se ahorrará en gran medida los costos de desarrollo de software y se proporcionará una buena base arquitectónica para futuras actualizaciones e integración del sistema. Además, la lógica empresarial existente se puede compartir con otras aplicaciones mediante una pequeña cantidad de mejoras, lo que reduce los costos de desarrollo.
Debido a que los entornos en los que se desarrolla cada aplicación son diversos y la tecnología evoluciona constantemente, compartir aplicaciones existentes para crear un conjunto de funciones ha sido difícil en el pasado. Afortunadamente, la aparición de la tecnología de servicios web ha hecho posible el intercambio de software. Los servicios web de funciones de software proporcionan una lógica empresarial que se puede compartir en Internet y, en última instancia, forman un sistema abierto basado en varios servicios web. A continuación, analizaremos cómo utilizar la tecnología de servicios web para compartir software.
Compartir software basado en tecnología de Servicios Web
1. Introducción a la tecnología de Servicios Web
Los servicios web pueden considerarse como API implementadas en Internet, que las aplicaciones e incluso otros servicios web pueden integrar y llamar fácilmente para formar nuevos servicios de aplicaciones. Tiene encapsulación completa, acoplamiento flexible y altas capacidades de integración. No hay duda de que la tecnología de servicios web se convertirá en la tecnología principal de la próxima generación de web, que es la encarnación del "software como servicio".
La arquitectura de los Servicios Web es la siguiente y consta de un solicitante de servicios, un agente de servicios y un proveedor de servicios:
El proveedor de servicios web es el propietario del servicio web. Se registra con el agente de servicios para configurar y publicar el servicio y espera pacientemente para proporcionar sus propias funciones a otros servicios y usuarios. El solicitante del servicio web es el usuario de la función web; , que utiliza la operación de búsqueda para recuperar la descripción del servicio del intermediario de servicios, luego se vincula al proveedor de servicios e invoca o interactúa con el servicio web.
Un proveedor de servicios web es equivalente a un intermediario, que conecta a un solicitante de servicios web con un proveedor de servicios web apropiado; normalmente UDDI proporciona un mecanismo para encontrar dinámicamente servicios web para los solicitantes de servicios.
2. Implementación de software compartido basado en Servicios Web
En el proceso de desarrollo de software, las personas a menudo dividen el software en diferentes módulos según las funciones para facilitar la reorganización, reutilización, modificación y actualización de las funciones del módulo. Para realizar el intercambio de software a través de la tecnología de servicios web, también es necesario dividir primero el sistema integrado en módulos según las funciones y luego crear servicios web para implementar estos módulos funcionales para que los servicios web sean accesibles; también es necesario publicarlos; descripciones de servicios (implementar servicios web) para que otros módulos puedan ser encontrados y llamados. De esta manera, las funciones de software implementadas como servicios web pueden ser compartidas por aplicaciones e incluso por otros servicios web.
Cuando los solicitantes de servicios, como aplicaciones u otros servicios web, necesitan llamar a servicios web, primero recuperan la descripción del servicio o consultan el tipo de servicio requerido en el centro de registro de servicios. Cuando se encuentra el servicio requerido, la descripción del servicio se puede utilizar para vincularse con el proveedor del servicio y llamar al servicio correspondiente.
El producto estrella recientemente lanzado por Microsoft, Visual Studio.NET, es conocido como la herramienta preferida para desarrollar servicios web. El uso de Visual Studio.NET puede crear y llamar servicios web fácilmente. A continuación, se dará un ejemplo específico de uso compartido de software basado en tecnología de servicios web.
3. Ejemplos de aplicaciones de uso compartido de software: implementación compartida del módulo de verificación de identidad de los estudiantes.
Actualmente, existen muchos sistemas de software en colegios y universidades, como sistemas de selección de cursos, sistemas de consulta de calificaciones, sistemas de cursos en línea, sistemas de bibliotecas, sistemas financieros para estudiantes, etc. Dado que cada sistema es independiente entre sí, cada sistema tiene un módulo de verificación de identidad de los estudiantes, lo que resulta en una duplicación funcional del diseño. Además, cada sistema es independiente entre sí y los estudiantes deben recordar contraseñas para diferentes sistemas;
En vista de la situación anterior y de la actual red de campus altamente desarrollada, podemos utilizar completamente los servicios web para compartir los módulos de verificación de identidad de los estudiantes. A continuación se presentará el proceso de creación y llamada del servicio web de autenticación de identidad del estudiante utilizando el lenguaje C# utilizando el entorno Visual Studio.NET.
1) Creación de servicios web
El módulo de autenticación de identidad del estudiante consta de 1 servicio web:
Usuario válido booleano público (ID de usuario de cadena, contraseña de cadena)
El servicio web ValidUser se utiliza para verificar la identidad del estudiante. Se ha creado una tabla de información básica del estudiante Student en la base de datos del servidor Sql StudentsInfo, en la que los campos UserID y Pwd almacenan el código de usuario y la contraseña del estudiante respectivamente.
A continuación se presentará en detalle el proceso de creación de servicios web:
a Ejecute el entorno de desarrollo Visual Studio.NET y cree un nuevo proyecto de tipo "Servicio web ASP.NET" WSStudentLogin.
b Implementación de código específico de servicios Web.
usando System.Data.SqlClient;
//Omitir código...
Servicio1 de clase pública: System.Web.Services.WebService
{
cadena ConStr="";
ConnStr="BASE DE DATOS=InformaciónEstudiantes;SERVIDOR=10.1.111.19;UID=sa;PWD=;";
//Omitir código...
[Método web]
Usuario válido booleano público (ID de usuario de cadena, contraseña de cadena)
{
Bandera booleana = falso;
cadena sqlStr="";
//Crear un objeto de conexión a la base de datos
SqlConnection tempConn=nueva SqlConnection(ConnStr);
sqlStr="seleccione * del estudiante donde ID='"+userID+"' y pwd='"+Pwd+"';";
//Crea un objeto de comando
SqlCommand tempComm=nuevo SqlCommand(sqlStr,tempConn);
tempConn.Open();
SqlDataReader tempReader=tempComm.ExecuteReader(CommandBehavior.CloseConnection);
si (tempReader.HasRows) bandera = verdadero;
tempReader.Close();
tempComm.Dispose();
bandera de retorno;
}
}
Cabe señalar que solo los métodos descritos con [WebMethod] son servicios web que se pueden llamar de forma remota. Por lo tanto, no se puede omitir [WebMethod] delante del método.
Para que un servicio web esté disponible para otros, debe implementarse en un servidor web accesible para los clientes que desea admitir. Para implementar el servicio web en un servidor que no sea el servidor de desarrollo, puede agregar un proyecto de instalación web o copiar los archivos necesarios en el servidor de destino. Debido a limitaciones de espacio, este artículo no analiza esto en profundidad. Se supone que el servicio web en este ejemplo se implementa en el servidor de desarrollo.
Después de crear e implementar el servicio web, podemos llamar al servicio web correspondiente en el cliente. A continuación se describe cómo localizar y hacer referencia a funciones de servicios web en el cliente.
2) Llamada de servicio web
El proceso de utilizar un servicio web es en realidad el proceso de vincular al usuario del servicio web al servicio web y llamar a sus métodos. Para simplificar el proceso de encuadernación. Visual Studio.NET proporciona métodos de clases de proxy de servicio. La clase de proxy de servicio genera una clase local basada en el documento de descripción del servicio web (XXX.WSDL). Durante el proceso de ejecución, el cliente utiliza la información de la clase de proxy para acceder al servicio web e implementar la invocación del método real. Visual Studio.NET nos proporciona una forma sencilla de lograr este proceso:
a Cree un programa cliente de acceso a servicios web.
Los programas cliente de acceso a servicios web pueden ser varios tipos de aplicaciones u otros servicios web. Aquí, creamos un nuevo proyecto WebApplication2 de tipo "Aplicación WEB ASP.NET".
b. Referencia del servicio.
Primero, haga clic en Agregar referencia web en el menú Proyecto. A continuación, debido a que el servicio web en este ejemplo está ubicado en la computadora local, hacemos clic en el enlace "Servicio web en la computadora local" en el panel del navegador. Luego, haga clic en el enlace Servicio1 de la lista proporcionada para recuperar información sobre el servicio web. Luego, haga clic en Agregar referencia para agregar una referencia web al servicio web de destino. Visual Studio.NET descargará la descripción del servicio y generará una clase de proxy que sirve como interfaz entre la aplicación y el servicio web.
c. Ejemplos de código específicos para llamar a servicios web en programas cliente.
Botón vacío privado1_Click (remitente del objeto, System.EventArgs e) { //Crear objeto de clase proxy localhost.Service1 ClientProxy=nuevo localhost.Service1(); intentar {//Acceder a servicios web a través de objetos de clase de código si (ClientProxy.ValidUser(TxtUserId.Text,txtPwd.Text)) Etiqueta1.Text="Aceptar"; demás Etiqueta1.Text="ERROR"; } captura (e) {tirar e;} finalmente {ClientProxy.Dispose();} } |
otro
La tecnología de servicios web proporciona una buena base técnica para la realización de intercambio de software e integración de sistemas basados en sistemas de información existentes. Sin embargo, es necesario hacer que el intercambio de software basado en la tecnología de servicios web sea realmente práctico. También necesitamos resolver los siguientes problemas: primero, la seguridad y confiabilidad, primero, la confiabilidad de la conexión de la transmisión de la red del servicio web y, segundo, la confiabilidad del contenido del servicio web, es decir, garantizar la integridad y confidencialidad de los datos. El segundo es el control de los derechos de uso del servicio. Los servicios web son la encarnación del "software como servicio". Quién tiene prohibido utilizar este servicio, quién puede utilizar este servicio, cómo cobrar por utilizar este servicio, etc. Todo debe resolverse en el uso real. Además, cuestiones como la capacidad de carga de los servicios web, la implementación y el descubrimiento de servicios web y el manejo fallido de las llamadas a servicios web por parte de los clientes también son cuestiones que deben resolverse.
resumen
Este artículo propone la realización del intercambio de software desde la perspectiva del intercambio de funciones del software, analiza el uso de la tecnología de servicios web para realizar el intercambio remoto de funciones del software y utiliza el módulo de verificación del cuerpo estudiantil para analizar la efectividad y las ventajas del intercambio de funciones del software. La investigación sobre el uso compartido de funciones de software es de gran importancia para la realización de la computación distribuida y requiere más investigación.