Revista: Caribeña de Ciencias Sociales
ISSN: 2254-7630


MODELO DE ARQUETIPOS PARA SERVICIOS WEB DINÁMICOS ENFOCADO EN APLICACIONES DE N CAPAS EN LA ARQUITECTURA ORIENTADA A SERVICIO

Autores e infomación del artículo

Oscar Omar Apolinario Arzube

Jorge Arturo Chicala Arroyave

Viviana Fabiola Pinos Medrano

Roberto Jose Zurita del Pozo

Docentes de la Facultad de Matemáticas y Física, Universidad de Guayaquil (FCMF), Ecuador

oscar.apolinarioa@ug.edu.ec

RESUMEN

Una entrevista realizada a un grupo de especialistas en desarrollo de software de la Ciudad de Guayaquil arrojó un elevado grado de esfuerzo y dinero para la atención de los requerimientos funcionales en los sistemas que usan servicios web. De ello se derivó en la necesidad de realizar el presente estudio. Se procedió a investigar, de forma analítica, la técnica de cómo crear servicios WEB sobre proyectos de software. El propósito fundamental del este estudio fue validar y transformar la mecánica de esta técnica, para sus posteriores aplicaciones con servicios web dinámicos. Con este fin se realizó un estudio de tipo exploratorio, cualitativo y cuantitativo, cuyo diseño de la investigación fue observacional, analítico, correlacional de tipo longitudinal y prospectivo. Se estudiaron las variables sobre proyectos de software realizados en el periodo de tiempo comprendido entre enero 2013 a diciembre de 2015. La investigación evaluó y recomendó la técnica de Servicios Web Dinámicos, más eficiente y apropiada opción de un nuevo patrón para la Arquitectura Orientada a Servicios.

Palabras Clave: Patrón, Arquitectura, Servicios, Dinámicos.

ABSTRACT

An interview with a group of specialists in software development at Guayaquil city throw a high degree of effort and money to the attention of the functional requirements in systems using web services. It was derived in the need for this study. It was further investigated, analytically, the mechanics of the technique on how to create Web services software projects. The primary purpose of this study was to validate and transform the mechanics of this technique for subsequent applications with dynamic Web services. To this end an exploratory, qualitative and quantitative, the design of the study was observational, analytical, correlational longitudinal and prospective study was performed. the variables on software projects carried out in period between January 2013 to December 2015. The research evaluated and recommended mechanical technique of Dynamic Web Services, the most efficient and appropriate option for a new pattern for the Oriented Architecture studied Services.

Keywords: Pattern, Architecture, Services, Dynamic.



Para citar este artículo puede utilizar el siguiente formato:

Oscar Omar Apolinario Arzube, Jorge Arturo Chicala Arroyave, Viviana Fabiola Pinos Medrano y Roberto Jose Zurita del Pozo (2016): “Modelo de arquetipos para servicios web dinámicos enfocado en aplicaciones de n capas en la arquitectura orientada a servicio”, Revista Caribeña de Ciencias Sociales (noviembre 2016). En línea: https://www.eumed.net/rev/caribe/2016/11/arquetipos.html
http://hdl.handle.net/20.500.11763/caribe1611arquetipos


INTRODUCCION

