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