arquitetura orientada a servicos soa

41
www.leonardoeloy.com 1 Engenharia de Software Orientada a Serviços Leonardo Eloy FATENE Abril/2010

Upload: leonardo-eloy

Post on 06-Jun-2015

3.543 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 1

Engenharia de Software Orientada a Serviços

Leonardo EloyFATENE

Abril/2010

Page 2: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 2

JavaCE

www.javace.org

Page 3: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 3

GURU-CE

www.guruce.org

Page 4: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 4

Agenda

Conceituação TeóricaArquitetura

Engenharia de Software Orientada a Serviços

Page 5: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 5

Agenda

Conceituação TeóricaArquitetura

Engenharia de Software Orientada a Serviços

Page 6: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 6

Conceituação Teórica

Praticamente todos os sistemas baseados em grandes computadores são distribuídos

Page 7: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 7

Conceituação Teórica (2)

Sistema Distribuído: “aquele em que as informações em

fase de processamento são distribuídas por vários computadores, em vez de ficarem confinadas em uma só máquina” [Sommerville, 2007]

Page 8: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 8

Surgimento dos Serviços

• O desenvolvimento Web promoveu o acesso de computadores clientes aos servidores remotos

• Porém, as informações eram estritamente em HTML

• Navegadores eram o meio principal de extrair informações da rede

• Portanto, o acesso a um diretório de informações não era algo prático

Page 9: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 9

Surgimento dos Serviços Web

• A noção de Web Service foi proposta para contornar este problema

• Organizações que desejam expor informações podem definir e publicar Web Services

• Essa interface define os dados disponíveis e como eles podem ser acessados

Page 10: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 10

Um Serviço

Exemplo:

Serviço de Impostodeclara

imposto

Usuário

Receita SEFAZ SEFIN

Page 11: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 11

Conceituação de Serviço

A essência de um serviço é que“o fornecimento dos serviços é independente

da aplicação que usa o serviço” [Turner, et al., 2003]

Page 12: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 12

Serviços vs.

Objetos Distribuídos• Objetos distribuídos podem suprir essa

necessidade• Porém, o conceito de serviços provê uma

série de vantagens: [Sommerville, 2007]

1. Podem ser fornecidos por qualquer provedor de serviços

2. Utilizado por usuários autorizados3. Podem mudar dinamicamente durante a

execução4. Composição de serviços5. Aplicações menores; tratamento externo de

exceções

Page 13: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 13

Arquitetura Orientada a Serviços

Registrador de serviços

Provedor de serviçosSolicitador de serviços

publica

vincula

encontra

Fonte: (Kreger, 2001), com adaptações.

Serviços

Page 14: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 14

Workflow de Web Services

Serviçode

Compra

Serviçode

Venda

out in

Pedido

in out

Bens

Fonte: (Kreger, 2001)

Page 15: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 15

Fluxos Públicos & Privados

Serviço deEmissão de Diplomas

Serviçode

Verificação de Débitos

in outSPC SERASA BibliotecaSistema Gestão

Acadêmica

Fonte: (Kreger, 2001), com adaptações.

Serviços Privados

Page 16: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 16

Passando a Régua

• Sistemas Distribuídos > Processamento em diversas máquinas

• Uso da Web via HTML > Evolui para Serviços

• Serviços > Melhores que Objetos Distribuídos

• Web Services > Utilizam padrões• SOA > Princípio Conceitual

Page 17: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 17

Na Teoria

• Sistemas orientados a serviços são criados pela ligação de serviços de software fornecidos por diversas organizações.

• Um aspecto importante é que no SOA, a ligação de serviços aos componentes de arquitetura pode ser postergada até que o sistema seja implantando ou esteja em execução.

Page 18: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 18

Agenda

Conceituação TeóricaArquitetura

Engenharia de Software Orientada a Serviços

Page 19: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 19

Engenharia de Software Orientada a Serviços

• A utilização do SOA é um meio para facilitar a computação interorganizacional

• Tem um uso significativo em aplicações de negócios

• Por meio do empacotamento de serviços legados, empresas podem preservar seus investimentos

• Possibilita a utilização em plataforma e usos distintos, promovendo a interoperação

Page 20: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 20

Padronização: Na Teoria

• Há uma tendência à padronização, juntamente com os desenvolvimentos técnicos

• Como resultado, SOA não sofreria com incompatibilidade nas evoluções tecnológicas

• Web Services são independentes do protocolo de aplicação e transporte

• Todas as principais empresas de HW e SW estão comprometidas com padrões

Page 21: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 21

Padronização: Na Prática

• É difícil padronizar, vejamos o Unix como exemplo [Martin, 1995]

• Mudanças tecnológicas conseguem manter padrões; mudanças de paradigma são mais difíceis

• Na prática, Web Services utilizam HTTP e HTTPS

• Quem garante que a Oracle não vai inventar o “Oracle Services 4 Web”?

Page 22: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 22

Padrões de Comunicação

• SOAP – Simple Object Access Protocol– Organização para troca estruturada de

dados• WSDL – Web Services Description

Language– Representação das Interfaces dos Web

Services• UDDI – Universal Description,

Discovery and Integration– Utilizado pelo Solicitante para descobrir

serviços

Page 23: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 23

Os Padrões Utilizam XML

XML é“uma linguagem para marcação legível para humanos e máquinas” [Skonnard e Gugdin, 2002]

Page 24: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 24

SOA + Padrões

Registrador de serviços

Provedor de serviçosSolicitador de serviços

publica

vincula

encontra

Fonte: (Kreger, 2001), com adaptações.

ServiçosSOAP

WSDL