Servicios Web:
“Es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos y entre aplicaciones.” Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios web. 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 los estándares. Es una máquina que atiende las peticiones de los clientes web y les envía los recursos solicitados. (Eslava, 2013).
En el portal de la Asociación Ecuatoriana de Software, en su artículo de Junio del 2012. (AESOFT, 2012). Indica que el sector de software en el Ecuador presenta una importante evolución en los últimos 5 años, con una tasa de crecimiento anual compuesta (CAGR) entre el 2004 y 2009, del 22.4%, pasando de US$ 95 millones a US$ 260 millones. El sector de software y hardware en el Ecuador durante el 2011 generaron 8.000 empleos entre trabajos directos, indirectos y a destajos, lo que significó un gran aporte al desarrollo económico local.
En el ámbito de la conectividad, según cifras publicadas por el Ministerio de Telecomunicaciones (Mintel), en el 2011, de los 4,248.145 de usuario de internet, el 97% accedió a través de enlaces de Banda Ancha (128-256 kbps), lo que implicó un aumento del 10% en la penetración de este servicio generando un cambio de 0.16 puntos en el crecimiento del Producto Interno Bruto (PIB).
En el portal de conferencia de las Naciones Unidas sobre comercio y desarrollo (UNCTAD) de Noviembre del 2012 (UNCTAD, 2012), expone lo siguiente: El incremento del uso de teléfonos móviles y el mejoramiento de la conexión de banda ancha ofrecen a los países en desarrollo nuevas posibilidades de participar en el desarrollo y la producción de software; así como, también puede impulsar el aprendizaje, la innovación y la creación de empleos especialmente para los jóvenes cualificados. Los países en desarrollo pueden mejorar el uso que hacen de su potencia de software. Los gastos en software y servicios informáticos ascendieron a unos 1,2 billones de dólares en 2011. Alrededor de cuatro quinas partes del total de esos gastos estaban vinculadas a países industrializados, y el resto se repartía entre los países en desarrollo de Asia Oriental, Meridional y Sudoriental. El total de gastos en el sector informático del resto de los países en desarrollo no llego más que al 4% del total mundial.
En otro informe de la Vicepresidencia de La República De Ecuador a Julio del 2015 apoyado con datos de la (CEPAL, 2015); Ecuador puede desarrollar una industria de software competitiva a nivel regional y para ello se requiere un desarrollo del ecosistema digital a través de una política de tecnologías de la información y la comunicación (TIC) para el cambio estructural.  Como cadena productiva existen unas 480 empresas en el área del software, las que alcanzan un total de ventas de unos 500 millones de dólares, donde el 10% proviene de exportaciones, y genera unos 7.000 empleos directos.
En los últimos años, el sector ha evidenciado un fuerte crecimiento, impulsado por dinamismo del mercado interno debido al mayor uso de aplicaciones de software en diversas industrias verticales tales como el sector financiero, grandes conglomerados y empresa de servicio públicos, Además el sector muestra una interesante dinámica, observándose que nacen proporcionalmente más empresa que en el resto de los servicios y mueren proporcionalmente menos, por lo que la población de empresas de software crece más rápido que el resto de los servicios.

ANTECEDENTES

La arquitectura orientada a servicios (SOA, por siglas en inglés Service Oriented Architecture) es un paradigma de arquitectura para diseñar y desarrollar sistemas distribuidos que fue descrita por primera vez por Gartner en 1996. Las soluciones SOA han sido creadas para satisfacer los objetivos de negocio las cuales incluyen facilidad y flexibilidad de integración con sistemas legados, alineación directa a los procesos de negocio reduciendo costos de implementación, innovación de servicios a clientes y una adaptación ágil ante cambios incluyendo reacción temprana ante la competitividad (Bieberstein, 2009). Para que un proyecto con arquitectura orientada a servicio tenga éxito, los desarrolladores de software deben orientarse ellos mismo a esta mentalidad de crear servicios comunes que son orquestados por clientes o middleware para implementar los procesos de negocio. El desarrollo de Sistemas requiere un compromiso con este modelo en términos de planificación, herramientas e infraestructura (Hewitt., 2009).
Un arquetipo es el patrón ejemplar de otros objetos, ideas o conceptos se derivan. En la filosofía de Platón se expresa las formas sustanciales (Ejemplares eternos y perfectos) de las cosas que existen eternamente en el pensamiento divino. También puede entenderse como una estructura funcional que subyace a la conducta de un individuo, grupo o sociedad en su conjunto, estableciendo una serie de automatismos a los que se responde de forma espontánea (Española, 2012).
El objetivo general de este estudio es de combinar los tres conceptos de Desarrollo Software, Arquitectura Orientada a Servicios y Arquetipos; para crear un Framework de trabajo que permita maximizar el tiempo de desarrollo de los servicios web y minimizar la cantidad de componentes que se crean para cada requerimiento sobre sistemas distribuidos.
Los objetivos específicos fueron: Investigar analíticamente las metodologías de desarrollo de software; Demostrar la eficiencia de un Framework de trabajo con arquitectura orientada a servicios que implemente arquetipos y aplicar los conocimientos en la población estudiantil sobre el Proyecto Fábrica de Software para la Universidad de Guayaquil, que se propuso en el modelo científico de Nuevo marco de trabajo con Metodologías SCRUM para Proyectos de Titulación enfocado en la Ingeniería de Software.

CARACTERÍSTICAS

Materiales y Métodos

