Transcript Middleware
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