Servicios Web y MDA. Antonio Vallecillo Universidad de Málaga. Depto. Lenguajes y Ciencias de la Computación av@lcc.uma.es http://www.lcc.uma.



Documentos relacionados
Contenido. Servicios Web. Introducción. Parte I: Introducción. Objetos: desventajas. Objetos: ventajas

5.1 Introducción a Servicios Web

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Service Oriented Architecture

Objetos Distribuidos - Componentes. Middleware

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Sistemas Operativos Distribuidos. Introducción a los Servicios Web (Web Services)

SISTEMAS DE INFORMACIÓN III TEORÍA

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Tema 6: Comparativa CORBA/Servicios Web

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Service Oriented Architecture: Con Biztalk?

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes

UNIVERSIDAD CENTROCCIDENTAL "LISANDRO ALVARADO" DECANATO DE CIENCIAS Y TECNOLOGIA MAESTRIA EN CIENCIAS DE LA COMPUTACION MENCION REDES DE COMPUTADORAS

La aplicación práctica en el mundo empresarial de los estándares Web

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

Web Services. Richard Rossel 23 de noviembre de Web Services

Servicios Web con Java EE

Servicios Web con Java EE

Capítulo 7: Introducción a la dinámica de servicios Web

Desarrollo y servicios web

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

Aplicaciones y Servicios Web (Web Services)

Arquitectura cliente/servidor

Administración Pública. Intercambio de datos y sustitución de certificados en soporte papel. HP Consulting & Integration

ESB. Norberto Fernández Departamento de Ingeniería Telemática Tecnologías de Distribución de Contenidos - UC3M 1

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Introducción. - Gráfica tomada del Artículo de José David Parra

Service Oriented Architecture

2524 Developing XML Web Services Using Microsoft ASP.NET

ARQUITECTURA ORIENTADA A SERVICIOS (SOA) EN LA JUNTA DE ANDALUCÍA

Servicios web. Contenido. Programación en Internet Curso Introducción Los pilares (SOAP, WSDL, UDDI) Desarrollo de un servicio web

Una puerta abierta al futuro

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Servicio Web. Estándares empleados. Ventajas de los servicios web. Inconvenientes de los servicios Web

Java XML Web Services.

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

Desarrollo y servicios web Sesión 18

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

Ingeniería de Software en SOA

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

Curso Capítulo 4: Arquitectura Orientada a Servicios. Conceptos y estándares de arquitecturas orientadas a servicios Web Curso 2006/2007

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Servicios Web (II) Norberto Fernández, Jesús Arias Departamento de Ingeniería Telemática

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran:

SOA y estándares: una pareja inseparable

Panorámica de la asignatura

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA Características

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Servidores Donantonio

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Servicios Web Estándares, Extensiones y Perspectivas de Futuro

Introducción al Desarrollo de Aplicaciones Empresariales

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Capacitación Efectiva SOA y Web Services con Java

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

2.1 Compuertas para Bases de Datos

Servicios web. Jorge Iván Meza Martínez

Servicios Web: Orquestación y coreografías

OLIMPO Servidor Universal

Universidad Nacional Autónoma de México Dirección de Sistemas Dirección General de Personal

Tema 1. Introducción a Java EE

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Qué son los Web Services?

Conceptos y Aplicaciones bajo un enfoque de Web Services JITT'03. Parte I. Ing. Juan Carlos Corrales M. Universidad del Cauca COLOMBIA

Enterprise Analyst: Taller de Bautizo

JavaEE.

Capítulo 1. Componentes de CORBA.

MWEB 2007 Acceso Dinámico a Servicios de una Infraestructura Web desde Teléfonos Móviles

Sustitución de certificados administrativos en soporte papel por medios telemáticos

Título: Optimización de Procesos de Negocio con SOA / BPM Nombre y Apellido: Mario Bolo bolo@ar.ibm.com Fecha: 15/08/2012

E-Government con Web Services

Elementos requeridos para crearlos (ejemplo: el compilador)

Windows Server 2012: Infraestructura de Escritorio Virtual

Análisis, Diseño e Implementación de un Sistema de. Alquiler de autos usando tecnología Cliente/Servidor con

Bases de Datos Especializadas

5. Modelos de Sistemas Distribuidos

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa

GALA. Servicios WEB. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h. L25. Servicios Web en Integración

Capítulo 5. Cliente-Servidor.

