Post on 06-Jun-2015
www.leonardoeloy.com 1
Engenharia de Software Orientada a Serviços
Leonardo EloyFATENE
Abril/2010
www.leonardoeloy.com 2
JavaCE
www.javace.org
www.leonardoeloy.com 3
GURU-CE
www.guruce.org
www.leonardoeloy.com 4
Agenda
Conceituação TeóricaArquitetura
Engenharia de Software Orientada a Serviços
www.leonardoeloy.com 5
Agenda
Conceituação TeóricaArquitetura
Engenharia de Software Orientada a Serviços
www.leonardoeloy.com 6
Conceituação Teórica
Praticamente todos os sistemas baseados em grandes computadores são distribuídos
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]
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
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
www.leonardoeloy.com 10
Um Serviço
Exemplo:
Serviço de Impostodeclara
imposto
Usuário
Receita SEFAZ SEFIN
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]
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
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
www.leonardoeloy.com 14
Workflow de Web Services
Serviçode
Compra
Serviçode
Venda
out in
Pedido
in out
Bens
Fonte: (Kreger, 2001)
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
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
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.
www.leonardoeloy.com 18
Agenda
Conceituação TeóricaArquitetura
Engenharia de Software Orientada a Serviços
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
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
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”?
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
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]
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
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
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
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).
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
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
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
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
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.
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
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
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
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
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
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
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
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.
www.leonardoeloy.com 41
Obrigado!
Mais recursos: www.javace.org, www.guruce.org
No meu site: www.leonardoeloy.com