Para validar la importancia de esta investigación, se realizó un proyecto fábrica de software para crear un Nuevo Marco de trabajo con metodologías Ágiles basadas en SCRUM para Proyectos de Titulación con énfasis en la Ingeniería de Software de la Facultad Ciencias Matemáticas y Físicas en la Universidad de Guayaquil. En el cual constaba un grupo focal de 33 estudiantes, todos con actividades laborales relacionadas al sector de hardware y software; además de ciencias que apoyan su implantación. Por lo cual se pueden identificar 6 empresas de desarrollo de software representativas en el Mercado Nacional, 2 Instituciones bancarias sobre su área de TI, 3 Empresas de telecomunicaciones, 3 Empresas comerciales sobre su área de O&M con influencia en TIC.  
La combinación de los conceptos de Arquitectura orientada a Servicios y Arquetipos tuvo como bien crear e implementar un modelo dinámico de ejecuciones sobre consultas y procedimientos almacenados para una base de datos. Este componente tuvo un alto impacto en la fabricación de servicios web donde solo se necesitó crear solo 4 servicios, divididos 2 para consultas (SOAP y REST) con el denominativo SEC (Servicio Ejecuta Consulta); y otros 2 para la ejecución de procedimientos almacenados (SOAP y REST) denominado SEP (Servicio Ejecuta procedimiento). Sin la existencia del SEC y SEP; al proyecto le hubiera tocado construir la cantidad de 46 servicio web para ejecutar procedimiento de la base de datos y poder llevar a cabo los requerimientos funcionales; también se tendría que haber construido 47 servicios web para hacer consultas de información hacia la base de datos y poder llevar los datos a las pantallas de interacción con el usuario. Pero esta cuenta solo es para un tipo de servicios web SOAP, para tener los mismos servicios web para los tipos REST se tendría que multiplicar por 2 la misma cantidad de servicios web que se utilizaron en este proyecto de fábrica de software. Por lo antes expuesto, aplicar arquetipos en la arquitectura de servicios web permitió ahorrar el esfuerzo de no crear un total de 186 = (46 servicios para consultas + 47 servicios para procedimientos) x 2 (SOAP y REST.)
Este componente, facilita la exposición de sistemas legados que posea una institución, disminuyendo los tiempos de desarrollo y gastos en los nuevos proyectos del área de tecnología. Entre los beneficiarios de los servicios web podemos mencionar:

  • El área de desarrollo de software que pueden exponer la lógica de negocio elaborada a novel de la capa de datos de una manera sencilla y rápida. Se cuenta con una capa de servicios que puede ser consumida por dispositivos móviles con sistemas operativos iOS, Android o Windows Phone o por las nuevas tecnologías para clientes web basadas en JavaScript por ejemplo Angular JS.
  • El área de producción de una institución o la persona encargada de la revisión de los sistemas productivos, tiene un ambiente centralizado en donde puede inspeccionar las bitácoras del servicio para analizar inconvenientes. Posee una herramienta para visualizar estado y el comportamiento de los servicios.

El modelo de arquetipos para servicios web dinámicos tiene componentes integrales que permitieron su realización: Creación de WS-SOAP/XML y WS-REST para recibir los requerimientos de ejecución hacia la capa de datos, EJB que implementan la utilización de los objetos de configuración para la ejecución como lógica de negocio propia de esta herramienta, JPA como API de integración entre clases y los modelos de persistencia y un modelo de datos que apoya a la configuración de servicios de consulta; así como,  los  procedimientos almacenados.
Para la creación de arquetipos para servicios web dinámicos se utilizó con el lenguaje de programación Java: “El lenguaje de programación java es un lenguaje de alto nivel que puede ser caracterizado por las siguientes palabras de moda: Simple, Orientado a Objetos, Distribuido, Multi-hilado, Dinámico, Portable, De alto rendimiento, Robusto, Seguro” (Oracle, s.f.). Debido a todas las características mencionadas java es el lenguaje más popular entre los desarrolladores y así lo demuestra el índice de TIOBE y del cual detallamos el siguiente gráfico:
Arquetipos para el SEC de la capa de negocio.
El componente SEC tiene como finalidad brindar un servicio que permita ejecutar consultas a una base de datos. Estas consultas deben ser configuradas previamente antes de poder ser utilizadas.

Flujo de la capa de negocio.

En el Gráfico 7. podemos apreciar el flujo que tiene la capa de negocios,  donde el servicio web comienza su flujo transaccional con la llegada del request, este request contiene el xml con los datos necesarios para la ejecución del servicio, el SEC realiza la validación del xml donde si es incorrecto manda a grabar en la bitácora y genera el xml de respuesta terminando así el flujo; en caso de que el XML fuera exitoso el SEC procederá a realizar las validaciones si es un usuario correcto o incorrecto, en caso de que el fuera un usuario incorrecto termina el flujo grabando una bitácora y generando el xml de response; en caso de que el usuario fuera correcto el SEC revisa las configuraciones correctas del xml, en caso de que fueran correctas generaría un script para la ejecución del consulta para luego ejecutarlo, terminado esto el SEC obtiene la información de la consulta y genera el XML de response y lo envía al cliente que ejecuto el request.

