next up previous contents index
Next: O Lado do Up: Distribuição Previous: Operações Explícitas versus

Inicialização de Ligações

As acções de inicialização de ligações remotas são ortogonais à forma como é desencadeada a acção de exportar e importar. Sendo levadas a cabo pelo nível de suporte, elas encontram-se para além dos envelopes e abaixo do controlador da distribuição, que faz também parte do nível de ligação.

A forma como as estruturas de controlo da distribuição são inicializadas depende do lado da ligação: do lado do servidor ou do lado do cliente. As faces cliente e servidor podem coexistir, para uma dada interface e um qualquer objecto com essa interface, num qualquer contexto. As secções 5.1.5 e 5.1.6 descrevem em pormenor os passos a dar para estabelecer uma ligação. A secção 5.1.7 mostra como se efectua uma operação remota desde o momento de exportar um objecto até à resposta desse objecto a um pedido de um cliente remoto.

A inicialização de uma ligação remota é feita quando um objecto composto, com uma dada interface, é exportado pela primeira vez, ou quando é importado pela primeira vez. Em qualquer dos dois casos, passa a existir uma ligação remota correspondendo ao tipo do objecto. Por cada tipo que possua objectos distribuídos existirão dois canais de comunicação, um para cada sentido, partilhados por todos os objectos desse tipo que residam nos contextos comunicantes. Na origem do estabelecimento da primeira ligação está obrigatoriamente uma operação explícita, levada a cabo pelo nível de programa.

Para ilustrar e tornar menos pesadas as descrições das secções que se seguem, considera-se o exemplo abstracto da figura 5.2. Neste, existem dois contextos e, em cada um deles, um objecto: X, no contexto I e Y, no contexto II. Um objecto, A, é criado e explicitamente exportado por X, vindo, mais tarde, a ser explicitamente importado por Y, que invoca sobre ele uma operação remota que tem como argumento um objecto, B, criado localmente ao contexto II, e tendo como retorno o objecto C. Este é, primeiro, implicitamente exportado pelo contexto I, e, seguidamente, implicitamente importado pelo contexto II, enquanto que B é, primeiro, implicitamente exportado por II e, depois, implicitamente importado por I.

  
Figure: Exemplo abstracto de aplicação distribuída.

Nas secções seguintes serão descritas as entidades e operações envolvidas no desempenho das funções da aplicação distribuída constituída pelos contextos I e II. Os conceitos de exportação e importação serão descritos pormenorizadamente, sem que, porém, se entre em pormenores concretos sobre a programação dos mesmos.



next up previous contents index
Next: O Lado do Up: Distribuição Previous: Operações Explícitas versus



David M. M. de Matos
Thu Jun 29 14:58:09 MET DST 1995