• No results found

2 PRODUCTS

2.1 P RODUCT C LASSIFICATION

Revisando, a ferramenta pode ajudar o programador a construir um programa que usa chamada de rotina remota. O programador especifica um conjunto de rotinas que serão remotas através de detalhes da interface (por exemplo, número e tipo de argumentos). Para isso, o programador utiliza a ferramenta de Interface Definition Language ou Interface Description

Language (IDL). A ferramenta lê as especificações IDL e gera os stubs cliente e servidor necessários. O programador então compila e liga os dois programas separados. Os stubs servidores são combinados com as rotinas remotas para formar o programa servidor. Os stubs clientes são combinados com o programa principal e com as rotinas locais para formar o programa cliente.

Uma variedade de ferramentas comerciais tem sido desenvolvida para ajudar os programadores a construir softwares cliente-servidor através do paradigma descrito acima. Tais ferramentas são chamadas genericamente de middleware porque fornecem software que se encaixa entre um programa de aplicação convencional e os softwares de rede.

Nos anos 90, as pesquisas sobre linguagem de programação mudaram o foco do paradigma de rotinas para o paradigma da orientação a objetos. Como resultado, a maioria das novas linguagens de programação são linguagens com orientação a objeto. A facilidade estrutural básica em uma linguagem com orientação a objeto é chamada objeto, a qual consiste em itens de dados mais um conjunto de operações para tais itens, as quais são chamadas de

métodos. O mecanismo básico de controle em uma linguagem com orientação a objeto é a

execução de métodos. Em resposta às mudanças nas linguagens, desenvolvedores estão criando novos sistemas de middleware que estendem a execução de métodos através dos computadores do mesmo modo que a chamada de rotinas remotas estendeu a chamada de rotinas. Tais sistemas são conhecidos como sistemas de objetos distribuídos. As próximas seções descreverão brevemente muitos middlewares e tecnologias de middlewares com orientação a objeto largamente utilizados.

25.7.1 ONC RPC

Um dos primeiros mecanismos RPC que atingiram aceitação geral foi desenvolvido pela Sun Microsystems, Incorporated. Formalmente conhecido por Open Network Computing

RPC. Em adição a especificação de uma IDL e um formato de mensagem que os stubs cliente e servidor usam para se comunicar. O ONC RPC inclui um padrão de representação de dados conhecida por eXternal Data Representation (XDR). Finalmente, como a maioria das outras tecnologias RPC, o ONC RPC usa os protocolos TCP/IP e permite que o programador escolha entre o transporte UDP ou TCP.

25.7.2 DCE RPC

A The Open Group definiu o Distributed Computing Environment (DCE), o qual é composto de muitos componentes e ferramentas que são designadas para trabalharem juntas. O DCE inclui sua própria tecnologia de chamada de rotinas remotas, a qual é freqüentemente chamada de DCE/RPC e sua própria IDL, a qual difere das outras em pequenos detalhes. O DCE/RPC também permite que um cliente acesse mais de um servidor (por exemplo, algumas rotinas remotas podem estar localizadas em um servidor, enquanto que outras rotinas podem estar em outro). Em todos os casos, o DCE/RPC pode usar os protocolos TCP/IP, com a escolha do programador entre transporte por UDP ou TCP.

25.7.3 MSRPC

A Microsoft Corporation definiu sua própria tecnologia de chamada de rotinas remotas, a Microsoft Remote Procedure Call (MSRPC). Devido à MSRPC ter sido derivada da DCE/RPC, ela compartilha os mesmos conceitos centrais e estrutura geral do programa. Entretanto, a MSRPC difere em alguns pequenos detalhes. Ela define sua própria IDL e tem seu próprio protocolo que os stubs cliente e servidor usam para se comunicar.

25.7.4 CORBA

Talvez o middleware com orientação a objeto mais conhecido é chamado Common

Object Request Broker Architecture (CORBA). O CORBA permite que um objeto inteiro seja colocado no servidor e estende a execução de métodos usando a mesma abordagem geral descrita anteriormente. Existe uma diferença porque os proxies são instanciados em tempo real como outros objetos. Quando um programa recebe uma referência de um objeto remoto, um proxy local é criado que corresponde ao objeto criado. Quando o programa executa um método daquele objeto, o controle passa para o proxy local. O proxy então envia uma mensagem através da rede para o servidor, o qual executa o método especificado e retorna os resultados. Por isso, o CORBA faz com que a execução de métodos para objetos locais e remotos pareçam idênticos.

Em adição a focar objetos ao invés de rotinas, o CORBA difere das tecnologias RPC convencionais porque ele é mais dinâmico. Em tecnologias RPC convencionais, o programador utiliza uma ferramenta para criar rotinas de stub quando constrói o programa. No CORBA, o software cria um proxy em tempo real quando é necessário (por exemplo, quando o método é executado em um objeto remoto para o qual não existe proxy).

25.7.5 MSRPC2

A Microsoft desenvolveu uma segunda geração do MSRPC chamado MSRPC2. a Microsoft freqüentemente utiliza o nome Object RPC (ORPC) ao invés de MSRPC2 porque a segunda versão representa uma mudança mais significante que uma simples revisão. Ela estende os conceitos do MSRPC para fornecer mais suporte aos objetos. As idéias no MSRPC2 são derivadas de muitas fontes, incluindo a pesquisa feita pela Digital Equipment Corporation usando o Modula-3.

25.7.6 COM/DCOM

Em outro esforço, a Microsoft Corporation também produziu o COM e o DCOM, os quais são tecnologias com orientação a objeto. O Component Object Model (COM) é uma estrutura de software com orientação a objeto que foi definido em 1994. O padrão define uma interface binária entre os componentes em um dado computador, algumas vezes sendo referido como um esquema de empacotamento. Com o COM, todos os objetos tinham nomes globais únicos e todas as referências de objetos usavam esquema global.

Definido em 1998, o Distributed COM (DCOM) estendeu o COM criando um protocolo de nível de aplicação para as chamadas de rotinas remotas com orientação a objeto. O DCOM, o qual foi proposto para a IETF como padrão para a Internet, utiliza o ORPC para transporte. Como o ORPC foi derivado do DCE/RPC, o DCOM usa exatamente o mesmo formato de pacote e semântica para execução remota que o DCE/RPC utiliza para chamadas de rotinas remotas.