Imprimir Post

Arquitetura em Camadas – Encerramento

Resumo:

O objetivo não se aplica a este post.

Uma vez que o conteúdo total desta série foi dividido em 4 partes, deve-se considerar absoluto, o resumo da primeira postagem até o momento presente.

Encerramento - Relembre - Link Primeiro Post

Palavras-chaves:

Arquitetura, 3 camadas, Desenvolvimento, Provisão, Publicação.

Texto:

Ao Servir a Aplicação para todos os usuários (vide post anterior), para o encerramento, será apresentado um pequeno resumo de esclarecimentos pertinentes a cada parte da série Arquitetura em Camadas.

Encerramento - Relembre - Link Post Anterior

Arquitetura em Camadas (Parte 1 e Parte 2) – Modelo de Desenvolvimento em Camadas

O quadro abaixo resume o histórico evolutivo do modelo de Arquitetura Cliente/Servidor juntamente com os modelos de desenvolvimento até atingir o favorecimento da era Web:

Encerramento - Arquitetura Cliente/Servidor - Modelo de Desenvolvimento - Vantagens e Desvantagens

Arquitetura Cliente/Servidor – Modelo de Desenvolvimento – Vantagens e Desvantagens

Arquitetura em Camadas (Parte 3) – Modelo em 3 camadas (3-tier)

Diante das opções disponíveis, em meio a série, decidiu-se criar uma Aplicação com um escopo simples para o: Modelo em 3 camadas (3-tier).

A imagem abaixo resume o comportamento teórico para Aplicação diante do Desenvolvimento em 3 camadas (3-tier):

Encerramento - Representação Visual - Modelo em 3 camadas (3-Tier)

Representação Visual – Modelo em 3 camadas (3-Tier)

O quadro abaixo resume os programas utilizados para criação da Aplicação:

Encerramento - Aplicação - Programas Utilizados

Aplicação – Programas Utilizados

O quadro abaixo resume o comportamento prático para Aplicação diante do Desenvolvimento em 3 camadas (3-tier), após sua criação:

Encerramento - Aplicação - Comportamento prático da Aplicação

Aplicação – Comportamento prático

Vale destacar que:

  • Para fins de organização a camada Modelos foi alterada para DTO;
  • DAL e DTO (Modelos) fazem parte de uma mesma camada em cooperação, o acesso a Dados (Persistência de Dados);
  • Considerando os fatos, com a Solução da Aplicação (Solution) agrupando projetos do tipo Class Library (DTO, DAL, BLL) em combinação com um projeto do tipo Web Site (WebUI) para camada de apresentação, tem-se a denominação: Aplicação ASP.NET.

Arquitetura em Camadas (Parte 4) – Provisão da Aplicação

Com a Aplicação criada, foi apresentado um Cenário hipotético onde haviam algumas máquinas Cliente, dentre estas uma máquina destinada ao desenvolvimento e um Servidor único. A intenção neste ponto foi focar em um cenário sem processos de gestão, sem domínio, levando a uma Intranet simples.

A imagem abaixo resume o Cenário de Rede:

Encerramento - Provisão da Aplicação - Cenário de Rede

Provisão da Aplicação – Cenário de Rede

Com a Aplicação criada e o Cenário de Rede estabelecido, decidiu-se disponibilizar a Aplicação para todas as máquinas da Rede.

O quadro abaixo resume os programas utilizados em que, cada máquina deveria conter para garantir a provisão da Aplicação:

Encerramento - Aplicação - Programas Requeridos

Aplicação – Programas Requeridos

Com os Programas levantados, bastava apenas disponibilizar a Aplicação a todas as máquinas da rede. Sendo assim, fora instruído como gerar-se um “pacote” (publicação) da Aplicação através de um recurso nativo do próprio Microsoft Visual Studio, o chamado Publish.

O quadro abaixo resume o “pacote” da Aplicação após o Publish:

Encerramento - Aplicação - Pacote gerado após a Publicação da Aplicação

Aplicação – Pacote gerado após a Publicação da Aplicação

Vale destacar que:

  • Considerando os fatos, diante da Aplicação publicada, o fonte (código fonte) não foi comprometido e sim protegido, de maneira a transformar-se em um “pacote” contendo arquivos mínimos, prontos para serem transferidos ao Servidor. Em muitas empresas essa prática é chamada de Deploy;
  • Além do “pacote“ da Aplicação, foi instruído determinar-se que o Servidor deveria contém os Scripts de Banco apresentados ainda na criação da Aplicação, além disso, um IP fixo (outra alternativa também seria configurar um nome para máquina Servidor);

Partindo do Servidor, com o “pacote” em posse, restava apenas distribuí-lo as outras máquinas do Cenário de Rede. A partir deste momento, entrou em ação a utilização do IIS (Internet Information Services).

O quadro abaixo resume as configurações do “pacote” da Aplicação em conjunto com o IIS:

Encerramento - Provisão da Aplicação - Configuração IIS

Provisão da Aplicação – Configuração IIS

Vale destacar que:

  • Considerando os fatos, diante da Aplicação disponibilizada, as configurações do IIS foram realizadas de maneira simples, sem a criação de um Pool de Aplicativos (caberá post futuro sobre configurações avançadas do IIS);
  • Outra informação importante é que o Framework utilizado é o 4.0, nativo na instalação do Microsoft Visual Studio 2010.
  • A versão do IIS utilizada para fins didáticos na provisão da aplicação, foi a versão 7;

