next up previous contents index
Next: Nível da Aplicação Up: Desenho Previous: Invocação

Estrutura de uma Aplicação

 

As aplicações são constituídas por uma ou mais entidades cooperantes, que podem estar distribuídas por vários contextos, comunicando entre si por troca de mensagens. Além da distribuição real das entidades por vários espaços de endereçamento, pode ainda ser considerada a sua distribuição lógica, i.e., pelos vários níveis ou camadas de uma aplicação. Dentro de uma mesma aplicação, as entidades dos níveis mais baixos são vistas como fornecendo serviços às de mais alto nível. Neste capítulo serão dadas definições para as camadas que foram consideradas. É dedicada especial atenção à transparência nos acessos a serviços. Como exemplos de serviços podem tomar-se a distribuição e a persistência de objectos de programa.

A programação de aplicações faz-se através de uma linguagem de programação orientada por objectos, que, para possibilitar o acesso transparente e uniforme aos serviços, não deverá sofrer modificações de espécie alguma, em relação à sua especificação original. A funcionalidade adicional é fornecida por meio de bibliotecas, que utilizarão mecanismos da linguagem nativa para os providenciar.

Aspectos de desenvolvimento e programação de aplicações, em particular a geração de código, não serão cobertos neste capítulo, mas sê-lo-ão em capítulos subsequentes. Aqui serão vistos apenas aspectos de controlo, interacção e geração de uma perspectiva de alto nível. É, deste modo, pertinente a discussão da estrutura de uma aplicação, correspondendo à especificação da metodologia de programação em termos de componentes de suporte ao seu funcionamento.

Tal como se deixou antever no texto acima, considera-se que uma aplicação como sendo uma entidade estratificada. Nos estratos superiores encontra-se o código que tem directamente a ver com o algoritmo de alto nível que a aplicação deve realizar. Esta camada é preocupação directa do programador da aplicação e será designada camada ou nível da aplicação.

No nível seguinte, que se designará por camada de ligação estarão os mecanismos de transparência correspondentes às abstracções que permitem a interacção transparente entre a camada da aplicação e os mecanismos de suporte de mais baixo nível, de acesso aos serviços. As entidades da camada de ligação, com os quais o nível de programa comunica são os objectos de ligação, sejam eles envelopes ou não. Os envelopes já foram apresentados na secção 3.1. As outras entidades serão apresentados na secção 3.2.2.

No nível por baixo da camada de ligação, designado por camada de suporte, estão os serviços de suporte à transparência, sob a forma de bibliotecas. No resto do texto aplica-se a designação de biblioteca a qualquer segmento de código genérico, ainda que normalmente não seja designado dessa forma.

No nível de suporte podem coexistir várias entidades constituintes da aplicação que não estão directamente relacionadas entre si, apenas partilhando um estrato. Estas entidades diferem entre si funcionalmente.

A figura 3.2 ilustra a estrutura de uma aplicação, segundo o modelo descrito nos parágrafos anteriores.

  
Figure: Estrutura de uma aplicação.

Ao conjunto formado pelas várias entidades do nível de suporte e pelos objectos de interacção, no nível de ligação, que lhes correspondem, será aplicada a designação de módulo funcional. Assim, poder-se-á falar, por exemplo, do módulo de distribuição.

Tem-se, assim, uma nova visão da estrutura da aplicação, independente da visão estratificada exposta acima. Esta é uma visão funcional e interessa especialmente ao programador do nível de programa, como utilizador do código e funcionalidade dos outros níveis. A visão funcional define o conjunto de serviços a que o nível de programa pode ter acesso, assim como a forma em que ele se processa. Esta visão da estrutura está representada na figura 3.3. No resto deste capítulo, contudo, a maior atenção será dada à visão apresentada em primeiro lugar, correspondente à que é vista pelo programador dos serviços. A visão funcional será abordada quando forem apresentados exemplos de serviços, no capítulo 5.

  
Figure: Estrutura funcional de uma aplicação.

A organização da aplicação, hierárquica e estratificada, apresenta várias dificuldades, se for desejável manter transparência e, especialmente, a flexibilidade, nos acessos entre um ou mais dos módulos constituintes. Os problemas relacionados com a interacção entre os vários níveis da aplicação são particularmente importantes, pois definem a facilidade com que se podem manipular as aplicações. Os vários níveis que constituem uma aplicação são descritos nas secções seguintes.





next up previous contents index
Next: Nível da Aplicação Up: Desenho Previous: Invocação



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