Documento de Arquitetura de
Software
Documento de Arquitetura de
Software
Histrico de Reviso
Data Verso Descrio Autor Revisor
ndice
1. Introduo 5
1.1 Objetivo 5
1.2 Escopo 5
1.3 Definies, Acrnimos, e Abreviaes 5
1.4 Referncias 5
1.5 Viso Geral 5
2. Arquitetura da Aplicao 5
2.1 Representao da Arquitetura 6
2.2 Objetivos e Restries da Arquitetura 6
2.3 Critrios da Avaliao Arquitetural 6
2.4 Arquiteturas Descartadas 6
2.5 Anlise da Arquitetura Imposta pelo Cliente 6
4. Viso Lgica 8
5. Viso de Processos 12
6. Viso de Implantao 13
7. Viso de Implementao 14
9. Estratgia de Desenvolvimento/Compra/Reutilizao 16
13. Qualidade 23
Este documento apresenta a arquitetura proposta para portais internos da Secretaria de Fazenda
do Distrito Federal. A arquitetura apresentada atravs de um conjunto de vises que juntas visam
cobrir os principais aspectos tcnicos relativos ao desenvolvimento e implantao do sistema em
questo. O objetivo capturar e formalizar as principais decises tomadas com relao
arquitetura do sistema.
1.1 Objetivo
Este documento tem como objetivo apresentar uma arquitetura para sistemas que possuem
caractersticas de portais externos que exigem alta escalabilidade.
1.2 Escopo
1.4 Referncias
2. Arquitetura da Aplicao
A arquitetura proposta tem como objetivo disponibilizar um portal acessvel e escalvel, utilizando
camadas separadas fisicamente e aderentes arquitetura SOA, expondo funcionalidades de
negcios ou aplicao.
Escalabilidade
Manutenibilidade
Segurana
Acessibilidade e Usabilidade
Integrao
Por determinao da Sefaz e para reaproveitar toda infraestrutura de cdigo disponvel no foi
avaliada outra plataforma, porem outras tecnologias da plataforma .net foram avaliadas.
Utilizao de WebForms: foi descartada pela dificuldade e/ou impossibilidade de trabalhar com
frameworks Javascripts, pois no desenvolvimento no obtemos total controle do HTML gerado, no
garantindo as acessibilidade desejada.
Softwares Utilizados
Caso no sejam instalados os softwares descritos acima a aplicao no ir funcionar como esperado ou
pode nem ser inicializada.
Disponibilidade
Para garantir uma alta disponibilidade os sistemas devem segmentar suas funcionalidades de
forma a aplicar uma distribuio para execuo das suas aplicaes separadas.
Aplicao que envolve processamento batch, recomenda-se no ser executada dentro do IIS;
Funcionalidade que envolve grande quantidade de acesso em uma aplicao distinta, isso evitar
a sobrecarga do ISS em uma nica aplicao que somente conseguir tratar aproximadamente
500 conexes simultneas. (Este item ser atendido quando o hardware tambm suportar tal
intensidade de acesso)
Escalabilidade
Os sistemas devem ser construdos de forma a manter uma escalabilidade vertical,
principalmente para sistemas que possua um grande volume de acesso.
Manutenibilidade
Os componentes devem ser construdos de forma a distribuir o processamento do sistema, e
descentralizar os componentes.
Os componentes dos sistemas produzidos devero manter as nomenclaturas disponibilizadas
neste documento;
Manter o padro de classes e componentes por este documento mencionado
Segurana
Para garantia de segurana do sistema que transacione informao com o contribuinte deve ser instalado
um certificado digital para servidor, que esteja em conformidade com a ICP-Brasil. O acesso a todos os
webservice dever ser feito atravs de uma conexo segura em protocolo HTTPS. O servidor deve
requisitar uma autenticao do cliente atravs de um certificado ICP-Brasil, na qual o IIS verificar se a
cadeia de certificao enviada pelo contribuinte vlida para estabelecer uma conexo segura.
Todas as transaes na qual utilizado login e senha disponvel ao contribuinte devem se estabelecidas
atravs de uma rea segura mantida por SSL (HTTPS).
4. Viso Lgica
Demonstrao da organizao das camadas para aplicaes desenvolvidas em acordo com essa
arquitetura.
Camada de Apresentao
Essa camada conter todas as interfaces visuais, na qual interagir diretamente com o usurio do
sistema. E estar subdividida em:
Visual: contem a pgina Web, e as referencias adequadas para Designer. Observaes:
Deve-se se evitar qualquer tipo de desenvolvimento de cdigo em C# ou linguagem
equivalente nesta camada.
Controle: Contem todos os cdigos necessrios para comunicao entre a camada de
integrao ou negocio, com a pagina Web (Ajax).
Camada de Servio
Essa camada conter todas as interaes de servio, para integrar remotamente com qualquer
tipo de servio que tambm possui a tecnologia para consumir WebService e WCF (Windows
Communication Foundation). Padro de Projeto utilizado (Proxy).
Camada de Integrao
Essa camada conter as interaes necessrias para integrar a camada de negocio com a
camada de apresentao. A integrao deve ser realizada quando o servidor Web e o servidor de
aplicao estiverem em mquina distinta. Padro de Projeto utilizado (Proxy).
Camada de Negcio
Essa camada conter todas as interaes necessrias para estruturao do negocio do cliente.
Padro de Projeto utilizado (Facade, Data Transfer Object, Business Object).
Camada de Persistncia
Essa camada conter todas as interaes necessrias para integrar o banco de dados com os
objetos de negocio, e separar todo tipo de SQL ou linguagens padres de banco de dados, da camada de
negocio. Padro de Projeto utilizado (Singleton, Data Access Object).
Camada de Apresentao
Camanda de Servio
Ws - WebServ ice
Componentes BACH -
Window s Serv ice
Camada de Negocio
Fw kNegocio -
Componentes Negocio DLL
ne<Sistema> Componente
de Negocio DLL
Fw kUtilitarios - Componentes
Utilitarios da Framew ork DLL
Camada de Persistncia
pe<Sistema> Componente
de Persistencia DLL
FWK - Fw kConexao DLL FWK - Fw kPersistencia DLL
Camada de Apresentao
FWK Apresentao (Nome do componente: MasterPage)
Formulrio definido para ser comum a todos as pginas aspx, podendo ser definido por sistema. Possui
tambm os componentes que podero ser agregados aos formulrios de acordo com a definio de
negcio de cada sistema.
Figura 1
Camada de Servio
ws WebService tecnologia para integrar com outros sistemas, devendo ser apenas
implementados os mtodos de negcios, sem qualquer regra de negcio.
ce Sistema Componente de negcio: Ser uma DLL contendo ao para cada negcio e
integrao com o legado (dlls em Delphi) acessado via WCF.
Componentes BACH Windows Service tecnologia adotada para realizar rotinas Bach, devendo
ser implementado sobre um WebService para manter um status do servio.
FWK Componente Servio: Contem todas as definies de servio que sero definidas como
comum.
Camada de Negocio
ne Sistema Componente de negcio: Ser uma DLL com as regras estabelecidas por cada
negcio.
FWK Componente Negcio: Contem todas as definies de negcio que sero definidas como
comum.
FWK Componente Utilitrio Framework: Contem todos os componentes utilizando para manter
o funcionamento da framework.
Camada de persistncia
FWK FwkConexao - h uma DLL, especializada em implementar qualquer tipo de conexo, realizando
as transaes com o banco e as manipulaes de dados com o banco.
A interface web criada automaticamente a partir de um contexto em formato XML, ter as seguintes
reas:
Parmetros de pesquisa:
Varivel este controle conter as colunas que podero ser usadas como filtros de pesquisa. O
usurio poder criar regra de filtros obrigatrios;
Operador este controle conter operadores lgicos (>, <, =, etc) para compor a regra de
pesquisa;
Valor este controle contm o valor a ser pesquisado, podendo inclusive ser inserido uma lista
de valores ou selecionar a partir de uma outra tabela;
Conector este controle permite conectar mais de uma regra de pesquisa.
Regras:
Barra de aes:
Para todos os contexto ser permitido impresso do grid em pdf, arquivo ou excel. As colunas
podero ser configuradas no contexto ou diretamente no grid de resultado;
Podero ser configurados at oito botes de ao;
Todos os oito botes de ao podero conter sub-aoes;
As aes so configuradas no contexto e podero abrir uma nova tela aspx, chamar um mtodo
em um webservice, dll ou simplesmente imprimir relatrios.
Regras implementadas:
tag Colunas id, nome, apelido e formato;
tag Tabelas;
tag Condies clusulas WHERE;
tag Extenses clusulas ORDER BY;
tag Regras - sefViso, sefDeciso, sefObrigatrio, sefLista, sefReferencia.
Contexto de referncia:
tag Colunas alinhamento, mscara e tamanho;
5. Viso de Implantao
Segurana
A aplicao dever estar organizada de forma a conseguir separar fisicamente a interface das
camadas de Negocio, Servio, e Persistncia. Buscando assim, dar uma maior segurana a aplicao.
Quanto h uso de certificado digital, as aplicaes devem ser alocadas em uma rea restrita,
diversa a das aplicaes comuns.
Escalabilidade
A aplicao dever estar preparada de forma a utilizar mltiplos processamentos, possibilitando a
distribuio em mquinas distintas para realizar o processamento.
Manutenibilidade
A aplicao dever estar nas melhores prticas de implementao para que as manutenes
sejam feitas de forma breve, e tambm se adequando e suportando novos ambientes. Viso de
Implementao.
Classe de Negocio
TO<Negocio>: a partir da idia utilizada pelo padro de projeto Transfer Object, essa
classe conter as informaes manipuladas entre a Classe de negocio a classe de apresentao e a classe
de persistncia.
BO<Negocio>: a partir da idia utilizada pelo padro de projeto Business Object, essa
classe conter apenas mtodos de negocio. Neste classe no se manipula transao com o banco de
dados.
Classe de Servio
BD<Negocio>: a partir da idia utilizada pelo padro de projeto Business Delegate, essa
classe conter as implementaes as classes de negocio e persistncia, funcionar como uma fachada
para o negocio. Devendo refletir o mtodo que dever ser executado pela inferface.
5.2. Tratamento Especial
Objetos Remotos
Os objetos remotos para descentralizar o servidor de interface ser determinada atravs de
solicitaes utilizando a tecnologia Remoting.Net. Atravs dessa estrutura ser possvel manipular objetos
virtuais em servidores remotos. Evitando a centralizao do processamento quando houver estruturas
complexas.
Controle de Log
Para controlar todas as interaes realizadas pelo usurio seja o controle de acesso, ou a
execuo de ao ser agregada ao framework classes para controlar os acessos.
Autenticao
Para realizar a autenticao dos sistemas WEB sero utilizados uma interceptao de informao,
pois assim que houver uma requisio na pgina ser enviado ao servidor. Ento a cada requisio todas
as informaes sero monitoradas por uma classe especifica a fim de conceder ou no a permisso.
1. Interface
a. Nome do projeto: app<Sistema>;
b. Referencias necessrias:
i. FwkServico;
ii. FwkNegocio;
iii. FwkApresentao;
c. Nome do pacote: Sefaz.Sistema.Apresentacao;
i. ASPX;
ii. CS;
iii. ASCX;
2. Servio (BD)
a. Nome do projeto: se<Sistema>;
b. Referencias necessrias:
i. FwkNegocio;
ii. FwkPersistencia;
iii. FwkConexao;
c. Nome do pacote: Sefaz.SistemaServico.Servico;
i. BD<Negcio>
3. Negcio (BO e TO)
a. Nome do projeto: ne<Sistema>;
b. Nome do pacote: Sefaz.SistemaNegocio.Negocio;
i. BO<Negcio>
ii. TO<Negcio>
4. Persistncia (DAO)
a. Nome do projeto: pe<Sistema>;
b. Referencias necessrias:
i. FwkConexao;
c. Nome do pacote: Sefaz.SistemaPersistencia.Persistencia
i. DAO<Negcio>
5. Framework Interface
a. Nome do projeto:FwkApresentacao;
b. Referencias necessrias:
i. FwkServico;
ii. FwkNegocio;
ii. FachadaTransao;
iii. FachadaConexao;
iv. ServicoLocConexao;
v. TOConexao;
5.5. Implantao
A implantao poder ser realizada atravs do SISVER. Na atualizao dos componentes que so
desenvolvidos em formato de DLL. Para componentes adversos na qual pertencer prpria tecnologia
do Dot.Net, podero ser implantado atravs do prprio Visual Studio, que possui uma funcionalidade
especifica para implantao dos seus
6. Viso de Implementao
Apresentao
App<Sistema>(Projeto Asp.Net)
Negocio
ne<Sistema>(Biblioteca de Classes)
se<Sistema>(Biblioteca de Classes)
pe<Sistema>(Biblioteca de Classes)
ce<Sistema> (Biblioteca de Classe)
Servio
Web Services
ws<Sistema> (Servios web)
WCF
Bs<Sistema> (Biblioteca de Servios)
Host
sw<Sistema> (Instalador servio Windows)
hs<Sistema> (Host de aplicao IIS)
Neste exemplo, ser mostrada a realizao do caso de uso Manter Remessa do sistema
CCRWeb utilizando a framework visual baseada em contexto.
A primeira parte do projeto a criao do XML que dever seguir um padro de tags e regras
pr-definidas, conforme a necessidade de cada funcionalidade. Segue a imagem do contexto j
construdo (para melhor visualizao, utilizar o zoom):
Alm da definio das tags do contexto, para cada tag necessrio inserir as regras de dada tag.
Segue abaixo a definio de cada regra que poder ser inserida em uma contexto:
sefCompararValor Define que o contedo da coluna ser comparado com outra coluna e a cor
azul ser mostrada no grid se o valores forem iguais, do contrrio mostrar a cor vermelha;
OBS: Todas as colunas podem ter um atributo chamado mascara. Esse atributo aplicado na
tela principal no campo Valor. As possveis mscaras so: data, cpf, cnpj, cfdf,
numerico, alfabeto, alfanumerico;
sefNamespace Dll ou WebService que poder ser chamado no click da ao/subao;
sefModal Nome da tela aspx que ser aberta no click do boto da ao/subao;
sefListaParametros Ser enviado uma lista como parmetro na chamada do Namespace
ao/subao;
sefDuploClick Ser disparado ao ou abertura de um modal ao dar um duploclick no Grid
ao/subao.
Aps a definio do contexto o desenvolvedor dever construir as suas telas aspx, programar aes e
transaes nos WebServices.
7. INTERFACE
7.1 Viso
A criao das estruturas bsicas de interface deve ser orientada pela seguinte tela. Observaes: as
orientaes repassadas neste documento no sero determinantes para estabelecer o designer da
pgina e sim para orientar a organizao dos componentes de interface. No ser utilizado
MasterPage nas paginas de manipulao de funcionalidade apenas nas paginas principais dos
projetos.
Exemplo para controle de manipulao de Tela:
Visualizao antes da consulta:
7.3 Relatrios
Para a gerao de relatrios, a estrutura padro ser a criao de pginas web com todas as
informaes necessrias e definidas nos relatrios, de acordo com cada negcio, e a partir desta
pgina ser gerada a informao no formato que for necessrio ou definido pelo usurio. Paginao
poder ser visualizada atravs de abas e como padro o boto imprimir, conforme figura abaixo.
J na tela de consulta (principal) poder at ser gerados a partir das Grids arquivos Textos, Pdf
ou Arquivos Excel, contendo o resultado das consultas.
Visualizao bsica de um relatrio;