46
SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

Embed Size (px)

Citation preview

Page 1: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

SOA Elucidado: Princípios da Arquitetura Orientada a Serviços

Renato L. RissardiPre-Sales System Engineer

Page 2: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

2 Esclarecendo SOA© 2005 Progress Software Corporation

Ambiente de negócios é altamente mutável

Demanda de clientes Competição Fusões e aquisições Desmembramento de

áreas Parceiros de negócio Tecnologia Expansão dos negócios Redução de custos

Page 3: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

3 Esclarecendo SOA© 2005 Progress Software Corporation

A realidade de TIR

equ

isit

os

Tempo

Sistemas TI

Negócios

Mudanças contínuas reduzem a capacidade de resposta

Page 4: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

4 Esclarecendo SOA© 2005 Progress Software Corporation

Dilema de TI: “A arquitetura acidental”

CRM ERP

PARTNER SYSTEMS FINANCE

Conjunto proprietário de tecnologias e habilidades

Infraestruturas de comunicação múltiplas

Alto custo de licenças, consultoria e operação

Muitas questões organizacionais e de controle da “propriedade”

ORDERENTRY

Capacidade de resposta reduzida

Page 5: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

5 Esclarecendo SOA© 2005 Progress Software Corporation

Requisitos de arquitetura de TI

Simplicidade Software que reflete a

necessidade do negócio Agilidade e flexibilidade Reusabilidade Indepentente de tecnologia Promover integração

Feita para mudar

Page 6: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

6 Esclarecendo SOA© 2005 Progress Software Corporation

Service-Oriented Architecture

Uma abordagem para criar sistemas computacionais distribuídos baseada no encapsulamento de funções de negócio em serviços que podem ser acessados

de forma fracamente acoplada.

Page 7: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

7 Esclarecendo SOA© 2005 Progress Software Corporation

Já tivemos diversas tentativas

CORBA Microsoft DCOM Java™ RMI .NET™ Remoting DCE EJB

Focadas em APIs, mais fácil para programadores

Page 8: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

8 Esclarecendo SOA© 2005 Progress Software Corporation

Por que SOA é diferente?

Usa conceitos já estabelecidos de mensagens e computação distribuída

Escala muito em portes diferentes de aplicação– Departamento– Empresa– Cadeia de valor

Incorpora vários modelos de comunicação – eventos e request/reply

Direcionada por padrões e protocolos bem conhecidos, e.g. Web Services, XML, HTTP, etc.

Mais fácil para analistas de negócio – focado em documentos

Page 9: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

9 Esclarecendo SOA© 2005 Progress Software Corporation

Mas e na prática, será que “pega”?

“Até 2008, SOA será a prática de engenharia de software

predominante, encerrando 40 anos de dmínio da arquitetura de

software monlítica”

Yefim V. Natis, Gartner Group Analyst, “Service Oriented Architecture Scenarios,” 16 de abril de 2003

Page 10: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

10 Esclarecendo SOA© 2005 Progress Software Corporation

SOA não é uma “coisa”

Produto Uma tecnologia específica Uma aplicação Um padrão específico Um conjunto específico de

regras

Não é:

Uma abordagem para criar aplicações de negócio ágeis e flexíveis

Page 11: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

11 Esclarecendo SOA© 2005 Progress Software Corporation

Agenda

Visão geral SOA

Tipos e padrões de SOA

SOA e OpenEdge® Reference Architecture

SOA e o Enterprise Service Bus

Resumo

SOA?

Uau!

E-lu-ci-date:To make clear or plain

Page 12: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

12 Esclarecendo SOA© 2005 Progress Software Corporation

Modelo SOA

Bind / Invoke

Service

Consumer

Service

ConsumerService

Provider

Service

Provider

ServiceDirector

y

ServiceDirector

y

Find / Details Publish

Componentes fracamente acoplados comunicando-se via interfaces bem definidas

Page 13: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

13 Esclarecendo SOA© 2005 Progress Software Corporation

Elementos de serviço e contratos de serviço

Interface do serviço

Fn()Fn()

Implementação do serviço

Consumidor do serviço

Provedor do serviço