Permite compartir recursos en forma coordinada y controlada para resolver problemas en organizaciones multiinstitucionales

PROTOCOLOS DE APLICACIÓN PRÁCTICA EN INFOMED INTEROPERABILIDAD

WbS Web Services. Roberto Gómez Cárdenas Web Services

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Componentes de Integración entre Plataformas Información Detallada

Tema 1. Conceptos básicos

WebSphere es una familia de productos de software propietario de IBM

Servicios Web Ubicuos Activados por Voz

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia

WebServices bajo SOA. SOAagenda team Chile

Oracle Service Bus: Entorno de Desarrollo

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Tecnologías para Desarrollo Orientado a Servicios (posgrado) Desarrollo de Software Orientado a Servicios (pregrado)

MARCANDO LA DIFERENCIA

Transcripción:

Servicios Web y MDA Antonio Vallecillo Universidad de Málaga Depto. Lenguajes y Ciencias de la Computación av@lcc.uma.es http://www.lcc.uma.es/~av

Contenido Objetos, componentes y Servicios Web Qué son y cómo se relacionan? Nuevos acrónimos y estándares (SOAP, WSDL, UDDI) Implementación de Web Services Arquitectura de desarrollo CORBA, EJB y.net Otros aspectos: seguridad, transacciones,... Model Driven Architecture (MDA) Qué es y qué aporta? Conclusiones 20/04/2004 2

Parte I: Introducción

Introducción Al principio (?) eran los objetos Un objeto es un modelo de una entidad Un objeto está caracterizado por su estado o bien por su comportamiento [RMODP-2] Propiedades Encapsulación Herencia como mecanismo de composición Polimorfismo Vinculación dinámica 20/04/2004 4

Objetos: ventajas Mecanismos muy apropiados para diseñar aplicaciones (abstracción, encapsulación,...) Amplia difusión y aceptación Multitud de lenguajes Multitud de herramientas Notaciones de modelado (UML) Metodologías de desarrollo (RUP,...) Estándares internacionales (OMG, ISO) 20/04/2004 5

Objetos: desventajas Distribución y concurrencia? Reutilización por terceros? Gestión del ciclo de vida de los objetos? Servicios comunes? Aplicaciones abiertas? Interoperabilidad? Mecanismos rudimentarios de comunicación Mecanismos rudimentarios de composición (básicamente la herencia) 20/04/2004 6

Plataformas de objetos distribuidos (middleware) CORBA, DCOM, Java/RMI Resuelven la distribución e interoperabilidad Basadas en modelos de objetos Introducen [Krieger & Adler, 1998] Interfaces Contenedores Metadatos y capacidades reflexivas Entornos de desarrollo integrados (IDEs) Servicios comunes (naming, trading, transacciones, directorios, etc.) 20/04/2004 7

Middleware: conceptos Bus de datos para la comunicación entre objetos ( ORB ) Transparencia de la heterogeneidad, la dispersión y la activación de objetos Lenguajes de Descripción de Interfaces (IDL) Repositorios de interfaces Comunicación síncrona basada en RPCs Servicios (seguridad, transacciones,...) Ej: CORBA (1.1, 2.0), JavaBeans y COM 20/04/2004 8

Middleware Clientes Servidores v Bus de Datos y Objetos Servicios 20/04/2004 9

Estructura básica de un ORB Cliente Implementación del Servicio DII IDL Stub DSI IDLSkel Interfaz ORB Object Request Broker Adaptador de Objetos 20/04/2004 10

Programación Orientada a Componentes Extensión de la POO Sistemas abiertos y distribuidos Basada en la noción de COMPONENTE Unidad de composición de aplicaciones software que posee un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes, de forma independiente en tiempo y espacio [Szyperski, 1998] 20/04/2004 11

Características de un componente software Introspección Eventos y comunicaciones asíncronas Enlazado dinámico y composición tardía Binario (caja negra) Interfaces y contratos Servicios ofrecidos y requeridos Desarrollo independiente del contexto Reutilización por composición Granularidad (?) 20/04/2004 12

Mercado de componentes Reutilización de componentes externos (Commercial- Off-The-Shelf, COTS) COTS es una clase especial de componente software, normalmente de grano grueso, que presenta estas características [Meyer 2001]: son vendidos o licenciados al público en general los mantiene y actualiza el propio vendedor, quien conserva los derechos de la propiedad intelectual están disponibles en forma de múltiples copias, todas idénticas entre sí su código no puede ser modificado por el usuario 20/04/2004 13

