São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1
04/09/11 vladimir.professor@gmail.com 2 Complexidade dos serviços
04/09/11 vladimir.professor@gmail.com 3
04/09/11 vladimir.professor@gmail.com 4 Introdução O que NÃO é SOA? Não é um produto; Não é um serviço; Não é uma tecnologia; Não é uma solução;
04/09/11 vladimir.professor@gmail.com 5 Introdução O que é SOA (Service Oriented-Architecture / Arquitetura Orientada a Serviços)? É uma arquitetura (conceito) utilizado para a criação e uso de serviços (componentes) no desenvolvimento de projetos por meio do ciclo de vida (concepção até finalização de serviços); Também trata da definição e do provisionamento da infra-estrutura de TI que permite que diferentes aplicações troquem dados e participem do processo de negócio independente dos SO (Sistemas Operacionais) no qual estas aplicações estão executando ou linguagens de programação utilizadas para suas implementações.
04/09/11 vladimir.professor@gmail.com 6 Introdução O que é SOA (Service Oriented-Architecture / Arquitetura Orientada a Serviços)? SOA é baseada nos princípios da computação distribuída (apresenta várias partes processando colaborativamente determinada tarefa de forma coerente e transparente); Utiliza o paradigma request/reply (no qual um objeto espera passivo até que executem uma operação sobre ele) para estabelecer a comunicação entre os sistemas clientes e os sistemas que implementam os serviços. http://www.inf.ufrgs.br/~zirbes/materialaula/gerencia%20e%20administracao%20de%20projetos%202010_2/gap/aulas%20sobre%20soa/soa_2007.p - Acessado em: Agosto 2011
04/09/11 vladimir.professor@gmail.com 7 Introdução SOA possibilita que novas aplicações sejam criadas por meio da combinação dos serviços, novos ou desenvolvidos a partir de funcionalidades de aplicações existentes com menor esforço para o desenvolvimento (reutilização ou recombinação de sistemas). SOA possibilita integração rápida de aplicativos, já que se baseia no conceito de serviços independência da implementação; Redução de custos e tempo de desenvolvimento. Flexibilidade à TI, que consegue responder com agilidade as necessidades da área de negócios das empresas.
04/09/11 vladimir.professor@gmail.com 8 Pilha arquitetônica e elementos que compõem o SOA
04/09/11 vladimir.professor@gmail.com 9 Pilha arquitetônica e elementos que compõem o SOA A pilha arquitetônica é dividida em duas partes: Uma identifica os aspectos funcionais da arquitetura. A outra os aspectos de qualidade.
04/09/11 vladimir.professor@gmail.com 10 Pilha arquitetônica e elementos que compõem o SOA Aspectos funcionais de uma Arquitetura Orientada a Serviços: Transport: mecanismo utilizado para transportar as requisições de serviço, de um consumidor para um provedor e vice-versa; Service Communication Protocol: mecanismo de troca de informações utilizado pelo provedor e consumidor de serviços, que possibilita comunicar o que está sendo solicitado e devolvido; Service Description: esquema que possibilita descrever o que é o serviço, como ele deve ser chamado, e quais dados são necessários para chamá-lo com sucesso;
04/09/11 vladimir.professor@gmail.com 11 Pilha arquitetônica e elementos que compõem o SOA Aspectos funcionais de uma Arquitetura Orientada a Serviços: Service: descreve o serviço real desenvolvido e disponível para uso; Business Process: coleção de serviços chamados em uma seqüência pré-estabelecida com um conjunto de regras particulares, satisfazendo as necessidades de negócio. Para que um Business Process possa ser considerado um serviço, tem se a idéia de que o processo de negócio pode ser composto de serviços de diferentes granularidades;
04/09/11 vladimir.professor@gmail.com 12 Pilha arquitetônica e elementos que compõem o SOA Aspectos funcionais de uma Arquitetura Orientada a Serviços: Service Registry: repositório de serviço e descrições de dados que pode ser utilizado por provedores de serviços para publicar seus serviços, e por consumidores de serviço para descobrir ou encontrar serviços disponíveis. O Service Registry pode prover outras funções para os serviços que requerem um repositório centralizado.
04/09/11 vladimir.professor@gmail.com 13 Pilha arquitetônica e elementos que compõem o SOA Aspectos da qualidade de serviços de uma Arquitetura Orientada a Serviços: Policy: conjunto de condições ou regulamentos por meio das quais o provedor de serviços torna o serviço disponível para o consumidor. Existem aspectos políticos funcionais e aspectos políticos relacionados à qualidade de serviço; Security: conjunto de regulamentos que pode ser aplicado para identificação, autorização e controle de acesso de consumidores de serviços;
04/09/11 vladimir.professor@gmail.com 14 Pilha arquitetônica e elementos que compõem o SOA Aspectos da qualidade de serviços de uma Arquitetura Orientada a Serviços: Transaction: conjunto de atributos que pode ser aplicado a um grupo de serviços para garantir a entrega de um resultado consistente. Por exemplo, se um grupo de três serviços forem necessários para compor uma funcionalidade de negócio, todos ou nenhum serviço deve completar; Management: conjunto de atributos que pode ser aplicado para gerenciamento de serviços providos ou consumidos
04/09/11 vladimir.professor@gmail.com 15 Objetivo Obter melhoria nos processos e agilidade nos negócios; Possibilitar a reutilização de componentes em forma de serviços; Alinhar a TI as estratégias de negócio; Cria aplicações com base numa fundação de componentes; Integrar aplicações.
04/09/11 vladimir.professor@gmail.com 16 O que é um serviço? Serviços são unidades de trabalho criadas por um fornecedor de serviço, para alcançar resultados finais desejados por um consumidor de serviço; Pode ser denominada como uma função do sistema computacional construído de modo que possa ser facilmente vinculado a outros componentes de software; O serviço é a menor unidade dentro de uma arquitetura SOA Encapsula uma função do negócio reutilizável; Serviços podem ser independentes da implementação e são de certa forma fracamente interligados;
04/09/11 vladimir.professor@gmail.com 17 O que é um serviço? Resumindo, tarefas são serviços e processos são composições de serviços. Outra definição de serviço, mas de um ponto de vista mais ligado a desenvolvimento de software, diz que serviço é a lógica de negócio (servidor) capaz de ser acessado por um outro processo (cliente). Tipicamente, o cliente é um outro processo rodando em outra máquina que está utilizando a rede para acessar o servidor.
Características dos serviços Serviços possuem algumas características que o tornam complexo e o diferencia de qualquer outro tipo de atividade: Intangibilidade: refere-se ao estado decorrente de uma manipulação. Dificuldade de gerenciar, definir e mensurar a produtividade e qualidade de um serviço se comparado com um bem tangível. Simultaneidade: implica que a produção e o consumo são processos interativos e concorrentes. Envolvimento do simultâneo do provedor e do consumidor do serviço. Heterogeneidade: o mesmo serviço pode ter efeitos diferentes e prover respostas diferentes, dependendo do provedor, do local provisionado, do estado mental do consumidor e do ambiente. 04/09/11 vladimir.professor@gmail.com 18
04/09/11 vladimir.professor@gmail.com 19 Criação de serviços São criados seguindo as seguintes especificações: Encapsulamento: um serviço deve funcionar como uma caixa preta - não importa como ela é implementada, com uma determinada entrada ela deve responder com a resposta adequada; Fraco acoplamento: um serviço é construído de forma a minimizar as dependências entre outros elementos; Re-usabilidade: um serviço pode ser consumido por outros serviços;
04/09/11 vladimir.professor@gmail.com 20 Criação de serviços São criados seguindo as seguintes especificações: Composição: vários serviços pequenos criam um serviço grande; Autonomia: um serviço possui autonomia sobre a lógica que encapsulam; Otimização: um serviço que provê a mesma funcionalidade mas com melhor qualidade é preferível sobre um de qualidade inferior.
04/09/11 vladimir.professor@gmail.com 21 Características Entre serviços não existe herança ou dependência; Existe uma clara separação entre: Fornecedor (provider) e Consumidor (consumer) Ambos são regrados por agentes de software de acordo com o interesse de seus proprietários; Seu principal foco esta na definição dos contratos; A arquitetura SOA não está ligada a uma tecnologia especifica, mas sim associado a uma séria de tecnologias, como pro exemplo: Web Services, BPEL, UDDI, XML, http, entre outras.
04/09/11 vladimir.professor@gmail.com 22 Características
04/09/11 vladimir.professor@gmail.com 23 Características Solicitador do Serviço Encontrar WSDL / UDDI Intermediário do Serviço WSDL / UDDI SOAP Publicar Fornecedor do Serviço Ligar / Invocar
04/09/11 vladimir.professor@gmail.com 24 Características Como se relacionam os intervenientes na SOA? O Fornecedor do Serviço descreve o seu serviço usando a WSDL (Web Service Definition Language). Esta definição é publicada num Intermediário de Serviços (Service Broker) e este, por sua vez, poderá utilizar a descrição, a descoberta, e a integração universais (UDDI).
04/09/11 vladimir.professor@gmail.com 25 Características Como se relacionam os intervenientes na SOA? Os Utilizadores do Serviço podem efetuar uma ou mais pesquisas ao Intermediário de Serviços, com o objetivo de encontrarem um serviço que possa se adequar ao processo que pretendem implementar. A WSDL fornecida pelo Fornecedor do Serviço é passada ao Utilizador do Serviço. Este indica ao Utilizador do Serviço quais as entradas (inputs) e as saídas(outputs) do Fornecedor do Serviço. O Utilizador do Serviço usa a WSDL para efetuar um pedido ao Fornecedor do Serviço e este fornece a resposta prevista ao Utilizador do Serviço.
04/09/11 vladimir.professor@gmail.com 26 Características A SOA apresenta as seguintes características: Cliente não esta associado a um servidor mas a um serviço; Blocos funcionais são encapsulados (caixa-preta) em componentes que funcionam como serviços; Os componentes funcionais e suas interfaces, estão separados; Dentro das aplicações complexas, o controle dos processos de negócio pode ser isolado; Os serviços podem ser incorporados dinamicamente em tempo de execução; As conexões são especificadas utilizando arquivos de configuração.
04/09/11 vladimir.professor@gmail.com 27 Características A SOA apresenta as seguintes características: Necessidade de um modelo de coordenação de serviço, visto que atua como um sistema distribuído. Necessidade de protocolos que garantam robustez e segurança em um ambiente heterogêneo devem ser consideradas nestes cenários.
Características A SOA apresenta as seguintes características: O estado de um componente pode ser divido em 2 classes distintas: persistente ou conversacional. Estado persistente: é definido quando existe a possibilidade de uma das partes persistir os dados trocados na comunicação. Quando dados de uma mensagem enviada a um determinado componente podem ser recuperados após a troca de mensagens em qualquer instante de tempo, esse dado foi persistido. Estado conversacional: refere-se ao estado dos componentes somente durante a comunicação ou conversação. Uma vez finalizada, o estado é desfeito e os dados são liberados. Este tipo de estado é importante para manter o andamento de operações mais complexas. 04/09/11 vladimir.professor@gmail.com 28
04/09/11 vladimir.professor@gmail.com 29 Características
04/09/11 vladimir.professor@gmail.com 30 Características Foco do SOA Desenvolvimento Modelagem Run time Processos Pessoas Informações Aplicações Monitoração
04/09/11 vladimir.professor@gmail.com 31 Ciclo de vida do SOA
04/09/11 vladimir.professor@gmail.com 32 Tendências Difusão do Enterprise Service Bus Os servidores UDDI (Universal Description Discovery Integration) foram propostos para serem grande repositório universal de serviços, onde todos clientes iriam buscar dinamicamente os serviços. Uma vez descobertos os serviços, os projetistas tendem a fazer uma conexão menos maleável entre os componentes de serviços. O uso do Enterprise Service Bus (ESB) permite uma melhor gestão do conjunto de componentes coordenados, de forma que ele será responsável por redirecionar as conexões dos serviços solicitantes para as novas localizações dos fornecedores
04/09/11 vladimir.professor@gmail.com 33 O que é o ESB O ESB é o coração da infraestrutura orientada a serviços (SOI). Oferece as capacidades que possibilita criar ambientes distribuídos desacoplados. Para uma melhor utilização do ESB é preciso de um Backbone, para invocar os serviços, incluindo várias tarefas consideradas essenciais, sem necessidade de conhecer o contexto detalhado do provedor.
04/09/11 vladimir.professor@gmail.com 34 O que é o ESB As capacidades consideradas essenciais para um barramento de serviço corporativo (ESB) são: Resolução de Descrições de Serviços Transformação de Mensagens Roteamento Dinâmico de Mensagens (Serviço de conectividade) Tratamento de Exceções Monitoramento de Mensagens
São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 35