Fn()Fn()

Camada de apresentação ou outro serviço

Encontra provedor de serviço através de um diretório de serviços acordado

Chama serviço baseado em sua interface

Apenas as interfaces do serviço são expostas

Implementação é escondida do consumidor

Armazenamento de dados é encapsulado pelo serviço

Dados

Lógica do serviço

Page 14: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

14 Esclarecendo SOA© 2005 Progress Software Corporation

Várias interfaces de serviço

Interface do serviço

Consumidor do serviço

Consumidor do serviço

Interface do seviço

Implementação do serviço

DadosLógica do

serviço

Interface A

Operação A1 Operação A2 Operação A3

Interface B

Operação B1 Operação B2

Consumidor do serviço

Consumidor do serviço

Page 15: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

15 Esclarecendo SOA© 2005 Progress Software Corporation

Order Mgmt ServiceOrder Mgmt Service

Approve

FulfillOrder

Valid Order

Supplier ServiceSupplier Service

Check Credit

Hold Stock

Valid Order?

SOA – Um mar de serviços

Online Ordering Service

Online Ordering Service

Req. Order

Notify Buyer

OrderEntry

Inventory Mgmt Service

Inventory Mgmt Service

Hold

Ship

Lookup

Credit ServicesCredit Services

Approve

Notify

Chk Credit

Page 16: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

16 Esclarecendo SOA© 2005 Progress Software Corporation

Contrato de serviço

Consumidor

do serviço

Consumidor

do serviçoProvedor

do serviço

Provedor

do serviço

ContratoContrato

Tudo – e nada além disso – que é necessário para interagir com o serviço

Page 17: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

17 Esclarecendo SOA© 2005 Progress Software Corporation

Contratos de serviço Interface do serviço incluindo operações,

mensagens, transportes e localização– WSDL (Web Service Description Language)– XML Schemas– “Proxies” gerados a partir da implementação do

serviço– Uma especificação formal em papel

Descrição do serviço– Requisitos de sequenciamento– Tratamento de exceções– Documentação formal e semântica implícita

Acordo de nível de serviço (SLA) e obrigações legais

Page 18: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

18 Esclarecendo SOA© 2005 Progress Software Corporation

Infra-estrutura SOA

Consumidor

do serviço

Consumidor

do serviçoProvedor

do serviço

Provedor

do serviçoInfraestrutura SOA

Liga os consumidores aos provedores de serviço Pode ser usuada para comunicação com o

diretório de serviços Pode ser implementado com uma gama de

tecnologias

Page 19: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

19 Esclarecendo SOA© 2005 Progress Software Corporation

Infra-estrutura de Serviço

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

Order Mgmt Service

AppServerCORBA

JMSFTP

Web Services

Page 20: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

20 Esclarecendo SOA© 2005 Progress Software Corporation

Várias interfaces de serviços

Interface do serviço

Consumidor do serviço

Interface do serviço

Consumidor do serviço

Contrato 1Contrato 1 Contrato 2Contrato 2

Web

ServiceMessage Based

Implementação do serviço

Dados

Lógica do serviço

Page 21: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

21 Esclarecendo SOA© 2005 Progress Software Corporation

Diretório de serviços

Repositório dos contratos de serviço Oferece facilidade para encontrar serviços Pode oferecer informações adicionais como::

– Informações de contato– Tarifas de uso

Pode ser formal ou informal– UDDI– Web site central– Um banco de dados proprietário de XML schemas– Arquivo de documentos impressos

Escopo para aplicação, departamento, corporação, cadeia de valor

Pode ser formalmente gerenciada por um comitê de arquitetura

Diretório de serviços

Diretório de serviços

Page 22: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

22 Esclarecendo SOA© 2005 Progress Software Corporation

Agenda

Visão geral SOA

Tipos e padrões SOA

SOA e OpenEdge Reference Architecture

SOA e o Enterprise Service Bus

Resumo

SOA?

Uau!

E-lu-ci-date:To make clear or plain

Page 23: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

23 Esclarecendo SOA© 2005 Progress Software Corporation

Tipos de serviços SOA

Serviços de processos de

negócio