Mercado de componentes Actores Proveedores de Software Independientes, intermediarios,... Usuarios Catálogos y repositorios de componentes Extensión de IDLs para incorporar información de marketing Autor, Calidad de Servicio, precio/licencia,... Ej: componentsource, flashline, wrldcomp,... 20/04/2004 14

Componentes: ventajas Solucionan muchos de los problemas de los objetos y la programación distribuida Posibilitan la reutilización (pero... eso realmente reduce costes?) Posibilitan el mercado global de software a través de componentes COTS (commercial off-the-shelf ) Interoperabilidad ( de verdad?) 20/04/2004 15

Componentes: desventajas El mercado global de componentes puede no ser viable Tanto técnicamente......como desde el punto de vista económico La interoperabilidad no funciona tan bien como la pintan Los componentes comerciales son complejos de desarrollar, adaptar y usar Los modelos de comunicación entre ellos no se adaptan demasiado bien a Internet 20/04/2004 16

COTS: Problemas técnicos (comprador) Cómo reconozco los componentes que necesito? (COTS trading) Cómo adapto los componentes COTS de acuerdo a mis requisitos? Si hay que adaptar más del 20% de la funcionalidad de un componente, es mejor desarrollarlo a medida! El problema de las dependencias Cómo gestiono las incompatibilidades, los conflictos, y las lagunas al componer COTS? Cómo se gestionan los requisitos extrafuncionales? 20/04/2004 17

COTS: Problemas técnicos (vendedor) Cómo diseño los componentes para maximizar su reutilización? Maximizing reuse minimizes use Cómo gestiono las versiones de los componentes? Y el mantenimiento? El problema de las dependencias Para cuántas plataformas desarrollo? Cómo se tratan los requisitos extrafuncionales? 20/04/2004 18

COTS: Problemas de mercado El Software: producto o servicio? Me interesa vender mis componentes? Si tengo un componente bueno, quiero vendérselo a la competencia? Lo vendo o lo licencio? Me interesa mantenerlo? Y la formación? Qué vende mi compañía, productos o servicios? Qué pasa con la calidad? Legalmente a qué me comprometo? 20/04/2004 19

La evolución Programación Orientada a Objetos Sin embargo, la cosa no acaba aquí, porque todavía quedan muchos problemas por resolver... Arquitectura Software? Requisitos extrafuncionales? [ aspectos?] Interoperabilidad? Pervasiveness?... Plataformas Orientadas a Objetos Programación Orientada a Componentes 20/04/2004 20

Otro ingrediente: Internet Nuevas posibilidades Mejor conectividad y acceso Gran infraestructura de comunicaciones Datos al alcance de todos Simplicidad de protocolos y estándares Algunas deficiencias Seguridad y tolerancia a fallos Tiempos de respuesta Distribución de datos, no de computación 20/04/2004 21

Y finalmente: EDI y B2B EDI (Electronic Data Interchange) Estándar para comercio electónico (>10años) Posibilita el B2B Difícil y caro de implementar Alejado de los middleware convencionales Necesita redes y protocolos propietarios (VAN: value-added networks) entre participantes...pero funciona! 20/04/2004 22

Web Services! WWW EDI WebServices ervices Middlewares COTS 20/04/2004 23

Parte II: Definición y caracterización de Web Services

Web Services (1) Modular, self-describing applications that can be published, located and invoked from anywhere on the Web or a local network. The provider and the consumer of the Web service do not have to worry about the operating system, language environment, or component model used to create or access the service, as they are based on ubiquitous and open Internet standards, such as XML, HTTP, and SMTP [Claudwell et al, 2001] 20/04/2004 25

Web Services (2) Internet-based modular applications that perform a specific business task and conform to a specific technical format [Mark Colan, IBM] An abstraction of a service provided by some organization as visible from a Webenabled client, utilizing the www as transport medium, and www transport protocols and formats [M. Koethe, MediaOne] 20/04/2004 26

Web Services (y 3) A software application identified by an URI, whose interfaces and binding are capable of being identified, described and discovered by XML artifacts and supports direct interactions with other software applications using XML based messages via Internet-based protocols [W3C, 2002] 20/04/2004 27

