Web Services bajo la plataforma J2EE

Document Sample
Web Services bajo la plataforma J2EE Powered By Docstoc
					             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.       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.
  2.       Examinar e investigar, realizando una comparación exhaustiva, todas las
           tecnologías de componentes utilizadas profesionalmente.
  3.       Analizar las dos grandes plataformas existentes para el desarrollo de servicios
           Web, J2EE y .Net, viendo sus principales diferencias y características.
  4.       Evaluar los resultados obtenidos, para poder contrastar todos los aspectos de
           esta tecnología Web.
  5.       Analizar y documentar las distintas herramientas Open Source para el
           desarrollo de servicios Web bajo J2EE.
  6.       Evaluar los resultados obtenidos, para poder elegir la mejor herramienta a la
           llevar a la práctica.
  7.       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.
  8.       Desarrollar una serie de ejercicios prácticos, que nos permitan justificar los
           resultados teóricos obtenidos, con la puesta en práctica implementada.
  9.       Redactar un informe o memoria final.




      3    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.
            -    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.


    6    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