Módulo de integración entre le sistema de gestión de control del posgrado y el sistema de gestión de la Nueva Universidad
77
0
0
Texto completo
(2) Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de Las Villas como parte de la culminación de los estudios de la especialidad de Ciencias de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. Firma del autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del tutor. Firma del jefe del Seminario.
(3) "No hay que empezar siempre por la noción primera de las cosas que se estudian, sino por aquello que puede facilitar el aprendizaje." Aristóteles.
(4) A mis padres, a mi hermana, a mis abuelos, a toda mi familia y amigos..
(5) Agradecimientos A Tomy y Lianet, por su ayuda que hizo posible la culminación de este trabajo. A mis padres por el cariño y apoyo. A mis amigos, los que me ayudaron, los que me alentaron y me dieron fuerzas, sin las cuales no se hubiera hecho realidad este sueño. A todos los que confiaron en mí y me dieron ánimo para terminar. A todos ellos, Muchas Gracias..
(6) Resumen En esta investigación, resultado de la necesidad de integrar el Sistema de Gestión del Control del Posgrado y el Sistema de Gestión de la Nueva Universidad, en la Universidad Central “Marta Abreu” de Las Villas, cuyo objetivo es modelar e implementar una capa de Servicios Web a través de la cual se interrelacionen estos sistemas mediante el uso del Software Libre, se abordan conceptos tales como: Software Libre, Aplicaciones Empresariales, J2EE, Model Driven Architecture (MDA), Arquitectura Orientada a Servicios (SOA) y Servicios Web, los que constituyen el sustento teórico de la investigación. La aplicación se realizó en 3 etapas, según la metodología MDA: la primera, destinada a su diseño; la segunda, a la generación de código; y la tercera, a la implementación del módulo. De esta forma se obtuvo un producto novedoso, robusto y escalable, que permite agilizar la integración entre los sistemas antes mencionados. En el trabajo se catalogan a AndroMDA y J2EE como herramientas idóneas para el desarrollo de Servicios Web; se muestra cómo un diseño que siga la metodología de MDA, permite obtener aplicaciones con un modelo extensible, flexible; y se pone de manifiesto como la integración entre el Sistema de Gestión del Control del Posgrado y el Sistema de Gestión de la Nueva Universidad a través de la implementación de un módulo basado en Servicios Web, permite agilizar, modernizar e informatizar los procesos directivos que en torno al posgrado, se realizan hoy en la Universidad Central “Marta Abreu” de las Villas..
(7) Abstract The present investigation, result of the integration necessity between the System of Management of the Control of the Postdegree and the System of Management of the New University, in the Central University “Marta Abreu” of Las Villas, whose objective is to model and implement a layer of Web Services through which these systems will interrelate by using Free Software, there are mentioned concepts such as: Free Software, Enterprise Applications, J2EE, Model Driven Architecture (MDA), Service Oriented Architecture (SOA) and Web Services. All of these concepts constitute the theoretical background of the current investigation. The application was developed into 3 stages, following the MDA methodology. The first stage dealt with the design of application. The second stage comprised the code generation and the third stage had to do with implementation of the module. In this work are catalogued AndroMDA and J2EE as suitable tools for the development of Web Services; showed like following the MDA methodology allow the obtainment of applications with an extensible model, flexible; and it is shown like integration between the System of Management of the Control of the Postdegree and the System of Management of the New University through the implementation of a module based on Services Web, allows to make agile, to modernize and to computerize the directive processes that around the postgraduate education, are made today in the Central University “Marta Abreu” of Las Villas..
(8) Índice. Índice Introducción................................................................................................................................. 1 I Consideraciones teóricas sobre el Posgrado y la integración de aplicaciones. Estado del arte.......................................................................................................................................... 4 1.1 El Posgrado en Cuba .................................................................................................. 4 1.2 Integración de aplicaciones........................................................................................ 6 1.3 Estado del arte............................................................................................................. 7 1.3.1 Software Libre.................................................................................................... 8 1.3.2 Aplicaciones Empresariales y Plataformas de Desarrollo............................... 9 1.3.3 J2EE .................................................................................................................. 12 1.3.3.1 Los componentes en J2EE........................................................................... 13 1.3.3.2 Enterprise Java Bean.................................................................................... 13 1.3.3.2.1 Entity Bean............................................................................................. 14 1.3.3.2.2 Session Bean. ......................................................................................... 14 1.3.3.3 Los Contenedores en J2EE.......................................................................... 15 1.3.4 Servidor de Aplicaciones................................................................................. 16 1.3.5 JBoss ................................................................................................................. 16 1.3.6 Arquitectura Orientada a Servicios ................................................................. 18 1.3.7 XML.................................................................................................................. 19 1.3.8 Servicios Web................................................................................................... 20 1.3.8.1 Tecnologías Asociadas a los Servicios Web .............................................. 21 1.3.8.1.1 SOAP ...................................................................................................... 22 1.3.8.1.2 WSDL..................................................................................................... 22 1.3.8.1.3 UDDI ...................................................................................................... 23 1.3.9 Sistema Gestor de Bases de Datos .................................................................. 23 1.3.10 PostgreSQL....................................................................................................... 25 1.3.11 Estrategias de Desarrollo ................................................................................. 26 1.3.12 Model Driven Architecture.............................................................................. 26 1.3.13 AndroMDA....................................................................................................... 28 II Consideraciones metodológicas en torno al diseño e implementación del módulo. .... 30 2.1 Selección del entorno y de las herramientas de desarrollo .................................... 31 2.2 Modelación del módulo............................................................................................ 32 2.3 Implementación del módulo. ................................................................................... 42 2.3.1 Seguridad en los Servicios Web...................................................................... 46 2.4 Prueba del funcionamiento del nuevo módulo. ...................................................... 48 III Análisis de los resultados y especificaciones de uso.................................................. 50 3.1 Análisis de resultados............................................................................................... 50 3.2 Especificaciones de uso............................................................................................ 51 3.2.1 Descripción de Servicios Web ........................................................................ 52 3.2.2 Autenticación para el uso de los servicios...................................................... 52 3.2.3 Servicio para la gestión de profesores ............................................................ 53 3.2.3.1 URL de acceso ............................................................................................. 53 3.2.3.2 Tipos de Datos.............................................................................................. 53 3.2.3.3 Listado de profesores ................................................................................... 54 3.2.3.4 Obtener los datos de un profesor................................................................. 54.
(9) Índice 3.2.3.5 Búsqueda de profesores ............................................................................... 54 3.2.3.6 Agregar un nuevo profesor.......................................................................... 54 3.2.3.7 Modificar un profesor.................................................................................. 55 3.2.3.8 Eliminar un profesor .................................................................................... 55 3.2.4 Servicio para la gestión de estudiantes ........................................................... 55 3.2.4.1 URL de acceso ............................................................................................. 55 3.2.4.2 Tipos de Datos.............................................................................................. 55 3.2.4.3 Listado de estudiantes.................................................................................. 55 3.2.4.4 Obtener los datos de un estudiante.............................................................. 56 3.2.4.5 Búsqueda de estudiantes.............................................................................. 56 3.2.4.6 Agregar un nuevo estudiante....................................................................... 56 3.2.4.7 Modificar un estudiante ............................................................................... 56 3.2.4.8 Eliminar un estudiante ................................................................................. 56 3.2.5 Servicios y operaciones para el acceso a los codificadores........................... 57 3.2.6 Ejemplos de uso................................................................................................ 59 3.2.6.1 Usando NuSOAP desde PHP ...................................................................... 59 3.2.6.2 Usando Delphi 7........................................................................................... 60 3.2.6.3 Usando Java desde el IDE NetBeans 5.5.................................................... 61 Conclusiones.............................................................................................................................. 64 Recomendaciones...................................................................................................................... 65 Bibliografía................................................................................................................................ 66.
(10) Introducción. Introducción La educación posgraduada ha ido adquiriendo en el mundo y en Cuba una dinámica cada vez mayor, debido a la necesidad de garantizar una superación permanente y al incremento constante de graduados universitarios que necesitan continuar su preparación profesional. Actualmente, para cualquier universidad el posgrado constituye uno de los principales retos a enfrentar. En nuestro país se ha enfatizado en la necesidad de desarrollar este tipo de enseñanza. Así quedó reflejado en la Resolución 132/2004 del Ministerio de Educación Superior (MES); donde se expone la educación de posgrado como una de las direcciones principales de trabajo de la Educación Superior en Cuba, y el nivel más alto del sistema de Educación Superior. “La educación de posgrado, a la vez que atiende demandas de capacitación que el presente reclama, se anticipa a los requerimientos de la sociedad, creando las capacidades para enfrentar nuevos desafíos sociales, productivos y culturales.” (Res. 132/2004) La Universidad Central “Marta Abreu” de Las Villas (UCLV) ha mantenido desde su creación el empeño de formar cada año profesionales más preparados. Debido a esto la Dirección de informatización de la UCLV ha determinado como tarea prioritaria agilizar y modernizar los procesos directivos utilizando las Nuevas Tecnologías de la Información y las Comunicaciones (NTIC). En la actualidad, nuestra institución cuenta con un Sistema de Gestión del Control del Posgrado, el cual permite manejar toda la información referente a este tipo de actividad. Para el desarrollo de este sistema se usó Software Libre, pues el MES ha establecido una política sobre el uso del Software Libre con fines de desarrollo. De esta forma se evita que en el futuro la infraestructura informática caiga en manos del software restrictivo o propietario. Para seguir esta estrategia y continuar el proceso de informatización nos hemos propuesto la integración del Sistema de Gestión del Control del Posgrado y el Sistema de Gestión de. 1.
(11) Introducción la Nueva Universidad pues ambos manejan una serie de datos en común. Por ello nos plantemos la tarea de crear una capa entre los dos sistemas. Esto permite por un lado, prescindir de realizar cambios en los sistemas existentes; y por otro lado, evitar reescribir código en estos sistemas. Para lograr lo anteriormente expuesto, determinamos que era mejor usar los Servicios Web, ya que estos son una poderosa herramienta para la integración y colaboración de las aplicaciones a través de la red; pues logran una integración flexible, simple y dinámica. Por eso fue factible desarrollar una Arquitectura Orientada a Servicios (Service Oriented Architecture (SOA)). Haciendo uso de esta arquitectura se pueden lograr sistemas independientes de la plataforma, del hardware, del sistema operativo y del lenguaje de programación en los que se implemente el servicio. Esto permite que los servicios, construidos en una variedad de tales sistemas, interactúen entre sí de una manera uniforme y universal. Todo lo anteriormente expuesto determinó que, para responder a la necesidad de integración entre los sistemas, se desarrollara un módulo basado en Servicios Web para resolver el problema de: cómo integrar el Sistema de Gestión del Control del Posgrado y el Sistema de Gestión de la Nueva Universidad. Para influir en la solución de este problema se plantea el siguiente objetivo general: Objetivo General •. Implementar un nuevo módulo del Sistema de Gestión del Control del Posgrado basado en Servicios Web, para facilitar la integración entre dicho sistema y el Sistema de Gestión de la Nueva Universidad.. Los objetivos específicos nos permiten plasmar las diferentes etapas por las cuales transitó el proceso investigativo:. 2.
(12) Introducción 1. Realizar un estudio del Sistema de Gestión del Control del Posgrado para determinar su necesidad de integración con el Sistema de Gestión de la Nueva Universidad. 2. Seleccionar el entorno de desarrollo óptimo, basado en el Software Libre, adecuado para la implementación del nuevo módulo del Sistema de Gestión del Control del Posgrado. 3. Diseñar un nuevo módulo del Sistema de Gestión del Control del Posgrado que permita la integración entre dicho sistema y el Sistema de Gestión de la Nueva Universidad. 4. Implementar el nuevo módulo del Sistema de Gestión del Control del Posgrado utilizando tecnología basada en Servicios Web. El cumplimiento de estos objetivos se logra a partir de las interrogantes siguientes: 1. ¿Cuáles procesos del Sistema de Gestión del Control del Posgrado se integrarán con el Sistema de Gestión de la Nueva Universidad? 2. ¿Cuáles herramientas de Software Libre permiten el desarrollo e implementación del nuevo módulo del Sistema de Gestión del Control del Posgrado? 3. ¿Cómo realizar un diseño flexible de la aplicación, que permita la integración entre en Sistema de Gestión del Control del Posgrado y el Sistema de Gestión de la Nueva Universidad? 4. ¿Cómo implementar el nuevo módulo del Sistema de Gestión del Control del Posgrado sobre la base de la plataforma, la metodología y el diseño elaborado? El aporte de significación práctica de este trabajo consiste en proponer un módulo que permita el acceso, interconexión e interoperabilidad entre el Sistema de Gestión del Control del Posgrado y el Sistema de Gestión de la Nueva Universidad, que facilite la integración de estos. De esta manera podemos satisfacer la necesidad de informatización, y con esto, de agilización y modernización de los procesos directivos que hoy tienen lugar en la Universidad Central “Marta Abreu” de Las Villas.. 3.
(13) Capítulo I. I. Consideraciones teóricas sobre el Posgrado y la integración de aplicaciones. Estado del arte.. Al intentar acercarnos a los elementos teóricos que respaldan esta investigación, fue inevitable realizar un análisis a través de dos aristas fundamentales: la primera de ellas, destinada al estudio del Posgrado y su actual Sistema de Gestión del Control para determinar cuáles procesos se integrarían con el Sistema de Gestión de la Nueva Universidad (SIGENU); y la otra, orientada a aquellos elementos tecnológicos necesarios para el desarrollo del módulo que representa nuestro objeto de estudio.. 1.1 El Posgrado en Cuba “La educación de posgrado es una de las direcciones principales de trabajo de la Educación Superior en Cuba, y el nivel más alto del Sistema de Educación Superior, dirigido a promover la educación permanente de los graduados universitarios” (Res. 132/2004). En la educación de posgrado tienen lugar uno o más procesos formativos y de desarrollo, no solo de enseñanza-aprendizaje, sino también de investigación, innovación, creación artística y otros, articulados armónicamente en una propuesta docente-educativa pertinente en este nivel. La educación de posgrado, a la vez que atiende demandas de capacitación que en la actualidad se reclaman, se anticipa a los requerimientos de la sociedad, y crea las capacidades para enfrentar nuevos desafíos sociales, productivos y culturales. Esta educación promueve la multi, inter y transdisciplinariedad, así como la colaboración interinstitucional de carácter regional, nacional e internacional. La flexibilidad en la adopción de formas organizativas y el rigor de la calidad de las ofertas, son características esenciales de la educación de posgrado. Las actividades de posgrado se desarrollan en diferentes modalidades de dedicación: tiempo completo o tiempo parcial, y con diferentes grados de comparecencia: de forma presencial, semipresencial o a distancia. La educación de posgrado enfatiza el trabajo colectivo y la integración en redes, a la par que atiende de modo personalizado las necesidades de formación de los estudiantes de este. 4.
(14) Capítulo I nivel; promueve la superación continua de los graduados universitarios, el desarrollo de la investigación, la tecnología, la cultura y el arte. (Bolaños; Fleites, 2005). La Universidad Central “Marta Abreu” de Las Villas (UCLV) ha otorgado durante años vital importancia al desarrollo del posgrado. Porque ha elevado constantemente la calidad de los cursos y la preparación académica y cultural de los profesores. La UCLV contribuye constantemente a la formación y superación de profesionales universitarios de alto nivel, con sólidos conocimientos, habilidades y destrezas para enfrentar los nuevos desafíos sociales, productivos y culturales en los que está inmerso nuestro país. La creciente necesidad de agilizar y modernizar los procesos directivos utilizando las Nuevas Tecnologías de la Información y las Comunicaciones (NTIC), ha posibilitado que actualmente la Dirección de Posgrado de la UCLV cuente con un Sistema de Gestión del Control del Posgrado. Este sistema permite la organización y manejabilidad de los datos que son necesarios en cada uno de los procesos de la dirección, ya que cuenta con una base de datos actualizada. Se desea que el Sistema de Gestión del Control del Posgrado actual y su base de datos, sean ínterconsultados desde otros sistemas o módulos para hacer uso de los datos que se manejen en común. Actualmente se encuentra en fase de desarrollo el SIGENU, el cual necesita interactuar con el Sistema de Gestión del Control del Posgrado. Para esto se diseña en estos momentos un módulo de integración a través del cual puede ser posible la comunicación y relación entre estos sistemas. Los principales datos que en común serán manipulados por ambos sistemas son los relacionados con los profesores y los estudiantes. Los profesores, que representan los profesionales preparados académica y culturalmente, acorde con las necesidades de los recursos humanos que exige el desarrollo social; y los estudiantes, profesionales universitarios que han vencido la educación superior de pregrado y debido a esta poseen un alto nivel en el desarrollo de sus procesos de aprendizaje.. 5.
(15) Capítulo I. 1.2 Integración de aplicaciones En la mayoría de las empresas, la lógica y los datos de una aplicación resultan inútiles para otra aplicación. Es por eso que la integración de aplicaciones es uno de los problemas más importantes de la actualidad, el cual técnicamente podría costar muchos esfuerzos para resolverlos. El resultado deseado es que los sistemas aislados pueden hablar entre sí, y puedan presentar grandes oportunidades para mejorar los procesos de negocios. Mediante una metodología de integración y componentes de software, una solución de integración de aplicaciones permite a las diferentes aplicaciones de una organización, trabajar conjuntamente en forma eficiente, con un rendimiento cercano al tiempo real. Los diferentes modelos de integración de aplicaciones permiten compartir datos y procesos de negocios a través de diferentes sistemas, en forma independiente del sistema operativo, el lenguaje de programación o el soporte de datos. Los Servicios Web se caracterizan por proveer acceso a través de diferentes interfaces, puede ser a través de una aplicación cliente dedicada, pero también puede ser accedida a través de un navegador de Internet, un dispositivo móvil, un sistema activado por voz o cualquier otro dispositivo compatible. El proceso de agregar nuevos métodos de acceso es mucho más sencillo que en aplicaciones tradicionales. “Una de las ventajas principales de la arquitectura de servicios Web XML es que permite a los programas escritos en diferentes lenguajes sobre diferentes plataformas comunicarse entre sí de un modo basado en estándares…” (Wolter, 2001). Por esta razón, los Servicios Web son una de las mejores vías a tener en cuenta a la hora de realizar una integración de aplicaciones, pues son la mejor tecnología en el momento de compartir datos y funcionalidades. El uso de los Servicios Web, específicamente nos evita, a la hora de ejecutar la integración entre los sistemas, la realización de cambios en los mismos.. Debido a lo anteriormente expresado se decidió el uso de Servicios Web para el desarrollo del módulo de integración entre los sistemas. Para la construcción de este módulo fue. 6.
(16) Capítulo I necesario hacer un análisis del estado del arte, en aras de seleccionar las metodologías más actuales que ofrezcan ventajas para este tipo de desarrollo.. 1.3 Estado del arte Para desarrollar satisfactoriamente una aplicación como la que se aborda en este trabajo, es necesario emprender un estudio detallado de las principales corrientes actuales en cuanto al desarrollo de un software. Debido a la forma en que se ha introducido el procesamiento computarizado de datos en el mercado mundial ha venido prevaleciendo entre los usuarios el llamado software propietario; el cual radica en la inaccesibilidad de estos usuarios al código fuente en que fueron expresados estos sistemas y aplicaciones propietarios. Es necesario entonces que para el uso de tales programas se realice la compra al correspondiente “propietario” del derecho, para poder utilizar ese software. En caso de hacer uso de estos sistemas sin la debida licencia, se estarían violando las leyes de propiedad intelectual y/o derecho de autor que los protegen, enfrentándose según las diversas legislaciones nacionales que penan estas infracciones citadas, a las consecuencias legales que este acto podría conllevar. A través de la restricción explícita que los contratos de licenciamiento imponen al usuario respecto del acceso al código fuente, las compañías desarrolladoras de software propietario obligan a los usuarios a contratar permanentemente todas las actualizaciones y mejoras de los programas y/o sistemas, bajo condiciones normalmente leoninas; debido a lo cual una parte de la comunidad de desarrolladores, ha migrado sus plataformas de desarrollo hacia plataformas libres. Cada día el uso del llamado Software Libre está incrementándose dentro del mundo del desarrollo del software; pues si bien es cierto que el software propietario ha dominado y tiene una gran utilización en el mundo desarrollado, desde hace ya hace algún tiempo el Software Libre ha emergido con gran fuerza, no por obra del azar, sino por constituir la contrapartida de una forma de desarrollo que hace hoy el trabajo más costoso.. 7.
(17) Capítulo I ¿Qué se entiende entonces por Software Libre?. 1.3.1 Software Libre Muchas veces equivocadamente el concepto de Software Libre se entiende como software gratis, pero su definición no tiene nada que ver con el hecho de que haya que pagar por él o no. Software Libre es aquel que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. De modo más preciso, se refiere a cuatro libertades de los usuarios: 1. La libertad de usar el programa, con cualquier propósito. 2. La libertad de estudiar cómo funciona el programa, y adaptarlo a las necesidades de los diferentes usuarios. 3. La libertad de distribuir copias, con lo que se puede ayudar a otros usuarios. 4. La libertad de mejorar el programa y hacer públicas dichas mejoras a los demás, de modo que toda la comunidad se beneficie de ello. Por tanto, un programa es Software Libre si los usuarios tienen todas estas libertades. Libertades que se han alcanzado gracias al proyecto GNU (acrónimo recursivo para «GNU's Not Unix»). Este proyecto fue creado en el año 1984 y más tarde se crearía la Free Software Foundation para financiar y dar soporte legal a este proyecto, el cual surge como respuesta de los programadores de entonces, a las restricciones del Copyright sobre el software. Se creó entonces una comunidad de programadores que cooperan entre sí en los diferentes proyectos de Software Libre. Así pues, con el Software Libre, se tiene la libertad de distribuir copias, sean con o sin modificaciones, sean gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa, entre otras cosas, que no se requiere de permisos.. 8.
(18) Capítulo I Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, se debe tener acceso al código fuente del programa; lo que se convierte en una condición necesaria para el Software Libre. Las condiciones que definen el Software Libre le permiten un desarrollo a niveles tales, que posibilita que varios proyectos de Software Libre sean mantenidos por cientos de programadores de distintas partes del mundo. Esto implica, por tanto, una mejora sustancial en su mantenimiento y mejoramiento; así como una seguridad y garantía de funcionamiento en las versiones “estables” de cada proyecto. (Citado en: Trabajo de Diploma: Módulo de captación de datos del Sistema de Gestión Centralizado para el control del posgrado en la UCLV, 2005). El hecho de que los Software Libre se puedan utilizar en cualquier contexto, los hace ideales para su uso en Cuba; pues los grandes monopolios no permiten que sus productos sean distribuidos en ciertos países, entre ellos el nuestro. Esto los hace, por tanto, una opción a considerar a la hora de desarrollar nuestras aplicaciones empresariales.. 1.3.2 Aplicaciones Empresariales y Plataformas de Desarrollo Una aplicación empresarial es un software hecho a la medida y orientado a automatizar procesos o mecanismos específicos de una empresa u organización para aumentar el rendimiento de los procesos del negocio. Se pueden considerar como tal, los sistemas de información que tengan como objetivo vital el mantenimiento de datos relacionados con procesos concretos de la organización. Una aplicación empresarial bien diseñada debe cumplir con los requisitos siguientes: •. Robustez: El grado de capacidad que presenta un sistema o un componente para funcionar correctamente frente a entradas de información erróneas, o carga de trabajo elevada. Las aplicaciones empresariales son la piedra angular de una organización en el plano de la informática. Por tanto, los usuarios esperan que esta sea de confiar y esté libre de errores.. 9.
(19) Capítulo I •. Excelente desempeño y escalabilidad: Este tipo de aplicación deben cumplir con las expectativas de funcionamiento esperadas por sus usuarios. Ellas deben exhibir, además, suficiente escalabilidad (indica su habilidad para, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos).. •. Aprovechamiento de la programación orientada a objetos: Los principios de un diseño orientado a objetos proveen beneficios al desarrollo de sistemas complejos. Buenos diseños orientados a objetos son promocionados por el uso de patrones de diseño.. •. Niveles adecuados de complejidad: Debemos tratar de no excedernos en la complejidad de las aplicaciones; ya que esta puede indicar que el uso de la arquitectura no es el correcto. La complejidad va agregando costos a través del ciclo de vida del software y esto puede convertirse en un problema serio.. •. Fácil mantenimiento y extensibilidad: El mantenimiento es una de las fases más costosas en el ciclo de vida de un software. Debemos asegurar que cada parte de la aplicación tenga sus responsabilidades bien definidas y que su modificación no afecte profundamente a otros elementos del sistema.. •. Re-usable: La aplicación empresarial debe estar incluida en la estrategia a largo plazo de la organización. Por ello, es importante fomentar la reutilización para reducir al mínimo la duplicación del código (dentro y a través de proyectos).. Durante los últimos años sigue en aumento el desarrollo de aplicaciones empresariales, ya sea la colaboración entre departamentos como entre empresas. Surgiendo dos plataformas distintas que enfrentan esta demanda para el desarrollo de este tipo de aplicaciones, estas son por un lado J2EE de Sun y .NET de Microsoft por el otro. La arquitectura de la plataforma .NET se puede dividir principalmente en: •. .NET framework. Es la parte más importante de la plataforma .NET. Incluye COM+, un entorno de ejecución común, un compilador JIT, y un conjunto de librerías de sistema que dan acceso a un amplio conjunto de servicios.. 10.
(20) Capítulo I •. Servidores .NET. Son un conjunto de aplicaciones que pueden usarse en conjunción con el .NET framework para facilitar el desarrollo de aplicaciones empresariales; como por ejemplo, SQL Server 2000, Exchange 2000 Server o BizTalk Server 2000.. Según la definición de Sun, J2EE define un estándar para el desarrollo de aplicaciones empresariales multicapa. J2EE simplifica las aplicaciones empresariales basándolas en componentes modulares y estandarizados, proveyendo un completo conjunto de servicios a estos componentes, y manejando muchas de las funciones de la aplicación de forma automática, sin necesidad de una programación compleja. A diferencia de Microsoft .NET que es un producto, J2EE es un estándar. Por lo tanto, no es posible “adquirir” J2EE sino que es necesario adquirir alguna de las versiones de plataformas de desarrollo basadas en J2EE que existen en el mercado como IBM WebSphere, BEA Weblogic, Oracle9iAS , Sun ONE o JBOSS. Cada una estas versiones proporcionan servicios añadidos a los propuestos en el estándar. La arquitectura de J2EE se puede dividir en cinco partes: 1. El lenguaje de programación java. 2. El modelo de programación del cliente. 3. La infraestructura de la capa de middleware. 4. La API de negocios para los programadores. 5. La API no visible para los programadores. Tan importante como la propia arquitectura que plantean estas dos plataformas de desarrollo, son las empresas que las apoyan, ya que contribuirán de forma decisiva en su éxito o fracaso. J2EE es apoyado por grandes compañías del software que han realizado su propia implementación del estándar: IBM, BEA, Oracle o la misma Sun, ofrecen sus plataformas de desarrollo de aplicaciones, en las que junto a J2EE ofrecen otros productos como bases de datos, caché, firewalls, etc., para brindar una solución completa a sus clientes.. 11.
(21) Capítulo I Por su parte, Microsoft con su gran despliegue de marketing y relaciones publicas, está decidido a conseguir que .NET sea la plataforma de desarrollo de aplicaciones eBusiness preferida. Muchas. empresas importantes ya han comenzado a desarrollar soluciones. usando .NET. Actualmente las dos plataformas compiten por alcanzar un mayor mercado. J2EE parte con la ventaja de haber llegado antes al mercado, se puede adquirir de distintas compañías, es una tecnología abierta y goza ya de cierta veteranía con probada eficacia en muchos entornos y situaciones empresariales distintas. Por otra parte, Microsoft es la mayor empresa de software que gracias a sus precios ajustados y a su excelente departamento de marketing, conseguirá llegar a una importante masa de empresas y desarrolladores.. Seguramente, como norma general, J2EE se impondrá en las grandes compañías mientras que Microsoft lo hará en las pequeñas y medianas empresas. La propagación de plataformas libres así como el énfasis actual de las grandes compañías sobre el estándar de J2EE, nos lleva a un estudio más detallado de la misma.. 1.3.3 J2EE La Java 2 Platform Enterprise Edition (J2EE) no es solo un conjunto de componentes modulares y estandarizados sino que define una serie de especificaciones que determinan un estándar para el desarrollo de aplicaciones empresariales multicapas en el entorno Java. Una aplicación empresarial distribuida usando J2EE se concibe como un conjunto de capas que interactúan entre sí y en las cuales se encuentran los componentes de la aplicación agrupados por roles o funcionalidades dentro del sistema. Dichos componentes se encuentran localizados en 4 capas fundamentales: la capa cliente, la capa web, la capa del negocio y la capa del Sistema de Información Empresarial. Se hace necesario entonces la definición de dichos componentes.. 12.
(22) Capítulo I 1.3.3.1 Los componentes en J2EE Un componente en J2EE es una unidad de software autocontenida y funcional que es ensamblada a una aplicación de J2EE, y por tanto interactúa con los demás componentes que en ella se encuentran. La especificación de J2EE define los siguientes componentes: •. Las aplicaciones clientes y applets son componentes que se ejecutan en el cliente.. •. Los Java Servlets y Java Server Pages (JSP) son componentes de la capa de WEB que se ejecutan en el servidor.. •. Los Enterprise Java Beans (EJB) son componentes del negocio que se ejecutan en el servidor.. Se considera importante profundizar en los conceptos de EJB por ser los utilizados en nuestro trabajo. 1.3.3.2 Enterprise Java Bean Se considera la especificación de los Enterprise Java Bean (EJB) como una de las piezas fundamentales de la plataforma J2EE. Un EJB representa un objeto con características adicionales de acceso seguro, por roles, transaccional, con balance de carga y, cuando lo requiere, persistente; que permite agrupar en sí conjuntos de funcionalidades del sistema. Por otra parte, los Enterprise Beans son los componentes de J2EE que implementan la tecnología de EJB. Los Enterprise Beans existen en el EJB Container, un ambiente de tiempo de corrida que forma parte del Servidor de Aplicaciones. Escrito en Java, un Enterprise Bean es un componente que encapsula la lógica del negocio de una aplicación. Los Enterprise Beans se pueden clasificar según su propósito general: •. Session Bean: En sus métodos se implementan la lógica del negocio. Realiza tareas a clientes.. •. Entity Bean: Representa un objeto entidad del negocio que existe en un almacenamiento persistente. 13.
(23) Capítulo I •. Message – Driven Bean: Actúa respondiendo a los mensajes de las API del Servicio de Mensajes de Java, procesando los mensajes de forma asincrónica.. 1.3.3.2.1 Entity Bean En la especificación de EJB 2.0 se define a los Entity Beans como un componente que representa una vista orientada a objetos de entidades persistidas en un almacenamiento permanente, que puede ser una base de datos o un ente con responsabilidades de persistencia, utilizado en la aplicación empresarial. Esto hace que el objetivo principal de los Entity Bean sea “objetizar” los datos almacenados. Pero esta definición no aleja a los Entity Bean de los objetos de java ordinarios. Por otra parte, en la definición dada por Core J2EE Patterns se describe a un Entity Bean como un objeto distribuido, compartido, transaccional y persistente. Esto explica por qué un Entity Bean es un Enterprise Java Bean (EJB). Estas definiciones coinciden con que los Entity Beans son los componentes de acceso a datos, y no deben estar involucrados en la lógica del negocio. Una característica importante de los Entity Beans es el hecho de que son independientes del sistema de persistencia. La abstracción del Entity Bean puede trabajar con cualquier objeto persistente o servicio, tales como RDBMS, ODBMS o sistemas legados. Por otra parte, los Entity Beans se diferencian en la forma en que realizan la abstracción de los datos. Pueden ser clasificados en Entity de “grano fino” cuando los datos que muestra cada componente representan una fila en una tabla en la persistencia o de “grano grueso” cuando representa un registro lógico que toma datos de varias tablas.. 1.3.3.2.2 Session Bean. Los Session Bean son las fachadas del modelo. Establecen la capa de enlace entre la capa de presentación y la capa de negocios. Se clasifican según su capacidad para mantener su estado en: Stateful Session Bean (cuando mantienen sus estados durante la sesión) y en. 14.
(24) Capítulo I Stateless Session Bean (componentes sin estado). En ellos se codifican casi en su totalidad los métodos del negocio utilizados en la aplicación. Una de las características fundamentales que hace preferir el uso de los EJB por encima de otras soluciones es el manejo automático y transparente de las transacciones por los contenedores. Gracias a la característica de Container-Managed Transactions (CMT) presente en los EJB, el código referente a las transacciones no tiene que ser escrito por el desarrollador y es definido declarativamente en los descriptores de despliegue del componente. Otro concepto necesario para poder entender el funcionamiento de las aplicaciones en J2EE, es el concepto de contenedores. 1.3.3.3 Los Contenedores en J2EE. Es común encontrar aplicaciones multicapas, donde la comunicación entre un cliente y el servidor trae consigo la necesidad de implementar rigurosamente los métodos necesarios para establecer las transacciones y la comunicación, en sentido general, entre las partes; lo que trae consigo un gasto de tiempo innecesario en el desarrollo del sistema. En J2EE, el desarrollo basado en componentes y la filosofía de independencia de plataforma responsabilizan a la arquitectura de brindar los elementos necesarios para establecer la comunicación y la seguridad que debe existir entre los entes del negocio; y agrupa estos servicios en forma de un contenedor para cada tipo de componente. Los contenedores definidos en la especificación de J2EE son: •. El servidor de J2EE (o servidor de aplicaciones).. •. El contendor de EJB.. •. El contenedor WEB.. •. El contenedor de Applets.. •. El contenedor de Aplicaciones cliente.. 15.
(25) Capítulo I Dentro de los contenedores que han sido señalados para la realización de un trabajo como este, cobra vital importancia lo que se conoce como Servidor de Aplicaciones. Por tal motivo su análisis, se torna necesario.. 1.3.4 Servidor de Aplicaciones Es aquel servidor que se encarga de soportar aplicaciones, brindando a estas una serie de servicios para ser usados por sus componentes. También se encarga de la gestión de la mayor parte de las funciones de la lógica del negocio y de acceso a los datos de las aplicaciones. Las principales ventajas de este tipo de servidor son la centralización y disminución de la complejidad en el desarrollo de una aplicación.. Aunque este término se puede aplicar a todas las plataformas generalmente se usa como sinónimo de la plataforma J2EE. Existen varios servidores de aplicaciones para esta plataforma, como WebSphere (IBM), Oracle Application Server (Oracle Corporation) y WebLogic (BEA), los cuales son propietarios. Aunque también existen algunos que son libres, el más popular es sin duda JBoss.. 1.3.5 JBoss JBoss es un servidor de aplicaciones que cumple con la especificación de J2EE. Además es de código abierto y Libre. Debido a que está basado en Java, JBoss puede ser usado sobre cualquier sistema operativo que soporte Java. Este servidor de aplicaciones implementa todos los servicios descritos en la implementación de J2EE y está respaldado por una gran comunidad de programadores y una compañía sin fines de lucro llamada “JBoss Inc”. Entre los servicios brindados por este servidor están:. 16.
(26) Capítulo I CMP (Container-Managed Persistence): Este es el servicio brindado por el servidor de aplicaciones que se responsabiliza de establecer toda la comunicación entre el Entity Bean y el ambiente donde se está realizando la persistencia. Es el desarrollador el que debe decidir si utiliza este mecanismo o se responsabiliza él de desarrollar los métodos que definen la persistencia. CMR (Container-Managed Relationships): Son relaciones que se establecen entre los Entity Beans que pertenecen a un mismo contenedor. Estas pueden ser de uno a uno, uno a muchos o muchos a muchos; y a. su vez pueden clasificarse en unidireccionales o. bidireccionales. Las CMR permiten modelar relaciones que no tienen que ser precisamente definidas en el sistema de persistencia (sistema gestor de bases de datos, por ejemplo) y elevar estas a un nivel mayor en la abstracción de los datos, al ser definidas entre los objetos o componentes del sistema y no entre simples tablas. Otros servicios son: •. Servicio de Transacciones. •. Servicio de seguridad por roles. La seguridad es una parte esencial de una aplicación empresarial, por lo que es fundamental poder restringir quien debe tener acceso a realizar las operaciones de nuestra aplicación. La especificación J2EE define un modelo de seguridad simple basado en roles. El componente encargado de la seguridad en el JBoss, JBossSx framework, el cual soporta esta especificación de la J2EE, basándose la implementación por defecto en JAAS (Java Authentication and Authorization Service).. JBoss es considerado como un servidor de aplicaciones que cumple con los estándares, estable, seguro, flexible e incrustable ya que está orientado a una arquitectura basada en servicios.. 17.
(27) Capítulo I. 1.3.6 Arquitectura Orientada a Servicios Para comprender cabalmente el significado de SOA (Arquitectura Orientada a Servicios), hay que partir señalando que no se trata de una tecnología, sino más bien de un “enfoque”, como dicen algunos, o una "filosofía", como dicen otros. Este enfoque provee una metodología y un marco de trabajo para diseñar una arquitectura de software basada en servicios, los cuales pueden ser expuestos interna o externamente a través de un conjunto de tecnologías estándares para su uso por otras aplicaciones, propias o de terceros. Con SOA, las empresas pueden hoy integrar aplicaciones de manera más sencilla y desplegar nuevos servicios con mayor rapidez, gracias a la reutilización del software y a la independencia de las aplicaciones respecto de la infraestructura y la plataforma tecnológica. Se trata de un enfoque que, ayudado por los estándares y los servicios Web, se perfila como una de las tendencias en las Tecnologías de la Información (TI) más importantes para el presente y el futuro cercano. Probablemente no haya actualmente otro concepto más nombrado en el ámbito de la TI empresarial que el acrónimo SOA. Esta noción ha ido alcanzando por estos días un fuerte impulso y notoriedad debido a que promete resolver una de las principales demandas que enfrentan las empresas en la actualidad: la flexibilidad. La competitividad y los ciclos de los negocios actuales exigen flexibilidad. Y esta, no sólo significa resolver muchos obstáculos en el despliegue e integración de las aplicaciones, sino también se convierte en sinónimo de buenos procesos de negocios y, mejor todavía, en el inicio de la generación de ventajas y de agregar más valor al negocio. Considerada por muchos como uno de los componentes clave de la "Arquitectura de Nueva Generación", se pronostica que SOA, con seguridad, seguirá dando qué hablar en los próximos diez años, puesto que aún no ha iniciado su fase de consolidación o madurez plena. Sin embargo, se estima que ya la mayor parte de las organizaciones, especialmente de mayor tamaño, estará iniciando o desplegando aplicaciones basadas en SOA. También se destaca que esta arquitectura tiene un potencial no menor: transformar los negocios. Y esta es otra de las cualidades que prometen convertir a SOA en algo más que una moda.. 18.
(28) Capítulo I Al contrario de las arquitecturas orientadas a objetos, SOA está formada por servicios de aplicación con acoplamiento débil y altamente interoperable. También se diferencia de una arquitectura cliente/servidor tradicional en que está orientada a procesos y enfocada al cambio. De esta forma, gracias a una arquitectura SOA las empresas pueden reconfigurar rápidamente sus recursos sin necesidad de realizar una integración profunda, lo cual les permite liberar recursos para abrir espacio a la innovación. Según (Reynoso, 2005) “SOA ha surgido como la mejor manera de afrontar el desafío de hacer más con menos recursos. Promete hacer la re-utilización y la integración mucho más fáciles, ayudando a reducir el tiempo de desarrollo y aumentando la agilidad organizacional…”. La mayor virtud que se le atribuye a SOA es la capacidad de reutilización a gran escala del software, lo cual tiene consecuentes ventajas en calidad, costos y facilidad de despliegue de aplicaciones. Por otro lado, un segundo factor está dado por los múltiples beneficios asociados a la independencia que permite SOA entre las aplicaciones, la infraestructura y plataforma tecnológica.. Sin embargo, este tipo de arquitectura no es algo 100% nuevo. De hecho, las organizaciones de TI han estado construyendo y desplegando exitosamente aplicaciones SOA desde hace años, sólo que antes se hacía referencia a ella a través de términos como "modularidad", "programación orientada a objetos", "componentes reutilizables" o "interfaces de programación de aplicaciones". Y, aunque ninguno de dichos conceptos es idéntico a SOA, sí involucran algunos aspectos de ella. Es después del surgimiento de XML (eXtensible Markup Language) que los Servicios Web aparecen en este escenario, dándole mayor fuerza al desarrollo de SOA.. 1.3.7 XML Como se ilustra en la Enciclopedia Libre Wikipedia, XML proviene de las siglas en inglés de eXtensible Markup Language (Lenguaje de Marcas Extensible). Es una simplificación y adaptación de SGML (en inglés Standard Generalized Markup Language) permitiendo la. 19.
(29) Capítulo I definición de gramáticas de lenguajes específicos, es una manera de definir un lenguaje y no uno en si. Inicialmente se creo para ser usado en Internet, pero se ha ido ampliando su campo de uso, ya que se ha ido convirtiendo en un estándar a la hora de intercambiar información estructurada entre diferentes plataformas. Se le considera una tecnología sencilla que al complementarla con otras que interactúan con ella la hacen más potente y amplían sus posibilidades.. Una vasta área de uso de XML viene dada por la necesidad de interoperabilidad, permitiendo a las aplicaciones comunicarse unas con otras de una forma estándar. En efecto XML se ha vuelto la pieza común y de mejor entendimiento de la comunidad de diseñadores de software. Esto ha fundamentado la estrecha la relación que existe entre XML y los Servicios Web.. 1.3.8 Servicios Web El término Servicio Web es un concepto del que actualmente se abusa con cierta frecuencia y más aun en la actualidad ya que al tratarse de una tecnología relativamente reciente, no se tiene una idea clara y concisa acerca de los requisitos que debe cumplir un sistema de software para que sea realmente un Servicio Web. Son muchas y muy variadas las definiciones que actualmente se pueden leer en las distintas publicaciones que abordan este tema. El World Wide Web Consortium (W3C), principal agrupación para la especificación de estándares en Internet, define un Servicio Web como “una aplicación software identificada por una URI, cuyas interfaces y vinculaciones son capaces de ser definidas, descritas y descubiertas como artefactos XML. Un Servicio soporta la interacción con otros agentes software mediante el intercambio de mensajes basado en XML a través de protocolos basados en Internet”.. 20.
(30) Capítulo I Los Servicios Web, constituyen un avance tecnológico que no está ligado a ninguna tecnología, ya que una de sus premisas es la interoperabilidad multiplataforma. Un Servicio Web no es más que una idea, un concepto cuya implementación debe respetar una serie de reglas e interfaces para poder ser accedido por cualquier sistema conectado a la red, siempre que disponga de permiso para ello. Generalmente, los Servicios Web incluyen tanto lógica de negocios como manejo de estado (datos), relevantes a la solución del problema para el cual fueron diseñados. La manipulación del estado es gobernada por las reglas de negocio. Un servicio funciona como una aplicación independiente, teniendo sus propias reglas de negocio, datos, procedimientos de administración y operación. Expone toda su funcionalidad utilizando una interfaz basada en mensajes. La comunicación hacia y desde el servicio, es realizada utilizando mensajes y no llamadas a métodos. Estos mensajes deben contener o referenciar toda la información necesaria para ser entendidos. Esto permite que las aplicaciones compartan información y que además invoquen funciones de otras aplicaciones independientemente de cómo se hayan creado las aplicaciones, cuál sea el sistema operativo o la plataforma en que se ejecutan y cuáles los dispositivos utilizados para obtener acceso a ellas. La comunicación se caracteriza por el intercambio de mensajes XML y por ser independientes del protocolo de comunicación. Para lograr esta independencia, el mensaje XML se envuelve de manera apropiada para cada protocolo gracias a la creación del protocolo de transporte SOAP. 1.3.8.1 Tecnologías Asociadas a los Servicios Web Los requerimientos a la hora de desarrollar o consumir un Servicio Web son: •. un formato común y extensible de mensaje: SOAP (basado en XML).. •. un lenguaje común y extensible para describir los servicios: WSDL (basado en XML).. •. una forma de descubrir los servicios en Internet: UDDI (basado en XML).. 21.
(31) Capítulo I. 1.3.8.1.1 SOAP SOAP (Simple Object Access Protocol), es un protocolo simple para el intercambio de información estructurada en un entorno distribuido y descentralizado. Utiliza XML para definir un framework extensible de mensajería proveyendo un formato de mensaje que puede ser intercambiado sobre una variedad de protocolos subyacentes. El framework fue diseñado para ser independiente de cualquier modelo de programación o cualquier semántica específica de alguna implementación. El documento XML que define un mensaje SOAP consta de un elemento raíz Envelope que, a su vez, consta de un elemento requerido Body y un elemento opcional Header. El elemento Body incluye los datos específicos del mensaje. El elemento opcional Header puede contener información adicional no relacionada directamente con el mensaje específico. Cada elemento secundario del elemento Header se denomina encabezado SOAP.. 1.3.8.1.2 WSDL El lenguaje de descripción de Servicios Web, Web Services Definition Language, (WSDL) nació en septiembre de 2000 de la mano de Microsoft, IBM y Ariba. Se basa en los lenguajes de definición NASSL44 (Network Accesible Services Specification), de IBM, y SCL45 (SOAP Contract Language) de Microsoft. En Marzo de 2001, estas compañías, con el apoyo de algunas otras, enviaron la versión WSDL 1.146 al W3C, donde fue publicado como una nota por lo que formalmente no es un estándar del W3C. En esencia, WSDL es un contrato entre el proveedor del servicio y el cliente mediante el que el proveedor del servicio indica: •. Qué funciones que se pueden invocar. •. Qué tipos de datos utilizan esas funciones. •. Qué protocolo de transporte se utilizará para el envío y recepción de los mensajes (típicamente, pero no únicamente, mensajes SOAP).. •. Cómo acceder a los servicios. En esencia, mediante qué URL se utilizan los servicios. 22.
(32) Capítulo I. 1.3.8.1.3 UDDI UDDI, “Universal Description, Discovery and Integration”, es un elemento central del grupo de estándares involucrados en esta tecnología. Es el mediador a través del cual se conocen los posibles clientes con los proveedores de los servicios. Define un método estándar para publicar y descubrir servicios en el contexto SOA.. Los Servicios Web son contextos ideales para la integración de sistemas que requieren de independencia del lenguaje de programación y del sistema operativo, la mayoría de estos sistemas requerirán almacenar datos, por lo que la elección de un Sistema Gestor de Bases de Datos relacional se torna necesaria.. 1.3.9 Sistema Gestor de Bases de Datos En la actualidad una gran gama de aplicaciones requieren acceder a datos, bien sea un sencillo programa doméstico, bien una suite para la gestión empresarial. Estos datos se deben almacenar en algún soporte permanente, y las aplicaciones deben disponer de un medio para acceder a ellos. Normalmente, la forma en que un programa accede a un fichero es a través del Sistema Operativo. Este provee de funciones como abrir archivo, leer información del archivo, guardar información, etc. No obstante, este procedimiento de acceso a ficheros es altamente ineficaz cuando se trata con un volumen elevado de información. Es aquí donde aparecen los Sistemas Gestores de Bases de Datos. Un Sistema Gestor de Bases de Datos (SGBD) es entonces el software capaz de proporcionar una interfaz entre aplicaciones y Sistema Operativo; para conseguir, entre otras cosas, que el acceso a los datos se realice de una forma más eficiente, más fácil de implementar, y sobre todo, más segura. Esto garantizaría a su vez: •. Abstracción de la información: Los usuarios de los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos; este hecho se hace transparente al usuario.. 23.
(33) Capítulo I •. Independencia: La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos, sin tener que realizar cambios en las aplicaciones que se sirven de ella.. •. Redundancia mínima: Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.. •. Consistencia: En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario que la información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.. •. Seguridad: La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentre asegurada frente a usuarios malintencionados, que intenten leer información privilegiada, frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado.. •. Integridad: Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, etc.. •. Respaldo y recuperación: Los SGBD deben proporcionar una forma eficiente para realizar copias de seguridad de la información almacenada en ellos, y para restaurar a partir de estas copias los datos que se hayan podido perder.. •. Control de la concurrencia: En la mayoría de entornos lo más habitual es que sean muchas las personas que acceden a una base de datos, siendo tambien frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.. •. Tiempo de respuesta: Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados.. Existen también Sistemas Gestores de Bases de Datos desarrollados bajo la norma del Software Libre. Se destacan entre ellos, MySQL y PostgreSQL. 24.
(34) Capítulo I. 1.3.10 PostgreSQL Es un servidor de base de datos relacional libre, liberado bajo la licencia BSD. Es una alternativa para otros sistemas de bases de datos de código abierto (como MySQL, Firebird y MaxDB), así como también para sistemas propietarios como Oracle o DB2. Algunas de sus principales características son: •. Claves ajenas.. •. Disparadores (triggers).. •. Vistas.. •. Integridad transaccional.. •. Acceso concurrente multiversión (no se bloquean las tablas, ni siquiera las filas, cuando un proceso escribe).. •. Capacidad de albergar programas en el servidor en varios lenguajes.. •. Herencia de tablas.. •. Tipos de datos y operaciones geométricas.. Una de estas características, las vistas, pueden agilizar más nuestro trabajo, ya que permiten además de realizar consultas de selección, la inserción, modificación y borrado de registros. Esto es posible ya que una vista en el modelo relacional no es sino una tabla virtual derivada de las tablas reales de nuestra base de datos, en si son tablas ficticias, denominadas derivadas (no materializadas). Se construyen a partir de tablas reales (materializadas) almacenadas en la base de datos, y conocidas con el nombre de tablas básicas (o tablas de base). Esta no-existencia real de las vistas hace que puedan ser actualizables.. Por otra parte, para la consecución del desarrollo de una aplicación empresarial resulta forzoso el análisis de otro elemento que va a cobrar extraordinaria importancia. Nos referimos a la Estrategia de Desarrollo.. 25.
(35) Capítulo I. 1.3.11 Estrategias de Desarrollo Una estrategia no es más que un conjunto de acciones que se lleva a cabo para lograr un determinado fin. Es un proceso regulable, conjunto de reglas que aseguran una decisión óptima en cada momento. Estrategia de Desarrollo, en el mundo informático, no es más que una serie de modos y actividades que se realizan para crear un software. Define, por tanto, un modo de hacer las cosas.. Existen varias estrategias de desarrollo a la hora de realizar un software. Una vía que promete acelerar el desarrollo de aplicaciones, simplificar la integración entre distintas tecnologías y reducir el costo de la migración de las aplicaciones a nuevas plataformas, lo es, sin dudas, Model Driven Architecture (MDA).. 1.3.12 Model Driven Architecture El Object Manaegment Group (OMG) es una organización de compañías de sistemas de información creado en el año 1990, con el objetivo de fomentar el desarrollo de aplicaciones orientadas a objeto y distribuidas. Desde un principio se prestó especial atención al problema de la interoperatividad e integración de sistemas, lo que ha llevado al OMG a definir numerosas especificaciones y estándares como CORBA, UML, MOF, XMI y CWM. La Arquitectura Dirigida por Modelos (MDA) tiene como objetivos principales “la optimización de la productividad, portabilidad, interoperabilidad y reutilización de los sistemas.” (Di Libero, 2006). En el año 2001, el OMG estableció el framework MDA como arquitectura para. el. desarrollo de aplicaciones. Aunque este concepto no fue creado por el OMG este se ha encargado de promoverlo. En la actualidad se está tomando cada vez más en serio la importancia del modelado en el desarrollo de cualquier tipo de aplicación debido a las facilidades que implica un buen. 26.
(36) Capítulo I diseño tanto a la hora de desarrollar un software como cuando debemos darle mantenimiento o nos enfrentamos a continuos cambios en las tecnologías de implementación. La metodología MDA “permite el despliegue de aplicaciones empresariales, diseñadas sin dependencias de plataforma de despliegue y expresado su diseño mediante el uso de UML y otros estándares, potencialmente en cualquier plataforma existente, abierta o propietaria, como servicios web, .Net, Corba, J2EE, u otras.” (Corredera, 2005). Por otra parte, las aplicaciones distribuidas Business to Business (B2B) y Client to Business (C2B) son cada vez más comunes, por lo que resulta difícil satisfacer los requisitos de escalabilidad, seguridad y eficiencia. La idea clave que subyace a MDA es que si el desarrollo está guiado por los modelos del software, se obtendrán beneficios importantes en aspectos como son la productividad, la portabilidad, la interoperatibilidad y el mantenimiento. Para alcanzar estos beneficios MDA pretende la separación del sistema en tres modelos diferentes pero relacionados entre ellos, planteando el siguiente proceso de desarrollo: un modelo llamado CIM (Computation Independent Model) que describe los procesos de negocio que debe resolver el sistema sin tener en cuenta que serán ejecutados por un aparato computacional, de los requisitos se obtiene un modelo independiente de la plataforma (PIM), luego este modelo es transformado con la ayuda de herramientas en uno o más modelos específicos de la plataforma (PSM), y finalmente cada PSM es transformado en código. Haciendo uso de MDA, una empresa puede definir el comportamiento y funcionalidad de negocio de un sistema como un PIM, y después producir diferentes PSMs e implementaciones sobre cualquier plataforma tecnológica que prefiera. Permitiendo la definición de modelos de aplicación y datos que sean legibles para una máquina y que tengan una flexibilidad duradera, en términos de implementación, integración, mantenimiento, pruebas y simulación. La ventaja principal de MDA radica en la clara y estricta separación de responsabilidades. Por un lado, modelaremos los PIMs, que representan los modelos de nuestro negocio, y por 27.
(37) Capítulo I otro lado, los PSMs con las preocupaciones tecnológicas. Esto permitirá que ambos modelos puedan evolucionar por separado. De esta manera, si quisiéramos, por ejemplo, modificar un aspecto técnico, bastará con modificar el PSM sin que estos tengan impacto en la lógica de negocios. Esta idea viene de un concepto que, en ingeniería de software, se llama “Guías de Diseño”. Particularmente, una de esas guías dice que el modelado de la solución debe ser dirigido por el negocio. Esta guía se basa en la afirmación de que un cambio en el negocio seguramente produzca un cambio en el código, pero no lo inverso: los cambios en el código no deberían impactar en el negocio.. Al MDA incorporar la idea de transformaciones entre modelos (PIM a PSM, PSM a código) se necesitarán herramientas para automatizar esta tarea. Estas herramientas de transformación son, de hecho, uno de los elementos básicos de MDA. Una de estas herramientas, capaz de transformar un modelo independiente de la plataforma UML, en una aplicación empresarial J2EE, siguiendo el paradigma del Software Libre, es AndroMDA.. 1.3.13 AndroMDA Según la Enciclopedia Libre Wikipedia, “AndroMDA es una herramienta de generación de código que sigue el paradigma de arquitectura MDA”. Recibe un modelo UML y genera las clases y los componentes (J2EE u otros), específicos para la arquitectura de la aplicación. Al contrario de otros entornos de desarrollo MDA, AndroMDA incluye un conjunto de cartuchos enfocados a los frameworks de desarrollo actuales como son Spring y Hibernate. El cartucho para Spring, tiene las características necesarias para la transaccionalidad y persistencia, generando código para contenedores EJB o para aplicaciones Standalone para contenedores Web. El cartucho para Hibernate asume el mapeo objeto-relacional para la plataforma Java, facilitando el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación.. 28.
(38) Capítulo I Debido al soporte de estas plataformas por el generador de código de AndroMDA, esta se ha convertido en la principal herramienta de Software Libre de MDA para el desarrollo de aplicaciones empresariales, como pueden ser los Servicios Web. De esta forma ha quedado definido lo que constituye el sustento teórico de nuestra investigación.. 29.
(39) Capítulo II. II Consideraciones metodológicas en torno al diseño e implementación del módulo. La revisión bibliográfica además de iniciar la investigación se llevó a cabo durante todo el proceso; pues en muchas ocasiones fue necesario recurrir a ella para establecer redefiniciones y para documentarnos en cuanto a nuevos fenómenos que aparecieron durante el proceso investigativo. Fue importante en el orden de tomar decisiones respecto a los objetivos de la investigación y el desarrollo de esta. Con ello evitamos inconsistencias y repeticiones. Esta tarea estuvo encaminada, en mayor medida, a la elaboración del marco teórico, también sistemática, y que nos permitió analizar críticamente el trabajo, orientar los pasos a dar en la investigación, conocer el estado actual del tema, así como la interpretación de los datos e informaciones obtenidas. Otro momento importante lo constituyó el estudio de los procesos que se desarrollan en el Sistema de Gestión del Control del Posgrado y en el SIGENU en la UCLV. Para ello se empleó la entrevista y la revisión de documentos como técnicas de recogida de información. Ya con los procesos de los sistemas como objeto de nuestro estudio y con una comprensión teórica del fenómeno que lo sustenta, estábamos en condiciones de comenzar a desarrollar la aplicación. El desarrollo del nuevo módulo para la integración de estos sistemas, se concibió en tres etapas fundamentales. La primera de estas, guiada a la selección del entorno y de las herramientas de desarrollo; la segunda, al modelado del módulo; y una tercera dedicada a la implementación de dicho módulo sobre las herramientas seleccionadas.. 30.
(40) Capítulo II. 2.1 Selección del entorno y de las herramientas de desarrollo Para dar una solución eficaz y eficiente que satisficiera los requerimientos del problema de esta investigación y cumplir así con los objetivos propuestos, se hizo necesaria la implementación de un módulo basado en Servicios Web. Para desarrollar este tipo de aplicación, estimamos conveniente el uso de una plataforma libre teniendo en cuenta, además de las ventajas que a este tipo de plataformas se le señalan, el hecho de que cumplía con las regulaciones referentes al desarrollo de aplicaciones del Ministerio de Educación Superior. Definidos ya estos elementos, se requería de la elección de una plataforma de desarrollo. Por las facilidades de desarrollo rápido de la aplicación, las libertades en cuanto a la elección de la tecnología, la simplificación en la conectividad entre componentes y el aporte de importantes empresas que aseguran su soporte y evolución, resultó J2EE la elección en este caso. Específicamente, como servidor de aplicaciones, se utilizó JBoss precisamente por ser de todas las variantes libres el que con más estándares de J2EE cumple. Definida la plataforma de desarrollo, se impuso la tarea de escoger las herramientas indicadas para simplificar el proceso de construcción del sistema y hacerlo menos vulnerable a cambios en los requerimientos, pues la dinámica de la educación de posgrado así lo requiere. Por tal motivo se decidió utilizar el paradigma de desarrollo MDA. Buscando aplicaciones libres, que siguiendo el paradigma de MDA, generaran aplicaciones J2EE, se consideró a AndroMDA como la herramienta más indicada. Para el diseño de los modelos del sistema se seleccionó la herramienta Magic Draw UML pues es Libre y 100% compatible con AndroMDA. Para el mapeo objeto-relacional de datos se optó por Hibernate, pues soporta la mayoría de los sistemas de bases de datos SQL, y nos permite desarrollar objetos persistentes siguiendo el lenguaje común de Java. Por último se seleccionó el framework Spring para el manejo de los Beans de nuestra aplicación, por las facilidades que brinda para ello y entre otras ventajas, por su Hibernate.. 31. fácil integración con.
Figure
+6
Documento similar