Qué ofrecen de nuevo los Web Services? (técnicamente) Pervasiveness: acceso a servicios desde cualquier sitio en la red Mejor interoperabilidad Simplicidad (.. qué precio pagamos por eso?) Permiten pasar de las típicas aplicaciones Web (2-tier), a aplicaciones más complejas (n-tier) Menor acoplamiento y mayor granularidad que la que se consigue con los componentes 20/04/2004 28

Qué ofrecen de nuevo los Web Services? (marketing) Alquiler de servicios externos frente a desarrollo ( reducción de costes?) Alquiler de servicios externos frente a compra de software mejor negocio? (eg. Adobe s Distiller) Alquiler de servicios propios frente a venta de software mejor negocio? (eg. Adobe s Distiller) 20/04/2004 29

Ejemplos de Web Services Conversores (moneda, unidades,...) Servicios de cotización en bolsa Calculadoras Asignación de IDs y GUIDs Comprobación del tiempo, el estado del tráfico, precios de subastas,... Ojo: todos tienen características comunes www.xmethods.net www.salcentral.com 20/04/2004 30

Componentes y Web Services: no son lo mismo? Web Services SOAP, HTTP URLs WSDL UDDI CORBA IIOP IORs IDL Naming Service, Interface Repository 20/04/2004 31

Componentes vs.web Services Perspectiva arquitectónica Modelo de despliegue Niveles de intercambio de información Componentes Elementos internos de un sistema Despliegue físico (install-and-use) Mayoritariamente dentro de la empresa Web Services Elementos que se ven desde fuera del sistema El sw existe en algún lado (connect-and-use) Mayoritariamente entre varias empresas Niveles de acoplamiento Comunicación Débil Middleware (eg. IIOP) Muy débil Web-based (SOAP/XML sobre http) Fuente: Cutter Consortium 20/04/2004 32

Componentes y Web Services Note, however, that all this does not mean that your CORBA objects and EJBs have suddenly become superfluous. On the contrary: they supply the implementations for your web services. Without them, you have no web services [Steve Vinoski] A robust public marketplace for components hasn t emerged. Web Services represent a new revenue stream essential for the future health of the [hardware and software] business [Grady Booch] 20/04/2004 33

Parte III: Arquitectura y uso de los Web Services

Utilización de Web Services Descubrirlos (Discovery) UDDI Universal Description, Discovery & Integration Conocer qué hacen exactamente, y cómo se usan (Description) WSDL Web Services Description Languaje Invocarlos (Invocation) SOAP Simple Object Access Protocol 20/04/2004 35

Web Services: Arquitectura Service Registry Service Description Find (WSDL,UDDI) Publish (WSDL,UDDI) Service Description Service Requestor Bind (SOAP) Service Provider Service Fuente: IBM Web Services Conceptual Architecture 1.0 20/04/2004 36

Web Services: Arquitectura ROLES Service Registry Service Description Find (WSDL,UDDI) Publish (WSDL,UDDI) Service Description Service Requestor Bind (SOAP) Service Provider Service Fuente: IBM Web Services Conceptual Architecture 1.0 20/04/2004 37

Web Services: Arquitectura OPERATIONS Service Registry Service Description Find (WSDL,UDDI) Publish (WSDL,UDDI) Service Description Service Requestor Bind (SOAP) Service Provider Service Fuente: IBM Web Services Conceptual Architecture 1.0 20/04/2004 38

Web Services: Arquitectura ARTIFACTS Service Registry Service Description Find (WSDL,UDDI) Publish (WSDL,UDDI) Service Description Service Requestor Bind (SOAP) Service Provider Service Fuente: IBM Web Services Conceptual Architecture 1.0 20/04/2004 39

Ciclo de vida de los Web Services Construcción (Build) Diseño, desarrollo y test del servicio Definición de la descripción de la interfaz Despliegue (Deploy) Publicación y registro del servicio Despliegue de los ejecutables en la Web Ejecución (Run) El servicio está operativo y accesible Gestión (Manage) Gestión y administración del servicio 20/04/2004 40

Cómo funciona la invocación? Cliente (service requestor) Implementación del Servicio (service provider) Marshalling/ Unmarshalling/ Listening Stub Skeleton Marshalling/ Unmarshalling/ Listening SOAP http Internet SOAP Invocación usando SOAP sobre http 20/04/2004 41

