Arquitetura N Tier (Multi-Tier), 3-Tier, 2-Tier com EXEMPLO

Índice:

Anonim

O que é N-Tier?

Um programa de aplicativo N-Tier é aquele que é distribuído entre três ou mais computadores separados em uma rede distribuída.

A forma mais comum de n camadas é o aplicativo de 3 camadas e é classificado em três categorias.

  • Programação da interface do usuário no computador do usuário
  • Lógica de negócios em um computador mais centralizado e
  • Dados necessários em um computador que gerencia um banco de dados.

Este modelo de arquitetura fornece aos Desenvolvedores de Software a criação de aplicativos / sistemas reutilizáveis ​​com o máximo de flexibilidade.

Em N camadas, "N" refere-se a um número de níveis ou camadas estão a ser utilizados como - 2 camadas, três camadas ou quatro camadas, etc . É também chamada de “ Arquitetura Multi-Camada” .

A arquitetura de n camadas é um modelo de arquitetura de software comprovado pelo setor. É adequado para oferecer suporte a aplicativos cliente-servidor de nível empresarial, fornecendo soluções de escalabilidade, segurança, tolerância a falhas, reutilização e manutenção. Ajuda os desenvolvedores a criar aplicativos flexíveis e reutilizáveis.

Neste tutorial, você aprenderá-

  • O que é N-Tier?
  • Arquitetura N-Tier
  • Tipos de arquiteturas N-Tier
    • Arquitetura de 3 camadas
    • Arquitetura de 2 camadas
    • Arquitetura de camada única ou 1 camada
  • Vantagens e desvantagens das arquiteturas multicamadas
  • Dicas e desenvolvimento de arquitetura N-Tier

Arquitetura N-Tier

Uma representação esquemática de um sistema de n camadas descreve aqui - camadas de apresentação, aplicativo e banco de dados.

Diagrama de Arquitetura da Camada N

Essas três camadas podem ser subdivididas em diferentes subcamadas, dependendo dos requisitos.

Alguns dos sites populares que aplicaram essa arquitetura são

  • MakeMyTrip.com
  • Aplicativo corporativo da Força de Vendas
  • Ferrovias indianas - IRCTC
  • Amazon.com, etc.

Alguns termos comuns a lembrar, para entender o conceito de forma mais clara.

  • Rede Distribuída: É uma arquitetura de rede, onde os componentes localizados nos computadores da rede coordenam e comunicam suas ações apenas passando mensagens. É uma coleção de vários sistemas situados em nós diferentes, mas aparece para o usuário como um único sistema.
    • Ele fornece uma única rede de comunicação de dados que pode ser gerenciada separadamente por diferentes redes.
    • Um exemplo de Rede Distribuída - onde diferentes clientes são conectados dentro da arquitetura LAN de um lado e do outro lado eles são conectados a switches de alta velocidade junto com um rack de servidores contendo nós de serviço.
  • Arquitetura Cliente-Servidor: É um modelo de arquitetura onde o cliente (um programa) solicita um serviço de um servidor (outro programa), ou seja, é um serviço de solicitação-resposta prestado pela internet ou por uma intranet.

    Neste modelo, o Cliente servirá como um conjunto de programa / código que executa um conjunto de ações na rede. Já o Servidor , por outro lado, é um conjunto de outro programa, que envia os conjuntos de resultados ao sistema cliente conforme solicitado.

    • Nesse caso, o computador cliente fornece uma interface para um usuário final solicitar um serviço ou recurso de um servidor e, por outro lado, o servidor processa a solicitação e exibe o resultado ao usuário final.
    • Um exemplo de modelo cliente-servidor - uma máquina ATM. Um banco é o servidor para processar o aplicativo nos grandes bancos de dados do cliente e a máquina ATM é o cliente que possui uma interface de usuário com algum processamento de aplicativo simples.
  • Plataforma: na ciência da computação ou na indústria de software, uma plataforma é um sistema no qual um programa de aplicativo pode ser executado. Consiste em uma combinação de hardware e software que possui uma instrução embutida para que processadores / microprocessadores realizem operações específicas.
    • Em palavras mais simples, a plataforma é um sistema ou uma base onde qualquer aplicativo pode ser executado e executado para obter uma tarefa específica.
    • Um exemplo de plataforma - uma máquina pessoal carregada com Windows 2000 ou Mac OS X como exemplos de 2 plataformas diferentes.
  • Banco de dados: É um conjunto de informações de forma organizada para que possam ser facilmente acessadas, gerenciadas e atualizadas.
    • Exemplos de banco de dados - MySQL, SQL Server e Oracle Database são alguns Dbs comuns.

Tipos de arquiteturas N-Tier

Existem diferentes tipos de arquiteturas N-Tier, como Arquitetura de 3 camadas, Arquitetura de 2 camadas e Arquitetura de 1 camada.

Primeiro, veremos a Arquitetura de 3 camadas, que é muito importante.

Arquitetura de 3 camadas

Observando o diagrama abaixo, você pode identificar facilmente que a arquitetura de 3 camadas possui três camadas diferentes.

  • Camada de apresentação
  • Camada de lógica de negócios
  • Camada de banco de dados

Diagrama de arquitetura de 3 camadas

Aqui, pegamos um exemplo simples da forma do aluno para compreender todas essas três camadas. Ele contém informações sobre um aluno, como - Nome, Endereço, E-mail e Foto.

