|
Escrevi
uma série de artigos cobrindo todas as edições do Visual Team System. Chegou
à vez da Edição Team System Architecture. Esta edição é a mais simples e a
menos funcional, no sentido de atender as necessidades do que se propõe, por
isso, foi possível cobrir perfeitamente todas as principais funcionalidades em
um único artigo.
Utilizei
a versão 2008 do Team System, porém você poderá acompanhá-lo tranquilamente
com a versão 2005, pois, no que tange as funcionalidades aqui demonstradas,
as diferenças são sutis ou até inexistentes.
Conceitos
Iniciais
Esta
edição do Team System esta baseada em três conceitos principais: DSL
(Domain-specific languages), Model-Driven Development (MDD) e Software
Factories.
O
conceito de Software Factories não é novo, e, esta de certa forma relacionado
à produção de software na forma de uma linha de produção, onde são
compartilhados elementos entre diversos sistemas, apresentando um ganho em
produtividade, qualidade, previsibilidade entre outros. MDD diz respeito à
criação de modelos, que podem ser utilizados na criação de softwares. Diferentemente
de outros modelos utilizados na construção do software, como um diagrama de
casos de uso, cuja finalidade é de apenas documentar o software, o modelo MDD
esta diretamente relacionada à construção do software, a escrita do código e
a sua configuração. Um modelo MDD deve gerar código automaticamente para a
construção do sistema. DSL pode ser definida como uma forma de modelagem com
um objetivo especifica, a fim de definir um determinado grupo de
funcionalidades do software.
Obviamente
que o objetivo deste artigo é mostrar as funcionalidades da edição
Architecture do Team System, para saber mais sobre os assuntos acima, uma
ótima referencia é o livro Practical Software Factories in .NET 1.
Distributed
System Designer
A
edição Architecture do Team System é baseada no template de projeto
Distibuted System, que nos propicia a construção de alguns diagramas.
Atualmente, existem quatro ferramentas de desenho de sistemas distribuídos:
1. Desenho de datacenter
lógico (Logical DataCenter Designer): Modela a infraestrutura lógica de um
Datacenter, bem como a forma de comunicação entre seus elementos.
2. Desenho de Aplicação
(Applicaton Designer): Modela as aplicações que poderão ser incluídas em
sistemas para implantação;
3. Desenho de Sistema (System
Designer): Modela sistemas;
4. Desenho de Implantação
(Deployment Designer): Modela a implantação de um sistema em um Datacenter
Lógico.
Geralmente
iniciamos o projeto pelo Logical DataCenter Designer, seguido pelo
Application Designer. Podemos ter mais de um Logical DataCenter Designer no
projeto, e estes podem ser independentes, porém só podemos ter um Application
Designer por solução. O Deployment Designer deve ser criado por último, pois
o VS não atualiza a relação de aplicações dos demais diagramas após a sua
criação.
Logical
Datacenter Designer
Vamos
criar uma nova solução utilizando o Template Logical Datacenter Design, do
tipo Distributed Systems:

Sua
solução deve ser criada como na imagem abaixo:

Na
barra de ferramentas (ToolBox), você pode observar diversos objetos que podem
ser adicionados a área de desenho, agrupados em General Desiner, Endpoints e
Logical Servers.

General
Designer possui um controle de conexão para conectar as formas, e um controle
para adição de comentários. O grupo Endpoints possui formas que representas
pontos de comunicação entre os objetos do diagrama. Logical Servers
representam servidores lógicos a serem adicionados na representação do
Datacenter. A forma Zone, no grupo Logical Servers, representa uma zona
qualquer em uma rede lógica, podendo ser uma VPN, internet, DMZ etc. Uma zona
pode conter Servidores Lógicos ou outras zonas.
A
montagem de um diagrama é simples, basta arrastar as formas da barra de
ferramentas para a área de desenho. Para conectar as formas, basta usar o
objeto connection, ou mesmo arrastar o mouse entre um objeto e o endpoint de
outro objeto segurando a tecla ALT. Os endpoints podem ser removidos ou
adicionados aos servidores lógicos.
No
exemplo abaixo, nosso datacenter lógico possui duas zonas, além de um cliente
que não pertence a nenhuma zona (poderia representar, por exemplo, o host da
aplicação em uma zona, uma maquina cliente na internet e a outra zona a
matriz da empresa).

Cada
forma possui diversas propriedades, que podem ser acessadas através da janela
de propriedades do Visual Studio, como em um controle qualquer. Por exemplo,
um endpoint possui uma propriedade CommunicationFlow, cujos valores podem ser
Bidirectional, Outbound ou Inbound. Note que no diagrama acima o endpoint que
recebe as conexões está definido como Bidirectional, você pode perceber isto
pela imagem do mesmo na forma de <>.
Cada
forma possui ainda configurações e restrições, que podem ser acessadas pela
propriedade Settings and Contrains. Você ainda pode criar configurações
personalizadas, selecionando Custom:

