SlideShare uma empresa Scribd logo
1 de 101
Baixar para ler offline
MIDDLEWARE’S
BÁSICOS
Sistemas Distribuídos
2018.2
Prof. Marcelo Lucas
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
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.
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
Definição de Middleware e suas
funcionalidades
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.
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.
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/
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.
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.
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.
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.
Grupos de Funcionalidades dos
Middleware’s
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.
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.
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
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.
Middleware - Funcionalidades
Básicas
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
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
Middleware – Funcionalidades Básicas
 1 - Funcionalidades de Comunicação
 2 - Funcionalidades de Gerenciamento de Dados
 3 - Funcionalidades de Plataforma
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
Middleware – Funcionalidades Básicas
1 – Funcionalidades de Comunicação
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).
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)
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.
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.
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.
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
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
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).
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.)
Middleware - Funcionalidades de
Integração (de Aplicações)
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.
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)
Middleware – Funcionalidades de
Pacotes de Aplicações
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.
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)
Produtos de Middleware
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.
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.
Middleware – Exemplos e Categorias
conforme Colouris
Coulouris. Distributed Systems Concepts
and Design. 5th Ed.
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.
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.
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
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
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
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
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
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
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
Categorias de produtos de Middleware
Integration as a Serviço
2.6 Integration as a Service
Não será detalhado nesta apresentação
Produtos de Middleware de
Comunicação
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.
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.
Produtos de Middleware de
Comunicação
1 - Remote Procedure Calls
2 - Message-Oriented Middleware
3 - Multifunction Communication Middleware
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+.
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.
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.
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) .
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)
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
Produtos de Middleware de
Plataforma
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.
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)
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
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)
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
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
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
 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.
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
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
Exemplos de Servidores Web e
Servidores de Aplicação
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
Especificações Java Implementadas
por Servidores de Aplicação
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, ...
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
Java Platform, Enterprise Edition (EE)
Standards
Technology/Specification JBoss EAP 7 JBoss EAP 6 JBoss EAP 5 JBoss EAP 4.3
Java EE 7.0 6.0 5.0 1.4
Java API for XML-based RPC (JAX-RPC) - 1.1 1.1 1.1
SOAP with Attachments API for Java (SAAJ) 1.3 1.3 1.3 1.3
Java Servlet 3.1 3.0 2.5 2.4
JavaServer Faces (JSF) 2.2 2.0 1.2 1.2
JavaServer Pages  Expression Language (JSP) 2.3 2.2 2.1 2.1
JavaServer Pages  Expression Language (JSP) 2.3 2.2 2.1 2.1
Java Transaction API (JTA) 1.2 1.1 1.1 1.0
Java Authorization Contract for Containers (JACC) 1.4 1.4 1.1 1.0
Enterprise JavaBeans with Interceptors 1.1 (EJB) 3.2,3.1, 3.0, 2.1, 2.0 3.1,3.0,2.1,2.0 3.0,2.1,2.0 3.0,2.1,2.0
Java EE Connector Architecture (JCA) 1.7 1.6 1.5 1.5
J2EE Management 1.1 1.1 1.0 1.0
Enterprise Web Services 1.3 1.3 1.2 1.1
Java EE Application Deployment 1.2 1.2 1.2 1.1
JavaMail 1.5 1.4 1.4 1.4
Java Message Service (JMS) 2.0 1.1 1.1 1.1
Java Persistence (JPA) 2.1 2.0 1.0 1.0
...
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 - -
Web Services Standards and APIs
Technology/Specification JBoss EAP 7.0 JBoss EAP 6.0 JBoss EAP 5.1 JBoss EAP 4.3
Simple Object Access Protocol (SOAP) 1.1, 12 1.1, 1.2 1.1, 1.2 1.1, 1.2
SOAP Message Transmission Optimization Mechanism
(MTOM)
Yes Yes Yes Yes
XML-Binary Optimized Packaging (XOP) Yes Yes Yes Yes
Web Services Description Language (WSDL) 1.1 1.1 1.1 1.1
WS-I Basic Profile 1.1, 1.2, 2.0 1.1, 1.2, 2.0 1.1 1.1
WS-I Basic Security Profile 1.1 1.1[1] - -
WS-Addressing 1.0 1.0 1.0 1.0
WS-Reliable Messaging 1.0 1.0 1.0[2] -
WS-Security 1.1 1.1 1.1[2], 1.0 1.0
WS-Security Core 1.1 1.1 1.1[2] -
WS-Security Username Token Profile 1.1 1.1 1.1[2], 1.0 1.0
WS-Security X.509 Token Profile 1.1 1.1 1.1[2], 1.0 1.0
WS-Security SOAP with Attachments Token Profile 1.1 1.1 1.1[2] -
WS-Security SOAP Message Security 1.1 1.1 1.0 -
[1] Certified starting with 6.3.0. [2] Included in optional JBoss WS Apache CXF. [3] PicketLink Federation was Technology Preview in EAP 5.1.1.
…
Technology/Specification JBoss EAP 7.0 JBoss EAP 6.0 JBoss EAP 5.1 JBoss EAP 4.3
Universal Description Discovery and Integration
(UDDI) Client
2.0, 3.0 2.0, 3.0 2.0 2.0
Java API for XML Web Services Addressing (JAX-
WSA)[JSR-261]
1.0 1.0 1.0 1.0
WS-Atomic Transactions 1.1 1.1 1.1 -
Fast Infoset (FI - ISO/IEC 24824-1, ITU-T Rec. X.891) Yes Yes Yes -
WS-Business Activity 1.1 1.1 1.1 -
WS-Business Activity 1.1 1.1 1.1 -
WS-Coordination 1.1 1.1 1.1 -
WS-Security Policy 1.3 1.3 1.3[2] -
WS-Policy 1.5 1.5 1.5[2] -
WS-Policy Attachment 1.5 1.5 1.5[2] -
WS-I Attachments Profile 1.0 1.0 1.0 1.0
WS-Eventing - - - -
WS-Trust 1.3 1.3 1.3[2] -
Security Assertion Markup Language (SAML) 2.0 2.0 2.0[3] -
XACML 2.0 2.0 2.0 -
[1] Certified starting with 6.3.0. [2] Included in optional JBoss WS Apache CXF. [3] PicketLink Federation was Technology Preview in EAP 5.1.1.
Additional Standards and APIs
Technology/Specification JBoss EAP 7.0 JBoss EAP 6.0 JBoss EAP 5.1 JBoss EAP 4.3
Java Transaction Service (JTS) 1.0 1.0 1.0 -
JDBC [JSR-054] [4] [4] 3.0, 4.0 3.0
CORBA 2.3.1 2.3.1 2.3.1 2.3.1
Streaming API for XML Processing (StAX) [JSR-173] [4] [4] 1.0 1.0
JavaBeans Activation Framework (JAF) [JSR-925] [4] [4] 1.1 1.1
Java Management Extensions (JMX)[JSR-255] [4] [4] 2.0 -
Java Management Extensions (JMX)[JSR-255] [4] [4] 2.0 -
Java Database Connectivity (JDBC) [JSR-221] [4] [4] 4.0 4.0
Java API for XML Processing (JAXP) [JSR-205] [4] [4] 1.3 -
SPNEGO/Kerberos Yes Yes Yes -
[4] Now implemented via Java SE.
Paradigmas para Programação de Aplicações
Distribuídas
Paradigmas de Sistemas Distribuídos
Distribuídas
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.
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.
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
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.
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.
FIM

