Vous êtes sur la page 1sur 53

Curso 5007437

Conceptos y estndares de arquitecturas orientadas a servicios Web Curso 2006/2007

Captulo 5: Tecnologas Web


Pedro lvarez alvaper@unizar.es Jos ngel Baares banares@unizar.es

http://diis.unizar.es/PostWeb/ Departamento de Informtica e Ingeniera de Sistemas

ndice - Captulo Capt lo 5


Introduccin Ncleo de tecnologas Web:Intercambio de informacin sobre Internet Un poco de historia (repaso) La Web:HTTP Intermediarios en la Web Limitaciones de HTTP Tecnologas Web para soportar clientes remotos Necesidad de soportar clientes remotos Applets, CGIs, Servlets Servidores de Aplicaciones Middleware para aplicaciones Web J2EE como ncleo de aplicaciones servidor Soporte de los servidores de aplicacin para la capa de aplicacin Soporte de los servidores de aplicacin para la capa de presentacin Tecnologas Web para integracin de aplicaciones Arquitecturas para integracin rea global Extensiones Middleware Cortafuegos y HTTP Representacin de datos EDIFACT, XML
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Introd ccin Introduccin


Hay t H tanto t inters i t en integrar i t aplicaciones li i entre t diferentes dif t empresas como dentro de una empresa Hasta ahora nos hemos centrado en integracin dentro de la empresa y servicios i i Middleware iddl A partir de ahora nos centraremos en integrar aplicaciones entre diversas empresas y Servicios Web Orgenes del Web Tecnologas para compartir informacin sobre Internet! Rpidamente pas a ser el medio para conectar clientes remotos con aplicaciones a travs de Internet

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

E ol cin Tecnologas Web Evolucin


Compartir Informacin Clientes remotos Servidores de Aplicaciones

Hipertexto

Web interactivo

Objetos en la Web

Servicios Web
Estndares de Propsito General Infraestructura Comn Estndares bsicos (SOAP, WSDL, UDDI, etc.)

F Funcin n

XML Protocolos de Transporte (HTTP, TCP/IP, SMTP,etc.)

Web con texto, grficos, y enlaces

Tablas imgenes sonido vdeo CGI

Transacciones seguras: SSL S-HTTP Firewalls

Java Componentes mviles Applets A l t

Objetos distribuidos Documentos compuestos ActiveXs CORBA

Pila estndares Servicios Web Servidores Aplicaciones J2EE .NET

1994

1995

Tiempo

1996

1997

2002

Middlewares convencionales Servicios Middleware


Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

theserverside.com
http://www.theserverside.com/cartoons/TalesFromTheServerSide.tss
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Preg ntas de Perogrullo Preguntas Perogr llo


Porqu las tecnologas Middleware Middleware, que tienen por objeto la integracin de aplicaciones, fracasan al integrar aplicaciones de diferentes empresas? Porqu tecnologas para intercambiar informacin a travs de Internet (documentos enlazados), son la clave para la integracin de aplicaciones de diferentes empresas? Si los Servicios Web tienen por objeto la integracin de aplicaciones, deben evolucionar dando los servicios de un middleware? Hay riesgos tecnolgicos en los servicios Web? Cules son realmente sus bases tecnolgicas? Es una tecnologa estable? ....................? ?
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Intercambio de informacin sobre Internet


Ncleo N l d de t tecnologas l Web:Intercambio W bI t bi de informacin sobre Internet Un poco de historia (repaso) La Web:HTTP Intermediarios en la Web Limitaciones de HTTP

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Intercambio de Informacin sobre Internet


La Advanced Research Projects Agency (ARPA) conecta computadores de 4 universidades americanas en una pequea p q red denominada ARPANET) )
Surgen primeras organizaciones de estandarizacin para gobernar esta red. Desarrollan estndares como TCP (Transmission Control Protocol). El IP (Internet Protocol). TCP/IP es la tecnologa que define Internet.

