• Nenhum resultado encontrado

aula-08

N/A
N/A
Protected

Academic year: 2021

Share "aula-08"

Copied!
43
0
0

Texto

(1)

Universidade Presbiteriana Mackenzie

Sistemas Distribuídos

Aula 08 - SOA

(Service Oriented Architecture)

Prof. Rogério Augusto Rondini

Faculdade de Computação e Informática

(2)

Evolução das arquiteturas

Considerações sobre

desenvolvimento tradicional

Conceitos fundamentais de SOA

Serviços e tipos de serviço,

Composição, ESB

Paradigmas de Design de Serviços

Estudo de Caso

Introdução a Sistemas Distribuídos 2

(3)
(4)
(5)

Desenvolvimento de Sistemas

Desenvolvimento tradicional

● Soluções criadas seguindo o modelo...

– Identificar tarefas a serem automatizadas – Definir requisitos

– Construir lógica correspondente

● Foco em aplicativos específicos

– Controle de estoque – Contas a pagar, etc...

(6)

Desenvolvimento de Sistemas

Desenvolvimento Tradicional

● Trouxe benefícios ao longo do tempo ● Conjunto limitado de requisitos

● Analistas preocupam-se apenas com o domínio

de um problema específico

● Automação de conjunto específico de processos

de negócio

● Sistemas construídos do zero aproveitam

(7)

Desenvolvimento de Sistemas

No entanto...

● Pode gerar desperdícios

– Estudos indicam um grande número de funcionalidades redundantes

● Muitas vezes oculta a ineficiência ● Sobrecarrega a empresa

● Necessidade de infraestruturas complexas e

(8)

Desenvolvimento de Sistemas

Desperdício

● Exemplo → tomando como base o aplicativo

“A”:

– Lógica reduntande 17% e lógica não-redundante

83%

– Escopo do desenvolvimento foi 17% maior do que

o necessário

– Se custo final foi X, a lógica redundante “comeu”

17% 17% Apl. A 18% Apl. B 22% Apl. C

(9)

Desenvolvimento de Sistemas

Situações comuns

● Diferentes plataformas tecnológicas ● Arquiteturas das mais variadas

● Necessidades específicas de infra-estrutura ● Dificuldades p/ expansão...

(10)

Desenvolvimento de Sistemas

42% do orçamento de TI só para fazer “coisa conectar com coisa...”

(GARTNER GROUP) Mais de 70% dos orçamentos de TI são destinados a manutenção de sistemas já existente. (YANKEE GROUP, 03/05) Salve-se quem puder

(11)

SOA

Estilo arquitetural

Paradigma de design

Foco em SERVIÇO e não em

APLICATIVO

Unidade fundamental da lógica é o

(12)

SOA

Algumas definições

Arquitetura para interoperabilidade de

sistemas por meio de conjunto de serviços

fracamente acoplado... (

e-ping v.03/2007

)

Estilo de arquitetura que promove a

integração entre negócio e TI através de

serviços...(

companyweb, 2007

)

… meio para organizar soluções e promover o

reuso (

OASIS – Modelo de Referência SOA 1.0, 2006

)

(13)

SOA

Visão de negócio

Arquitetura para agilizar mudanças

Redução de custo de desenvolvimento

Integração entre Negócios e TI

Visão tecnológica

Arquitetura para sistemas distribuídos

Coleção de serviços (service bus)

Baixo acoplamento, coesão, reuso e

independência de plataforma

(14)
(15)
(16)

SOA

Algumas expectativas... (nem

sempre concretizadas)

SOA diz respeito a

mudanças nos negócios: Aumenta a velocidade das mudanças, facilita as

conexões de negócios, e melhora o controle dos negócios.

FORRESTER

Motivação para SOA é pelo valor que traz para a área de negócios. Não é uma motivação apenas tecnológica.

YANKEE GROUP Em 2008, 80% dos novos desenvolvimentos de

projetos usarão técnicas de SOA.

(17)

SOA

Enganos

● Tenho integração de sistemas através de Web

Services, logo, implementei SOA.

● Comprei uma software do fornecedor XPTO que

vai garantir o sucesso da minha implementação de SOA

(18)

Serviço

Representação lógica de uma atividade

repetitiva (ex: verificar crédito disponível,...)

Alto-contido

Pode compor/ser composto por outros serviços

Fracamente acoplado

É uma caixa preta sob a ótica do consumidor do

serviço

(19)

Serviço

ABC Delivery expedidor motorista contador Serviço de Entrega Serviço de expedição Serviço de transporte Serviço de contabilidade

Composição de

serviços

(20)

Serviço

No caso do exemplo, embora cada

indivíduo preste um serviço

específico, todos precisam ter

algumas características comuns

● Disponibilidade ● Confiabilidade

● Capacidade de comunicação utilizando a

mesma linguagem...

Chave para

(21)

Serviço

Paradigma de design baseado no

conceito de “separação de

preocupações”

● Um problema maior é efetivamente resolvido

quando decomposto em problemas (preocupações) menores

● Divisão da lógica em capacidades, cada uma

resolvendo uma determinada preocupação

● Possibilidade de Reutilização

● Cada “problema menor” compõe um ou vários

(22)

Serviço

Serviços agnósticos quanto aos processos de negócio

A B C D Processos de Negócio Processos de negócio compartilhando serviços

(23)

Serviço

A B

A B

Processos de negócio...

