Camada arquitetônica (em desenvolvimento corporativo). Conceito, definição, apresentação

Hoje em dia, é difícil encontrar uma definição curta e clara de conceitos como "camada de aplicação" e "camada de abstração". Isso acarreta diferenças na compreensão do mesmo ou incompreensão desse conceito entre os desenvolvedores. E mal-entendidos levam a desacordos.



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:
  • , 3: , -, —
  • , , , , ,
  • (layer), (tier), . , ,


« » « » « ».





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:



  1. Todos os requisitos de negócios são destacados e estruturados em categorias.
  2. Os requisitos são divididos em tarefas a serem resolvidas pelo aplicativo.
  3. As tarefas são categorizadas e agrupadas com base na semelhança de seus objetivos.
  4. Com base nessas categorias, destaca-se o objetivo geral da camada arquitetônica, na qual as tarefas serão resolvidas.
  5. 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.
  6. 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.



,



  • : , ,
  • (, , )


image



3.







1 — , , , ,

2 — , — , …

3 — , , — : , ,



() , (, , ) (, ).



, . 3 (, , ), . , , , .




All Articles