tema 6: principios de la orientación a servicios · 2012. 3. 16. · sistemas distribuidos –...

45
Tema 6: Principios de la Orientación a Servicios Sistemas Distribuidos Marcos López Sanz [Curso 2011-2012]

Upload: others

Post on 24-Sep-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

Tema 6: Principios de la Orientación a Servicios

Sistemas Distribuidos Marcos López Sanz [Curso 2011-2012]

Page 2: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 3: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 4: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 5: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 6: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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.

Page 7: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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.

Page 8: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 9: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 10: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 11: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 12: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 13: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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.

Page 14: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 15: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 16: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 17: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 18: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 19: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 20: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 21: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 22: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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.

Page 23: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 24: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 25: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 26: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 27: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 28: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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”

Page 29: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 30: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 31: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 32: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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.

Page 33: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 34: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 35: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 36: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 37: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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!!

Page 38: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 39: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 40: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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)

Page 41: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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…

Page 42: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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…

Page 43: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 44: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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

Page 45: Tema 6: Principios de la Orientación a Servicios · 2012. 3. 16. · Sistemas distribuidos – Curso 2011-2012 Introducción a la Orientación a Servicios Surge primero como un paradigma

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