como aplicativos independentes (tradicional).

baseado na composição de serviços (SOA).

100% de lógica específica ao processo

Processo B compartilhando lógica com processo A, reduzindo a necessidade de lógica específica

(24)

Serviço

Em geral, serviços podem ser

classificados de três formas

● Serviços de entidades

– Representa uma entidade de negócio (clientes, funcionários...)

– Altamente reutilizável

(25)

Serviço

● Serviços de tarefas

– Serviço que agrupa vários domínios de entidade (consolidação de cobrança...)

● Serviços de utilitários

– Tipicamente serviços de infra-estrutura, orientados pela tecnologia

– Registros de eventos de log, tratamento de exceções...

(26)

Serviço

Camada de serviços de tarefa Camada de serviços de entidade Camada de serviços utilitários

Camada de serviços em função de

(27)

Paradigmas de design

Contrato de serviços padronizados

● Contratos de serviços expressam o propósito e

as capacidades do serviço através de Modelos de dados das entradas e saídas do serviço,

funcionalidades e políticas

● Consumidores de serviços não precisam saber

como o serviço executará a tarefa, mas

precisam saber o que fazem, as pré-condições e o resultado esperado

(28)

Paradigmas de design

Baixo acoplamento

● Visa reduzir o grau de dependência entre

contratos de serviços, sua implementação e os consumidores.

● Manter interoperabilidade entre serviços e

(29)

Paradigmas de design

Abstração de Serviços

● Conceito da “caixa preta”

● Ocultar informações que não são necessárias

para o consumo do serviço

Capacidade de reuso de Serviço

● Tornar um serviço útil para mais que um único

propósito

● Quanto mais agnóstico for o serviço, ou seja,

quanto maior a independência da plataforma tecnológica e maior a independência da lógica em relação a processo específicos, maior a

(30)

Paradigmas de design

Autonomia de serviço

● Nível de controle que um serviço tem sobre sua

lógica durante a execução

– Desempenho consistente e aceitável – Confiabilidade

– Previsibilidade

● Independência de sua lógica em relação a

(31)

Paradigmas de design

Composição de Serviços

● Agrupar capacidades de diferentes fontes para

resolver um problema maior

Forma de reúso, uma vez que “pequenas

partes” são utilizadas para compor um serviço

(32)

Considerações

Aumento na complexidade de design

Necessidade de padronização

Necessidade de mudanças culturais

nas empresas

Não é um modelo revolucionário que

irá resolver todos os problemas das

empresas

(33)
(34)

Inventário SOA

Coleção padronizada e governada de serviços

Ativos de TI

Servem de base para composição de novos

serviços

Pode ser estruturado em camadas, de acordo

com o modelo de serviços (i.e tarefa, entidade,

utilitário)

(35)

Contrato de Serviços

Foco principal do design de serviços

Propósito do serviço

Especificação consistente das capacidades

Tipos de dados de entrada e saída

Restriçoes de acesso

(36)

Contrato de Serviços

Padronização

Contrato baseado em WebServices

Documentos estruturados

WSDL para definição dos serviços

XML schemas para definição dos dados

Contrato de propósito geral

Documento texto não-estruturado

Obs.: Podem existir outras formas de especificação de contratos de serviços (IDL

CORBA por exemplo, dependendo da tecnologia adotada para implementação

(37)

Contrato de Serviços

Contrato baseado em Web Services

Modelo de centralização de esquema

Baixo acoplamento e reúso

Processa Pedido.wsdl Pedido.wsdl Dados Produto.xsd Pedido.xsd

(38)

Contrato de Serviços

Contrato de propósito geral

Sem dependência de tecnologia de

implementação

Serviço Pedidos

Operacao salvar Entrada: documento de pedido

contendo identificador do cliente, lista de itens de pedido e forma de pagamento

Saída: Indicador de pedido gravado

(39)

SOA

(40)

Passos A considerar

Analisar o inventário de serviços

Definir serviços de Entidade

● Definir as estruturas de dados necessárias ● Se usar padrão Web Service, utilizar XML

Schema

Definir serviços de Tarefa

Definição de serviços utilitários

Definir a composição de serviços

(41)
(42)
(43)

Contato

Rogério Rondini

rarondini.paradygma@gmail.com

Referências

Documentos relacionados

No presente artigo objetiva-se localizar os Conselhos de Direitos da Criança e do Adolescente no ordenamento jurídico brasileiro. Inicialmente, apresentam-se

Alterações no consumo, segundo essa teoria, são devido às alterações na renda permanente e alterações transitórias na renda teriam pouco ou nenhum efeito

[r]

• Muita informação crua não te trará melhor resultado • Entenda plenamente seus logs. • Sempre aprimore o ciclo, as coisas evoluem • Faça hardening

O presente Edital visa credenciar tradutores públicos, pessoas físicas, para a prestação de serviços de tradução juramentada de documentos para o português e vice-versa, conforme

Fazem parte do patrimônio os valores materiais, tais como: edifícios, equipamentos, estoques; a propriedade intelectual e os valores intangíveis, tais como: informações

Neste caso, o sistema do lubrificador opera com o nível de óleo entre mínimo e máximo Se for necessário manter o nível de óleo no copo constante, apenas um dos dois sinais pode

A Fundação Universidade Federal de Mato Grosso do Sul - UFMS, por meio do Coordenador de curso do Programa de Pós-Graduação stricto sensu em Educação, torna público