Download 1 Introducción
Document related concepts
no text concepts found
Transcript
Anteproyecto de Trabajo Fin de Carrera Web Services bajo la plataforma J2EE WASP Server for Java de Systinet Antonio Ortiz Baíllo Ingeniería en Informática Escuela Técnica Superior de Ingeniería Informática Universidad de Alcalá ortiz_baillo@yahoo.es Palabras clave. Servicios Web, XML, SOAP, WSDL, UDDI 1 Introducción Si intentamos centrar el estado actual del desarrollo de aplicaciones basadas en el Web, podemos encontrar una gran cantidad de tecnologías, muchas de ellas incompatibles entre sí, y lo que es peor, inaccesibles a través de Internet. Pero si una conclusión podemos obtener de esto, es que, las arquitecturas basadas en tecnología de componentes, están tomando un papel principal dentro del desarrollo Web (Solo Programadores Nº 111, 2004). Los servicios Web, se proponen como una alternativa para facilitar la intercomunicación entre diferentes arquitecturas de componentes, ofreciendo una visión de dichas arquitecturas, basada en servicios, totalmente compatible con Internet. (WebLogicPro Techical Publication, 2004) La aparición de los servicios Web, y de las Arquitecturas Orientadas a Servicios (SOA), supone el establecimiento de nuevos mecanismos de comunicación B2B, B2C, B2E. El organismo encargado de definir estos estándares, y asegurar este comportamiento, es el WS-I (Web Services Interoperability Organization, http://www.ws-i.org). Gracias a este organismo, va a ser posible que, sistemas desarrollados en diferentes plataformas y diferentes lenguajes de programación, puedan interactuar. La Arquitectura Orientada a Servicios, es un concepto desarrollado dentro de la plataforma J2EE, y que, pretende extender la idea de servicio Web, de forma que una invocación, implique la ejecución de más de un servicio Web, aunque esto evidentemente, resulte transparente al usuario (Solo Programadores Nº 112, 2004). Un servicio Web, va a poner a nuestra disposición una serie de operaciones, invocables mediante HTTP/XML. Esta arquitectura, se basa en una serie de perfiles que realizan las tareas de: Proveedor de servicios: Componente que se encarga de poner un servicio a disposición de los clientes, y de publicar el interface del mismo. Agente de servicio: Encargado de registrar servicios publicados por un proveedor, así como de informar a posibles consumidores, de qué forma pueden acceder a un servicio Web. Consumidor de servicios: Elemento que se encarga de invocar a un servicio, y que, también realizará consultas al agente, para obtener información relativa a servicios. La existencia de estos tres perfiles, implica la aparición de tres características funcionales básicas en el sistema: Transporte: Componente encargado de definir el formato y protocolos empleados a la hora de intercambiar la información, entre un cliente y un servicio Web. Descripción: Componente encargado de describir el interface de un servicio Web, de forma que un cliente, pueda consultar dicha información. Descubrimiento: Encargado de realizar la publicación de un nuevo servicio Web, y de responder a búsquedas de servicios publicados. (Sun Microsystems, “The Java Web Services Tutorial” http://java.sun.com/webservices/docs/ea1/tutorial/index.html) El trabajo que se propone, trataría de estudiar las posibilidades reales de este nuevo tipo de arquitecturas, buscando las diferencias, ventajas, y características propias, realizando para ello, un exhaustivo estudio comparativo entre las diferentes arquitecturas. Posteriormente a dicho estudio, el trabajo se centraría en la plataforma J2EE, ya que es la que ha dado un segundo impulso a esta tecnología Web, con la implementación de una nueva arquitectura Orientada a Servicios (SOA). El software Open Source, ha probado su fiabilidad a millones de usuarios en todo el mundo, además, ha demostrado ser fiable y tener infinitud de grandes funcionalidades, según una encuesta realizada entre grandes compañías Europeas (IDC Abril 2003). Por eso, grandes empresas de sectores como el de las Telecomunicaciones, Financiero, Distribución, Energía y sobre todo Administraciones Públicas, están poniendo en marcha políticas de implantación de software de código abierto. A nivel mundial, nombres como Yahoo!, Google, AOL, Amazon, NASA, IBM, Compaq, HP… han apostado por el software Open Source como parte de su estrategia corporativa. (Soluciones Open Source de Quality Objects, 2004). Es por estas razones, por las que se ha decidido centrar el estudio de este tipo de aplicativos, en herramientas Open Source. Como es lógico, la cantidad de herramientas creadas para facilitar el desarrollo de servicios Web, es grande. De entre todas las posibilidades, se ha elegido el WASP Server de Systinet, ya que además de ser libre, es una de las que más se está utilizando actualmente a nivel profesional. El motivo de su elección, salta a la vista, se trata de una herramienta que no sólo nos permite el desarrollo de servicios Web, sino que también, nos permite su gestión y administración, de una manera sencilla y eficiente, con un amplio abanico de utilidades. Totalmente compatible e ínteroperable con aplicaciones ampliamente establecidas como Tomcat, JBoss, WebSphere… (Wasp Server for Java Tutorial http://www.systinet.com). 2 Objetivos El objetivo principal del trabajo consiste en, llevar a cabo un estudio exhaustivo de las tecnologías orientadas a servicios, y particularmente los servicios Web, para obtener resultados tangibles que nos muestren su verdadero alcance. Los objetivos específicos planteados son los siguientes: 1. 2. 3. 4. 5. 6. 7. 8. 9. 3 Analizar y documentar los fundamentos y estándares en los que se apoyan las aplicaciones orientadas a servicios (SOA), y en especial los servicios Web. Examinar e investigar, realizando una comparación exhaustiva, todas las tecnologías de componentes utilizadas profesionalmente. Analizar las dos grandes plataformas existentes para el desarrollo de servicios Web, J2EE y .Net, viendo sus principales diferencias y características. Evaluar los resultados obtenidos, para poder contrastar todos los aspectos de esta tecnología Web. Analizar y documentar las distintas herramientas Open Source para el desarrollo de servicios Web bajo J2EE. Evaluar los resultados obtenidos, para poder elegir la mejor herramienta a la llevar a la práctica. Analizar todas las posibilidades que nos ofrece el WASP Server de Systinet, para el desarrollo, administración e interoperabilidad de aplicaciones basadas en servicios Web. Desarrollar una serie de ejercicios prácticos, que nos permitan justificar los resultados teóricos obtenidos, con la puesta en práctica implementada. Redactar un informe o memoria final. Resultados El principal resultado del trabajo será un informe (memoria) con los siguientes contenidos: - - Una descripción, de los fundamentos y estándares que conforman el cuerpo y la estructura de la arquitectura de los servicios Web. El diseño de una serie de aplicaciones, que lleven a la práctica todas las posibilidades ofrecidas por los servicios Web, mostrando su principal característica, la interoperabilidad. El análisis de los resultados obtenidos al implementar las aplicaciones bajo esta arquitectura de servicios, obteniendo de esta manera su rendimiento y características reales. El principal resultado, se pretende obtener tras desarrollar las distintas aplicaciones de ejemplo. Será en éstas, en las que podremos observar el rendimiento, características y funcionalidades de las arquitecturas orientadas a servicios, documentando además del código fuente, el resto de actividades de ingeniería del software, que se hayan realizado durante el proceso de desarrollo de los prototipos. 4 Metodología El método que se aplicará en el trabajo, será el más adecuado para este tipo de desarrollo: se llevará a cabo en una revisión bibliográfica profunda, sobre la situación actual de las arquitecturas orientadas a servicios, y su aplicación en el mundo profesional. Para ello, nos basaremos en la observación activa, en la experimentación y en el estudio de casos. Gracias a estos métodos de investigación, podremos obtener todos los resultados que estamos esperando de este trabajo. Se diseñarán e implementarán, aplicaciones reales basadas en servicios Web, llevando a la práctica todo aquello que durante el estudio se considere de interés. Tendremos que reflejar en la memoria, por una parte las conclusiones teóricas a las que se va llegando, y por otra, el contraste con los resultados prácticos, considerando el mayor número de casos de prueba posible. 5 Recursos Para la realización del proyecto, se precisará del siguiente equipamiento informático: - - Hardware: Se necesitará un computador personal con acceso a Internet. De Internet será de donde obtendremos la mayor parte de la información que necesitaremos, principalmente de foros y páginas especializadas en estas arquitecturas. En cuanto al ordenador, necesitaremos un equipo con un procesador de alta velocidad, superior a 2 GHz, una memoria principal superior a 512 Mb, y una unidad de almacenamiento interna superior a 80 Gb. Estos requerimientos, son debidos a que, los programas software que vamos a utilizar, así como los gestores de bases de datos, requerirán de una gran potencia de cálculo. Para poder experimentar con este tipo de arquitecturas, y poder obtener mayor rendimiento a este trabajo, sería conveniente disponer de varios computadores, de similares características, durante el periodo de puesta en práctica, ya que, de esta manera, los resultados obtenidos podrán reflejar de mejor forma la realidad. Software: Se utilizarán las utilidades de programación que a continuación vamos a enunciar: - JDK 1.4 (J2EE), distribuido por Sun Microsystems. - Eclipse 1.3, utilizado como IDE, distribuido de manera gratuita en la página oficial de Eclipse. - WASP Server 5 e UDDI Server, utilizado como gestor de servicios Web, distribuido de manera gratuita por Systinet. - - 6 Apache Tomcat 5.0.28, utilizado como servidor de aplicaciones, distribuido de manera gratuita en la página oficial del proyecto Apache Jakarta. MySQL, utilizado como gestor de Bases de Datos. También se trata de un producto de libre distribución. Bibliografía Sun Microsystems. (2004), “The Java Web Services Tutorial” http:\\www.java.sun.com\webservices\docs\ea1\tutorial\index.html. Systinet. (2004), “WASP Server for Java 5 and UDDI Server” http:\\www.systinet.com. Solo Programadores. (2004) Nº 111, 40-44. Solo Programadores. (2004) Nº 112, 44 – 61. WebLogicPro Techical Publication Julio/Agosto 2004, Vol.1 No. 2 Web Services Interoperability Organization, http://www.ws-i.org Soluciones Open Source, Ponencia Quality Objects, II Congreso JavaHispano., 2004 Web Services ORG. (2002), http://www.webservices.org Introducing Web Services. (2002), http:\\www.asp.net.do\doc Introducción a los servicios Web en Java. (2002), http:\\www.programacion.com\java Web-Services Nativos. (2002), http:\\www.osmosislatina.com\servicios Graham, T. (2001), “Building Web Services With Java. Making Sense of XML, SOAP, WSDL and UDDI” http://www.sider.org Web-Services mediante WSDL. (2002), http:\\www.osmosislatina.com\servicios .Net Vs Java. (2003), http:\\www.lafactoriadeinternet.com\lafactoria\ Web Services Code Samples. (2002), http:\\www.java.sun.com 7 Planificación El diagrama de Gantt con la planificación inicial prevista es el que a continuación se muestra: Figura 1. Diagrama de Gantt detallando la duración de las tareas Figura 2. Diagrama de Gantt detallando la distribución en el calendario de las tareas