O objetivo deste artigo é trabalhar em conjunto para criar certeza, criar uma visão comum para todos e chegar a uma definição curta, clara e prática da Camada de Arquitetura no campo de aplicativos corporativos. Você pode discutir e complementar tudo o que é fornecido no artigo nos comentários, e eu atualizo o material no artigo de acordo com os comentários.
Dividir a arquitetura de um aplicativo empresarial em camadas permite
, .
- - , ,
- ,
- , ,
, .
Qual é a confusão atual ao lidar com arquitetura em camadas:
Uma camada de arquitetura (aplicativo corporativo) é um determinado conjunto (limitado pela finalidade, fechado) de recursos (ferramentas para trabalhar com recursos, peças, componentes), com a ajuda do qual um conjunto (limitado por critérios) de tarefas aplicadas características de uma determinada camada é implementado. A camada superior implementa seus componentes (recursos), com base nos recursos da camada inferior. Os recursos de uma determinada camada são compatíveis entre si e são usados apenas dentro dessa camada (idealmente). A camada pai pode criar seus próprios recursos usando os recursos de várias camadas. Ele pode estar relacionado a um sistema abstrato e idealizado que existe na forma de esquemas ou está mais relacionado à implementação - isso determina os componentes da camada.
Componentes da camada:
- se a camada está relacionada à implementação: classes, objetos, contexto, serviços, controladores, proxies, assemblies ...
- se a camada é sobre abstração: modelos de dados (idealizados), ações ...
Qual é a camada arquitetônica caracterizada por:
- propósito aplicado, específico, lógico, define uma variedade de tarefas que podem ser atribuídas a uma determinada camada
- um certo conjunto de tarefas implementadas em uma determinada camada
- recursos e ferramentas com as quais as tarefas são implementadas: dados, objetos e ações que podem ser realizadas em dados e objetos
- os dados e a lógica dentro de uma determinada camada são consistentes entre si
- consistência determina previsibilidade e predeterminação na interação de recursos de uma determinada camada, ou seja, os detalhes dos quais a camada é formada são compatíveis entre si
- uma camada separada pode ser percebida como um único todo autossuficiente
- dependência entre camadas pode ser minimizada
- a camada criada pode ser a base para várias camadas pai diferentes
- ao passar de uma camada para outra, as entidades modeladas geralmente são transformadas de uma representação para outra
Resumidamente sobre a ordem de criação de camadas arquitetônicas:
- Todos os requisitos de negócios são destacados e estruturados em categorias.
- Os requisitos são divididos em tarefas a serem resolvidas pelo aplicativo.
- As tarefas são categorizadas e agrupadas com base na semelhança de seus objetivos.
- Com base nessas categorias, destaca-se o objetivo geral da camada arquitetônica, na qual as tarefas serão resolvidas.
- A solução de problemas pode ser considerada um algoritmo ou processo que fornece o resultado desejado. De todas as tarefas, os componentes comuns (detalhes) são distinguidos, a partir dos quais eles são implementados. (modelos e ações sobre eles). Haverá um artigo adicional sobre como isso é feito.
- Com base nos componentes selecionados, as classes da camada correspondente são implementadas e, como regra, são combinadas em uma montagem separada.
Exemplos de
1.
ISO/OSI
2.
,
3.
1 — , , , ,
2 — , — , …
3 — , , — : , ,
() , (, , ) (, ).
, . 3 (, , ), . , , , .
ISO/OSI
2.
,
- : , ,
- (, , )
3.
1 — , , , ,
2 — , — , …
3 — , , — : , ,
() , (, , ) (, ).
, . 3 (, , ), . , , , .