Sie sind auf Seite 1von 101

MIDDLEWARE’S

BÁSICOS
Sistemas Distribuídos
Prof. Marcelo Lucas
2018.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
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


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)
 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
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.
 É 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 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
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.
 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
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 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
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
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

Middleware de
Middleware de Middleware de
Gerenciamento de
Comunicação Plataforma
dados

https://www-01.ibm.com/software/info/websphere/partners4/articles/gartner/garwho.html
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=349749&seqNum=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 –
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
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),
 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:
 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
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 Cliente outro

JDBC ODBC

ODBC

MS SQL Oracle MS SQL Oracle


My SQL My SQL
Server SGBDR Server 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) .

Progra-
mas

Aplicações

Servidor de
Aplicação
Rede e Comunicação
Sistemas Operacionais

S.O Hardwares
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
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
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
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)
 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)
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.
 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
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
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
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.4.3 Enterprise Service Buses
2.2.1 Remote Procedure Calls 2.4.3.1 Web Services Brokers
2.2.2 Message-Oriented Middleware 2.4.3.2 Multiprotocol ESBs
2.2.3 Multifunction Communication Middleware 2.4.4 Web Services Middleware
2.3 Platform Middleware Products 2.4.4.1 Web Services Controllers
2.3.1 Transaction Processing Monitors 2.4.4.2 Web Services Application Management Tools
2.3.2 Object Request Brokers 2.4.5 Metadata/Transformation Tools
2.3.3 Application Servers 2.4.6 EDI Tools
2.3.4 Web Servers and Web Application Servers 2.4.7 Enterprise Information Integration Tools
2.3.5 Portal Products 2.4.8 Content Integration
2.3.6 Application Platform Suites 2.4.9 Transaction Delivery Network Software
2.3.7 Database Management Systems 2.4.10 Business Process Managers
2.3.8 Object-Oriented Database Management Systems 2.4.11 Business Rule Engines
2.3.9 XML Database Management Systems 2.4.12 Business Event Managers
2.4 Integration Middleware Products 2.5 Integrating Application Products
2.4.1 Integration Suites 2.5.1 Adapter Suites
2.4.2 Integration Servers 2.5.2 Packaged Integrating Processes
2.4.2.1 Programmatic Integration Servers 2.5.3 Packaged Composite Applications
2.4.2.2 Presentation Integration Servers 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.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 Middleware Middleware SGBD


de de
Comunicação Plataforma
Funcionalidade de Middleware
Funcionalidades de Comunicação 4 5 5
Funcionalidades de Gerenciamento de Dados 0 6 4
Funcionalidades de Plataforma 0 5 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)
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 Middleware Middleware Suites ESB Portais Web Transaction
de Comuni- de de Services Delivery
cação Plataforma Inte- Middleware Network
(Application gração
Funcionalidade de Middleware Platform)
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
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.4 Business Activity Monitoring Tools

Não será detalhado nesta apresentação


Categorias de produtos de Middleware
Funcionalidades Básicas
Tipo do Pacote de Pacotes Pacotes Middleware Middleware Suites ESB Web Transaction
Software de de de Comuni- de de Services Delivery
Aplicação Adapta- cação Plataforma Integra- Middleware Network
Funcionalidade de dores (Application ção
Platform)
Middleware
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
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,
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
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.
 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).
 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
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.
 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)
 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.
 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),
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)
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
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
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 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
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
3 – Servidores de Aplicação
(Application Servers)
 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
 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
 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.
 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.
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,
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
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
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
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
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
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).
 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
Tomcat Tomcat Tomcat
Tomcat Tomcat Tomcat 8.0.x Tomcat 3.3.x
Especificações Tomcat 7.0.x 6.0.x 5.5.x 4.1.x
9.0.x 8.5.x (superseded) (archived)
(archived) (archived) (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
6 and later (7 and
Supported Java 8 and 7 and later for 1.3 and
Versions later later 7 and later WebSocket) 5 and later 1.4 and later 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
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 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
Yes Yes Yes Yes
(MTOM)
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
2.0, 3.0 2.0, 3.0 2.0 2.0
(UDDI) Client
Java API for XML Web Services Addressing (JAX-
1.0 1.0 1.0 1.0
WSA)[JSR-261]
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-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 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 de Sistemas Distribuídos
Paradigmas para Programação de Aplicações
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
 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)
 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
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)
 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

Das könnte Ihnen auch gefallen