Técnicas de Desenvolvimento no lado servidor

Os objetivos do lado servidor de uma aplicação para web variaram ao longo do tempo. Didaticamente, podemos falar em primeira, segunda e terceira gerações.

A primeira geração, que poderíammos chamar de Web 1.0, definia três objetivos do lado servidor:

  • geração das páginas HTML dinâmicas, responsáveis pela interface com o usuário.
  • modelagem das regras de negócio, específicas para cada domínio da aplicação.
  • persistência dos dados, tipicamente por meio de bases de dados relacionais.

A segunda geração, que ficou conhecida como Web 2.0, transferiu a geração das páginas HTML para o lado cliente.

A terceira geração, conhecida pelo nome de aplicações para web progressivas, dá mais autonomia para o lado cliente, possibilitando principalmente seu funcionamento sem que seja necessária comunicação com o lado servidor o tempo todo.

Aplicações simples (tipo CRUD)

O ponto comum entre as três gerações, do ponto de vista do lado servidor, é que as aplicações poderiam classificadas como simples. Simples porque são quase limitadas a realizar operações do tipo CRUD.

Aplicações do tipo CRUD são aquelas onde a principal ênfase está nas operações que envolvem bancos de dados:

  • C (create): armazenar dados
  • R (read) : ler dados armazenados
  • U (update) : alterar dados armazenados
  • D (delete) : remover dados

Neste tipo de aplicação as regras de negócio são em geral muito simples e muitas vezes implementadas diretamente no próprio esquema relacional. O tipo é tão simples que vários frameworks automatizam quase todo o processo de criação de uma aplicação. O exemplo mais conhecido é o Ruby on Rails. Com um modelo de dados formado por algumas classes com relacionamentos simples (1-1, 1-N, N-1 e N-N) e alguns comandos obtém-se uma aplicação plenamente funcional, incluindo o esquema relacional e as telas que permitem ao usuário realizar as operações CRUD.

É natural, portanto, que o processo de desenvolvimento das aplicações tipo CRUD conduza a relação entre o desenvolvedor e o usuário para que este diga, afinal, quais dados precisam ser armazenados no banco.

Assim, enquanto o usuário está falando o que ele faz no dia a dia do se trabalho (quais são os problemas e como ele os resolve) o desenvolvedor só fica prestando a atenção em quais são os tipos de dados e como podem ser armazenados no banco de dados.

Aplicações complexas (tipo Big Data)

Por outro lado há aplicações complexas em relação ao domínio de conhecimento que modelam. As regras de negócio são complexas e frequentemente dependem de um vocabulário conhecido apenas por usuários muito especializados.

Além da complexidade do domínio da aplicação, outra característica presente em aplicações complexas é o grande volume de dados que precisa ser tratado. São as aplicações conhecidas como Big Data.

O volume de dados é grande porque a aplicação é usada por muitos usuários e/ou por muitos dispositivos (Internet das Coisas).

Se nas aplicações CRUD há perda de informação (o U e o D do CRUD), no mundo big data só há espaço para C e R.

results matching ""

    No results matching ""