Comparémoslo con el ORB Cliente (service requestor) Implementación del Servicio (service provider) DII IDL Stub DSI IDLSkel Interfaz ORB Object Request Broker Adaptador de Objetos 20/04/2004 42

Comparación La arquitectura de los Web Services Es más simple Usa Internet y sus tecnologías asociadas Está menos optimizada No dispone de POA, servicios comunes,etc. En ambos casos existen herramientas para automatizar la creación de los listeners, proxies, stubs, skeletons, etc. 20/04/2004 43

Desarrollo de aplicaciones A well-architected system is typically formed from a set of parts that embody a clear separation of concerns and a balanced distribution of responsibilities Grady Booch 20/04/2004 44

Desarrollo de aplicaciones con Web Services: ejemplo PDAs Browsers Applets, Applications Client Apps Web Services clients Client Tier JSPs servlets Server Tier DB EJBs J2EE Container External Web Services CORBA ORB/CORBA Services Back-end Systems DB DB Application servers External Web Services 20/04/2004 45

Parte IV: Tecnología y estándares

Estándares técnicos SOAP WSDL UDDI XLANG (Microsoft) o WSFL (IBM) DAML (DARPA Agent Markup Language) RDF y la Semantic Web 20/04/2004 47

SOAP Estándar de-facto para interconexión Permite el intercambio de información estructurada y con tipos entre entidades (peers) descentralizados Codificación y empaquetamiento basado en XML para intercambiar datos, mensajes, RPCs SOAP proporciona principalmente: La construcción envelope, Un conjunto de reglas de codificación, La representación de RPCs (convenciones) 20/04/2004 48

SOAP example POST /StockQuote HTTP/1.1 Host: www.calculator.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://.../soap/encoding/"> <SOAP-ENV:Body> <m:plus xmlns:m="http://www.calculator.com/interface"> <a>17</a> <b>2</b> </m:plus> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 20/04/2004 49

SOAP example (response) HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env= http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle= http://.../soap/encoding/"/> <SOAP-ENV:Body> <m:plusresponse xmlns:m= http://www.calculator.com/interface"> <result>19</result> </m:plusresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 20/04/2004 50

Extensiones de SOAP Attachments Routing e intermediarios Mensajería fiable Seguridad (XML Signatures, XML Encryption) Calidad de servicio (QoS) Context sensitivity (Intelligent Web Services) Transacciones 20/04/2004 51

WSDL SOAP permite expresar invocaciones y respuestas sueltas Pero también es necesario describir los servicios, como colecciones de operaciones y respuestas Web Service Description Language fue desarrollado por Microsoft e IBM para describir servicios Web Independiente del método de transporte o método de codificación final 20/04/2004 52

Documentos WSDL Un documento WSDL contiene definiciones: Types a container for data type definitions using some type system (such as XSD). Message an abstract, typed definition of the data being communicated. Operation an abstractdescription of an action supported by the service. Port Type an abstract set of operations supported by one or more endpoints. Binding a concreteprotocol and data format specification for a particular port type. Port a [concrete] single endpoint defined as a combination of a binding and a network address Service a [concrete] collection of related endpoints 20/04/2004 53

WSDL Primitivas de transmisión One-way Request/Response Solicit/Response Notification Protocol bindings SOAP HTTP GET/POST MIME 20/04/2004 54

WSDL Las descripciones WSDL son complejas y difíciles de construir manualmente Los fabricantes ofrecen generadores automáticos de documentos WSDL: Microsoft SOAP Toolkit for COM IBM Web Services Toolkit: Java, EJBs, COM.NET (fue diseñado para trabajar con Web Services) [Web Service] y [WebMethod] attributes. Genera automáticamente los skeletons, listeners, etc. Generan hasta páginas de prueba y acceso a los servicios 20/04/2004 55

UDDI Universal Description, Discovery and Integration Desarrollado por IBM, Microsoft y Ariba Permite mantener un registro global de Web Services Con operaciones para: publicar (publish), ojear (browse) y retirar (un-publish) Web Services Registro replicado (y consistente!) Operado por IBM, Microsoft y HP Cualquier aplicación (incluidos Search engines) pueden consultarlo para descubrir servicios 20/04/2004 56

El registro de UDDI Utiliza taxonomías estándares para clasificar servicios (NAICS, UNSPSC,...) Almacena tres tipos de información White pages Nombre del negocio, informaciones de contacto, etc. Yellow Pages Clasificación de la compañía y el servicio (taxonomías) Green Pages Información técnica sobre los servicios, su descripción, y cómo invocarlos 20/04/2004 57

