87
1 FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA - UNIVEM FACULDADE DE ADMINISTRAÇÃO ARTHUR ANDREAZI NETO LUCAS SIMÕES MAISTRO WILLIAM MARTÃO RODRIGUES SISTEMAS MULTI-CAMADAS: UMA TENDÊNCIA PARA O DESENVOLVIMENTO DE APLICAÇÕES MARÍLIA 2004

Multi Camadas

Embed Size (px)

Citation preview

  • 1

    FUNDAO DE ENSINO EURPIDES SOARES DA ROCHA

    CENTRO UNIVERSITRIO EURPIDES DE MARLIA - UNIVEM FACULDADE DE ADMINISTRAO

    ARTHUR ANDREAZI NETO LUCAS SIMES MAISTRO

    WILLIAM MARTO RODRIGUES

    SISTEMAS MULTI-CAMADAS: UMA TENDNCIA PARA O DESENVOLVIMENTO DE APLICAES

    MARLIA 2004

  • 2

    ARTHUR ANDREAZI NETO LUCAS SIMES MAISTRO

    WILLIAM MARTO RODRIGUES

    SISTEMAS MULTI-CAMADAS: UMA TENDNCIA PARA O DESENVOLVIMENTO DE APLICAES

    Monografia apresentada a Faculdade de Administrao do Centro Universitrio Eurpides de Marlia, mantido pela Fundao de Ensino Eurpides Soares da Rocha, para obteno do Ttulo de Bacharel em Administrao com Habilitao em Anlise de Sistemas.

    Orientador: Prof. Mestre Elvis Fusco

    MARLIA 2004

  • 3

    ARTHUR ANDREAZI NETO LUCAS SIMES MAISTRO

    WILLIAM MARTO RODRIGUES

    SISTEMAS MULTI-CAMADAS: UMA TENDNCIA PARA O DESENVOLVIMENTO DE APLICAES

    Banca examinadora da Monografia apresentada a faculdade de

    Administrao da UNIVEM/F.E.E.S.R., para obteno do Ttulo de Bacharel em

    Administrao com Habilitao em Anlise de Sistemas.

    Resultado: _______________________________________

    ORIENTADOR: Prof. Mestre Elvis Fusco

    1 EXAMINADOR:___________________________________________________________

    2 EXAMINADOR:___________________________________________________________

    Marlia, 18 de Outubro de 2004.

  • 4

    Primeiramente, dedicamos este trabalho a todos aqueles que nos ajudaram direta ou indiretamente

    para elaborao do mesmo. Eu Arthur,

    dedico totalmente esse trabalho aos meus pais (Jos e Cleuza) que tanto batalharam para eu poder cursar essa faculdade,

    que esta sendo uma oportunidade muito importante na minha vida.

  • 5

    AGRADECIMENTOS

    Inicialmente agradecemos a Deus por nos proporcionar a vida e nos

    permitir estar presente para elaborao dessa pesquisa.

    Agradecemos nossa famlia, por sempre nos dar foras nos momentos

    difceis, e como foram difceis, durante esse perodo de elaborao.

    A nossas namoradas e amigos que sempre estiveram presentes nos dando

    apoio, e nos agentando falar sempre sobre isso.

    Agradecemos ao Elvis (Professor e Orientador), que nos conduziu no

    caminho certo, para podermos estar aqui a um passo do nosso objetivo.

    Valeu Rodrigo pelo resumo em Ingls, muito obrigado Jader (Jadinho)

    pelo resumo em Espanhol, e por nos ajudar a qualquer momento,

    principalmente com os padres da ABNT.

    Muito

    Obrigado a Todos.

  • 6

    Ter obstculos na vida inevitvel... ...ser derrotado por eles opcional.

  • 7

    ANDREAZI NETO, Arthur; MAISTRO, Lucas S.; RODRIGUES, William M. Sistemas Multi-Camadas: Uma Tendncia para o Desenvolvimento de Aplicaes. 2004. 85f. Trabalho de Concluso de Curso

    Centro Universitrio Eurpides de Marlia, Fundao de Ensino Eurpides Soares da Rocha, Marlia, 2004.

    RESUMO

    Com o avano tecnolgico cada vez mais rpido e o uso da informtica cada vez mais presente nos diversos setores de uma sociedade, as dificuldades de encontrar solues para os problemas comuns presentes na maioria das aplicaes se destacam mais e tambm com o nmero de usurios de sistemas crescendo gradativamente surge uma necessidade de melhoria no conceito de desenvolvimento. Essa pesquisa inicia com uma parte conceitual das arquiteturas, comeando pelo processamento centralizado (MainFrame), em seguida chegando ao Cliente/Servidor mostrando o desenvolvimento com regras de negcios na camada Cliente, regras na camada Servidora e regras mesclando as duas camadas, apontando vantagens e desvantagens de seu uso. Logo aps, entra no conceito de Multi-Camadas focando a sua estrutura e vantagens, comparando-a com o modelo Cliente/Servidor. Tambm mostrada uma introduo tcnica sobre alguns conceitos e informaes fundamentais para o desenvolvimento Multi-Camadas. E para demonstrar a utilizao dessa arquitetura, foram utilizados trs ambientes de desenvolvimento: Delphi, Java, ASP.NET.

    Palavras-chave: Middleware. Cliente/Servidor. Multi-Camadas.

  • 8

    ANDREAZI NETO, Arthur; MAISTRO, Lucas S.; RODRIGUES, William M. Sistemas Multi-Camadas: Uma Tendncia para o Desenvolvimento de Aplicaes. 2004. 85f. Trabalho de Concluso de Curso

    Centro Universitrio Eurpides de Marlia, Fundao de Ensino Eurpides Soares da Rocha, Marlia, 2004.

    ABSTRACT

    With the new technological advance growing each time and the use of the informatics each time more inside our lives and on the various sectors of a society, the difficulty on finding solutions for the common problems presents on the most of the applications that most are noticed and also with the system s users number growing gradually comes a necessity of increasing the development concept. This search beginning with a conceptual part of architectures, starting by the centralized process (MainFrame), and on the sequence getting to the Client/Server showing the development with business rules on the Client layer, rules on the layer Server and rules mingled the two layers, pointing advantages and disadvantages of its use. Right after get into the Multi-Layers concept focusing its structure and advantages, comparing it with the Client/Server model. It s also showed a technical introduction about some concepts and informations fundamental for the Multi-Layers development. And to demonstrate the utilization of this structure there were used three environments for development: Delphi, Java, ASP.NET

    Keywords: Middleware. Client/Server. Multi-Layers.

  • 9

    ANDREAZI NETO, Arthur; MAISTRO, Lucas S.; RODRIGUES, William M. Sistemas Multi-Camadas: Uma Tendncia para o Desenvolvimento de Aplicaes. 2004. 85f. Trabalho de Concluso de Curso

    Centro Universitrio Eurpides de Marlia, Fundao de Ensino Eurpides Soares da Rocha, Marlia, 2004.

    RESUMEN

    Con el avance tecnolgico cada vez ms rpido y el uso de la informtica cada vez ms hallado en los diversos sectores de una sociedad, las dificuldades de encontrar soluciones para los problemas comunes encontrados en la mayora de las aplicaciones se destacn ms y tambin con el nmero de usurios de sistemas aumentando gradativamente surge una necessidad de mejora en el concepto de desarollo. Este trabajo se empeza con una parte conceptual de las arquitecturas, empezando por el procesamiento centralizado (mainframe), despus llegando al Cliente/Servidor mostrando el desarollo con reglas de negcios en la camada cliente, reglas en la camada servidora y reglas mezclando las duas camadas, apuntando ventajas e desventajas de su uso. Despus, entrase en el concepto de multi-camadas enfocando su estructura y ventajas, la comparando con el modelo Cliente/Servidor. Tambin es mostrado una introduccion tcnica sobre algunos conceptos y informaciones fundamentales para el desarollo multi-camadas. Y para demostrar la utilizacin de esa arquitectura, fueran utilizados tres ambiente de desarollo: Delphi, Java, ASP.NET.

    Palabras-Clave: Middleware. Cliente/Servidor. Multi-camadas

  • 10

    LISTA DE ILUSTRAES

    FIGURA 1 Modelo Cliente/Servidor.....................................................................................18

    FIGURA 2 Modelo Trs Camadas........................................................................................21

    FIGURA 3 Arquitetura Cliente/Servidor e Trs Camadas....................................................24

    FIGURA 4 Arquitetura N-Camadas......................................................................................28

    FIGURA 5 Middleware de Comunicao..............................................................................31

    FIGURA 6 Arquitetura DataSnap para aplicaes distribuidas.............................................32

    FIGURA 7 Modelo de Aplicao DataSnap..........................................................................44

    FIGURA 8 Camadas de Aplicaes da Web.........................................................................47

    FIGURA 9 Fluxo de Programa centrado em pginas............................................................51

    FIGURA 10 Fluxo de Programa em uma aplicao centrada em servlets.............................53

    FIGURA 11 Uma aplicao de catlogo centrada em servlets..............................................54

    FIGURA 12 Um EJB lidando com a lgica da aplicao......................................................64

    FIGURA 13 Estrutura .Net com a linguagem ASP.NET.......................................................67

    FIGURA 14 Demonstra a arquitetura de uma aplicao ASP.NET......................................70

    FIGURA 15 Aplicaes Web ASP.NET...............................................................................71

    FIGURA 16 As diversas camadas funcionais no modelo de programao .NET.................76

    FIGURA 17 Esquema de Integrao do ADO.NET..............................................................78

    FIGURA 18 Viso sobre o desenvolvimento para internet...................................................80

  • 11

    LISTA DE ABREVIATURAS

    ASP: Active Server Pages

    AO: Object Adapter

    BI: Business Intelligence

    BOA: Basic Object Adapter

    CGI: Commom Gateway Interface

    CLR: Commom Language Runtime

    CLS: Commom Language Specification

    COM: Componente Object Model

    CORBA: Common Object Request Broker Architecture

    COM+: Componente Object Model Plus

    CRM: Customer Relationship Management

    DCOM: Distributed Componente Object Model

    DLL: Dynamic Link Library

    ERP: Enterprise Resource Planning

    EJBS: Enterprise JavaBeans

    GUI: Graphic User Interface

    HTTP: Hyper Text Transfer Protocol

    IDL: Linguagem de Definio de Interfaces

    IIOP: Internet Inter Orb Protocol

    JSP: Java Server Pages

    JDBC: Java Database Connectivity

    MIDL: Microsoft Interface Definition Language

  • 12

    MTS: Microsoft Transsaction Server

    NGWS: Next Generation Windows Services

    OMG: Object Management Group

    ORB: Object Request Broker

    ORPC: Object Remote Procedure Call

    POA: Portable Object Adapter

    RMI: Remote Method Invocation

    SCM: Service Control Manager

    SGDB: Sistemas Gerenciador de Banco de Dados

    SOAP: Simple Object Access Protocol

  • 13

    SUMRIO

    INTRODUO ........................................................................................................................15 METODOLOGIA ......................................................................................................................16

    1. CONCEITOS ........................................................................................................................17 1.1. APLICAES EM UMA CAMADA .......................................................................................17 1.2. APLICAES EM DUAS CAMADAS ....................................................................................18

    1.2.1. Regras na interface..................................................................................................19 1.2.2. Regras junto dos dados ...........................................................................................19 1.2.3. Regras junto interface e junto aos dados..............................................................20 1.2.4. Problemas do cliente / servidor...............................................................................20

    1.3. APLICAES EM TRS CAMADAS:....................................................................................21 1.3.1. As camadas .............................................................................................................22

    1.3.1.1. Camada de apresentao ..................................................................................22 1.3.1.2. Camada de Negcio .........................................................................................22 1.3.1.3. Camada de dados .............................................................................................23

    1.3.2. Vantagens da tecnologia Multi-Camadas ...............................................................23 2. COMPARATIVO - APLICAES TRS CAMADAS X DUAS CAMADAS.................24

    2.1. O MODELO CLIENTE SERVIDOR........................................................................................25 2.1.1. Manuteno do aplicativo .......................................................................................25 2.1.2. Distribuio do aplicativo .......................................................................................25 2.1.3. Performance ............................................................................................................26

    2.2. O MODELO TRS CAMADAS ............................................................................................26 2.2.1. Manuteno do aplicativo .......................................................................................26 2.2.2. Distribuio do aplicativo .......................................................................................27 2.2.3. Performance ............................................................................................................27

    3. APLICAES MULTI-CAMADAS COM DELPHI .........................................................29 3.1. OBJETOS..........................................................................................................................29

    3.1.1. Objetos distribudos ................................................................................................30 3.2. SISTEMAS DISTRIBUDOS .................................................................................................30 3.3. MIDDLEWARE .................................................................................................................31 3.4. DATASNAP......................................................................................................................32 3.5. MULTITIER (MULTICAMADAS).........................................................................................33 3.6. OS PROTOCOLOS..............................................................................................................33

    3.6.1. CORBA (Common Object Request Broker Architecture)......................................34 3.6.2. COM (Component Object Model) ..........................................................................35 3.6.3. DCOM (Distributed Componente Object Model) ..................................................36 3.6.4. MTS (Microsoft Transaction Server) .....................................................................37 3.6.5. COM+ (Componente Object Model Plus) ..............................................................37

    3.6.5.1. Eventos COM+ ................................................................................................38 3.6.6. Sockets ....................................................................................................................39 3.6.7. HTTP (Hyper Text Transfer Protocol) ...................................................................40 3.6.8. SOAP (Simple Object Access Protocol).................................................................41

  • 14

    3.7. COMPONENTES DO DELPHI PARA DESENVOLVIMENTO EM CAMADAS ..............................42 3.8. FUNCIONAMENTO DE UMA APLICAO DATASNAP.........................................................43

    4. A TECNOLOGIA JAVASERVER PAGES (JSP) ...............................................................46 4.1. O JAVASERVER PAGES....................................................................................................46 4.2. AS CAMADAS ..................................................................................................................47

    4.2.1. A camada de apresentao ......................................................................................47 4.2.2. A camada de lgica de aplicao ............................................................................48 4.2.3. A camada de controle .............................................................................................48 4.2.4. A camada de banco de dados ..................................................................................49

    4.3. CONEXO COM A BASE DE DADOS..................................................................................49 4.4. ARQUITETURAS JSP ........................................................................................................50

    4.4.1. Design Centrado em Pginas ..................................................................................50 4.4.2. Design centrado em Servlets...................................................................................52 4.4.3. Servlets para controle da aplicao.........................................................................53

    4.5. ENTERPRISE JAVABEANS ................................................................................................55 4.5.1. O que so JavaBeans?.............................................................................................55 4.5.2. Diferena entre JavaBeans e Enterprise JavaBeans................................................56 4.5.3. Containers EJB .......................................................................................................57 4.5.4. A arquitetura Enterprise JavaBeans ........................................................................58

    4.5.4.1. Java RMI (Java Remote Method Invocation) ..................................................59 4.5.5. Os elementos dos componentes Enterprise JavaBeans...........................................60 4.5.6. Tipo de componentes ..............................................................................................62 4.5.7. Servidores de aplicao ..........................................................................................63

    5. PLATAFORMA .NET..........................................................................................................65 5.1. XML..........................................................................................................................65 5.2. ESTRUTURA .NET...........................................................................................................66 5.2.1. CLR

    COMMON LANGUAGE RUNTIME........................................................................67 5.2.2. .NET FRAMEWORK CLASS LIBRARY......................................................................68 5.3. SYSTEM NAMESPACE.......................................................................................................68 5.4. ASP.NET........................................................................................................................69 5.5. PRINCIPAIS VANTAGENS DESTA TECNOLOGIA..................................................................70 5.5. WEB FORMS....................................................................................................................72 5.6. WEB SERVICES................................................................................................................72 5.7. MULTI-CAMADAS NA PLATAFORMA .NET......................................................................73

    5.7.1. Servios de Apresentao .......................................................................................74 5.7.2. Servios de negcios...............................................................................................74 5.7.3. Camada de Gerenciamento .....................................................................................75 5.7.4. Camada de regras de negcio .................................................................................75 5.7.5. Camada de Dados ...................................................................................................76 5.7.6. Servios de dados....................................................................................................79

    6. AMBIENTE WEB: UMA PLATAFORMA MULTI-CAMADAS .....................................80

    CONCLUSO ..........................................................................................................................82

    REFERNCIAS........................................................................................................................84

  • 15

    INTRODUO

    Com a competitividade fazendo parte do conjunto global de uma empresa, e os

    Sistemas de Informao estando cada vez mais presentes no apoio as tomadas de deciso,

    surge sempre a necessidade de aumentar esse diferencial tecnolgico competitivo de cada

    organizao.

    Vrias possibilidades esto disponveis no mercado como ERP (Enterprise Resource

    Planning

    Planejamento de Recursos Empresariais), CRM (Customer Relationship

    Management

    Gerenciamento de Relacionamento com Cliente), BI (Business Intelligence

    Inteligncia Empresarial), entre outras, mas a questo : qual dessas ferramentas se adapta

    melhor na organizao? E agora tambm qual a arquitetura a ser utilizada? O desenvolvedor

    de hoje tem esse requisito a mais para levantar na sua anlise de projeto, ou seja, vivel

    continuar na arquitetura mais utilizada atualmente, usando o Cliente / Servidor? Ou deve-se j

    migrar para uma nova tendncia que o modelo Multi-Camadas?

    Essa pesquisa tem esse propsito, mostrar os conceitos, a estrutura e como funciona

    as arquiteturas, vindo desde a era do Mainframe, passando pelo Cliente/Servidor e finalmente

    chegando nas aplicaes Multi-Camadas, sempre destacando suas vantagens e desvantagens.

    Tambm foi feito um comparativo entre Cliente/Servidor e Multi-Camadas com a finalidade

    de mostrar que problemas encontrados na estrutura atual podem ser resolvidos com a

    implementao de aplicaes em vrias camadas. E uma parte introdutria em algumas

    plataformas (tecnologias) que do suporte ao desenvolvimento de sistemas em camadas.

    Com isso, o trabalho visa ajudar o desenvolvedor na escolha de uma metodologia, j

    que um dos segredos para o sucesso de um sistema est na escolha adequada de sua

    arquitetura.

  • 16

    Metodologia

    Com auxlio de livros, revistas, dissertaes de mestrado e artigos, tambm

    conflitando as idias dos autores, foram colhidas informaes sobre a parte conceitual das

    camadas, explicando a evoluo das arquiteturas at chegar no modelo Multi-Camadas alm

    de informaes sobre ferramentas para o seu desenvolvimento. Dando base para o andamento

    do trabalho e chegando a um consenso final sobre o assunto.

  • 17

    1. CONCEITOS

    1.1. Aplicaes em uma camada

    As aplicaes baseadas em nica camada, tambm conhecidas como aplicaes

    Mainframe possuem uma arquitetura na quais seus componentes esto integrados em um

    nico programa, sendo executado em apenas uma mquina. Sendo assim possuem terminais

    burros1 , pois os processos so centralizados na mquina Mainframe (Sistema

    Computadorizado de Grande porte), restando ao terminal apenas a funo de apresentar as

    informaes processadas. Devido a esse fator o trafego de informaes causa uma sobrecarga

    na rede deixando-a lenta.

    A abordagem baseada em nica camada prov um nmero significante de vantagens. Desde que uma aplicao seja centralizada em um ambiente singular, essa aplicao mais fcil de executarmos o gerenciamento, controle, e implementar segurana.(GRANDO, BOMFIM, LDA, 2000, PG.3)

    No entanto, estas aplicaes tm um problema com questes de escalabilidade, pois para estas aplicaes crescerem na sua proporo de nmero de usurios, preciso migrar para uma mquina com mais recursos. Ainda temos o problema de que estas aplicaes tm dependncia no ambiente operacional baseado no hardware, e como resultado, estas empresas no podem tirar proveito de novas tecnologias enquanto estas no ficarem disponveis pelo fornecedor. (POOL DE CONEXO E TRS CAMADAS, 2004)

    1 Terminais Burros: mquinas onde no h processamentos.

  • 18

    1.2. Aplicaes em duas camadas

    Estas aplicaes so conhecidas como Cliente / Servidor, onde dividem a aplicao

    nas estaes e no servidor de dados, comumente divididas na primeira camada (cliente) onde

    se encontra a apresentao, as regra de negcios e o acesso aos dados, e fazem a requisio de

    informaes que consta no servidor, assim, se conectam a uma segunda camada (servidor),

    onde h ligao com o SGBD (Sistema Gerenciador de Banco de Dados) que serve aos

    clientes o que foi solicitado, como mostra a Figura 1. Toda ligao entra a maquina cliente e a

    servidora feita por protocolos de comunicao (ex. TCP/IP).

    uma arquitetura que trouxe vantagens em relao a sua antecessora (mainframe)

    que aumentou a velocidade na rede, o processamento deixou de ser totalmente centralizado,

    entre outras.

    Figura 1 Modelo Cliente / Servidor

    Trabalhando com essa arquitetura, h trs opes ao se desenvolver, como: Regras

    na Interface, Regras junto dos Dados e Regras Junto a Interface e junto aos dados.

  • 19

    1.2.1. Regras na interface

    Para sistemas de pequeno porte uma boa opo, mas para outros tipos de sistemas

    torna-se um problema pelas seguintes questes:

    Dificuldades de Manutenes: complicado na hora de modificar regras em

    componentes da aplicao, que podem estar dispersas dificultando a sua localizao, por

    exemplo. Aumentando o grau de dificuldade, se quem for fazer a manuteno, no for o

    criador do sistema.

    Reaplicao das Regras: necessrio modificar todas as ligaes como uma

    tabela, no caso, quando a regras que atualizam essa determinada tabela forem alteradas.

    Dificuldades de Distribuio: quaisquer modificaes nas regras tero que

    redistribuir a aplicao, tornado-se trabalhoso, ainda mais se for um sistema de vrios

    usurios.

    1.2.2. Regras junto dos dados

    Com essa metodologia de desenvolvimento liga-se diretamente a aplicao com o

    banco de dados escolhido, por estar utilizando seus recursos como Stored Procedure,

    Triggers, Views, etc. Tornando muito trabalhosa a possvel troca para um outro banco de

    dados.

  • 20

    E tem a questo da limitao de cada banco de dados, que variam de um banco para

    outro, tendo funes em uns que no existem em outros e vice-versa.

    A questo positiva nesse caso o ganho de desempenho, pois as informaes j esto

    centralizadas no banco de dados, onde aumenta a velocidade do seu processamento. Outra

    questo a questo se segurana que limita o acesso ao banco de dados.

    1.2.3. Regras junto interface e junto aos dados.

    a opo mais adequada para esse tipo de arquitetura, balanceando as regras de

    negcios para no entrar nos problemas descritos acima. Mas importante ressaltar que essa

    metodologia no elimina todos os problemas encontrados no modelo Cliente / Servidor.

    1.2.4. Problemas do cliente / servidor

    Apesar de essa arquitetura ser superior a sua antecessora (Mainframe), por apresentar

    aplicaes com interface para o usurio, com dezenas de clientes suportados e diminuio do

    trafego da rede, o cliente / servidor apresenta desvantagens como na:

    Gerncia de segurana, usurios, aplicaes;

    Integrao de sistemas;

  • 21

    Requisies ao servidor, mesmo os clientes tendo acessos distintos, podem

    sobrecarregar a rede;

    1.3. Aplicaes em trs camadas:

    As aplicaes trs camadas, tambm conhecidas como multi-camadas ou multi-tier,

    a evoluo do modelo cliente / servidor, onde surge uma (ou mais) camada intermediria entre

    a parte cliente e o servidor de dados.

    O ponto fundamental desse modelo a diviso distinta entre as camadas onde no h

    a intromisso de uma na outra. A diviso feita entre a Camadas de Apresentao, Camada

    de Negcios, Camada de Dados, como mostra a figura 2.

    Figura 2 Modelo Trs Camadas.

  • 22

    1.3.1. As camadas

    1.3.1.1. Camada de apresentao

    a interface com o usurio, a qual ele ir ver. sempre indicado criar essa camada,

    simples e estveis, para que seja leve e no de problemas para manutenes. Essa camada no

    consegue acessar os dados diretamente, s acessa a camada intermediria (Camada de

    Negcios), portanto, aumentando a segurana da aplicao.

    1.3.1.2. Camada de Negcio

    onde esto s regras do negcio, tambm conhecidas como Servidor de Aplicao,

    que faz o intermdio entre o cliente e o servidor, ou seja, executa processos para servir as

    requisies solicitadas pelos clientes. Uma colocao muito importante a se fazer, que essa

    camada a nica responsvel pelo acesso aos dados. onde a aplicao pode se tornar 3, 4 ou

    n camadas, bastando acrescentar o nmero de camadas necessrias. As manutenes nas

    regras do sistema apenas feita nesse local, facilitando na manuteno.

  • 23

    1.3.1.3. Camada de dados

    Onde ficam armazenados os dados (Banco de Dados). No modelo em camadas,

    indica-se utilizar a metodologia de se usar o banco s como repositrio de dados, ou seja, no

    utilizar as funes tradicionais do banco (Stored Procedure, Triggers, etc.), para centralizar as

    regras de negcios, assim no havendo a disperso das regras, mas isso fica a critrio do

    desenvolvedor.

    1.3.2. Vantagens da tecnologia Multi-Camadas

    Mesmo o modelo multi-camadas tendo obstculos como, dificuldades de

    implementao, e at mesmo poucos profissionais especializados no mercado, prov muitas

    vantagens para os sistemas desenvolvidos no seu contexto, dando eficincia e agilidade nas

    aplicaes, como:

    - A facilidade na gerncia de segurana e usurios, na integrao de sistemas,

    aplicaes clientes menores e independncia de banco de dados.

    A questo da vantagem continuar sendo abordada no prximo capitulo, onde

    poder ser visto realmente na comparao entre arquiteturas, a superioridade do

    desenvolvimento em camadas.

  • 24

    2. COMPARATIVO - APLICAES TRS CAMADAS X DUAS CAMADAS

    Este captulo tem como objetivo fazer um comparativo (Figura 3) entre o

    modelo multi-camadas e o modelo Cliente/Servidor, mostrando a necessidade de se

    desenvolver aplicaes em trs camadas, para evitar possveis problemas futuros como

    identificados no prxima captulo.

    Figura 3 Arquitetura Cliente/Servidor e Trs Camadas

  • 25

    2.1. O modelo cliente servidor

    2.1.1. Manuteno do aplicativo

    As regras ficam divididas entre a aplicao (cliente) e banco de dados, dificultando a

    manuteno, para as atualizaes e entender as rotinas muito trabalhoso, ainda mais se for

    uma equipe que no tenha seguido um padro, ou at mesmo uma que no seja as

    responsveis pelo desenvolvimento do sistema.

    2.1.2. Distribuio do aplicativo

    Logo aps uma atualizao necessria a redistribuio do aplicativo, para que os

    clientes tenham acesso s novas rotinas, tornado muito trabalhoso se o sistema tiver muitos

    usurios. E quando a necessidade de mudar alguma regra necessrio que todos os usurios

    estejam desconectados do banco de dados.

  • 26

    2.1.3. Performance

    O cliente / servidor comea a perder performance quando a rede amplia-se muito e a

    aplicao recebe muitas requisies dos clientes ao mesmo tempo, e acaba formando o

    gargalo de rede (Figura 3), e mesmo alterando a aplicao (deixando a mais leve) e com um

    servidor mais robusto, os problemas persistem, quando chegou no ponto, onde a aplicao

    cliente / servidor no supri mais a necessidade dos usurios, causando uma grande lentido no

    processamento das informaes e consecutivamente na rede.

    2.2. O modelo Trs Camadas

    2.2.1. Manuteno do aplicativo

    Como as regras de negcios devem estar todas no servidor de aplicao, facilita

    qualquer possvel alterao, j que as regras esto no mesmo lugar, portanto as regras no

    ficam junto aos dados.

  • 27

    2.2.2. Distribuio do aplicativo

    Aps uma alterao nas regras de negcios no h a necessidade de redistribuir as

    aplicaes nos clientes, pois elas j enxergam as atualizaes, ou seja, as novas regras que

    foram alteradas na lgica de aplicao, como demonstra a figura 4.

    2.2.3. Performance

    onde est a maior vantagem do modelo multi-camadas, que tem a parte de

    processamento totalmente separada no servidor de aplicao. Ainda podendo acrescentar

    novos servidores (que chamado de escalabilidade, que quando no aumento de usurios e

    sistemas a aplicao continua suportando, que ele pode ser escalonvel), que podero oferecer

    servios diferentes, como no exemplo exposto na figura 4, assim balanceando as requisies

    feitas pelos clientes, e consecutivamente mantendo a velocidade da rede.

  • 28

    Figura 4 Arquitetura N-Camadas

    Tambm se pode utilizar dois servidores para a mesma lgica, tambm ganhando em

    desempenho e ainda na questo se por algum motivo um dos servidores no estar disponvel

    no momento, aciona-se automaticamente o outro, assim no perdendo a conexo.

  • 29

    3. APLICAES MULTI-CAMADAS COM DELPHI

    Nesse capitulo sero abordados algumas das possveis maneiras de como

    desenvolver aplicaes Multi-Camadas no ambiente Delphi, onde vai ser visto os protocolos

    disponveis para se trabalhar com DataSnap, e o entendimento sobre essa tecnologia.

    Antes de iniciar os assuntos, necessrio entender alguns conceitos.

    3.1. Objetos

    De acordo com Rodrigues (2002, p.06), so entidades que manipulam e encapsulam

    informaes, possuem um estado e dados, sendo que posso modificar e obter informaes

    sobre os mesmos. Existem nos objetos:

    Atributos: que correspondem a um valor guardado no objeto.

    Classificao: o agrupamento de caractersticas semelhantes.

    Abstrao: abstrair caractersticas de um objeto.

    Encapsulamento: muito parecido com a abstrao, pois permite ocultar

    detalhes de implementao ao mundo exterior.

    Identificao: cada objeto tem uma identidade que o identifica e o distingue

    dos demais objetos.

  • 30

    3.1.1. Objetos distribudos

    So como os objetos tradicionais, mas com a possibilidade de serem executados

    independente de sua localizao, onde disponibilizam os seus mtodos e propriedades,

    podendo ser acessados por outros objetos por um cdigo gerado pelo compilador,

    independente de onde foi gerado sendo uma mquina local ou mquinas espalhadas por uma

    rede.

    3.2. Sistemas distribudos

    Com esses dois conceitos citados anteriormente, pode-se chegar questo de

    Sistemas Distribudos, que so aplicaes que rodam espalhadas por uma rede, no entanto so

    integradas (conjunto), hoje em dia tem se falado muito, e implantado tambm, devido

    grande disponibilidade de meios de comunicao e hardware, e o barateamento dos mesmos.

    Espalhados entre mquinas clientes e servidoras, assim ajudando no processamento de

    informaes, consecutivamente ganhando desempenho.

    Obtendo vantagens como, de crescimento, podendo agregar mais recursos

    (computadores e meio de comunicao) ao sistema; a replicao de processos, obtendo uma

    tolerncia a falhas, entre outras.

  • 31

    3.3. Middleware

    Conforme Kon (2003) o software que reside entre o sistema operacional e a

    aplicao a fim de facilitar (simplificar) o desenvolvimento de aplicaes, onde surge o

    Middleware de comunicao, cujo objetivo facilitar o desenvolvimento de aplicaes e

    sistemas distribudos. Como mostra a Figura 5.

    Figura 5 Middleware de Comunicao

    E tem como benefcios esconder do programador plataformas de hardware, sistemas

    operacionais, bibliotecas de comunicao, protocolos de comunicao, formatao de dados,

    linguagem de programao, modelos de programao. E tambm gerenciamento de nomes e

    referncia ativao automtica de servios, migrao de servios, gerenciamento de

    concorrncia, entre outros.

  • 32

    3.4. DataSnap

    DataSnap um conjunto de ferramentas para o desenvolvimento de aplicaes

    distribudas (multicamadas) que trabalham integradas e, o nome dado ao antigo Midas2, que

    foi alterado pela Borland3.

    Como mostra a Figura 6 uma aplicao dividida em trs partes, mas, percebe-se com

    esse novo modelo de aplicao algo diferente, que existe uma camada no meio, onde ser

    feito o meio-de-campo da aplicao, chamado de servidor de aplicao.

    Figura 6 Arquitetura DataSnap para aplicaes distribudas.

    IAppServer uma interface de comunicao existente entre a aplicao cliente e o

    servidor de aplicao, em um arquitetura DataSnap (utilizando COM ou Sockets). Importante

    saber que essa interface est incorporada dentro dos componentes

    (ClientDataSet/DataSetProvider), que no necessrio us-la diretamente.

    Nota-se que o cliente no tem acesso diretamente aos dados, que uma das funes

    do servidor de aplicao, assim, consecutivamente aumentando a segurana.

    2 Multi-tier Distributed apllication Services, tem o seu foco no desenvolvimento de aplicaes em camadas,

    permitindo maior independncia entre as camadas. (WILDT, 2002) 3 Empresa desenvolvedora da Plataforma Delphi, entre outros.

  • 33

    3.5. Multitier (multicamadas)

    Com toda evoluo em sistemas e tecnologia e solues para sistemas distribudos

    como Socktes, HTTP, CORBA, COM+, SOAP, e todas essas opes que os desenvolvedores

    tm sua disposio, se fez necessrio ferramentas que ajudassem e facilitassem o

    desenvolvimento e a implementao de aplicaes e o acesso a dados distribudos. Conforme

    a evoluo normal de aplicaes Mainframe para aplicaes Cliente/Servidor, agora aparece

    em alta o conceito de Multi-Camadas. Portanto, nota-se [...] como o Delphi e DataSnap

    podem facilitar o desenvolvimento de aplicaes distribudas, proporcionando maior

    produtividade na implementao. (WILDT, Daniel. Aplicaes Multi-Camadas: entenda o

    MIDAS e MultiCamadas. ClubeDelphi, Rio de Janeiro, ano 2, n.16, p.21-25, 2002)

    Esta tecnologia j est disponvel h algum tempo, e que vem sendo bastante

    comentada e destacada pelas suas vantagens em relao ao cliente/servidor, mas atualmente

    so poucos que a implementam, por motivos (mais encontrados) de custos ou problemas na

    distribuio da aplicao, o Delphi d suporte a essa plataforma desde a sua verso 3.

    3.6. Os protocolos

    So esses os protocolos que fazem a comunicao entre a camada de interface e o

    servidor de aplicao. So vrias possibilidades de protocolos para se trabalhar com

  • 34

    DataSnap, e cabe ao desenvolvedor escolher a melhor opo, pois uma boa escolha do

    protocolo pode ser a chave do sucesso de uma aplicao.

    3.6.1. CORBA (Common Object Request Broker Architecture)

    Conforme Wildt (2002, p.24), CORBA, o resultado de um projeto de algumas

    empresas, que fazem parte da OMG (Object Management Group). Que foi estabelecido um

    padro no desenvolvimento de aplicaes distribudas. Chegando-se a um padro rpido e

    fcil de fazer a integrao entre mdulos de aplicaes, integrando objetos de forma clara

    local ou remotamente, independente da linguagem que foi desenvolvido.

    As suas interfaces de programao so definidas para o Object Request Broker

    (ORB4), que quem recebe as requisies e responde aos clientes, a comunicao remota

    feita atravs do IIOP5 (Internet Inter-ORB Protocol).

    Utiliza-se CORBA enquanto possuir suporte da plataforma para o ORB, que no caso

    da Borland existe para Windows e UNIX. Para os objetos CORBA, so manipulados atravs

    de uma IDL (Linguagem de Definio de Interfaces).

    A tecnologia CORBA espelha-se em um modelo de orientao a objetos, que

    compe um ambiente aberto e distribudo, que integram componentes aumentando a

    reutilizao dos mesmos, medida que todos se comunicam atravs de uma linguagem (IDL),

    que ser gerada pelo Delphi.

    4 o responsvel pela localizao do objeto ao qual se destina a requisio e, tambm, pelo envio de parmetros

    reconhecidos por este objeto. (RODRIGUES, 2002) 5 Protocolo de comunicao baseado no TCP/IP, que descarta o uso do HTTP. (RODRIGUES, 2002)

  • 35

    Algumas caractersticas:

    Os parmetros que passam entre o Cliente e o Servidor de Aplicao so feitos

    por referncia no por valor;

    Quem tem de encontrar um objeto o ORB;

    A funo de ativar este objeto do AO (Object Adapter, um dos responsveis

    pelas interaes do objeto ORB), tanto do BOA (Basic Object Adapter) como do POA

    (Portable Object Adapter).

    necessrio conhecer a interface do objeto para acess-lo, pela IDL o cliente

    conhece os mtodos e atributos de um objeto, isso para linguagens estticas, assim

    conseguindo acessa-los.

    Os objetos CORBA tm uma caracterstica nica (identificador), que por ele que se

    faz a localizao de um objeto, utilizado tambm para guardar o estado do objeto, podendo

    us-lo depois. J clientes utilizam fazerem a comunicao de um determinado objeto.

    3.6.2. COM (Component Object Model)

    Desenvolvido em 1993, com a funo de dar suporte para as diferentes partes de um

    sistema poderem se comunicar. Para o COM independente a linguagem em que se foi

    desenvolvido a aplicao, para ele o importante o acesso dos objetos atravs das Interfaces,

    pois a responsvel por chamar objeto independente da linguagem. (RODRIGUES, 2002,

    p.17-18)

  • 36

    3.6.3. DCOM (Distributed Componente Object Model)

    De acordo com Wildt (2002, p.24-25), um modelo criado pela Microsoft, que uma

    extenso da tecnologia COM (tambm da Microsoft), dando suporte a chamada de objetos

    remotos utilizando ORPC (Object Remote Procedure Call), como CORBA o DCOM declara

    interfaces atravs da IDL.

    DCOM no segue a definio de orientao a objetos, so apenas funes

    relacionadas, que independem da linguagem de implementao.

    Seus clientes utilizam a MIDL (Microsoft Interface Definition Language) para se

    comunicarem entre si, essa linguagem gerada pelo Delphi.

    Algumas caractersticas:

    Utiliza-se DCOM enquanto a plataforma a suportar, que implemente seus

    servios. Que so: Windows, UNIX e Linux;

    A identificao feita pelo Class ID (mapeamento que se encontra no registro

    Windows)

    Para manipular um objeto do cliente, se usa um ponteiro para interface;

    Pode-se escolher se os parmetros (entre Cliente e Servidor de aplicao) sero

    passados por referncia ou valor;

    Quem deve encontrar um objeto do SCM (Service Control Manager);

    Quem ativa este objeto tambm do SCM;

    Como no CORBA, DCOM oferece a possibilidade de inovaes de mtodos de

    maneira dinmica e esttica. E j ao contrrio de CORBA, ele no mantm o estado do objeto,

    no deixando os clientes se conectarem novamente a um objeto por sua conexo anterior.

  • 37

    No DCOM no h um ID (identificador), existe um ponteiro para interface, e no

    para o objeto, assim desvalorizando o seu papel de objetos instanciados.

    3.6.4. MTS (Microsoft Transaction Server)

    Segundo Rodrigues (2002), o servidor de transaes da Microsoft. como se

    fosse objetos COM, que do suporte a transaes para banco de dados. O MTS compe o

    Windows 98 (com PWS6 instalado) e Windows NT. O MTS uma expanso do COM,

    necessrio para o desenvolvimento de sistemas multicamadas que tenham acesso a dados, ele

    compe vrios recursos existente no DCOM e tambm um gerenciador baseado no MMC

    (Microsoft Management Console).

    3.6.5. COM+ (Componente Object Model Plus)

    Conforme Rodrigues (2002), MTS a evoluo do DCOM, COM+ a evoluo do

    MTS, portanto, COM+ o protocolo que contem todas as caractersticas do DCOM e do MTS

    juntos e ainda traz outros recursos como:

    6 Personal Web Server: um simulador, para suprir a ausncia de um servidor Web, podendo criar um ambiente

    Internet real na prpria mquina. (DELPHI & E-COMERCE, www.clubedelphi.net, acessado 26/06/2004).

  • 38

    Pooling: quanto um objeto pode manter instncias, atendendo vrios clientes.

    Assim que COM+ se torna escalonvel. No momento que o cliente fiz uma requisio, o

    COM+ procura por um objeto no Pool, e se for preciso instancia-o novamente.

    Escalabilidade: quando se pode aumentar as conexes concorrentes ao objeto,

    e o COM+ no perder a sua performance. Isso ocorre atravs o Pooling.

    Gerenciamento: onde se administra o COM+. Pode-se instalar, exporta e

    gerenciar objetos COM+.

    Transaes: Podem-se fazer transaes em objetos e em Banco de Dados. Com

    isso permite h objetos diferentes estejam em uma nica transao, mesmo que o objeto no

    acesse o Banco de Dados. Pode ser criada na instncia do objeto, e finalizada por usurios ou

    pelos mtodos SetComplete (como o Commit) e SetAbort (como o RollBack).

    3.6.5.1. Eventos COM+

    Relacionam-se com as Interfaces de objeto, este mesmo evento pode atender a vrias

    requisies de clientes e distribuir este evento para todas uma s vez. Uma opo em relao a

    eventos no COM+ a possibilidade de dar um refresh7 nos clientes (que utilizam a mesma

    Interface).

    7 Atualizao das informaes.

  • 39

    3.6.6. Sockets

    Comenta Wildt (2002, p.23), os Sockets faz a comunicao entre aplicaes atravs

    de TCP ou UDP, por exemplo. Na utilizao de Sockets o desenvolvedor deve implementar o

    protocolo de comunicao entre o Cliente e o Servidor de Aplicao. A utilizao de Sockets

    com DataSnap deixa a aplicao cliente leve , garantindo mais acesso a aplicao

    conectando-se ao servidor, assim ajudando na comunicao com o Servidor de Aplicao.

    O funcionamento ocorre atravs de um instncia de uma classe TSocketConnection

    (responsvel pela comunicao entre Cliente e Servidor de Aplicao) para a conexo

    necessrio que o servidor de aplicao esteja executando o AcktService.exe (quem aceita as

    conexes, ativa o modulo de dados remoto usando COM).

    Como segurana o Servidor de Aplicao deve liberar o uso de conexo com

    Sockets.

    Por definio, os mdulos de dados remotos (TRemoteDataModules) criados possuem estas funcionalidades liberadas. Aps a criao de um modulo de dados remoto, estes registram o uso de conexes com sockets dentro do mtodo UpdateRegistry (automaticamente criada), realizando a chamada do mtodo EnableSocketTransport. Um modulo de dados remoto pode aceitar conexes Sockets, HTTP, e DCOM.

    O obstculo em relao ao Sockets quando o cliente termina o programa de uma

    forma no normal (ex: falta de energia eltrica), assim o servidor no consegue perceber isso,

    e com essa falha fica na memria do servidor o espao instanciado pelo Cliente, que poderia

    estar sendo usado por outro processo. No como no DCOM que o servidor sempre envia

    mensagens para os Clientes para saber se esta ativo. Isso ganha desempenho na questo de

  • 40

    enviar e receber mensagens mas ao mesmo tempo, uma falha no armazenamento de dados

    do servidor.

    3.6.7. HTTP (Hyper Text Transfer Protocol)

    Conforme Wildt (2002, p.23-24), o HTTP trabalha semelhante ao uso de RPC

    (Remote Procedure Call), utilizando TCP/IP. Dessa forma a aplicao no mantm o estado.

    Funciona da seguinte maneira: (1) estabelecida uma conexo do cliente com o

    servidor, (2) feita uma requisio, (3) processada essa requisio (pelo servidor), assim

    retornado para o cliente e logo aps finalizando a comunicao.

    Em questo de segurana possvel se comunicar com um servidor, mesmo

    protegido por um firewall, assim as aplicaes clientes so distribudas com segurana. Pode-

    se incluir um Servidor Web para ser responsvel para validao de usurios.

    Como Sockets o servidor deve liberar a criao de conexes com HTTP, e tambm

    deixa a parte cliente mais leve.

    Requisitos para utilizao de HTTP com DataSnap:

    Deve-se ter instalado no cliente uma DLL chamada Wininet.dll, que

    encontrada no diretrio System do Windows, caso possua, instalado, o Internet Explorer 3 ou

    superior;

    A DLL HTTPsrvr.dll deve estar instalada no servidor Web com o qual o

    aplicativo cliente faz a conexo. Esta DLL a responsvel por disparar o servidor de

    aplicao e conduzir as requisies ao servidor de aplicao.

  • 41

    Com o uso de HTTP tem a possibilidade que o sistema operacional Windows NT

    Enterprise, que o mesmo fornece a criao de cluster de servidores8.

    3.6.8. SOAP (Simple Object Access Protocol)

    De acordo com Rodrigues (2002), SOAP um modo de usar a infra-estrutura da

    Internet existente para permitir que as aplicaes se comuniquem diretamente entre si sem

    serem bloqueadas por Firewalls .

    baseado em XML. Quando chama-se os mtodos atravs de RPC, esses tambm

    so codificados em XML. Atravs de HTTP feita a troca de mensagens assim deixando esse

    tipo de protocolo leve tambm., tambm descarta problemas com firewall no servidor.

    SOAP tende a facilitar o desenvolvimento das aplicaes distribudas, e tambm as

    suas comunicaes j que o mesmo feito em XML e, assim eliminado a necessidade da

    atualizao do Windows 95.

    8 Recurso que possibilita um balanceamento de carga real e tolerncia a falhas do servidor de aplicao

    implementado pelo uso da tecnologia DataSnap. (WILDT, 2002)

  • 42

    3.7. Componentes do Delphi para desenvolvimento em camadas

    Mas como est se falando de Delphi, importante se familiarizar com os

    componentes do mesmo. Wildt (2002, p.22), sobre os componentes do servidor de aplicao

    refere-se:

    Servidor de aplicao: camada responsvel por receber as requisies de clientes,

    realizarem o acesso a dados e retornar ao cliente o resultado da requisio. .

    Componentes existentes no servidor:

    Mdulos de dados remotos criam Interfaces para serem exportadas para as

    aplicaes clientes. Que devem ser de 3 tipos:

    1. TRemoteDataModule: implementa o mdulo de dados para aplicaes que

    utilizam os componentes de conexo DCOM, HTTP e Sockets;

    2. TCorbaDataModule: implementa o mdulo de dados para aplicaes

    CORBA utilizando componente de conexo CORBA;

    3. TMTSDataModule: usado no projeto de bibliotecas ActiveX;

    DataSetProvider: faz a ponte de entrada pois prov os dados a um DataSet

    (tabela, consulta ou StoredProcedure) onde esta conectado. Codifica dados em pacotes, que

    sero encaminhados para as aplicaes clientes e tambm aplica atualizaes nas bases de

    dados, conforme retorno das aplicaes clientes;

  • 43

    Wildt (2002, p.22), sobre os componentes da camada de interface (cliente) refere-se:

    Cliente: a camada de apresentao com o usurio.

    Componentes existentes no cliente:

    Componentes de conexo: quem faz a comunicao com o servidor de

    aplicao, que depende da tecnologia utilizada, como: (TCORBAConnection

    CORBA,

    TDCOMConnection

    DCOM, TWebConnection

    HTTP, TSocketConnection

    Sockets

    TCP/IP, TSOAPConnection - SOAP).

    TClientDataSet: utiliza os dados providos do DataSetProvider e negocia no

    momento de atualizar as informaes. Faz a abstrao no acesso a dados, quem mostra os

    dados que vem do Servidor de Aplicao.

    TSimpleObjectBroker: componente guarda uma lista de servidores disponveis,

    e encaminha para os componentes de comunicao.

    3.8. Funcionamento de uma aplicao DataSnap

    O modelo de uma aplicao DataSnap composto de vrios componentes do Delphi.

    A Figura 7 retrata uma aplicao em camadas (de forma geral), para o possvel entendimento

    bsico de cada camada utilizando o Delphi. Importante dizer que qualquer componente de

    conexo como: TCORBAConnection

    CORBA, TDCOMConnection

    DCOM,

    TWebConnection

    HTTP, TSocketConnection

    Sockets TCP/IP, TSOAPConnection

    SOAP, tem que estar presente na parte cliente para fazer comunicao com o servidor de

    aplicao, portanto cabe ao desenvolvedor escolher o melhor para o seu projeto, tambm

  • 44

    podendo usar na parte cliente um componente SimpleObjectBroker para guardar uma lista de

    servidores que estaro disponveis no servidor de aplicao, caso algum encontre algum

    problema ele aciona outro.

    Figura 7 Modelo de aplicao DataSnap

    A aplicao esta dividida em trs partes: cliente, servidor de aplicao, banco de

    dados, o fluxo de informaes ocorre da seguinte forma:

    O componente SQLConnection do servidor de aplicao faz a conexo com o banco

    de dados, onde sero feitas as trocas de informaes. Logo abaixo do componente

    SQLConnection, vem os que iro compor as regras de negcio (SQLDataSet, SQLQuery,

    SQLTable, SQLStoredProc), que por ter um cursor unidirecional (s faz consultas, no inclui,

    no altera, no exclui) que so os quais iro fazer as requisies SQL, assim passando para o

    DataSetProvider, que ira prover os dados para o ClientDataSet (aplicao cliente), que est

    ligado a um DataSource, que mostra as informaes do banco de dados na aplicao cliente.

    Ba

    se

    Da

    dos

    Clie

    nte

    Serv

    ido

    r

    de

    Aplic

    a

    o

    ApplyUpdatesDataPacket

    CursorUnidirecional

    Cache LocalCursor Bidirecional

  • 45

    O ClientDataSet, que possui cursor bidirecional (consulta, inclui, altera, exclui), coloca as

    informaes passadas pelo DataSetProvider na memria e trabalha normalmente com elas,

    aps as devidas manipulaes, o ClientDataSet utiliza o mtodo ApplyUpdates, que aplica as

    alteraes voltando para o servidor de aplicao, e ele consecutivamente envia as

    informaes para o banco de dados.

  • 46

    4. A TECNOLOGIA JAVASERVER PAGES (JSP)

    A tecnologia JavaServer Pages foi desenvolvida com o intuito de facilitar o

    processo de desenvolvimento de sites Web dinmicos, permitindo desse modo incorporar

    elementos dinmicos nas mesmas de forma rpida pelos designers e programadores Web.

    4.1. O JavaServer Pages

    Em aplicaes Web, independentemente de sua complexidade, seu desenvolvimento

    se d em funo de 3 reas lgicas, da mesma forma como vnhamos descrevendo no decorrer

    do trabalho, ou seja, a camada de apresentao ou cliente, a camada de controle que controla o

    fluxo de apresentao, a camada lgica de apresentao, que gerencia os dados de aplicao,

    gerencia clculos e se comunica com os recursos de back-end, tambm conhecida como o

    modelo (banco de dados) (FIELDS, KOLB, 2000), compreendendo assim 3 reas lgicas,

    que junto com o banco de dados se torna uma aplicao em 4 camadas.

    Freqentemente, vantajoso tratar cada camada como uma parte independente de sua aplicao. Isolar as partes lgicas da aplicao ajuda a garantir que voc tenha coberto todas as bases do design, se concentre na criao de uma arquitetura robusta e crie os fundamentos para a implementao. (FIELDS, KOLB, 2000).

  • 47

    Figura 8 - Camadas de Aplicao da Web

    A figura 8 ilustra os relacionamentos entre as camadas, a camada de banco de dados

    que armazenas os mesmos se comunica com a camada de lgica de aplicao, esta por sua vez

    realiza as diversas funcionalidades do sistema, enviando os resultados e recebendo

    solicitaes da camada de controle que por sua vez controla o fluxo de apresentao da

    camada de apresentao.

    4.2. As camadas

    4.2.1. A camada de apresentao

    Interface com o usurio da aplicao, utilizada para obter input do usurio final alm

    de exibir os resultados da aplicao. Seu objetivo no est direcionado no sentido de controlar

    a maneira da qual a informao foi obtida, ou ainda, de onde ela foi obtida, concentrando-se

    apenas na exibio da prpria informao, delegando as outras camadas a responsabilidade de

    controlar qualquer outra atividade.

    Banco de Dados

    Camada de Apresentao

    Camada de Controle

    Lgica de Aplicao

  • 48

    4.2.2. A camada de lgica de aplicao

    a principal parte de uma aplicao, responsvel direto pela realizao das vrias

    funcionalidades que qualquer aplicao possa desejar realizar, realizando desde a consulta ao

    banco de dados at o clculo de impostos sobre vendas. Compreende a esta camada modelar

    os dados e seu comportamento por detrs do processo de negcios, ou seja:

    Diferentemente da camada de apresentao, esta camada se preocupa apenas com o

    armazenamento, manipulao e gerao de dados, no sua exibio (FIELDS, KOLB, 2000).

    4.2.3. A camada de controle

    Aqui so determinados os fluxos de apresentao das informaes da aplicao,

    funcionando como uma ponte entre a camada de apresentao e a camada de lgica de

    aplicao, fornecendo um modelo para visualizao e regulando a comunicao entre as duas.

  • 49

    4.2.4. A camada de banco de dados

    Consiste numa mquina que contenha um Sistema Gerenciador de Banco de Dados

    (SGBD) onde so armazenados os dados dos sistemas.

    4.3. Conexo com a Base de Dados

    A conexo com a base de dados de uma aplicao Java e JSP um item crtico do

    seu desenvolvimento, isso pelo fato de que tais aplicaes no operam diretamente com os

    drivers padres da plataforma Windows, ou seja, no fazem uso de drivers comuns para

    comunicao com bases de dados para Windows como OLE, ADO e ODBC.

    Sendo assim o cdigo Java independente de banco de dados, e isso se deve ao API

    Java Database Connectivity, ou simplesmente JDBC, que um driver compatvel com

    aplicaes Java, sem ele o mximo que se pode obter com os drivers no-JDBC uma ponte

    de ligao entre JDBC e ODBC.

  • 50

    4.4. Arquiteturas JSP

    4.4.1. Design Centrado em Pginas

    Nesta abordagem iremos apenas realizar uma breve descrio de seu funcionamento,

    pois ela no compreende o foco principal do trabalho que o particionamento de uma

    aplicao em vrias camadas lgicas.

    Sendo assim j podemos ter a idia de que ela composta apenas de uma camada

    lgica, que so um conjunto de pginas JSP inter-relacionadas que realizam todo o processo

    de tratamento das vrias partes de uma aplicao, ou seja, elas compreendem as camadas de

    apresentao, controle e lgica de aplicao em uma s camada.

    Essas pginas JSP realizam todo tipo de tarefa que forem necessrias, por exemplo,

    comunicar-se com fontes de dados de back-end (banco de dados), realizar operaes e gerar

    elementos de contedo dinmico.

    Dessa forma as decises sobre controle e lgica de aplicao sobre que pgina

    visitar a seguir sero hard-coded9 na prpria pgina ou expressas atravs de Beans, scriptlets

    e expresses no tempo de execuo (FIELDS, KOLB, 2000).

    9 Cdigo permanente, fixo ou fisicamente definido; cdigo que no pode ser alterado pela operao normal de um sistema. (HARD, http://www.netpedia.com.br, 16/10/2004)

  • 51

    Figura 9 - Fluxo de Programa centrado em pginas

    Neste modelo cada pgina tem um papel bem especfico dentro da aplicao, como

    demonstra a figura 9, onde uma pgina exibe o menu, outra fornece um formulrio para

    selecionar itens do catlogo e outra faria o encerramento do processo de compra.

    Esta abordagem considerada simples no sentido arquitetnico do problema, isso

    pelo fato de que ela apresenta poucas partes mveis e pouca abstrao, porm devido a essa

    facilidade alguns problemas so encontrados nela. Tais problemas se concentram na sua

    capacidade de manuteno:

    [...] pelo fato das pginas JSP que compem a aplicao conterem tanto cdigo de

    controle/lgica, quanto de apresentao, pode ser difcil realizar a manuteno da aplicao.

    (FIELDS, KOLB, 2000)

    E tambm questes no sentido do controle de fluxo das aplicaes Web, pois como

    se sabe este tipo de aplicao est sujeita a receber solicitaes fora de seqncia, dessa forma

    exceto em aplicaes mais simples tal controle se torna praticamente impossvel, para isso

    descreveremos a seguir sobre uma abordagem que ajuda a centralizar o controle de tal fluxo

    reduzindo tal complexidade encontrada em pginas individuais.

    Menu.jsp catalog.jsp checkout.jsp

    Banco de Dados

  • 52

    4.4.2. Design centrado em Servlets

    [...] a atual tendncia entre os desenvolvedores buscar uma modularizao no desenvolvimento das aplicaes. Criar uma aplicao segundo essa tendncia implica separar as informaes quanto lgica da aplicao e sua apresentao: a primeira parte ficando por conta dos programadores e a segunda por conta dos designers. (BOMFIM JR., 2002)

    Esta abordagem tem como objetivo principal sanar as dificuldades encontradas no

    gerenciamento do fluxo das aplicaes Web encontradas na abordagem anterior, nas qual esse

    controle devia estar intrnseco em cada pgina JSP da aplicao.

    Aqui iremos centralizar tais cdigos de controle em um servlet ou em um grupo

    destes, sendo assim todas as solicitaes sero indiretamente conduzidas as pginas JSP de

    front-end atravs dele, que ter ento a incumbncia de realizar as aes que forem

    necessrias para a aplicao.

    Segundo Bonfim Jr. (2002), os servlets so componentes, pequenos programas na

    linguagem Java, que geram as pginas visualizadas pelo navegador. Eles funcionam de modo

    semelhante aos scripts CGI10. Sua grande vantagem est na velocidade aps a primeira

    execuo. Os servlets servem a ambos os propsitos. Eles podem conter a lgica e a

    apresentao do contedo de uma apresentao ou podem funcionar apenas como

    componentes da aplicao, dando suporte a outros servlets ou a pginas JSP.

    Com essa definio usada por Bonfim Jr. (2002) em seu livro ficam mais claro quais

    as tarefas que um servlet pode realizar, sendo assim um servlet pode executar aes em nome

    de uma pgina JSP, entregar registros do banco de dados para uma JSP exibir, ou ainda

    10 CGI (Commom Gateway Interface, ou seja, Interface Comum de Gateway) uma interface definida de maneira a possibilitar a execuo de programas sob um servidor de informaes.Os programas CGI esto na forma de scripts escritos em alguma linguagem como C, Perl, Shell do Unix e VB Script. Os scripts so interpretados pelo servidor que executa as instrues. (CGI, http://www.rafah.hpg.ig.com.br, 01/10/2004)

  • 53

    controlar o fluxo entre as pginas JSP da aplicao, da mesma forma como demostrado na

    figura 10, na qual todos os processos so centralizados no servlet que se incumbe de fazer o

    controle da aplicao.

    Sendo assim:

    [...]esta abordagem elimina a complexidade do cdigo JSP de front-end, os

    reduzindo para pura exibio de dados e atividades de coleta de input. (FIELDS, KOLB,

    2000).

    Figura 10 - Fluxo de Programa em uma aplicao centrada em servlets

    4.4.3. Servlets para controle da aplicao

    Nesta arquitetura os servlets tem a incumbncia de ser o Proxy de transaes entre

    pginas JSP individuais quem compem o front-end da aplicao, ou seja, a partir dela que

    uma solicitao feita em uma JSP tem continuidade na aplicao.

    O objetivo desta arquitetura centralizar nele determinadas tarefas, garantindo que

    a aplicao mantenha o estado adequado e o fluxo esperado entre componentes (FIELDS,

    KOLB, 2000), ou seja, o servlet gerencia o fluxo atravs da aplicao, no caso de outras

    abordagens isso seria feito pelos formulrios e links em cada pgina JSP.

    Cliente Servlet

    JSP

    Banco de Dados

  • 54

    Dessa forma os cdigo de apresentao de JSP so isolados, reduzindo-os a sua

    essncia, ou seja, apenas servindo como mecanismo de apresentao, e o servlet por sua vez

    desempenha as funes lgicas da aplicao, determinando a ao apropriada a ser tomada e

    em seguida atravs de um RequestDispatcher encaminhar os dados para uma pgina JSP.

    Figura 11 - Uma aplicao de catlogo centrada em servlets

    A figura 11 exemplifica bem esta arquitetura, j que a requisio do catlogo de

    endereos feita por uma pgina JSP ao servlet que por sua vez disponibiliza a outra JSP tal

    catlogo, o qual retorna ao servlet outras informaes que sero checadas por uma ltima

    pgina JSP.

    Introduzida pela Servlet API 2.1 a interface RequestDispatcher quem permite que o

    processamento de uma solicitao seja encaminhado para uma JSP ou para um outro Servlet.

    Um objeto RequestDispatcher criado ao passar o URL da pgina JSP, ou do servlet de destino para o mtodo getRequestDispatcher do objeto de solicitao de chegada, ou ServletContext do servlet. [...] o RequestDispatcher que nos permite usar servlets no papel controlador da aplicao. Se o cdigo de servlet precisar realizar qualquer tipo de output, ele simplesmente faz seu trabalho, depois encaminha a solicitao para manuseio pela pgina JSP. (FIELDS, KOLB, 2000)

    Menu.jsp

    catalog.jsp

    checkout.jsp

    Banco de Dados

    servlet

  • 55

    4.5. Enterprise JavaBeans

    As arquiteturas descritas anteriormente apresentam as camadas que nos permite

    defini-las como sendo uma arquitetura em mltiplas camadas, porm como afirmam Fields e

    Kolb (2000) facilmente no suporta diretamente arquiteturas distribudas e gerenciamento de

    transaes complicadas , sendo assim uma outra faz-se necessria denominando-se

    Enterprise JavaBeans, que tem por objetivo sanar tais dificuldades encontradas na arquitetura

    anterior, livrando o desenvolvedor de ter que realizar tarefas que podem ser at mais

    complexas que as prprias regras de negcio.

    Portanto os EJBs so componentes reutilizveis e transacionais onde so

    implementadas as regras de negcio das aplicaes em mltiplas camadas em Java.

    4.5.1. O que so JavaBeans?

    So componentes de uma aplicao que no foram originalmente desenvolvidos para

    trabalharem com pginas JSP, e esto mais ligados ao desenvolvimento de aplicaes visuais,

    como caixas de textos, botes de radio, e um leque de outros componentes que fazem parte do

    desenvolvimento de uma interface visual.

    Com isso a funo dos JavaBeans nas pginas JSP encapsular procedimentos,

    fazendo dessa forma que haja uma separao entre a lgica do negcio da sua apresentao,

    da mesma maneira como funcionam os servlets, porm recebem um tratamento diferenciado

  • 56

    deles, j que atravs de tags predefinidas o programador visual pode acessar seus recursos

    disponveis sem ter que programar vrias vezes uma nica linha de cdigo Java.

    No contexto JSP, um JavaBean simplesmente uma classe Java que pode ser

    acessada por tags especficas de modo a receber dados de uma pgina ou envi-los a uma

    pgina (BOMFIM JR., 2002).

    4.5.2. Diferena entre JavaBeans e Enterprise JavaBeans

    Do ponto de vista tcnico ambos no se relacionam, ou seja, no tem muito em

    comum, porm, em ambos, o conceito de que eles permitem que programadores faam uso de

    componentes reutilizveis em suas aplicaes comum, alm de serem componentes de

    software baseados em Java.

    Apesar dessas semelhanas os EJBs tem outro propsito com relao ao propsito da

    existncia dos JavaBeans que, como j mencionado anteriormente, visa encapsular lgica de

    negcios em componentes reutilizveis do servidor. Nos EJBs uma aplicao implementada

    como um conjunto de componentes que fazem o controle das regras de negcio, sendo que

    suas configuraes so especficas de sua aplicao, e sua interface preparada para se

    comunicar com o mesmo e tratarem dos resultados.

  • 57

    4.5.3. Containers EJB

    Os containers representam um ambiente operacional, fornecendo os recursos e infra-estrutura necessria publicao e execuo de componentes, assim encapsulam a complexidade do ambiente corporativo e fornece independncia de plataforma aos componentes (SANTOS JR., 2002).

    Ou seja, a partir dos containers que os componentes de uma aplicao podem ser

    desenvolvidos j que eles fazem a ligao desses componentes com os servios de baixo nvel

    disponveis na plataforma Java.

    Dessa forma tais componentes, para que possam ser utilizados pela aplicao, devem

    estar publicados em um container, e para que tal publicao possa ser realizada, uma

    operao de configurao e preparao para a execuo do mesmo se faz necessria, essa

    operao tem o nome de deploy. No deploy, o componente poder ser configurado de duas

    maneiras, a primeira compreende configur-lo em arquivos XML e a outra gerando classes de

    servios, podendo tanto ser configurado em apenas uma das formas ou nas duas se necessrio.

    Nesses arquivos e classes de servios estaro as informaes de segurana, controle

    transacional, persistncia de dados, escalabilidade, associao com outros componentes,

    servios de nomes, entre outros.

    Com esses conceitos, fica clara a funcionalidade de um container EJB, que nada mais

    do que gerenciar a execuo dos componentes EJB.

  • 58

    4.5.4. A arquitetura Enterprise JavaBeans

    Como mencionado no item anterior o container EJB o responsvel pelo

    gerenciamento dos componentes EJBs, portanto ele quem gera e fornece camada cliente,

    uma srie de servios responsveis pela utilizao do ambiente distribudo. Com isso os

    containers faro uso dos componentes EJBs para gerarem tais classes de servios, sendo que

    elas que iro fornecer a transparncia do ambiente distribudo.

    Uma camada cliente faz constantes requisies de execuo de mtodos, nesse caso

    tais mtodos estaro localizados nos componentes EJBs, para que isso possa ocorrer ela

    dever possuir a referncia para a interface remota do mesmo, para que a interface faa a

    solicitao da execuo do mtodo e receber o resultado, para isso uma classe de servios

    chamada STUB gerada automaticamente pelo EJB e far a comunicao entre a camada

    cliente e o container.

    Essa solicitao feita pela camada cliente tem seu incio no momento em que ela:

    obtm um objeto que implementa a interface remota, o qual foi gerado

    automaticamente e fornecido pelo container (SANTOS JR., 2002)

    a partir desse objeto que o mtodo solicitado pela aplicao cliente invocado.

    Esse objeto, por sua vez, via RMI, transmite ao container EJB a chamada feita ao mtodo que

    far a solicitao ao EJB para que o mtodo seja executado e devolvido ao container o

    resultado desse mtodo, nesta parte outra classe de servios de gerao automtica ser

    responsvel pela comunicao no lado servidor e tem o nome de SKELETON, e este far o

    percurso no sentido contrrio ao que foi percorrido na solicitao do mtodo, at que tal

    resultado chegue ao ponto onde ele foi requisitado que a aplicao cliente.

  • 59

    4.5.4.1. Java RMI (Java Remote Method Invocation)

    O Java RMI um modelo de objetos distribudos para a plataforma Java

    (PAULOVICH, 2000), que visa principalmente permitir que um mtodo pertencente a uma

    interface remota possa ser invocado, lembrando que um objeto remoto um objeto que

    permite que uma solicitao possa ser feita por uma outra mquina diferente.

    O RMI muito parecido com o CORBA, j que os clientes interagem com os objetos

    remotos via interfaces remotas e no diretamente com as classes que as implementam,

    podendo ser considerado como sendo uma evoluo natural do modelo RPC, j descrito

    anteriormente, sendo que na sua essncia o RMI uma extenso da linguagem Java.

    Considerando o fato de que o RMI resolve dinamicamente invocaes de mtodo

    entre diferentes mquinas, seu ambiente totalmente distribudo e orientado a objetos, outra

    considerao importante que por ele ser nativo da linguagem Java, seu desenvolvimento se

    d dentro de um nico modelo de objetos, o prprio modelo Java, no havendo a necessidade

    de se trabalhar com mltiplos modelos, dessa forma, reduzindo bastante sua complexidade de

    programao.

    Conforme descreve Paulovich (2000), o modelo RMI oferece alguns dos elementos

    crticos de um sistema de objetos distribudos Java pelo fato do RMI ser nativo da linguagem

    Java. Possui facilidades de comunicao entre objetos, anlogas ao protocolo IIOP de

    CORBA, e seu sistema de serializao de objetos fornece uma maneira prtica de se transferir

    ou requisitar uma instncia de um processo remoto para outro.

  • 60

    4.5.5. Os elementos dos componentes Enterprise JavaBeans

    Componentes EJB possuem trs elementos que servem de base para a gerao de

    classes de servios nos conceitos de objetos distribudos, da o fato destes serem definidos

    como interfaces, no permitindo a implementao de mtodos, e classes abstratas que por sua

    vez no podem ser instanciadas. Eles formam a base para a operao de configurao do

    container, j denominada anteriormente como deploy, e so eles: Interface Home, Interface

    Remota e Classe Abstrata.

    Todos os mtodos que pertencerem a estas interfaces que estiverem disponveis para

    o ambiente remoto devero indicar a possibilidade do lanamento da exceo

    java.rmi.RemoteException, que ter a incumbncia de transportar a exceo ocorrida na

    execuo do mtodo onde ele foi invocado, ou seja, para o ambiente remoto.

    E para que os componentes EJB sejam configurados atravs da operao de deploy

    faro uso de arquivos chamados de XML denominados deployment descriptors, que por sua

    vez possuem as configuraes dos componentes EJB.

    Abaixo sero melhor explicados os conceitos de Interface Home, Remota, Classe

    Abstrata e Deployment Descriptors.

    Interface home

    A interface Home ir fornecer mtodos para manuteno do ciclo de vida dos componentes EJB. Os seus mtodos iro permitir criar, remover e localizar Beans. Essa interface deve estender a interface javax.ejb.ejbHome. atravs da interface Home que a camada cliente ir obter acesso interface remota do Bean. Os mtodos de localizao da interface Home retornam

  • 61

    interface Remota do Bean, ou uma coleo (java.util.Collection), justamente para que a camada cliente possa utilizar os mtodos ofertados pelo Bean camada cliente (SANTOS JR., 2002).

    Interface remota

    A Interface Remota representa a viso do Bean ao ambiente remoto. A interface Remota deve estender a interface javax.ejb.EJBObject e deve possuir a assinatura de todos os mtodos a serem ofertados, camada cliente. Todos os seus mtodos devem indicar na assinatura a possibilidade do lanamento da exceo java.rmi.RemoteException. A interface Remota ir servir como base para gerao da classe STUB, a qual gerada automaticamente atravs da operao de deployment. Esta classe gerada faz a comunicao entre a camada cliente e o container EJB (SANTOS JR., 2002).

    Classe abstrata

    A Classe Abstrata ir conter a implementao de todos os mtodos a serem fornecidos pelo Bean, alguns dos quais sero mtodos de servios e no sero ofertados camada cliente, ou seja, suas assinaturas no estaro presentes na interface Remota. A Classe Abstrata deve implementar a interface javax.ejb.EntityBean, javax.ejb.SessionBean ou javax.ejb.MessageDrivenBean, a depender do tipo de Bean. O container ir gerar classes automaticamente para estender a Classe Abstrata do bean, adicionando os mtodos necessrios utilizao dos recursos oferecidos pelo container . (SANTOS JR., 2002).

    Deployment descriptors

    O Deployment Descriptors so arquivos XML que permitem a configurao dos componentes EJB em tempo de publicao. Possibilitando realizar ajustes sem necessitar alterar o cdigo fonte dos componentes, fornecendo flexibilidade na utilizao dos componentes, uma vez que o mesmo

  • 62

    componente EJB pode ser configurado de maneira diferente a depender da necessidade. Os deployment descriptors configuram as caractersticas dos componentes EJB, tais como: segurana, controle transacional, persistncia de dados, escalabilidade, associao com outros componentes e servio de nomes (SANTOS JR., 2002).

    4.5.6. Tipo de componentes

    A tecnologia Enterprise JavaBeans apresenta dois tipos de componentes que do

    auxlio no seu desenvolvimento.

    Entyte bean

    O entity bean o componente que representa a fonte de dados na camada cliente ou

    intermediria, seu objetivo principal trazer a camada onde se encontram as regras de

    negcio uma forma de acesso aos dados atravs de objetos que os representam, dessa forma

    possvel aumentar a capacidade de processamento, pois pode-se criar novos pontos de

    processamento distribuindo assim a carga de processamento que era para ser toda realizada na

    camada de dados.

    Sendo assim, como na maioria dos casos de sistemas comerciais utilizam-se de banco

    de dados relacionais, para cada tabela existente no banco de dados um entity bean dever ser

    criado para que este gerencie as operaes sobre a tabela.

  • 63

    Session bean

    Os session beans representam numa aplicao EJB as regras de negcio, ou seja,

    utilizam-se de vrios entity beans para realizarem as diversas operaes do ambiente

    corporativo que esto alocadas nas mesmas.

    Numa aplicao EJB os session beans representam um cliente na camada

    intermediria atendendo as solicitaes do mesmo, alm de oferecer a esses clientes uma

    variedade de mtodos. Tais mtodos possuem um controle transacional que desfazem todas as

    operaes caso uma exceo do tipo javax.ejb.EJBException seja disparada.

    Os session beans podem ser de dois tipos que so definidos conforme sua relao

    com o cliente, ou seja, podem ser session beans com estado (Statefull) ou sem estado

    (Stateless), no caso dos session beans com estado, estes so alocados pelo cliente mantendo

    uma sesso com ele, enquanto que os sem estado criam esse vnculo somente no momento da

    execuo de um dos seus mtodos.

    4.5.7. Servidores de aplicao

    Os servidores de aplicao em particular so excelentes ambientes para atuar como host de containers EJB, porque eles automatizam os recursos mais complexos dos processamento de mltiplas camadas. [...] Eles tambm fornecem servios de infra-estrutura como segurana, servios de diretrio e nomeao. Eles fornecem aplicaes baseadas em Beans com o benefcio de redimencionabilidade

    a maioria dos ambientes de servidor de aplicao permitir que voc redimensione sua aplicao atravs da adio de novos clusters de mquinas. (FIELDS, KOLB, 2000)

  • 64

    Figura -12 Um EJB lidando com a lgica da aplicao

    Na figura 12 possvel compreender melhor com funciona um Enterprise

    JavaBeans, j que este se comunica com um servlet enviando e recebendo resultados e

    requisies, alm de fazer a comunicao com o banco de dados. A partir dessa figura o

    sentido de se ter um servidor de aplicao fica mais claro, pois ele que vai armazenar os

    containers EJB, portanto e no servidor de aplicao que as diversas funcionalidades da

    aplicao sero realizadas.

    Cliente Servlet EJB

    JSP Banco de Dados

  • 65

    5. PLATAFORMA .NET

    A Plataforma .Net surgiu do resultado de dois projetos, o primeiro s foi possvel

    com o lanamento do Internet Information Server11 (verso 4.0), que possibilitou criao de

    novas tecnologias de desenvolvimento Web, com ASP12 e COM, este projeto teve melhorias

    e o batizaram de NGWS (Next Generation Windows Services), em seguida surgiu um segundo

    projeto, que tinha como objetivo o suporte uniforme de todas as ferramentas de

    desenvolvimento da Microsoft.

    Net (Dot-Net) uma plataforma de software que conecta informaes, sistemas, pessoas e dispositivos. A plataforma .Net conecta uma grande variedade de tecnologias de uso pessoal e de negcios, de telefones celulares a servidores corporativos, permitindo o acesso a Informaes importantes, onde e sempre que forem necessrias. Desenvolvido sobre os padres de Web Services XML, .Net possibilita que sistemas e aplicativos, novos ou j existentes, conectem seus dados e transaes independente do sistema operacional, tipo de computador ou de dispositivo mvel que sejam utilizados, ou que linguagem de programao tenha sido utilizada na sua criao.(http://www.comquest.com.br/Net.ASP, 21/08/2004)

    5.1. XML

    XML uma linguagem universal utilizada no mundo para comunicao pela Internet,

    sua funo de organizar, descrever e transmitir todas as informaes que transitam na Web.

    Esta ferramenta utilizada em todas as camadas, tanto lgicas como fsicas de uma aplicao

    11 Internet InFormation Server: O principal objetivo desta ferramenta publicar os documentos ou aplicativos na

    Web, dando suporte aos mesmos.

  • 66

    desenvolvida para Internet. Na plataforma .Net existe uma ferramenta que permite manipular

    e criar informaes no Formato XML: System.XML

    Dentro desta ferramenta existem classes (conjunto de atributos e mtodos), que

    auxiliam e facilitam a manipulao de dados em XML.

    5.2. Estrutura .NET

    A arquitetura .Net construda por duas camadas ou partes: A Common Language

    Runtime (CLR), que ser responsvel pela execuo de cdigos, assim como o gerenciamento

    de memria e Threads13 . E a segunda parte denominada de .Net Framework Classes Library,

    com funo de oferecer suporte, necessrio para o desenvolvimento de aplicaes desde

    Console14 e GUI15 at aplicaes Web, utilizando tecnologias como ASP.NET e Web

    Services, assuntos abordados nos prximos captulos. Com esta estrutura tornou-se possvel a

    criao de cdigos com uma maior aceitao em plataformas diferentes. A figura 13

    demonstra como esta estrutura se consolida.

    12 ASP: Active Server Pages - Pginas de Servidor Ativas, so um ambiente para programao por scripts no

    servidor (ASP, http://www.fundanet.br, acessado em 20/09/2004) 13

    Threads: permitem que vrias atividades aconteam simultaneamente em um mesmo programa. (THREADS, http://www.linux.ime.usp.br, acessado em 16/10/2004) 14

    Uma unidade de controle, com um terminal, atravs da qual o usurio se comunica com um computador. (CONSOLE, http://www.netpedia.com.br, acessado em 16/10/2004) 15

    GUI: Graphic User Interface, uma interface grfica, muito utilizada no desenvolvimento de aplicaes para o clinet.(GUI, http://www.freenetpages.co.uk/, acessado em 16/10/2004)

  • 67

    Figura 13 Estrutura .Net com a linguagem ASP.NET (Fonte:APRESENTANDO A ARQUITETURA .NET, http://www.altabooks.com.br/pdf/Aplica%C3%A7oes%20WEB_01.PDF, acessado em 16/10/2004)

    5.2.1. CLR

    Common Language Runtime

    O CLR possui duas funes primarias, a primeira, de gerenciamento do cdigo

    executado e a segunda, de promover a integrao de linguagens diferentes, sua funo

    secundria de disponibilizar recursos para facilitar o desenvolvimento destas linguagens.

    Uma das vantagens de se trabalhar com a tecnologia .NET, est ligada a esta camada,

    o CLR possui uma definio de um sistema comum de tipos, fazendo com que as linguagens

    que geram cdigos para o CLR utilizem a mesma definio de tipos de dados, sendo possvel

    assim a execuo de cdigos entre linguagens.

  • 68

    5.2.2. .Net FrameWork Class Library

    Nesta camada possvel acessar todas as funcionalidades do sistema onde as

    aplicaes e componentes so construdos. Muitos cdigos so derivados de alguns tipos de

    dados que esta camada disponibiliza, tornando possvel diversificar a estrutura dos cdigos de

    linguagens diferentes sem abalar a compatibilidade entre essas linguagens e a plataforma .Net.

    Sobre esta camada possvel desenvolver:

    Sevios Windows 2000 e NT

    Aplicaes de Console

    Aplicaes ASP.Net (Web Forms, Web Services)

    5.3. System namespace

    Toda programao necessita de tipos de dados para se concretizar, o system

    namespace o principal namespace da arquitetura .Net responsvel pela definio dos tipos

    de dados. As definies contidas nesta classe devero servir para outras linguagens se

    basearem na construo de cdigos.

    Na arquitetura .Net existe outra ferramenta com a finalidade de assegurar a

    interoperabilidade entre diversas linguagens, chama-se CLS Common Language

    Specification. Esta ferramenta um subconjunto do sistema de tipos comuns, para que seja

    possvel manter a interoperabilidade entre as linguagens, todos os objetos criados nestas

  • 69

    linguagens de programao devem expor somente tipos de dados que sejam suportados por

    estas linguagens.

    Porm por motivos de design, uma linguagem pode implementar seus prprios tipos

    de dados. Permitindo uma portabilidade de linguagens de programao para a .Net

    Framework sem perda de cdigos internos, mas se for exportados para outras linguagens

    existir perda de cdigos internos.

    5.4. ASP.NET

    Um dos mais importantes recursos dos ASP.Net so os Web Forms, capaz de tornar

    o desenvolvimento de sites dinmicos, uma atividade atrativa e simples. ASP.Net um

    Framework construdo sobre o .Net, voltado a desenvolvimento de aplicaes para Web

    Services (Web Forms e Web Services sero abordados nos prximos captulos).

    Assim como o ASP tradicional o ASP.Net roda em um Servidor Web, as duas

    tecnologias permitem um desenvolvimento de sites personalizados, dinmicos e com

    contedo rico, porm a tecnologia ASP.Net possui recursos novos e melhores. O principal

    componente do ASP.Net o Web Form, similar ao desenvolvimento de aplicaes Windows.

    Os Web Forms desenvolvidos com esta tecnologia no se baseiam em script do lado cliente,

    por este motivo no depende do tipo do browser ou sistema operacional. A figura14

    demonstra como funciona a arquitetura de aplicao ASP.Net.

  • 70

    Figura 14 Demonstra a arquitetura de uma aplicao ASP.NET

    5.5. Principais vantagens desta tecnologia

    possvel desenvolver aplicaes Web em qualquer linguagem baseada em .Net. O

    ASP.Net faz parte do .Net Framework, e para se desenvolver uma boa aplicao, no

    necessrio que o desenvolvedor tenha conhecimentos avanados de programao em HTML,

    DHTML, JAVASCRIPT ou VBSCRIPT, e nenhuma outra linguagem, pois a maioria dos

    cdigos j esto prontos, so gerados automaticamente.

    No ASP.Net as pginas da aplicao so compiladas em um assembly que roda no servidor (nesse caso uma .DLL16 ). Isso diferente do ASP, que apenas interpretava o cdigo, montava o HTML e enviava ao browser que solicitou. Com isso, aplicaes desenvolvidas em ASP.Net so no mnimo 25% mais rpidas que aplicaes desenvolvidas em ASP. Em aplicaes com um grande nme