Antes d A del lW Web, b dos d de d los l primeros i estndares d para intercambiar i bi informacin en Internet (protocolos capa aplicacin).
El protocolo telnet y el protocolo de correo electrnico Simple Mail Transfer Protocol (SMTP). (SMTP) SMTP se extendi con Multi-purpose Internet Mail Extensions (MIME) para soportar intercambio de ficheros de datos ms ricos (audio, video, imgenes) En 1973 se publica File Transfer Protocol (FTP) que soporta la transferencia de ficheros. FTP soport el primer sistemas de informacin distribuida tipo Web y Goopher supuso el primer protocolo de aplicacin que permita un sencillo sistema cliente servidor y un GUI sencillo.
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Tecnologa base de Internet


Pila de protocolos TCP/IP FTP, SMTP, HTTP, DNS aplicacin TCP, UDP transporte IP, ICMP, IGMP red d ARP, ethernet, 802.11 enlace enlace red d transporte aplicacin

Cdigo usuario

Cdigo de SO

Hardware

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

La Web:HTTP
El ncleo l de d las l tecnologas t l Web W b hoy h en da d son HTTP, HTML, servidores Web y navegadores Web HTTP: Hyper yp Text Transport p Protocol Protocolo genrico, sin estado que gobierna la transferencia de ficheros por la red. Desarrollado en el Laboratorio de fsica de partculas europeo (CERN) por Tim Berners Lee1 Este equipo le pone nombre (World Wide Net) L desarrollos Los d ll posteriores t i los l realiza li el l W3C2 HTTP se desarroll para soportar hipertextos En p particular soporta p HTML ( (Hyper yp Text Markup p Language)
1 Tim Berners Lee: Un visionario. Vase artculo sobre el Semantic Web (http://www.w3.org/2001/sw/) 2 W3C World Wide Web Consortium (http://www.w3.org/) es una iniciativa creada en 1994, en la que participan 400 organizaciones.
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

10

La Web:HTTP
La informacin se intercambia en HTTP en forma de documentos identificados por URIs (Uniform Resource Identifier).
Los documentos pueden ser estticos (se devuelve el documento) o dinmicos (el contenido del documento se genera en el momento del acceso)

Cada recurso accesible en Internet, tiene un URL (Uniform Resource Locator) que describe como acceder a l
Un URL da el nombre del protocolo, su direccin, direccin La descripcin jerrquica del recurso sobre la mquina (path)

El mecanismo HTTP se basa en el modelo cliente/servidor, utilizando habitualmente sockets.


Un cliente HTTP (p.e. Navegador) enva una peticin a un servidor HTTP (servidor Web) que consiste en: mtodo, URI, versin de protocolo y mensaje al estilo MIME. El servidor devuelve una lnea de estado (indicando protocolo y xito o error), y un mensaje j al estilo MIME conteniendo el documento y cierra la conexin. Los mtodos incluyen OPCIONES, GET (recupera documento), POST (adjunta informacin al recurso), PUT (almacena informacin), DELETE (borra el recurso indicado).

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

11

Intermediarios en la Web
Proxy, gateway y tunnel son conceptos que permiten abordar temas de Proxy integracin como firewalls, balance de carga, movimiento de datos, etc.
proxy: Un programa intermediario que acta como cliente y servidor con el propsito de hacer peticiones en nombre de otro cliente (acta en nombre de un cliente) gateway: Un servidor que acta como un intermediario de otro servidor en una peticin (actan en nombre de un servidor) Tunnel programa intermediario que acta como un relevo entre dos conexiones (simplemente conecta dos redes).

red de e rea glob bal (Intern net)

tunnel HTTP

firewall

Cliente HTTP

proxy HTTP

firewall

gateway HTTP

Servidor HTTP

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

12

Limitaciones de HTTP
HTTP no encripta i t los l datos d t antes t de d enviarlos i l Netscape desarroll el Secure Sockets Layer (SSL), un protocolo que utiliza una clave de encriptacin pblica para datos transferidos sobre b TCP/IP / HTTPS = HTTP sobre SSL. Requiere que el servidor y el browser se ejecuten sobre SSL
cliente HTTPS servidor HTTPS capa p aplicacin p capa red

Secure Sockets Layer (SSL) TCP/IP


Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

13

Limitaciones de HTTP
HTTP no tiene ti estado, t d es decir, d i el l protocolo t l no soporta t ninguna i forma f de d almacenamiento de informacin en las transacciones HTTP. Si el mismo cliente manda dos peticiones seguidas, no hay i di i de indicacin d la l relacin l i entre las l dos d peticiones i i El responsable de mantener y gestionar la informacin del estado es el desarrollador de la aplicacin. Para mantener el estado sobre una mquina cliente se pueden utilizar cookies
p q pequeas estructuras de datos que q el servidor p pide al cliente HTTP q que almacene en la maquina local La localizacin real del almacenamiento de las cookies depende del navegador

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

14

Tecnologas Web para soportar clientes remotos


Necesidad de soportar clientes remotos Applets CGIs Servlets

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

15

Necesidad de soportar clientes remotos


Rpidamente R id t se vio i el l valor l de d envolver l un sistema it de d informacin i f i exponiendo su capa de presentacin como documentos HTML No hay razn para no abrir los sistemas ms all de los limites de una empresa Ejemplo: ATM (Automatic Teller Machine, cajero automtico) El ideal de un banco sera instalar un cajero j automtico en cada hogar Las interacciones se llaman Bussines-to-consumer (B2C) Complicaciones Los clientes precisan clientes especficos para cada compaa con la que interactan (ejemplo, clientes del CRMVantive con formularios especficos para cada cliente) Los clientes se ejecutan completamente al margen del control del middleware
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

16

Arquitectura para soportar clientes remotos


Extensin de las arquitecturas de tres niveles con cliente a travs de Internet
cliente cliente servidor HTTP Cliente HTTP

red de r rea global (Internet) )

Una de las mayores y contribuciones de Internet


Ofrecer un cliente universal para todos los clientes Los navegadores son herramientas estndar Surgen tecnologas Web para envolver ( (wrapping) pp g) sistemas de informacin para dar soporte a este nuevo canal de acceso.

middleware

servidor (gestor de recursos)

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

17

Applets
Los navegadores L d estn t pensados d para presentar t documentos d t HTML estticos Solucin: Applets, cdigo Java embebido en el documento HTML y ejecutados j d por la l MVJ del d l navegador d El cliente se tiene que descargar cada vez que se usa, pero para clientes ligeros es una solucin comn.
Carga Almacn de Applets

Descarga

Recibe

Peticin

Servidor HTTP

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

18

Arquitectura para soportar clientes remotos ligeros y dinmicos


Applets para implementar clientes remotos ligeros
cortaf fuegos

red de rea global (Inte r ernet)

servidor Web

cliente applet mquina virtual java navegador

middleware

Un applet convierte un navegador en un cliente especfico fi d de aplicacin li i


Su existencia es pasajera, siendo inadecuado para soportar transacciones complejas No requiere procedimientos especficos de instalacin ni de configuracin

servidor (gestor de recursos)

ALTERNATIVA
Usar un cliente especializado no basado en navegador que contenga el cdigo para interactuar a travs de HTTP (cliente/servidor clsico) orientadas a servicios Web 19

Curso 5007437 Conceptos y estndares de arquitecturas


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Common Gate Gateway a Interface


Un servidor U id W Web b puede d responder d invocando i d una aplicacin li i que generar el documento (p.e. Informacin recuperada de una base de datos). Common Gateway Interface f ( (CGI): ) Mecanismo i estndar d que permite i a servidores HTTP interaccionar con aplicaciones externas. El CGI asigna programas a URLs

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

20

Programas CGI
servidor Web

co ortafuegos

peticin ti i HTTP GET

navegador

cliente Programa g m CGI

red de rea global ( (Internet)

Los parmetros necesarios para el programa se envan como parmetros del URL U El servidor Web inicia el programa como un proceso separado. Fast-CGI, reducen la sobrecarga asociada con la creacin de nuevos procesos permitiendo llamadas a procesos que se estn ejecutando ya. Estos programas pueden interaccionar con el Middleware.

middleware

servidor (gestor de recursos)

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

21

Ser lets Servlets


El problema de los CGIs es la sobrecarga que supone cada proceso lanzado Mltiples peticiones al mismo CGI implica varias ejecuciones del mismo programa => problemas de escalabilidad del sistema La alternativa a los CGI son los Servlets, que se pueden usar como los CGIs, pero la implementacin es diferente: La ejecucin se lanza igual que un CGI y el resultado es igual Los Servlets se ejecutan como procesos Java, no como procesos i d independientes. di Son parte del servidor Web Se invocan directamente incorporando informacin especfica del servlet en la peticin HTTP Se elimina la carga de crear procesos para cada invocacin y el coste del cambio de contexto. Se reduce la memoria necesaria, y ya q que una nica imagen g del p programa g se encuentra en memoria aunque haya varias peticiones Puesto que hay un contexto persistente de ejecucin de los servlets (el Java Server process), es posible utilizar optimizaciones que seran imposibles con programas CGIs. CGIs
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

22

S l t Servlets
cortafuego c os
Servidor S r or W Web Java server process Hilo Java cliente

red de e rea glob bal (Intern net)

peticiones HTTP GET

navegador g

Posibilidades Servlets
Se pueden guardar resultados de peticiones idnticas que han hecho diferentes clientes para no tener que volver a ejecutar realmente la peticin Se puede hacer seguimiento de la sesin, compartir conexiones a la bases de datos

middleware

servidor ( (gestin ti d de recursos) )

Tecnologas relacionadas con CGIs y Servlets que embeben cdigo en pginas HTML que ser interpretado en el servidor
Active Server Pages g (ASP) ( ) Java Server Pages (JSP)

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

ASP.NET

23

S l t Servlets
invocacin HTTP + XML
http://artieda.cps.unizar.es/wfsGazetteerGns/servlets/GNS? REQUEST=GETFEATURE &PROPERTYNAME=*&TYPENAME=gns& FILTER=<Filter> <PropertyIsLike> <PropertyName>name</PropertyName> <Literal>Zaragoza</Literal> </PropertyIsLike> </Filter> &OUTPUTFORMAT=GML2

GML result

Internet WFS (Geodata Server)


OGC WFS Interface Service & FES constraint
FES SQL

Ejemplo Web Features Server: S l t que Implementa Servlet I l t el l patrn t Model-View-Controller

View

Servlet Se v et

XSLT Engine Syle page

Controller

SQL sentence
Oracle Utilities

View

XML SQL Utility


XML GML
XSLT Engine Style page

SQL Sentence result Oracle 8i (SFS)

M d l Model
XML result Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

24

Frame orks basados en el MVC Frameworks

theserverside.com
http://www.theserverside.com/cartoons/TalesFromTheServerSide.tss
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

25

Ser idores de aplicaciones Servidores


Middleware para aplicaciones Middl li i Web W b J2EE como ncleo de aplicaciones servidor S Soporte t d de l los servidores id de d aplicacin li i para la capa de aplicacin Soporte de los servidores de aplicacin para la capa de presentacin

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

26

Middle are para aplicaciones Web Middleware


El uso creciente i t del d l Web W b como canal l de d acceso a los l sistemas it de d informacin es lo que forz a las plataformas middleware a incluir acceso Web Este soporte es el l ofrecido f id por los l servidores d de d aplicaciones l Los servidores de aplicaciones son equivalentes a las plataformas Middleware presentadas. La principal diferencia es que incorporan el Web como canal de acceso principal a los servicios implementados utilizando el middleware

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

27

Ventajas de incorporar el Web


L ventajas Las t j de d incorporar i el l Web W b como canal l de d acceso son: La capa de presentacin tienen un papel ms relevante que en middlewares convencionales
Con HTTP y el Web, todos los intercambios de informacin se hacen a travs de documentos Un servidor de aplicaciones debe extender una plataforma middleware i incorporando d la l preparacin, i generacin i dinmica di i y gestin i de d documentos Esto se consigue mezclando la capa de presentacin relacionada con el Web, Web con la capa de aplicacin del middleware (Mejora de la eficiencia y sencillez de gestin para suministrar contenido a travs del Web) La conectividad a la capa de gestin de recursos se logra a travs de arquitecturas de conexin estndar y APIs como JDBC y ODBC como se hace en las plataformas middleware y las arquitecturas EAI

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

28

Middle are para aplicaciones Web Middleware


otros protocolos cliente otros servidores (email, SOAP,..) servidor Web navegador

cortafu uegos

HTTP

capa presentacin

capa lgica de la aplicacin conexin a la capa gestin recursos

capa gestin de recursos


Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

Red rea global (Interne et)

29

J2EE como el ncleo de servidores de aplicacin


La funcionalidad L f i lid d de d un servidor id de d aplicacin li i puede d ser descrita d it examinando uno de los dos frameworks para middleware basado en Web J2EE de Sun .NET de Microsoft

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

30

Ncleo especificaciones API de J2EE


Servlets Java API for XML Processing (JAXP) JavaServer Pages (JSP) JavaMail

Soporte para comunicacin y presentacin

Java Authentication and Authorization Service (JAAS)

Enterprise Java Beans (EJB) Java Message Service (JMS)

Java transaction API (JTA) Java Naming and Directory Interface (JNDI)

Soporte para integracin de aplicaciones


Incluye otras APIs para i t integracin i aplicaciones: li i Object Brokering (CORBA/RMI) Soporte transacciones

Java DataBase Connectivity y (JDBC)

Java 2 Connector Architecture (J2CA)

Soporte para la gestin de recursos

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

31

theserverside.com
http://www.theserverside.com/cartoons/TalesFromTheServerSide.tss
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

32

Prod ctos comerciales Productos


L productos Los d t incorporan i diferentes dif t abstracciones bt i middleware iddl Segn se van extendiendo los productos y la forma en que se ofrecen como paquetes, es difcil distinguir lo que hay, y lo que no hay, d dentro de d un servidor id de d aplicaciones li i En algunos casos, el nombre original dado al servidor de aplicaciones ha sido usado para cada componente middleware ofrecido por la empresa, p.e.
IBM messaging g g y workflow se comercializan bajo j el nombre de WebSphere p MQ BEA utiliza el nombre WebLogic para etiquetar cada unos de sus productos middleware (como WebLogic Integration) Algunos incluyen data warehousing warehousing, bussines intelligence intelligence, etc etc. Es difcil establecer las diferencias entre servidores de aplicaciones y plataformas middleware a nivel de producto.

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

33

Informacin productos prod ctos


Para J2EE java.sun.com P BEA WebLogic bea.com/products/weblogic/server IBM WebSphere p www-3.ibm.com/software/webservers/ Microsoft .NET msdn.microsoft.com/architecture/default.aspx Sun One wwws.sun.com/software/sunone/ Oracle 9i AS www.oracle.com/appserver/ l / /
En www.theserverside.com/reviews/matrix.jsp lista de vendedores y comparativas

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

34

Soporte de los SA a la capa de aplicacin


Para la capa de aplicacin los servidores ser idores de aplicacin son conceptualmente middleware convencional Funcionalidad similar a CORBA, TP monitors, y broker de mensajes Ofrecen funcionalidad tpica de los middleware (transacciones, (transacciones seguridad, persistencia) de forma automtica cuando la aplicacin se instalada en un servidor dado En J2EE el soporte para la lgica de apliacin se concentra en tres especificaciones
EJB: Enterprise Java Beans (donde residir la lgica de la aplicacin) Componente del lado del servidor Suministra la funcionalidad especfica de la aplicacin (p.e. responder a una peticin de preupuesto o procesar una orden de compra) JNDI: Java Naming and Directory Service. Define un interface para directorio de servicios. Utilizando JNDI, los clientes pueden recuperar (bind) servidores a partir de un nombre de objeto JMS: Broker de mensajes

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

35

theserverside.com
http://www.theserverside.com/cartoons/TalesFromTheServerSide.tss
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

36

Soporte de los SA a la capa de aplicacin


EJB Define D fi tres t tipos ti de d bean b en funcin f i de d cmo i t interaccionan i con otros componentes
Session bean: Maneja una sesin con un cliente. Puede ser
Stateful St t f l: El bean b mantiene ti el l estado t d de d la l conversacin i con el l cliente li t Stateless: No mantiene esl estado, y por lo tanto puede ser utilizado el mismo bean para varios clientes. Tiene que ser almacenado en una base de datos o medio persistente La persistencia es manejada por el propio Bean (hay que escribir las sentencias SQL para guardar en una base de datos), o por la plataforma EJB (no hay que escribir cdigo)

Entity bean: su mbito de vida supera la sesin con el cliente


Message-driven g bean: se encargan g de las interacciones asncronas con el cliente, ,a diferencia de los session bean y los entity bean que interaccionan al estilo RPC. Las interacciones se hacen a travs del JMS

El contenedor EJB es el entorno donde se ejecutan e interaccionan los beans


Da soporte para transacciones, i persistencia i i y seguridad id d

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

37

theserverside.com
http://www.theserverside.com/cartoons/TalesFromTheServerSide.tss
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

38

Soporte para la conexin a la capa de gestin de recursos rec rsos


J2EE soporta la conexin a la capa de gestin de recursos JDBC
API que permite el acceso a casi cualquier fuente de datos tabular ejecutando comandos SQL desde el p programa g Java Puede ser llamada desde un EJB, o directamente desde un Servlet, puenteando la capa lgica de la aplicacin.

J2EE Connector Architecture (J2CA)


Generalizacin de la idea anterior para construir adaptadores de recursos Componentes Java que conectan EJB o aplicaciones Java con gestores de recursos Cada adaptador de recurso se caracteriza por contratos con la aplicacin y la plataforma l t f J2EE. J2EE
Los contratos definen el API que la aplicacin Java puede utilizar para acceder al gestor de recursos. El contrato con la plataforma describe las propiedades del adaptador de recursos, de forma que la plataforma J2EE pueda soportar pooling, transacciones XA, y seguridad

Ms all de J2EE, los servidores de aplicaciones ofrecen herramientas de administracin, gestin, etc. Se encuentran caractersticas similares en plataformas de objetos distribuidos (CORBA COM+) (CORBA,
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

39

Soporte de los SA a la capa de aplicacin y conexin cone in con la capa gestin recursos rec rsos
capa presentacin

servicios (balanceo ca arga, pooling g, caching, tr ransacciones s, persist tencia,)

capa lgica de aplicacin


EJB EJB EJB Contenedor EJB JNDI JMS JDBC Adaptador recurso J2CA Adaptador recurso J2CA otros adaptadores adminis stracin (gestin y seguridad)

Curso 5007437 Conceptos y estndares de arquitecturas orientadassistema a servicios Web aplicaciones sistema
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

GBdD

empresa 1

empresa 2

sistema empresa n

40

Soporte de los SA a la capa de presentacin


Los programas CGI tienen la ventaja de que son como cajas negras que implementan la capa de presentacin sin requerir cambios en la plataforma middleware Estas arquitecturas q pueden ser usadas sobre sistemas q p que no estn preparados para la integracin en redes de rea global. La integracin real se consigue, si la plataforma middleware apoya la capa de presentacin Los servidores de aplicaciones ofrecen mecanismos sofisticados que permiten la transicin entre documentos y argumentos de forma ms eficiente y sencilla Un servidor de aplicaciones da soporte para diferentes clientes
Navegadores Web Aplicaciones como las de los middleware tradicionales Dispositivos mviles: telfonos mviles, PDAs E mail E-mail Servicios Web: aplicaciones que interactan con el servidor a travs de protocolos de servicios Web estndar.

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

41

Soporte de los SA a la capa de presentacin


cliente
Servidores para otras conexiones (p.e., WAP) Servidor E-mail Servidor Web

multidevice content delivery Servlets JSPs XML support Web services support

personalization logic

capa presentacin capa lgica de la aplicacin


conexin a capa gestin recursos

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

capa gestin recursos

administrac cin ges stin y seguridad)

servicios s (ba alanceo de c carga, po ooling, caching,)

42

Tecnologas Web para la integracin de aplicaciones


Arquitecturas A it t para integracin i t i rea global Extensiones Middleware C t f Cortafuegos y HTTP Representacin de datos EDIFACT, XML

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

43

Arquitecturas para integracin en red de rea global


Las posibilidades vienen dadas por todas las posibles combinaciones de las tres capas Slo dos combinaciones son realistas teniendo en cuenta los protocolos disponibles y la falta de estndares
U Utilizar ili clientes li especializados i li d para integrar i sistemas i a nivel i l de d cliente li intercambiando mensajes Integrar capas middleware directamente (siempre que la compatibilidad lo permita)
cliente red de rea g global (Inte ernet) cliente

middleware

middleware

Curso 5007437

servidor de recursos) Conceptos(gestor y estndares de arquitecturas

orientadas a servicios Web

servidor (gestor de recursos)

Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

44

E tensiones de los middleware Extensiones middle are


Las plataformas L l t f middleware iddl se extendieron t di i inicialmente i i l t para soportar t Internet como un canal de acceso ms Las plataformas middleware estn diseadas para trabajar (Integrar l lgica la l i de d aplicacin) li i ) en una sola l red d de d rea local l l (RAL) ( ) A medida que crecen las empresas, y los diferentes departamentos de la misma compaa adoptan sus plataformas middleware diferentes surge la necesidad de interacciones entre diferentes middleware Si las interacciones ocurren entre diferentes empresas p hablamos de transacciones Business-to-Business (B2B) Conceptualmente son sencillas de implementar transacciones B2B Se pueden extender los protocolos de comunicacin convencionales, convencionales siguiendo el ejemplo de CORBA

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

45

General Inter-ORB Inter ORB Protocol


OmniBroker IIOP IIOP
CORBA 2.0 COMPLIANT

Cliente (objeto CORBA) ORB 1

Servidor (objeto CORBA)

ORB 2

Visibroker

OrbixWeb
2 Protocolos IIOP! Orbix
CORBA 2.0 COMPLIANT

GIOP

GIOP

IIOP

IIOP

CORBA 2.0 COMPLIANT

Internet (TCP/IP)

C C++ J Java Orbix

Java Applet

Java App
C++ Java

Orbix Web

IIOP

Visibroker

Todos los productos que cumplan con el estndar CORBA 2.0 pueden i t interoperar a travs t del d l protocolo t l IIOP (Internet (I t t Inter I t ORB protocol) t l)
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

46

Integracin directa de plataformas middle are middleware


cliente cliente

middleware
protocolo l middleware-remoto protocolo comunicacin red area global

Red de re R ea global ( (Internet)

middleware
protocolo middleware-remoto protocolo comunicacin red area global

servidor (gestor de recursos)

servidor (gestor de recursos)

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

47

Integracin directa de plataformas middle are middleware


Problemas P bl cuando d l la interaccin i t i ocurre a travs t de d Internet I t t Los ORBs no podrn comunicar entre s porque estarn probablemente ocultos tras cortafuegos Se ha extendido el protocolo de comunicacin, pero no hay acuerdo en la definicin de interfaces y formato de datos utilizados por las aplicaciones a integrar. Se precisa un servidor de directorio, que permita descubrir servicios Dnde reside y quin gestiona este servidor, que da servicio a varias empresas?

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

48

Cortaf egos y tunneling Cortafuegos t li a travs tra s de HTTP


Casi C i todas t d las l formas f de d comunicacin i i empleadas l d por productos d t de d EAI convencionales no pueden atravesar cortafuegos: RPC, RMI, GIOP/IIOP Dentro de la misma red cada componente confa y conoce los otros componentes. componentes Los cortafuegos estn por una buena razn: NO NOS FIAMOS DE LO QUE HAY FUERA. Los cortafuegos no son un problema en sistemas basados en mensaje Los protocolos como STMP pueden atravesar un cortafuegos porque la responsabilidad de la interaccin segura se pone en el software que procesa los mensajes j SOLUCION: Trampear el cortafuegos mediante tunneling. Ocultar mediante protocolos que son aceptados por el cortafuegos otros protocolos. Conversin de mensajes j a HTML y XML

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

49

B2B a nivel de middleware mediante Solucin de facto para el problema t tunneling li de cruzar cortafuegos
GIOP/IIOP sobre HTTP
Tnel HTTP

SOAP = tunneling de RPC sobre HTTP cortafu uegos cortafu uegos

cliente

red de re r e global (I Internet)

Servidor Web

Servidor Web

cliente

middleware
protocolo l middleware remoto protocolo comunicacin red de rea global

middleware
protocolo middleware remoto protocolo comunicacin red de rea global

servidor (gestin de recursos)

servidor (gestin de recursos)

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

50

Representacin de datos
La utilizacin de FTP, FTP SMTP y HTTP para intercambio de mensajes implica:
Identificar una sintaxis y semntica comn para los datos intercambiados

En los middlewares convencionales, el problema de la representacin de datos se oculta tras los IDL (Language Description Interface)
El IDL define el interfaz La implementacin del IDL utiliza una representacin de datos intermedia que especifica como se representa cada tipo de datos utilizado de forma independiente de la mquina.

En sistemas basados en mensaje o intercambio de ficheros el formato y semntica se determina por el estndar EDIFACT (Electronic Data Interchange For Administration Administration, Commerce and Transport)
EDIFACT define plantillas para las diferentes partes de un mensaje y su contenido.

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

51

EDIFACT
EDIFACT define d fi una coleccin l i exhaustiva h ti de d tipos ti de d mensajes, j p.e.: Calidad de datos Respuesta p de orden de compra p Solicita Estado de la orden de compra Factura Instrucciones de pago, pago descripcin producto, producto moneda, moneda etc. etc La utilizacin de estndares universales lleva a estndares complejos y tipos de mensajes excesivamente complejos e innecesarios En muchos casos solo se utiliza una parte del estndar, aunque la maquinaria necesaria para procesar estos mensajes se realizan para el caso general. EDIFACT slo aborda transacciones comerciales. Los tipos de informacin a intercambiar en el Web son infinitos.

Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

52

XML
En los E l servicios i i Web, W b la l alternativa lt ti a EDIFACT es eXtensible Xt ibl Markup M k Language L (XML) Se focaliza en la sintaxis no en la semntica U estructura Una t t definida d fi id ayuda d al los usuarios i a deducir d d i la l semntica ti Facilita el desarrollo de herramientas que procesan (parser) los documentos Se especifican las restricciones sobre la estructura de documentos mediante D Document t Type T D Definitios fi iti (DTDs) (DTD ) o schemas h XML XML. EDIFACT define una representacin universal de p.e. una factura XML no define la representacin de una factura. Una aplicacin necesita el XML q que e la representa representa, y el DTD para e extraer traer la informacin Las aplicaciones pueden utilizar distintos documentos XML, y debern conocer la semntica. Diferentes consorcios pueden definir DTDs con la semntica bien definida P.e. el consorcio RosettaNet define tipos de documentos en XML para B2B.
Curso 5007437 Conceptos y estndares de arquitecturas orientadas a servicios Web
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)

53