O acesso finalmente pôde ser realizado apenas com o navegador das máquinas Cliente, pela sequência IP Fixo (ou nome da máquina Servidor) em conjunto com o Alias da Aplicação configurada no servidor e IIS respectivamente.

A imagem abaixo resume o comportamento da solicitação Cliente/Servidor para acesso a Aplicação LinkSinergia diante do modelo em 3 camadas (3-tier):

Provisão da Aplicação - Cenário de Rede - Acesso a Aplicação

Cenário de Rede – Acesso a Aplicação

Provisão da Aplicação - Cenário de Rede - Acesso a Aplicação

Cenário de Rede – Acesso a Aplicação

Considerações Finais:

Em exemplo da Aplicação LinkSinergia, apesar desta ter sido construída no chamado Modelo 3 camadas (3-tier), pode-se considerá-la uma Aplicação a se enquadrar no modelo N Camadas (modelo em 3 camadas mais aperfeiçoado, pelo motivo de garantir também a camada de apresentação em um ponto isolado de acesso).

Outro fator que reforça a afirmação acima, é que, tendo a Aplicação criada (concluída como Aplicação ASP.NET) é possível visualizar que, ao publicá-la (Publish), o “pacote” é gerado com uma combinação de arquivos .Aspx (camada de Apresentação) juntamente com DLL’s (DTO, DAL e BLL) que comunicam-se entre si dependendo apenas de um único Servidor, englobando as funções de: Servidor de Aplicações (conceitualmente apenas um lugar para armazenar a “pacote” da Aplicação) , Servidor Web (aqui quem faz este papel é o IIS) e Servidor de Banco de Dados pois armazena o Banco de Dados também no mesmo ambiente das outras duas funções citadas anteriormente.

Referências Bibliográficas:

– Imagem adaptada do Livro Desenvolvimento em Camadas com C# .NET (Carlos Olavo de Azevedo Camacho Junior)

– Livro Redes de Computadores (Tanenbaum)

– http://www.devmedia.com.br/desenvolvimento-em-3-camadas-conceitos/22277

– http://www.macoratti.net/vbn_mvc.htm

– http://www.devmedia.com.br/arquitetura-de-software-desenvolvimento-orientado-para-arquitetura/8033

– http://www.macoratti.net/12/11/net_arq1.htm

– http://www.macoratti.net/vbn_mvc.htm

– http://www.linhadecodigo.com.br/artigo/2367/abordando-a-arquitetura-mvc-e-design-patterns-observer-composite-strategy.aspx

– http://waldyrfelix.net/curso-de-arquitetura-de-software-dotnet/

– http://blog.globalcode.com.br/2013/11/o-que-e-arquitetura-de-software.html

– http://www.juliobattisti.com.br/artigos/ti/ncamadas.asp

– http://pt.wikipedia.org/wiki/Cliente-servidor

– http://www.techrepublic.com/article/use-aspnet-caching-to-optimize-your-web-applications/

– http://www.devmedia.com.br/asp-net-outputcache-parte-ii/92

– http://www.devmedia.com.br/outputcache/8704

– http://www.linhadecodigo.com.br/artigo/653/aprimorando-cache-do-aspnet.aspx

– http://pt.wikipedia.org/wiki/Arquitetura_multicamada

– http://pt.wikipedia.org/wiki/Cliente-servidor

– http://pt.wikipedia.org/wiki/Software_aplicativo

– http://pt.wikipedia.org/wiki/Modelo_em_tr%C3%AAs_camadas

– http://www.tecmundo.com.br/982-o-que-e-cliente-servidor-.htm

– http://www.juliobattisti.com.br/artigos/ti/ncamadas.asp

– http://pt.slideshare.net/marciaabrahim/arquitetura-cliente-servidor

– http://sidneyvieira.kinghost.net/abas/disciplinas/download/ESI/ES_Desenvolvimento_camada.pdf

– http://en.wikipedia.org/wiki/Clarion_(programming_language)

– http://www.microsoft.com/brasil/msdn/tecnologias/arquitetura/Layers_Developing.mspx

– http://www.dsc.ufcg.edu.br/~jacques/cursos/j2ee/html/intro/intro.htm

– http://pt.wikipedia.org/wiki/UI

– http://pt.wikipedia.org/wiki/L%C3%B3gica_de_neg%C3%B3cio

-http://www.arquivodecodigos.net/dicas/asp-net-o-que-e-a-camada-de-logica-de-negocios-bll-business-logic-layer-e-como-usa-la-em-suas-aplicacoes-asp-net-3127.html

– http://pt.wikipedia.org/wiki/Regras_de_neg%C3%B3cio

Sobre o autor

Thiago Richard Vanicore

Thiago Richard Vanicore formou-se em análise e desenvolvimento de sistemas, possui certificação ITIL Foundation V2 e entre seus conhecimentos estão: ASP .Net (WebForms/MVC5/Web API) C#, HTML5, Html/XHtml, CSS3, JQuery, JQuey Mobile, JavaScript, Xml, Ajax, Json, Microsoft SqlServer, MySql, Firebird, Azure, Visual Studio Online, Scrum, UML, CRM, Quality Assurance, CTI (Computer Telephony Integration) MPSBR (Melhoria de Processos do Software Brasileiro).

Link permanente para este artigo: http://linksinergia.com.br/2014/11/17/arquitetura-em-camadas-encerramento/