Camada de interface do usuário ou Camada de apresentação

Camada de apresentação

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e){// Object of the Property layerclsStudent objproperty=new clsStudent();// Object of the business layerclsStudentInfo objbs=new clsStudentInfo();// Object of the dataset in which we receive the data sent by the business layerDataSet ds=new DataSet();// here we are placing the value in the property using the object of the//property layerobjproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());// In this following code we are calling a function from the business layer and// passing the object of the property layer which will carry the ID till the database.ds=objbs.GetAllStudentBsIDWise(objproperty);// What ever the data has been returned by the above function into the dataset//is being populate through the presentation laye.txtId.Text=ds.Tables[0].Rows[0][0].ToString();txtFname.Text=ds.Tables[0].Rows[0][1].ToString();txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();txtemail.Text=ds.Tables[0].Rows[0][3].ToString();

Explicação do código

  • O código acima define o design básico de uma visão de front-end de aplicativos, bem como a chamada de funções de outras camadas para que possam ser integradas umas às outras.

Camada de acesso comercial -

Esta é a função da camada de negócios que aceita os dados da camada de aplicativo e os passa para a camada de dados.

  • A lógica de negócios atua como uma interface entre a camada do cliente e a camada de acesso a dados
  • Todas as lógicas de negócios - como validação de dados, cálculos, inserção / modificação de dados são gravadas na camada de lógica de negócios.
  • Torna a comunicação mais rápida e fácil entre o cliente e a camada de dados
  • Define uma atividade de fluxo de trabalho adequada, necessária para concluir uma tarefa.
// this is the function of the business layer which accepts the data from the//application layer and passes it to the data layer.public class clsStudentInfo{public DataSet GetAllStudentBsIDWise(clsStudent obj){DataSet ds=new DataSet();ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer functionreturn ds;}}

Explicação do código

O código está usando a função de camada de negócios, que aceitará os dados para a camada de aplicativo e os repassará para a camada de dados. Os códigos da camada de negócios atuam como mediadores entre as funções definidas na camada de apresentação e na camada de dados e chamando as funções vice -versa.

Camada de acesso a dados

Esta é a função da camada de dados, que recebe os dados da camada de negócios e executa a operação necessária no banco de dados.

// this is the datalayer function which is receiving the data from the business//layer and performing the required operation into the databasepublic class clsStudentData // Data layer class{// object of property layer classpublic DataSet getdata_dtIDUise(clsStudent obj){DataSet ds;string sql;sql="select * from student where Studentld=" +obj.id+ "order by Studentld;ds=new DataSet();//this is the datalayer function which accepts the sql query and performs the//corresponding operationds=objdt.ExecuteSql(sql);return ds;}}

Explicação do código

O código definido na camada do conjunto de dados acima aceita toda a solicitação: solicitada pelo sistema e executando as operações necessárias no banco de dados.

Arquitetura de 2 camadas:

É como a arquitetura Cliente-Servidor, onde a comunicação ocorre entre o cliente e o servidor.

Nesse tipo de arquitetura de software, a camada de apresentação ou a camada de interface do usuário é executada no lado do cliente, enquanto a camada do conjunto de dados é executada e armazenada no lado do servidor.

Não há camada de lógica de negócios ou camada imediata entre o cliente e o servidor.

Arquitetura de camada única ou 1 camada:

É o mais simples, pois equivale a executar o aplicativo no computador pessoal. Todos os componentes necessários para a execução de um aplicativo estão em um único aplicativo ou servidor.

Camada de apresentação, camada de lógica de negócios e camada de dados estão localizadas em uma única máquina.

Vantagens e desvantagens das arquiteturas multicamadas

Vantagens

Desvantagens

  • Escalabilidade
  • Aumento de Esforço
  • Integridade de dados
  • Aumento da Complexidade
  • Reutilização
  • Distribuição Reduzida
  • Segurança aprimorada
  • Disponibilidade aprimorada

Portanto, é uma parte de um programa que criptografa problemas de negócios do mundo real e determina como os dados podem ser atualizados, criados, armazenados ou alterados para concluir a tarefa.

Dicas e desenvolvimento de arquitetura N-Tier

Considerando que os profissionais de software devem ter controle total sobre todas as camadas da arquitetura, dicas sobre a arquitetura de n camadas são fornecidas a seguir

  1. Tente desacoplar camadas de outra camada, tanto quanto possível, usando uma técnica como sabão XML.
  2. Use algumas ferramentas automatizadas para gerar um mapeamento entre uma camada de lógica de negócios e uma camada de banco de dados relacional (camada de dados). As ferramentas que podem ajudar na modelagem dessas técnicas de mapeamento são - Entity Framework e Hibernate for .Net etc.
  3. Na camada de apresentador do cliente, coloque um código comum para todos os clientes em uma biblioteca separada, tanto quanto possível. Isso maximizará a capacidade de reutilização do código para todos os tipos de clientes.
  4. Uma camada de cache pode ser adicionada a uma camada existente para acelerar o desempenho.

Resumo:

A arquitetura N-tier ajuda a gerenciar todos os componentes (camada de negócios, camada de apresentação e camada de banco de dados) de um aplicativo sob o mesmo teto.

Os aplicativos que usam um pequeno número de usuários em uma rede local podem se beneficiar da arquitetura de n camadas.

Esse projeto arquitetônico verifica a manutenção, a ampliação e a implantação de um aplicativo na Internet de forma eficiente.