UDDI

Page 25: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 25

Padrões de Web Service

• Têm a intenção de apoiar o SOA em diferentes tipos de aplicações

• WS-BPEL– Padrão da linguagem de workflow

utilizada para definir processos

• WS-Reliable Messaging– Garante que as mensagens serão

entregue somente uma vez

Page 26: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 26

Padrões de Web Service (2)

• WS-Security– Padrões de segurança, inclusive no uso

de assinaturas digitais

• WS-Addressing– Define as opções de endereçamento

para utilização com o SOAP

• WS-Transactions– Coordenação de transações distribuídas

Page 27: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 27

Pilha de PadrõesTecnologias XML (XML, XSD, XST, ...)

Apoio (WS-Security, WS-Addressing, ...)

Processo (WS-BPEL)

Definição de Serviço (UDDI, WSDL)

Serviço de Mensagem (SOAP)

Transporte (HTTP, HTTPS, SMTP, ...)

Fonte: (Sommerville, 2007).

Page 28: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 28

Serviço como Abstração Reusável

• Engenharia de Serviço– Identificar e projetar componentes

reusáveis

• Desenvolvimento de Software como Serviço– Desenvolver software como uma

composição de serviços e promover o reuso

Page 29: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 29

Engenharia de Serviços

Identificação doServiço Candidato

Projeto doServiço

Implementação eImplantação do

Serviço

Fonte: (Sommerville, 2007).

Requisito do ServiçoEspecificação de

Interface doServiço

Serviço Implantadoe Validado

Page 30: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 30

Engenharia de Serviços

Identificação doServiço Candidato

Projeto doServiço

Implementação eImplantação do

Serviço

Fonte: (Sommerville, 2007).

Requisito do ServiçoEspecificação de

Interface doServiço

Serviço Implantadoe Validado

Page 31: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 31

Identificação do Serviço Candidato

• Serviços de Utilidades– Funcionalidades gerais que podem ser

utilizadas por diferentes processos de negócio

• Serviços de Negócios– Função específica do negócio

• Serviços de Coordenação ou de Processo– Apóiam os processo de negócios mais

gerais que envolvem diferentes atores e atividades

Page 32: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 32

Identificação do Serviço Candidato (2)

• Podem ser orientados a Tarefas ou Entidades

• Tarefas: associados a atividades• Entidades: funcionam como objetos

– Utilidade: • conversor de moeda (tarefa)• verificador de estilo de documento (entidade)

– Negócio: • avaliar o crédito (tarefa)• formulário de gastos (entidade)

– Coordenação: • pagar fornecedor externo (?)

– Coordenação só aceitam tarefas.

Page 33: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 33

Engenharia de Serviços

Identificação doServiço Candidato

Projeto doServiço

Implementação eImplantação do

Serviço

Fonte: (Sommerville, 2007).

Requisito do ServiçoEspecificação de

Interface doServiço

Serviço Implantadoe Validado

Page 34: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 34

Projeto do Serviço

1. Projeto de Interface Lógica• Identificar as operações• Identificar as entradas e saídas

2. Projeto de Mensagem• Estrutura das mensagens enviadas e

recebidas

3. Desenvolvimento do WSDL• Transformar o projeto lógico em um

arquivo no padrão WSDL

Page 35: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 35

Engenharia de Serviços

Identificação doServiço Candidato

Projeto doServiço

Implementação eImplantação do

Serviço

Fonte: (Sommerville, 2007).

Requisito do ServiçoEspecificação de

Interface doServiço

Serviço Implantadoe Validado

Page 36: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 36

Implementação do Serviço

• Desenvolvimento usual numa linguagem que suporte as tecnologias– Java, C#

• Testes a cada iteração do desenvolvimento

• Utilização de componentes de terceiros para sistemas legados

• Registro com UDDI

Page 37: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 37

Desenvolvimento de Software como Serviço

• O Desenvolvedor compõe e configura serviços para criar um novo serviço composto

• Abre-se a possibilidade para ampliar o reuso dentro da empresa

• Possibilita a visão de um “mercado de serviços” no futuro

Page 38: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 38

Desenvolvimento de Software como Serviço (2)

Projeto de Implementaçãode Workflow

Testar Serviço

Declarar o workflow(BPMN, YAWL)

Verificar e ValidarComposição

Page 39: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 39

Passando a Régua

• Eng. de Serviços > Procedimentos para criação e composição de serviços– Otimização Prematura > Impossível prever

todos os aspectos de um serviço– Muitas composições > Serviços grandes e

“pesados”

• Desenv. Sw. como Serv. > Implementação em notação de workflow– Workflow > Fácil entendimento, difícil

manutenção de grandes fluxos– Testes > Difícil de testar fluxos externos

Page 40: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 40

Bibliografia

• KREGER, H. Web Services Conceptual Architecture (WSCA 1.0), 2001. Disponível em: http://www.cs.uoi.gr/~pitoura/courses/ds04_gr/webt.pdf. Acessado em: 21/04/2010.

• MARTIN, V. There can be only one: a summary of the Unix standardization movement. Crossroads, V. 1, I. 3, 1995, ACM.

• SKONNARD, A.; GUDGIN, M. Essential XML quick reference: a programmer’s reference to XML, XPath, XSLT, XML Schema, SOAP and more, 2002. Addison-Wesley.

• SOMMERVILLE, I. Software Engineering 8, 2007, Addison-Wesley.

Page 41: Arquitetura orientada a servicos   soa

www.leonardoeloy.com 41

Obrigado!

Mais recursos: www.javace.org, www.guruce.org

No meu site: www.leonardoeloy.com