Serviços intermediários

Serviços básicos

Application Client Layer

Page 24: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

24 Esclarecendo SOA© 2005 Progress Software Corporation

Serviços básicos

Uma função de software “stateless” orientada a servidor

A rigor, age apenas como provedor de serviço Encapsula todo acesso a uma fonte de dados

específica Serviços básicos de negócio – específicos do

domínio Serviços de infraestrutura básicos – não

específicos do domínio Segurança Logging Persistência Auditoria

Page 25: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

25 Esclarecendo SOA© 2005 Progress Software Corporation

Serviços intermediários

Um serviço “stateless” que é tanto provedor quanto consumidor de serviços

Inclui tipo de negócio e intraestrutura– Pontes entre tecnologias

Faz a interface entre duas tecnologias distintas

– Transformação Convert message format from/to what service

consumer and provider expect

– Fachadas (“façade”) Visão simplificada e agrupada de múltiplos serviços

– Serviços para agregação de funcionalidade Adiciona funcionalidade a um serviço sem modificar

o serviço em si

Page 26: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

26 Esclarecendo SOA© 2005 Progress Software Corporation

Serviço de processo de negócio

Encapsula um processo de negócio corporativo “stateful”

Age tanto como provedor quanto consumidor de serviços

Tem tendência a ser bastante específico à aplicação

Page 27: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

27 Esclarecendo SOA© 2005 Progress Software Corporation

SOA: Estágios de crescimento

Agilidade e Flexibilidade

Complexidade

SOA Orientada

a processos

SOA

Multi camadas

SOA Simples

Maturidade da SOA

Page 28: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

28 Esclarecendo SOA© 2005 Progress Software Corporation

SOA Simples

Online Ordering Application

Online Ordering Application

Order Management

Order Management

Customer Management

Customer Management

Inventory Management

Inventory Management

Camada de serviços básicos

Camada de apresentação Warehouse

Application

Warehouse Application

Page 29: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

29 Esclarecendo SOA© 2005 Progress Software Corporation

SOA multi-camadas

Online Ordering Application

Online Ordering Application

Order Management

Order Management

Customer Management

Customer Management

InventoryManagement

InventoryManagement

Camada de serviços básicos

Camada de apresentação

Order and ShipOrder and Ship

Camada de serviços

intermediários

Page 30: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

30 Esclarecendo SOA© 2005 Progress Software Corporation

SOA orientada a processosOnline

Ordering Application

Online Ordering

Application

Order Management

Order Management

Customer Management

Customer Management

InventoryManagement

InventoryManagement

Camada de serviços básicos

Camada de apresentação

Order and ShipOrder and Ship

Camada de serviços

intermediários

CatalogService

CatalogService

Camada de serviços de processos de

negócio

OrderCancellation

Service

OrderCancellation

Service

Page 31: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

31 Esclarecendo SOA© 2005 Progress Software Corporation

Agenda

Visão geral SOA

Tipos e padrões SOA

SOA e OpenEdge Reference Architecture

SOA e o Enterprise Service Bus

Resumo

SOA?

OERA?

E-lu-ci-date:To make clear or plain

Page 32: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

32 Esclarecendo SOA© 2005 Progress Software Corporation

Componentes de serviço OpenEdge Reference Architecture

Provedores de serviços

Consumidores de serviços

Users

Presentation Layer

Business Servicing Layer

Data Access Layer

Managed Data Stores

Unmanaged Data Stores

Enterprise Services

Integration Layer

Page 33: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

33 Esclarecendo SOA© 2005 Progress Software Corporation

Integração da camada de negócio

Presentation Layer/s Integration Layer/s

Data Access Layers

Managed Unmanaged

Users EnterpriseServices

Service Interface

Business

Workflows

Business

TasksBusiness Entities

Service Adapter

Page 34: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

34 Esclarecendo SOA© 2005 Progress Software Corporation

OERA e contratos de serviço

Service Adapter

Service Interface

Fn()Fn()

Financials

Consumidor de serviço

Provedor de serviço

ContratoContrato

Page 35: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

35 Esclarecendo SOA© 2005 Progress Software Corporation