Mais conteúdo relacionado

Semelhante a Middleware Básicos

Integração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma LivreIntegração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma LivreMauro Tapajós
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...Ramon Mayor Martins
 
Middlewares para TV Digital Terreste
Middlewares para TV Digital TerresteMiddlewares para TV Digital Terreste
Middlewares para TV Digital TerresteElaine Cecília Gatto
 
Dicionário multimedia
Dicionário multimediaDicionário multimedia
Dicionário multimediaPaula Lopes
 
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Mauro Tapajós
 
Uma Análise dos Sistemas de Comunicação IP
Uma Análise dos Sistemas de Comunicação IPUma Análise dos Sistemas de Comunicação IP
Uma Análise dos Sistemas de Comunicação IPIP10
 
Apresentação Pulse 2 e LEP
Apresentação Pulse 2 e LEP Apresentação Pulse 2 e LEP
Apresentação Pulse 2 e LEP Vasco Silva
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionaisrodfernandes
 
Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Valdeir Frizzera
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreMauro Tapajós
 
Panorama Atual e Tendências do Desenvolvimento de Sistemas para Internet
Panorama Atual e Tendências do Desenvolvimento de Sistemas para InternetPanorama Atual e Tendências do Desenvolvimento de Sistemas para Internet
Panorama Atual e Tendências do Desenvolvimento de Sistemas para InternetElvis Fusco
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
OUTDOOR171
OUTDOOR171OUTDOOR171
OUTDOOR171nilojr90
 

