Engenharia de Software Orientada a Serviços Leonardo Eloy FATENE Abril/2010
JavaCE www.javace.org
GURU-CE www.guruce.org
Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
Conceituação Teórica Praticamente todos os sistemas baseados em grandes computadores são distribuídos
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]
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
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
Um Serviço Exemplo: Serviço de Imposto declara imposto Usuário Receita SEFAZ SEFIN
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]
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
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
Workflow de Web Services Serviço de Compra Serviço de Venda out in Pedido in out Bens Fonte:  (Kreger, 2001)
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
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
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.
Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
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
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
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”?
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
Os Padrões Utilizam XML XML é “ uma linguagem para marcação legível para humanos e máquinas”   [Skonnard e Gugdin, 2002]
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
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
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
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).
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
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
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
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
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.
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
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
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
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
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
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
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
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.
Obrigado! Mais recursos:  www.javace.org ,  www.guruce.org No meu site:  www.leonardoeloy.com

Arquitetura orientada a servicos soa

  • 1.
    Engenharia de SoftwareOrientada a Serviços Leonardo Eloy FATENE Abril/2010
  • 2.
  • 3.
  • 4.
    Agenda Conceituação TeóricaArquitetura Engenharia de Software Orientada a Serviços
  • 5.
    Agenda Conceituação TeóricaArquitetura Engenharia de Software Orientada a Serviços
  • 6.
    Conceituação Teórica Praticamentetodos os sistemas baseados em grandes computadores são distribuídos
  • 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]
  • 8.
    Surgimento dos ServiçosO 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
  • 9.
    Surgimento dos ServiçosWeb 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
  • 10.
    Um Serviço Exemplo:Serviço de Imposto declara imposto Usuário Receita SEFAZ SEFIN
  • 11.
    Conceituação de ServiçoA 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]
  • 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] 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
  • 13.
    Arquitetura Orientada aServiços Registrador de serviços Provedor de serviços Solicitador de serviços publica vincula encontra Fonte: (Kreger, 2001), com adaptações. Serviços
  • 14.
    Workflow de WebServices Serviço de Compra Serviço de Venda out in Pedido in out Bens Fonte: (Kreger, 2001)
  • 15.
    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
  • 16.
    Passando a RéguaSistemas 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
  • 17.
    Na Teoria Sistemasorientados 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.
  • 18.
    Agenda Conceituação TeóricaArquitetura Engenharia de Software Orientada a Serviços
  • 19.
    Engenharia de SoftwareOrientada 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
  • 20.
    Padronização: Na TeoriaHá 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
  • 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”?
  • 22.
    Padrões de ComunicaçãoSOAP – 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
  • 23.
    Os Padrões UtilizamXML XML é “ uma linguagem para marcação legível para humanos e máquinas” [Skonnard e Gugdin, 2002]
  • 24.
    SOA + PadrõesRegistrador 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
  • 25.
    Padrões de WebService 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
  • 26.
    Padrões de WebService (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
  • 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).
  • 28.
    Serviço como AbstraçãoReusá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
  • 29.
    Engenharia de ServiçosIdentificaçã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
  • 30.
    Engenharia de ServiçosIdentificaçã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
  • 31.
    Identificação do ServiçoCandidato 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
  • 32.
    Identificação do ServiçoCandidato (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.
  • 33.
    Engenharia de ServiçosIdentificaçã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
  • 34.
    Projeto do ServiçoProjeto 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
  • 35.
    Engenharia de ServiçosIdentificaçã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
  • 36.
    Implementação do ServiçoDesenvolvimento 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
  • 37.
    Desenvolvimento de Softwarecomo 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
  • 38.
    Desenvolvimento de Softwarecomo Serviço (2) Projeto de Implementação de Workflow Testar Serviço Declarar o workflow (BPMN, YAWL) Verificar e Validar Composição
  • 39.
    Passando a RéguaEng. 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
  • 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.
  • 41.
    Obrigado! Mais recursos: www.javace.org , www.guruce.org No meu site: www.leonardoeloy.com