Arquetipos para el SEP de la capa de negocio.

Los componentes que interactúan con el servicio web SEP (Servicio Ejecuta Procedimientos) serían el cliente que consume el SEP, las tablas las cuales son de uso único del SEP y los procedimientos de la capa de datos. Podemos apreciar en el Gráfico 6 el modelo de los componentes del SEP.

Flujo de la capa de negocio.

En el Gráfico 8. podemos apreciar el flujo que tiene la capa de negocios,  donde el servicio web comienza su flujo transaccional con la llegada del request, este request contiene el xml con los datos necesarios para la ejecución del servicio, el SEP realiza la validación del xml donde si es incorrecto manda a grabar en la bitácora y genera el xml del response terminando así el flujo; en caso de que el XML fuera exitoso el SEP procederá a realizar las validaciones si es un usuario correcto o incorrecto, en caso de que el fuera un usuario incorrecto termina el flujo grabando una bitácora y generando el xml de response; en caso de que el usuario fuera correcto el SEP revisa las configuraciones correctas del xml, en caso de que fueran correctas generaría un script para la ejecución del procedimiento para luego ejecutarlo, terminado esto el SEP obtiene la información del proceso y genera el XML de response y lo envía al cliente que ejecutó el request.

CAUSAS Y CONSECUENCIAS

Resultados

En base al proyecto Fábrica de Software realizado sobre este grupo focal se determinó que el 53,57% de los encuestados piensa que el funcionamiento de los arquetipos de servicios web dinámicos fue bueno, mientras que el 39,29% considera que fue excelente, esto demuestra que la capa de servicios funcionó correctamente.
El 92,86% de las personas encuestadas considera que se debe tener un componente de monitoreo para visualizar las novedades de lo que los arquetipos ejecutan.
En 38% de los encuestados indican que los procesamientos de sus requerimientos han sido excelentes mientras que un 62% considera que existió un buen tiempo de respuesta, el 24% considera que el formato para enviar los requerimiento es excelente mientras que un 76% considera que el formato de envió es bueno, el 24% considera que el formato de salida de los requerimientos es excelente mientras que el 67% considera que el formato de salida de los requerimientos es bueno y un 7% considera que el formato de salida de los servicios web posee un formato de salida entendible. Los resultados indica que un 33% logro notar la diferencia entre JPA y JDC, pero esto es poco perceptible para el usuario final. EL 86% considera que los mensajes de error fueron los suficientemente claros mientas que el un 14% considera que lo fueron. El 85% considera que las bitácoras del servicio web fueron los suficientemente legibles mientras que un 14% considera que no lo fueron.
Criterios de rentabilidad del servicio web, nos permitió visualizar su eficiencia; para determinar la operativa se tomaron los siguientes tiempos: Tiempo de respuesta de un arquetipo de servicios web de consulta tuvo los siguientes intervalos 74 milisegundo como duración mínima de respuesta, 494 milisegundos como duración máxima de respuesta y 166,8 milisegundo como promedio de la respuesta; esto se lo realizó con un total de 47 ejecuciones.

Discusión

La utilización de los arquetipos para servicios web dinámicos, son conceptos que se seguirán popularizando por la versatilidad de implementar muchos requerimientos de negocio con muy pocos componentes técnicos dinámicos.  Las herramientas CASE(Computer Aided Software Engineering, Ingeniería Asistida por Computadora) son diversas aplicaciones informáticas o programas informáticos destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero estas herramientas pueden ayudar en todos los aspectos del ciclo de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras.  Ya en los años 70 un proyecto llamado ISDOS diseño un lenguaje y por lo tanto un producto que analizaba la realización existente entre los requisitos de un problema y las necesidades de los diseñadores PSA (Problem Statemen Analyzer) (Jaume, 2010).
Las herramientas CASE alcanzaron su techo a principios de los años 90, pero estas han dado paso al mercado de diversas herramientas más específicas para cada fase del ciclo de vida del software; así como, se lo expone en este estudio de arquetipos para servicios web dinámicos.

CONCLUSIONES

