Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

SOA WEB SERVICE 1
SOA WEB SERVICE
SOA - Service Oriented Architecture
SOA consistem em uma coleção de componentes distribuídos que fornecem e 
ou consomem serviços.
A sua implementação impacta de forma significativa no processo de 
desenvolvimento de sistemas distribuídos nas organizações.
A Arquitetura Orientada a Serviço (SOA) está sendo utilizada por uma grande 
quantidade de empresas e organizações nos mais distintos cenários.
Conceitos
A arquitetura orientada a serviços estabelece um modelo arquitetônico que visa 
aprimorar a eficiência, agilidade e a produtividade de uma empresa, 
posicionando os serviços como os principais meios para que a solução lógica 
seja representada no suporte à realização dos objetivos estratégicos associados 
à computação orientada a serviços (ERL, 2009).
SOA pode ser caracterizada como uma arquitetura corporativa onde serviços 
podem ser criados, reutilizados e facilmente compartilhados entre aplicações. 
Neste caso as funcionalidades de um sistema são decompostas em serviços 
interoperáveis o que permite a integração efetiva entre aplicações.
O objetivo do SOA é estruturar grandes sistemas distribuídos com base nas 
abstrações de regras e funções de negócio
Serviços
A arquitetura orientada a serviço objetiva abstrair a realidade, concentra-se nos 
aspectos do negócio
Isso possibilita que sistemas possam ser construídos em plataformas diferentes 
sem que existam problemas, pois elas poderão se integrar de forma flexível por 
meio dos serviços disponibilizados na arquitetura.
Interoperabilidade
SOA WEB SERVICE 2
Atualmente uma empresa pode ter uma grande heterogeneidade de sistemas, a 
integração entre esses sistemas dar-se o nome de interoperabilidade e 
representa um objetivo fundamental da orientação a serviços, que estabelece 
uma base para a realização de outros objetivos e benefícios estratégicos.
Baixo acoplamento
Esse é um conceito vital para o funcionamento de um sistema distribuído. Haja 
vista que ele determina que diferentes partes e funcionalidades de um sistema 
sejam independentes umas das outras, dessa maneira, alterações ou 
problemas em certas partes do sistema não trarão grandes consequências para 
o resto do sistema, trazendo grandes benefícios como escalabilidade, 
flexibilidade e tolerância a falhas
O que é um serviço
É 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
Caracteristicas
Não existem herança ou dependência entre os serviços;
Separação clara entre fornecedor (provider) e consumidor (consumer);
Foco na definição dos contratos.
Acoplamento e coesão
Acoplamento: é a medida de interdependência entre os módulos
Coesão: é a medida de intensidade de associação funcional dos elementos.
SOA WEB SERVICE 3
Objetivos
Foco na melhoria e agilidade de negócios
Reutilização de componentes em forma de serviços
Cria aplicações com base numa fundação de componentes
Beneficios do SOA
Aumento da Interoperabilidade: Serviços são projetados para serem 
naturalmente compatíveis de forma que possam ser efetivamente montados e 
reconfigurados quando ocorrerem mudanças nos requisitos de negócios
Flexibilidade: Um ambiente orientado a serviços tem que ser baseado em um 
modelo arquitetônico que permita a organização evoluir em conjunto com o 
negócio sem ser seja limitado devido a problemas tecnológicos de ferramentas 
proprietárias.
Aumento do alinhamento entre Negócios e Tecnologia: Alguns serviços são 
projetados com um contexto funcional voltada para o negócio, o que lhes 
permitem evoluir conjuntamente
Aumento do retorno sobre o investimento (ROI) - Os serviços são prestados e 
vistos como ativos de TI e espera-se que com a adoção da arquitetura o retorno 
seja maior que o valor gasto na sua implementação
Menor tempo de resposta frente às mudanças: Novos e mudanças nos 
requisitos de negócios podem ser preenchidas mais rapidamente através da 
criação de um ambiente em que as soluções possam ser criadas e ou 
ampliadas com esforço menor, por meio da reusabilidade e interoperabilidade 
nativa dos serviços existentes.
Desafios da Adoção de SOA
Segurança: a segurança é um desafio em SOA da mesma forma que é para 
qualquer sistema distribuído. Isso ocorre devido a grande interoperabilidade que 
arquitetura proporciona.
SOA WEB SERVICE 4
Disponibilidade: A disponibilidade é um desafio para qualquer aplicação 
distribuída, não é diferente para as 
Arquiteturas Orientadas a Serviço. Ao se adotar SOA devemos sempre 
dimensionar quais e quantos serão os usuários que consumirão os serviços, 
verificando principalmente como a oferta de serviços implicará no desempenho 
da arquitetura.
Falta de conhecimento na implementação SOA: o conceito de SOA tem sido 
constantemete lembrado por muitas instituições. Porém sua implantação não é 
uma tarefa trivial, muito pelo contrário, pode ser bem complexa e requer pessoal 
especializado
Custo: o custo para o desenvolvimento de uma Arquitetura Orientada a serviços 
é relativamente alto. Isso ocorre, pois o processo de reengenharia das 
arquiteturas existentes é usualmente um processo demorado, que consome 
recursos humanos e financeiros. Logo, é necesário que seja realizada uma 
análise do custo e do benefício antes da adoção de SOA.
SOA é um estilo arquitetural e para implementá-lo podem ser 
usadas diversas tecnologias tais como: 
•RMI (Remote Method Invocation); 
•CORBA (Common Object Request Broker Architecture), 
•DCOM (Distributed Component Object Model) 
•Web Services e Web Services RESTFul.
Web Services 
Um serviço Web pode ser descrito como o serviço que fornece uma interface de 
serviço que permite aos clientes interagirem com servidores de uma maneira 
mais geral do que acontece com os navegadores Web
Os clientes acessam operações de um serviço Web por meio de requisições e 
respostas formatadas em Extensible Markup Language (XML) e, normalmente, 
SOA WEB SERVICE 5
transmitidas por HTTP.
Caracteristicas
Web services podem ser publicados, localizados e invocados através da 
Internet
Independência: 
- de linguagem de programação 
- de sistema operacional
Padrões
Principais padrões utilizados na implementação de Web Services:
1. Soap
2. Rest
3. GraphQL
XML
XML é uma linguagem de marcação recomendada pela W3C para a criação de 
documentos sendo amplamente utilizada em Serviços Web.
Ela é composta por tags que podem ser determinados livremente pelo usuário 
em seu documento XML, o que não ocorre na HTML (HyperText Markup 
Language) que também possui tags predefinidas.
Simple Object Accesss Protocol (SOAP)
SOAP é um protocolo de transporte que é responsável pela troca de 
mensagens entre aplicações em ambientes distribuídos e descentralizados, ele 
é projetado para permitir tanto interação cliente-servidor como interações 
assíncronas pela Internet.
SOA WEB SERVICE 6
Ele define um esquema para uso da XML para representar o conteúdo de 
mensagens de requisiçãoresposta, assim como um esquema para a 
comunicação de documentos
WSDL
O Web Services Description Language (WSDL) é uma linguagem para 
descrição de serviços escrita em XML o que permite que as informações 
possam ser melhor entendidas em qualquer lado da comunicação
Um documento WSDL descreve: 
1. Interface
2. Ponto de acesso
3. Protocolo de comunicação
4. Documento XML que contem informações necessaria para o cliente utilizar WS
UDDI
UDDI é um componente importante da arquitetura de Web Services, sendo 
formado por um serviço de diretório que armazena descrições de serviço
Esse serviço obedece ao padrão integração, descoberta e descrição universal. 
Além disso, ele prescreve o layout de um banco de dados que contém 
descrições de serviços que permitirão a clientes de serviços web procurar 
serviços relevantes
O UDDI provê um método padronizado para a publicação e descoberta de 
informações, permitindoque as empresas tanto publiquem como encontrem 
Web Services.
Representational State Transfer - REST
Conceito
SOA WEB SERVICE 7
A arquitetura Representational State Transfer (REST), foi proposta por Roy 
Fielding em 2000 em 
sua tese de doutorado e pode ser descrita como um conjunto de princípios 
arquiteturais que podem ser utilizados para o desenvolvimento de serviços web 
e que utilizam o protocolo HTTP para realizar as trocas de mensagens
Web Services RESTful
Para dizermos que um serviço Web segue os princípios arquiteturais que 
permeiam REST, o serviço tem que estar em conformidade com um conjunto de 
restrições. Se atender essas restrições ele é um serviço Web RESTful
Restrições
Cliente-Servidor: 
Essa restrição está associada a separação deinteresses, que é o princípio por 
trás das restrições da arquitetura cliente-servidor. Nela procura-se separar as 
preocupações relacionadas à interface do usuário das preocupações de 
armazenamento de dados. Isso permite que os componentes possam evoluir de 
forma independente melhorando a portabilidade e a escalabilidade das 
aplicações
Stateless: 
Diz respeito à interação entre cliente e servidor. Nesse caso, a comunicação 
deve ser realizada sem que haja o armazenamento de qualquer tipo de estado 
no servidor. Sendo assim, toda informação de estado deve ser conhecida 
somente pelo cliente
Cache: 
A utilização do cachê, tem a finalidade de diminuir o impacto da desvantagem 
ocasionada pela 
redução de performance. A resposta a uma requisição do servidor pode ser:
cacheable (sujeito à utilização do cachê): Se uma resposta for marcada 
como cacheable, então ela será reutilizada como resposta em futuras 
requisições equivalentes, permitindo que o servidor fique mais livre, e 
SOA WEB SERVICE 8
portanto, mais escalável, haja vista que algumas interações poderão ser 
eliminadas por completo o que melhora a eficiência e performance de 
acesso a recursos percebido pelo usuário.
noncacheable (não sujeito a utilização do cache)
Sistema em camadas: 
 Essa restrição caracteriza-se pela divisão do sistema em camadas 
