Data Set 6, Session 46 (Monday)
5.7 Summary of use of interpretation
Este proyecto fue realizado para integrarse con las tecnologías de AngularJS que se despliegan en el cloud Heroku para permitir la comunicación entre los servidores de aplicaciones de la empresa y Heroku.
Ilustración 6 Arquitectura de Despliegue
Fuente: elaboración propia
El modelo anterior representa el escenario genérico de despliegue de una aplicación desarrollada por ST&T. Dependiendo los requerimientos de negocio, la base de datos se desarrolla sobre Teradata o DB2 (IBM), así mismo, el código Java que define la lógica de negocio se desarrolla para los servidores JBoss o Apache Tomcat 7, dependiendo del requerimiento del cliente. A nivel visual se utiliza el servidor de aplicaciones Apache Tomcat 8 el cual es instalado sobre el cloud Heroku.
A nivel general la arquitectura de componentes de la empresa se basa en un sistema multinivel y multicapa, combinado con los beneficios de un sistema distribuido, esto se debe a que existen varios servidores JBoss y varios Servidores Apache Tomcat7. La capa de presentación se basa bajo la arquitectura MVC, en el cual el modelo se define en Java, la vista se define en HTML extendido con AngularJS, y el controlador se basa en el uso de servicios REST que se comunican con clientes JavaScript por medio de la tecnología de Ajax.
72
Ilustración 7 Interacción de WSProxyGenerator
Fuente: elaboración propia
La herramienta CASE desarrollada fue nombrada “ws-proxy-generator”. Su interacción con el modelo de arquitectura presentado anteriormente se basa en facilitar la comunicación entre los servidores Apache Tomcat 7 y JBoss con el servidor Apache Tomcat 8 por medio de la generación automática de clientes Java que serán instalados en el servidor Apache Tomcat 8. Desde la perspectiva cliente-servidor en este escenario el cliente es el servidor Apache Tomcat 8 y los servidores son Apache Tomcat 7 y JBoss.
73 4.2. Arquitectura de la Solución
La arquitectura de la herramienta CASE WSProxyGenerator se encuentra definida en el siguiente diagrama:
Ilustración 8 Arquitectura de la Solución
Fuente: elaboración propia
A nivel general, el modelo anterior contiene la integración del flujo lógico de la herramienta con el funcionamiento interno. Los componentes cuyo fondo es de color verde representan los Frame finales de usuario (ventanas finales de usuario), los de azul representan los componentes más relevantes de la herramienta. Los círculos de color rojo con la palabra “END” definen el final de la ejecución de la herramienta.
El flujo de la aplicación comienza desde el Frame [MainFrame] que contiene los parámetros iniciales para comenzar con la generación del cliente. Entre los parámetros solicitados están el WSDL, directorio de salida y el paquete de salida final. Una vez se captura la información, se inicia la validación de datos, se valida el acceso al WSDL, se verifica la existencia del directorio de salida y la definición correcta de un nombre de paquete. Luego la herramienta CASE procede a interpretar el WSDL para generar el modelo lógico de un cliente proxy. Una vez terminada la interpretación, la herramienta presenta un árbol con el modelo lógico del cliente. Dicho árbol puede recibir ediciones en sus parámetros, nombres de servicio y métodos, de forma adicional se permite la eliminación de métodos. Una vez el usuario final edita el árbol de acuerdo con los requerimientos del negocio, la herramienta presenta una previsualización del cliente final, la cual puede escribirse como archivo en el directorio del sistema especificado anteriormente. Finalmente, la herramienta ofrece iniciar el flujo con un nuevo WSDL dar por terminada la generación.
74
5.
CONCLUSIONES
Los procesos internos de la compañía ST&T requieren un personal altamente calificado para cumplir con los requerimientos del cliente. Al hacer uso de los recursos humanos, económicos y tecnológicos brindados por la empresa, se planeó y ejecutó este proyecto, cuyo resultado proporcionó un mecanismo práctico para facilitar la comunicación entre servidores apoyados en la herramienta CASE desarrollada.
La implementación de dicha herramienta plantea mejoras en los procesos para los servicios ofrecidos por la compañía, pues apoya la aplicación de estándares de calidad en pro de los principios de eficiencia, eficacia, escalabilidad, mantenibilidad y usabilidad, reduce los tiempos de planeación, desarrollo y evaluación de los proyectos, y mitiga los riesgos ante errores humanos o de definición de reglas de negocio en la creación de los clientes proxy. En un sentido estratégico, la metodología PHVA utilizada durante el desarrollo y puesta en marcha del proyecto sirvió como base en la retroalimentación y mejora continua, para lo cual se aplicaron 2 ciclos. El primer ciclo del proyecto consistió en el desarrollo de la herramienta CASE capaz de generar automáticamente el código para facilitar la comunicación entre servidores. En el segundo ciclo se llevaron a cabo algunas mejoras a la herramienta, tales como las opciones de editar o eliminar elementos de la estructura de un cliente proxy, y la previsualización de la definición de dicha estructura.
Finalmente se detectó y evidenció que la interpretación de los WSDL es una tarea compleja que implica una intervención imperativa por parte del personal del área de desarrollo, lo cual representa un inconveniente y aumenta el margen de error humano. A lo anterior, se suma el volumen considerable de operaciones de los servicios web actuales y por implementar, tales como consulta, edición, inserción o eliminación de datos de todos los modelos expuestos en los WSDL, lo cual incrementa los tiempos asignados para los proyectos. Dicho inconveniente es solventado mediante la implementación de la herramienta CASE WSProxyGenerator.
75
6.
BIBLIOGRAFÍA E INFOGRAFÍA
1 Web Services – Axis. The Apache Software Foundation [en línea], [revisado 4 de agosto
de 2017]. Disponible en Internet: http://axis.apache.org/axis/
2 JavaTM API for XML-Based Web Services (JAX-WS) 2.0. Java Community Process [en
línea], [revisado 4 de agosto de 2017]. Disponible en Internet:
https://jcp.org/en/jsr/detail?id=224
3 WsImport - Java™ API for XML Web Services (JAX-WS) 2.0. Oracle [en línea], [revisado 4
de agosto de 2017]. Disponible en Internet:
http://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html
4 ST&T. Software, Telecommunications and Technology - Quiénes somos. [en línea],
[revisado 4 de agosto de 2017]. Disponible en Internet: http://www.stt.com.co/
5 Martínez Acosta, Deivis de Jesús. Herramienta para la generación del código fuente para
aplicaciones con arquitectura Modelo Vista Controlador (MVC) bajo desarrollo dirigido por modelos textuales (MDD). Msc. en Ingeniería de Sistemas y Computación. 1 Volumen, Bogotá D.C.: Universidad Nacional de Colombia, 2014.
6 Learn about Quality: Plan – Do – Check – Act. ASQ [en línea], [revisado 4 de agosto de
2017]. Disponible en Internet: http://asq.org/learn-about-quality/project-planning- tools/overview/pdca-cycle.html
7 Candela, Santiago. García, Rubén. Quesada, Alexis. Santana, Francisco. Santos, Miguel.
Fundamentos de sistemas operativos. Madrid. Thomson Editores Spain. Pág. 336, 2007.
8 Trail: RMI (Remote Method Invocation). Oracle [en línea], [revisado 4 de agosto de 2017].
Disponible en Internet: https://docs.oracle.com/javase/tutorial/rmi/
9 Brito, Nacho. JavaEE como siempre debió haber sido. Manual de desarrollo web con Grails.
Volumen 1,0. Pág. 131
10 Vukotic, Aleksa. Goodwill, James. Apache Tomcat 7. La voz expert en Java. Apress.
Friendsof.
11Web Services Description Languaje. W3C [en línea] [revisado 07 de agosto de 2017]
Disponible en Internet: https://www.w3.org/TR/wsdl#_notational
12 Marchioni, Francesco. JBoss as 7 development. Develop, deploy and secure Java
applications on the new release of this robust, open source application server. Packt.
76
13 HTTP Components. The Apache software foundation [en línea], [revisado 4 de agosto de
2017]. Disponible en Internet: http://hc.apache.org/httpclient-3.x/
14 Gupta, Arun. Stearns, Beth. Getting Started with JAX-RPC [en línea], abril 2002 [revisado
4 de agosto de 2017]. Disponible en Internet:
http://www.oracle.com/technetwork/articles/javase/getstartjaxrpc-135460.html
15 Spring Web Services. Spring by Pivotal. [en línea], [revisado 4 de agosto de 2017].
Disponible en Internet: http://projects.spring.io/spring-ws/
16 Heroku. What is Heroku? [en línea], [revisado 4 de agosto de 2017]. Disponible en
Internet: https://www.heroku.com/what
17 AngularJS. Super-powered by Google ©2010-2017 [en línea], [revisado 4 de agosto de