quarta-feira, 23 de março de 2011

Entendendo as diferenças entre BSP e Web Dynpro ABAP

Vou começar explicando o que é cada um e depois darei alguns exemplos de utilização onde poderemos extrair o melhor que cada uma das tecnologias tem a oferecer.

BSP - Business Server Pages

Surgiu como uma alternativa ao antigo Internet Transaction Server, que traduzia telas ABAP para páginas HTML e mapeava as ações do usuário nesta página as Dynpros de programas Module Pool do R/3. O modelo BSP está disponível desde o Web Application Server ABAP versão 6.20, que é a base do SAP R/3 4.7 Enterprise.

O BSP é um modelo de programação baseado em páginas HTML (Server-side scripting) em ABAP, assim como o antigo ASP da Microsoft (VBScript), o antigo (e imortal) PHP e os JSPs do Java EE. É curioso observar que o BSP traz características bem conhecidas destas linguagens de scripting para o universo ABAP, com a vantagem adicional de prover acesso direto aos elementos do Web Application Server, como módulos de função, acesso a banco de dados através de OpenSQL, ABAP Objects, etc.

Dentro de uma aplicação BSP, é possível adotar o modelo do ASP ou PHP, misturando lógica ABAP com marcações HTML e Client-side Javascript. Esse modelo traz agilidade para se criar páginas dinâmicas em pouquíssimo tempo e com o máximo de flexibilidade no design das páginas, mas vai de encontro a (quase) todos os padrões e boas práticas de desenvolvimento atuais.

É possível usar também as Extensões BSP na forma de Tag Libraries, como em JSPs, que trazem a vantagem de uma interface padronizada, tanto na apresentação quanto na usabilidade, podendo traduzir as páginas em: HTML, usando a extensão HTMLB; e XHTML com a extensão XHTMLB. Esse modelo traz um bom nível de separação entre apresentação e lógica de negócios, comparável ao que pode ser feito com Module Pools ABAP.

Nos modelos apresentados até aqui, é possível programar BSPs sem usar ABAP Objects. Finalmente, o BSP traz uma implementação do padrão MVC, onde temos uma clara separação das camadas de apresentação e da lógica de negócios, assim como Models bem definidos. Nesse modelo, são criados Controllers com base na classe CL_BSP_CONTROLLER2, onde podem ser implementados vários métodos com DO_INITDISPATCH_INPUTDO_REQUESTCREATE_VIEWCALL_VIEWGET_ATTRIBUTECREATE_MODELFILL_MODEL_DATA, etc. Dentre estes, talvez o mais importante seja o DO_REQUEST, onde podem ser processados os dados entrados, depois da devida chamada de DISPATCH_INPUT, e com base nesses dados, preencher os Models, baseados na classe CL_BSP_MODEL e são chamadas as Views, baseados na interface IF_BSP_PAGE, que são linkadas a páginas HTML, que por sua vez podem ter código ABAP para processar lógicas inerentes à apresentação dos dados. As Views podem ser construídas usando os modelos explicados anteriormente: misturando-se código ABAP com marcações HTML e Client-side Javascript, ou usando as Extensões HTMLB ou XHTMLB.


Web Dynpro ABAP

Com o advento da plataforma Netweaver, Web 2.0, a explosão dos Portais Corporativos e a constante demanda de aplicações baseadas em browser com suas várias vantagens, a SAP começou a investir em uma nova fórmula para desenvolvimento de aplicações neste novo e complexo cenário. 

O Web Dynpro Java foi o primeiro a surgir, naturalmente, pois grande parte da plataforma Netweaver é baseada em um Application Server Java, incluindo Enterprise Portal e o Exchange Infrastructure (rebatizado depois de Process Integration). O Web Dynpro ABAP, na verdade, não é muito diferente da especificação Java. Além da linguagem, é claro, o Web Dynpro ABAP tem algumas funcionalidades que pegam carona como o ALV e os Search Helps automáticos, assim como nas Dynpros de Modulo Pools.

Diferente do que temos no BSP, o Web Dynpro implementa de forma muito clara o padrão MVC, e injessa a tecnologia cliente para que possa ser processada não pelo programador, mas pelo framework, onde se detecta qual o cliente fez a requisição e aciona a "renderer class" correspondente. Isso tira um pouco do poder das mãos do programador em função da portabilidade da aplicação, que pode ser executada nos diferentes navegadores desktop (IE, Firefox, Safari, Chrome, etc.) e também em outros dispositivos, com recursos mais limitados, como Pocket IE, Blackberry, Iphone e afins. Existe também um cliente desktop standalone, acoplado ao SAP GUI. Mais recentemente foi lançado o Netweaver Business Client, que pode fazer Mash-Ups de várias aplicações em um único ambiente.
Uma outra grande diferença entre Web Dynpro Java e seu correspondente ABAP, é que como esse último reside no Web Application Server ABAP, ele têm acesso direto aos elementos deste ambiente, assim como BSP. Já no caso do Java, é necessário fazer chamadas RFC (usando o Jco) para ter acesso a módulos de função remotos (como BAPIs) de sistemas baseados em ABAP. 

O Web Dynpro ABAP é tido como a tecnologia Padrão para desenvolvimento de aplicações baseadas em browser pela SAP. Você pode conhecer mais sobre o modelo e os fundamentos do Web Dynpro ABAP aqui.

Nenhum comentário:

Postar um comentário