Aquiles Burlamaqui
 Introdução
 Fundamentos
 Modelos
 Serviços
de Middleware
 Arquitetura de Middleware
 Padrões de Projeto para Middleware
 Middleware para TV Digital
O
termo middleware foi utilizado pela primeira
vez em 1968;(NATO Software Engineering)
 Sucesso
nos anos 80. Começou a ser
usado para interligar aplicações antigas
com as novas.
 Associado a banco de dados relacionais
 Antigos Conceitos Similares:
• Sistema operacional de rede, sistema
operacional distribuído, ambientes de
computação distribuída;
 Redes
de Computadores
 Sistemas Distribuídos
 Middleware
 Redes
de Computadores
• Redes Locais
• Internet
• Diversidade
 Redes
de Computadores
• Redes Locais
• Internet
• Diversidade
 Redes
de Computadores
• Redes Locais
• Internet
• Diversidade
 Sistemas
Distribuídos
• Vantagens
• Desvantagens
• Transparência
• Comunicação
 Sistemas
Distribuídos
• Vantagens
 Preço
 Velocidade
 Distributividade Inerente
 Confiabilidade
 Crescimento Incremental
• Desvantagens
• Transparência
• Comunicação
 Sistemas Distribuídos
• Vantagens
• Desvantagens
 Software – sistemas operacionais, linguagens de
programação e aplicações.
 Comunicação – tratamento e recuperação de mensagens.
Melhoria da rede pode acarretar em custos altos.
 Segurança – Compartilhamento de dados implica em
esquemas especiais para proteção de dados sigilosos.
 Consistência
 Heterogeneidade
• Transparência
• Comunicação
 Sistemas
Distribuídos
• Vantagens
• Desvantagens
• Transparência
• Comunicação
 Sistemas
Distribuídos
• Vantagens
• Desvantagens
• Transparência
• Comunicação
 Sistemas
Distribuídos
• A complexidade da distribuição deve ser
transparente para o programador

Sistemas Distribuídos
• Programação de rede em Baixo nível
 Mecanismo muito eficiente
 Disponível em praticamente todo sistema operacional
 API padronizada
 Pode ser usada por clientes e servidores se comunicarem na
mesma máquina ou através da rede
 Mas...
 Expõem muitos detalhes de baixo nível
 Desenvolvedor das aplicações deve ser hábil de depurar problemas d
do nível rede
 Mistura lógica da aplicação com lógica de rede
 Clientes devem saber onde o servidor esta executando
 Se o cliente e o servidor rodam em máquinas com ordem de bytes
diferentes, eles devem estar cientes dessas diferenças para se
comunicarem entre si.
 Middleware
• Camada entre o sistema operacional e a
aplicação
• Esconde os detalhes do sistema operacional do
desenvolvedor de aplicação
 CORBA, EJB, DCOM
• Porque precisamos de middleware?
 Ele facilita a tarefa de escrever aplicações
distribuídas
 Cuida de todo código de rede e de mensagens
 Deixa você livre para focar na escrita da aplicação
 Middleware
 Modelos
de Comunicação
• Existem várias Classificações
 Classificação 1
 Tipo de Comunicação
 Linguagens p/ Construção da Aplicação
 Forma de Disponibilização
 Ambiente de Execução
 Modelos
de Comunicação
 Classificação 2
 Baseado em RPC-OO
 RMI, CORBA
 Passagem de Mensagem
 JMS, MQSeries
 Memória Compartilhada
 JTS(Java Tuple Space)
 Modelos
de Comunicação
 Classificação 3
 Entidades se comunicando
 Processos, objetos, programas, componentes
 Como elas se comunicam
 Reques/reply
 Peer-to-peer
 Publish/subscribe
 Interface de programação
 APIs
 Bibliotecas
 frameworks
 Modelos
de Comunicação
 Classificação 4
 Tipos de mediação
 Implícita
 Explícita
 Modelos
de Comunicação
 Classificação 5
 Adaptativos / reconfiguráveis / reflexivos
 Embarcados
 Modelos
de Comunicação
• Classificação 6 (baseado na primitiva para
interação)




Transacional
Orientado a mensagem
Procedural
Objeto
 Tipos
de Middleware
• Judith Hurwitz
 Serviços
de Comunicação
 Serviço de Diretórios
 Serviços
de Descoberta
 Serviços de Configuração
 Serviços de Segurança
• SSL, SHTTP
 Serviço
de Nomes
 Serviços de Apresentação
• Geração de GUI
 Middleware
camadas
em

Alguns Tópicos para Seminário
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Middleware Orientado a Mensagens
Middleware Reflexivo e Adaptativo
Middleware Transacional
Middleware Peer-to-Peer
Middleware Grid
Middleware QoS-Habilitado
Middleware Model-Driven
Sistemas Baseados em Middleware de Alta Performance
Segurança em Middleware
Middleware para Dispositivos Móveis
Middleware para Disseminação de Dados
Middleware para Jogos
Real-Time CORBA Middleware
Middleware for Smart Card
Middleware para E-Commerce

Judith Hurwitz
•









http://www.dbmsmag.com/9801d04.html
Montez, Carlos; Becker, Valdecir; TV Digital Interativa: conceitos, desafios e
perspectivas para o Brasil; 2a Edição - Revista e Ampliada Universidade Federal de
Santa Catarina
Arno Puder, Kay Römer, and Frank Pilhofer, Distributed Systems Architecture : A
Middleware Approach, 2005.
Daniel Serain, I. Craig, Middleware and Enterprise Application Integration , 2002.
Judith M. Myerson. The Complete Book of Middleware, Ed. Auerbach Publications,
2002.
Chris Britton. IT Architectures and Middleware - Strategies for Building Large,
Integrated Systems, Addison-Wesley, 2001.
Douglas Schmidt, Michael Stal, Hans Rohnert and Frank Buschmann. PatternOriented Software Architecture, Patterns for Concurrent and Networked Objects,
Volume 2 ISBN: 0471606952
Uwe Zdun, Markus Völter, Michael Kircher, Remoting Patterns. Wiley Series in
Software Design Patterns, 2004.
Teach Yourself CORBA In 14 Days
http://ovir.icp.ac.ru/corba/books/Teach14/index.htm
Gargalo na internet 2010
•
http://www.vnunet.com/vnunet/news/2203809/internet-face-meltdown-2010
Programming languages are a lot like
shoes. Some look good to some people
yet look ugly to others. Some shoes fit
well on some feet.
When it comes down to web programming
all languages do pretty much the same
thing.
Jay Greenspan,
Former Producer , WebMonkey
Download

Middleware