Buscar

arquitetura-orientada-a-servicos-soa-01

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*www.leonardoeloy.com
*
Engenharia de Software Orientada a Serviços
Leonardo Eloy
FATENE
Abril/2010
*
*www.leonardoeloy.com
*
JavaCE
www.javace.org
*
*www.leonardoeloy.com
*
GURU-CE
www.guruce.org
*
*www.leonardoeloy.com
*
Agenda
Conceituação Teórica
Arquitetura
Engenharia de Software Orientada a Serviços
*
*www.leonardoeloy.com
*
Agenda
Conceituação Teórica
Arquitetura
Engenharia de Software Orientada a Serviços
*
*www.leonardoeloy.com
*
Conceituação Teórica
 Praticamente todos os sistemas baseados em grandes computadores são distribuídos
*
*www.leonardoeloy.com
*
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]
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
Um Serviço
Exemplo:
Serviço de Imposto
declara
imposto
*
*www.leonardoeloy.com
*
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]
*
*www.leonardoeloy.com
*
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]
Podem ser fornecidos por qualquer provedor de serviços
Utilizado por usuários autorizados
Podem mudar dinamicamente durante a execução
Composição de serviços
Aplicações menores; tratamento externo de exceções
*
*www.leonardoeloy.com
*
Arquitetura Orientada a Serviços
Registrador de serviços
Provedor de serviços
Solicitador de serviços
publica
vincula
encontra
Fonte: (Kreger, 2001), com adaptações.
Serviços
*
*www.leonardoeloy.com
*
Workflow de Web Services
Serviço de Compra
Serviço de Venda
out
in
Pedido
in
out
Bens
Fonte: (Kreger, 2001)
*
*www.leonardoeloy.com
*
Fluxos Públicos & Privados
Serviço de Emissão de Diplomas
Serviço de Verificação de Débitos
in
out
SPC
SERASA
Biblioteca
Sistema Gestão Acadêmica
Fonte: (Kreger, 2001), com adaptações.
Serviços Privados
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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.
*
*www.leonardoeloy.com
*
Agenda
Conceituação Teórica
Arquitetura
Engenharia de Software Orientada a Serviços
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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”?
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
Os Padrões Utilizam XML
XML é
	
	“uma linguagem para marcação legível para humanos e máquinas” [Skonnard e Gugdin, 2002]
*
*www.leonardoeloy.com
*
SOA + Padrões
Registrador de serviços
Provedor de serviços
Solicitador de serviços
publica
vincula
encontra
Fonte: (Kreger, 2001), com adaptações.
Serviços
SOAP
WSDL
UDDI
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
Pilha de Padrões
Tecnologias 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).
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
Engenharia de Serviços
Identificação do Serviço Candidato
Projeto do Serviço
Implementação e Implantação do Serviço
Fonte: (Sommerville, 2007).
Requisito do Serviço
Especificação de Interface do Serviço
Serviço Implantado e Validado
*
*www.leonardoeloy.com
*
Engenharia de Serviços
Identificação do Serviço Candidato
Projeto do Serviço
Implementação e Implantação do Serviço
Fonte: (Sommerville, 2007).
Requisito do Serviço
Especificação de Interface do Serviço
Serviço Implantado e Validado
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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.
*
*www.leonardoeloy.com
*
Engenharia de Serviços
Identificação do Serviço Candidato
Projeto do Serviço
Implementação e Implantação do Serviço
Fonte: (Sommerville, 2007).
Requisito do Serviço
Especificação de Interface do Serviço
Serviço
Implantado e Validado
*
*www.leonardoeloy.com
*
Projeto do Serviço
Projeto de Interface Lógica
Identificar as operações
Identificar as entradas e saídas
Projeto de Mensagem
Estrutura das mensagens enviadas e recebidas
Desenvolvimento do WSDL
Transformar o projeto lógico em um arquivo no padrão WSDL
*
*www.leonardoeloy.com
*
Engenharia de Serviços
Identificação do Serviço Candidato
Projeto do Serviço
Implementação e Implantação do Serviço
Fonte: (Sommerville, 2007).
Requisito do Serviço
Especificação de Interface do Serviço
Serviço Implantado e Validado
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
Desenvolvimento de Software como Serviço (2)
Projeto de Implementação de Workflow
Testar Serviço
Declarar o workflow (BPMN, YAWL)
Verificar e Validar Composição
*
*www.leonardoeloy.com
*
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
*
*www.leonardoeloy.com
*
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.
*
*www.leonardoeloy.com
*
Obrigado!
Mais recursos: www.javace.org, www.guruce.org
No meu site: www.leonardoeloy.com

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais