Por que eu devo ler este artigo:Neste artigo veremos a diferença entre controladores de chamadas síncronas e assíncronas e estudaremos as situações onde um e outro podem ser empregados, dando ênfase às chamadas assíncronas. Teremos uma introdução teórica onde entenderemos os termos síncrono e assíncrono e uma pequena descrição da evolução da internet que fez com que precisássemos destes recursos nas linguagens de programação. Também veremos como o IIS (Internet Information Services) trata as requisições síncronas e assíncronas para que possamos entender perfeitamente a sua diferença.

A Internet evoluiu muito nos últimos anos, onde antes somente tínhamos conteúdos estáticos, com HTML simples e ausência de interação com o usuário, nessa época a internet servia somente para o consumo de informação.

Hoje em dia temos o conceito de aplicação Web, com páginas HTML mais elaboradas, que junto do CSS e o JavaScript promovem uma grande interação dos usuários. Temos aplicações na web que vão desde as mais simples, como preenchimento de formulários até complexos sistemas de lojas virtuais. Chegamos, inclusive, a encontrar sistemas corporativos inteiros sendo disponibilizados via web, seja através de uma Intranet ou da própria Internet.

A crescente oferta de aplicativos na web pode ser explicada pela facilidade de distribuição e disponibilidade de acesso. A arquitetura web é baseada em uma arquitetura cliente/servidor, onde o navegador é o cliente e responsável pela exibição e entrada de dados e o servidor pelo processamento destes dados. Um aplicativo web não necessita ser instalado em cada máquina em que será utilizado, basta que esta máquina possua um navegador e acesso à rede. As atualizações também deixam de ser um problema, a versão que se está acessando sempre é a mais recente. Além disso, o acesso ao sistema não fica restrito a uma arquitetura de hardware ou sistema operacional e pode ser acessado a partir de qualquer lugar.

Evolução da Internet

A Internet passou por três fases bem definidas desde o seu surgimento, conforme os cientistas da computação foram vendo todo o potencial desta plataforma, muitos estudos e pesquisas foram feitas de forma que pudéssemos explorar da melhor maneira possível todo este potencial.

A primeira fase foi a da internet estática, onde tínhamos apenas páginas HTML simples, com dados tabulados com as famosas tags HTML. Também não existiam bancos ou repositórios de dados nesta fase. A interatividade do usuário com as páginas era quase nula. Não existiam linguagens dinâmicas dos tipos Server-side como existe nos dias de hoje, como ASP.NET, PHP, JSP, etc. Estas linguagens não trabalham no lado cliente (browser), mas sim no lado servidor, no container (IIS, Tomcat, etc). Naquela época, como a internet era muito recente, existiam páginas apenas para consumo de informação, ainda não se imaginava uma internet onde o usuário pudesse fazer muitas interações, como fazer compras, efetuar pagamentos online, etc. Naquele momento, o fato de termos o consumo destas informações já era algo muito inovador e já bastava. Nesta primeira fase tínhamos um problema muito sério que era a enorme dificuldade de manutenção destas páginas/sites. Para visualizarmos este cenário, basta imaginarmos, por exemplo, um portal de notícias, onde temos ali milhões de notícias que vão se acumulando no decorrer do tempo. Como organizar estes conteúdos? Imagine dar manutenção em uma notícia do passado. Como encontrar o HTML desta página? Este era um grave problema e culminou em vários estudos na plataforma web de modo que estes conteúdos fossem mais dinâmicos e facilitassem também a manutenção. Já nesta fase existiam alguns scripts introduzidos nas páginas através do JavaScript, este recurso esteve presente desde o início da internet e também teve avanços no decorrer do tempo.

Ainda nesta fase podemos perceber que temos uma baixa complexidade no desenvolvimento das páginas/sites, visto que tínhamos apenas que conhecer a linguagem de marcação HTML e poucos recursos de JavaScript, porém estes poucos recursos nos davam pouco poder e interação em nossas páginas, visto que podíamos apenas fazer a exibição de dados tabulados. Percebemos que este é o modelo mais simples de desenvolvimento web, onde as tecnologias eram mais escassas. Nesse contexto havia na maioria das vezes apenas um profissional para a criação e manutenção de um site, o webdesigner. Este profissional fazia todo o trabalho necessário, construía as páginas HTML cuidando do visual e a maneira como as informações seriam exibidas.

A segunda fase da internet, podemos defini-la como dinâmica, sendo uma evolução do modelo estático. Nesta fase tínhamos páginas HTML mais bem elaboradas e foi introduzido o conceito de repositório de dados ou banco de dados, tínhamos páginas com templates que reproduziam informações provindas dos bancos de dados. Agora não mais de forma fixa as informações ficavam nas páginas, mas sim de formas dinâmicas vindas da base de dados. Esta era uma grande evolução e trazia páginas mais inteligentes que exibiam apenas informações desejadas naquele momento e que viam da base de dados naquela requisição. Pensando novamente num portal de notícias, agora todas as informações ficavam armazenadas em um único lugar, no banco de dados, e era somente lá que era feita a manutenção. Os templates também eram os mesmos para quase todas as páginas, de modo que se desejássemos alterar a forma de exibição de uma informação, bastava que alterássemos uma única página de template e esta alteração ir ...

Quer ler esse conteúdo completo? Tenha acesso completo