Escolar Documentos
Profissional Documentos
Cultura Documentos
Multi Camadas
Multi Camadas
MARLIA
2004
Orientador:
Prof. Mestre Elvis Fusco
MARLIA
2004
Resultado: _______________________________________
1 EXAMINADOR:___________________________________________________________
2 EXAMINADOR:___________________________________________________________
AGRADECIMENTOS
Muito
Obrigado a Todos.
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.
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
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.
10
LISTA DE ILUSTRAES
FIGURA 12
FIGURA 13
FIGURA 14
FIGURA 15
FIGURA 16
FIGURA 17
FIGURA 18
11
LISTA DE ABREVIATURAS
12
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
15
INTRODUO
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
arquitetura.
adequada de sua
16
Metodologia
17
1. CONCEITOS
18
19
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.
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.
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
22
1.3.1. As camadas
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.
23
24
25
26
2.1.3. Performance
27
2.2.3. Performance
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.1. Objetos
30
31
3.3. Middleware
32
3.4. DataSnap
que
essa
interface
est
incorporada
dentro
dos
componentes
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.6. Os protocolos
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.
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.
36
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
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
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).
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
40
enviar e receber mensagens mas ao mesmo tempo, uma falha no armazenamento de dados
do servidor.
41
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
1.
43
DCOM, TWebConnection
HTTP, TSocketConnection
CORBA,
Sockets
como:
TWebConnection
TCORBAConnection
CORBA,
HTTP, TSocketConnection
TDCOMConnection
DCOM,
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
Se r vid o r d e Ap lica o
B a se D a d o s
Cursor Bidirecional
Cache Local
Clie n t e
Cursor
Unidirecional
DataPacket
ApplyUpdates
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
as
46
47
Camada de
Apresentao
Camada de
Controle
Lgica de
Aplicao
Banco
de Dados
4.2. As camadas
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.
48
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).
49
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
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).
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
Menu.jsp
catalog.jsp
checkout.jsp
Banco
de Dados
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.
52
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).
Cliente
Servlet
Banco de
Dados
JSP
54
Menu.jsp
catalog.jsp
checkout.jsp
servlet
Banco
de Dados
Figura 11 - Uma aplicao de catlogo centrada em servlets
55
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).
57
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
59
O Java RMI
(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
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
61
Interface remota
Classe abstrata
Deployment descriptors
62
Entyte bean
63
Session bean
64
Cliente
Servlet
JSP
EJB
Banco de
Dados
65
5. PLATAFORMA .NET
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.
e GUI15
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
5.2.1. CLR
68
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
DLL: Um recurso da famlia Microsoft Windows de sistemas operacionais que permite que rotinas executveis
sejam armazenadas em separado como arquivos com extenses DLL e s sejam carregadas quando necessrio.
(DYNAMIC-LINK-LIBRARY, http://xoops.softwarelivreparana.org.br, 16/10/2004)
71
Figura 15
Aplicao Web ASP.Net (Fonte: Revista ClubeDelphi Ed. 51, Ano IV,
Pag 26)
72
O Web Form, gera automaticamente o cdigo HTML que enviado para o browser,
enquanto que o cdigo de tratamento dos controles permanece no servidor Web. Esse misto,
entre interface cliente e cdigo no servidor, uma diferena crucial, entre Web Forms e
pginas Web tradicionais.
17
18
73
74
75
Esta camada a mais importante dentro dos negcios, esta camada s se faz
necessria, pois atravs dela que conseguimos identificar os fluxos de trabalho (Workflows).
Tudo o que foi feito nesta camada deve levar em conta previses de extenses aceitao de
novos requisitos finalidade do negocio, com isso se tem uma maior reutilizao de seus
objetos, que determinaram a dinmica de operao do negcio a ser automatizado e a criao
dos principais componentes de cdigo.
Na implementao desta camada, importante verificar a natureza do negcio versus
as necessidades e os desejos pretendidos para a automao do sistema em questo, assim
como a identificao do que ser mais importante.
76
A principal funo desta camada isolar tudo que estiver relacionado a manipulao
dos bancos de dados, alm de fornecer dados para as regras de negcio, que modificam o
contedo do banco, levando em conta as regras, isolando as funes e os detalhes da
implementao fsica, como se observa na figura16.
importante observar que na arquitetura de aplicao .Net, quando colocada a
aplicao dividida em camadas funcionais, existiro alguns ganhos.
77
Command
dados
oferecer a mxima performance na busca de dados (til e eficiente para preencher combos,
listas e tabelas)
DataAdapter
Cria uma estrutura que permite armazenar dados de tabelas, colunas, registros e
relacionamentos entre as tabelas. Os dados podem ser serializados em XML, alterados,
excludos, inseridos e sincronizados com a fonte original.
DataTable - Destaca-se, ainda, as classes DataTable, hierarquicamente internas
classe DataSet. A classe DataTable armazena o resultado de um comando select ou stored
procedure.
78
Existe dois tipos de acesso, a dados, que o ADO.NET oferece: acesso nativo ao SQL
Server (SQL Server.Net Data provider) ou acesso a OLEDB Provider (OLEODB.NET Data
Provider).
Quando for necessrio acessar dados no SQL Server, devesse usar sempre as classes
de SQL Server .Net Data Provider para obter o mximo proveito, caso contrrio use classes
do OLEDB.NET DATA Provider).
1 Camada
Servios de
Apresentao
2 Camada
Servios de
Negcio
3 Camada
Servios de
Dados
Figura 17
79
80
CAMADA DE INTERFACE
INTERFACE
CAMADA DE REGRAS
DE NEGCIOS
CAMADA DE
DADOS
O esquema acima mostra uma arquitetura dividida em trs partes, que so: Cliente
(Browser), Servidor Web e SGBD (Sistema Gerenciador de Banco de Dados).
Cliente: quem faz as requisies de pginas dinmicas (ASP, PHP, etc.) para o
Servidor Web.
81
Sempre que forem feitas transaes com pginas dinmicas, essas transaes so
feitas com Banco de Dados, portanto aplicaes desse tipo so no mnimo trs camadas.
Pode-se nesse mesmo modelo acrescentar novos servidores, para que sejam divididos
os processos em lugares diferentes assim ganhando em performance, j que nas aplicaes
para Internet, tambm depende do Cliente, pois no se sabe qual o seu tipo de conexo, e a
potncia do seu Browser. Assim a aplicao se torna N-Camadas, pois tem a opo de
acrescentar quantos servidores se achar necessrio.
82
CONCLUSO
Hoje vivemos na era da Internet, onde a tecnologia est cada vez mais presente no
nosso dia-a-dia, nos conduzindo sempre a utiliz-la, isso tambm acontece no
desenvolvimento de sistemas com a grande gama de ferramentas disponveis para o ambiente
Web, que nos acaba forando direto ou indiretamente seguir essa tecnologia, conforme
comentado no captulo 6, um ambiente Internet, que tenha pginas dinmicas, desenvolvido
no modelo Multi-camadas, mostrando que essa metodologia uma tendncia futura, mas no
descartando outras arquiteturas existentes.
Aps conhecer um pouco das estruturas disponveis para se trabalhar no
desenvolvimento de sistemas, nota-se que todas as arquiteturas so aplicveis, ou seja,
dependem muito do ambiente a ser desenvolvido, pois a maior diferenciao est nas
possveis necessidades futuras, por isso, se desenvolvem aplicaes para o ambiente atual e j
pensando na escalabilidade do software conforme o crescimento da utilizao do sistema, isso
induz na utilizao de vrias camadas.
Com essa pesquisa notou-se que a arquitetura Multi-Camadas superior ao
Cliente/Servidor, como mostrado no comparativo do captulo 2, que as desvantagens
encontradas no Cliente/Servidor so corrigidas, e se tornam vantagens no ambiente MultiCamadas. Constatou-se que profissionais especializados nessa tecnologia ainda esto escassos
no mercado, com isso causando um aumento do custo de desenvolvimento, e
consecutivamente diminuindo a demanda sobre esse tipo de aplicao.
Observou-se que as trs tecnologias adaptadas adotadas no estudo deste trabalho
atendem plenamente o desenvolvimento plataforma Multi-Camadas.
83
84
REFERNCIAS
85
86
Desenvolvido por: