Baixe o app para aproveitar ainda mais
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
Compartilhar