hierárquicas, restringindo a visualização dos componentes participantes de 
forma que cada componente só possa ver a camada com a qual esteja 
interagindo diretamente. Ao restringir a visibilidade de um sistema a uma única 
camada, torna-se possível delimitar a complexidade do sistema e promover a 
independência de cada uma das camadas. Essa separação permite que o 
sistema seja mais robusto e resistente a erros
Interface Uniforme: 
 A principal característica que diferencia o estilo arquitetural REST de outros 
utilizados em rede é a ênfase quanto ao uso de uma interface uniforme entre os 
componentes. 
Com o objetivo de obter uma interface uniforme, REST define quatro requisitos 
de interface: 
1. Identificação dos recursos: Na arquitetura REST, cada recurso deve possuir 
um identificador universal denominado Uniform Resource Identifier (URI). Que é 
definido como uma sequência de caracteres que identificam um recurso físico 
ou abstrato [RFC 3986]. E são utilizados para descoberta de recursos e serviços
2. Representação de recursos: Os recursos devem ser manipulados a partir de 
suas representações, uma vez que elas podem estar representadas em 
formatos diferentes formatos, tais como: JSON, XML,PDF, texto puro, etc. É 
importante frisar que uma aplicação REST não transmite o recurso 
efetivamente, mas sim a sua uma representação, em um formato pré-
acordado entre o cliente e o servidor;
3. Mensagem auto descritivas: Os recursos são dissociados da sua 
representação, haja vista que o seu conteúdo pode que ser acessado em 
em formatos diferentes.
4. Utilização de hipermídia para estado da aplicação: Neste caso, as 
representações de recursos obtidas em uma aplicação REST devem 
possuir hiperlinks que permitam a navegação do cliente pelos recursos. 
Uma vez que o servidor não pode armazenamento de qualquer tipo de 
estado.
SOA WEB SERVICE 9
Serviços Web RESTful e o protocolo HTTP
O protocolo HTTP é o padrão utilizado na arquitetura REST para promover a 
comunicação entre o cliente e o servidor
Isso se dá pela manipulação dos recursos utilizando os métodos HTTP: GET, 
POST, PUT, DELETE e adicionalmente os métodos HEADER e OPTIONS. 
Esses métodos são descritos a seguir:
Interação por métodos 
Para interagir com as URL’s, os métodos HTTP são utilizados. 
A regra de ouro para esta interação e que URL’s são substantivos, e métodos 
HTTP são verbos. Isto quer dizer que os métodos HTTP são os responsáveis 
por provocar alterações nos recursos identificados pelas URI’s. 
Estas modificações são padronizadas, de maneira que: 
• GET - recupera os dados identificados pela URL; 
• POST - cria um novo recurso; 
• PUT - atualiza um recurso; 
• DELETE - apaga um recurso
REST
REST segue padrões W3C/IETF3 bem conhecidos tais como (HTTP, XML, URI, 
MIME).
Uma vantagem na utilização de Web RESTful é a possibilidade de otimização 
de desempenho de web services, uma vez que podem utilizar formatos de 
mensagem mais leves, como por exemplo, o JavaSript Objetc Notation(JSON)
JSON
 JSON e uma sigla para JavaScript Object Notation. É uma linguagem de 
