A divisão em camadas representa um agrupamento ordenado de funcionalidades, com a funcionalidade específica do
aplicativo localizada nas camadas superiores, a funcionalidade que se estende aos domínios de aplicativos nas camadas
intermediárias e a funcionalidade específica do ambiente de implementação nas camadas inferiores.
O número e a composição das camadas dependem da complexidade do domínio do problema e do espaço para solução:
-
Em geral, há apenas uma única camada específica de aplicativo.
-
Nos domínios em que sistemas anteriores foram desenvolvidos ou sistemas de grande porte são compostos de sistemas
interoperacionais menores, há uma grande necessidade de compartilhar as informações entre as equipes de design.
Conseqüentemente, para maior clareza, é provável que a camada específica de negócios exista parcialmente e esteja
estruturada em várias camadas.
-
Os espaços para solução que são suportados por produtos de middleware e nos quais o software de sistema complexo
desempenha um papel importante terão camadas inferiores bem desenvolvidas, talvez com várias camadas de middleware
e software de sistema.
Os subsistemas devem ser organizados em camadas com subsistemas específicos de aplicativo localizados nas camadas
superiores da arquitetura, subsistemas específicos de operação e hardware nas camadas inferiores da arquitetura, e
serviços para fins genéricos nas camadas de middleware.
Veja a seguir um exemplo de arquitetura com quatro camadas:
-
A camada superior, camada de aplicativo, contém os serviços específicos do aplicativo.
-
A camada seguinte, camada específica de negócios, contém componentes específicos de negócios, utilizados em
vários aplicativos.
-
A camada de middleware contém componentes, como construtores de GUI, interfaces para sistemas de
gerenciamento de banco de dados, serviços do sistema operacional independentes da plataforma e componentes OLE,
como planilhas e editores de diagrama.
-
A camada inferior, camada de software do sistema, contém componentes, como sistemas operacionais, bancos de
dados, interfaces para hardware específico e outros.
Uma estrutura dividida em camadas, desde o nível mais genérico de funcionalidade até os níveis mais específicos de
funcionalidade.
|