Semelhante a Middleware Básicos (20)

Middlewares
MiddlewaresMiddlewares
Middlewares
 
Integração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma LivreIntegração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma Livre
 
TRABALHO DE TI
TRABALHO DE TITRABALHO DE TI
TRABALHO DE TI
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
 
Nagios
NagiosNagios
Nagios
 
Gr spice wrks
Gr spice wrksGr spice wrks
Gr spice wrks
 
Middlewares para TV Digital Terreste
Middlewares para TV Digital TerresteMiddlewares para TV Digital Terreste
Middlewares para TV Digital Terreste
 
Dicionário multimedia
Dicionário multimediaDicionário multimedia
Dicionário multimedia
 
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
 
Uma Análise dos Sistemas de Comunicação IP
Uma Análise dos Sistemas de Comunicação IPUma Análise dos Sistemas de Comunicação IP
Uma Análise dos Sistemas de Comunicação IP
 
Apresentação Pulse 2 e LEP
Apresentação Pulse 2 e LEP Apresentação Pulse 2 e LEP
Apresentação Pulse 2 e LEP
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionais
 
Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livre
 
Panorama Atual e Tendências do Desenvolvimento de Sistemas para Internet
Panorama Atual e Tendências do Desenvolvimento de Sistemas para InternetPanorama Atual e Tendências do Desenvolvimento de Sistemas para Internet
Panorama Atual e Tendências do Desenvolvimento de Sistemas para Internet
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
OUTDOOR171
OUTDOOR171OUTDOOR171
OUTDOOR171
 

Mais de Fabio Apolinario

Introduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdf
Introduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdfIntroduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdf
Introduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdfFabio Apolinario
 
conceitos-e-tecnologias-de-redes
conceitos-e-tecnologias-de-redesconceitos-e-tecnologias-de-redes
conceitos-e-tecnologias-de-redesFabio Apolinario
 
Raciocinio-Logico-Matmatica-Estruturas-Logicas
Raciocinio-Logico-Matmatica-Estruturas-LogicasRaciocinio-Logico-Matmatica-Estruturas-Logicas
Raciocinio-Logico-Matmatica-Estruturas-LogicasFabio Apolinario
 
Homolog net passo-a-passo-intranet-1-0-fev_2010-2
Homolog net passo-a-passo-intranet-1-0-fev_2010-2Homolog net passo-a-passo-intranet-1-0-fev_2010-2
Homolog net passo-a-passo-intranet-1-0-fev_2010-2Fabio Apolinario
 
financas-urbanas-e-municipais
financas-urbanas-e-municipaisfinancas-urbanas-e-municipais
financas-urbanas-e-municipaisFabio Apolinario
 
Estudo de caso (grupo saude 1000) v6
Estudo de caso (grupo saude 1000) v6Estudo de caso (grupo saude 1000) v6
Estudo de caso (grupo saude 1000) v6Fabio Apolinario
 

Mais de Fabio Apolinario (11)

redes-parte-1
redes-parte-1redes-parte-1
redes-parte-1
 
Introduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdf
Introduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdfIntroduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdf
Introduc-a-o-a-Lo-gica-de-Primeira-Ordem.pdf
 
conceitos-e-tecnologias-de-redes
conceitos-e-tecnologias-de-redesconceitos-e-tecnologias-de-redes
conceitos-e-tecnologias-de-redes
 
redes.pdf
redes.pdfredes.pdf
redes.pdf
 
Redes-Parte-II
Redes-Parte-IIRedes-Parte-II
Redes-Parte-II
 
Libreoffice-Calc.pdf
Libreoffice-Calc.pdfLibreoffice-Calc.pdf
Libreoffice-Calc.pdf
 
analise-combinatoria
analise-combinatoriaanalise-combinatoria
analise-combinatoria
 
Raciocinio-Logico-Matmatica-Estruturas-Logicas
Raciocinio-Logico-Matmatica-Estruturas-LogicasRaciocinio-Logico-Matmatica-Estruturas-Logicas
Raciocinio-Logico-Matmatica-Estruturas-Logicas
 
Homolog net passo-a-passo-intranet-1-0-fev_2010-2
Homolog net passo-a-passo-intranet-1-0-fev_2010-2Homolog net passo-a-passo-intranet-1-0-fev_2010-2
Homolog net passo-a-passo-intranet-1-0-fev_2010-2
 
financas-urbanas-e-municipais
financas-urbanas-e-municipaisfinancas-urbanas-e-municipais
financas-urbanas-e-municipais
 
Estudo de caso (grupo saude 1000) v6
Estudo de caso (grupo saude 1000) v6Estudo de caso (grupo saude 1000) v6
Estudo de caso (grupo saude 1000) v6
 

