210 likes | 316 Views
Sistemas Distribuídos SOA – Arquitetura Orientada a Serviços. Prof. Odair Indena Jr. odair@umc.br / odairindena@gmail.com. SOA é.
E N D
Sistemas DistribuídosSOA – Arquitetura Orientada a Serviços Prof. Odair Indena Jr. odair@umc.br / odairindena@gmail.com
SOA é ... “SOA é uma abordagem arquitetural corporativa que permite a criação de serviços de negóciointeroperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.” — GartnerGroup
SOA é ... “É uma arquitetura de desenvolvimento cujo objetivo é criar módulos funcionais chamados de serviços, com baixo acoplamento e permitindo reutilização de código” — SAMPAIO, Cleuton. SOA e Web Services em Java, Rio de Janeiro, 2006
SOA é ... “ ...produzir seu software com APIsricas, inteligentes e poderosamente reutilizáveis, onde qualquer plataforma e linguagem possa fazer uso da sua funcionalidade. “ Saudate, Alexandre. SOA aplicado, Integrando web services e além, São Paulo, 2012.
SOA não é ... • Igual a webservices, muito menos XML(São aliados). • Tecnologia. • Vendido em prateleira(Não estou falando de ferramentas). • Resolução de todos os problemas. • Ágil no processamento(Nos negócios/serviços da empresa é outra coisa).
Serviços É uma função do sistema computacional construído de tal forma que possa ser facilmente vinculado a outros componentes de software • Encapsula uma função do negócio reutilizável • Serviços são independentes da implementação • Serviços são fracamente interligados
Serviços • Serviços são reutilizáveis; • Serviços compartilham um contrato formal; • Serviços possuem baixo acoplamento; • Serviços abstraem a lógica; • Serviços são capazes de se compor; • Serviços são autônomos; • Serviços evitam alocação de recursos por longos períodos; • Serviços devem possuir a capacidade de serem descobertos
Componentes vs. Serviços Arquitetura Baseada em Componentes • Para a execução de MeuSoftware é necessário funcionalidades existentes em outros componentes presentes no sistema (computador). • São biblioteca de aplicações já desenvolvidas que disponibilizam serviço a novos software.
Componentes vs. Serviços Web Services • Para a execução de MeuSoftware é necessário funcionalidades existentes em outros componentes presentes no sistema (computador) e também de funcionalidades presentes em sistemas remotos, acessados via internet. Servidor Web Servidor Aplicações Requisita Autenticação Internet
Web Services Web Services referem-se aos projetos de comunicações na Web entre aplicações e baseiam-se em tecnologias como HTTP, XML, SOAP, WSDL, SPARQL, e outras. W3C
DB WEB WebService Máquina Servidor Biblioteca de Classes Aplicações Consumidoras Arquitetura baseada em web services
Exemplos de Web Services • NFP Secretaria da Fazenda https://www.nfp.fazenda.sp.gov.br/ws/arquivocf.asmx • Correios - Calculador remoto de Preços e Prazos http://www.correios.com.br/webservices/ • SERASA - Consulta CPF http://www.consultacpf.com/webservices/consultacpf.asmx
Vantagens de Web Services • Empresa que disponibiliza web service: • Disponibilização de seus serviços em maior escala • Possibilidade de crescimento • Aplicação que consome web service • Possibilidade de reuso • Integração com aplicações existentes • Facilidade na transferência de informações • Independência de lógicas externas • Interoperabilidade entre plataformas de múltiplos fabricantes • Tendência: que os serviços sejam portados para a web (computação em nuvens)
Web Services UDDI – Descreve, descobre e integra web services (Universal Description, Discovery and Integration) Registro de Serviço (UDDI) Descobrir Publicar Aplicação Cliente Provedor de Serviço Solicita serviço Conhece a especificação do serviço Fornece serviço desejado Publica na internet
Protocolos de Web Services SOAP (SimpleObject Access Protocol) • Definido pelo W3C • Requisição/resposta XML • Padrão de utilização com web services • Compatível com WSDL (Web Services DescriptionLanguage)
Protocolos de Web Services • Exemplo de requisição de Envelope SOAP GET /StockPrice HTTP/1.1 Host: example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xmlversion="1.0"?> <env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:s="http://www.example.org/stock-service"> <env:Body> <s:GetStockQuote> <s:TickerSymbol>IBM</s:TickerSymbol> </s:GetStockQuote> </env:Body> </env:Envelope>
Protocolos de Web Services • Exemplo de resposta de Envelope SOAP HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xmlversion="1.0"?> <env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:s="http://www.example.org/stock-service"> <env:Body> <s:GetStockQuoteResponse> <s:StockPrice>45.25</s:StockPrice> </s:GetStockQuoteResponse> </env:Body> </env:Envelope>
Protocolos de Web Services REST (RepresentationalStateTransfer) • Dependente do protocolo HTTP • Mensagens XML, JSON, YAML ou texto • Simples e independente de tecnologias • Não há padrões de especificação • Segurança baseada em HTTP
Protocolos de Web Services • Exemplo de requisição REST GET /StockPrice/IBM HTTP/1.1 Host: example.org Accept: text/xml Accept-Charset: utf-8 • Exemplo de resposta REST HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: nnn <?xmlversion="1.0"?> <s:Quotexmlns:s="http://example.org/stock-service"> <s:TickerSymbol>IBM</s:TickerSymbol> <s:StockPrice>45.25</s:StockPrice> </s:Quote>