Application
Designer
Para
adicionar um Application Designer à solução, clique com o botão direito sobre
a solução, Add, New Item:

Em
Distributed System Diagramas, Selecione Application Diagram:

O
Diagrama é adicionado à solução. Na barra de ferramentas (ToolBox), você pode
observar diversos objetos que podem ser adicionados a área de desenho,
agrupados em General Desiner, Endpoints e Logical Servers:

A
construção do diagrama é feita de forma semelhante: arrastando objetos para a
área de desenho. Neste diagrama também cada forma possui ainda configurações
e restrições, que podem ser acessadas pela propriedade Settings and
Contrains. Você ainda pode criar configurações personalizadas, selecionando
Custom.

Neste
diagrama, como estamos modelando a aplicação, existem algumas
particularidades. Por exemplo, ao conectar uma aplicação com o banco de
dados, o VS vai solicitar as informações para esta conexão:

O
VS pode ainda gerar a aplicação representada no diagrama, já na solução.
Primeiro você define as propriedades da aplicação, como nome, cultura e
plataforma, depois basta clicar com o botão direito sobre o diagrama da aplicação
e selecionar Implement Application:

Após
uma caixa de dialogo com uma mensagem de aviso, a aplicação é criada e
adicionada à solução:

Note
que você ainda pode solicitar a criação de todas as aplicações do diagrama.
Junto
com a aplicação criada, o VS ainda cria um arquivo SDM, que é um modelo de
definição de sistema (System Definition Model). Este é um arquivo em XML que
apresenta uma descrição da aplicação recém criada. Se você clicar sobre o
arquivo no Solution Explorer será redirecionado ao diagrama da aplicação
criado na solução, para visualizar o conteúdo do mesmo, clique com o botão
direito sobre o arquivo, selecione Open With, e escolha XML Editor. Na imagem
abaixo, a visualização do arquivo:

Uma
última observação sobre este tipo de diagrama, é que o Visual Studio permite
a criação de apenas um por solução. Caso você tente adicionar outro diagrama
de aplicação, o VS exibirá uma mensagem de erro, como na imagem abaixo:

System
Designer
Para
criar um diagrama de sistema, basta selecionar uma ou mais aplicações em
nosso diagrama de aplicações, e selecionar Design Application System, como na
imagem abaixo:

O
VS vai solicitar um nome para o sistema:

O
diagrama do sistema é criado:

Você
pode criar um diagrama de sistema independente do diagrama da aplicação. Você
pode ainda ter mais de um diagrama de sistema, e, finalmente, você pode
adicionar um sistema a outro. Se você observar na barra de ferramentas,
existe um grupo Systems para a criação de um subsistema em um sistema já
existente:

Deployment
Designer
Finalmente,
o diagrama de implantação. Este tipo de diagrama não pode ser criado em
branco, ele deve ser criado a partir do diagrama de aplicação, e deve existir
na solução pelo menos um diagrama de lógico de Datacenter. Para criar este diagrama,
clique com o botão direito sobre o diagrama de aplicação e selecione Define
Deployment:

Você
deve em seguida informar qual diagrama lógico de datacenter será utilizado:

O
diagrama é criado. A janela System View deve ser aberta, mostrando as
aplicações do diagrama de aplicações. A partir deste momento, você pode
vincular aplicações listadas no System View com os servidores lógicos do
diagrama de Datacenter lógico, através de operações de arrastar e soltar com
o mouse, de acordo com sua compatibilidade:
Note
na imagem que aplicações que já estão vinculadas recebem um pequeno ícone
verde à esquerda e o atributo <bound>.
O
VS permite que você valide o diagrama, para isto basta clicar com o botão
direito sobre o mesmo e selecionar Validate Diagram:

As
mensagens de validação são exibidas na janela Error List, da mesma forma de
erros de compilação de um código. Finalmente, você pode gerar um relatório do
diagrama, selecionando Generate Deployment Report ao clicar com o botão
direito sobre o diagrama. Abaixo, um modelo de relatório gerado:

Conclusão
A
edição Architecture, apesar de apresentar alguma funcionalidade que podem ser
bastante úteis para um arquiteto de software e de apresentar, na prática
alguns conceitos inovadores com relação a arquitetura de uma solução,
tem ainda poucas funcionalidades disponíveis. A Microsoft tem ainda um
longo caminho a percorrer para tornar o produto realmente útil ao público a
que se destina, situação semelhante, porém mais agravada, ao que apontei com
relação a edição DataBase. A funcionalidade desta edição esta centrada no
conjunto de ferramentas e diagramas Distributed System Designer. Não há ainda
qualquer suporte a UML a não ser o já conhecido digramas de classes, presente
também na Edição Developer e Professional do Visual Studio. Para a edição
2010, em seu primeiro Beta, a situação é um pouco diferente. Já existem
ferramentas e suporte para a criação de pelo menos cinco diagramas UML.
1 Lenz, Gunther, and
Christoph Wienands. Practical Software Factories in .NET. Springer. ©
2006. Books24x7.
|