Segundo Krakowiak (2003), em um sistema de computação distribuída, middleware é definido como uma camada de software que reside entre o sistema operacional e as aplicações em cada ponto do sistema. Devido à heterogeneidade de arquiteturas permitidas em conjunto com a Internet, o desenvolvimento de middlewares vem crescendo com força, principalmente em ambientes empresariais em que é necessário integrar diversas tecnologias diferentes de forma que: a distribuição seja transparente, a heterogeneidade seja irrelevante (do ponto de vista do usuário), o desenvolvimento de novas funcionalidades de software seja de alto nível e a comunicação entre os serviços computacionais seja facilitada como um todo, agindo como uma interface.
Um uso comum de middlewares é na programação de aplicações com bancos de dados, onde comumente conecta-se ao middleware do banco de dados para solicitar informações e executar comandos, e não ao mecanismo do banco em si. Para Linthicum (2001), um middleware orientado à banco de dados é qualquer middleware que facilite a comunicação com uma base de dados, seja a partir de uma aplicação ou entre diferentes bancos de dados. Exemplos citados pelo autor incluem o Microsoft ODBC (Open Database Connectivity) e o Oracle JDBC (Java Database Conectivity), padrões de acesso à dados comuns entre projetos de software Windows e Linux, agindo como interfaces de comunicação.
A vantagem no uso desses middlewares reside no fato de que através de instruções da própria linguagem de programação que se está utilizando é possível conectar-se e enviar comandos ao sistema na outra ponta (banco de dados, por exemplo) recebendo como resposta os dados em objetos da respectiva linguagem, mantendo uma programação de alto nível e extremamente simplificada. Como desvantagens, Campbell (1999) cita queda de desempenho e limitação no acesso aos recursos e funcionalidades do sistema, uma vez que o desenvolver tem acesso somente ao que o middleware expõe do sistema nativo.
Referências
KRAKOWIAK, Sacha. What is Middleware. 2003. Disponível em: <http://middleware.objectweb.org/>. Acesso em 18/08/2013.
LINTHICUN, David. Database-oriented middleware. Junho de 2001. Disponível em: <http://searchsoa.techtarget.com/answer/Database-oriented-middleware>. Acesso em 18/08/2013.
CAMPBELL, Andrew T.; COULSON, Geoff; KOUNAVIS, Michael. Managing Complexity: Middleware Explained. Outubro de 1999. Disponível em: <http://www.cin.ufpe.br/~redis/intranet/bibliography/middleware/campbell-managing-1999.pdf>. Acesso em 13/10/2013.
Autor
Luiz Fernando Duarte Junior é graduado em Ciência da Computação com pós-graduação na área de Computação Móvel. Professor do ensino superior, gerente de projetos, empreendedor e palestrante, é tradutor de um livro sobre criação de apps e autor de outro sobre o mesmo assunto, ambos disponíveis na seção Meus Livros.
Olá, tudo bem?
O que você achou deste conteúdo? Conte nos comentários.