Tecnologías utilizadas Attachments Routing/Interm. Mensajería fiable Seguridad QoS Context Sensitivity Transacciones Semantic Web RDF (metadata) Orchestr. (WSFL, XLANG)... Metrics Trading SOAP XML Message/wire (Invocation) WSDL Estructura (XML schemas) Service Description Inspection Directory (UDDI) Service Discovery 20/04/2004 58

Productos comerciales HP s Web Services Platform IBM s Web Service Architecture (Web Sphere Application Server) Iona s E-Business Platform Microsoft s.net Framework Oracle s Dynamic Services Sun s Open ONE... 20/04/2004 59

Productos comerciales Todos ofrecen herramientas para el desarrollo e implementación de aplicaciones con Web Services de forma transparente Parsers de XML, SOAP, WSDL, etc. Invocación de Web Services Búsqueda en repositorios y registros Conexión con otras herramientas (pe. mail) Pruebas y acceso manual desde páginas Web Integración de forma natural en sus entornos de desarrollo convencionales 20/04/2004 60

Muchos cabos sueltos (todavía) Asincronía, latencia, fragmentación, fallos en nodos y comunicaciones,...(propios de los sistemas distribuidos) Polling: degradación de prestaciones y poca escalabilidad de la solución La identidad de los objetos se pierde en los servicios Web En general, los Web Services no mantienen el estado Interoperabilidad semántica? Contratos? Calidad de servicio? (definición, monitorización,...) Negociación? Tarificación? (licencias, acuerdos de uso, re-venta, etc.) Legislación? Marketing: Es el software un producto, o un servicio? 20/04/2004 61

Interoperabilidad The only way you can have reliable communication between two parties at the semantic level is if they agree on a common complete type system 20/04/2004 62

Niveles de interoperabilidad Reference Model Semantics Extra-functional properties and requirements (QoS, ilities, nesses ) Ontologies. Meaning and behavior of operations Protocols Functional interfaces Application Infrastructure Technical Infrastructure Technical Interfaces Service access protocols (choreographies) Agreements on data types, operation names and parameter types. Application specific protocols and conventions (entities identification, comms semantics, exceptions mngt) Services used (location, naming,transactions, security) and Lifecycle management (POAs) Access and Interconnection mechanisms used: CORBA, RMI, SOAP, XML, SQL, or combinations of them Sólo esto cubren los Web Services 20/04/2004 63

Resumen Web Services: A new buzzword in town Proporcionan una sólida base sobre la que construir aplicaciones distribuidas en Internet (esp. EDI y B2B) Complementan a las tecnologías actuales de desarrollo de aplicaciones: componentes, middlewares y frameworks Permiten hacer un mejor uso de las facilidades que ofrece Internet en cuanto a programación distribuida Ofrecen no sólo soluciones técnicas a la ingeniería del software, sino también de marketing y comerciales Existen ya herramientas comerciales para su desarrollo y uso industrial Pero [por sí solos] no son una panacea: No son un nuevo paradigma: ofrecen poco más que un wiring standard No solucionan todos los problemas de los sistemas abiertos y distribuidos Están en una fase inicial 20/04/2004 64

Parte V: MDA

Más allá de la tecnología... Demasiados modelos y plataformas de componentes, de servicios Web... no interoperables realmente! Cual es la mejor? Evolucionan demasiado deprisa Obsoletas... que pasa con mi inversión? Cual es la que saldrá mañana? 20/04/2004 66

MDA Nueva orientación de las actividades de la OMG para los siguientes 10 años Basada en modelos, no en plataformas tecnológicas Define: Modelos independientes de la plataforma Modelos abstractos dependientes de la plataforma Transformaciones entre PIMs y PSMs Permite preservar los PIM cuando aparecen nuevas plataformas!!! 20/04/2004 67

Conceptos claves en MDA Modelo Representación de un sistema Plataforma Conjunto de subsistemas y tecnologías que proporcionan una funcionalidad clara. CIM, PIMs y PSMs Computation Independent, Platform Independent, and Platform Specific Models Mappings Mecanismos para transformar elementos de un modelo en elementos de otro modelo. 20/04/2004 68

1) CIM de una Oficina Virtual 20/04/2004 69

2) Component-Aspect Model 20/04/2004 70

