Você está na página 1de 2

Objetos Distribudos: Conceitos e Arquiteturas

Ao longo dos anos, as plataformas computacionais sofreram grandes modificaes. A primeira fase caracterizou-se por
computadores de grande porte onde os programas eram processados em lotes. A segunda fase caracterizou-se pela
interligao de terminais aos computadores de grande porte. A terceira fase tornou-se possvel com a evoluo dos circuitos
integrados e com os computadores pessoais. Na quarta fase, os computadores pessoais e os de grande porte foram
interligados por meio de redes.
medida em que ocorriam alteraes nas arquiteturas das plataformas computacionais, se modificavam as arquiteturas dos
sistemas. Alguns sistemas migraram de arquiteturas centralizadas para arquiteturas distribudas. Um sistema distribudo
composto por programas executados em diferentes mquinas e pode apresentar vantagens quando comparado a um sistema
centralizado, como por exemplo, acesso aos servios em outras mquinas na rede; melhor desempenho devido ao
processamento distribudo; maior confiabilidade decorrente da replicao de dados, mquinas e perifricos. Em geral, os
sistemas distribudos so, entretanto, mais difceis de desenvolver do que os centralizados devido uma srie de
dificuldades decorrentes da distribuio do processamento entre diversas mquinas.
Interfaces de programao
Em um sistema distribudo, possvel a comunicao entre objetos em uma mesma mquina, ou em mquinas diferentes.
Quando objetos em uma mesma mquina se comunicam, os dados so armazenados em reas de memria acessveis aos
objetos. Quando a comunicao ocorre entre objetos em diferentes mquinas, os dados precisam ser transferidos entre as
mquinas. Nesse caso, diferentes interfaces de programao (APIs) podem ser usadas para acesso aos servios de
comunicao. Algumas dessas APIs do acesso direto aos servios dos protocolos de transporte.
Os servios providos pelos protocolos de transporte so, entretanto, de baixo nvel, o que leva o programador a ter que se
preocupar com detalhes relacionados ao processo de comunicao. Outra alternativa usar uma tecnologia que possibilite a
chamada de mtodos remotos (Remote Method Invocation). Quando essa alternativa adotada, objetos em diferentes
mquinas podem se comunicar como se estivessem em uma mesma mquina e o programador deixa de se preocupar com a
maioria dos detalhes relacionados comunicao.
Tecnologias de componentes
Nos ltimos anos, tem se popularizado o desenvolvimento baseado em componentes. Componentes so mdulos de
software que prestam servios atravs de interfaces claramente definidas. Idealmente, um componente (composto por um ou
vrios objetos) genrico o suficiente para que possa ser usado em diversos sistemas. Um componente pode ser composto
por um, ou por vrios objetos.
Para que seja possvel a colaborao entre componentes desenvolvidos por diferentes programadores, so seguidas certas
convenes, agrupadas em modelos de referncia que padronizam, por exemplo, como eventos gerados so notificados e
como servios so disponibilizados. Dentre os atuais modelos de referncia, destacam-se: Distributed Component Object
Model, voltado para a plataforma Windows; JavaBeans e Enterprise JavaBeans, voltados para a plataforma Java; Common
Object Request Broker Architecture, que independente de plataforma.
Padres de arquitetura
O desenvolvimento de um sistema distribudo no uma atividade simples e uma das tarefas a definio da sua
arquitetura. A arquitetura descreve como os componentes interagem, omite informaes que no dizem respeito a tais
interaes, e caracterizada pela presena de determinados tipos de componentes, formas de interligao e de interao.
Algumas arquiteturas apresentam caractersticas comuns, possibilitando que padres sejam identificados e documentados.
Alguns desses padres especificam a arquitetura do sistema a nvel macro; outros especificam a estrutura de pequenas partes
do sistema, por exemplo, a estrutura interna de um componente.
Padres J2EE

Existem vrios padres de arquitetura sugeridos para sistemas distribudos na plataforma J2EE. Um exemplo o Business
Delegate. Esse padro resolve problemas que ocorrem quando componentes da camada de apresentao interagem com
componentes remotos da camada de negcio. Dentre os objetivos desse padro, destacam-se: evitar alteraes nos
componentes da camada de apresentao quando ocorrem alteraes nas interfaces dos componentes remotos; minimizar a
perda de performance decorrente da interao entre componentes da camada de apresentao e componentes remotos;
reduzir a complexidade dos componentes da camada de apresentao retirando o cdigo necessrio para a comunicao com
os componentes remotos.
O padro Business Delegate sugere a criao de componentes que se faam passar pelos componentes remotos. Esses novos
componentes contm o cdigo necessrio para a comunicao com os componentes remotos e procuram prover uma
interface de programao mais estvel do que a provida pelos componentes remotos. Por meio de um mecanismo de
caching, os novos componentes podem tambm reduzir o trfego entre os componentes na camada de apresentao e os
componentes remotos.
Outro padro de arquitetura o Session Facade. Esse padro til quando um componente, para obter o servio desejado,
precisa se comunicar com vrios componentes servidores remotos. O padro sugere a criao de um novo componente
remoto que prov um servio de mais alto nvel do que os providos pelos servidores. A comunicao com os servidores
passa a ser responsabilidade desse novo componente, o cliente no se comunica mais com cada um dos servidores. Isso
simplifica o cdigo do cliente e pode reduzir o trafego pela rede.
Um terceiro exemplo de padro de arquitetura para a plataforma J2EE o Service Locator. Esse padro facilita a localizao
dos componentes em um sistema distribudo, pois esconde dos clientes, o procedimento necessrio para localizar os
servidores. Isso evita que o cdigo para a localizao e a criao dos servidores seja replicado nos clientes.
Concluso
Ao longo dos ltimos anos, ocorreram vrias mudanas nas tecnologias adotadas nos sistemas distribudos, mas a atividade
de desenvolvimento continua sendo complexa por uma variedade de motivos. O uso de componentes e a preocupao com
aspectos de arquitetura podem melhorar a qualidade de tais sistemas e facilitar seu desenvolvimento.
Referncias
Albuquerque, F. TCP/IP Internet: Programao de Sistemas Distribudos Usando HTML, JavaScript e Java. Axcel Books.
2001.
Alur, D. et al. Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall, 2001.
Buschmann, F. et al. Pattern-Oriented Software Architecture A System of Patterns. John Wiley & Sons, 1996.
Coulouris, G. & Dollimore, J. Distributed Systems - Concepts and Design (3rd Edition). Addison Wesley, 2000.
Monson-Haefel, R. Enterprise JavaBeans (3rd Edition). O''Reilly & Associates, 2001.
Schmidt, D. et al. Pattern-Oriented Software Architecture - Volume 2. John Wiley & Sons, 2000.
Endereos e documentos variados sobre objetos distribudos podem ser encontrados em: www.cic.unb.br/docentes/fernando

Você também pode gostar