SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura Orientada a Serviços): Arquitetura proposta para interoperabilidade de sistemas por meio de conjunto de interfaces de serviços fracamente acoplados, onde os serviços não necessitam de detalhes técnicos da plataforma dos outros serviços para a troca de informações ser realizada. (e-ping v.3,2007) É um estilo de arquitetura que promove a integração entre o negócio e a TI através de serviços. O serviço é o principal componente desta arquitetura. SOA preconiza como resultado: maior agilidade para atender a novas demandas, flexibilidade para atender as mudanças, redução de custo e reuso de ativos (serviços). (companyweb, 2007)... é um paradigma para organização e utilização de competências distribuídas que estão sob controle de diferentes domínios proprietários....é um meio para organizar as soluções que promovem o reuso, crescimento e interoperabilidade. (Oasis Modelo de Referência SOA 1.0, 2006 Baseado nos materiais dos professores Luiz Fernando Sirotheau / Senac/DF Alexandre Vasconcelos / UFPE / Qualiti Software Processes 1 2 Ponto vista do negócio Conceitode SOA É a mais recente iniciativa para desenvolver soluções de tratamento da informação aderente aos negócios É uma abordagem que visa aumentar a eficiência do capital estrutural É um estratégia para aumentar o valor percebido pelos clientes É uma arquitetura para agilizar as mudanças nos negócios Definição tecnológica É uma coleção de serviços (barramento de serviços) Utiliza topologia de rede para realizar a troca de mensagens Garante serviços fracamente acoplados, altamente coesos e com alta possibilidade de reutilização Coesão e Acoplamento a independência funcional Surge como conseqüência da aplicação dos princípios de abstração e ocultação de informação; pode ser obtida a partir da definição de módulos de "propósito único" e evitando-se excessivas interações com outros módulos; a coesão está fortemente ligada ao princípio de ocultação e que sugere que um módulo pode realizar a sua função com um mínimo de interação com os demais módulos do sistema; é desejável que os módulos num software apresentem um alto grau de coesão; acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. 3 4
Um exemplo de SOA Uma empresa de eletricidade tem a capacidade de gerar e distribuir eletricidade (capacidade subjacente). A fiação da rede de distribuição da companhia elétrica (o serviço) oferece o meio para fornecer eletricidade para suportar o uso por um consumidor residencial típico (funcionalidade do serviço), e um consumidor acessa a eletricidade gerada (a saída da invocação de serviço) via uma tomada de parede (interface de serviço). De forma a utilizar a eletricidade, um consumidor precisa entender que tipo de plugusar, qual a voltagem fornecida, e quais os possíveis limites de carga; a empresa presume que o consumidor irá conectar somente aparelhos adequados à voltagem ofertada e a carga suportada; e o consumidor por sua vez assume que os aparelhos adequados podem ser conectados sem danos ou riscos (suposições técnicas do serviço). Um usuário residencial ou comercial precisa abrir uma conta na empresa para usar o fornecimento (restrição de serviço) e a empresa irá medir o consumo e espera que o consumidor pague pela energia conforme taxa prevista (política de serviço). Quando o consumidor e a empresa concordam nas restrições e políticas (contrato de serviço), o consumidor pode ter o fornecimento de eletricidade usando o serviço desde que a rede de distribuição de eletricidade e a conexão residencial permaneçam intactas (por ex. uma tempestade que derrube a rede e interrompa o fornecimento) e o consumidor pode pagar (por exemplo, transferência eletrônica de fundos) a empresa (acessibilidade). O queo SOA nãoé SOA não é uma tecnologia SOA não é um produto SOA não é um projeto de TI SOA não é um software SOA não é um framework SOA não é uma metodologia SOA não é uma solução de negócio SOA não é um middleware SOA não pode ser comprada SOA não um serviço SOA não é uma ferramenta de produtividade (companyweb,2007) 5 6 O S do SOA -Serviço Conceito É uma tarefa repetitiva de negócios Ex. Verificar crédito cliente; abrir nova conta É um componente, altamente coeso e fracamente acoplado que encapsula uma função de negócio reutilizável Recebe requisições e responde encapsulando todo o detalhe do seu processamento Executa um ciclo completo de trabalho e não depende do estado de outros componentes externos É uma unidade de trabalho feita por um fornecedor de serviço para fornecer resultados finais requeridos por um consumidor de serviço É invocado através de protocolos de comunicação independentes da localização e da tecnologia de suporte Conceito O O do SOA Orientado a serviços CEO CIO Analista de Negócio Executivos de TI Desenvolvedores de TI Para o CEO é uma forma crucial de criar uma corporação conectada e responder melhor às demandas de clientes e pressões de mercado. Para o CIO é uma possibilidade de proteger investimentos existentes de TI sem inibir o desenvolvimento de novas capacidades. É a forma de utilizar TI como alavancador da empresa ao invés de barreiras. Para os analistas de negócios é uma forma de trazer investimentos e ativos alinhados com a estratégia e processos de negócios de Negócio. Para os Executivos e Gerentes de TI é uma forma de efetivamente integrar sistemas heterogêneos. Possibilitando uma melhor gestão da complexidade de TI e responder eficientemente às necessidades de negócio. Aos desenvolvedores é o caminho para se criar aplicações dinâmicas e colaborativas e melhorar a reutilização de TI. 7 8
Conceito O A do SOA -Arquitetura É a estrutura do sistema composta pelos elementos de software, propriedades visíveis destes elementos e o relacionamento entre eles É um estilo de arquitetura que suporta a integração dos negócios com serviços conectados Expectivas do SOA Motivação para SOA é pelo valor que traz para a área de negócios. Não é uma motivação apenas tecnológica Até 2008, 80% dos novos desenvolvimentos de projetos usarão técnicas de SOA. SOA diz respeito a mudanças nos negócios: Aumenta a velocidade das mudanças, facilita as conexões de negócio, e melhora o controle dos negócios. 9 10 Evoluçãodas Evoluçãodas 11 12
Evoluçãodas Arquitetura Spaghetti 42% dos orçamentos de TI apenas para fazer coisa se conectar com coisa.gartner Modelagem Negócios Arquitetura SOA Inovação de Negócios & Otimização Painéis de Negócio Mais de 70% dos orçamentos de TI são alocados à manutenção e operação de sistemas existentes. The Yankee Group, 3/05 Desenvolvimento Desenvolvimento Serviços Interação Serviços Process. Serviços Informação Interação com Usuário Enterprise Service Bus Partner Services Aplicações Serviços Acesso Integração Regras de Negócio Processos Negócio - Criando Novos Ativos Infra Estrutura Acesso a Dados Integração Negócio - Transformando Ativos Existentes Segurança Gerenciamento TI Monitoração TI 13 14 Arquitetura tradicional Arquitetura com SOA 15 16
Tecnologias ligadas a SOA POO (Programação orientada a Objetos) POO é um paradigma de desenvolvimento de softwares (Objetos, Classes, Métodos, herança, polimorfismo,etc...) WOA (Web Oriented Architeture) Os softwares SOA utilizados na internet. No WOA os artefatos são conhecidos como recursos, que são quaisquer artefatos que possam ser identificados por uma URI(Universal ResourceIdentifier), basicamente o endereço do recurso. Web Services Os serviços encontrados para WEB são conhecidos como WEB Services componentes que permitem às aplicações enviar e receber dados em formato XML e são padronizados segundo UDDI (Universal Description, Discovery and Integration) Tecnologias ligadas a SOA UDDI (Universal Description, Discovery and Integration) Especificação que define um serviço de registro para Web Services. Provedores de serviços podem utilizar UDDI pa-ra publicar os serviços que eles oferecem. WSDL (Web Services Description Language) Trata-se de um documento escrito em XML que além de descrever o serviço, especifica como acessá-lo e quais as operações ou métodos disponíveis padrão baseado em XML para descrever o serviço como no COM, onde ele traz os métodos do webservice. SOAP (Simple Object Access Protocol) Protocolo padronizado para troca de informações estruturadas entre plataforma descentralizada e distribuída usando como base o XML Envelope que define a estrutura para descrever o conteúdo da mensagem e como processá-lo 17 18