CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO … · 2014-02-13 · s.e.p. s.e.i.t. d.g.1.t centro...
Transcript of CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO … · 2014-02-13 · s.e.p. s.e.i.t. d.g.1.t centro...
-
S.E.P. S.E.I.T. D.G.1.T
CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOL~GICO
cenidet PLATAFORMA DE SOPORTE PARA LA INTEGRACIÓN DE SERVICIOS WEB
T E S I S PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS
EN CIENCIAS DE LA COMPUTACIÓN
P R E S E N T A MARIA GUADALUPE VILLANUEVA CARRASCO
Director de Tesis Dr. VíCTOR JESÚS SOSA SOSA
Co-Director de Tesis M.C. JUAN GABRIEL G6NZALEZ SERNA
CUERNAVACA, MORELOS DICIEMBRE 2003
CENTRO DE INFORMAClON DG'Tl SEP CENIDET 0 3 - 0 7 4 s
-
Jt Díus Pur camiizar sieMpre a M i fadu
Jt wis padres h i s y ~uaáafupe Pur su amur iimwiiciuflaf
Jt M í s herMams Sifvia, 8ereizice y Erasmu
Pur ser mi famiíia
Jt wisubríflu Xuis Eduatdu
Pur regafarm esa suiztisa que me iizspiraba cada día
JI tudus queffus que han cregu y cunfidu en mi
-
FORMULARIO C3 REVISIdN DE TESIS I
cenidet
Cuemavaca, Mor., a 2 de diciembre de 2003.
Dr. Gerard0 Reyes Salgado Presidente de la Academia de Ciencias Computacionales Presente
Nos es grato comunicarle. que confotme a los lineamientos para la obtención del grado de Maestro en Ciencias de este Centro, y después de haber sometido a revisión académica la tesis denominada: Plataforma de Soporte para la Integración de Servicios Web, realizada por ei(ia) C. Mana Guadalupe Villanueva Carrasco, y habiendo realizado las correcciones que le fueron indicadas, acordarnos no tener objeción para que se le conceda la autorización de impresión de la tesis.
Sin otro particular, quedamos de usted.
Atentamente
La comisión de revisión de tesis
CC. d - , . ~ k * n . M.C. Mano Guillén Rodriguez M.C. Josd Antoblio Zarate Marceleño
. . ~ --+J,J¿¿J. ~.~ ~~ .
.Dr. Vi r Jesús Sosa Sosa #Director de tesis
M.C. Juan G a b 2 GoEález Sema Codirector de tesis
C.C.P. Dr. Rodolfo A. Pazos Rangel, Jefe del Depto. de Ciencias Cornputacionales. Lic. Ohia Maquinay Díaz, Jefe del Depto. de Servicios Escolares. C. María Guadalupe Villanueva Carrasco, alumno del programa de maestría.
INTERIOR INTERNADO PALMIRA S/N. C O L . PALMIRA , A.P. 5-164. C P . 62490. C U E R N A V A C A , M O R . - M E X I C O TELS. (777) 312 23 14.318 77 41. FAX (777) 312 24 34 EMAIL pazos~sd-cenidet.com.mx
-
Agradecimientos Quiero expresar mi más sincero agradecimiento a todos aquellos que han creído
en mi y que de alguna manera hicieron posible que este trabajo se realizara.
AI Centro Nacional de Investigación y Desarrollo,Tecnológico por ser mi casa de estudio y por todo lo que en sus aulas y fuera de ellas aprendí.
A Cosnet y CEP por aportar los recursos económicos, contribuyendo enormemente a que este trabajo fuera posible.
A mi director, el Dr. Victor Jesús Sosa Sosa y mi codirector, el M.C. Gabriel González Serna por sus contribuciones siempre acertadas, y el apoyo que siempre me brindaron.
A mis profesores que supieron transmitirme su experiencia y conocimientos en las aulas, proporcionándome las bases necesarias para realizar este trabajo.
A mis revisores por el tiempo dedicado a analizar este trabajo y por sus acertadas observaciones, que hicieron posible mejorarlo.
A mi familia y a la Sra. Virginia por su apoyo incondicional.
A Anita, la Sra. Adelina, la Lic. Obvia, a Irma, a Gerard0 y a todo el personal que siempre fue tan amable.
A todos mis compañeros del área de distribuidos que compartieron conmigo no sólo un laboratorio sino también la alegría y el reto de trabajar en equipo.
A Raúl por creer en mi y enseñarme a disfrutar cada momento como si fuera el Último de mi vida.
A todos mis compañeros de generación, Alo, Leo, Juan José, Armando, Nubia, Roberto, Jesus, Emilio, Vianey, Edgardo, César, Maricela, Yanet, Rosario, Mario y Sele que al igual que yo vivieron esta gran aventura.
A mis amigos, ya que cada uno de ellos no sólo compartió conmigo una maestría. sino que me brindó su valiosa amistad.
A Sele. por todos los cafés que compartimos y por ser mi cómplice en las aventuras que emprendimos. A César, por que con él, amplié mi criterio y me hizo volver a reír. A Emilio, que aunque casi no hablaba, cuando lo hacía era contundente. A Alonso, por su siempre disposición. A Leo, por demostrarnos que podemos disfrutar los sabores al máximo. A Mari, por sus acertados consejos y sus asesorías. A Rosario, porque a pesar de todo, hicimos un buen equipo. A Erika, por apoyarme incondicionalmente.
A todos, muchas gracias.
-
TA'BLA DE CONTENIDO
Dedicatorias ............................................................................ Agradecimientos ....................................................................... Tabla de Contenido .................................................................... Lista de Figuras ........................................................................ Lista de Tablas ......................................................................... Resumen ..................................................................................
. .
1 . INTRODUCCION ................................................................... 1 . 1. Antecedentes .................................................................. 1.2. Planteamiento del Problema ............................................ 1.3. Objetivo de la Tesis ......................................................... 1.4. Organización de la Tesis ................................................
2 . MARCO TEóRiCO ................................................................. 2.1. Sistemas distribuidos ... ....... .................. 2.2. Arquitectura de los sistemas distribuidos .....................
2.2.1. Modelo Cliente-Servidor ............................................. 2.2.2. Servidores proxy y cachés ..........................................
2.4. Servicios Web ................................................................. 2.4.1, Arquitectura orientada a servicios ...............................
2.5. Tecnologías asociada a los servicios web . . 2.5.1. Lenguaje de marcado XML ............. 2.5.2. Lenguaje de Descripción de Servicios Web .... . . . . . . . . . . . . . .
2.3. Aplicaciones Middleware ....................... ................ . .
............... ..............
2.5.3. Protocolo SOAP ........................................................ 2.5.4. Repositorios de Documentos WSDL ............................
2.5.4.1. UDDI ................................ ................... . . . . . 2.5.4.2. ebXML ................................................................
... 111
iv V
viii X
xi
10
11
12 12
13 14 16 17 20
20
21 24 21
2 1
21
V
-
I
1 3 . ESTADO DEL ARTE .............................................................. 3 . 1 . Tecnologia Microsoft .NET ..............................................
3.1.1. .NET Framework ...................................................... 3.1.2. Lenguaje Común en Tiempo de Ejecución (CLR) . . . . . . . . . 3.1 . 3. Biblioteca de Clases ..................................................
3.2. Web Service Invocation Framework (WSIF) ....................... 3.3. Proyecto Axis .................................................................. 3.4. JWSDP (Java Web Service Developer Package) ................
3.4.1. Java API for XML Processing (JAXP) .......................... 3.4.2. Java API for XML-based RPC (JAX-RPC) .................... 3.4.3. Java API for XML Messaging (JAXM) .......................... 3.4.4. Java API for XML Registries (JAXR) .......................... 3.4.5. XML Stylesheet Language for Transformations (XSLT) .
4 . DISENO DE LA PLATAFORMA .............................................. . . 4.1 . Diseño Arquitectonico .............................................................................
4.2. Diseño Conceptual .................................................................................. 4.2.1 . Diagrama de Casos de Uso ........................................................... 4.2.2. Escenarios de Uso ................. ...................................... 4.2.3. Diagramas de Actividad ..................................... ..........................
4.2.3.1. Proceso de Registro de Servicios ............................. 4.2.3.2. Proceso de Invocación de un Servicio ......................................
4.2.4. Modelo General de la Plataforma ..................................................... 4.3. Módulos de la Plataforma ........................................................................
4.3.1 . Módulo Servidor de Peticiones ........................................... 4.3.2. Módulo Analizador de Documentos WSDL ......... ......................... 4.3.3. Módulo de Registro de Servicios Web .............................................. 4.3.4. Módulo de Página Amarilla de Servicios Web .................................. 4.3.5. Módulo de Búsqueda de Servicios Web ................... 4.3.6. Módulo de Invocación de Servicios Web .......................................... 4.3.7. Módulo de Integración de Servicios Web .........................................
29
30
30 31 32 33 35
36 37 38
39 39 40
41
42 43 43
45 49 50 50 52 52 52 53 53
53 53
54 54
vi
-
5 . I M P L E M E N T A C I ~ N .......................................................... 5.1. Metodología de desarrollo ........................... 5.2. Implementación de módulos .................
.................. ........................
5.2.1. Paquetes desarrollados ............................................. 5.2.2. Descripción de los Módulos ......................
5.2.2.1. Módulo Servidor de Peticiones ............................. 5.2.2.2. Módulo Analizador de Documentos WSDL ............. 5.2.2.3. Módulo de Registro de Servicios Web ...................
I
5.2.2.4. Módulo de Página Amarilla de Servicios Web ........ 5.2.2.5. Módulo de Búsqueda de Servicios Web ...... 5.2.2.6. Módulo de Invocación de Servicios Web ................ 5.2.2.7. Módulo de Integración de Servicios Web ...............
5.3.1. Java Server Page (JSP) ............................................. 5.3.2. Java JAXP .................................. ..........................
5.3. Tecnologías uti l izadas ...................................
6 . PRUEBAS ............................................................................ 6.1. Herramientas uti l izadas ...................................................
6.1 . 1. Servidor de Aplicaciones Apache Tomcat .................... 6.1.2. Servidor Web Internet Information Server (11s) ............. 6.1.3. .NET Framework .......................................................
6.2. Escenarios de Pruebas .................................................... 6.3. Plan de Pruebas .............................................................. 6.4. Evaluación Experimental ..................................................
7 . CONCLUSIONES .................................................................. 7.1. Conclusiones .................................................................. 7.2. Beneficios ....................................................................... 7.3. Resultados Obtenidos ...................................................... 7.4. Trabajos Futuros .............................................................
Referencias .............................................................................
. .
55
56
57 57 60 60 61
61 61
62 62 63 64 64
64
66
67 67 68 69 69 70 71
88
89
90 91 92 93
vii
-
LISTA DE FIGURAS
Fig. 1.1.
Fig. 1.2. Una in t ranet t ip ica
F ig . 1 . 3 .
Fig. 2 . 1 . Modelo Cl iente - Servidor
Fig. 2.2. Servidor proxy
Fig. 2 .3 .
Fig. 2 .4 .
Fig. 2.5
Fig. 2.6.
Fig. 3 . l .
Fig. 3.2.
F ig . 3.3.
Fig. 3 .4 .
~ i ~ , 4.1,
~ i ~ , 4.2.
Fig. 4 .3 .
~ i ~ , 4 .4 ,
Fig. 4.5.
F ig . 5 . ’ .
Fig. 5.2.
F ig . 5 .3 ,
Fig. 5 . 4 .
Fig. 5 . 5 .
Fig. 5 .6 .
~ i ~ , 5.7,
~ i ~ . 5.8.
Una porc ión t ip ica de Internet
Pet ic ión HTTP en u n mqdelo Cl iente I Servidor
Capas de sof tware y hardware en sistemas d is t r ibu idos
Arquitectura Orientada a Servicios
Estructura de u n documentos WSDL
Estructura de u n mensaje SOAP
Componentes de Microsof t .NET
Axis e jecutándose en un servidor de ap l i cac iones Tomcat
Serv ic io basado en JAX-RPC en t iempo de ejecución
Arqui tectura de la API JAXR
Arqui tectura de la p lataforma de soporte de in tegración de servicios web Diagrama de casos de uso de la p lataforma de soporte d e in tegración de servicios web Diagrama de act iv idad del proceso de regis t ro de un servicio
Diagrama de act iv idad del proceso de invocación de un serv ic io
Modelo pr incipal de la p lataforma
Clases del paquete servidor
Diagrama de c lases del paquete servidor
Clases del paquete intserweb
Diagrama de c lases del paquete intserweb
Clases del paquete wsd i
Diagrama de c lases del paquete wsdl
In teracción entre las di ferentes capas e n el módu lo de regis t ro de serv ic ios web Interacción entre las di ferentes capas en e l módulo de página amar i l la
... V l l l
3
4
5
12
13
14
17
23
25
31
36
38
40
43
44
50
51
52
57
58
58
59
59
60
61
62
-
Fig. 5 .9 .
Fig. 5.10.
Fig. 5 .11
Fig. 6.1.
F ig. 6.2.
Fig. 6.3.
Fig. 6.4.
F ig. 6.5.
Fig. 6.6.
Fig. 6 .7 .
Fig. 6.8.
F ig. 6 .9 .
F ig. 6.10.
Fig. 6.11.
Fig. 6.12.
Fig. 6 .13 .
Fig. 6.14.
Fig. 6 . 1 5 .
F ig. 6.16.
Fig. 6 .17.
F ig. 6.18.
Fig. 6 .19.
Fig. 6.20.
Fig. 6.21.
F ig. 6 .22.
I Interacción entre las di ferentes capas en e l módulo de búsqueda de servic ios we6 Interacción entre ¡as di ferentes capas en e l móduio de invocación de servic ios web Interacción entre las di ferentes capas en e l módulo de integración de servic ios web.
Estructura de director io de l servidor Apache Tomcat
Escenario de prueba 1
Escenar io de prueba 2
Inic ial ización del Servidor de pet ic iones
Conf iguración del Navegador
Sol ic i tud de servic ios disponibles dentro de la ln t ranet
Pagina de reg is t ro de servic ios
Página de conf i rmación de registro de un servic io en una nueva categor ía Página de conf i rmación de registro de un servic io en una categoría existente Página de aviso de que un servic io que se intenta registrar ya existe
Página para la el iminación del registro de un servic io
Página para ¡a actual ización de una categor ia
Página para la el iminación de una categoría
Página de búsqueda de servic ios
Página de resul tados de una búsqueda de Servicios página de resul tados de una búsqueda de Servicios sin coincidencias Página amari l la de servic ios registrados
Selección de un servic io o categoría a invocar
se lecc ión de un método U operación disponible de l servic io
62
63
63
68
69
70
71
71
72
73
74
74
75
76
77
79
80
81
82
83
84
84
Introducción de los parámetros requeridos para la ejecución de 84 una operación Resul tados de un servic io de una categoría con un solo 85 servic io Resul tados de la integración de los servic ios de una categor ia 87
ix
-
LISTA DE TABLAS
Tabla 2.1.
Tabla 2.2.
Tabla 2.3.
Tabla 6 .1 . Plan de pruebas
Tecnologías ut i l izadas en los middleware Protocolos y tecnologías ut i l izadas en serv ic ios web
Mensajes SOAP de sol ic i tud y respuesta de un serv ic io web
15
19
26 70
X
-
RESUMEN
El crecimiento acelerado de la información y aplicaciones disponibles en la Web; así como el uso de la Internet ha permitido a un gran número de usuarios tener acceso a una vasta cantidad de información y aplicaciones. Sin embargo, el volumen de información y servicios es tan amplio que resulta dificil explotarlos de manera eficiente; además de que muchas de las aplicaciones que se han desarrollado no fueron diseñadas originalmente para el Web.
Este trabajo describe una plataforma que permite integrar aplicaciones implementadas en plataformas heterogéneas pero que pueden ser accedidas via Internet. Esta plataforma proporciona a los usuarios que acceden a Internet via un proxy la posibilidad de acceder a éstas aplicaciones de manera transparente e integrar resultados procedentes de aplicaciones comunes.
La plataforma ofrece la posibilidad a los proveedores de servicios o desarrolladores de publicar sus aplicaciones; así como a los consumidores o clientes de localizar y utilizar estas aplicaciones, sin considerar la plataforma bajo la cual éstas fueron desarrolladas.
También se describen brevemente las tecnologias que han surgido como propuestas para crear estándares en el desarrollo de aplicaciones distribuidas y para facilitar la integración de las mismas. Una de éstas propuestas, resultante de la necesidad de crear aplicaciones distribuidas que crucen las fronteras entre las plataformas en que las aplicaciones se desarrollan son los servicios web, es por ello que se han considerado dentro de esta plataforma como una parte importante en la integración de aplicaciones, sin dejar de tomar en cuenta a aquellas aplicaciones que no se basan en la tecnología reciente de servicios web, pero que conforman la gran parte de aplicaciones disponibles que requieren ser publicadas
dentro de un directorio de servicios.
xi
-
..-L . . .. . .
I N T R O D U C C I ~ N CAPiTULO 1
CAPÍTULO 1 !
En este capitulo nos situaremos en el contexto de este trabajo
de tesis, revisando los antecedentes, la problemática, el objetivo y los alcances de la tesis, así como la organización del documento.
1
-
I N T R O D U C C I ~ N CAPiTULO 1
1.1. ANTECEDENTES
Debido a la evolución que han tenido el uso de las redes, se ha
dado la posibilidad de desarrollar sistemas cada vez más complejos
como lo son los sistemas distribuidos.
Un sistema distribuido es aquel en el que los componentes (tanto de
hardware como de software) están localizados en computadores
conectados en red que se comunican y coordinan únicamente
mediante el paso de mensajes[ l ] .
Un ejemplo muy claro de un sistema distribuido es la Internet, la cual
es una red computacional que conecta a millones de computadoras
de diferentes países. Sin embargo, no existe una autoridad central
que controle la Internet y por otro lado existen varias organizaciones
que administran diferentes partes de la Internet. La Internet fue
creada por la Agencia de Proyectos de Investigación Avanzada (ARPA, Advanced Research Projects Agency) del gobierno de los
Estados Unidos en los 60's. La Internet permite a los usuarios, donde
quiera que ellos se localicen, hacer uso de servicios tales como la
WWW (World Wide Web, mejor conocida como la Web), e l correo
electrónico y la transferencia de archivos. La figura 1.1. nos muestra un ejemplo de una porción de Internet.
La figura nos muestra una colección de intranets (subredes operadas por compañías y otras organizaciones). Los proveedores de servicios
de Internet (ISPs, Internet Service Providers) son compañías que
proporcionan enlaces de modem u otros tipos de conexiones a usuarios individuales y pequeñas organizaciones, permitiéndoles
acceder a los servicios disponibles en cualquier parte de la Internet
-
INTRODUCCIÓN I C A P ~ T U L O 1
así como también de proporcionar servicios locales tales como correo
electrónico y hospedaje web (web hosting). I
1 RJ6 Computadora I Servidor I
Enlace de red
Fig 1 .l. Una porción típica de net
Como se puede observar en la figura anterior una Intranet puede
formar parte de la Internet y ser administrada de forma separada, ya
que tiene límites que pueden ser configurados para reforzar las políticas de seguridad local. La configuración de una intranet en
particular es responsabil idad de la organización que la administra.
La figura 1.2. nos muestra una intranet típica, la cual puede estar compuesta de varias redes locales enlazadas mediante conexiones
backbone. Un backbone es un enlace de red con una capacidad de
3
-
C A P ~ T U L O I INTRODUCCIÓN
transmisión alta, que puede emplear conexiones satelitales, cables de
fibra óptica y otros circuitos de ancho de banda altos.
Otros Servidores
Fig. 1.2. Una intranet tipica
Por otro lado tenemos la World Wide Web, (WWW o "Web") se refiere
a esas computadoras conectadas a la Internet que pueden comunicarse entre s i util izando un protocolo llamado HTTP'[2]. Todos
los navegadores utilizan el HTTP para solicitar y recibir páginas web de otras cornputadoras'
La Web es un sistema desarrollado para publicar y acceder recursos y servicios a traves de la Internet. Comúnmente el software disponible en los navegadores web tales como Netscape e Internet Explorer permiten a los usuarios recuperar y visualizar documentos
de muchos tipos, escuchar audio, visualizar video e interactuar con
un ilimitado conjunto de servicios.
Hypertext Transfer Protocol, Protocolo de Transferencia de hiperiexto. En muchas ocasiones, la Web es incorrectamente confundido con la Internet.
I
2
4
-
.APíTULO 1 I N T R O D U C C I ~ N
.a Web comenzó a desarrollarse en el Centro Europeo de
nvestigación Nuclear (CERN, European Centre for Nuclear
lesearch), en Suiza en 1989 como un medio para intercambiar
locumentos entre una comunidad de físicos, conectados mediante la
nternet. Una característica clave de la Web es que proporciona una
istructura hipertexto entre los documentos que están almacenados.
isto signif ica que los documentos contienen enlaces o referencias a itros documentos y recursos que también se encuentran
ilmacenados en la Web, por lo que permite pasar de uno a otro en el
irden que se desee.
.a figura 1.3. nos muestra los elementos principales que componen
ina petición con el protocolo HTTP a un servidor web en una modelo
Zliente / Servidor
Solicitud HTTP Solicitud HTTP
Página HTML Página HTML
avegadores (Clientes) Estilo hipeneno
SeNldOr Web
Fig. 1.3. Petición HTTP en un modelo Cliente / Servidor
:om0 podemos observar en la figura existen tres elementos ir incipales dentro una petición a un servidor web, los cuales son: a) :I servidor web, e l cual es un programa ejecutándose en una :omputadora conectada a una red que acepta solicitudes HTTP desde
)tras computadoras l lamadas clientes; procesa la solicitud y devuelve a respuesta de dicha solicitud en forma de una página HTML a quien a realizó; b) El Cliente es aquel que envía una solicitud mediante el Irotocolo HTTP, normalmente a través de un navegador, para que el
-
5
-
C A P ~ T U L O I INTRODUCCIÓN
servidor realice una operación y espera una respuesta del mismo; y
c) La red que es el medio físico por donde viajan los mensajes de solicitud y respuesta enviados del cliente al servidor y viceversa.
Dentro de la Web han aparecido tecnologías para el desarrollo de
aplicaciones tanto del lado del cliente como del lado del servidor. Las
tecnologías han permitido crear aplicaciones que pueden ser
accedidas por un navegador desde cualquier parte donde se tenga
acceso a la Internet. Las tecnologías han evolucionado de manera
significante logrando así no sólo proporcionar páginas estáticas
almacenadas en los servidores web sino también la generación de
páginas dinámicas y una interacción mayor entre el cl iente y el
servidor.
Por otro lado, e l uso de la programación orientada a objetos también
ha contribuido enormemente a la evolución de las aplicaciones
disponibles en la Web; puesto que sus conceptos han sido uti l izados para crear componentes de software reutilizables cada vez más
confiables. Algunas de éstas son tecnologías como RM1[3],
CORBA[4], DCOM y servicios web.
1.2. PLANTEAMIENTO DEL PROBLEMA
El crecimiento acelerado de la información y aplicaciones disponibles en la Web; as¡ como el uso de la Internet, ha permitido a un gran número de usuarios tener acceso a una vasta cantidad de información y aplicaciones. Sin embargo, el volumen de información y
aplicaciones es tan amplio que resulta difícil localizarlos y explotarlos de manera eficiente.
6
-
CAPiTULO 1 INTRODUCCIÓN
Por otra parte el desarrollo de aplicaciones ha pasado por una serie
de etapas evolutivas que han generado una cantidad de software bajo
diferentes plataformas y diferentes lenguajes de programación, que
ahora resulta difícil que éstas interactúen de forma fácil y
transparente.
Debido a la heterogeneidad de los elementos que forman parte del desarrollo de las aplicaciones distribuidas, heterogeneidad en redes,
hardware, sistemas operativos, lenguajes de programación e implementaciones; surgen una serie de consideraciones para que
éstas puedan interactuar sin sufrir cambios significativos; puesto que
la comunicación entre aplicaciones heterogéneas puede resultar un
proceso complejo sin los estándares que regularicen y facil i ten este
intercambio de información.
La necesidad tanto de los proveedores de servicios de hacer
disponibles sus aplicaciones y que éstas puedan ser uti l izadas de
una forma fácil; y la de los consumidores de localizar y util izar las aplicaciones sin tener que preocuparse por la plataforma en que
fueron desarrollados ha dado una razón suficiente para la realización
de este trabajo de tesis.
1.3. OBJETIVO DE LA TESIS
Para resolver el problema planteado se propone implementar
una plataforma que permita hacer más disponibles a los usuarios
finales muchos servicios que se ofrecen en la Internet. mediante una infraestructura que permita localizar e invocar los servicios existentes.
-
C A P ~ T U L O I I N T R O D U C C I ~ N
Para ello se propone desarrollar un directorio de servicios que nos
permita registrar los servicios y un módulo que integre los resultados obtenidos de servicios con características similares.
Además que se propone implementar un intermediario que facilite la
localización tanto del directorio de servicios como de un servicio en
particular a los usuarios que tengan acceso a la Internet a través de
este intermediario.
1.4. ORGANIZACIdN DE LA TESIS
La tesis se organiza en los siguiente capítulos:
Capítulo 1. Se presenta una introducción para entrar en contexto en
el cual se desarrolló esta tesis, definiendo además el planteamiento
del problema, el objetivo y los alcances de la misma.
Capítulo 2. Se hace un recorrido por los diferentes conceptos y tecnologías involucradas en el proceso de desarrollo de aplicaciones
distribuidas que fueron analizadas para el desarrollo de la plataforma.
Capitulo 3. Se describen brevemente los trabajos realizados sobre
servicios web en cuanto a la integración de aplicaciones
heterogéneas.
Capítulo 4 . Se describe el proceso de diseño de la plataforma,
definición de los elementos que la conforman; así como los diferentes escenarios en los cuales la plataforma es utilizada.
8
-
CAPíTULO 1 I N T R O D U C C I ~ N
Capítulo 5. Se presenta la descripción del proceso de codif icación de
la plataforma, incluyendo las aplicaciones y APls uti l izadas para el desarrollo de la misma.
Capítulo 6. Se muestran los resultados obtenidos en las pruebas
realizadas con la plataforma, en los cuales podemos observar que se cumplió el objetivo de este trabajo de tesis.
Capítulo 7 . Se presentan las conclusiones, así como los beneficios obtenidos con la plataforma desarrollada y los trabajos futuros que podrían aportar continuidad a este trabajo de investigación
9
-
MARCO TEÓRICO CAPITULO z
CAPÍTULO 2 MARCO TEÓRICO
En este capítulo se describen los diferentes conceptos y tecnologías involucradas en el proceso de desarrollo de aplicaciones
distribuidas que fueron analizadas para el desarrollo de la plataforma.
10
-
CAPITULO 2 MARCO TEÓRICO
2.1. SISTEMAS DISTRIBUIDOS
Un sistema distribuido es aquel en el que los componentes (tanto de hardware como de software) están localizados en
computadores conectados en red que se comunican y coordinan únicamente mediante el paso de mensajes[5].
Compartir recursos es la principal motivación para desarrollar
sistemas distribuidos. Los recursos son administrados por servidores
y accedidos por cl ientes. La Web es un ejemplo claro de un sistema que comparte una gran cantidad de recursos y la Internet de un sistema distribuido.
Los retos a los que se enfrentan los sistemas distribuidos son la
heterogeneidad de sus componentes, la extensibil idad que permite agregar o eliminar componentes sin afectar el sistema, la seguridad,
la escalabilidad que permite trabajar bien aún cuando el número de
usuarios se incremente, e l tratamiento de fallas, la concurrencia y la transparencia [6].
Dentro de un sistema distribuido podemos compartir todos los
recursos que se encuentren disponibles, tanto de hardware como de software, tales como impresoras, archivos, páginas web,
aplicaciones. El recurso principal a compartir en este trabajo son
todos aquellas aplicaciones que sean de uti l idad dentro de una organización que cuenta con una intranet o red donde los usuarios tienen acceso a la Internet a través de un intermediario.
0 5 - 0 7 4 3 11
-
C A P ~ T U L O 2 MARCO TEÓRICO
2.2. ARQUITECTURAS DE LOS SISTEMAS DISTRIBUIDOS
La división de responsabilidades entre los componentes de un
sistema distribuido(aplicaciones, servidores y otros procesos) y la localización de los componentes en las diferentes computadoras en la
red son quizás los aspectos más evidentes del diseño de sistemas distribuidos.
En un sistema distribuido, los procesos con responsabil idades bien definidas interactúan unos con otros para efectuar una actividad. A continuación describiremos dos de las arquitecturas más conocidas de los sistemas distribuidos dependiendo de la localización de los
procesos y las responsabilidades de cada uno de ellos.
2.2.1. Modelo Cliente-Servidor
Esta es quizás la arquitectura más conocida. La figura 2.1. nos muestra una estructura simple en la cual los procesos de los clientes interactúan con los procesos de un servidor para acceder a los recursos compartidos que éstos administran. Para el lo e l cl iente
envía una solicitud a l servidor para que realice una actividad y espera
la respuesta emitida por e l servidor una vez que la solicitud es
procesada.
Fig. 2.1. Modelo Cliente -Servidor
12
-
. . . . . . .. . .
CAPITULO 2 MARCO TEÓRICO
2.2.2. Servidores Proxy y Cachéc
Una caché es un almacén de los objetos de datos usados
recientemente. Cuando un .nuevo objeto es recibido por una
computadora, éste es agregado al. almacén caché, reemplazando
algunos objetos existentes si es necesario. Cuando un objeto es
requerido por un proceso cliente el servicio de caching primero verifica e l caché y si t iene una copia disponible la devuelve al cliente
que hizo la solicitud. En caso de que el objeto no se encuentre en la
caché, hace una solicitud al servidor para después devolver la
respuesta al cl iente y además almacena una copia en la caché. Las
cachés pueden ser localizadas en cada cliente o en un servidor proxy
que puede ser compartido por varios clientes. ir
Los servidores proxy proporcionan una ca:ché compartida de recursos
para las máquinas cliente que tienen acceso a la Internet a través de
este proxy. El propósito de los servidores proxy es incrementar la
disponibilidad y rendimiento de los serv i i ios reduciendo la carga en la red de área amplia y en los serviüores web. Los servidores proxy
pueden tener otros roles, como por ejemplo pueden ser usados para
acceder servidores web a través de un firkwall (muralla de fuego),
I
I
3
Fig. 2.2. Servidor proxy. 3 Un firewall es un mecanismo utilizado para proteger los datos y las computadoras de usuarios y programas externos o no autorizados.
13
I
I!
-
C A P ~ T U L O 2 MARCO TEÓRICO - * * 1 ,,. ~ I , . > ":.. . ::i
2.3. A P L I C AC I ON . . ES . M . I D . . . D L E WA R EXi . .. " , . * ' .t. e' .. , . . .I , .,
El término middleware se apliica. a, la capa .de .software que
oculta la heterogeneidad I . de las redes,, ,,. hardware, sistemas.operativos ~. .
y,lenguajes de programación que se encuentran , . debajo de esta capa,
como .se muestra en la figura 2.3. proporciona un nivel de abstracción
que resulta en un modelo de programación conveniente a los
p rog ram ad o res de a p I i cac i o n es [ 71.
,. . .
-- .
.. - : ,;B
Fig. 2.3. Capas de software y hardware en sistemas distribuidos { ..?
Un middleware proporciona bloques a e .. software establecidos. para la
construcción de componentes de software que puedan trabajar con
otros en un sistema distribuido sin tener que preocuparse por los
detalles' de la comunkación entre aplicaciones, es decir, proporciona
un nivel de abstracción en actividades tales como ,la invocación de
métodos remotos, la comunicación entre grupos de procesos,
notif icación de eventos, replicación de datos compartidos y la
transmisión de datos multimedia en tiempo real.
t !/ ,
. . ,, . J p 7 f . '4
i
I L I. .: . ' >* "L Common Object Request Broker ,Architecture (CORBA), Java Remote
! I .
Object Invocation (RMI),.. Distributed Common Object . . Model (DCOM)
de Microsoft son algunos ejemplos.de productos middleware. . I \ *
.. , . . .. ' ' , . J
Por ejemplo, CORBA ofrece una variedad de servicios, tales como:
servicio de nombres, seguridad, transacciones, almacenamiento
14
http://ejemplos.de
-
CAPiTULO 2 MARCO TEÓRICO
Las arquitecturas RPC, implementadals en tecnologías como DCOM y
CORBA, permitieron que los programas fueran divididos en diferentes
piezas ejecutándose en computadoras diferentes. Las técnicas
orientadas a objetos fueron particularmente adecuadas a este
ambiente distribuido, debido a que los objetos mantienen su propia
identidad y a que el código 'que maneja las comunicaciones entre
objetos podría ser encapsulado sobre su propio conjunto de clases,
tal que los programadores trabajarán en un ambiente distribuido sin
la necesidad de preocuparse de cómo'.trabaja esa comunicación.
Desafortunadamente, tanto CORBA l o m o DCOM comparten muchos
de los mismos problemas. DCOM e.si expresamente una arquitectura
exclusiva de Microsoft, y aunque CO'RBA pretende proporcionar una
plataforma interoperable, es compleja y semánticamente ambigua para proporcionar algún nivel de interoperabilidad, implicando una
gran carga de trabajo de integración manual.
/I
11 .
2.4. SERVICIOS WEB
Debido a los problemas existentes con las tecnologías CORBA y DCOM, los servicios web señalan un cambio de paradigma en el
cómputo distribuido. Los servicios web tienen el potencial para
cambiar la forma en que interactúan los sistemas distribuidos, lo cual afectará fundamentalmente la operación de la Internet.
Un servicio web es cualquier servicio que esté disponible en la Internet, usando un sistema de intercambio de mensajes
estandarizado XML y que no esté atado a ningún sistema operativo o lenguaje de programación[8].
16
-
CAPiTULO 2 MARCO TEÓRICO
Definiendo más formalmente un servicio web, es considerado como
una aplicación que pueden ser descrita, publicada, localizada e invocada sobre la Internet .O cualquierlotra red.
2.4.1. Arquitectura Orientada a Serviicios I: I
El nuevo concepto de serv:icios web ha originado una
arquitectura, llamada arquitectura orientada a servicios[9] (SOA,
Service Oriented Architecture). Esta arquitectura define los elementos
principalmente que intervienen en los servicios web.
~0 f Proveedor 't de Servicios Descripcibn
Registro de Solicitante Servicios del Servicio
Fig. 2.4. Arquitectura Orientada a Servicios (SOA)
Como podemos observar la arquitectura organiza los servicios web
dentro de tres elementos básicos, los cuales describiremos a
continuación:
II
El proveedor del servicio. Es quien proporciona el servicio, es decir, implementa el servicio y lo publica haciendolo disponible en la
Internet, para ello deberá proporcionar un documento de descripción
del servicio. I El solicitante del servicio. Es el consumidor que buscará el servicio y una vez localizado lo invocará ai t ravés de una conexión de red y
I
-
C A P ~ T U L O 2 MARCO TEÓRICO
enviando una solicitud XML, la cual será descrita en el siguiente capitulo.
I
El r eg i s t ro de serv ic ios . Este es un'idirectorio lógico centralizado de servicios. Los registros proporcionan un lugar central dónde los desarrolladores publican sus nuevos' servicios o encuentran algunos existentes.
Dentro de esta arquitectura también podemos observar que el
documento de descripción del servicio es una pieza clave, ya que a
través de él, el proveedor publica su servicio para que después sea
enviado al cliente, dándole de estaj forma la información necesaria
para invocar el servicio.
8 1
Dentro de la arquitectura de servicios, hay ciertas actividades que se
llevan a cabo tales como implementación, publicación, localización e
invocación del.servicio; por lo que se han desarrollado una serie de
tecnologías que se enfocan en éstas acciones. En los siguientes
apartados de este capítulo explicaremos algunas de estas
tecnologías.
Implementac ión. Hay dos enfoques para construir un servicio
web: construir uno partiendo desde el principio o proporcionar una envoltura o API para una aplicación,. o servicio existente para que se
exponga como un servicio web.
Pub l i cac ión . Consiste en hacer disponible e l servicio, para ello e l
proveedor deberá proporcionar e l ' documento de descripción del servicio que desea publicar.
18
-
CAPITULO 2 MARCO TEÓRICO
Local izac ión. Una vez que el servicio se ha publicado, cualquier
consumidor puede buscar y localizar en los diferentes repositorios el servicio que requiera y así obtener e l documento de descripción del
servicio, con la información necesaria para invocarlo.
Actividad Localización Publicación Invocación
Invocac ión . Puede llevarse a cabo directamente con la
información proporcionada en el documento de descripción del
servicio o a través de una aplicación cliente, la cual toma la
información contenida en este documento y crea un intermediario que
permita la invocación del servicio.
Protocolo /Tecnología UDDl
WSDL, UDDl XML-RPC, SOAP
Para llevar a cabo estas actividades los servicios web han hecho uso
de protocolos ya existentes, así como de otros nuevos, la tabla 2.2. nos muestra la pila de algunos protocolos y tecnologías uti l izadas por los servicios web.
Como se mencionó anteriormente los sistemas distribuidos cuentan
con arquitecturas donde una solicitud puede ser atendida por uno o
más servidores, de igual forma, una solicitud puede requerir de la invocación de más de un servicio, por lo que es indispensable definir
el mecanismo de comunicación entre aplicaciones.
Los servicios web en su afán de hacer uso de los estándares ya
definidos o tecnologías en camino a convertirse en estándares, han optado por util izar e l lenguaje XML para la definición de los mensajes intercambiados entre aplicaciones.
19
-
MARCO T E ~ R I C O CAPITULO 2
2.5. TECNOLOGíAS ASOCIADA A LOS SERVICIOS WEB
2.5.1. Lenguaje de Marcado XML
La revolución de la información en los Últimos años ha
ocasionado grandes cambios' en la forma en que los datos son
representados, almacenados e intercambiados.
Hasta ahora, hemos mencionado el lenguaje XML[10] como el
adoptado por los servicios web para definir los mensajes que serán intercambiados entre procesos dentro de un sistema distribuido, pero
no hemos definido explícitamente que es XML.
XML son las siglas con las que se reconoce al lenguaje de marcado
extensible (Extensible Markup Language). XML es un metalenguaje
que define la sintaxis util izada para definir otros lenguajes de
etiquetas estructurados. La idea básica es que con XML, es posible
codificar información en un documento de texto, que no sólo contiene
datos, sino también, contiene información que describe el significado
de los mismos en una forma estructurada y legible para los humanos.
XML está basado en un estándar anterior l lamado SGML (Standard
Generalized Markup Language, IS0 8879). SGML proporciona un modo consistente y preciso de aplicar etiquetas (marcas) para describir las partes que componen un documento, permitiendo además el intercambio de documentos entre diferentes plataformas.
Sin embargo, el problema que se atribuye a SGML es su excesiva
dificultad por lo que se derivó XML como un subconjunto simplificado,
eliminando las partes más engorrosas y menos útiles. AI igual que SGML, el XML es un metalenguaje: es un lenguaje para definir
20
-
C A P ~ T U L O 2 MARCO TEÓRICO
lenguajes. Los elementos que lo componen pueden dar información sobre lo que contienen, no necesariamente sobre su estructura física
o presentación, como ocurre en HTML.
Los servicios web están basados en el lenguaje XML, por lo que
toman las ventajas que XML ofrece.
2.5.2. Lenguaje de Desc r i pc ión d e Serv ic ios Web (WSDL)
En el afán de establecer estándares que permitan describir un
servicio web ha surgido el Lenguaje de Descripción de Servicio Web
(WSDL) [ I I ] propuesto por IBM y Microsoft a la W3C, que permite definir las características principales de un servicio web, las
funciones o métodos disponibles, los parámetros de entrada y de
salida, así como detalles de implementación que permitan que estos
métodos sean invocados desde cualquier otra aplicación a través de
un protocolo de comunicación.
El WSDL está basado en XML, util izando su gramática para
especificar las propiedades de un servicio web, tales como: qué hace,
dónde está localizado y cómo invocar lo[ l2] . Dentro del documento
existen tres secciones conceptuales:
1. La parte que nos describe abstractamente al servicio, definiendo las operaciones que proporciona el servicio, sin incluir detalles de implementación. Esta parte consta principalmente de tres elementos
o etiquetas:
. En
o compuestos
intercambiados
esta sección se definen los tipos de datos complejos
que serán uti l izados dentro de los mensajes
entre e l servidor y el cliente. Esta sección podría no
L1
"""I ISEP CENIDET --. - 7 n n n c I h i E n D h A A T i n N
-
MARCO TEÓRICO CAPiTULO 2
aparecer si sólo se requieren tipos de datos básicos ya definidos en
los esquemas del lenguaje XML.
+ . Un mensaje es un elemento de comunicación básico entre e l servicio y e l invocador del mismo, e l cual contiene una o mas
partes, donde cada parte representa un parámetro. Los mensajes
pueden ser de entrada o de salida, lo que indica que pueden contener
los datos necesarios para invocar un método u operación ofrecida por
el servicio así como la respuesta de éste. Cada parte es definida a
través de la etiqueta .
. Un portType representa un conjunto concreto de operaciones soportadas por el servicio web, donde cada operación
definida con la etiqueta , consta de un mensaje de entrada y salida específico, representando de esta forma una
operación solicitudIrespuesta; dándose el caso que pudiera
solamente contener ya sea un mensaje de entrada o uno de salida.
2. La parte que nos dice cómo invocar las operaciones definidas en la
sección anterior, describiendo los detalles de la implementación
técnica del servicio web. Esta sección consta únicamente de
elementos de enlace .
. Dentro de la sección anterior, Únicamente definimos de
manera abstracta las operaciones soportadas por el servicio web, el binding relaciona las operaciones definidas con un protocolo de
comunicación concreto, ( los más utilizados HTTPIGET. HTTPIPOST,
SOAP), relacionando cada portType con un protocolo específico. E s importante aclarar que si el servicio soporta más de un protocolo deberá definirse un binding por cada uno de ellos.
22
-
C A P ~ T U L O 2 MARCO TEÓRICO
3. La Última parte del documento nos indica dónde se localiza el
servicio y consta de los siguientes elementos:
. Cada elemento port relaciona cada uno de los portType
definido con el binding correspondiente, agregando además la
localización real (URI) de un servicio web. Cabe aclarar que pueden
existir más de un elemento port dentro de un servicio, donde cada
uno corresponde a un protocolo específico soportado por e l servicio.
así como los elementos que se requieran.
. Es el elemento donde se define el nombre del servicio,
Debido a que el documento WSDL cumple con la gramática definida en el lenguaje XML, existe un elemento raiz llamado definitions, el
cual contiene los elementos descritos anteriormente, además de una serie de atributos tales como el nombre, y los espacios de nombres
utilizados dentro del documento. La figura 2 .5 . nos muestra la
estructura de un documento WSDL
< definitions > < import I >
< , I types > < messages > < 1 messages > .I portType > < 1 portType 3- < binding > < I binding > < service > < 1 service
< I definitions > ~ ~
Fig. 2.5 Estructura de un documentos WSDL
23
-
CAPiTULO 2 MARCO TEÓRICO
El documento de descripción de servicios no sólo nos permite definir un servicio, sino que también, nos permite hacerlo disponible al
publicarlo en algún repositorio de servicios web, donde un cliente
pueda realizar búsquedas posteriormente. De esta forma, cuando un
cliente haga una búsqueda de servicios web basándose en algún
criterio, lo que obtendrá como respuesta será su documento de descripción, e l cual le permitirá hacer uso de él.
2.5.3. Protocolo SOAP
Uno de los protocolos nuevos que se han propuesto es el
SOAP[13]. SOAP nos permite intercambiar documentos XML entre
aplicaciones, a través de una red, uti l izando los protocolos
estándares como HTTP, SMTP y otros. A continuación se explica de
forma breve el protocolo SOAP para comprender más su papel dentro del desarrollo de aplicaciones uti l izando servicios web.
Los documentos XML intercambiados mediante SOAP contienen mensajes con la información necesaria para invocar y transportar los
resultados de una aplicación. SOAP proporciona un mecanismo
simple y consistente que permite a una aplicación enviar mensajes
XML a otra aplicación. E s un protocolo de alto nivel que sólo define la estructura del mensaje y unas pocas reglas para su procesamiento, es completamente independiente del protocolo que lo transporta, por lo que pueden ser transportados sobre HTTP, SMTP u otros. Actualmente el más utilizado es el HTTP[ l4 ] .
SOAP inicialmente propuesto por Microsoft y ahora promovido por la W3C ha alcanzado su nivel de aceptación general por diversas razones:
24
-
CAPiTULO 2 MARCO TEÓRICO
a) Es una especificación abierta, disponible para cualquier uso b) Es simple de escribir y legible para el ser humano
c) Es extensible, pues toma las ventajas que ofrece XML
SOAP es una forma estándar de serialización de la información
necesaria para invocar servicios localizados en sistemas remotos, para que la información pueda ser enviada sobre una red (o cable) a
un sistema remoto en un formato que el sistema remoto pueda
comprender sin tomar en cuenta en qué plataforma el servicio se
está ejecutando o en qué lenguaje está escr i to[ l5] .
SOAP proporciona tres capacidades claves:
Es un marco de trabajo de intercambio de mensajes, el cual consiste de un elemento Envelope (envoltura) que contiene un
elemento opcional Header (encabezado) y un elemento obligatorio
Body (cuerpo).
codificados, serializados y decodificados cuando son recibidos.
Es un mecanismo RPC (Remote Procedure Call, Llamada a
Procedimientos Remotos) que permite a los objetos l lamar métodos
de objetos remotos.
Es un formato de codificación que describe cómo los objetos son
Fig. 2.6. Estructura de un mensaje SOAP
25
-
CAPíTULO 2 MARCO TEÓRICO
Solicitud
POST1 miruta httpil.1 Host: 123.45.67.89 Content-Type: texüxml Content-length:300 SOAPMethodNarne: urn:misitio.wm:NurneroTelefono#ObtenerNurneroTelefono
Un mensaje SOAP contiene la información necesaria para invocar un
método remoto o transportar la respuesta del método a quien lo solicitó. En la f igura 2.6. se puede observar la estructura de un
mensaje SOAP. La envoltura del transporte es la parte que contiene
la información necesaria para que el mensaje pueda viajar sobre
algún protocolo específico, como HTTP; la envoltura del SOAP es un
elemento obligatorio del documento XML que representa el mensaje y
que contiene las declaraciones de los espacios de nombres así como
otros atributos; e l elemento del encabezado SOAP es opcional y
podría ser usado para autentificación, transacciones, información de
carga u otras capacidades que la especif icación SOAP no
proporciona; el cuerpo del mensaje SOAP es usado para contener la
carga del mensaje SOAP, es decir la información para l lamar un
método o la respuesta del mismo.
Respuesta
Hrrmi.0 ZOO ok Content-Type: texüxml Content-Length:374
-
CAPiTULO 2 MARCO TEÓRICO
2.5.4. Repositorios de Documentos WSDL
Otro punto muy importante dentro de los servicios web, son los
repositorios o directorios de servicios que nos permiten registrar
servicios a través de un documento XML, por lo que se conocen
también como repositorios o registros XML. a continuación se
describen brevemente dos de los más uti l izados.
2.5.4.1. UDDl
(Universal, Description, Discovery, and Integration) [I 61 proporciona un mecanismo para describir, publicar, y localizar
servicios web que provee alguna empresa o compañia. el cual nos permite registrar servicios como entidades de negocios que pueden
ser categorizadas para después ser localizadas. En pocas palabras, e l UDDl es una especificación para un registro distribuido de
información sobre servicios web. UDDl permite a los negocios
localizar socios de negocios y conectarse dinámicamente a sus
servicios web, as i como publicar sus servicios.
2.5.4.2. ebXML (Electronic Business using extensible Markup Language, ebXML[17])
es un conjunto de especificaciones que permite a los negocios de
cualquier tamaño y localizados en cualquier lugar realizar
transacciones sobre la Internet. Proporciona un método estándar para intercambiar mensajes, definir y registrar procesos de negocios, basándose en documentos XML.
Junto con los repositorios web se ha desarrollado JAXR[18]
(Java API for XML Registries), la cual es una API en Java que nos permite acceder a los diferentes registros XML, como UDDl y ebXML
27
-
C A P ~ T U L O 2 MARCO TEÓRICO
de forma fácil, es decir, el cliente tendrá la capacidad de buscar los servicios en diferentes repositorios utilizando JAXR.
28
-
CAPiTULO 3
. . . . . . . -
ESTADO DEL ARTE
CAPÍTULO 3 ESTADO DEL ARTE
En este capítulo describiremos algunas tecnologías que dan
soporte a la invocación de aplicaciones heterogéneas uti l izando los servicios web y en algunos casos han considerado la integración de las mismas.
29
-
CAPiTULO 3 ESTADO DEL ARTE
3.1. TECNOLOGíA MICROSOFT .NET
Microsoft .NET[19] es una generación avanzada de software,
que integra tecnologías de la información y comunicaciones para
transformar el uso de la Web, permitiendo la publicación y acceso a
la información en cualquier momento, en cualquier lugar y desde
cualquier dispositivo. Microsoft .NET ofrece multitud de ventajas a
programadores, empresarios, departamentos de tecnologías de la
información y usuarios.
La tecnología .NET es la plataforma de Microsoft para servicios
web basados en documentos XML. La plataforma .NET permite la
creación y uso de servicios de aplicaciones, procesos y sitios web basados en XML, que comparten y combinan información y
funcionatidad por su diseño, en cualquier plataforma o dispositivo preparado para ello. La plataforma .NET administra gran parte de los
detalles de infraestructura, permitiendo a los desarrolladores
centrarse en escribir el código de la lógica empresarial para sus
aplicaciones.
La plataforma .NET provee un conjunto de herramientas de
desarrollo, aplicaciones cliente, servicios web y servidores en las que
destaca el modelo de programación .NET Framework. En la figura 3.1. se muestran los componentes de Microsoft .NET. El .NET
Framework incluye el lenguaje común en tiempo de ejecución (CLR,
Common Language Runtime) y bibliotecas de clases[20].
3.1.1. .NET Framework
El .NET Framework es un componente del sistema operativo Microsoft Windows@ que proporciona el modelo de programación para
crear, implementar y util izar aplicaciones basadas en la Web,
aplicaciones para dispositivos inteligentes y servicios web XML.
30
-
ESTADO DEL ARTE CAPiTULO 3
Fig. 3.1. Componentes de Microsoft .NET
3 .1 .2 . L e n g u a j e Común e n Tiempo d e E j e c u c i ó n (CLR).
El componente principal de .NET es la capa más baja de su modelo en capas, e l lenguaje común en tiempo de ejecución
(Common Language Runtime, CLR) o también conocido como
máquina virtual común. Se trata de un programa, que se puede
ejecutar en principio, en cualquier sistema operativo, y que provee
una serie de servicios que se pueden usar desde diferentes lenguajes
de programación. El CLR es el responsable de los servicios en tiempo
de ejecución y de la integración de lenguajes, la aplicación de seguridad y la administración de la memoria, los procesos y
subprocesos. Además, juega un papel importante en tiempo de
desarrollo, puesto que características como la administración de la duración, la aplicación de verificación de tipos que asegura la
compatibilidad de tipos, e l control de excepciones entre lenguajes, la creación de enlaces dinámicos, etc. reducen la cantidad de código
que debe escribir un desarrollador para convertir la lógica
empresarial en un componente reutilizable.
31
-
CAPiTULO 3 ESTADO DEL ARTE
3.1.3. Biblioteca d e Clases
Las clases base proporcionan funcionalidad estándar tales
como funciones de entrada y salida, manipulación de cadenas, administración de la seguridad, comunicaciones de red,
administración de subprocesos y de texto, características de diseño
de la interfaz de usuario y otras funciones. Las clases de datos de Microsoft ADO.NET admiten ,la administración de datos permanentes
e incluyen clases SQL para manipular almacenes de datos
permanentes a través de una interfaz SQL estándar. Las clases XML
permiten la manipulación de datos XML, así como la búsqueda y
traducción de XML. Las clases de Microsoft A5iP.NET admiten el
desarrollo de aplicaciones web y servicios web XML.
El .NET Framework tiene características para hacer más fácil la
implementación, ejecución y administración de aplicaciones. El
aislamiento de aplicaciones y el control de vers,iones automático de
componentes pueden ayudar a prevenir conflictos de versiones. Las
aplicaciones creadas usando el .NET Framework pueden ser
implementadas en un cliente o en un servidor si,mplemente copiando
el directorio de la aplicación al equipo, sin realizar cambios en el
registro.
El .NET Framework fue diseñado desde un principio con soporte para
servicios web XML. un modelo para computación distribuida en múltiples ambientes, basado en protocolos como XML, SOAP y HTTP. Los servicios web XML pueden ser usados para integrar aplicaciones
que se ejecutan en diferentes plataformas, o para proporcionar software como un servicio. Con el .NET Framework, una aplicación
puede ser transformada en un servicio web XML con solamente una simple línea de código.
32
http://A5iP.NET
-
ESTADO DEL ARTE CAPiTULO 3
3.2. WEB SERVICE INVOCATION FRAMEWORK (WSIF)
El marco de trabajo de invocación de servicios web (Web
Service Invocation Framework, WSIF) es simplemente una API4 en
lenguaje java para la invocación de s e r h o s web, sin preocuparse
cómo o de dónde provienen los servicios[21].
WSlF permite a los desarrolladores interactuar con las
representaciones abstractas de los servicios web a través de sus
descripciones WSDL en lugar de trabajar directamente con los
protocolos como SOAP, utilizados normalmente para esta
interacción[22].
WSlF tiene la capacidad de invocar dinámicamente un servicio web,
examinando los meta-datos del servicio en tiempo de ejecución. WSlF esta basado en el WSDL, por lo tanto puede invocar cualquier servicio que pueda ser descrito mediante un documento WSDL[23].
WSlF utiliza la información contenida en el WSDL, de manera que es
capaz de acceder a l servicio de forma independiente del protocolo o la localización. Es una API4 que utiliza el WSDL para acceder a la
funcionalidad del servicio ,,descrito. Esto también permite escribir
código que se adapte fácilmente a los cambios. La separación de la API del protocolo actual también nos da flexibilidad, es decir, podemos cambiar de prot,ocolos o de localización sin tener que
recompilar e l código de la aplicación cliente, solamente cambiando la
Una API (Application Program Interface) nos proporciona una interfaz entre un programa de aplicación y utilidades o servicios. dando un nivel de abstracción a los usuarios que evita tener que preocuparse de cómo se lleva a cabo esta comunicación:
4
,I
33
-
ESTADO DEL ARTE C A P ~ T U L O 3
descripción del servicio o WSDL sin necesidad de realizar alguna modificación en la aplicación que usa el servicio.
La API WSIF permite a los clientes invocar servicios enfocándose en
la descripción abstracta del servicio, es decir, en la porción del
documento WSDL que cubre los puertos, las operaciones y los mensajes de intercambio sin tener que lreferirse a un protocolo en
particular. El desacoplamien,to de la invocación abstracta de la real
nos proporciona un modelo de programación flexible que permite la
invocación dinámica. '¡I
Usando WSIF, e l WSDL puede l legar a convertirse en la pieza central
de u n marco de trabajo de integración para acceder software ejecutándose en diversas plataformas y usando una amplia variedad de protocolos. La única condición necesaria es describir el software
utilizando WSDL.
'I j !
La secuencia natural de la invocación de un servicio web dentro de
una aplicación cliente es:
Identificar el servicio
Identificar la operación
Identif icar los parámetro: Ejecutar la operación
Extraer el resultado o la falla.
La arquitectura WSIF[24] proporciona lo necesario para l levar a cabo la invocación de un servicio web de forma dinámica. Para ello el
documento WSDL es interpretado, los mensajes de entrada son
creados usando los argumentos especificados por los usuarios y la operación es invocada.
34
-
CAPíTULO 3 ESTADO DEL ARTE
3.3. PROYECTO AXIS
Axis es un proyecto de los creadores de Apache SOAP[25], cuyas características facil i tan el trabajo de los programadores. Las
acciones más comunes que se pueden realizar con esta herramienta
son: exponer la funcionalidad como un servicio web y acceder a un
servicio web.
Podemos decir que Axis es: 1
Una implementación de la API JAX-RPC para contenedores web.
Contiene una serie de herramientas que se pueden instalar en el
servidor de aplicaciones web: I/
a) APls
b) Herramientas que nos permiten generar un documento WSDL a
partir de una clase en java (Java2WSDL) o que nos permiten
generar una clase en java a partir de un documento WSDL
(WSDL2Java).
!! It
c) Un servlet (AxisServlet) que recibe las peticiones SOAP sobre
HTTP que envían ,los clientes; invocando la operación correspondiente sobre e l servicio web; y devuelve una
respuesta SOAP como resultado de la operación.
I!
Axis es un servidor y cliente SOAY de código abierto. SOAP implementa la API JAX-RPC, una de las formas estándar para servicios implementados en java.
Axis puede ser instalado licomo una aplicación más dentro de un servidor de aplicaciones como el Torncat[26]. La figura 3.2. nos muestra el Axis desplegándose en cua'lquier navegador después de
haber sido instalado en un servidor de aiplicaciones Tomcat.
35
-
9E
-
ESTADO DEL ARTE C A P ~ T U L O 3
JavaServer Pages (JSP) JSP Standard Tag Library (JSTL)
Este conjunto de APls facilita el trabajo del desarrollador; ayudan en
la generación de documentos WSDL, llamadas de métodos en
servicios disponibles usando RPC, petición y respuesta de mensajes
utilizando SOAP y en la publicación de servicios web.
I/
Cada una de las APls proporcionadas por e l JWSDP juega un papel
específico dentro de los servicios web, el programador deberá elegir
las APls que requiera para el desarrol lo~jde una aplicación. Las APls contenidas en el JWSDP pueden ser utlilizadas solas o varias a la
vez, dependiendo de las necesidades de la aplicación.
A continuación se explica brevemente la funcionalidad que nos
brindan algunas de las APls contenidas en JWSDP que son utilizadas
para el procesamiento y uso'de documenios XML.
3.4.1. Java API for XML Processing (JAXP) I1
/I
Esta API esta orientada hacia los documentos y t iene
como funcionalidad la de procesar documentos XML, uti l izando varios I II
parsers o analizadores.
La API JAXP hace más fácil el procesamiento de datos XML al realizar aplicaciones escritas en el lenguaje java. JAXP hace uso de
analizadores tales como SAX (Simple API for XML Parsing) y DOM
(Document Object Model) de manera qhe se puede seleccionar qué
parser util izar para analizar los datos, ya sea como un flujo de eventos o construyendo una representación de éstos en un árbol estructurado.
37
-
ESTADO DEL ARTE CAPiTULO 3
JAXP también soporta el estándar XSLT (XML Stylesheet Language
Transformations) la cual nos proporciona el control sobre la
presentación de los datos y nos permite convertir los datos a otros
documentos XML u otros formatos, tales Icorno HMTL. JAXP también proporciona soporte para los espacios de nombres, permitiendo trabajar con esquemas que pudieran l legar a tener confl ictos en el nombrado
I
3.4.2. Java API for XML-based RPC (JAX-RPC)
JAX-RPC es la API de java para1)el desarrollo y uso de los
servicios web. Envia l lamadas a métodos SOAP localizados en sitios
remotos sobre la Internet y recibe los resultados. li
Un servicio web basado en ,RPC es una colección de procedimientos
que pueden ser l lamados por un cliente remoto sobre la Internet. Un
servicio web es una aplicación en el servidor que implementa los
procedimientos que están disponibles para que los clientes hagan uso de ellos, éstos están almacenados en un contenedor en el lado del
servidor. El contenedor puede ser un contenedor de servlets tales // ' t
como el Tomcat o el contenedor disponible en la edición empresarial
de la plataforma Java 2 (J2EE) que está basado en la tecnologia
javabeans. La figura 3.3 nos muestra un esquema general de un
servicio web basado en JAX-RPC en tiempo de ejecución. !I 14
sewicio Cliente
Stubs
Fig. 3.3. Servicio basado en JAX-RPC en tiempo de ejecución
38
-
CAPiTULO 3 ESTADO DEL ARTE
3.4.3. Java API for XML Messaging (JAXM')
La API JAXM proporciona una forma estándar de enviar
documentos XML sobre la Internet desde una plataforma java. Está
basada en el protocolo SOAP, por lo tanto cumple con las
especificaciones de éste.
JAXM define un marco de trabajo básico para el intercambio de
mensajes SOAP entre aplicaciones. JAXM puede ser extendido para
trabajar con protocolos de manejo de mensajes de un nivel más alto
como el util izado por ebXML, proporcionando una forma más segura
de enviar mensajes entre negocios sobre !'la Internet. I/ !I
JAXM nos proporciona todas las herramientas necesarias para
crear mensajes y enviar mensajes SOAF sobre la Internet para que puedan ser intercambiados entre aplicaciones.
3.4.4. Java API for XML Registries (JAXR)
La API JAXR proporciona una forma conveniente para acceder a
varios registros de negocios o servicios sobre la Internet. Los registros son frecuentemente descritos como páginas amarillas
electrónicas porque contienen l istados de negocios y los productos o servicios que éstos ofrecen. JAXR le proporciona a los
desarrolladores de aplicaciones bajo la plataforma java una forma uniforme de usar los registros de negocios que están basados en estándares abiertos (talesi como ebXML) o especif icaciones (tales
como UDDI).
I! 1,
Util izando JAXR los negócios pueden registrar sus productos o
servicios que deseen compartir, o pueden localizar servicios o productos de otros negocios que deseen utilizar o adquirir.
39
// I
'I .I
-
ESTADO DEL ARTE CAPiTULO 3
Un registro basado en XML es una infraestructura que permite la
construcción, la publicación y e l descubrimiento de servicios web. Es por ello que los registros dstán convir tkndose en un componente
importante de los servicios web ya que permiten a los negocios colaborar de forma dinámi,ca con otros negocios y de manera
desacoplada. La figura 3.4. nos muestra la arquitectura de la API
JAXR.
i it Cliente JAXR i
i 'I I' I
Aki JAXR
Diversos registros
Fig. 3.4. Arquitectura de la API JAXR
3.4.5. XML Stylesheet Language for Transformations (XSLT)
La API XSLT definida por e l grupo de trabajo de la W3C
XSLWorking, describe un lenguaje para transformar documentos XML
en otros documentos XML o en otros formatos. Para llevar a cabo la transformación, se requiere proporcionar una hoja de esti lo (style sheet), la cual está escrita en el lenguaje de hojas de esti lo XML
(XML Stylesheet Language, XSL). La hoja de estilo XSL especifica
cómo los datos XML deben ser presentados y e l XSLT usa las
instrucciones en la hoja de'lestilo para realizar la transformación.
I!
II
40
-
. . . - . .- -
CAPiTULO 4
_.. ~
DISENO DE LA PLATAFORMA
CAPÍTULO 4 DISEÑO DE LA PLbTAFORMA
En este capitulo se' describe e\ proceso de diseño de la plataforma, definición de los elementos que la conforman; así como
los diferentes escenarios en los cuales la plataforma es uti l izada.
41
-
CAPiTULO 4 DISENO DE LA PLATAFORMA ~~
El diseño del sistema es la estrategia deia l to nivel para resolver un problema y construir una solución. Éste incluye decisiones acerca de
la organización del sistemas en subsistemas, la asignación de
subsistemas a componentes de hardware y software, y decisiones
fundamentales conceptuales y de política que son las que constituyen
el marco de trabajo para el di.seño detalla$o[28].
1, li
Cada sistema de software debe tener una función y una forma. Estas
dos cosas deben equilibrarse para obtener un software de calidad.
Los casos de uso constituyen la función del sistema y la arquitectura la forma y debiendo existir una interacción entre ellos.
I /
I'
La arquitectura en un sistema de software se describe mediante
diferentes vistas del sistema y todos los casos de uso constituyen el modelo conceptual, el cual describe la funcionalidad total del sistema
e denomina
desde el punto de vista del usuario.
4.1. DISENO A R Q U I T E C T ~ N I C O ',
La organización global del sistema es lo que 3 arquitectura del sistema. La arquitectura básica de la plataforma
desarrollada corresponde a la de un sistema distribuido. Debido a que
existen varios t ipos de arquitecturas para sistemas distribuidos
podemos considerar que la plataforma corresponde a una variante de un modelo cliente servidor, util izando un proxy (Figura 2.2), por lo cual tenemos a los clientes enviando peticiones o solicitudes a un
servidor pasando a través de un proxy y recibiendo las respuestas
emitidas por e l servidor a través del mismo.
La figura 4.1 nos muestra ulna arquitectura en capas de la plataforma.
42
!I
-
CAPiTULO 4 DISEÑO DE LA PLATAFORMA
Fig. 4.1. Arquitectura de la plataforma de soporte de integración de servicios web
Dentro de la arquitectura podemos identificar la parte del cl iente que
constituye la presentación o interfaz del usuario, la cual es definida
por medio de páginas web escritas en HTML o páginas JSP. La lógica de la plataforma está localizada en un intermediario entre el cliente
que realiza las peticiones a,itravés de Iailinterfaz y los servidores que proporcionan los servicios. La tercera parte de la plataforma
corresponde a los servidores que proporcionan los servicios, que
serán registrados, invocados e integrados desde la plataforma.
i /
4.2. DISEÑO CONCEPTUAL
4.2.1. Diagrama de Casos de Uso
Dentro del modelo conceptual podemos identif icar a los actores que interactúan con el sistema, los cuales están representados, al
43
-
CAPiTULO 4 DISEÑO DE LA PLATAFORMA
igual que la funcionalidad del sistema, en el diagrama de casos de
uso que se muestra en la f igura 4 . 2 . 'I
Proveedor
de Servicios
! Plataforma de Soporfe para la inte&ación de Servicios Web I
/I
Consumidor
de Servicios
>; I1 I Fig. 4.2. Diagrama de casos de uso de la plataforma de soporte de integración de servicios web
Como podemos observar en el diagrama de casos de uso existen dos actores que interactúan con el sistema: el proveedor de servicios y e l consumidor de servicios. E l proveedor d,e servicios realiza el registro
de los servicios que desea hacer dispo'nibles y agrupa los servicios que tengan una funcionalidad compatible en categorías. El
consumidor de servicios consulta la página amarilla con los servicios registrados en la plataforma, busca servicios en base a algún criterio
y realiza la invocación de los servicios disponibl'es e n la plataforma.
I! I/
44
-
CAPiTULO 4 DISENO DE LA PLATAFORMA
4.2.2. Escenarios de Uso
Los escenarios de uso, resultado de los casos de uso
identificados, son descritos *a continuación:
Escenario de uso 1: El proveedor .de servicios registra un servicio Este caso de uso se lleva a cabo cuando el proveedor de servicios desea registrar un servicio para que sea disponible en la plataforma.
Escenario de éxito 1,
1. El proveedor de servicios proporciona la dirección dónde se localiza el documento de descripción del servicio que desea
registrar.
2 . El proveedor selecciona una categoría a la que desea que
pertenezca el servicio a registrar. a. La categoría pue.de ser seleccionada de las categorías ya
existentes.
b. Se puede registrar una nueva categoría.
3. El proveedor proporciona el nombre del servicio a registra? 4. El proveedor proporciona una descripción del servicio si lo
I!
considera.
5. El proveedor registra el servicio.
a. Si la categoría seleccionada fue nueva se l levará a cabo I /
el registro de una nueva categoría.
b. Si la categoría seleccionada ya existía, el servicio se agregará al grupo de servicios de esa categoría.
E s recomendable que el nombre del servicio sea el que se encuentre especificado en el 5 documento de descripción del servicio que fue proporcionado.
45
-
CAPiTULO 4 DISEÑO DE LA PLATAFORMA
Escenario de falla
Una falla al momento de registrar un servicio puede darse en las
siguientes situaciones:
a. Cuando la dirección proporcionada por el proveedor de
servicios en el punto 1 del escenario de éxito no sea válida.
b. Cuando el documento al que se hace referencia en la dirección proporcionada por el proveedor de servicios en el punto 1 del
escenario de éxito no esté disponible. c. Cuando el documento al que se hace referencia en la dirección
proporcionada por e l proveedor de servicios en el punto 1 del escenario de éxito no sea un documento de descripción de
servicio válido.
I1
I
Escenar io de uso 2: E l p roveedor e l im ina el registro de u n se rv i c i o
Este caso de uso se realiza cuando el proveedor de servicios desea eliminar un servicio previamente registrado en la plataforma.
Escenario de éxito
1. El proveedor de servicios selecciona la categoría donde se
encuentra e l servicio que desea dar de baja.
2. El proveedor de servicios selecciona el servicio que desea eliminar de la l ista de servicios q'ue pertenecen a la categoría
seleccionada en el punto anterior.
3 . El proveedor elimina el servicio.
!I
a. Si la categoría donde se encontraba el servicio eliminado
tenía un solo servicio, la categoría se elimina también.
b. S i la categoría donde se encontraba e l servicio eliminado
tenía más de un servicio, la categoría sólo es actualizada.
:I 1;
46
-
C A P ~ T U L O 4 DISENO DE LA PLATAFORMA
Escenario de uso 3: El proveedor de servicios actualiza una categoría El proveedor de servicios a,ctualiza una categoría a l momento de registrar o eliminar un servicio de la categoría. Además de eso podría actualizar la descripción de la categoría.
,I
Escenario de éxito
1. El proveedor selecciona la categoria que desea actualizar. 2. El proveedor proporciona una nueva descripción de la
categoría.
3. El proveedor actualiza la categoría.
Escenario de uso 4: Regist,rar categoría AI momento de registrar .un nuevo servicio, es posible que el
proveedor de servicio no seleccione una de las categorías
previamente registradas, por lo que una nueva categoria se registra.
Escenario de uso 5: Eliminar categoría AI momento de eliminar e l registro de un servicio que se encuentre en
una categoría donde sólo exista ese servicio, la categoría es dada de
baja automáticamente.
Escenario de uso 6: El consumidor delservicios busca un servicio El consumidor de servicios busca un servicio basándose en algún
criterio como el nombre o la descripción del servicio.
Escenario de éxito
1. El consumidor proporciona un criterio de búsqueda de servicios,
2. El consumidor obtiene la l ista de servicios que coincidieron o
ya sea parte del nombre o de la descripción del servicio.
cumplieron con el criterio de búsqiueda proporcionado.
47
-
C A P ~ T U L O 4 DISENO DE LA PLATAFORMA
Escenario de falla.
El consumidor podría obtener una lista de servicios vacía s i no encuentra algún servicio que cumpla con el criterio proporcionado en
el punto 1 del escenario de éxito.
I
Escenario de uso 7: El consumidor de servicios consulta la página amarilla de servicios El consumidor de servicios consulta la página de servicios registrados en la plataforma, la cual contendrá una l ista de todas las
categorías registradas, donde el usuario seleccionará la categoría
que contenga los servicios que desee invocar.
Escenario de uso 8: El consumidor de servicios invoca un servicio El consumidor de servicios selecciona, ya sea después de realizar
una búsqueda de servicios o de consultar la página amarilla, una
categoría e invoca los servicios que estén contenidos en ella.
Escenario de éxito
I. El consumidor selecciona una categoría de servicios registrada.
2. Se selecciona alguna de las operaciones que los servicios
3. Se proporcionan 10s parámetros que requiere la operación que
contenidos en la categoría ofrezca.
se quiere invocar, cuando existan tales parámetros. 4 . Se invocan el o los servicios registrados en la categoría.
a. Si la categoría Sólo contiene un servicio éste es invocado
directamente y el resultado devuelto al consumidor. b. Si la categoría contiene m á s de un servicio, son
invocados cada'! uno de los' servicios que contengan la
48
-
C A P ~ T U L O 4 DISENO DE LA PLATAFORMA
operación solicitada y se devuelven los resultados que se
obtienen.
Escenario de falla
Los posibles escenarios de falla que pueden darse son los siguientes:
a. Que al momento de seleccionar una categoria en el punto 1 del escenario de éxito, todos los servicios contenidos en esa
categoría no estén disponibles.
b. Que los parámetros que se proporcionen en el punto 3 del
escenario de éxito sean incorrectos y ocasionen una falla en la
ejecución del servicio o los servicios.
Escenar io de uso 9: In tegrar se rv i c i os La integración de servicios se da cuando al invocar los servicios en
una categoria, la categoría seleccionada contenga más de un
servicio, por lo que los resultados serán integrados en uno solo antes
de ser devueltos al consumidor.
4.2.3. Diagramas de Ac t i v i dad /I
Un diagrama de actividad es una'ivariante de un diagrama de
flujo de datos, donde se muestran las actividades involucradas en un
proceso. Dentro de la plataforma podemos identif icar dos de los procesos principales, en los cuales se presentan la mayor parte de
los casos de uso definidos. Por tal razón estos procesos son descritos a continuación mediante sus respectivos diagramas de actividad.
! .
49
-
CAPiTULO 4 DISENO DE LA PLATAFORMA
Proveedor
T Registrar Docu Servicio
Confirinaci6i
4.2.3.1. Proceso de Reg is t ro de Serv ic ios
nento
El proceso de registro de servicios inicia en el momento en que
un proveedor desea registrar un servicio 'para hacerlo disponible a los usuarios de la plataforma y concluye cuando el servicio es registrado. La figura 4.3. nos muestra su diagrama de actividad correspondiente.
I1
Plataforma de Soporte para la Integración de Servicios Web
7 .
WSDL r .
Registrar 1, +*l. Cate Oría Categoría J
Categoria Existente
Actualizar Categorial'
;Error IRegistrar Servicio en el Directorio de Servicios
Fig. 4.3. Diagrama de actividad::del proceso de$egistro de un servicio
4.2.3.2. Proceso de Invocac ión de un Serv ic io
El proceso para invocar un serviciolinicia en el momento en que
un consumidor de servicios selecciona uno de los servicios disponibles, ya sea de una l ista de servicios proporcionada después
de una búsqueda o al consultar la página amarilla de los servicios registrados; este proceso concluye al momento de obtener los
I!
50
-
CAPiTULO 4 DISENO DE LA PLATAFORMA
resultados de la invocación del servicio o la categoría seleccionada.
La figura 4.4. nos muestra e l 'diagrama delactividad correspondiente a
este proceso.
Consumidor
Buscar Servicio +--
Proporcionar Parámetros
Plataforma de Soporte para la Integración de /'Servicios Web
{...(.I Generar Pagina
Obtener Parámetros
Fig. 4.4. Diagrama de actividad del procesolde invocación de un servicio
51
-
II 11 - ~ -
CAPiTULO 4 DISENO DE LA PLATAFORMA
4.2.4. Modelo General de la Plataforma
El modelo general de la plataforma que se muestra en la figura 4.5. nos proporciona una vista conceptual de la misma, la cual
engloba los casos de uso definidos, así como el f lujo de las
actividades realizadas pori. los actores que interactúan con la
plataforma
m g RE
Proxy
Plataforma de Soporte para la, Integración de Servicios Wed
WSDL
13 SI I n I
Internet
Fig 4.5. Modelo principal de la plataforma
4.3. MÓDULOS DE LA PLATAFORMA
Dentro de la plataforma hemos definido los módulos que
integran la misma, los cuales"son descritos a continuación:
4.3.1. Módulo Servidor de Peticiones
El módulo servidor de peticiones es, e l encargado de analizar
cada una de las peticiones que realizan los clientes o usuarios dentro de la plataforma y que determinara si la petición es una solicitud de una página web o de un servicio web. Este módulo actúa de manera
transparente al usuario bajo previa configuración del navegador.
52
-
CAPiTULO 4 DISENO DE LA PLATAFORMA
4.3.2. Módulo Analizador de Documentos WSDL
El módulo analizador de documentos WSDL examinará
detalladamente cada uno de los documentos de descripción de
servicio que sean registrados dentro de la plataforma para verificar s i
son válidos y extraer la información necesaria para la invocación de los servicios descritos en cada uno de ellos.
4.3.3. Módulo de Registro de Servicios Web
El módulo de registro de servicios web tiene la funcionalidad de
registrar los documentos de descripción de servicios y agrupar los
servicios en categorías, lo cual permitirá que varios servicios de la misma funcionalidad puedan integrarse posteriormente. Este módulo
también permitirá la eliminación o actualizac'ión de los servicios ylo categorías registradas.
I 4.3.4. Módulo de Página Amarilla de Servicios Web
Este módulo t iene la finalidad de consultar los servicios
registrados y agrupados en categorías para generar una lista de
éstos y mostrarla en forma de un directorio de servicios.
4.3.5. Módulo de Búsqueda de Servicios Web
Este módulo realizará las búsquedas de los servicios que un consumidor requiera basándose en algún criterio de selección y
retornar una lista de los servicios que coincidan con tal criterio.
53
-
CAPITULO 4 DISENO DE LA PLATAFORMA
4.3.6. Módulo de Invocación de Servicios Web
El módulo de invocación obtendrá la información necesaria del
documento de descripción de servicio, para que el servicio descrito
pueda invocarse de forma dinámica, es decir, solicitará los
parámetros necesarios para llevar a cabo la ejecución del servicio y
con la información obtenida , del documento WSDL, como la
localización del servicio, invocará al servicio solicitado.
4.3.7. Módulo de Integración de Servicios Web
Este módulo tendrá la función de analizar si una categoría
contiene más de un servicio con l