Projeto e Implementação de Middleware Aquiles Burlamaqui
Agenda Introdução Fundamentos Modelos Serviços de Middleware Arquitetura de Middleware Padrões de Projeto para Middleware Middleware para TV Digital
Introdução O termo middleware foi utilizado pela primeira vez em 1968;(NATO Software Engineering)
Introdução 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;
Fundamentos Redes de Computadores Sistemas Distribuídos Middleware
Fundamentos Redes de Computadores Redes Locais Internet Diversidade
Fundamentos Redes de Computadores Redes Locais Internet Diversidade
Fundamentos Redes de Computadores Redes Locais Internet Diversidade
Fundamentos Sistemas Distribuídos Vantagens Desvantagens Transparência Comunicação
Fundamentos Sistemas Distribuídos Vantagens Desvantagens Transparência Preço Velocidade Distributividade Inerente Confiabilidade Crescimento Incremental Desvantagens Transparência Comunicação
Fundamentos Sistemas Distribuídos Vantagens Desvantagens Transparência 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
Fundamentos Sistemas Distribuídos Vantagens Desvantagens Transparência Comunicação
Fundamentos Sistemas Distribuídos Vantagens Desvantagens Transparência Comunicação
Fundamentos Sistemas Distribuídos A complexidade da distribuição deve ser transparente para o programador
Fundamentos 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.
Fundamentos 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
Fundamentos Middleware
Modelos 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 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 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 Modelos de Comunicação Classificação 4 Tipos de mediação Implícita Explícita
Modelos Modelos de Comunicação Classificação 5 Adaptativos / reconfiguráveis / reflexivos Embarcados
Modelos Modelos de Comunicação Classificação 6 (baseado na primitiva para interação) Transacional Orientado a mensagem Procedural Objeto
Middleware Tipos de Middleware Judith Hurwitz
Serviços de Middleware 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 Middleware em camadas
Seminários 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
Bibliografia
Bibliografia 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. Pattern-Oriented 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
Mais uma frase 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 All Middleware programming languages do pretty much the same things: They interact with relational databases, They all work with a file system They all interact with the web server The question about which language is the best is rarely a matter of a languages inability to perform certain functions. It’s usually more a matter of how quickly you can do what you need to with the least amount of pain.