SOA Introdução a Arquitetura Orientada a serviços UNIDADE I – SOA E WEB SERVICES Introdução a Arquitetura Orientada a serviços Terminologia Service Oriented Architecture (SOA) Simple Object Access Protocol (SOAP) Extensible Markup Language (XML) Web Service Definition Language (WSDL) Web Services Definição Uma Arquitetura de software trata basicamente de como os componentes fundamentais de um sistema se relacionam intrinsecamente e extrinsecamente (ANSI/IEEE, 2000). Arquitetura orientada a serviço do inglês SOA (service oriented archtecture) defini-se por um paradigma para organização e utilização de competências distribuídas que estão sob controle de diferentes domínios proprietários. (BUENO ET al, 2006), Definição SOA serve para criar aplicações de negócio SOA é uma arquitetura de componente caixa-preta e de baixo acoplamento Definição Esta arquitetura apresenta a resposta para o reuso de software, pois contem componentes de granularidade grossa, tais componentes são tratados como serviços Arquitetura orientada a serviço do inglês SOA (service oriented archtecture) defini-se por um paradigma para organização e utilização de competências distribuídas que estão sob controle de diferentes domínios proprietários. (BUENO ET al, 2006), Orientação a Serviços O serviço básico é uma função independente que atende uma ou mais requisições e oferece uma ou mais respostas, por meio de uma interface pré-definida e padronizada. Exemplo do Restaurante, serviço refeição O serviço de negócio é o encapsulamento lógico da função de negócio Exemplo do restaurante, serviço de anotação do pedido, serviço de preparação da refeição Base do SOA Provedor e Consumidor de Serviço Software) Requisição e Resposta de Serviço (Software) Provedor de Serviço Consumidor de serviço Base do SOA O Consumidor do serviço precisa saber como chamar o serviço e oque esperar em resposta. O provedor do serviço precisa compreender essa solicitação e formatar uma resposta de acordo com a expectativa de resposta do consumidor do serviço Base do SOA O relacionamento entre os componentes que estão inseridos em uma aplicação precisam estar descritos em uma espécie de contrato que podem ser, por exemplo, uma interface Java ou um arquivo XML (Extensible Markup Language). Dessa forma cria-se uma rotina que facilita a independência, manutenção e adaptação (INTEL - Next Generation Center – Curso: SOA). Características Reuso de software “caixa preta” O reuso de software “caixa-preta” elimina a necessidade de o desenvolvedor precisar conhecer qualquer parte de recurso a ser reutilizado no processo de desenvolvimento de uma aplicação. E m vez disso este reuso se define por interfaces ou contratos bem definidos que devem ser respeitados na implementação a ser elaborada ou seja o esforço sempre ocorre na nova implementação sem a necessidade de conhecer implementações de terceiros. Características Componentes fracamente acoplados Define-se pelo grau de ligação entre dois componentes distintos de forma que os mesmos se comuniquem sem atrito, ou seja, mudanças em um dos componentes não acarretem em mudanças no outro de modo que cada um destes preserve sua independência e possa interagir, apenas, por interfaces bem definidas. Características Granularidade Grossa Granularidade grossa seria um software totalmente completo que apenas é um provedor de um serviço. Características Interpolaridade A arquitetura orientada a serviço propõe uma quase completa liberdade de desenvolvimento com a finalidade de atingir o propósito da interoperabilidade, que é a capacidade de os sistemas coexistirem ou se comunicarem independentes de tecnologias ou fabricantes de hardware ou software. Características Modularidade A modularidade se refere ao grau com que os componentes podem ser separados e recombinados. Um sistema modular tem em sua composição unidades ou módulos projetados de forma independente que se integram e se comportam como componentes de um sistema mais abrangente. Definindo WebServices Um web service, segundo W3C (World Wide Web Consortium), é um sistema de software desenvolvido para fornecer uma interação máquina-a-máquina sobre uma rede. Ele possui uma interface descrita em um formato padrão (WSDL) . Outros sistemas interagem com o web service do modo descrito em sua interface usando mensagens padrão SOAP, tipicamente com http, e uma serialização XML em conjunto com outros padrões web. SOA com WebServices O web services é a tecnologia mais utilizada para SOA. Elimina muitos problemas inerentes a interoperabilidade de serviços, fornecem vários padrões e normas fundamentais para implementar arquitetura orientada a serviço Facilitam a construção e composição de serviços modulares que podem ser integrados e reutilizados em novas aplicações. SOA com WebServices Um web service é um sistema de software projetado para permitir a interoperabilidade na interação entre maquinas conectadas em uma rede. É descrito por uma interface padronizada que disponibiliza um serviço em uma rede como a Internet. Depois de descrito em uma forma padrão e catalogado o serviço se torna disponível para ser totalmente reutilizável, permitindo a comunicação e a interoperabilidade entre aplicações e plataformas heterogêneas. SOA com WebServices Os web services representam parte da lógica de negócios de uma empresa sendo executados em sistemas remotos que os matem e os distribuem na rede. Eles podem ser acessados por protocolos simples presentes na Internet como o HTTP Essa comunicação baseada em padrões permite que qualquer aplicação que adote estes protocolos acesse e utilize o serviço sem precisar conhecer detalhes de implementação do serviço solicitado. SOA com WebServices O acesso e a descrição de um web service são feitos através de uma notação padronizada na linguagem XML (eXtensible markup language), O XML atende a todos os detalhes necessários para interagir com o serviço, descrevendo a funcionalidade, a localização, o modo de invocação e os protocolos utilizados no web service (MAHMOUD, 2005). Xml e WebServices A linguagem de marcação extensível ou XML é muito útil para o desenvolvimento de diversas aplicações pelo fato de ser possível criar marcadores de acordo com a necessidade corrente e permite a representação de muitos tipos de dados. Xml e WebServices A linguagem de marcação extensível ou XML é muito útil para o desenvolvimento de diversas aplicações pelo fato de ser possível criar marcadores de acordo com a necessidade corrente e permite a representação de muitos tipos de dados.