Extensión de los Modelos UML para el Diseño Conceptual de Sistemas de Web Services basado en la Componente de Seguridad WS-Security

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 127
 
  Extensión de los Modelos UML para el Diseño Conceptual de Sistemas de Web Services basado en la Componente de Seguridad WS-Security Departamento de Ciencia y Tecnología. Universidad Nacional Experimental
Related documents
Share
Transcript
Extensión de los Modelos UML para el Diseño Conceptual de Sistemas de Web Services basado en la Componente de Seguridad WS-Security Departamento de Ciencia y Tecnología. Universidad Nacional Experimental de Guayana RESUMEN En los últimos años se ha venido observando un creciente interés en el desarrollo de aplicaciones prácticas basadas en la tecnología de SOA (de sus siglas en inglés Service-Oriented Architecture), específicamente Web Services. El desarrollo de este tipo de aplicaciones requiere de una técnica sólida de modelado que tome en cuenta todos los elementos necesarios requeridos por este tipo de sistemas, en particular aquellos que están relacionados con la seguridad. Por otro lado, UML (de sus siglas en inglés Unified Modeling Language) se ha convertido en uno de los estándares más utilizados en la actualidad para el modelaje de sistemas de software. Suena lógico entonces combinar estas dos tecnologías para definir una técnica de modelado de Web Services basado en UML. Si bien hay diversas propuestas que toman en consideración esta relación, ninguna de ellas toca el tema relacionado con la seguridad, muy importante a la hora de desarrollar un Web Service. En este artículo se hace una revisión de los trabajos previos en el modelado de Web Services basado en UML y se presenta una propuesta de extensión de UML que considera el aspecto de seguridad basado en la tecnología WS-Security. Palabras claves: UML, SOA, Web Service, WS-Security. ABSTRACT Extension of UML models for the Design of Web Service Systems Based on the WS-Security Component A growing interest in the practical applications of the Service-Oriented Architecture (SOA) technology, specifically Web Services, has been observed in recent years. A solid modeling technique, which takes into account all required elements, particularly those related to security, is necessary to develop this type of applications. UML (Unified Modeling Language), on the other hand, has become one of the most used standards for software systems modeling; it is therefore logical to combine these two technologies to define a UML based modeling technique for Web Service systems. Even though there are some different approaches that take this relationship into account, none of them is related to security, which is very important in the development of Web Service systems. This paper summarizes a review of previous works related to Web Service systems modeling based on UML and describes a proposal of extending UML in order to consider the security aspect associated with the WS-Security technology. Keywords: UML, SOA, Web Service, WS-Security. Artículo recibido el 25 de Octubre de 2007 y aceptado en su versión final el 13 de Noviembre de CITEG Revista Arbitrada. Año I. N 2. Julio - Diciembre 2007 I. INTRODUCCIÓN Sin lugar a dudas, los servicios son uno de los elementos de mayor importancia en el alcance de los sistemas de información Web (WIS - de sus siglas en inglés Web Information Systems). Una de las ideas centrales de este enfoque es concebir las aplicaciones como un conjunto de servicios disponibles en la Web. En este sentido, la tecnología de Web Services busca convertirse en la nueva manera de implementar aplicaciones de la Web y han tenido un gran impacto en la forma como se desarrollan productos de software hoy en día. Sin embargo, no hay una base metodológica sólida para el desarrollo de los sistemas orientados a servicios (SOA - de sus siglas en inglés Service-Oriented Architecture), en particular los Web Services. Dado que esta tecnología parece estar consolidada adecuadamente, es importante ahora tomar en consideración la forma como estos sistemas pueden ser modelados para facilitar la implementación de los mismos, específicamente tener la capacidad de generar de forma automática el código necesario. Por esta razón, se requieren de nuevos métodos o técnicas de modelaje para garantizar la calidad de estos sistemas. Por otro lado, UML [16] (de sus siglas en inglés Unified Modeling Language) se ha convertido en uno de los estándares más utilizados en la actualidad para el modelaje de sistemas de software. Permite a los creadores de sistemas generar diseños que capturen sus ideas en una forma convencional y fácil de comprender para comunicarlas a otras personas [21]. Mediante la definición de los llamados perfiles UML («UML profiles»), es posible adaptar el lenguaje de UML para ser usado en un contexto de modelaje particular. El caso de los Web Services no es una excepción, por lo que UML provee un «framework» que puede ser aplicado adecuadamente para el desarrollo de estos sistemas. Hacer modelos UML de la arquitectura de un Web Service permite hacer revisiones y discusiones del diseño conceptual en niveles altos de abstracción, independientemente de la forma como se haga la implementación, enfocándose en aspectos de relevancia como por ejemplo la consistencia de los servicios. Según Heckel y compañía [11], los lenguajes de modelado visuales de alto nivel como UML tienen ventajas importantes con respecto a los lenguajes de especificaciones de bajo nivel usados para implementar los Web Services, específicamente porque están basados en XML [25] (de sus siglas en inglés extensible Markup Language). Entre otras cosas, permiten una mejor abstracción de los detalles de implementación y ofrecen una mejor comprensión. Si bien hay varios autores que han considerado en sus propuestas de modelado el uso de UML para el desarrollo de un Web Service [24], ninguna de estas propuestas toca el tema relacionado con la seguridad. Dado que los Web Services están disponibles en la Web, la seguridad cobra un papel importante a la hora de desarrollar este tipo de sistemas. En este artículo se hace una revisión de los trabajos previos en el modelado de Web Services basado en UML y se presenta una propuesta de extensión de UML que considera el aspecto de seguridad basado en la tecnología WS-Security. Aspectos conceptuales de las tecnologías de UML y Web Service son mostrados brevemente en la siguiente sección. II. DESARROLLO 1. UML y la Tecnología de Web Services UML es un lenguaje de notación visual para el modelado de sistemas, específicamente de software. Como lenguaje, contiene un CITEG Revista Arbitrada. Año I. N 2. Julio - Diciembre 2007, pp vocabulario (sintaxis) y reglas (semántica) que se enfoca en la representación conceptual y física bajo el principio de la orientación a objetos. UML es además un estándar avalado por la OMG [15] (de sus siglas en inglés Object Management Group). Este lenguaje se puede descomponer en 4 partes [21]. 1) Vistas. Muestra diferentes aspectos del sistema que se está modelando; permite enlazar el modelo al proceso escogido para el desarrollo. 2) Diagramas. Gráficas que describen el contenido de una vista. 3) Elementos del modelo. Son los conceptos usados en los diagramas, asociados comúnmente a conceptos de la orientación a objetos: clase, objeto, mensaje, etc. 4) Mecanismos generales. Proveen comentarios, información u otros extras a los elementos del modelo. Basado en los aspectos del sistema a modelar, se identifican 5 posibles vistas. 1) Vista de casos de uso. Muestra la funcionalidad del sistema tal como es percibida por los actores externos. 2) Vista lógica. Muestra cómo la funcionalidad está diseñada dentro del sistema, en términos de las estructuras estáticas y el comportamiento dinámico. 3) Vista de componentes. Muestra la organización de los componentes de código para construir el sistema. 4) Vista de concurrencia. Muestra la concurrencia (comunicación y sincronización) en el sistema. 5) Vista de despliegue. Muestra el despliegue o distribución del sistema en la arquitectura física (computadoras y otros dispositivos). Distribuidos en las vistas anteriores se tiene un total de 9 tipos de diagramas. 1) Diagrama de casos de uso. Describe lo que un nuevo sistema debe hacer o lo que un sistema existente hace en término de los requerimientos y funcionalidades. 2) Diagrama de actividades. Son usados para mostrar el flujo de las actividades del sistema. 3) Diagrama de clases. Describe el modelo estático de un sistema en términos de sus clases y las relaciones entre ellas. 4) Diagrama de objetos. Representa la asociación y relaciones entre objetos. 5) Diagramas de estados. Representa el comportamiento del sistema en el tiempo. 6) Diagrama de colaboración. Muestra la interacción entre objetos mediante el intercambio de mensajes que ocurre entre ellos. 7) Diagrama de secuencias. Similar al diagrama de colaboración pero haciendo énfasis en la línea de tiempo u orden secuencial en la cual ocurren los mensajes. 8) Diagrama de componentes. Permite modelar la estructura del software, incluyendo dependencias entre componentes en código fuente, componentes en código binario y componentes ejecutables. 9) Diagrama de distribución. Modela la distribución en tiempo de ejecución de los elementos de procesamiento y componentes de software, procesos y objetos asociados. Los mecanismos generales de UML, cuyo objetivo principal es el de incrementar las capacidades semánticas de representación, se pueden resumir en las siguientes categorías. 1) Valores etiquetados. Son propiedades asociadas a los elementos de UML en forma de etiquetas. Permiten agregar semántica extra a los elementos asociados. También son usados para agregar información administrativa sobre el progreso o estado de un proyecto. 2) Restricciones. Reglas que restringen la semántica de uno o más elementos de UML. También llamadas condiciones semánticas 100 CITEG Revista Arbitrada. Año I. N 2. Julio - Diciembre 2007 3) Estereotipos. Representa una semántica asociada a un elemento existente. Se pueden ver como un tipo de especialización del elemento. Es una extensión de la semántica pero no de la estructura del elemento. Por otro lado, Web Services representa un conjunto de tecnologías que permite a las aplicaciones comunicarse entre sí a través de Internet [7]. Técnicamente hablando, Web Services son componentes funcionales disponibles en Internet y descritos mediante documentos escritos en WSDL [26] (de sus siglas en inglés Web Service Definition Language). Un documento WSDL describe la interfaz de un Web Service como uno o más tipos de puertos («port types»), cada uno de los cuales contiene un conjunto de operaciones («operations») con sus mensajes («messages») de entrada y salida correspondientes. Cuando una operación sólo tiene un mensaje de salida se dice que es una notificación («notification»); cuando es sólo un mensaje de entrada entonces se dice que es una operación de una sola vía («one-way»). La Fig. 1 muestra un diagrama de clases UML con los componentes que forman un WSDL [19]. Figura 1. Componentes de un WSDL (Provost, 2003) Al igual que ocurre con la mayoría de los lenguajes inmersos en la tecnología Web y con todos los que se utilizan en la tecnología de Web Services, WSDL es un lenguaje XML. En este mismo orden de ideas, la estructura y sub-elementos requeridos para armar un WSDL son definidos en un documento XML Schema correspondiente [25]. El XML Schema es una alternativa basada en XML para describir los tipos de elementos y la estructura usados en un documento XML específico, también llamado DTD (de sus siglas en inglés Document Type Definition). WXS (de sus siglas W3C XML Schema) es el término genérico con el cual se identifica a los documentos XML Schema. Es importante resaltar que el área de investigación de los Web Services contempla dos aspectos que deben ser modelados: el servicio y el flujo de control. El primero identifica los servicios a ser expuestos con sus interfaces y operaciones mientras que el modelado de flujos identifica los flujos de control y data que van desde un servicio a otro. Para Heckel y compañía [11], esta división de la arquitectura de un Web Service se identifica como una parte estructural para la descripción de los servicios y sus interfaces y una parte de comportamiento para el protocolo de interacción de cada servicio con sus socios. En lo que respecta al modelado de servicios o parte estática de la arquitectura de un Web Service, el estándar que se utiliza es WSDL. Para el modelado de flujos o parte dinámica, las propuestas de lenguajes de especificación más usadas son WSCI [27] (de sus siglas en inglés Web Services Choreography Interface) y BPEL4WS [12] (de sus siglas en inglés Business Process Execution Language for Web Services). Ambos proveen una notación XML y una semántica para especificar comportamientos del proceso de negocio basados en Web Services describiendo el flujo de control y de mensajes entre los Web Services y otros servicios. Un último concepto a mencionar involucrado en la tecnología Web Services es el de SOAP [29] (de sus siglas en inglés Simple Object Access Protocol). Se trata de un conjunto de convenciones y reglas, basados en XML, que especifican el formato de mensajes y la forma como estos son procesados. Un mensaje SOAP CITEG Revista Arbitrada. Año I. N 2. Julio - Diciembre 2007, pp consiste de un sobre SOAP que contiene 0 o más encabezados SOAP y un cuerpo SOAP que alberga el contenido del mensaje, como por ejemplo, el requerimiento de un servicio. Clases de interfaz de usuario: HTML, GUI, reportes, etc. Clases del dominio del negocio: entidades, conceptos del dominio, etc. Clases de proceso: lógica del negocio, Web Service, etc. Clases para almacenamiento: base de datos, archivos planos, etc. Clases del sistema: comunicación entre procesos, registro de errores, etc. Figura 2. Modelo de negocio de un Web Service (Armstrong, 2002) En la Fig. 2 se puede observar un esquema propuesto por Armstrong [6] que resume los elementos involucrados en el modelo de negocio de un Web Service, las relaciones entre estos elementos y los documentos involucrados en estas relaciones. 2. Modelado de Web Services haciendo uso de UML Uno de los primeros enfoques presentados sobre la relación entre UML y Web Services es el de Scott Ambler [1,2,3,4] con su serie de cuatro artículos publicados en el IBM developer Works. El autor indica que para obtener un conjunto de Web Services desde una aplicación orientada a objetos, es necesario identificar paquetes de dominio y los servicios que cada paquete provee. Estos paquetes representan grupos de alto nivel de clases del dominio asociado al negocio, permitiendo definir como estrategia para representar la arquitectura de una aplicación, las siguientes capas de tipos de clases. En sus artículos, Ambler presenta una metodología de 6 pasos que van desde la definición conceptual del sistema hasta la publicación de los servicios del Web Service. Como apoyo en la realización de los pasos, utiliza UML como herramienta de modelaje. Los pasos son los siguientes: Simplificar las clases del sistema y para el almacenamiento. No tomar en cuenta las clases que no tienen que ver con la identificación de los Web Services. Simplificar jerarquías. Las relaciones de herencia y agregación se pueden simplificar para reducir la complejidad del modelo. Se apoya en el diagrama de clases de UML. Identificar los contratos de las clases. Un contrato es un servicio o comportamiento de un objeto que otros objetos pueden requerir. Es una operación que responde directamente a un mensaje de otra clase. Los contratos definen la interfaz externa, también conocida como la interfaz pública de la clase. Identificar paquetes de dominio potenciales. Un paquete de dominio es un conjunto de clases que colaboran entre sí para soportar un grupo cohesivo de contratos. La idea es que cada paquete de dominio ofrezca uno o más Web Services a otros paquetes de dominio, aplicaciones o sistemas externos. Un objetivo clave es organizar el diseño en varios paquetes de manera tal de reducir la cantidad de información que fluye entre ellos (tiene implicaciones en el tráfico en la red). Un diagrama de colaboración de UML permite representar el flujo de mensajes entre las clases que ayuda a obtener la distribución 102 CITEG Revista Arbitrada. Año I. N 2. Julio - Diciembre 2007 adecuada de clases en los paquetes de dominio. Definir los contratos de los paquetes de dominio. Los contratos entre paquetes de dominio son contratos de clases que son accesados por otras clases fuera del paquete. Es importante estar seguro que los contratos de un paquete sean cohesivos entre sí. Se puede modelar con un diagrama de componentes de UML en la cual se identifican los paquetes y las relaciones de dependencia entre ellos. Definir las firmas del Web Service. Se refiere al diseño de las estructuras XML que los Web Services retornan para representar la información requerida. Hay que identificar también los parámetros pasados al Web Service y los valores de retorno correspondientes. Un enfoque que se repite en varios planteamientos de modelaje de Web Services con UML es la definición de perfiles UML. En este sentido, Gardner [8] propone un perfil en el cual un proceso se representa como una clase mediante el estereotipo «Process» y sus atributos corresponden al estado del proceso. Thöne y compañía [22] definen el perfil UML-WSC que incluye una variante o extensión del diagrama de activación de UML, para la descripción de las composiciones de servicios orientados a procesos. Estos autores hacen uso de un estereotipo de clase para describir los Web Services con sus operaciones y parámetros. En UML-WSC hay una modificación de la sintaxis de UML al agregar otros elementos como por ejemplo la inclusión de un hexágono (no incluido en el UML original) para representar estados transformados. En este caso ya no se está definiendo un perfil sino que se está haciendo una modificación del estándar que UML representa. Esto se hubiera podido evitar definiendo un estereotipo adecuado para la sintaxis de estado incluida en UML. Otra característica común que tienen varios de los enfoques analizados, es la de definir diagramas UML para la generación automática de descripciones del servicio en WSDL. En este caso la principal contribución son las reglas de conversión entre UML y Web Services descrito en documentos WSDL y XML Schema. Un ejemplo se observa en el trabajo de Marcos y compañía [14] en la cual se define una extensión de UML para este fin. Figura 3. Pasos para el desarrollo de Web Services basado en modelos (Grønmo-1 et al, 2004) Un segundo ejemplo lo representa el trabajo de Grønmo y compañía [9], quienes plantean además, una secuencia de 6 pasos para desarrollar un Web Services basado en modelos (MDA de sus siglas en inglés Model Driven Architecture)[17]. Los pasos son los siguientes (ver en Fig. 3 diagrama de actividad UML correspondiente): 1) Se identifica el Web Service y se obtiene el WSDL correspondiente. 2) El WSDL es importado a UML mediante una transformación de ingeniería inversa; se obtienen uno o más modelos UML asociados. 3) Mediante una herramienta de UML se revisan e integran los modelos para obtener un nuevo modelo compuesto de Web Services. 4) Con el modelo anterior se genera un nuevo WSDL. 5) Se implementa el Web Service según el WSDL generado. 6) Se publica el Web Service para que esté disponible en la Web. CITEG Revista Arbitrada. Año I. N 2. Julio - Diciembre 2007, pp Con miras a ejemplificar las reglas de conversión entre UML y Web Services para la generación de los documentos WSDL y XML Schema, la Fig. 4 muestra un ejemplo genérico de clases basado en el perfil UML propuesto por Grønmo y compañía. Nótese el uso de los estereotipos «Interfaz» y «Servicio». El trabajo de Gardner [8] se basa en un esquema similar de modelado de flujos introduciendo un perfil UML para BPEL4WS. En este mismo orden de ideas, Provost [19] presenta un perfil UML bastante completo que muestra diferentes mecanismos de extensión de UML usad
Related Search
Similar documents
View more
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x