Desenvolvimento - C#

Arquitetura de aplicações distribuídas utilizando .NET

Para se realizar um projeto baseado em aplicações distribuídas é preciso tomar decisões sobre a arquitetura lógica, física e também decidir quais tecnologias e a infraestrutura usada para estas funcionalidades.

por José Augusto de Sousa Barroso



Co-Autor:
Carlos Henrique C. Negrão
Carlos.negrao@codeplan.df.gov.br

Para se realizar um projeto baseado em aplicações distribuídas é preciso tomar decisões sobre a arquitetura lógica, física e também decidir quais tecnologias e a infraestrutura usada para estas funcionalidades. Para tomar estas decisões eficientemente, devemos conhecer bem os processos de negócio que as aplicações estarão realizando (requerimentos funcionais), e os níveis de escalabilidade, disponibilidade, segurança e sustentabilidade (requerimentos operacionais).

Os componentes que realizam funções similares são organizados e agrupados dentro de camadas específicas. Um bom entendimento dos diferentes tipos de componentes que são comumente utilizados em aplicações distribuídas ajudará a projetar soluções melhores.

Para um projeto com aplicações distribuídas, é preciso decidir como acessar e representar os dados de negócio associados com sua aplicação. Maneira de expor, persistir e passar dados entre as camadas da aplicação.

Visão geral do Framework .Net

A plataforma .Net é um conjunto de tecnologias que foi projetado para mudar o conceito de desenvolvimento de aplicações para internet. A plataforma .Net contempla o desenvolvimento de aplicações escaláveis e distribuídas, fornecendo novas possibilidades para construir aplicações baseadas em Web Services suportando a infra-estrutura da internet, incluindo HTTP, XML e SOAP.

A plataforma .Net basicamente inclui:

  • .Net Framework;
  • .Net Building Block Services;
  • Visual Studio .Net
  • .Net Enterprises Services(2003 family)

A .NET framework consiste de duas partes principais: a CLR - Common Language Runtime e a .NET Framework class library. A primeira é a responsável pela independência de linguagem de programação e a segunda disponibiliza os principais recursos de programação, além de incluir os três principais componentes: ASP.NET, Windows Forms e o ADO.NET.

Arquitetura da Aplicação

1 - Prover a interação do usuário com as aplicações do sistema. Os componentes de interface são implementados usando WebForms (asp.net), controles de validação e formatação de dados e controles customizados.

2 - Interface que oferece suporte à comunicação e disponibilizacão da regra de negócio como serviço.

3 - Gerencia a troca de mensagens e transações entre instâncias de objetos, além de controlar o fluxo de processos de negócios que envolvem seqüências especificas.

4 - Implementa e Executa a lógica do negócio da aplicação (Regras de Negócio).

5 - Organização e definição dos dados que serão passados entre componentes, essas entidades são representados por estruturas de dados utilizando Datasets, Datareaders, XML, entre outros.

6 - Encapsula a lógica de acesso a dados (CRUD).

7 - Disponibiliza funcionalidades da aplicação para serviços externos (WebServices).

8 - Componente genérico utilizado para acesso a dados. Gerencia conexões, executa comandos, otimiza o acesso a dados e cache.

9,10,11 - Componentes para gerência de exceções, comunicação com serviços e aplicações, autenticação e autorização.

A arquitetura apresentada acima está sendo utilizada para o desenvolvimento do Sistema de Ouvidoria e Informações do Governo do Distrito Federal pela CODEPLAN, o sistema abrangerá todos os órgãos do GDF.

A metodologia de desenvolvimento adotada (PDS_UML) no decorrer de todo o ciclo do projeto utiliza a UML como linguagem universal para execução de todas as fases, atividades e produtos inerentes ao processo, de modo a formalizar a sua especificação.

O método, baseado no RUP, está estruturado em macroatividades (tarefas) definidas que são executadas iterativamente até a conclusão de cada processo. Cada macroatividade irá gerar um produto (artefato de saída) que será utilizado pela macroatividade subseqüente.

Maiores informações sobre a arquitetura descrita, assim como padrões e práticas estarão disponíveis no DNAUG - Dot Net Architect User Group, um grupo de usuários intencionados a discutir e disseminar a tecnologia.

Para saber mais sobre os autores ou ver outros artigos, visite o DNAUG:
http://www.dnaug.com

Tire a sua dúvida na lista de discussão do DNAUG:
http://groups.yahoo.com/group/dnaug/

José Augusto de Sousa Barroso

José Augusto de Sousa Barroso - Fundador do DNAUG e INETA - DNAUG Leader
Atualmente é colaborador da Politec Informática, trabalha como arquiteto e desenvolvedor de aplicações em C#. Participou de grandes projetos, citando como exemplo, sistemas para o Banco do Brasil, Caixa Econômica Federal, Agência Nacional de Energia Elétrica, Banco Central do Brasil entre outros.
Vem participando de projetos em .NET desde o início de 2003. Hoje está envolvido na criação e implementação da arquitetura em camadas para os sistemas do Governo do Distrito Federal, este em .NET
Tem publicado vários artigos sobre arquitetura, padrões, segurança, .NET Framework e C#.

Certificações:
. Microsoft Certified Professional - MCP . Microsoft Certified Application Developer - MCAD

Áreas de interesse:
· Arquitetura e Padrões de Projeto
· Segurança de aplicações
. Framework .NET / C#