Por dentro do serviço: Componentes de negócio coordenados

BusinessWorkflows

Business Tasks

BusinessEntities

BusinessWorkflowsBusiness

Workflows

Business TasksBusiness

Tasks

BusinessEntities

BusinessEntitiesBusiness

Entities

BusinessEntitiesBusiness

Entities

Business TasksBusiness

TasksBusiness Tasks

Service Interface

Page 36: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

36 Esclarecendo SOA© 2005 Progress Software Corporation

Integração da camada de negócios

Presentation Layer/s Integration Layer/s

Data Access Layers

Managed Unmanaged

Users EnterpriseServices

Service Interface

Business

Workflows

Business

TasksBusiness Entities

Service AdapterServiço de processo

de negócio

Serviços básicos e

intermediários

Page 37: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

37 Esclarecendo SOA© 2005 Progress Software Corporation

Agenda

Visão geral SOA

Tipos e padrões SOA

SOA e OpenEdge Reference Architecture

SOA e o Enterprise Service Bus

Resumo

SOA?

ESB?

E-lu-ci-date:To make clear or plain

Page 38: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

38 Esclarecendo SOA© 2005 Progress Software Corporation

“Arquitetura acidental”: Resolvemos o problema mesmo?

CRM ERP

PARTNER SYSTEMS FINANCE

ORDERENTRY

Page 39: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

39 Esclarecendo SOA© 2005 Progress Software Corporation

OpenEdgeApplication

WEBSERVICE

Web Services

Interface de serviço bem definida promove o reuso

Dados baseados em XML facilita intercâmbio

Projetado para acesso remoto, entre plataformas heterogêneas

Interfaces padrão são o maior passo adiante

TCP/IP

WEB SERVICESINTERFACE

.NET™APPLICATION

PACKAGED APPLICATION

& LEGACY SYSTEMS

J2EE™ APPLICATION

XML

XML

Page 40: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

40 Esclarecendo SOA© 2005 Progress Software Corporation

J2EE™ APPLICATION

PACKAGED APPLICATION

& LEGACY SYSTEMS

.NET™APPLICATION

OpenEdgeApplication

WEBSERVICE

WEB SERVICESINTERFACE

Web Services

É mais ágil? É confiável, escalável

e seguro? Como gerir e

monitorar serviços distribuidos?

Mas resolvemos o todo problema?

Web services são pilhas de comunicação interoperáveis mas não oferecem capacidades chave como roteamento, “deploy” de serviços, gerenciamento, transformação de formatos e entrega garantida.

TCP/IP

Page 41: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

41 Esclarecendo SOA© 2005 Progress Software Corporation

Enterprise Service Bus

ENTERPRISE SERVICE BUS

J2EE™ SERVICE

LEGACY SYSTEMS

.NET™SERVICE

OPENEDGE SERVICE

WEBSERVICE

Conjunto integrado de serviços SOA baseado numa infra-estrutura de “backbone” SOA

Transformação de dados Roteamento inteligente Logging Persistência Capacidades nativas de Web

service Roteamento baseado no

conteúdo Adaptadores especializados Orchestration Server Mensageria assíncrona e

síncrona

Page 42: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

42 Esclarecendo SOA© 2005 Progress Software Corporation

Agenda

Visão geral SOA

Tipos e padrões SOA

SOA e OpenEdge Reference Architecture

SOA e o Enterprise Service Bus

Resumo

SOA?

SOA!

E-lu-ci-date:To make clear or plain

Page 43: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

43 Esclarecendo SOA© 2005 Progress Software Corporation

Resumindo…

SOA é a arquitetura para negócios ágeis

SOA é uma abordagem de engenharia de sistemas, não uma tecnologia

Uma boa arquitetura depente de um boa engenharia dos serviços

Page 44: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

44 Esclarecendo SOA© 2005 Progress Software Corporation

Perguntas?

Page 45: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

45 Esclarecendo SOA© 2005 Progress Software Corporation

Obrigado!

Renato Luís [email protected]://www.progress.com/brhttp://www.sonicsoftware.com

Page 46: SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer

46 Esclarecendo SOA© 2005 Progress Software Corporation