Middleware Básicos

  • 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
  • 5. Definição de Middleware e suas funcionalidades
  • 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.
  • 13. Grupos de Funcionalidades dos Middleware’s
  • 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
  • 23. Middleware – Funcionalidades Básicas 1 – Funcionalidades de Comunicação
  • 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.)
  • 33. Middleware - Funcionalidades de Integração (de Aplicações)
  • 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)
  • 36. Middleware – Funcionalidades de Pacotes de Aplicações
  • 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
  • 53. Produtos de Middleware de Comunicaçã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
  • 63. Produtos de Middleware de Plataforma
  • 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
  • 74. Exemplos de Servidores Web e Servidores de Aplicação
  • 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.
  • 87. Especificações Java Implementadas por Servidores de Aplicação
  • 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
  • 90. Java Platform, Enterprise Edition (EE) Standards Technology/Specification JBoss EAP 7 JBoss EAP 6 JBoss EAP 5 JBoss EAP 4.3 Java EE 7.0 6.0 5.0 1.4 Java API for XML-based RPC (JAX-RPC) - 1.1 1.1 1.1 SOAP with Attachments API for Java (SAAJ) 1.3 1.3 1.3 1.3 Java Servlet 3.1 3.0 2.5 2.4 JavaServer Faces (JSF) 2.2 2.0 1.2 1.2 JavaServer Pages Expression Language (JSP) 2.3 2.2 2.1 2.1 JavaServer Pages Expression Language (JSP) 2.3 2.2 2.1 2.1 Java Transaction API (JTA) 1.2 1.1 1.1 1.0 Java Authorization Contract for Containers (JACC) 1.4 1.4 1.1 1.0 Enterprise JavaBeans with Interceptors 1.1 (EJB) 3.2,3.1, 3.0, 2.1, 2.0 3.1,3.0,2.1,2.0 3.0,2.1,2.0 3.0,2.1,2.0 Java EE Connector Architecture (JCA) 1.7 1.6 1.5 1.5 J2EE Management 1.1 1.1 1.0 1.0 Enterprise Web Services 1.3 1.3 1.2 1.1 Java EE Application Deployment 1.2 1.2 1.2 1.1 JavaMail 1.5 1.4 1.4 1.4 Java Message Service (JMS) 2.0 1.1 1.1 1.1 Java Persistence (JPA) 2.1 2.0 1.0 1.0
  • 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 - -
  • 92. Web Services Standards and APIs Technology/Specification JBoss EAP 7.0 JBoss EAP 6.0 JBoss EAP 5.1 JBoss EAP 4.3 Simple Object Access Protocol (SOAP) 1.1, 12 1.1, 1.2 1.1, 1.2 1.1, 1.2 SOAP Message Transmission Optimization Mechanism (MTOM) Yes Yes Yes Yes XML-Binary Optimized Packaging (XOP) Yes Yes Yes Yes Web Services Description Language (WSDL) 1.1 1.1 1.1 1.1 WS-I Basic Profile 1.1, 1.2, 2.0 1.1, 1.2, 2.0 1.1 1.1 WS-I Basic Security Profile 1.1 1.1[1] - - WS-Addressing 1.0 1.0 1.0 1.0 WS-Reliable Messaging 1.0 1.0 1.0[2] - WS-Security 1.1 1.1 1.1[2], 1.0 1.0 WS-Security Core 1.1 1.1 1.1[2] - WS-Security Username Token Profile 1.1 1.1 1.1[2], 1.0 1.0 WS-Security X.509 Token Profile 1.1 1.1 1.1[2], 1.0 1.0 WS-Security SOAP with Attachments Token Profile 1.1 1.1 1.1[2] - WS-Security SOAP Message Security 1.1 1.1 1.0 - [1] Certified starting with 6.3.0. [2] Included in optional JBoss WS Apache CXF. [3] PicketLink Federation was Technology Preview in EAP 5.1.1.
  • 93. … Technology/Specification JBoss EAP 7.0 JBoss EAP 6.0 JBoss EAP 5.1 JBoss EAP 4.3 Universal Description Discovery and Integration (UDDI) Client 2.0, 3.0 2.0, 3.0 2.0 2.0 Java API for XML Web Services Addressing (JAX- WSA)[JSR-261] 1.0 1.0 1.0 1.0 WS-Atomic Transactions 1.1 1.1 1.1 - Fast Infoset (FI - ISO/IEC 24824-1, ITU-T Rec. X.891) Yes Yes Yes - WS-Business Activity 1.1 1.1 1.1 - WS-Business Activity 1.1 1.1 1.1 - WS-Coordination 1.1 1.1 1.1 - WS-Security Policy 1.3 1.3 1.3[2] - WS-Policy 1.5 1.5 1.5[2] - WS-Policy Attachment 1.5 1.5 1.5[2] - WS-I Attachments Profile 1.0 1.0 1.0 1.0 WS-Eventing - - - - WS-Trust 1.3 1.3 1.3[2] - Security Assertion Markup Language (SAML) 2.0 2.0 2.0[3] - XACML 2.0 2.0 2.0 - [1] Certified starting with 6.3.0. [2] Included in optional JBoss WS Apache CXF. [3] PicketLink Federation was Technology Preview in EAP 5.1.1.
  • 94. Additional Standards and APIs Technology/Specification JBoss EAP 7.0 JBoss EAP 6.0 JBoss EAP 5.1 JBoss EAP 4.3 Java Transaction Service (JTS) 1.0 1.0 1.0 - JDBC [JSR-054] [4] [4] 3.0, 4.0 3.0 CORBA 2.3.1 2.3.1 2.3.1 2.3.1 Streaming API for XML Processing (StAX) [JSR-173] [4] [4] 1.0 1.0 JavaBeans Activation Framework (JAF) [JSR-925] [4] [4] 1.1 1.1 Java Management Extensions (JMX)[JSR-255] [4] [4] 2.0 - Java Management Extensions (JMX)[JSR-255] [4] [4] 2.0 - Java Database Connectivity (JDBC) [JSR-221] [4] [4] 4.0 4.0 Java API for XML Processing (JAXP) [JSR-205] [4] [4] 1.3 - SPNEGO/Kerberos Yes Yes Yes - [4] Now implemented via Java SE.
  • 95. Paradigmas para Programação de Aplicações Distribuídas Paradigmas de Sistemas Distribuídos Distribuídas
  • 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.
  • 101. FIM