tema 6: principios de la orientación a servicios · 2012. 3. 16. · sistemas distribuidos –...
TRANSCRIPT
Tema 6: Principios de la Orientación a Servicios
Sistemas Distribuidos Marcos López Sanz [Curso 2011-2012]
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Índice
Introducción a la orientación a servicios Orígenes
Características y Beneficios
Diseño y desarrollo de servicios Proceso de desarrollo (Capas, Roles y Vistas)
Servicios y Arquitecturas Orientadas a Servicios
Ciclo de Vida
Ejercicios
Dudas
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Objetivos
Conocer los orígenes y fundamentos básicos de la orientación a servicio
Comprender los aspectos más destacados de la orientación a servicios como enfoque de desarrollo de software
Analizar las características que deben tener las metodologías orientadas a servicios
Ver ejemplos de metodologías de desarrollo orientadas a servicios
3
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios
¿Cómo surge la Orientación a Servicios?
Computación Orientada a Servicios
(Service-Oriented Computing)
Servicios Web
Automatización de Procesos de
Negocios
Composición de Servicios Web
Arquitecturas Orientadas a
Servicios
“Service-Oriented Computing (SOC) is a new computing paradigm
that utilizes services as the basic constructs for developing applications.”
(Papazoglou and Georgakopoulos, Serviced-Oriented Computing, Communications of ACM, 2003)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios
Surge primero como un paradigma de computación Se destaca la importancia como enfoque de computación para dar
soporte a las organizaciones
…“Fully integrated enterprises are being replaced by business networks in which each participant provides the others with specialized services.”…
…“Traditional IT infrastructures in which infrastructure and applications were managed and owned by one enterprise are giving way to networks of applications owned and managed by many business partners”…
F. Curbera et. al, The next step in Web services, Comunication of the ACM, 2003
“The visionary promise of Service-Oriented Computing is a world of cooperating services where application components are assembled with little effort into a network of services that can be loosely coupled to create flexible dynamic busines processes and agile applications that may span organisations and computing platforms.”
Papazoglou et al., Service-Oriented Computing Research Roadmap, 2006
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios
Surge primero como un paradigma de computación Se destaca la importancia como enfoque de computación para dar
soporte a las organizaciones
Abordada desde un punto de vista tecnológico
Estándares de Servicios Web, BPEL, WS-*
Los servicios Web proveen un marco para la aplicación basada en estándares del paradigma SOC.
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios
Surge primero como un paradigma de computación Se destaca la importancia como enfoque de computación para dar
soporte a las organizaciones
Abordada desde un punto de vista tecnológico
Falta de aproximaciones metodológicas
Metodologías para facilitar el desarrollo de software en base a este paradigma
Métodos que permitan la identificación y descripción de servicios en el marco de los procesos de una organización.
Métodos que permitan la creación de servicios ejecutables a partir de modelos de negocios.
Etc.
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios
Surge primero como un paradigma de computación
Paradigma de Computación
OO Metodologías de Desarrollo
OO
Paradigma de Computación
OS
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
9
Introducción a la Orientación a Servicios Características y Beneficios
Utiliza servicios como elementos básicos para el desarrollo de aplicaciones
Desarrollo rápido, a bajo costo y de fácil composición
Independencia de lenguajes Las organizaciones exponen sus “competencias”
(funcionalidades o capabilities) a través de interfaces estándar basadas en XML. Integración, interoperatividad y reusabilidad
Permite imitar el funcionamiento de los negocios en el “mundo real” Foco en los procesos de negocios
Adaptabilidad, agilidad y flexibilidad
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Características y Beneficios
Permite imitar el funcionamiento de los negocios en el “mundo real”
“SO creates service level abstractions that map to the way a business actually works” (Papazoglou, 2008)
“SO venture about simulating the real world” (Bell, 2008)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Características y Beneficios
Permite imitar el funcionamiento de los negocios en el “mundo real”
…“Fully integrated enterprises are being replaced by business networks in which each participant provides the others with specialized services.”…
…“Traditional IT infrastructures in which infrastructure and applications were managed and owned by one enterprise are giving way to networks of applications owned and managed by many business partners”…
F. Curbera et. al, The next step in Web services, Comunication of the ACM, 2003
“The visionary promise of Service-Oriented Computing is a world of cooperating services where application components are assembled with little effort into a network of services that can be loosely coupled to create flexible dynamic busines processes and agile applications that may span organisations and computing platforms.”
Papazoglou et al., Service-Oriented Computing Research Roadmap, 2006
ERP CRM
Legacy Systems
Databases
Packaged Applications
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Proceso de desarrollo (Capas)
Lógica de Negocio, Procesos de negocios
(la realidad de la organización)
Sto
rag
e
Se
rvic
e
RJC
U
(Ge
sIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
Business Services, Capabilities
Sto
rage
Serv
ice
RJC
U
(GesIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
IDesconocido IDesconocido IDesconocido IDesconocido
ERP CRM
Legacy Systems Databases Packaged Applications
Servicios (Software Assets, Web Services, por ejemplo)
Sistemas Operacionales, Tecnologías
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Proceso de desarrollo (Roles)
Lógica de Negocio, Procesos de negocios
(la realidad de la organización)
Sto
rag
e
Se
rvic
e
RJC
U
(Ge
sIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
Business Services, Capabilities
Sto
rage
Serv
ice
RJC
U
(GesIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
IDesconocido IDesconocido IDesconocido IDesconocido
ERP CRM
Legacy Systems Databases Packaged Applications
Servicios (Software Assets, Web Services, por ejemplo)
Sistemas Operacionales, Tecnologías
Capacidades: entienden el dominio del problema,
entienden los requisitos del negocio, proponen soluciones
al negocio, etc.
Stakeholders: Business Analysts, Business Architects,
Financial analyst, CEO, CIO, CTO, etc.
Capacidades: entienden el negocio y cuáles servicios son
requeridos, entienden de servicios que pueden ser
reutilizados, etc.
Stakeholders: Software Analysts, Service Architects, SOA
Architects, Services Modeler
Capacidades: entienden el negocio y cuáles servicios son
requeridos, entienden de estrategias de integración y
reutilización de servicios, entienden de desarrollo de
servicios, proponen soluciones para la alineación, etc.
Stakeholders: Software Analysts, Service Architects, SOA
Architects, Services Modeler, etc.
Capacidades: entienden de desarrollo e integración,
entienden de tecnologías de la información, proponen
soluciones técnicas a la implementación de los servicios,
etc.
Stakeholders: Systems Analysts, Technical Architects,
Service Developers, Database architects, administrators,
etc.
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Lógica de Negocio, Procesos de negocios
(la realidad de la organización)
Sto
rag
e
Se
rvic
e
RJC
U
(Ge
sIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
Business Services, Capabilities
Sto
rage
Serv
ice
RJC
U
(GesIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
IDesconocido IDesconocido IDesconocido IDesconocido
ERP CRM
Legacy Systems Databases Packaged Applications
Servicios (Software Assets, Web Services, por ejemplo)
Sistemas Operacionales, Tecnologías
Introducción a la Orientación a Servicios Proceso de desarrollo (Vistas) Papazoglou, 2008
Parte Física
Parte Lógica
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Lógica de Negocio, Procesos de negocios
(la realidad de la organización)
Sto
rag
e
Se
rvic
e
RJC
U
(Ge
sIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
Business Services, Capabilities
Sto
rage
Serv
ice
RJC
U
(GesIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
IDesconocido IDesconocido IDesconocido IDesconocido
ERP CRM
Legacy Systems Databases Packaged Applications
Servicios (Software Assets, Web Services, por ejemplo)
Sistemas Operacionales, Tecnologías
Introducción a la Orientación a Servicios Proceso de desarrollo (Vistas) De Castro, 2007; Bell, 2008
Vista de Sistema
Vista de Negocio
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Lógica de Negocio, Procesos de negocios
(la realidad de la organización)
Sto
rag
e
Se
rvic
e
RJC
U
(Ge
sIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
Business Services, Capabilities
Sto
rage
Serv
ice
RJC
U
(GesIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
IDesconocido IDesconocido IDesconocido IDesconocido
ERP CRM
Legacy Systems Databases Packaged Applications
Servicios (Software Assets, Web Services, por ejemplo)
Sistemas Operacionales, Tecnologías
Introducción a la Orientación a Servicios Proceso de desarrollo (Vistas) Miller y Mukerji, 2003
CIM
PIM
PSM
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Servicios y Arquitecturas Orientadas a Servicios
Lógica de Negocio, Procesos de negocios
(la realidad de la organización)
Sto
rag
e
Se
rvic
e
RJC
U
(Ge
sIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
Business Services, Capabilities
Sto
rage
Serv
ice
RJC
U
(GesIM
ED
WIS
)
<<AOp>>
Validate User
<<AOp>>
Register Payment
<<WS>>
Validate Credit Card
<<AOp>>
Make a Query
<<WS>>
Query processing
<<SAc>>
Login
<<SAc>>
Pay Querying
Fee
<<SAc>>
Make a Query
<<SAc>>
View Results<<SAc>>
Download Results
Query
Parameters
<<AOp>>
Show Results<<WS>>
Download ResultQuery
Result
IDesconocido IDesconocido IDesconocido IDesconocido
ERP CRM
Legacy Systems Databases Packaged Applications
Servicios (Software Assets, Web Services, por ejemplo)
Sistemas Operacionales, Tecnologías
¿Servicio?
SOA
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Servicios y Arquitecturas Orientadas a Servicios
Concepto de servicio Involucra un proveedor y un consumidor
Consumidor: adquiere “algo” (una funcionalidad, una habilidad) que tiene valor para él
Proveedor: es una entidad (p.e., una organización) que posee recursos (o controla su entrega, o coordina su envío) para ofrecer “algo” que tiene valor para alguien.
Es un conjunto de funcionalidades o habilidades que son
proporcionadas por un proveedor.
Hablamos de servicio como una funcionalidad, y no de la forma en que se implementa una funcionalidad en el
sistema software
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Servicios y Arquitecturas Orientadas a Servicios
Concepto de servicio
Servicio de Negocio (Business Service)
Servicio como “software” (e-services)
Implementación de un servicio (p.e. Servicio Web)
Business Services
e-services
Web Services
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Servicios y Arquitecturas Orientadas a Servicios
SOA (Service Oriented Architecture) “SOA is an architectural approach to loosely coupled,
protocol independent, standards-based distributed computing where software resources available on a network are considered as services” (Papazoglou, 2008)
“SOA is a form of technology architecture that adheres to the principles of service-orientation. When realized through the Web services technology platform, SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise” (Thomas Erl, Service-Oriented Architecture: Concepts, Technology, and Design, 2005)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Servicios y Arquitecturas Orientadas a Servicios
SOA manifesto (http://www.soa-manifesto.org/) Fundamentos:
Service orientation is a paradigm that frames what you do Service-oriented architecture (SOA) is a type of architecture
that results from applying service orientation We have been applying service orientation to help organizations
consistently deliver sustainable business value, with increased agility and cost effectiveness, in line with changing business needs
Priorizar:
• Business value over technical strategy • Strategic goals over project-specific benefits • Intrinsic interoperability over custom integration • Shared services over specific-purpose implementations • Flexibility over optimization • Evolutionary refinement over pursuit of initial perfection
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Servicios y Arquitecturas Orientadas a Servicios
SOA manifesto Principios guía (valores centrales):
Respect the social and power structure of the organization. Recognize that SOA ultimately demands change on many levels. The scope of SOA adoption can vary. Keep efforts manageable and within meaningful
boundaries. Products and standards alone will neither give you SOA nor apply the service orientation
paradigm for you. SOA can be realized through a variety of technologies and standards. Establish a uniform set of enterprise standards and policies based on industry, de facto, and
community standards. Pursue uniformity on the outside while allowing diversity on the inside. Identify services through collaboration with business and technology stakeholders. Maximize service usage by considering the current and future scope of utilization. Verify that services satisfy business requirements and goals. Evolve services and their organization in response to real use. Separate the different aspects of a system that change at different rates. Reduce implicit dependencies and publish all external dependencies to increase robustness
and reduce the impact of change. At every level of abstraction, organize each service around a cohesive and manageable unit
of functionality.
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Ciclo de vida
Ciclo de vida
Ciclo de vida de los servicios
Diseño
Ejecución
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Ciclo de vida
Ciclo de vida: perspectiva del proveedor
Identificación del servicio
Diseño del servicio
Implementación del servicio
Monitorización del servicio
Retirada del servicio
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Introducción a la Orientación a Servicios Ciclo de vida
Ciclo de vida: perspectiva del consumidor
Especificación del servicio
Evaluación y selección del servicio
Contrato del servicio
Consumo del servicio
Finalización del servicio
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Factores (I) Reutilización de funcionalidad existente
Duda: ¿construir desde 0 o reutilizar/refactorizar?
Idea: implementar los servicios pensando en reutilización suficientemente general para ser utilizado con diferentes propósitos
Clave: las políticas de seguridad (autorización/autenticación), SLAs, QoS o la información de monitorización deben implementarse/configurarse de forma independiente (WS-Policy)
Minimizar los costes de “afectación tecnológica” El uso de soluciones de integración basadas en servicios favorece la
independencia de las soluciones que soportan los servicios de negocio
El uso de ESBs permite diseñar estrategias de integración modulares basadas en servicios y tecnologías/soluciones pre-existentes
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Factores (II)
Conseguir una integración incremental de soluciones tecnológicas La integración con una solución basada en servicios puede hacerse
de forma gradual y dirigida por los requisitos de la empresa
Razón: las soluciones deberían poder combinarse y sustituirse poco a poco si se sigue un enfoque orientado a servicios
Provisión de una flexibilidad incremental Las soluciones orientadas a servicios ofrecen la posibilidad de
adaptar y hacer evolucionar las aplicaciones de forma fácil y rápida
Razón: posibilidad de aislar procesos y servicios de negocio de la tecnología implica que las interfaces de negocio o tecnológicas no cambian
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Factores (y III) Escalabilidad
Dependiente de la tecnología de servicios utilizada Web Services: única restricción para la escalabilidad número
de mensajes (peticiones) que llegan “Flexibility to add, upgrade or replace applications without
redefining all of their business process or Web Services interfaces”
Cumplimiento de estándares Aceptación de estándares por parte de la industria Significado: uso de una misma semántica de negocio
(definición), procesos y protocolos de negocio, secuencias de mensajes, etc.
“Ability to choose from different service providers”
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Principios de diseño aplicables Objetivo: diseñar procesos de negocio útiles y fiables
sobre tecnologías de servicios
Premisa: que los servicios diseñados son “autocontenidos” y tienen una “frontera” bien definida (interfaz y punto de conexión) que permite la composición de servicios
Principios: Acoplamiento Cohesión Granularidad
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Principios de diseño aplicables Acoplamiento de servicios Grado de independencia entre dos procesos de negocio
Objetivo: minimizar el acoplamiento
Tipos: • Acoplamiento representacional: los servicios no deberían
depender de los detalles de representación o de implementación de otros servicios (p.ej. Lenguaje utilizado para unir los servicios que soportan un proceso)
» Mejoras: servicios intercambiables/soporte de versiones
• Acoplamiento de identidad: los canales de conexión entre servicios no deberían conocer quién está ofreciendo el servicio
• Acoplamiento de protocolo de comunicación: el número de mensajes intercambiados debería ser mínimo
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Principios de diseño aplicables
Cohesión
Grado en que las operaciones ofrecidas por un servicio están relacionadas entre si y con la funcionalidad ofrecida
Objetivo: aumentar la cohesión
Criterios:
• Cohesión funcional: un proceso de negocio debería estar encaminado a resolver un solo problema. Además, debería contener únicamente aquellos servicios necesarios
• Cohesión de comunicación: los servicios de un proceso de negocio deberían intercambiar los mismos mensajes de entrada y salida
• Cohesión lógica: los servicios de un proceso de negocio deberían ofrecer capacidades similares (alternativas)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Principios de diseño aplicables
Granularidad
Ámbito abarcado por un servicio
Tipos: • Servicios de grano grueso (coarse-grained): para resolver
problemas completos y de cara a comunicaciones hacia el exterior. Habitualmente compuestos. Pocos intercambios de información.
• Servicios de grano fino (fine-grained): interpretación directa de las interfaces ofrecidas a bajo nivel (aplicaciones existentes). Incremento del número de mensajes. Apropiados para EAI.
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Los objetivos de negocio y los requisitos deberían dirigir el proceso
de desarrollo
Objetivo: diseñar, desarrollar y probar servicios que transformen procesos de negocio en aplicaciones compuestas que automatizan e integran procesos empresariales
Fases: Planificación Análisis y diseño Construcción y prueba ‘Provisioning’ Despliegue Ejecución y monitorización
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico)
Planificación Fase preliminar
Permite preparar el resto de fases
Se establece: viabilidad, objetivos, ámbito de la solución de servicios, reglas, procedimientos…
Se recogen: requisitos
Clave: entender el entorno de negocio
Objetivo a tener en cuenta: se quiere adaptar una tecnología de servicios a un entorno concreto (de la empresa)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Análisis
Propósito: identificar los requisitos de una implementación basada en SOA funcionalidad, ámbito, reutilización y granularidad de procesos y servicios de negocio
Tareas: • Revisar los objetivos de negocio de la empresa • Crear un ‘mapa de procesos’ que describa el dominio y los procesos de
negocio de interés para la empresa • Identificar servicios de negocio asociados a los procesos que ofrezcan un
valor (reutilización, impacto de negocio) • Priorizar los servicios de negocio
Factores: • Capacidad técnica de la empresa (IT capabilities) • Agrupación de servicios en procesos y procesos en aplicaciones compuestas • Foco de atención en reutilización y gestión para mejora de eficiencia
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Diseño
Objetivo: transformar procesos y servicios conceptuales en interfaces concretas de servicios
Pasos: • Especificación de servicios individuales (WSDL) • Especificación de procesos de negocio (BPEL) • Especificación de políticas (WS-Policy)
Líneas de trabajo (visión de M. Papazoglou): • Lógica (alto nivel): el objetivo es determinar un modelo de negocio
que determine cómo se deben componer e interactuar servicios de alto nivel
• Física (bajo nivel): el objetivo es definir los servicios tecnológicos que permitan reutilizar los componentes ya existentes y transformarlos en servicios tecnológicos
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Diseño. Especificación de servicios individuales
Objetivo: proveer de una representación formal de las interfaces de un servicio (WSDL), pre- y post- condiciones, invariantes, operaciones, etc.
Resultado: • Definición de la interfaz del servicio • Definición del esquema de los mensajes que intercambia • Definición de las dependencias entre el servicio y otros • Definición de las restricciones de integridad
Una especificación de servicio está compuesta de: • Especificación estructural (sintaxis): tipos de servicios, mensajes, puertos y
operaciones (WSDL) • Especificación de comportamiento (semántica): definir qué hace y qué NO
hace (WSDL) • Especificación de políticas: restricciones, QoS, encriptación… NFR!!
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Diseño. Especificación de procesos de negocio
Objetivo: describir una ‘constelación’ de servicios individuales que interactúan entre sí
Tipos de coordinación: • Orquestaciones (BPEL)
• Coreografías (WS-CDL)
Otras notaciones: BPMN
Partes: • Describir la estructura del proceso de negocio
» Actividades y servicios que, juntos, implementan el proceso qué servicios
» Dependencias, condiciones o sincronización cómo se coordinan
» Cómo se implementa el proceso (implementar un BPEL o un WS-CDL)
• Describir los roles de negocio
» Describir quién hace qué y cuando (enlaces dentro de BPEL o WS-CDL)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico)
Diseño. Especificación de políticas Objetivo: considerar aspectos no funcionales que influyen en las
decisiones arquitectónicas sobre las que se asienta el diseño de la solución orientada a servicios
Aspectos:
• Restricciones de negocio: rangos de operación, restricciones de regulación o legales, estándares establecidos por la empresa
• Restricciones tecnológicas: dependencia de estrategias técnicas de la empresa, paquetes, aplicaciones legadas, equipamiento, uso de estándares propios del ámbito (p.ej. HL7)
• Calidades en tiempo de ejecución: rendimiento, seguridad, escalabilidad, integridad transaccional, tolerancia a fallos SLA
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Construcción
Objetivo: implementar los servicios (p.ej. Web) y los proceso de negocio utilizando los artefactos de la fase de diseño
Requisitos: contar con un entorno de ejecución para aplicaciones SOA
Tareas desde 2 puntos de vista • Perspectiva del proveedor: transformar componentes existentes a
tecnología WS o implementar desde 0 crear el documento WSDL e implementar el componente que responde ante él
• Perspectiva del cliente: definir el método que lo une (bind) a un servicio Web. Clientes estáticos (vinculación en tiempo de diseño) o dinámicos (vinculación en tiempo de ejecución discovery)
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico) Prueba
Objetivo: analizar u ‘operar’ la implementación realizada en un entorno de pruebas para exponer los posibles fallos durante su integración, configuración y ejecución en diferentes plataformas
Tipos de prueba: • Pruebas dinámicas: ejecutar la aplicación y comparar los resultados
con los esperados antes de su despliegue • Pruebas de rendimiento: tiempos y tasas de transacciones carga • Pruebas de interfaces: mediante invocaciones • Pruebas de ensamblado: verificar que los servicios interactúan e
interoperan correctamente • Otras pruebas: congestión de red, seguridad, instalación,
compatibilidad, usabilidad, actualización…
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico)
Provisioning Mezcla de aspectos técnicos y de negocio referidos a clientes y
proveedores de servicios en referencia a la actividad de suministro de un servicio
Aspectos:
• Service governance: decisiones relativas a la gestión de la provisión de servicios con un valor esperado y bajo unas premisas de alineación negocio/tecnología, exposición (seguridad), continuidad de los productos, etc.
• Service certification: determinar que un servicio cumple ciertas propiedades (es útil para lo que se le diseñó) QoS
• Service metering, rating, billing…
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico)
Despliegue Objetivo: proceso por el cual los servicios son desplegados y
publicados
Pasos (dependen de la estrategia de diseño):
• Publicación del interfaz de servicio (p.ej. mediante UDDI)
• Despliegue del servicio: despliegue del código para ejecución y de cualquier metadato necesario
• Crear la definición de implementación del servicio: permite implementar diferentes niveles de servicio o atender a diferentes clientes con distinto QoS o en base a versiones
• Publicar la definición de la implementación: decir dónde y cómo se puede acceder a un servicio
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Diseño y desarrollo de servicios
Ciclo de vida del desarrollo de servicios (genérico)
Ejecución y monitorización Objetivo: vinculación real e invocación en tiempo de ejecución de
los servicios desplegados junto con la monitorización y gestión de su ciclo de vida
Sistemas distribuidos – Curso 2011-2012 www.kybele.es
Ejercicios
¿Qué es un servicio? Puntos de vista de negocio, conceptual, tecnológico…
¿Qué es la orientación a servicios y qué relación tiene con el concepto de SOA?
¿Cuáles son las fases de diseño de una solución orientada a servicios?¿quién interviene en cada una?
Explicar a qué se refiere cada uno de los “valores guía” del manifiesto SOA