marcação criada por Douglas Crockford e descrito na RFC 4627, e serve como 
uma contrapartida a XML.
SOA WEB SERVICE 10
Vantagem em relação o XML, tamanho reduzido e acaba tendo uso mais 
propício em cenários onde largura de banda (ou seja, quantidade de dados que 
pode ser transmitida em um determinado intervalo de tempo) e um recurso 
critico
GraphQL
GraphQL é uma linguagem de consulta de código aberto, utilizada para a 
manipulação de dados em APIs — Application Programming Interface — e 
contém um serviço de runtime, que é utilizado para processar as consultas 
efetuadas.
O GraphQL foi desenvolvido para tornar as APIs mais rápidas, flexíveis e 
intuitivas para os desenvolvedores. Ainda é possível implantá-lo em um 
ambiente de desenvolvimento integrado (IDE) conhecido como GraphiQL.
Vantagens
Declarative Data Fetching 
O GraphQL abraça um conceito chamado de declarative data fetching em 
suas consultas, o cliente que irá fazer a requisição tem o poder de 
selecionar qual a resposta que quer receber como as entidades, campos e 
relacionamentos utilizando apenas uma consulta.
Sem Over-fetching com GraphQL 
Não existe over-fetching, “retorno de dados não desejados”, com o 
GraphQL, com ele um cliente mobile tem o poder de escolher quais campos 
quer receber de acordo com a tela que vai ser apresentada.
Fonte Única de Verdade (Single Source of Truth) 
O schema do GraphQL funciona como uma fonte única de verdade para 
aplicações que o utilizam, ele provê de maneira central um lugar onde todas 
as informações disponíveis são 
apresentadas
Linguagem Fortemente Tipada 
O GraphQL é uma linguagem de consulta fortemente tipada e suas 
consultas são escritas utilizando o GraphQL Schema Definition Language 
SOA WEB SERVICE 11
(SDL). 
Isso faz com que as consultas do GraphQL sejam menos propensas a 
erros, podendo ser validadas por IDEs com suporte a auto complementar e 
validações.
Desvantagens
Curva de Aprendizagem 
Desenvolvedores acostumados com as APIs REST terão que enfrentar uma 
certa curva de aprendizado com o GraphQL. 
 
O GraphQL direciona muito do trabalho de consulta de dados para o 
servidor, o que aumenta a complexidade para os desenvolvedores. 
Dependendo de como for implementado, o GraphQL talvez exija estratégias 
para o gerenciamento da API diferentes das aplicadas às APIs REST, 
principalmente em relação aos limites de taxas e preços.
O armazenamento em cache é mais complexo do que na arquitetura REST.
Os profissionais responsáveis pela manutenção da API terão a tarefa extra 
de escrever um esquema do GraphQL que possa ser submetido à 
manutenção

Mais conteúdos dessa disciplina