Arquitetura Extensível da Camada de Apresentação em Flex – Uma Abordagem WebDesktop


Partindo da premissa de desenvolvimento de uma aplicação de interface gráfica extensivel e sensível ao contexto do usuario implementada sobre a noção de Web Desktop, o objetivo dessa proposta de projeto é demonstrar uma ideia de como seria uma arquitetura para a solução de alguns problemas e restrições de projetos enfrentados durante a produção de uma solução de aplicação.

Diagrama Base

Diagrama Base

Abaixo segue a explicação de objetivos e responsabilidades de cada componente desta arquitetura:

  • Runner App: Responsável por executar e integrar os Core Apps com base numa arquitetura Web Desktop. Será de sua responsabilidade inicializar os sub-aplicativos de acordo com as permissões do usuário logado. Fará validações de acesso a módulos do sistema, acionamento de módulos de forma dinâmica, gerenciamento e gestão das aplicações.
  • Web Desktop Controller: Seu objetivo é fazer o gerenciamento e a manutenção do Runner App. Irá dispor de uma arquitetura extensível e moldável aos vários módulos permitindo assim uma integração com o modelo web desktop (janelas, ícones, menus barras de tarefas). Terá, também, os componentes necessários para que o controle do ambiente de interface gráfica seja totalmente do controller. Sua base não terá acesso a nenhum provedor de dados, gestão de usuários não será feita pelo controller, controles de configurações não terão acessos a modelos de domínio, por isso seu principal objetivo é manter o bom funcionamento Runner App.
  • Core App 1, Core App 2 … Core App N: Responsáveis por gerenciar as aplicações, as Core Apps são pontes de acesso de um conjunto de aplicativos com o controle externo da interface (controle Web Desktop através do Runner App). As core apps não terão interface gráfica apresentável, sua missão é dispor uma gama de objetos de domínio às aplicações e controlar comportamento comum às aplicações ligadas à mesma. No entanto, cada core app disponibilizará uma interface que deverá ser implementada porá cada nova aplicação que, porventura, quiser conectar à core. Desse modo, cada core app poderá ter sua interface de negócios comum o que tornaria a integração e a extensão de algumas aplicações bem mais fácil. Cada core, também implementará uma interface de união que será usada no Runner app para unir todas as aplicações num mesmo contexto de usuário, por exemplo.
  • Domain: Conterá todos os objetos de domínio e DTOs (Data Transfer Objects). Os objetos de domínio contidos nesse componente serão compartilhados com todas as aplicações permitindo, desse modo, a transição de objetos entre as variadas aplicações do cliente.
  • Aplicações – Gerenciamento, Gestão, Finanças, Contabilidade… : São as aplicações em si. Elas são desenvolvidas com lógicas de negócios próprias que compartilham – ou não – o mesmo core.
  • Web Desktop Client: Proverá um pacote de componentes de interface gráfica para uso nas aplicações. Tais componentes poderão, desse modo, ser reusáveis e extensíveis à medida que novos componentes nas aplicações forem criados. Dentre os principais componentes de interface gráfica que tal pacote pode conter destacam-se: janelas, botões, tabelas, componentes personalizados, menus, mapas, dentre outros.

Em outra oportunidade, explicarei como implementar essa arquitetura de forma simple e coesa.

Achou interessante o método de análise deste post? Comente! 🙂

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s