2. Objetivos da Aula
Ao final desta aula, o aluno deverá ser capaz de:
Obter uma definição geral sobre Middlerawe e sobre
os tipos de Middleware’s.
Saber identificar produtos de Middleware modernos de
mercado, suas principais características e
mercado, suas principais características e
funcionalidades.
Identificar os paradigmas de sistemas distribuídos
associados a pacotes de Middleware básicos.
Pré-requisitos
Introdução aos conceitos Sistemas Distribuídos
3. Bibliografia
Gartner. 2004. Analyst Report. Who's Who in
Middleware, 1Q04. Disponível em: https://www-
01.ibm.com/software/info/websphere/partners
4/articles/gartner/garwho.html
TANENBAUM, Andrew S; STEEN, Maarten Van. Sistemas
TANENBAUM, Andrew S; STEEN, Maarten Van. Sistemas
Distribuídos: Princípios e Paradigmas. 2ª ed. São
Paulo: Pearson - Prentice Hall, 2007.
Capítulo 1 - Introdução
Capítulo 2 - Arquitetura
Capítulo 4 – Comunicação
Extra/Complementar:
Coulouris. Distributed Systems Concepts and Design. 5th
Ed.
4. Organização Desta Apresentação
Definição de Middleware e suas funcionalidades
Grupos de Funcionalidades dos Middleware’s
Middleware – funcionalidades básicos (Detalhamento completo)
Middleware – Funcionalidades de Integração (Lista apenas)
Middleware – Funcionalidades de Pacotes de Aplicações (Lista
apenas)
apenas)
Produtos de Middleware
Produtos de Middleware de Comunicação
Produtos de Middleware de Plataforma
Exemplos de Servidores Web e Servidores de Aplicação
Especificações Java Implementadas por Servidores de Aplicação
Paradigmas de Sistemas Distribuídos
6. Componentes de software
Para lidar com a heterogeneidade de computadores e
redes, e ajudar a fornecer uma visão única de sistema,
os sistemas distribuídos são construídos por camadas de
componentes de software.
Uma camada de software desenvolvida
Uma camada de software desenvolvida
especificamente para prover facilidades comuns a
sistemas distribuídos que fica situada logicamente entre
a camada de mais alto nível da aplicação e a camada
subjacente composta dos sistemas operacionais e dos
serviços de rede é muitas vezes denominada de
Middleware.
7. Middleware
Há uma definição muito genérica para Middleware:
Componente de software que fica no meio (middle).
Fica entre os componentes de software de um
Sistema Distribuído.
Sistema Distribuído.
É uma camada ou pacote de software que provê
serviços necessários a interação dos demais
elementos autônomos de software que constituem o
Sistema Distribuído.
8. Middleware – Definição do Gartner
Middleware é o software de “cola” que ajuda programas
e bancos de dados (que podem estar em diferentes
computadores) a trabalhar juntos. Sua função mais
básica é habilitar a comunicação entre os diferentes
componentes de software.
Middleware is the software “glue” that helps programs
and databases (which may be on different computers)
work together. Its most basic function is to enable
communication between different pieces of software.
https://www.gartner.com/it-glossary/middleware/
9. Middleware
Camada de software para:
Suportar tecnologias, computadores e redes heterogêneas,
Oferecer uma interface padronizada e homogênea para os
componentes do sistema distribuídos.
Situado logicamente entre:
Uma camada mais alta Componente das Aplicações
Uma camada mais alta Componente das Aplicações
Uma camada subjacente Sistemas operacionais, serviços de rede e
de armazenamento de dados.
10. Funções do Middleware
A função mais básica do Middleware é fornecer
serviços de comunicação entre os elementos do
sistema distribuído.
Com a evolução das tecnologias de sistemas
Com a evolução das tecnologias de sistemas
distribuídos, as funcionalidades dos Middlewares
também evoluíram e se diversificaram.
11. Funcionalidades de Middleware
Torna transparente as diferenças entre os diversas
interfaces dos componentes do sistema distribuído.
Permite que componentes de uma aplicação distribuída se
comuniquem de forma transparente.
Oculta da melhor forma as diferenças entre os tipos de
hardware e de sistemas operacionais.
hardware e de sistemas operacionais.
Fornece serviços de alto nível necessários ao processamento
distribuído e à comunicação que normalmente não estão
disponíveis nos sistemas operacionais ou camadas de rede.
Atualmente tem incorporado serviços de implantação
(deploy), execução e administração dos componentes da
aplicação distribuída.
12. Funcionalidades de Middleware
Resumidamente, o Middleware:
Fornece uma camada adicional de abstração acima do S.O.;
Esconde a complexidade do ambiente subjacente (S.O., Rede,
Topologia, Gerenciamento de Dados, etc.);
Dá maior independência em relação ao ambiente computacional
Dá maior independência em relação ao ambiente computacional
subjacente;
Fornece serviços de implantação, execução, migração e
administração de aplicações distribuídas;
Fornece serviços adicionais de alto nível e desonera a
implementação de códigos complexos comuns às várias
aplicações distribuídas; e
Facilita adoção de padrões e melhores práticas de programação
em aplicações distribuída.
14. Evolução dos Middleware’s
Com o passar do tempo os produtos de middleware
evoluíram e se diversificaram. Suas funções também
evoluíram.
15. Funções/Funcionalidades dos
Middleware’s
Analisaremos primeiro os tipos de funcionalidades
que são implementadas pelos diversos tipos de
middleware para então entendermos melhor os tipos
de produtos middleware’s existentes.
16. Grupos de Funcionalidades de
Middleware´s
Funcionalidades/funçoes BÁSICAS:
Funcionalidades de Comunicação
Funcionalidades de Plataforma
Funcionalidades de Gerenciamento de Dados
Funcionalidades/funções de INTEGRAÇÃO
Funcionalidades Tecnicas
Funcionalidades de Adaptador tecnológico
Funcionalidades de Adaptador tecnológico
Funcionalidades de Transformação
Funcionalidades de Roteamento Inteligente
Navegação de Dados
Funcionalidades de Negócio
Gerenciamento de Processos de Negócio
Gerenciamento de Processos de Negócio
Engenho de Regras de Negócio
Funcionalidades de Middleware relacionadas a Pacotes de Aplicações
Funcionalidades de Adaptador de um pacote de aplicação (Ex.: SAP, CRM Siebel,...)
Funcionalidades de Interconexão ou Extensibilidade de pacote de aplicação (Ex.:
Conector Siebel-Arbor)
Monitoramento de Atividades de Negócio
17. Middleware
De acordo com as combinações de funcionalidades
poderemos ter vários tipos de produtos de
Middleware . Por exemplo:
Middleware de Comunicação: Situa-se entre duas
aplicações ou componentes de aplicações distribuídas
aplicações ou componentes de aplicações distribuídas
e fornece serviços de comunicação.
Middleware de Servidor de Aplicação: Situa-se entre a
aplicação e o sistema operacional / rede de
computadores. Forma um container para a aplicação.
Fornece as funcionalidades de plataforma e de
comunicação.
19. Middleware – Funcionalidades Básicas
As funcionalidades básicas de middleware estão relacionadas aos requisitos que surgem dentro
das fronteiras de uma única aplicação distribuída ou de um conjunto de aplicações
relacionadas (aplicações onde todos os componentes seguem uma mesma orientação de
desenho ou de um único time de desenvolvimento ou de um memsmo arquiteto).
Mesmo que a aplicação esteja espalhada por diferentes localizações e utilizando diferentes
sistemas operacionais e executando pela Internet, as funcionalidades básicas são suficientes
porque existe uma consistência interna do modelo de informação da aplicação (ex.: formatos
de mensagem, método de assinatura, protocolos e semântica dos dados consistentes).
As funcionalidades básicas de middleware são normalmente empregadas no escopo interno de
As funcionalidades básicas de middleware são normalmente empregadas no escopo interno de
uma organização, mas podem ser aplicadas igualmente em sistemas que envolvem mais de
uma empresa, ex.: B2B – Business-to-Business, desde que o software em ambas as
organizações tenha sido implementado por uma organização (ou por uma equipe que
coopere nas escolhas do desenho da aplicação).
As funcionalidades básicas de middleware estão organizadas em três categorias :
Funcionalidades de Comunicação
Funcionalidades de Plataforma
Funcionalidades de Gerenciamento de Dados
20. Middleware – Funcionalidades Básicos
https://www-01.ibm.com/software/info/websphere/partners4/articles/gartner/garwho.html
Middleware de
Gerenciamento de
dados
Middleware de
Comunicação
Middleware de
Plataforma
21. Middleware – Funcionalidades Básicas
1 - Funcionalidades de Comunicação
2 - Funcionalidades de Gerenciamento de Dados
3 - Funcionalidades de Plataforma
22. Middleware – Funcionalidades Básicas
1 – Funcionalidades de Comunicação
A adoção de um framework de middleware de
comunicação desonera o desenvolvedor da aplicação
de lidar com os detalhes de protocolos de rede.
http://www.informit.com/articles/article.aspx?p=349749seqNum=2
24. Middleware – Funcionalidades Básicas
1 – Funcionalidades de Comunicação
Seu objetivo é ajudar os programas a se comunicarem
com outros programas.
É o software que suporta o protocolo de transmissão de
mensagens e dados entre dois pontos assim como que
provê uma interface de programação (API –
provê uma interface de programação (API –
Application Program Interfaces) para acesso aos
serviços de comunicação.
São essenciais para obtenção de serviços de
comunicação com segurança, entrega confiável de
mensagens, e desacoplamento, como no caso específico
dos middlewares orientados a mensagens (MOM –
message oriented middlewares).
25. Middleware – Funcionalidades Básicas
1 – Funcionalidades de Comunicação
Fornecem protocolos e APIs para o serviço de comunicação que
podem ser proprietários ou baseados em padrões de mercado
como ASN.1, DCE (Distributed Computing Environment), RPC (Remote
Procedure Call), RMI (Remote Method Invocation), CORBA/IIOP, JMS
(Java Message Service) ou Serviços Web baseados em SOAP
(Simple Object Access Protocol).
Atualmente os middleware´s de comunicação geralmente executam
Atualmente os middleware´s de comunicação geralmente executam
protocolos de Internet como FTP, FTTP, HTTPS, IP, SMTP ou TCP.
Podem implementar protocolos de alto nível, incluindo padrões de
indústrias (ex.: ebXML messaging, AS2 e Web Services) e protocolos
proprietários (ex.: WebSphere MQ, Microsoft MSMQ e Oracle AQ)
e podem executar através da Internet ou de redes privadas como
ANX ou SWIFT (Society for Worldwide Interbank Financial
Telecommunication)
26. Middleware – Funcionalidades Básicas
1 – Funcionalidades de Comunicação
Funcionalidades básicas de comunicação:
Protocolos de transmissão
API de serviços de comunicação
Funcionalidades mais sofisticadas de comunicação:
Entrega confiável e garantira de entrega (ex.:, garantia de que a mensagem
será salva até a confirmação da entrega)
Suporte transacional (ex.:, two-phased commit),
Suporte transacional (ex.:, two-phased commit),
Fila de mensagens (ex., para entrega garantida retardada, desacoplamento,
sem conexão entre origem de destinatário, mecanismo store-and-foward),
Mensagens offline (ex., para aplicações portáveis ou quando a aplicação
destino estiver offline, desacoplamento),
Entrega única (eliminar entrega de mensagens duplicadas)
Entrega múltipla (ex.: padrão de comunicação publish/subscriber)
Estruturas de fila ou pilha ou de outras variações de ordenação ou distribuição
de mensagens.
27. Middleware
2 – Funcionalidade de Ger. de Dados
As funcionalidades de middleware de
gerenciamento de dados ajudam os programas
(incluindo programas de aplicação e programas de
SGBDs) a ler e escrever em arquivos remotos ou
banco de dados remotos. Exemplos incluem:
banco de dados remotos. Exemplos incluem:
Mecanismos NFS (Network File System) de Windows,
Netware e Linux;
Padrões e drivers ODBC (Open Database Conectivity)
e JDBC (Java Database Connectivity) que normalmente
são incluídas nos próprios pacotes do SGBD, como DB2,
Oracle, SQL Server, etc.
28. Middleware
2 – Funcionalidade de Ger. de Dados
Produtos que implementam este tipo de funcionalidade
normalmente não são rotulados como middleware no
mercado porque são funcionalidades já empacotadas
em produtos como os SGBDs ou servidores de arquivos.
Todos os modernos SGBDs incluem tipicamente alguma
Todos os modernos SGBDs incluem tipicamente alguma
forma de middleware para acesso distribuído de leitura
e escrita, como por exemplo: Driver ODBC, Driver
JDBC, “OLE Provider” ou alguma biblioteca
proprietária para leitura e escrita no Banco de Dados,
como no caso do cliente SQL-net do SGBDR Oracle.
29. Middleware
2 – Funcionalidade de Ger. de Dados
Cliente: Aplicação Java
JDBC
Cliente outro
ODBC
JDBC
MS SQL
Server
My SQL
Oracle
SGBDR
ODBC
ODBC
MS SQL
Server
My SQL
Oracle
SGBDR
30. Middleware – Funcionalidades Básicas
3 – Funcionalidades de Plataforma
As funcionalidades de Plataforma proveem um ambiente de
execução de servidor para a lógica da aplicação (um
container para hospedagem das aplicações) .
S.O Hardwares
Sistemas Operacionais
Rede e Comunicação
Servidor de
Aplicação
Aplicações
Progra-
mas
31. Middleware
3 – Funcionalidades de Plataforma
Proveem funcionalidades para a comunicação entre programas ou
componentes da aplicação.
Proveem serviços de “gerenciamento de recursos” para execução
das lógicas das aplicações hospedadas (ex.: gerenciamento de
memória, gerenciamento de processos e threads, carregamento de
programas de disco para memória quando necessários, parada,
iniciação e execução de cópias de programas, balanceamento de
iniciação e execução de cópias de programas, balanceamento de
carga, tolerância a falhas, monitoração, gerenciamento,
processamento de transações distribuídas, distribuição remota de
programas, acessos otimizados a programas da aplicação a partir
de clientes ou servidores externos).
Provêm também interfaces para diversos formatos de comunicação
(ex.: envio de mensagens de via única ou do tipo
requisição/resposta – request/response).
32. Middleware – Funcionalidades Básicas
3 – Funcionalidades de Plataforma
Os ambiente de desenvolvimento de aplicações evoluíram para
projetos mais sofisticados com a adoção extensiva do padrão de
desenho de projeto (design pattern) de “Inversão de Controle” (IoC -
Inversion of Control pattern) e de outros como a “Injeção de
Dependência” (Dependency Injection pattern).
Há vários frameworks e linguagens de programação que proveem
estes padrões como a principal forma de programação, como os
estes padrões como a principal forma de programação, como os
existentes em JEE, Servlets, Javascript, etc. A maior parte desses
frameworks necessitará de algo como um container para execução
dos programas da aplicação.
Os exemplos mais comumente encontrados de containers de
execução de programas são os Web Browsers (ex.: container de
execução de programas javascript) e Servidores de Aplicação (ex.
container para execução das lógicas de negócio escrita Java
Servlet, ou .net framework, etc.)
34. Middleware - Funcionalidades de
Integração (de Aplicações)
Funcionalidades de integração se tornam necessárias quando se busca a integração
de aplicações que foram desenvolvidas de formas independentes (podendo até
ocorrer de terem sido desenvolvidas utilizando a mesma arquitetura de software e
executarem nos mesmos computadores).
São as funcionalidades que ajudam na reconciliação das diferenças nos desenhos e
tecnologias utilizadas por aplicações que ocorrem inevitavelmente quando há
desenvolvimento de aplicações independentes e acarretam em ambientes
heterogêneos do ponto de vista de tecnologias, arquiteturas e semântica das
heterogêneos do ponto de vista de tecnologias, arquiteturas e semântica das
informações.
Podem abranger os seguintes escopos:
Intra-Empresa – como EAI (Enterprise Application Integration) ou A2A (Application-to-
Application integration) ou
Inter-Empresas – como B2B (Business-to-business).
Produtos que realizam as funções integração usualmente também embutem funções
básicas, como de comunicação, de plataforma e de gerenciamento de dados.
Funções de integração são encontradas em vários produtos, incluindo suítes de
adaptadores, suítes de integração, ESBs, produtos de portais e plataformas de
aplicações.
35. Middleware - Funcionalidades de
Integração (de Aplicações)
1 – Adaptadores Tecnológicos
2 – Transformação
3 – Roteamento Inteligente
4 – Federação de Dados (Data Navigation)
4 – Federação de Dados (Data Navigation)
5 – BPM – Gerenciamento de Processos de Negócio
6 – Engenhos de Regras de Negócio
7 – Gerenciamento de Eventos de Negócio (funções
genéricas de suporte a BAM - Business Activity
Monitoring)
37. Middleware – Funcionalidade de
Pacotes de Aplicações
São as funcionalidades de middleware incluídas nos
pacotes de aplicação ou desenvolvidas
especificamente para lidar com um ou mais pacotes
de aplicação específicos.
Estas NÃO são consideradas como funcionalidades
genéricas de middleware mas um combinação
dessas funcionalidades de middleware com a lógica
específica daquele pacote de aplicação.
38. Middleware – Funcionalidade de
Pacotes de Aplicações
1 – Adaptadores de Aplicações
2 – Pacote de Integração
3 – Monitoração de Atividades de Negócio (BAM -
Business Activity Monitoring)
Business Activity Monitoring)
40. Produtos de middleware
Nas seções anteriores o foco foi nas
funcionalidades de middleware.
Nesta sessão o foco será nos produtos que
implementam as funcionalidades de middleware.
implementam as funcionalidades de middleware.
Serão identificados as categorias de produtos de
middleware e serão elencados os principais
fabricantes que oferecem soluções nestas
categorias.
41. Categorias de Middleware
Há pouco consenso na literatura sobre as
categorias de middleware.
Alguns autores como Colouris e Tanenbaum fizeram
algumas tentativas de classificação dos tipos de
algumas tentativas de classificação dos tipos de
middleware. Ex.: de Colouris na figura a seguir.
42. Middleware – Exemplos e Categorias
conforme Colouris
Coulouris. Distributed Systems Concepts
and Design. 5th Ed.
43. Dificuldades nas Categorizações de
Produtos de Middleware
Parte da dificuldade em tentar encontrar o
posicionamento adequado dos diversos produtos e
estabelecer categorias de middleware se deve ao fato
de existirem inúmeras funções implementadas por
distintos produtos de middleware e ao mesmo tempo
existirem variadas sobreposições entre os produtos de
existirem variadas sobreposições entre os produtos de
middleware.
Outro fato que contribui para a confusão é que alguns
produtos de middleware são produzidos sobre outros
produtos de middleware, ou são pacotes compostos por
produtos de middleware já existentes, enquanto outros
são desenvolvidos utilizando diretamente as funções de
sistema operacional.
44. Categorias de Produtos de
Middleware do Gartner Group
Para ajudar a superar as dificuldades na
categorização dos produtos de middleware adotamos a
estratégia de mapeamento de funcionalidades versus
produtos, como proposto pelo Gartner Group.
Os quadros apresentados nesta seção resumem alguns
Os quadros apresentados nesta seção resumem alguns
desses mapeamentos. Os mapeamentos fornecem uma
avaliação em alto nível de como os produtos de
middleware endereçam as funcionalidades.
Obs.: Nem todos os grupos de produtos de middleware
foram incluídos nos quadros desta seção.
45. Categorias de Produtos de Middleware
Lista completa do Gartner Group
2.2 Communication Middleware Products
2.2.1 Remote Procedure Calls
2.2.2 Message-Oriented Middleware
2.2.3 Multifunction Communication Middleware
2.3 Platform Middleware Products
2.3.1 Transaction Processing Monitors
2.3.2 Object Request Brokers
2.3.3 Application Servers
2.4.3 Enterprise Service Buses
2.4.3.1 Web Services Brokers
2.4.3.2 Multiprotocol ESBs
2.4.4 Web Services Middleware
2.4.4.1 Web Services Controllers
2.4.4.2 Web Services Application Management Tools
2.4.5 Metadata/Transformation Tools
2.4.6 EDI Tools
2.3.3 Application Servers
2.3.4 Web Servers and Web Application Servers
2.3.5 Portal Products
2.3.6 Application Platform Suites
2.3.7 Database Management Systems
2.3.8 Object-Oriented Database Management Systems
2.3.9 XML Database Management Systems
2.4 Integration Middleware Products
2.4.1 Integration Suites
2.4.2 Integration Servers
2.4.2.1 Programmatic Integration Servers
2.4.2.2 Presentation Integration Servers
2.4.6 EDI Tools
2.4.7 Enterprise Information Integration Tools
2.4.8 Content Integration
2.4.9 Transaction Delivery Network Software
2.4.10 Business Process Managers
2.4.11 Business Rule Engines
2.4.12 Business Event Managers
2.5 Integrating Application Products
2.5.1 Adapter Suites
2.5.2 Packaged Integrating Processes
2.5.3 Packaged Composite Applications
2.5.4 Business Activity Monitoring Tools
2.6 Integration as a Service
46. Categorias de produtos de Middleware
Funcionalidades Básicas
2.2 Communication Middleware Products
2.2.1 Remote Procedure Calls
2.2.2 Message-Oriented Middleware
2.2.3 Multifunction Communication Middleware
2.3 Platform Middleware Products
2.3.1 Transaction Processing Monitors
2.3.1 Transaction Processing Monitors
2.3.2 Object Request Brokers
2.3.3 Application Servers
2.3.4 Web Servers and Web Application Servers
2.3.5 Portal Products
2.3.6 Application Platform Suites
2.3.7 Database Management Systems
2.3.8 Object-Oriented Database Management Systems
2.3.9 XML Database Management Systems
47. Categorias de produtos de Middleware
Funcionalidades Básicas
Tipo do Pacote de Software
Funcionalidade de Middleware
Middleware
de
Comunicação
Middleware
de
Plataforma
SGBD
Funcionalidades de Comunicação 4
4
4
4 5
5
5
5 5
5
5
5
Funcionalidades de Gerenciamento de Dados 0
0
0
0 6
6
6
6 4
4
4
4
Funcionalidades de Plataforma 0
0
0
0 5
5
5
5 1
1
1
1
4 - Abrangência alta ou completa
5 - Abrangência de boa à moderada
6 - Abrangência parcial ou limitada
1 - Pouca ou quase nenhuma abrangência
0 - Sem abrangência
48. Categorias de produtos de Middleware
Integration Middleware
2.4 Integration Middleware Products
2.4.1 Integration Suites (inclui os adaptadores tecnológicos)
2.4.2 Integration Servers (Programmatic Integration Servers , Presentation
Integration Servers )
2.4.3 Enterprise Service Buses (Web Services Brokers, Multiprotocol ESBs )
2.4.4 Web Services Middleware (Web Services Controllers, Web Services
Application Management Tools)
Application Management Tools)
2.4.5 Metadata/Transformation Tools
2.4.6 EDI Tools
2.4.7 Enterprise Information Integration Tools
2.4.8 Content Integration
2.4.9 Transaction Delivery Network Software
2.4.10 Business Process Managers
2.4.11 Business Rule Engines
2.4.12 Business Event Managers
Não será detalhado nesta apresentação
49. Categorias de produtos de Middleware
Funcionalidades Básicas
Tipo do Pacote de Software
Funcionalidade de Middleware
Middleware
de Comuni-
cação
Middleware
de
Plataforma
(Application
Platform)
Suites
de
Inte-
gração
ESB Portais Web
Services
Middleware
Transaction
Delivery
Network
Funcionalidades de Comunicação 4 5 4 4 6 4 0
Gerenciamento de Dados 0 6 6 0 6 0 0
Funcionalidades de Plataforma 0 4 1 0 4 0 1
Funcionalidades de Plataforma 0 4 1 0 4 0 1
Adaptadores Tecnológicos 0 5 4 1 6 1 6
Transformação 0 5 4 5 5 1 1
Roteamento Inteligente 0 4 4 4 5 6 1
Ger. de Eventos de Negócio 0 0 6 0 1 0 0
Ger. de Processos de Negócio 0 4 4 0 6 1 0
Adaptadores de Negócio 0 5 4 0 1 1 6
Pacote de Integração 0 1 6 0 6 0 0
Monitoração de Atividade de
Negócio
0 6 6 0 1 0 1
4 - Abrangência alta ou completa 5 - Abrangência de boa à moderada 6 - Abrangência parcial ou limitada
1 - Pouca ou quase nenhuma abrangência 0 - Sem abrangência
50. Categorias de produtos de Middleware
Incluídos em Pacotes de Aplicação
2.5 Integrating Application Products
2.5.1 Adapter Suites
2.5.2 Packaged Integrating Processes
2.5.3 Packaged Composite Applications
2.5.3 Packaged Composite Applications
2.5.4 Business Activity Monitoring Tools
Não será detalhado nesta apresentação
51. Categorias de produtos de Middleware
Funcionalidades Básicas
Tipo do Pacote de
Software
Funcionalidade de
Middleware
Pacotes
de
Aplicação
Pacotes
de
Adapta-
dores
Middleware
de Comuni-
cação
Middleware
de
Plataforma
(Application
Platform)
Suites
de
Integra-
ção
ESB Web
Services
Middleware
Transaction
Delivery
Network
Comunicação 1 1 4 5 4 4 4 0
Ger. de Dados 1 5 0 6 6 0 0 0
Plataforma 5 0 0 4 1 0 0 1
Plataforma 5 0 0 4 1 0 0 1
Adaptadores Tec. 1 4 0 5 4 1 1 6
Transformação 6 5 0 5 4 5 1 1
Roteamento Inteligente 5 6 0 4 4 4 6 1
Ger. de Eventos de Neg. 1 0 0 0 6 0 0 0
Ger. de Processos Neg. 6 0 0 4 4 0 1 0
Adaptadores de Neg. 1 4 0 5 4 0 1 6
Pacote de Integração 6 1 0 1 6 0 0 0
Monitoração de
Atividades de Negócio
1 0 0 6 6 0 0 1
4 - Abrangência alta ou completa 5 - Abrangência de boa à moderada 6 - Abrangência parcial ou limitada
1 - Pouca ou quase nenhuma abrangência 0 - Sem abrangência
52. Categorias de produtos de Middleware
Integration as a Serviço
2.6 Integration as a Service
Não será detalhado nesta apresentação
54. Middleware de Comunicação
Quanto mais integrações ocorrem entre os números
crescentes de sistemas distribuídos, envolvendo sistemas
de diferentes organizações e meios de comunicação
públicos, também são crescentes os requisitos de
segurança como autenticação, autorização, integridade
e privacidade, assim como requisitos de gerenciamento,
e privacidade, assim como requisitos de gerenciamento,
operação, monitoração e rastreamento fim-a-fim.
O uso de middleware parece essencial para projetos de
integração de aplicações, entretanto não há uma
solução única que atenda a todos os tipos de projetos
de integração e nem um padrão de indústria que
venha endereçar todos os cenários possíveis de
integração.
55. Middleware de Comunicação
O middeware de comunicação pode estar
disponível na forma de pacotes isolados de
middleware de comunicação, como MOMs, ou
Podem também compor pacotes de middleware
Podem também compor pacotes de middleware
mais abrangentes como os servidores de aplicação,
suítes de integração, produtos ESB (Enterprise
Service Bus), Pacotes de execução de aplicações,
software de gerenciamento de serviços Web.
56. Produtos de Middleware de
Comunicação
1 - Remote Procedure Calls
2 - Message-Oriented Middleware
3 - Multifunction Communication Middleware
57. Produtos de Middleware
1 - Remote Procedure Calls
RPC – Remote Procere Calls – Chamada de Procedimento Remoto
Foi uma das primeiras formas de middleware utilizado para comunicação entre processos que
surgiram nos ambiente de plataforma abertas, como, nos sistemas UNIX.
Entretanto o RPC nunca veio a se tornar uma forma predominante de desenvolvimento de
aplicações distribuídas e nem um middleware independente. Pouca aplicações atualmente
estão escritas com o uso “direto” de RPC. Entretanto é amplamente utilizado como uma
camada embutida em outros produtos. RPCs também são importantes como precursores dos
ORBs (Objet Request Broker), do Java RMI (Remote Method Invocation) dos Servidores de
Aplicação e do SOAP RPC nas plataformas de serviços da Web.
Aplicação e do SOAP RPC nas plataformas de serviços da Web.
O RPC original foi o NFS RPC da Sun Microsystems, também chamado de Open Network
Computing (ONC) RPC ou o Transport-Independent RPC em suas várias implementações.
Ainda está disponível na maioria dos sistemas operacionais em conjunto com o NFS, como
extensão do pacote TCP/IP apesar do pouco interesse comercial atualmente existente.
Um outro conhecido RPC foi o DCE (Distributed Computer Environment) RPC do Open Group.
Ainda está disponível na IBM e em outros fornecedores como uma cama de sistema embutido
em outros produtos para suporte a sistemas de nível mais alto. O MSRPC da microsoft, é uma
versão proprietária do DCE RPC, e é utilizado como camada básica para outras camadas de
middleware como o COM distribuído (DCOM) e o COM+.
58. Produtos de Middleware
2 - Message-Oriented Middleware
MOM – Message-Oriented Middleware – Middleware Orientado a Mensagens
Proveem serviços de comunicação de programa-a-programa SEM a necessidade
de estabelecimento de uma conexão entre a origem e o destinatário. Também
camada de comunicação com baixo acoplamento (comunicação loosely-coupled).
São utilizados para propósito de comunicação intra-aplicação ou inter-aplicação.
As interações implementadas com MOM pode ser totalmente assíncronas
(unidirecional do tipo store-and-forward) ou parcialmente síncronas (entrega
imediata unidirecional ou bidirecional do tipo request/reply).
(unidirecional do tipo store-and-forward) ou parcialmente síncronas (entrega
imediata unidirecional ou bidirecional do tipo request/reply).
As funcionalidade mais fortes do MOM são:
Comunicação sem conexão (comunicação loosely coupled)
Mecanismos de fila de mensagens (store-and-foward)
Entrega garantida
Suporte a vários ambientes (roda em vários sistemas operacionais)
Em alguns casos, implementam enderaçamento baseada em conteúdo (ex., cominicação do
tipo publish/subscribe).
Diferentemene de RPC, suportam entrega um-para-muitos, muitos-para-um e muitos-para-
muitos.
59. Produtos de Middleware
2 - Message-Oriented Middleware
Complementa servidores de aplicação provendo
funcionalidades que estão faltando ou não estão bem
suportadas por RPC ou outros mecanismos de
comunicação orientados a conexão, como COM+,
CORBA, e SOAP RPC.
Os servidores de aplicação baseados em JEE e a
Os servidores de aplicação baseados em JEE e a
maioria das suítes de integração incluem serviços
MOM, frequentemente baseados no padrão JMS (Java
Message Service).
Produtos isolados de MOM também estão disponíveis.
O produtos de middleware de comunicação mais
conhecidos atualmente no mercado são os MOM.
60. Produtos de Middleware
2 - Message-Oriented Middleware
Alguns padrões relacinados MOM:
JMS
É uma especificação padrão de API da
linguagem Java para middleware orientado à
mensagens.
mensagens.
AMQP
O AMQP (Advanced Message Queuing Protocol ) é um
padrão aprovado pelo OASIS (Organization for the
Advancement of Structured Information Standards) e
pelo ISO (International Organization for
Standardization) .
61. Produtos de Middleware
2 - Message-Oriented Middleware
Exemplos de MOM incluem:
IBM's WebSphere MQ (general purpose)
Fiorano Software's FioranoMQ (designed for JMS)
IIT's SwiftMQ (designed for JMS)
Microsoft Message Queue (MSMQ) Services (general purpose)
Oracle's Advanced Queuing (AQ) (general purpose)
Oracle's Advanced Queuing (AQ) (general purpose)
Sonic Software's SonicMQ (designed for JMS)
Softwired's iBus (designed for JMS)
TIBCO Software's Enterprise JMS, Rendezvous and SmartSockets
(real time, highly scalable)
WebMethods' JMS+
RabittMQ (open source)
62. Produtos de Middleware
3 - Multifunction Communication
Middleware de multi-funções de comunicação.
São pacotes de software contendo vários serviços
como serviços MOM e outros serviços de
comunicação relacionados.
comunicação relacionados.
Exemplo:
Software AG's EntireX Message Broker and EntireX
DCOM
64. Middleware de Plataforma
Middleware de Plataforma são mais conhecidos como
“Servidores de Aplicação” (J2EE Servlet, J2EE Completo,
.NET Framework/COM+, NodeJS frameworks).
Anteriormente, vários outros produtos poderiam se
posicionar como middleware de plataforma. Ex.: Monitores
de Transações em Mainframes ou Linux (TPMs),
de Transações em Mainframes ou Linux (TPMs),
implementações estendidas de RPC (remote procedure call),
ORBs (Object Request Broker), Stored Precedures em SGBDR
(Sistema Gerenciador de Banco de Dados Relacional),
plataformas proprietárias de desenvolvimento e linguagens
de quarta geração (4GL). São todos exemplos de
middleware de plataforma posicionados sobre o sistema
operacional como um container de aplicação e o meio de
comunicação entre os componentes da aplicação.
65. Produtos de Middleware de
Plataforma
1 – Monitores de Transações (Monitores de TP )
2 – ORBs - Object Request Brokers
3 – Servidores de Aplicação (Application Servers)
4 – Servidores Web (Web Servers)
4 – Servidores Web (Web Servers)
66. 1 – Monitores de Transações
(Monitores de TP )
Monitores de Transação ou Monitores de TP (Transaction Processing).
As primeiras formas de middlewares com funções de plataforma foram o monitores
de TP nos mainframes. Produtos como o CICS e IMS da IBM e o TIP da Unisys foram
utilizados em mainframes desde o final dos anos 1960.
Versões baseadas em sistemas abertos, unix, como o Tuxedo da BEA, o “Top End
transaction” da NCR Corps e o Encina da IBM foram lançadas nos anos 1980.
O modelo de programação destes produtos é proprietário e veem perdendo
espaço para modelos mais modernos e tecnologias baseadas em servidores de
O modelo de programação destes produtos é proprietário e veem perdendo
espaço para modelos mais modernos e tecnologias baseadas em servidores de
aplicação que normalmente já proveem funcionalidades de transações distribuídas
incluídas.
Alguns exemplos de Monitores de TP:
BEA's Tuxedo
Hitachi Computer Products' Open TP1
Honeywell/Bull's TP8
IBM's CICS, IMS, TPF and TxSeries
Siemens' openUTM
Unisys' TIP
67. 2 – ORBs - Object Request Brokers
ORBs também são considerados middleware de plataforma.
Incluem a ativação de programas o que a maior parte dos middlewares de RPC não oferecem.
ORBs baseados nas especificações completas CORBA são também monitores de TP com para o modelo de
programação orientada a objetos.
Incluem os serviços de ativação e comunicação particularmente necessários ao modelo orientado a objetos.
Durante o período de 1994 a 1998, os fabricantes de ORBS como IONA Technologies, Inprise, IBM e
Microsoft (COM) adicionaram em seus ORBs a função de gerenciamento de transações e outras
funcionalidades encontradas nos tradicionais monitores de TP. Desta forma, os produtos ORBs evoluíram
para monitores de TP orientados a objeto (monitores OTP). Da mesma forma que o monitores de TP
para monitores de TP orientados a objeto (monitores OTP). Da mesma forma que o monitores de TP
também adicionaram interfaces para que se transformassem em monitores de OTP.
O CORBA (OMG – Object Management Group) emergiu como um padrão largamente difundido de
modelo de programação de objetos distribuídos e especificação para os ORBs e monitores de OTP.
Exemplos de middleware de plataforma orientados a objetos (ORBs) include:
BEA Tuxedo 8 (includes the former M2 CORBA ORB)
Borland's Enterprise Server, VisiBroker edition
Hitachi's TP Broker
IONA Technologies' Orbix
Microsoft's COM/COM+ and .NET Framework/Enterprise Services
Sybase's EAServer (formerly Jaguar, includes a CORBA ORB)
68. Produtos de Middleware
RMI - (Remote Method Invocation)
O RMI (Remote Method Invocation), invocação de método remoto, é uma interface de
programação que permite a execução de chamadas remotas no estilo RPC em aplicações
desenvolvidas em Java.
Através da utilização da arquitetura RMI, é possível que um objeto ativo em uma máquina
virtual Java possa interagir com objetos de outras máquinas virtuais Java, independentemente
da localização dessas máquinas virtuais.
É uma das abordagens da plataforma Java para prover as funcionalidades de uma
plataforma de objetos distribuídos.
Esse sistema de objetos distribuídos faz parte do núcleo básico de Java desde a
versão JDK 1.1, com sua API sendo especificada através do pacote java.rmi e seus
subpacotes.
A API RMI fornece ferramentas para que seja possível ao programador desenvolver uma
aplicação sem se preocupar com detalhes de comunicação entre os diversos possíveis
elementos (hosts) de um sistema
O modelo de programação do pacote java.rmi exige que um programa faça o papel de
servidor de forma similar a um ORB RMI. Pode fazer uso de um ORB RMI ou CORBA para
apoiar esta função.
Servidores de aplicação modernos que implementam o JEE, normalmente abrangem
funcionalidades de ORBs e possuem adaptadores como o IIOP/CORBA.
https://pt.wikipedia.org/wiki/RMI
69. 3 – Servidores de Aplicação
(Application Servers)
Um servidor de aplicação é considerado uma forma mais moderna
de middleware de plataforma. É uma camada de software que
reside entre a aplicação e todos os recursos externos que necessita,
como SGBDs, serviços de comunicação e serviços de internet.
Em tempo de execução, o servidor de aplicação age como um
container que hospeda a lógica de negócio da aplicação e facilita
o acesso e a execução da aplicação.
o acesso e a execução da aplicação.
O Servidor de Aplicação deve conseguir lida com as situações:
Tráfego variável e de diversas requisições concorrentes de usuários
Falhas de hardware e software
Aplicação distribuída em larga escala
Heterogeneidade de dados e de recursos computacionais
70. 3 – Servidores de Aplicação
(Application Servers)
Um servidor de aplicação também deve suportar múltiplas aplicações, múltiplos
desenhos de aplicação, múltiplas linguagens e frameworks de programação
Alguns servidores de aplicação implementam modelos padrões de programação
de aplicações, como o JEE enquanto outros são totalmente proprietários.
Alguns servidores de aplicação proprietários são empacotados em aplicações (ex.:
SAP BASIS), em portais, em soluções de e-commerce e outros produtos de software
e não são oferecidos como produtos isolados.
Um servidor de aplicação de alto nível chamado normalmente de “Servidor de
Um servidor de aplicação de alto nível chamado normalmente de “Servidor de
Aplicação versão Enterprise” garante os níveis de desempenho, integridade e
disponibilidade esperados através de funcionalidades como:
Clusterização,
Tolerância a falhas,
Multiplexação,
Controle de fluxo,
Transformação entre outros.
Servidores de aplicação modernos normalmente incluem MOM e funções de acesso
a SGBDs
71. Atualmente demos dois tipos bem conhecidos de servidores de
aplicação da tecnologia Java
Servidores de Aplicação Container Servlet
Implementa especificações: Servlet 4.0, JSP 2.3, EL 3.0, WebSocket 1.1
and JASPIC 1.1 (versões requeridas pelo Java EE 8 platform).
Ex.: Tomcat, Jetty
3 – Servidores de Aplicação
(Application Servers)
Servidores de Aplicação JEE
Implementa especificações
Java Platform, Enterprise Edition (EE) Standards
Web Services Standards and APIs
Additional Standards and APIs
Ex.: Wildfly, Jboss, Websphere, Glassfish, WebLogic, ...
Obs.: Estes produtos serão exemplificados em detalhas em seções
específicas mais a frente neste documento.
72. 3 – Servidores de Aplicação
(Application Servers)
Lista de exemplos fornecedores de Servidores de Aplicação Empresariais:
BEA
Borland
Fujitsu
Fujitsu Siemens
Hitachi
IBM
IONA
Ironflare
Ironflare
JBoss Group
Macromedia
Microsoft
Novell
ObjectWeb Consortium
Oracle
Pramati
SAP
Sun
Sybase
73. 4 – Servidores Web (Web Servers)
Os servidores Web simples evoluíram de páginas
estáticas e de extensões CGI para execução de
programas e lógicas de negócio. Desta forma, são
considerados como middleware de plataforma
simples.
simples.
Exemplos de servidores Web que hospedam
programas:
Apache Software Foundation HTTP Server com Tomcat
Microsoft IIS
Sun Java System Web Server
75. Servidor Web: Apache
O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP
Server, ou simplesmente: Apache) é o servidor web livre mais utilizado do
mundo. Foi criado em 1995 por Rob McCool, então funcionário do NCSA
(National Center for Supercomputing Applications). Em uma pesquisa
realizada em dezembro de 2007[1], foi constatado que a utilização do
Apache representa cerca de 47.20% dos servidores ativos no mundo. Em
maio de 2010 [2], o Apache serviu aproximadamente 54,68% de todos os
sites e mais de 66% dos milhões de sites mais movimentados.
sites e mais de 66% dos milhões de sites mais movimentados.
76. Servidor Web: NGINX
nginx [engine x] é um servidor de: HTTP, proxy reverso,
proxy de email, e proxy genérico TCP/UDP.
De acordo com a Netcraft, o nginx foi responsável pelo
processamento em 29.43% dos sites mais intensos em
outubro de 2017. Alguns incluem: Dropbox, Netflix,
outubro de 2017. Alguns incluem: Dropbox, Netflix,
Wordpress.com, FastMail.FM.
77. Servidor Load Balancer Web: HAProxy
HAProxy is a free, very fast and reliable solution offering high
availability, load balancing, and proxying for TCP and HTTP-based
applications. It is particularly suited for very high traffic web sites
and powers quite a number of the world's most visited ones. Over
the years it has become the de-facto standard opensource load
balancer, is now shipped with most mainstream Linux distributions,
and is often deployed by default in cloud platforms. Since it does
and is often deployed by default in cloud platforms. Since it does
not advertise itself, we only know it's used when the admins report it.
78. Servidor de aplicação servlet: Tomcat
Apache Tomcat is an open-source web server and
servlet container developed by the Apache Software
Foundation (ASF). Tomcat implements several Java EE
specifications including Java Servlet, JavaServer Pages
(JSP), Java EL, and WebSocket, and provides a pure
Java HTTP web server environment for Java code to
Java HTTP web server environment for Java code to
run in.
79. Servidor de aplicação servlet: Jetty
Jetty is a Java HTTP (Web) server and Java Servlet
container. While Web Servers are usually associated
with serving documents to people, Jetty is now often
used for machine to machine communications, usually
within larger software frameworks. Jetty is developed
as a free and open source project as part of the Eclipse
as a free and open source project as part of the Eclipse
Foundation.
80. Servidor de Aplicação: Glassfish
GlassFish is an open-source application server project
started by Sun Microsystems for the Java EE platform
and now sponsored by Oracle Corporation. The
supported version is called Oracle GlassFish Server.
81. Servidor de Aplicação: Weblogic
Oracle WebLogic Server is a Java EE application
server currently developed by Oracle Corporation.
Oracle acquired WebLogic Server when it
purchased BEA Systems in 2008.
82. Servidores de Aplicação: WildFly e
JBoss
WildFly, formerly known as JBoss AS, or simply JBoss, is
an application server authored by JBoss, now
developed by Red Hat. WildFly is written in Java, and
implements the Java Platform, Enterprise Edition (Java
EE) specification. It runs on multiple platforms.
83. Servidor de Aplicação: WebSphere
WebSphere Application Server (WAS) is a software
product that performs the role of a web application
server. More specifically, it is a software framework
and middleware that hosts Java based web
applications. It is the flagship product within IBM's
applications. It is the flagship product within IBM's
WebSphere software suite.
84. Servidor de Aplicação: Geronimo
Apache Geronimo is an open source application server
developed by the Apache Software Foundation and
distributed under the Apache license.
85. Servidor de Aplicação .Net
Framework: IIS
Internet Information Services (IIS, formerly Internet Information
Server) is an extensible web server created by Microsoft for use
with Windows NT family. IIS supports HTTP, HTTPS, FTP, FTPS, SMTP
and NNTP.
IIS 6.0 is basically a web server, with an extension, aspnet_isapi.dll,
which handles the ASP.NET functionality. in IIS 7.0 and above, the
.NET handling has been integrated into the webserver itself, and IIS
.NET handling has been integrated into the webserver itself, and IIS
might be considered an application server, hosting .NET
applications (ASP.NET).
86. Servidor de Aplicação / Engenho
Javascript de Servidor: NodeJS
Node.js® is a JavaScript runtime built on Chrome's V8
JavaScript engine. Node.js uses an event-driven, non-
blocking I/O model that makes it lightweight and
efficient. Node.js' package ecosystem, npm, is the
largest ecosystem of open source libraries in the world.
88. Servidores Web e de Aplicação -
Especificações que implementam
Servidor Web (HTTP)
Especificações: HTML, Javascript, ...
Ex.: Apache
Servidores de Aplicação Container Servlet
Especificações: Servlet 4.0, JSP 2.3, EL 3.0, WebSocket 1.1 and
JASPIC 1.1 (versões requeridas pelo Java EE 8 platform).
JASPIC 1.1 (versões requeridas pelo Java EE 8 platform).
Ex.: Tomcat
Servidores de Aplicação Java EE
Java Platform, Enterprise Edition (EE) Standards
Web Services Standards and APIs
Additional Standards and APIs
Ex.: Wildfly, Jboss, Websphere, Glassfish, WebLogic, ...
89. Servidor de Aplicações Container
Servlet
Especificações
Tomcat
9.0.x
Tomcat
8.5.x
Tomcat 8.0.x
(superseded)
Tomcat 7.0.x
Tomcat
6.0.x
(archived)
Tomcat
5.5.x
(archived)
Tomcat
4.1.x
(archived)
Tomcat 3.3.x
(archived)
Servlet Spec 4.0 3.1 3.1 3.0 2.5 2.4 2.3 2.2
JSP Spec 2.3 2.3 2.3 2.2 2.1 2.0 1.2 1.1
EL Spec 3.0 3.0 3.0 2.2 2.1 N/A N/A N/A
WebSocket Spec 1.1 1.1 1.1 1.1 N/A N/A N/A N/A
JASPIC Spec 1.1 1.1 N/A N/A N/A N/A N/A N/A
Supported Java
Versions
8 and
later
7 and
later 7 and later
6 and later (7 and
later for
WebSocket) 5 and later 1.4 and later
1.3 and
later 1.1 and later
91. ...
Technology/Specification JBoss EAP 7 JBoss EAP 6 JBoss EAP 5 JBoss EAP 4.3
Web Services Metadata for the Java Platform 2.1 2.1 2.0 2.0
Java API for XML Web Services (JAX-WS) 2.2 2.2 2.1 2.0
Debugging Support for Other Languages 1.0 1.0 1.0 -
Standard Tag Library for JavaServer Pages (JSTL) 1.2 1.2 1.2 1.2
Common Annotations for the Java Platform 1.2 1.1 1.0 1.0
Java Architecture for XML Binding (JAXB) 2.2 2.2 2.0 2.0
Java Architecture for XML Binding (JAXB) 2.2 2.2 2.0 2.0
Java API for RESTful Web Services (JAX-RS) 2.0 1.1 1.0 -
Java API for XML Registries (JAXR) 1.0 1.0 1.0 1.0
Contexts and Dependency Injection for Java (CDI) 1.1 1.0 - -
Bean Validation 1.1 1.0 - -
96. Paradigmas de Sistemas Distribuídos
Programação de Aplicações Dist.
O conjunto de interfaces, API´s e funcionalidades providas por um middleware
básico ou de integração ditará as normas de um modelo de programação
distribuído (ou seja, o paradigma da aplicação distribuída).
Exemplos especificações e API´s:
J2EE
Web Services
CORBA
RMI
.NET/COM+
IBM-CICS
Desta forma, o middleware utilizado na implementação da aplicação distribuída
definirá o estilo e as capacidades de programação disponíveis para o seu
desenvolvimento.
O conjunto de funcionalidades de um middleware pode ser visto como “a tecnologia
habilitadora de um modelo de programação de aplicação distribuída .
ou seja, Definirá o paradigma de sistema distribuído.
97. Paradigmas de Sistemas Distribuídos
Programação de Aplicações Dist.
Tanenbaum (2007), cita os três seguintes paradigmas de Sistemas Distribuídos
(SDs):
SDs Baseados em Objetos
Paradigma de programação baseado no modelo de objetos distribuídos.
Utiliza tecnologias que proveem transparência de localização de objetos distribuídos.
Utiliza ORBs ou servidores de aplicação baseados em objetos como middlewares de plataforma
Ex.: Tecnologias JEE, RPC, RMI, CORBA, COM (DCOM, COM+), etc.
SDs Baseados na Web
SDs Baseados na Web
Paradigma de programação baseado em comunicação através de tecnologias da Internet.
Utiliza tecnologias que proveem transparência de localização baseadas na Internet como uso de
URLs.
Utiliza middleware que implementam tecnologias de “Serviços Baseados na Web” e “Web
Services”.
SDs Baseados em coordenação
Paradigma de programação baseado em orquestração de processos de negócio.
Tecnologias baseadas em middleware de funcionalidades de integração de aplicações (EAI –
Enterprise Application Interface). Ex.: Adaptadores, Transformadores, Roteadores inteligentes, BPM
(Business Process Management), etc.
98. SDs Baseados na Web
Dois formatos ou tecnologias utilizados pelo
paradigma de sistemas distribuídos baseados na
Web:
“Serviços Baseados na Web” (Web-Based Services)
“Serviços Baseados na Web” (Web-Based Services)
Web Services
99. Serviços Baseados na Web
É considerado um “Serviço Baseado na Web” se comunicação possuir as seguintes
características:
O proxy da interface para o middleware de comunicação “escutar ou dialogas com a
internet utilizando URI (Uniform Resource Identifier) e um protocolo de aplicação padrão
da internet (ex.: HTTP, SMTP), e
For estruturada como um serviço de acordo com os princípios de SOA (service-oriented
architecture).
Tipicamente , a mensagem é codifica em algum padrão de internete como: HTML or
Tipicamente , a mensagem é codifica em algum padrão de internete como: HTML or
XML. A uma crescente utilização do JSON como um padrão de fato.
Como o desenho de muitos serviços que não são baseados na Web são tipicamente
o mesmo que o desenho dos serviços baseados na Web, se diferenciando apenas
na interface, a maioria pode ser convertida para um “Serviço Baseado na Web”
simplesmente acrescentando uma versão Web de proxy para a interface do
serviço.
Entretanto, “Serviços Baseados na Web” são acessados por mecanismos de
transporte da Web com baixo acoplamento. Alguns serviços são desenhados com
alto acoplamento de acesso, como serviços baseados em CORBA, e precisarão ser
redesenhados para trabalhar com um baixo acoplamento como os serviços
baseados na Web.
100. Web Services
Web Services incluem os Serviços Baseados na Web que utilizam os
padrões relacionados ao XML, incluindo: SOAP, WSDL (Web Service
Description Language) e UDDI (Universal Description, Discovery and
Integration).
SOAP é um padrão de formato e protocolo para troca de informações entre
programas
WSDL é uma sintaxe para definição de interface (da mesma forma que o IDL
para CORBA)
WSDL é uma sintaxe para definição de interface (da mesma forma que o IDL
para CORBA)
UDDI define como utilizar um serviço de diretório para registrar e recuperar
Web Services
A intenção inicial dos Web-Services era fornecer um acesso basedo em
HTTP para aplicações. Entretanto, Web Services podem ser executados
sobre outras formas de transporte não-HTTP, com o uso de MOM ou de
outros protocolos como o de email (SMTP).
As corporações não devem assumir que todos os Web Services utilizarão
protocolos da internet. Entretanto, Web-Services bem desenhados devem
poder ser utilizados tanto em SOA quanto em arquitetura orientada a
evento.