2.1- MVC2 = MVC + Internet

Com o advento da internet, não demorou muito para que os desenvolvedores começassem a adaptar o MVC para atuar na arquitetura cliente/servidor. A adaptação mais comum é conhecida como Model 2 ou MVC 2. Esse nome está diretamente ligado à ideia de Govind Seshadri.

A adaptação se deve, basicamente, ao fato de na web o protocolo HTTP ser um protocolo do tipo request/response, ou seja, o servidor não responde de maneira proativa, mas sim de maneira reativa. Isso significa que o servidor de aplicação web consegue responder, se e somente se houver uma requisição de algum cliente.

Essa característica implica em adaptações que devem ser feitas nas formas de notificação que a camada de Modelo realiza proativamente na camada de Visão quando da alteração de estado da primeira camada. Apesar do padrão de projeto Observer permitir que os objetos observadores (View's) verifiquem, de modo ativo, por meio de solicitações, os estados dos objetos observados (Model's), que passivamente respondem, este comportamento não é o comportamento default.

O padrão de projeto Observer possui como comportamento essencial (default) aquele que se utiliza do mecanismo de publish-subscribe onde o funcionamento é exatamente o contrário do anterior, ou seja, os observadores (View's) são notificados, de modo passivo, pelos observados (Model's), que ativamente realizam as devidas notificações quando da mudança de seus próprios estados. Isso acontece porque a Visão deve refletir o exato momento que o estado do Modelo se altera. Deste modo, apenas o Modelo sabe, de forma precisa e instantânea, quando seu estado é alterado.

A grande questão é que a View está no lado cliente (ativo) enquanto que o Model está no lado servidor (passivo) e, utilizando-se o protocolo HTTP, é impossível que o servidor (Model's) notifique o cliente (View's). Em função do funcionamento do protocolo HTTP impor limitações ao funcionamento do MVC tradicional, o padrão precisou ser adaptado.

Copyright © 2014 AIEC.