0
POOII Introducción a los Servicios Web
Comunicación entre sistemas heterogéneos  <ul><li>El sistema del departamento de Compras está en Windows/Visual Basic y re...
La solución por excelencia: CORBA, complicado y costoso <ul><li>La manera en que muchas empresas aíslan sus sistemas de es...
¿Qué es un Servicio Web? <ul><li>Un  servicio Web  ( Web service ) es una colección de protocolos y estándares que sirven ...
Visión general - Escenario Otros servicios Web  Servicios Web de tus socios Capa de acceso a datos y almacenamiento Capa d...
Ejemplo de escenario
Visión general - ¿Para qué sirven? <ul><li>Permiten interconectar </li></ul><ul><ul><li>Aplicaciones </li></ul></ul><ul><u...
Visión general - ¿Qué aporta? <ul><li>Nuevas oportunidades empresariales: facilitan la comunicación con los socios. </li><...
Infraestructura - Tecnologías subyacentes Communications:  Internet Universal Data Format: XML Wire Format: Service Intera...
Infraestructura - Tecnologías subyacentes <ul><li>XML (eXtensible Markup Language) </li></ul><ul><ul><li>Formato universal...
Estándares empleados  <ul><li>Web Services Protocol Stack : Así se denomina al conjunto de servicios y protocolos de los s...
Infraestructura - ¿Cómo acceder? Directory http://www.uddi.org UDDI DISCO WSDL SOAP Inspection http://www.ibuyspy.com/ibuy...
Ventajas  <ul><li>Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las ...
Desventajas <ul><li>Para realizar  transacciones  no pueden compararse en su grado de desarrollo con los estándares abiert...
Motivaciones para crear Servicios Web <ul><li>La principal razón para usar servicios Web es que se basan en  HTTP  sobre  ...
Service-oriented Architecture <ul><li>In a service-oriented architecture, you have the following: </li></ul><ul><li>A  ser...
Diseño de un Servicio Web  <ul><li>En general, un servicio Web: </li></ul><ul><ul><li>Expone  una interfaz que sus cliente...
Flujo de un Web Service en JAVA
Plataformas  <ul><li>Servidores de aplicaciones  para servicios Web: </li></ul><ul><li>Axis  y el servidor  Jakarta Tomcat...
Surgimiento de XMLRPC y SOAP  <ul><li>El surgimiento de XMLRPC/SOAP tiene sus raíces en la manera que son invocados  proce...
XML-RPC <ul><li>Protocolo de llamada a procedimiento remoto que usa  XML  para codificar las llamadas y  HTTP  como mecani...
SOAP <ul><li>El protocolo de acceso simple a objetos ( Simple Object Access Protocol -  SOAP ) es un protocolo estándar cr...
SOAP <ul><li>La especificación  SOAP  indica cómo se deben codificar los mensajes que circularán entre las dos aplicacione...
Arquitectura de SOAP <ul><li>SOAP esta diseñado para realizar intercambios de información en XML en sistemas altamente dis...
Tecnología de SOAP <ul><li>SOAP es un marco extensible y descentralizado que permite trabajar sobre múltiples pilas de pro...
Implementaciones de SOAP <ul><li>Al igual que XMLRPC, hoy en día ya existen diversas herramientas para desarrollar aplicac...
Modo de trabajo <ul><li>A partir de WSDL se describen las funcionalidades del Web service.  </li></ul><ul><li>En XMLRPC es...
Web Services Description Language -  WSDL  <ul><li>El  Lenguaje para Descripción de Servicios Web  es un formato XML que s...
Uso y Generación de WSDL <ul><li>El diseño de Clientes en SOAP generalmente es llevado acabo a partir de un archivo escrit...
UDDI y ebXML <ul><li>Generado un archivo WSDL para nuestro Web service, podrá ser accedido desde diversas plataformas y le...
Web Service Inspection Language - WSIL <ul><li>WSIL  es una especificación  muy reciente  iniciada por  IBM  y  Microsoft ...
Razones para  WSIL <ul><li>Existen dos razones principales por las que surgió  WSIL :  </li></ul><ul><li>Falta de Moderaci...
Conclusiones <ul><li>Mediante XMLRPC/SOAP se logra que el intercambio de información sea realizado en  XML .  </li></ul><u...
XMLRPC o SOAP:  ¿Cuál es la diferencia ?  <ul><li>XMLRPC fue el primer mecanismo que surgió para invocar procedimientos re...
J2EE y Servidor de Aplicaciones
Especificaciones de las tecnologías J2EE <ul><li>Java™ 2 Platform, Enterprise Edition Specification, Version 1.4  (J2EE sp...
J2EE 1.4 Platform Architecture
Java Application Servers <ul><li>Un  Java Application Server  (ya denominado  Application Server ) proporciona el ambiente...
Application servers fully J2EE Compliant  <ul><li>Existen varios en el mercado. Entre los mas usados: </li></ul><ul><li>Su...
Herramientas J2EE  SUN Microsystems Developer Network <ul><li>XML Sun Developer Network </li></ul><ul><li>Java API for XML...
Upcoming SlideShare
Loading in...5
×

Java2 servicios web

909

Published on

Published in: Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
909
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Java2 servicios web"

  1. 1. POOII Introducción a los Servicios Web
  2. 2. Comunicación entre sistemas heterogéneos <ul><li>El sistema del departamento de Compras está en Windows/Visual Basic y requiere información del departamento de Contabilidad que utiliza HP-UX/Oracle. </li></ul><ul><li>El nuevo departamento de Web requiere acceso tanto al de Contabilidad y Compras para desplegar información de clientes pero éste ya se encuentra en el flexible y portable lenguaje Java. </li></ul><ul><li>Las incongruencias se hacen evidentes: desde privilegios de acceso (seguridad), representación de datos , transacciones y otra gran gama de posibilidades. </li></ul><ul><li>Esta comunicación entre sistemas heterogéneos presenta el siguiente problema: </li></ul><ul><li>¿Cómo interactuamos? </li></ul>
  3. 3. La solución por excelencia: CORBA, complicado y costoso <ul><li>La manera en que muchas empresas aíslan sus sistemas de este tipo de problemas es mediante la arquitectura común para solicitud de objetos (&quot;Common Object Request Broker Architecture&quot; CORBA), donde se logra una interoperabilidad de sistemas, sin embargo, esta interoperabilidad tiene su costo. </li></ul><ul><li>Entrar en los detalles específicos de un diseño CORBA sería excesivo. Basta decir que antes de programar en &quot;x&quot; lenguaje, debe ser llevado a un diseño en un lenguaje para definición de interfaces (&quot;Interface Definition Language“ - IDL), lo que es de por si solo una ardua labor. Posteriormente debe realizarse el diseño (vía el IDL) en el lenguaje especifico, instalar un software llamado ORB (&quot;Object Request Broker&quot;) que aísla a los diversos sistemas y finalmente coordinar toda esta instalación. </li></ul><ul><li>Obviamente lo anterior requiere no solo trabajo extenso, sino un conocimiento exhausto acerca de las implicaciones que trae a un sistema CORBA: Seguridad, Transacciones, y otras consideraciones. </li></ul><ul><li>En el mundo de XMLRPC/SOAP todo esto se simplifica. </li></ul>
  4. 4. ¿Qué es un Servicio Web? <ul><li>Un servicio Web ( Web service ) es una colección de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. </li></ul><ul><li>Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes y ejecutadas sobre cualquier plataforma pueden utilizar los servicios Web para intercambiar datos en redes de ordenadores como Internet . </li></ul><ul><li>La interoperabilidad se consigue mediante la adopción de estándares abiertos . </li></ul><ul><li>Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. </li></ul><ul><li>Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I , encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares. </li></ul>
  5. 5. Visión general - Escenario Otros servicios Web Servicios Web de tus socios Capa de acceso a datos y almacenamiento Capa de lógica de negocio de la aplicación TuCompañia.com Internet + XML Otras aplicaciones Usuarios finales
  6. 6. Ejemplo de escenario
  7. 7. Visión general - ¿Para qué sirven? <ul><li>Permiten interconectar </li></ul><ul><ul><li>Aplicaciones </li></ul></ul><ul><ul><li>Diferentes clientes </li></ul></ul><ul><ul><ul><li>No sólo browsers </li></ul></ul></ul><ul><ul><li>Cualquier dispositivo </li></ul></ul><ul><ul><ul><li>PC, móvil, PDA, ... </li></ul></ul></ul><ul><li>Distribución de la lógica de la aplicación </li></ul><ul><li>Permiten una Web programable </li></ul><ul><ul><li>No sólo puramente interactiva </li></ul></ul>
  8. 8. Visión general - ¿Qué aporta? <ul><li>Nuevas oportunidades empresariales: facilitan la comunicación con los socios. </li></ul><ul><li>Ofrecen a los usuarios experiencias mucho más personalizadas e integradas, por medio de la nueva gama de dispositivos inteligentes. </li></ul><ul><li>Reducen la duración del ciclo de creación. </li></ul><ul><li>Ponen fácilmente sus propios servicios Web XML a disponibilidad de otros. </li></ul>
  9. 9. Infraestructura - Tecnologías subyacentes Communications: Internet Universal Data Format: XML Wire Format: Service Interactions: SOAP Description: Formal Service Descriptions: WSDL Simple, Open, Broad Industry Support Direcory: Publish & Find Services: UDDI Inspection: Find Services on server: DISCO
  10. 10. Infraestructura - Tecnologías subyacentes <ul><li>XML (eXtensible Markup Language) </li></ul><ul><ul><li>Formato universal para documentos estructurados y datos en la Web administrado por W3C </li></ul></ul><ul><li>UDDI (Universal Description, Discovery and Integration) </li></ul><ul><ul><li>Servicio de directorio que permite publicar y/o describir servicios Web </li></ul></ul><ul><li>DISCO </li></ul><ul><ul><li>Permite encontrar servicios Web en un sitio dado </li></ul></ul><ul><li>WSDL (Web Service Description Language) </li></ul><ul><ul><li>Una gramática basada en XML que permite describir las capacidades de un servicio Web </li></ul></ul><ul><li>SOAP (Simple Object Access Protocol) </li></ul><ul><ul><li>Protocolo ligero para el intercambio de información en entornos distribuidos y descentralizados administrado por W3C </li></ul></ul>
  11. 11. Estándares empleados <ul><li>Web Services Protocol Stack : Así se denomina al conjunto de servicios y protocolos de los servicios Web. </li></ul><ul><li>SOAP o XML-RPC : Protocolos sobre los que se establece el intercambio. </li></ul><ul><li>Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP , FTP , o SMTP . </li></ul><ul><li>WSDL : Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web. </li></ul><ul><li>UDDI : Protocolo para publicar la información de los servicios Web. Permite a las aplicaciones comprobar qué servicios Web están disponibles. </li></ul><ul><li>WS-Security : Protocolo de seguridad aceptado como estándar por OASIS. Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados. </li></ul>
  12. 12. Infraestructura - ¿Cómo acceder? Directory http://www.uddi.org UDDI DISCO WSDL SOAP Inspection http://www.ibuyspy.com/ibuyspy.disco Description http://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl Wire Format Localiza un servicio Enlace al Discovery Document (XML) Pide un Discovery Document Devuelve el Discovery Document (XML) Devuelve la descripción del servicio (XML) Devuelve la respuesta del servicio (XML) Pide un servicio Pide una descripción del servicio Cliente del servicio Web UDDI u otro servicio de directorio Servicio Web
  13. 13. Ventajas <ul><li>Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen. </li></ul><ul><li>Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento. </li></ul><ul><li>Al apoyarse en HTTP, los servicios Web pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado. </li></ul><ul><li>Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados. </li></ul><ul><li>Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar. </li></ul>
  14. 14. Desventajas <ul><li>Para realizar transacciones no pueden compararse en su grado de desarrollo con los estándares abiertos de computación distribuida como CORBA . </li></ul><ul><li>Su rendimiento es bajo si se compara con otros modelos de computación distribuida, tales como RMI , CORBA , o DCOM . Es uno de los inconvenientes derivados de adoptar un formato basado en texto. Y es que entre los objetivos de XML no se encuentran ni la concisión ni la eficacia de procesamiento. </li></ul><ul><li>Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas reglas tratan de bloquear o auditar la comunicación entre programas en ambos lados de la barrera. </li></ul><ul><li>Existe poca información de servicios Web para algunos lenguajes de programación. </li></ul>
  15. 15. Motivaciones para crear Servicios Web <ul><li>La principal razón para usar servicios Web es que se basan en HTTP sobre TCP en el puerto 80. </li></ul><ul><li>Dado que las organizaciones protegen sus redes mediante firewalls -que filtran y bloquean gran parte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80, que es, precisamente, el que usan los navegadores. Los servicios Web se vehiculan por este puerto, por la simple razón de que no resultan bloqueados. </li></ul><ul><li>Otra razón es que, antes de que existiera SOAP , no había buenas interfaces para acceder a las funcionalidades de otros ordenadores en red. Las existents eran ad hoc y poco conocidas, tales como EDI , RPC , u otras APIs . </li></ul><ul><li>Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada vez más importante, dado que la tendencia a construir grandes aplicaciones a partir de componentes distribuidos más pequeños es cada día más acusada. </li></ul>
  16. 16. Service-oriented Architecture <ul><li>In a service-oriented architecture, you have the following: </li></ul><ul><li>A service that implements the business logic and exposes this business logic through well-defined interfaces. </li></ul><ul><li>A registry where the service publishes its interfaces to enable clients to discover the service. </li></ul><ul><li>Clients (including clients that may be services themselves) who discover the service using the registries and access the service directly through the exposed interfaces. </li></ul>Vista por capas de un Servicio Web
  17. 17. Diseño de un Servicio Web <ul><li>En general, un servicio Web: </li></ul><ul><ul><li>Expone una interfaz que sus clientes usan para realizar peticiones al servicio. </li></ul></ul><ul><ul><li>Publica los detalles del servicio disponible a los asociados y a clientes interesados. </li></ul></ul><ul><ul><li>Recibe solicitudes de los clientes </li></ul></ul><ul><ul><li>Delega las peticiones recibidas a la lógica de negocios apropiada y procesa dichas solicitudes. </li></ul></ul><ul><ul><li>Formula y envía una respuesta a la petición. </li></ul></ul>
  18. 18. Flujo de un Web Service en JAVA
  19. 19. Plataformas <ul><li>Servidores de aplicaciones para servicios Web: </li></ul><ul><li>Axis y el servidor Jakarta Tomcat (de Apache) </li></ul><ul><li>ColdFusion MX de Macromedia </li></ul><ul><li>Java Web Services Development Pack (JWSDP) de Sun Microsystems (basado en Jakarta Tomcat ) </li></ul><ul><li>JOnAS (parte de ObjectWeb una iniciativa de código abierto) </li></ul><ul><li>Microsoft .NET </li></ul><ul><li>Novell exteNd (basado en la plataforma J2EE ) </li></ul><ul><li>WebLogic </li></ul><ul><li>WebSphere </li></ul><ul><li>Zope es un servidor de aplicaciones Web orientado a objetos desarrollado en el lenguaje de programación Python </li></ul><ul><li>VERASTREAM de AttachmateWRQ para modernizar o integrar aplicaciones host IBM y VT </li></ul><ul><li>Mono </li></ul>
  20. 20. Surgimiento de XMLRPC y SOAP <ul><li>El surgimiento de XMLRPC/SOAP tiene sus raíces en la manera que son invocados procedimientos remotos en diversos sistemas de computo, por ende, es conveniente describir este proceso. </li></ul><ul><li>Diversos Sistemas Operativos y Lenguajes </li></ul><ul><li>Conocemos que la gran mayoría de las corporaciones van conformando su sistema de información a través de las necesidades que surgen en distintas áreas de operación, lo que trae aparejada una disparidad en áreas que varían desde lenguajes, protocolos de comunicación, sistemas operativos, bases de datos y otros elementos. Esta discrepancia no seria tan crítica si los diversos sistemas pudieran permanecer aislados. Sin embargo, la realidad es otra. </li></ul>
  21. 21. XML-RPC <ul><li>Protocolo de llamada a procedimiento remoto que usa XML para codificar las llamadas y HTTP como mecanismo de transporte. </li></ul><ul><li>Es un protocolo muy simple ya que sólo define unos cuantos tipos de datos y comandos útiles, además de una descripción completa de corta extensión. </li></ul><ul><li>La simplicidad del XML-RPC está en contraste con la mayoría de protocolos RPC que tienen una documentación extensa y requieren considerable soporte de software para su uso. </li></ul><ul><li>Fue creado por la empresa UserLand Software en asociación con Microsoft en el año 1995. Al considerar Microsoft que era muy simple y adicionar funcionalidades y después de varias etapas de desarrollo el estándar dejó de ser sencillo y se convirtió en lo que es actualmente se conoce como SOAP . </li></ul>
  22. 22. SOAP <ul><li>El protocolo de acceso simple a objetos ( Simple Object Access Protocol - SOAP ) es un protocolo estándar creado por Microsoft, IBM y otros, está actualmente bajo el auspicio de la W3C que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML . </li></ul><ul><li>SOAP es uno de los protocolos utilizados en los servicios Web . </li></ul><ul><li>SOAP usa el código fuente en XML. </li></ul><ul><li>Esto es una ventaja ya que facilita su lectura por parte de humanos, pero también es un inconveniente dado que los mensajes resultantes son más largos. </li></ul><ul><li>El intercambio de mensajes se realiza mediante tecnología de componentes (ver ingeniería de software ). </li></ul><ul><li>El término Object en el nombre significa que se adhiere al paradigma de la Programación Orientada a Objetos . </li></ul>
  23. 23. SOAP <ul><li>La especificación SOAP indica cómo se deben codificar los mensajes que circularán entre las dos aplicaciones. </li></ul><ul><li>Fue definido inicialmente por Microsoft , Userland Software y DevelopMentor , a día de hoy se trata de una especificación mantenida por el W3C que cuenta con el apoyo de otros fabricantes como IBM , HP , Oracle , etc. </li></ul><ul><li>La especificación SOAP define dos modelos de mensajes: </li></ul><ul><ul><li>Un mensaje que se enviará desde la aplicación cliente a la aplicación servidor, solicitando la ejecución de un método al que se pasan una serie de parámetros. </li></ul></ul><ul><ul><li>Un mensaje que se enviará desde la aplicación servidor a la cliente, y que contendrá datos XML con los resultados de la ejecución del método solicitado. </li></ul></ul>
  24. 24. Arquitectura de SOAP <ul><li>SOAP esta diseñado para realizar intercambios de información en XML en sistemas altamente distribuidos, específicamente Internet. </li></ul><ul><li>Uno de los conceptos integrados a SOAP que no existe en XMLRPC es el uso de un lenguaje neutro , descendiente de XML, para describir las funciones/métodos residentes en &quot;el servidor &quot;. </li></ul><ul><li>Esto tiene una ventaja muy evidente: </li></ul><ul><li>Al utilizar el lenguaje neutro WSDL para describir las funcionalidades de &quot;el servidor&quot;, éste funciona como un contrato al que se deben apegar los distintos &quot;clientes &quot;. </li></ul><ul><li>Lo anterior facilita que puedan ser escritos &quot;clientes&quot; en diversos lenguajes a partir de este contrato. </li></ul>
  25. 25. Tecnología de SOAP <ul><li>SOAP es un marco extensible y descentralizado que permite trabajar sobre múltiples pilas de protocolos de redes informáticas. </li></ul><ul><li>Los procedimientos de llamadas remotas pueden ser modelados en la forma de varios mensajes SOAP interactuando entre sí. </li></ul><ul><li>SOAP funciona sobre cualquier protocolo de Internet, generalmente HTTP , que es el único homologado por el W3C . </li></ul><ul><li>SOAP tiene como base XML , con un diseño que cumple el patrón Cabecera-Desarrollo de diseño de software, como otros muchos diseños, verbigracia HTML. </li></ul><ul><li>La cabecera ( Header ) es opcional y contiene metadatos sobre enrutamiento ( routing ), seguridad o transacciones . </li></ul><ul><li>El desarrollo ( Body ) contiene la información principal, que se conoce como carga útil ( payload ). </li></ul><ul><li>La carga útil se acoge a un XML Schema propio. </li></ul>Estructura del mensaje
  26. 26. Implementaciones de SOAP <ul><li>Al igual que XMLRPC, hoy en día ya existen diversas herramientas para desarrollar aplicaciones SOAP que incluyen generadores de WSDL para distintos lenguajes, servidores UDDI y otros paquetes más. </li></ul><ul><li>Algunas de estas herramientas son: </li></ul><ul><ul><li>Web services Pack de Sun para Java </li></ul></ul><ul><ul><li>Toolkit IBM web services para Java </li></ul></ul><ul><ul><li>WASP para C++ y Java </li></ul></ul><ul><ul><li>Toolkit Microsoft SOAP para COM/VBasic/.Net </li></ul></ul>
  27. 27. Modo de trabajo <ul><li>A partir de WSDL se describen las funcionalidades del Web service. </li></ul><ul><li>En XMLRPC es necesario conocer de antemano que funciones/métodos residen en &quot;el servidor&quot; y no solo esto, sino que además se requiere conocer el lenguaje en el que esta escrito &quot;el servidor“ </li></ul><ul><li>A través de WSDL se logra aislar el lenguaje especifico del Web service. </li></ul><ul><li>Además del uso de WSDL, a SOAP se le ha incorporado UDDI, cuyo principio radica en el intercambio comercial entre empresas denominado &quot;E-Business&quot;. </li></ul><ul><li>A través de UDDI se logra concentrar y publicar Web services en un directorio centralizado. </li></ul><ul><li>Además de UDDI existen otros mecanismos para concentrar y publicar Web services tales como ebXML y WSIL . </li></ul>
  28. 28. Web Services Description Language - WSDL <ul><li>El Lenguaje para Descripción de Servicios Web es un formato XML que se utiliza para describir servicios Web, cuya versión 1.1 está en estado de &quot;propuesta de recomendación&quot; por parte del W3C . </li></ul><ul><li>WSDL describe la interfaz pública a los servicios Web. </li></ul><ul><li>Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. </li></ul><ul><li>Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje. </li></ul>
  29. 29. Uso y Generación de WSDL <ul><li>El diseño de Clientes en SOAP generalmente es llevado acabo a partir de un archivo escrito en WSDL. </li></ul><ul><li>Mediante una definición de este tipo es posible distribuir los detalles del Web service en un lenguaje neutro , lo cual permite que la definición (Cliente) sea implementada en distintos lenguajes y ambientes tales como: C++, Perl o VBasic/.NET . </li></ul><ul><li>WSDL también se encuentra basado en el lenguaje XML y es generado a partir de diversas herramientas proporcionadas en distintos ambientes SOAP. </li></ul><ul><li>El siguiente enlace describe como generar un archivo WSDL a través de herramientas proporcionadas con Axis : </li></ul><ul><ul><li>Generación de WSDL (&quot;Web Services Description Language&quot;) </li></ul></ul>
  30. 30. UDDI y ebXML <ul><li>Generado un archivo WSDL para nuestro Web service, podrá ser accedido desde diversas plataformas y lenguajes. </li></ul><ul><li>Existe otro eslabón crítico para desarrollos SOAP: </li></ul><ul><ul><li>&quot;Universal Description, Discovery and Integration Directory&quot; (UDDI) o </li></ul></ul><ul><ul><li>&quot;Electronic Business XML Working Group &quot; (ebXML). </li></ul></ul>
  31. 31. Web Service Inspection Language - WSIL <ul><li>WSIL es una especificación muy reciente iniciada por IBM y Microsoft que ofrece un mecanismo complementario a UDDI y ebXML para encontrar Web services en una red como Internet. </li></ul><ul><li>A diferencia de UDDI donde se realizan búsquedas en un directorio centralizado, mediante WSIL se inspecciona un &quot;Web-Server&quot; conocido, realizando una búsqueda por Web services. Es mediante archivos escritos en WSIL que se logra su descubrimiento. </li></ul><ul><li>Es una especificación muy reciente. Sus implementaciones son mínimas, puede consultar mayores detalles de WSIL en: </li></ul><ul><ul><li>Especificación WSIL 1.0 </li></ul></ul>
  32. 32. Razones para WSIL <ul><li>Existen dos razones principales por las que surgió WSIL : </li></ul><ul><li>Falta de Moderación: Debido a la misma escalabilidad con la que fue diseñado UDDI, existe una clara falta por moderar los Web services que son publicados en este tipo de Directorios. </li></ul><ul><li>Lo anterior trae consigo la publicación de &quot;Web Services Description Language&quot; inválidos, la duplicidad de WSDL e inclusive la publicación de Web services no disponibles. </li></ul><ul><li>Falta de Calidad de Servicio (QoS): Este punto aunque relacionado con el anterior se refiere a la garantía del servicio ofrecido por el proveedor del Web service, esto es: debido a que UDDI es un directorio público en Internet, ¿quién garantiza que el Web service utilizado o comprado cumpla con determinados requerimientos? </li></ul><ul><li>Esto nos lleva al antiguo concepto de negocios: Comprar o adquirir a quien ya conocemos , y es precisamente en este principio en el que esta basado WSIL . </li></ul>
  33. 33. Conclusiones <ul><li>Mediante XMLRPC/SOAP se logra que el intercambio de información sea realizado en XML . </li></ul><ul><li>Aquí se esta tomando el primer paso en sencillez: </li></ul><ul><ul><li>la representación de datos no posee ningún formato específico ya que XML es texto-simple . </li></ul></ul><ul><li>XMLRPC/SOAP ha sido diseñado alrededor de HTTP (el protocolo utilizado en Internet), lo que no sólo facilita el problema de acceso(&quot;Firewalls&quot;) que siempre es un problema en sistemas CORBA, sino que abre la puerta a la posibilidad de acceder métodos remotos en maquinas de cualquier empresa, en el proceso automatizando intercambios de información de una manera transparente. </li></ul>
  34. 34. XMLRPC o SOAP: ¿Cuál es la diferencia ? <ul><li>XMLRPC fue el primer mecanismo que surgió para invocar procedimientos remotos vía XML, ofrece una manera muy sencilla de invocar operaciones en sistemas heterogéneos a través de una estructura simple. </li></ul><ul><li>SOAP (&quot;Simple Object Access Protocol&quot;) es una implementación más robusta para llevar acabo una intercomunicación en XML. </li></ul><ul><li>A diferencia de XMLRPC, a SOAP se le han integrado diversos mecanismos que le permiten operar en ambientes distribuidos mas complejos tales como: </li></ul><ul><ul><li>un lenguaje neutro para su descripción: WSDL y </li></ul></ul><ul><ul><li>directorios distribuidos para su ubicación: UDDI o ebXML. </li></ul></ul>
  35. 35. J2EE y Servidor de Aplicaciones
  36. 36. Especificaciones de las tecnologías J2EE <ul><li>Java™ 2 Platform, Enterprise Edition Specification, Version 1.4 (J2EE specification) . </li></ul><ul><li>Java™ API for XML-Based RPC Specification, Version 1.1 ( JAXP specification). </li></ul><ul><li>Java™ API for XML Processing Specification, Version 1.2 ( JAXP specification) . </li></ul><ul><li>SOAP with Attachments API for Java Specification, Version 1.2 (SAAJ specification) . </li></ul><ul><li>Java API for XML Registries Specification, Version 1.0 (JAXR specification) . </li></ul><ul><li>Web Services for J2EE Specification, Version 1.1 . </li></ul><ul><li>Java API for XML Binding Specification (JAXB specification) . </li></ul><ul><li>Java™ Servlet Specification, Version 2.4 (Servlet specification) . </li></ul><ul><li>JavaServer Pages™ Specification, Version 2.0 (JSP specification). </li></ul><ul><li>Enterprise JavaBeans™ Specification, Version 2.1 (EJB specification) . </li></ul><ul><li>J2EE™ Connector Architecture Specification, Version 1.5 ( Connector specification) . </li></ul><ul><li>Java™ Message Service Specification, Version 1.0.2 (JMS specification) . </li></ul>
  37. 37. J2EE 1.4 Platform Architecture
  38. 38. Java Application Servers <ul><li>Un Java Application Server (ya denominado Application Server ) proporciona el ambiente necesario para ejecutar EJB's y su estructura es la siguiente: </li></ul><ul><li>Los dos componentes principales de un Application Server son el &quot;Servlet Engine&quot; (Web-Container) y &quot;Enterprise Bean Engine&quot; (Bean-Container) aunque no sean comercializados como tal. Dentro del &quot;Servlet Container&quot; residen y se ejecutan JSP's y Servlet's, mientras que en el &quot;Enterprise Bean Container&quot; se ejecutan los EJB's. </li></ul>
  39. 39. Application servers fully J2EE Compliant <ul><li>Existen varios en el mercado. Entre los mas usados: </li></ul><ul><li>Sun Application Server (gratuito para desarrolladores) </li></ul><ul><li>Apache Tomcat (Open Source - gratuito) </li></ul><ul><li>JBoss (Open Source – gratuito) </li></ul><ul><li>Oracle 10g Application Server (descarga gratuita) </li></ul><ul><li>IBM Websphere (bajo licencia comercial) </li></ul><ul><li>BEA WebLogic (bajo licencia comercial) </li></ul><ul><li>En estos &quot;Application Servers&quot; no existe una clara distinción (al menos para el programador final) entre el &quot;Servlet Engine&quot; y el &quot;EJB Engine&quot; por lo que la ejecución de componentes se lleva acabo de una manera relativamente transparente. </li></ul><ul><li>En este curso se utiliza Sun Application Server, aunque debe destacarse que también NetBeans posee la opción de utilizar Apache Tomcat, el cual trae como servidor asumido. </li></ul><ul><li>Puede consultar detalles adicioanles sobre Servidores de Páginas y de aplicaciones en: </li></ul><ul><li>&quot;Web Servers&quot; y &quot;Java Application Servers&quot; </li></ul>
  40. 40. Herramientas J2EE SUN Microsystems Developer Network <ul><li>XML Sun Developer Network </li></ul><ul><li>Java API for XML Processing (JAXP) </li></ul><ul><li>Java API for XML Registries (JAXR) </li></ul><ul><li>Java API for XML-based RPC (JAX-RPC) </li></ul><ul><li>Java Architecture for XML Binding (JAXB) </li></ul><ul><ul><li>Introducción a JAXB con NetBeans </li></ul></ul><ul><li>SOAP with Attachments API for Java (SAAJ) </li></ul><ul><li>The J2EE 1.4 Tutorial for NetBeans IDE 4.1 </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×