La investigación permitió concluir que fue efectivo el uso de arquetipos para servicios web dinámicos, gracias al mencionado hubo mayor eficiencia en desarrollo de software, bajo el esfuerzo de horas hombres x componentes de negocios técnicos a crear he incremento la productividad para la atención de las nuevas funcionalidades. Vale recalcar que no se está creando una nueva tecnología sino la fusión de conceptos claramente definidos para su fusión.
Se recomienda que al realizar la implementación de arquetipos para servicios web dinámicos se dividan los componentes de acceso a datos tanto para consulta de información como el procesamiento de procedimientos almacenados. Asi se podrá dividir el riesgo del uso de estos componentes.
Aun cuando el arquetipo para servicios web dinámicos seria la panacea del desarrollo, esto no libera de la responsabilidad de crear el componente de negocio que realice la lógica de negocio específica, los arquetipos permiten la ejecución dinámica de los mismos para que estos componentes de negocio puedan ser reutilizados al igual que el concepto de la programación orientada a objetos.
La implementación de un motor de arquetipos debe ser complementada con infraestructura de Servidores de Aplicaciones y balanceadores de carga para que el esquema propuesto tenga redundancia de procesamiento y se minimice el riesgo por fallo en el hardware.

BIBLIOGRAFÍA

AESOFT. (Junio de 2012). Asociacion Ecuatoriana de Desarrollo de Software. Obtenido de Desarrollo de Software en el Pais, 2012: http://www.ekosnegocios.com/negocios/m/verArticulo.aspx?idArt=505
Arum, G. (2015). Java EE 6 Pocket Guide. Sebastopol: O'Reilly Media.
Beighley, L. (2007). Head First SQL. Sebastopol: O’Reilly Media.
Bieberstein, N. (2009). Service Oriented Architecture. ISBN 0-13-187002-5.
CEPAL, V. d.-A. (Julio de 2015). La cadena de software en el Ecuador. Obtenido de Diagnostico, Vision estrategica: http://www.vicepresidencia.gob.ec/wp-content/uploads/2015/07/Resumen-Cadena-Software.pdf
Eslava. (2013). El nuevo PHP. Conceptos avanzados. España: Bubok Publishing S. L.
Española, R. A. (2012). Definicion de Arquetipos . Definicion de Arquetipos.
Guy Harrison, S. F. (2006). MySQL Stored Procedure Programming. Sebastopol: O'Reilly Media.
Hewitt., E. (2009). Java SOA CookBook 1st Edition, Oreily.
Jaume, U. (SEP de 2010). Herramientas Case. Obtenido de Herramientas Case: http://web.archive.org/web/20100928122456/http://www3.uji.es/~mmarques/f47/apun/node75.html
JSON. (s.f.). Recuperado el 09 de Noviembre de 2015, de http://www.json.org/
kankanamge, C. (2012). Web Service Testing with soapUI. Birmingham: Pack Publishing Ltd.
Masoud Kalali, B. M. (2013). Developing RESTful Services with JAX-RS 2.0, WebSockets and JSON . Birmingham: Packt Publishing.
mastertheboss. (s.f.). Recuperado el 11 de Noviembre de 2015, de http://www.mastertheboss.com/jboss-server/jboss-configuration/what-is-jboss
Oracle. (s.f.). Oracle Java Documentation. Recuperado el 09 de Noviembre de 2015, de https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html
Rubin, K. (2013). Essential Scrum. Michigan: Pearson Education.
Singh, P. K. (2011). Introduction to Computer Networks. New Delhi: V. K. (India Enterprise).
UNCTAD. (Noviembre de 2012). Portal de Conferencias de las Naciones Unidas sobre el Comercio y Desarrollo. Obtenido de Los posibles beneficios del software para el desarrollo de los países: http://unctad.org/es/Paginas/PressRelease.aspx?OriginalVersionID=109
Wielenga, G. (2015). Beginning Netbeans IDE: For Java Developers. New York: Apress Media.


Recibido: 10/11/2016 Aceptado: 15/11/2016 Publicado: Noviembre de 2016

Nota Importante a Leer:

Los comentarios al artículo son responsabilidad exclusiva del remitente.

Si necesita algún tipo de información referente al articulo póngase en contacto con el email suministrado por el autor del articulo al principio del mismo.

Un comentario no es mas que un simple medio para comunicar su opinion a futuros lectores.

El autor del articulo no esta obligado a responder o leer comentarios referentes al articulo.

Al escribir un comentario, debe tener en cuenta que recibirá notificaciones cada vez que alguien escriba un nuevo comentario en este articulo.

Eumed.net se reserva el derecho de eliminar aquellos comentarios que tengan lenguaje inadecuado o agresivo.

Si usted considera que algún comentario de esta página es inadecuado o agresivo, por favor,pulse aqui.