3) Plataforma DAOP 20/04/2004 71

Los distintos Modelos CIM de la Oficina Virtual. Transf. 1 (UML Profile for CAM) Modelo en CAM (UML Profile for DAOP) Transf. 2 Modelo en DAOP Modelo en CORBA Transf. 3 (UML Profile for CORBA) (small coding) Transf. 4 Implementación en CORBA 20/04/2004 72

Ventajas Cada Modelo es independiente del resto, y define sus propias entidades El desarrollo de software se convierte en una sucesión de transformaciones entre los distintos modelos Cada transformación es entre un PIM y un PSM Las transformaciones podrían automatizarse Flexibilidad y facilidad de evolución 20/04/2004 73

Otras posibilidades CIM de la OficinaVirtual. Modelo en CAM Modelo en EDOC Modelo en DAOP Modelo en CORBA Modelo en EJB Modelo en WebServices Implementación en CORBA Implementación en J2EE Implementación en SOAP 20/04/2004 74

Transformaciones PIM Transformation PSM En este caso hemos usado UML Profiles y marcas Los UML profiles definen las entidades de cada modelo Se marcan las entidades del PIM con el PSM Se definen reglas de transformación 20/04/2004 75

Ejemplo de CIM Marcado 20/04/2004 76

Resumen: MDA y Servicios Web EDOC proporciona un UML profile (ECA) que permite la integración con WS. ECA Enterprise Collaboration Archit. Complementan perfectamente: WSDL: vinculación y endpoints ECA: coreografías, sesiones, componentes y conversaciones anidadas No more manual coding! (?) 20/04/2004 77

Parte VI: Conclusiones

Conclusiones Los Servicios Web proporcionan toda una serie de ventajas muy importantes para el desarrollo de aplicaciones distribuidas en Internet No proporcionan soluciones a todos los problemas, pero sí a muchos de ellos Su objetivo no es sustituir a las tecnologías existentes, sino complementarlas Las tecnologías evolucionan demasiado rápido Quien protege la inversión? Como estar preparado para evolucionar con las tecnologías? MDA ofrece una solución excepcional y a largo plazo 20/04/2004 79

Referencias P. Cauldwell et al. Professional XML Web Services. Wrox Press, 2001. C. Szyperski. Component Software. Beyond Object-Oriented Programming. Addison-Wesley. 1998. Mark Birbeck et al. Professional XML. 2ª ed. Wrox Press, 2001. Heather Kreger. Web Services Conceptual Architecture 1.0. IBM Technical Report, 2001. Peter Herzum. Web Services and Service-oriented architectures. Distributed Enterprise Architecture Advisory Service, Cutter Consortium, 2001. James Kao. Developer s Guide to Building XML-based Web Services. Sun Microsystems, June 2001. David Krieger y Richard Adler. The Emergence of Distributed Component Platforms. Computer 41(3):43-53, 1998. Software Development Magazine (www.sdmagazine.com). Columna Beyond Objects IONASphere Magazine (www.iona.com/sphere) 20/04/2004 80

Sitios de interés (org) www.w3.org -- WWW Consortium (XML,SOAP..) www.uddi.org -- UDDI www.ebxml.org -- Electronic Business XML std. www.rosettanet.org -- RosettaNet www.xcbl.com -- Common Business Library (xcbl) www.cxml.org -- Commerce XML (cxml) www.microsoft.com/biztalk -- BizTalk Framework www.biztalk.org -- BizTalk library and repository www.xml.org -- OASIS s XML registro y repositorio Web Services@omg.org -- OMG dist. list for Web Services 20/04/2004 81

Sitios de interés (comerciales) www.xmlbus.com -- IONA s site for Web Services www.ibm.com/websphere -- IBM s site for Web Services www.hp.com/go/webservices -- HP s site for Web Services www.microsoft.com/net -- Microsoft s site for Web Services otn.oracle.com/products -- Oracle s site for Web Services www.sun.com/sunone -- Sun s site for Web Services www.talkingblocks.com -- Talking Blocks 2.0 www.componentsource.com -- Repositiorio comercial de COTS www.flashline.com -- Repositiorio comercial de COTS www.wrldcomp.com -- Repositiorio comercial de COTS www.salcentral.com -- Repositorio de Web Services www.xmethods.net -- Repositorio de Web Services 20/04/2004 82

Fin de la presentación