Você está na página 1de 71

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CINCIAS EXATAS E NATURAIS CURSO DE CINCIAS DA COMPUTAO (Bacharelado)

APLICAO DA TECNOLOGIA WEBSNAP PARA O DESENVOLVIMENTO DE PGINAS HTML

TRABALHO DE CONCLUSO DE CURSO SUBMETIDO UNIVERSIDADE REGIONAL DE BLUMENAU PARA A OBTENO DOS CRDITOS NA DISCIPLINA COM NOME EQUIVALENTE NO CURSO DE CINCIAS DA COMPUTAO BACHARELADO

JEANDERSON GRIPA

BLUMENAU, DEZEMBRO/2002 2002/2-37

APLICAO DA TECNOLOGIA WEBSNAP PARA O DESENVOLVIMENTO DE PGINAS HTML


JEANDERSON GRIPA

ESTE TRABALHO DE CONCLUSO DE CURSO, FOI JULGADO ADEQUADO PARA OBTENO DOS CRDITOS NA DISCIPLINA DE TRABALHO DE CONCLUSO DE CURSO OBRIGATRIA PARA OBTENO DO TTULO DE:

BACHAREL EM CINCIAS DA COMPUTAO

Prof. Maurcio Capobianco Lopes Orientador na FURB

Prof. Jos Roque Voltolini da Silva Coordenador do TCC

BANCA EXAMINADORA

Prof. Maurcio Capobianco Lopes

Prof. Francisco Adell Pricas

Prof. Wilson Pedro Carli

ii

AGRADECIMENTOS

Agradeo ao professor Maurcio Capobianco Lopes pela orientao, crticas e principalmente apoio dado no decorrer do estudo. Aos meus pais, que sempre lutaram para proporcionar aos filhos tudo o que eles jamais tiveram para si, sem os quais eu no teria chegado a este momento. Aos meus irmos e namorada pelo apoio, incentivo, compreenso e carinho que recebi durante a elaborao deste trabalho, principalmente nos momentos difceis que tive. A Deus, por estar sempre presente em todos os momentos e me dando fora nos momentos de dificuldade. Agradeo em especial, ao grande amigo e companheiro de faculdade, Jaime Sthelin Junior, pelo seu apoio e lealdade. Um verdadeiro escudeiro que sempre esteve ao meu lado por todos esses anos. A todos os meus colegas de faculdade, que contriburam para o meu crescimento e tornaram este perodo de faculdade inesquecvel. Finalmente, agradeo a todos que de alguma forma contriburam para elaborao deste trabalho.

iii

SUMRIO
LISTA DE FIGURAS ..............................................................................................................VI LISTA DE QUADROS ......................................................................................................... VIII RESUMO .................................................................................................................................IX ABSTRACT .............................................................................................................................. X 1 INTRODUO ..................................................................................................................... 1 1.1 OBJETIVOS DO TRABALHO .......................................................................................... 2 1.2 ESTRUTURA DO TRABALHO ........................................................................................ 2 2 INTERNET............................................................................................................................ 4 2.1 FORMAS DE UTILIZAO ............................................................................................. 5 2.2 HTML.................................................................................................................................. 6 2.3 TECNOLOGIAS PARA A INTERFACE WEB ................................................................. 8 2.4 TECNOLOGIAS PARA O PROCESSAMENTO NO SERVIDOR .................................. 9 3 WEBSNAP .......................................................................................................................... 12 3.1 ARQUITETURA WEBSNAP .......................................................................................... 12 3.2 CRIANDO APLICATIVOS COM WEBSNAP ............................................................... 15 3.3 PALETA WEBSNAP........................................................................................................ 18 3.3.1 ADAPTADORES ........................................................................................................... 20 3.4 CRIANDO UMA WEB PAGE MODULE ........................................................................ 23 3.5 WEBSNAP E BANCO DE DADOS ................................................................................ 24 3.5.1 MESTRE-DETALHE NO WEBSNAP .......................................................................... 25 3.6 SESSES, USURIOS E PERMISSES........................................................................ 25 4 DESENVOLVIMENTO DO TRABALHO ........................................................................ 27 4.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO....................... 27

iv

4.2 ESPECIFICAO ............................................................................................................ 27 4.2.1 CASOS DE USO ............................................................................................................ 28 4.2.2 DIAGRAMA DE CLASSES .......................................................................................... 29 4.2.3 DIAGRAMA DE SEQNCIA..................................................................................... 31 4.2.4 MODELO DE DADOS .................................................................................................. 36 4.3 IMPLEMENTAO ........................................................................................................ 36 4.3.1 TCNICAS E FERRAMENTAS UTILIZADAS........................................................... 36 4.3.2 OPERACIONALIDADE DA IMPLEMENTAO...................................................... 37 4.4 RESULTADOS E DISCUSSO ...................................................................................... 45 5 CONCLUSES ................................................................................................................... 48 5.1 EXTENSES .................................................................................................................... 49 REFERNCIAS BIBLIOGRFICAS ..................................................................................... 50 ANEXO I.................................................................................................................................. 51

LISTA DE FIGURAS
FIGURA 1 EXEMPLO DE PGINA HTML......................................................................... 7 FIGURA 2 MODELO WEBSNAP E OS PAPIS NA EQUIPE DE

DESENVOLVIMENTO................................................................................................... 13 FIGURA 3 EXEMPLO DE SCRIPTS ................................................................................... 14 FIGURA 4 PALETA WEBSNAP E A BARRA DE FERRAMENTAS INTERNET ......... 15 FIGURA 5 CRIAO DE UMA APLICAO WEBSNAP.............................................. 16 FIGURA 6 CONFIGURAO DOS COMPONENTES BSICOS DO APLICATIVO ... 17 FIGURA 7 COMPONENTES SETADOS............................................................................ 18 FIGURA 8 WEB SURFACE DESIGNER.............................................................................. 22 FIGURA 9 CRIAO DE UM WEB PAGE MODULE COM UM

ADAPTERPAGEPRODUCER.......................................................................................... 23 FIGURA 10 DIAGRAMA DE CASO DE USO ................................................................... 29 FIGURA 11 DIAGRAMA DE CLASSES............................................................................ 30 FIGURA 12 DIAGRAMA DE SEQNCIA EFETUAR LOGIN...................................... 31 FIGURA 13 DIAGRAMA DE SEQNCIA MANTER CADASTRO.............................. 32 FIGURA 14 DIAGRAMA DE SEQNCIA FAZER RESERVA ..................................... 33 FIGURA 15 DIAGRAMA DE SEQNCIA CONSULTAR RESERVA .......................... 34 FIGURA 16 - DIAGRAMA DE SEQNCIA DESMARCAR RESERVA.......................... 35 FIGURA 17 - MODELO DE DADOS FSICO ....................................................................... 36 FIGURA 18 TELA HOME DO ADMINISTRADOR .......................................................... 38 FIGURA 19 TELA DE USURIO DO ADMINISTRADOR.............................................. 39 FIGURA 20 TELA DE RESERVA DO ADMINISTRADOR ............................................. 40 FIGURA 21 TELA DE LABORATRIO DO ADMINISTRADOR................................... 41

vi

FIGURA 22 TELA HOME DO USURIO PADRO ........................................................ 42 FIGURA 23 TELA DE USURIO DO USURIO PADRO ............................................ 43 FIGURA 24 TELA DE RESERVA DO USURIO PADRO ........................................... 44 FIGURA 25 TELA DE INCLUIR RESERVA DO USURIO PADRO .......................... 45

vii

LISTA DE QUADROS
QUADRO 1 EXEMPLO DE ARQUIVO HTML ................................................................... 7 QUADRO 2 CDIGO COM SCRIPTS ................................................................................ 14 QUADRO 3 RECUPERAR OU VALIDAR VALORES ..................................................... 21 QUADRO 4 SCRIPT PROJETISTA DO ADAPTERPAGEPRODUCER ............................ 22 QUADRO 5 EXEMPLO DE SCRIPT DO COMPONENTE CLIENTDATASET ................ 24

viii

RESUMO
Este trabalho tem como propsito demonstrar a utilizao da nova tecnologia

WebSnap encontrada no Delphi 6, destacando seus recursos e performance como tecnologia de desenvolvimento de pginas para a internet. Para demonstrar a efetividade do mesmo, foi desenvolvido um prottipo de reserva de laboratrio de ensino on-line, utilizando esta tecnologia.

ix

ABSTRACT
This work aims to show WebSnap technology that can be found Delphi 6. The principal purpose is to analyse the performance of WebSnap as technology for Internet sites design. Intending to show how effective it is, a reservation prototype was created for on-line teaching laboratories, using this technology.

1 INTRODUO
A internet foi criada na dcada de 1960, como uma rede restrita, destinada aos segmentos militar, governamental e acadmico. No incio da segunda metade da dcada de 1990, com a regulamentao para explorao comercial da internet e com a popularizao dos programas grficos para navegao na mesma, pequenas redes, antes operando isoladamente, interligaram-se numa nica rede (Fleury, 2002). Segundo Cusumano (1998), a primeira forma de comunicao entre os usurios da internet foi o correio eletrnico, com suas mensagens transmitidas para qualquer parte do mundo ao custo de uma ligao local. Posteriormente surgiram os primeiros sites para consultas, onde as informaes eram exibidas sem que o usurio pudesse interagir com o mesmo. Por ltimo, o usurio tornou-se capaz de transmitir informaes aos sites, concluindo todas as etapas necessrias para que fosse possvel estabelecerem-se transaes em tempo real entre duas partes atravs da rede. Antes do surgimento da tecnologia de documentos hiper-textos para navegao em documentos da rede, a internet no possua uma interface amigvel com os usurios, principalmente para com os usurios iniciantes e amadores. Somente aps seu surgimento em 1993, com o protocolo Hyper Text Transfer Protocol (HTTP) e navegadores capazes de interpret-lo surgiu a World Wide Web (WWW), tornando o ambiente da internet mais amigvel, facilitando a vida dos usurios comuns e o uso da rede para fins comerciais. Atualmente grande parte dos usurios conhece a internet apenas como uma rede mundial de computadores onde se navega pelas pginas Hyper Text Markup Language (HTML) em seus Navegadores Netscape ou Explorer, o que no reflete a verdade, pois a WWW somente um subconjunto da internet. Junto com o HTML, surgiram diversas linguagens de programao para um melhoramento na interao de aplicaes de internet com usurios. Uma das tecnologias existentes atualmente para o desenvolvimento de pginas HTML o WebSnap, ferramenta essa que permite evoluir o conceito de formulrios simples, fornecendo uma melhor interface e incrementando o WebBroker, antiga soluo para desenvolvimento de pginas HTML da Borland.

2 Numa publicao recente (Pauli, 2002) exposto que o WebSnap uma coleo de componentes voltados ao desenvolvimento de aplicaes Web facilitando muito a vida de empresas que desenvolvem aplicaes de comrcio eletrnico, principalmente as que possuem programadores e Web designers em uma mesma equipe. Usando o WebSnap, o programador Delphi desenvolve a interface da aplicao, parte do acesso a dados e das regras de negcio uma vez que estas ficam do lado do servidor. Por ser ainda uma tecnologia pouco conhecida e pouco utilizada, por estar inserida em um dos ambientes de programao mais utilizados no mercado atualmente, o Delphi, decidiuse neste trabalho, desenvolver uma aplicao para testar a tecnologia Websnap. Para isso, foi desenvolvido um prottipo de reserva de laboratrio de ensino, a fim de possibilitar o uso e teste da tecnologia.

1.1 OBJETIVOS DO TRABALHO


O objetivo do trabalho desenvolver uma aplicao utilizando os recursos de internet do Delphi 6, mais especificamente o WebSnap. Como objetivos especficos podem ser citados: a) o desenvolvimento de um prottipo de reserva de laboratrio de ensino on-line; b) a anlise das facilidades e performance do WebSnap como tecnologia de desenvolvimento de pginas interativas para a internet.

1.2 ESTRUTURA DO TRABALHO


O trabalho foi estruturado da seguinte maneira: O primeiro captulo apresenta a contextualizao e justificativa para o

desenvolvimento da proposta do trabalho. O segundo captulo aborda conceitos sobre internet, suas formas de utilizao e as tecnologias utilizadas para o desenvolvimento de aplicaes Web. O terceiro captulo, que o ponto chave do trabalho, apresenta a tecnologia WebSnap encontrada no Delphi 6.

3 O quarto captulo descreve a especificao do prottipo, bem como detalhes de sua implementao, resultados e discusso. O quinto e ltimo captulo apresenta as consideraes finais, abrangendo as

concluses do desenvolvimento deste trabalho e as sugestes para prximos trabalhos.

2 INTERNET
De acordo com Fleury (2002), a internet foi criada na dcada de 1960, como uma rede restrita destinada aos segmentos militar, governamental e acadmico, em uma organizao de pesquisas do governo norte-americano, a Advanced Research Projects (Arpanet), que pesquisava a formao de redes de computadores. A idia era criar uma rede para conectar centros de pesquisa que estivessem distantes uns dos outros e que no pudesse ser destruda por bombardeios, na impossibilidade de uma comunicao seria uma forma alternativa de ligao que seria usada entre os computadores do exrcito e das universidades. Ao longo dos anos 70 e meados dos anos 80 muitas universidades se conectaram a essa rede, o que moveu a motivao militarista do uso da rede para uma motivao mais cultural e acadmica. Nos meados dos anos 80 a National Science Foundation (NSF) constituiu uma rede de fibra tica de alta velocidade conectando centros de supercomputao localizados em pontos chave nos EUA. Essa rede da NSF, chamada de backbone, teve um papel fundamental no desenvolvimento da internet por reduzir substancialmente o custo da comunicao de dados para as redes de computadores. No incio da segunda metade da dcada de 1990, com a regulamentao para explorao comercial da internet e com a popularizao dos programas grficos para navegao na mesma, pequenas redes, antes operando isoladamente, interligaram-se numa nica rede. Mais ainda, qualquer pessoa que possusse um computador pessoal e uma linha telefnica tornou-se capaz de conectar-se atravs de redes de acesso, internet. Segundo Cusumano (1998), a difuso na utilizao da internet, que pode ser considerada numa primeira anlise como uma evoluo na comunicao eletrnica, possibilitou uma nova revoluo tecnolgica, alterando a maneira como pessoas e organizaes vivem e interagem. O uso da internet continua crescendo em velocidade elevada, e sua difuso supera em muito de outros artefatos. Em apenas trs anos a internet superou a marca de 90 milhes de usurios. O rdio levou mais de 30 anos para atingir 60 milhes de usurios e a televiso levou 15 anos para atingir o mesmo volume.

5 A internet representa um dos mais bem sucedidos exemplos dos benefcios da manuteno do investimento e do compromisso com a pesquisa e o desenvolvimento de uma infra-estrutura para a informao. Comeando com as primeiras pesquisas em trocas de pacotes, o governo, a indstria e o meio acadmico tm sido parceiros na evoluo e uso desta nova tecnologia. Hoje, termos como nome@nomedeempresa.com e

http://www.nomedeempresa.com so usados diariamente por milhes de pessoas. A histria da Internet complexa e envolve muitos aspectos - tecnolgicos, organizacionais e comunitrios e sua influncia atinge no somente os campos tcnicos das comunicaes via computadores, mas toda a sociedade, na medida em que se usa cada vez mais ferramentas on-line para fazer comrcio eletrnico, adquirir informao e operar em comunidade.

2.1 FORMAS DE UTILIZAO


A internet pode ser utilizada de diversas maneiras, entre as quais destacam-se: a) correio eletrnico (e-mail): foi a primeira aplicao surgida na Internet, com o objetivo de facilitar a comunicao e a troca de idias e observaes entre o grupo de acadmicos que estavam construindo e experimentando a Internet. Entre as principais caractersticas do correio eletrnico destacam-se: - agilidade: em segundos ou minutos enviado para qualquer parte do mundo; - gratuito: no paga por e-mail enviado ou recebido; - escrito: facilita o acompanhamento de solicitaes; - permite envio de mensagens para muitas pessoas ao mesmo tempo; - permite respostas a e-mails recebidos ou encaminhamentos a terceiros; - permite o envio de arquivos de dados anexados. b) listas de discusso (mailing lists): so listas de endereos de correio eletrnico de pessoas interessadas em determinados assuntos. Uma lista de discusso formada quando existe um nmero relativamente grande de pessoas que pretendem discutir algum assunto on-line atravs de e-mails. Quando esse nmero torna-se difcil ou impraticvel o endereamento do e-mail para cada um dos destinatrios, o recurso mais prtico e barato criar ou usar uma lista de distribuio;

6 c) transferncia de arquivos (FTP): tem como objetivo promover o compartilhamento de arquivos sejam eles programas ou dados, encorajar indiretamente o uso de servidores remotos que funcionam como backup, proteger os internautas de variaes em sistemas de armazenamento de arquivos entre servidores e transferncia de dados com confiabilidade, rapidez e eficincia; d) conversas on-line (Chat): o nome popular que foi dado para o Internet Relay Chat (IRC). O IRC ou chat o encontro virtual onde pessoas podem se encontrar e conversar em tempo real atravs de mensagens escritas, tanto participando de discusses grupais como em conversas particulares; e) sites (Web): consiste na rede mundial de computadores denominada World Wide Web (WWW) composta por pginas Hypertext Markup Language (HTML) onde se navega, pesquisa-se e compram-se produtos utilizando navegadores como Netscape ou Explorer.

2.2 HTML
Segundo Cantu (2002), o Hypertext Markup Language (HTML), linguagem de marcao de hipertexto o formato mais difundido para contedo na Web. HTML o formato que os navegadores Web normalmente lem; trata-se de um padro definido pelo World Wide Web Consortium (W3C), que um dos organismos que controlam a internet. Os arquivos HTML so basicamente arquivos de textos ASCII. Alm do texto simples, um arquivo HTML contm muitas tags, as quais podem determinar o estilo da fonte, o tipo do pargrafo ou um link para outro arquivo HTML ou para uma imagem, entre outras coisas. A maioria das tags ocorrem em pares de abertura e fechamento, normalmente a tag de fechamento igual a tag de abertura, mas precedida por uma barra (/) para indicar onde o estilo ou contedo comea e onde termina . Um documento HTML comea com a tag <html> e dividido em duas partes, marcadas como <head> (cabealho da pgina) e <body> (corpo da pgina). Cada uma dessas trs tags exige o terminador correspondente. Na parte do cabealho do arquivo HTML, geralmente escreve-se o ttulo (freqentemente apresentado na barra de ttulo do navegador) e alguns outros elementos genricos.

7 No corpo da pgina, escreve-se o contedo do arquivo, geralmente comeando com seu ttulo visvel. Pode-se usar cabealhos com diferentes nveis, marcados com a tag <hX>, onde se troca o X por um nmero de 1 a 6. Isso seguido por pargrafos simples (<p>), pargrafos previamente formatados (<pre>, um estilo geralmente usado para listagens de programas), vrios tipos de listas e muitos outros elementos. O texto freqentemente ter links para outras pginas ou outras partes da pgina corrente, usando-se a tag <a> (ncora). No QUADRO 1 apresentado um exemplo de um arquivo HTML e na FIGURA 1, tem-se o resultado deste arquivo. QUADRO 1 EXEMPLO DE ARQUIVO HTML
<html> <head> <title> Aplicao WebSnap para Pginas HTML</title> </head> <body> <center> Exemplo de Arquivo HTML <br> <br> ===> HTML <=== </center> </body> </html>

FIGURA 1 EXEMPLO DE PGINA HTML

8 Outro elemento relevante da HTML so as tabelas. As tags <table> e </table> indicam o incio e o fim da tabela, e seu atributo opcional border exibe bordas com determinada largura. As tags <tr> e </tr> introduzem e fecham cada linha, e as tags <th> e </th> e <td>_</td> indicam uma clula de cabealho de tabela e uma clula de dados de tabela, respectivamente. O nmero de colunas depende dos itens presentes em cada linha. Diferentes linhas podem ter diferentes nmeros de itens. Recentemente, a HTML foi aprimorada pelo W3C para ser mais consistente, flexvel e intercambivel com sistemas avanados, como Extensible Markup Language (XML); a nova verso chamada Extensible HTML (XHTML).

2.3 TECNOLOGIAS PARA A INTERFACE WEB


Segundo Frydrych (apud Fleury, 2002), a aplicao Web utiliza-se de uma pgina HTML, interpretada pelo browser, para interagir com o usurio. Outras tecnologias podem ser misturadas ao HTML para a construo de uma melhor interface, com um visual mais adequado, alm de proporcionar recursos que o HTML isoladamente no capaz. Estas tecnologias so: a) DHTML: Dynamic HTML um termo utilizado para agrupar as tecnologias de script, cascatas de estilo e applets, as quais podem ser utilizadas em conjunto com o HTML tornando as pginas Web mais interativas e animadas. O uso da tecnologia DHTML possvel graas concepo do Document Object Model (DOM), que aplica os conceitos da orientao a objetos a todos os elementos de uma pgina HTML; b) APPLET JAVA: a linguagem Java da Sun Microsystems, utilizada na forma de applets, capaz de estender as funcionalidades do browser, adicionando recursos antes impossveis de serem construdos com o HTML puro. Os applets so miniprogramas executados sob o browser, atravs da Java Virtual Machine; c) ACTIVE X: numa forma similar aos applets Java, o Active X da Microsoft tambm oferece formas de ampliar as funcionalidades do browser, podendo interagir com sistemas instalados no computador cliente. capaz de, por exemplo, permitir a visualizao no browser de documentos do editor de texto Word;

9 d) JAVASCRIPT: tambm capaz de aumentar a capacidade de processamento do browser. O JavaScript uma linguagem de script que pode ser embutida na pgina HTML, oferecendo algumas formas de controle da pgina, como a validao de campos; e) VBSCRIPT: possui a mesma filosofia do JavaScript, mas utiliza a sintaxe da linguagem Visual Basic da Microsoft, ao invs da sintaxe da linguagem Java; f) CSS (Cascading Style Sheet): permite que os estilos dos elementos da pgina (espaamento, cores, fontes, margens, etc.) sejam especificados separadamente da estrutura do documento, facilitando dessa forma, uma futura modificao no estilo da pgina; g) XML (Extensible Markup Language): uma linguagem de marcao, tal como o HTML. O XML lida com rtulos (tags) sendo possvel definir conjuntos de tags prprias. A definio do padro de tags possibilita a criao de documentos num formato XML que podem ser facilmente interpretados pelo Browser.

Diferentemente do HTML, no XML no h tags para aparncia dos dados. O XML tambm muito utilizado para padronizar a troca de informaes entre sistemas.

2.4 TECNOLOGIAS SERVIDOR

PARA

PROCESSAMENTO

NO

Uma aplicao na Web normalmente desenvolvida em uma arquitetura de trs camadas: a camada do cliente, responsvel pelo gerenciamento da interface, a camada intermediria, responsvel pelos modelos de negcios e a camada de dados, responsvel pelo acesso aos dados da aplicao. Segundo Zoltn (apud Fleury, 2002), na camada intermediria, ocorre realmente o trabalho de programao do aplicativo Web, sendo esta camada a responsvel por processar a informao enviada pelo cliente (browser), processar a regra de negcio (que pode estar em outra camada), interagir com o banco de dados, preparar a resposta (quase sempre na forma de uma pgina HTML) e envi-la ao cliente. Os componentes dessa camada esto no servidor Web e so capazes de utilizar os recursos desses servidores e dos demais recursos conectados para realizar o processamento. importante perceber que a forma com que todas essas

10 tecnologias trabalham similar: recebem uma solicitao do cliente, processam essa solicitao e respondem na forma de uma pgina HTML. A seguir, so destacadas algumas destas tecnologias: a) CGI (Common Gateway Interface): um padro para interfaceamento de aplicaes externas com servidores, como um servidor Web, por exemplo. O CGI a aplicao mais bsica para acessar os recursos do sistema no servidor e foi tambm a primeira tecnologia para o desenvolvimento de aplicaes Web. Pode ser escrito em diversas linguagens, sendo as principais o Perl e o C/C++; b) SSI (Server Side Includes): utiliza rtulos especiais (tags), inseridos no documento HTML que so interpretados pelo servidor Web, possibilitando assim que as tags sejam substitudas por contedo dinmico, de acordo com o processamento realizado no servidor. As tags do SSI so especficas para cada servidor Web; c) ASP (Active Server Pages): uma tecnologia da Microsoft que utiliza os conceitos de SSI e CGI para a construo de contedo dinmico, somente funcionando no Internet Information Server (IIS), o software servidor Web da Microsoft, ou seja, exclusiva para a plataforma Windows. O cdigo ASP inserido no HTML e interpretado pelo servidor a cada requisio recebida. O ASP talvez a mais popular linguagem de script servidora atualmente em uso; d) PHP (Hypertext Preprocessor): segue a mesma filosofia do ASP, porm pode ser executada por diferentes servidores, principalmente na plataforma Unix (Solaris, Linux, Etc.). Diferentemente do ASP, o PHP utiliza sintaxe baseada em C, Java e Perl. uma tecnologia no-proprietria; e) ISAPI/NSAPI: a tecnologia Information Server Application Programming Interface (ISAPI) baseada no acesso a Application Programming Interface (API) do servidor Web, atravs do qual a aplicao servidora ISAPI ou NSAPI utiliza diretamente a API do servidor Web para executar a funo desejada. A NSAPI voltada para o Netscape Server e a ISAPI a tecnologia para o servidor IIS da Microsoft. Algumas linguagens possibilitam o desenvolvimento de tais aplicativos, como o caso do Delphi e C++; f) SERVLETS: um tipo de aplicativo Java que, executado no servidor Web, permite um funcionamento similar ao CGI. Os Servlets Java so multiplataforma e oferecem bom desempenho;

11 g) JSP: (Java Server Pages): uma tecnologia baseada em Java que utiliza o mesmo princpio do ASP, com cdigo Java embutido na pgina HTML, o qual interpretado a cada requisio pelo servidor Web. Tem se mostrado uma tecnologia bastante promissora; h) COLDFUSION: linguagem de script server que tambm utiliza uma filosofia similar ao ASP e JSP. Possui sintaxe prpria e uma tecnologia proprietria; Uma outra tecnologia disponvel atualmente o WebSnap, da Borland. Por ser objeto de estudo neste trabalho, ela ser detalhada no prximo captulo.

12

3 WEBSNAP
De acordo com Matos (2002), at o Delphi 5, o conjunto de componentes que encapsulava toda a tecnologia para a criao de aplicativos Web se chamava WebBroker. A melhor opo era o conjunto de componentes Internet Express, que fornecia uma interface de programao, unindo XML, JavaScript e HTML. A partir do Delphi 6 surgiu o WebSnap. O WebSnap no substitui o que o Delphi j oferecia para desenvolvimento internet, mas surgiu para completar e estender as tecnologias WebBroker e Internet Express, evoluindo o conceito de formulrios e fornecendo uma melhor interface, contendo uma coleo de componentes voltados ao desenvolvimento Rappid Application Development (RAD) de aplicaes Web. O Websnap um novo paradigma para o desenvolvimento de aplicativos Web, possuindo diversas vantagens em relao ao WebBroker, como o fato de existir muitos componentes prontos para uso, para manipular tarefas comuns, como login de usurios, gerenciamento de sesses e inmeros novos recursos, como a criao de mltiplos mdulos, suporte a mdulos do Apache (uma alternativa ao Microsoft Internet Information Server), server-side scripts (scripts no lado do servidor), facilidades no uso de banco de dados e muitas outras novidades.

3.1 ARQUITETURA WEBSNAP


A primeira diferena notvel entre WebSnap e WebBroker que, em vez de ter um nico mdulo de dados com vrias aes eventualmente conectadas aos componentes produtores, o WebSnap tem vrios mdulos de dados, cada um correspondente a uma ao e tendo um componente produtor com um arquivo HTML anexado. Pode-se adicionar vrias aes em uma pgina/mdulo, mas a idia estruturar os aplicativos em torno de aes. Assim como nas aes, o nome da pgina indicado no caminho da requisio (Cantu, 2002). A FIGURA 2 ilustra a arquitetura WebSnap, com a ligao entre os mdulos e onde cada profissional atua no processo (Pauli, 2002).

13 FIGURA 2 MODELO WEBSNAP E OS PAPIS NA EQUIPE DE DESENVOLVIMENTO

Fonte: (Pauli, 2002).

Nesta arquitetura destacam-se: a) WebAppModule: representa a criao de um novo mdulo de aplicao WebSnap; b) WebPageModule: representam pginas web criadas na aplicao WebSnap; c) WebDataModule: equivalente ao mdulo de dados tradicional do Delphi; Pauli (2002) destaca que o WebSnap facilita muito a vida de empresas que desenvolvem aplicaes de comrcio eletrnico, principalmente s que possuem programadores e webdesigners em uma mesma equipe. Usando o WebSnap o programador Delphi desenvolve a aplicao principal parte de acesso a dados e das regras de negcio que ficam do lado do servidor. O webdesigner, por sua vez, customiza a interface e adiciona alguma funcionalidade extra, usando um editor HTML/JavaScript apropriado. Normalmente, os scripts WebSnap so escritos em JavaScript, uma linguagem baseada em objetos muito comum para programao de internet, pois ela a nica linguagem de scripts geralmente disponvel nos navegadores (no lado do cliente). Na verdade, o WebSnap usa o mecanismo ActiveScripting da Microsoft, que suporta JScript (uma variao de JavaScript) e VBScript. Como exemplo do que pode-se fazer com scripts apresentado no QUADRO 2 e na FIGURA 3 um exemplo de uma pgina demoscript. O script dessa pgina pode gerar uma tabela completa de valores multiplicados.

14 QUADRO 2 CDIGO COM SCRIPTS


<table border=1 cellspacing=0> <tr> <th>&hbsp;</th> <% for (j=1;j<=5;j++){%> <th>Column <%=j %></th> <% } %> </tr> <%for (i=1;i<=5;i++){%> <tr> <td>Line <%=i %></td> <% for (j=1;j<=5;j++){%> <td>Value=<%=i*j%></td> <% } %> </tr> <% } %> </table> Fonte: Cantu, 2002.

FIGURA 3 EXEMPLO DE SCRIPTS

Fonte: Cantu, 2002.

15 No script apresentado no QUADRO 2, o smbolo <%= substitui o comando Response.Write que utilizado para escrever uma linha na pgina. Outro recurso importante do script no lado do servidor a incluso de pginas dentro de outras pginas. Por exemplo, para modificar o menu, pode-se incluir o cdigo HTML e o script relacionado em um nico arquivo, em vez de mud-lo e mant-lo em vrias pginas (Cantu, 2002).

3.2 CRIANDO APLICATIVOS COM WEBSNAP


O ponto de partida do desenvolvimento de um aplicativo WebSnap uma caixa de dilogo que pode ser chamada na pgina WebSnap da caixa de dilogo New Items (File | New | Other) ou usando a barra de ferramentas Internet do IDE, que contm atalhos para os itens principais do WebSnap conforme ilustra a FIGURA 4 (Pauli, 2002). FIGURA 4 PALETA WEBSNAP E A BARRA DE FERRAMENTAS INTERNET

Na barra de ferramentas, quando escolhido New WebSnap Application, uma caixa de dilogo resultante, ilustrada na FIGURA 5, apresentada, permitindo configurar o tipo de servidor, o tipo do mdulo de aplicao, servios do mdulo principal e configurar qual o componente produtor ser utilizado no mdulo principal.

16 FIGURA 5 CRIAO DE UMA APLICAO WEBSNAP

As opes de configurao da aplicao so: a) tipo de servidor (item 1): especifica o tipo de servidor Web a ser utilizado na aplicao: - ISAPI/NSAPI: cria um DLL, que pode ser compartilhada entre vrios usurios; - CGI: cria um servidor que instanciado uma vez para cada usurio; - WINCGI: cria um executvel que opera com servidores Web de 16bit; - Apached Shared Module: novidade trazida pelo Delphi 6. Cria uma DLL compatvel com o servidor Web Apache (uma alternativa ao Microsoft Internet Information Server); - Web App Debugger Executable: verso utilizada somente para teste. Este tipo de aplicativo permite a depurao e execuo de aplicaes WebSnap sem a necessidade de um servidor web. Quando a aplicao estiver pronta, deve-se convert-la para um dos outros quatro tipos; b) tipo de mdulo da aplicao (item 2): define como ser o mdulo principal da aplicao:

17 - Page Module: representa uma pgina Web. O mdulo principal ser uma WebAppPageModule gerando contedo HTML, feito atravs de um componente produtor associado (como um DataSetPageProducer ou AdapterPageProducer). Em Page Options (item 4), configura-se qual componente produtor ser utilizado no mdulo principal; - Data Module: o equivalente ao mdulo de dados tradicional do Delphi. O mdulo principal ser um WebAppDataModule, que no produz contedo. O Web Data Module usado quando vrios Web Page Modules necessitam compartilhar alguns componentes, como datasets e databases; c) servios do mdulo principal (item 3): o boto Components mostra a caixa de dilogo ilustrada na FIGURA 6, na qual se escolhe quais servios devem ser adicionados ao mdulo principal de uma aplicao que contm vrios componentes, com cada um responsvel por implementar uma determinada funcionalidade: FIGURA 6 CONFIGURAO DOS COMPONENTES BSICOS DO APLICATIVO

A funcionalidade de cada componente listado na FIGURA 6 ser detalhada a seguir. Na FIGURA 7 apresentada a tela com os componentes setados na FIGURA 6.

18 FIGURA 7 COMPONENTES SETADOS

3.3 PALETA WEBSNAP


Na paleta Websnap encontram-se os seguintes componentes: a) Adapter: permite que campos e aes fiquem acessveis atravs de scripts. Quando for necessrio construir um formulrio para entrada de valores e depois recuperar estes valores, pode-se utilizar o componente Adapter. Um exemplo a utilizao do mesmo para fornecer uma entrada para campos NOME e SENHA, usando a propriedade Data para colocar os campos e Actions para as aes; b) PagedAdapter: tem suporte interno para exibir seu contedo em mltiplas pginas; c) DataSetAdapter: um tipo especializado de Adapter que obtm e seta valores de um Dataset. O DataSetAdapter tem um mecanismo para recuperar informaes sobre o registro original que est sendo alterado. Isso importante em um ambiente como a Web, onde cada requisio processada como um novo pedido; d) LoginFormAdapter: utilizado para construir um formulrio de login para o aplicativo, automaticamente ligado lista de usurios; e) StringValuesList: este componente possui uma propriedade chamada Strings, onde so fornecidos os possveis valores para um campo. Para que a lista de valores seja exibida no formulrio, basta alterar a propriedade ValuesList num campo qualquer do DataSetAdapter;

19 f) DataSetValuesList: este recurso utilizado para puxar valores de outra tabela. Esse componente possui uma propriedade Dataset que indica de onde sero retirados os valores para exibio e os cdigos correspondentes. Para fazer a vinculao no DataSetAdapter, altera-se a propriedade ValuesList de qualquer campo no DataSetAdapter; g) WebAppComponents: centraliza o acesso aos componentes e servios da aplicao. Suas propriedades nada mais so que ponteiros para os demais componentes do mdulo principal; h) ApplicationAdapter: torna campos e aes da aplicao acessveis via server-side scripts, por meio do objeto Application; i) EndUserAdapter: utilizado para acessar informaes de usurio, sesso e para construir um formulrio de login para o aplicativo; j) EndUserSessionAdapter: usado pelo servio de login, em conjunto com o componente TSessionsService. A propriedade LoginPage indica a pgina responsvel por gerar o contedo do login, geralmente usando um

LoginFormAdapter e um AdapterPageProducer. Este componente armazena informaes sobre o usurio que est logado na aplicao servidora; k) PagedDispatcher: responsvel por traduzir as mensagens da requisio http e associar o respectivo Web Page Module. A propriedade DefaultPage indica a pgina padro da aplicao; l) AdapterDispatcher: encarregado de manipular o envio de informaes geradas por uma ao de um formulrio HTML; m) LocateFileService: pode-se utilizar este componente para controlar como o servidor deve localizar os templates. Templates so arquivos HTML criados junto ao Web Page Module, contendo HTML e server-side scripts. Pode-se, por exemplo, especificar outra localizao (diretrio) para os arquivos de template, diferente da usada pelo servidor; n) SessionsService: utilizado quando se precisa manter informaes persistentes sobre um determinado usurio, como o contedo de um carrinho de compras por exemplo. A propriedade DefaultTimeOut indica quanto tempo deve-se aguardar pela liberao de uma sesso depois de um perodo de inatividade especificado em minutos. O servio de sesses permite que a aplicao servidora mantenha

20 informaes sobre tudo o que o usurio est fazendo: pginas acessadas, operaes feitas, acessos e logins. Como exemplo, pode-se usar este servio para construir facilmente uma loja virtual, onde o servidor armazena informaes sobre todos os produtos que o usurio comprou durante toda a vida til da sesso (neste caso um processo de compra), no final fazendo uma listagem de produtos com base nos valores da sesso do usurio. o) WebUserList: mantm uma lista com os usurios que podem acessar as pginas que estejam com o flag wpLoginRequierd habilitado. Utiliza-se a propriedade UserItems para gerenciar usurios; p) XslPageProducer: cria uma pgina Web transformando os dados descritos com o Extensible Markup Language (XML) em Extensible Stylesheet Language (XSL); q) AdapterPageProducer: permite passar informaes de cdigo Delphi compilado para o script interpretado, fornecendo uma interface de script para um aplicativo Delphi.

3.3.1 ADAPTADORES
Segundo Cantu (2002), um adaptador permite passar informaes do cdigo Delphi compilado para o script interpretado, fornecendo uma interface de script para o aplicativo Delphi. Os adaptadores contm campos que representam dados e contm aes que representam comandos. Os scripts no lado do servidor podem acessar esses valores e executar esses comandos, passando parmetros especficos para eles. Tecnicamente, os adaptadores implementam uma interface chamada IDispatch que pode ser acessada pelo script atravs de uma linguagem de mecanismo Active Scripting, como o JavaScript. O componente produtor de pgina responsvel por chamar o mecanismo Active Scripting e tem uma propriedade indicando a linguagem do script. Para recuperar ou validar os valores dos campos quando a ao for chamada, utiliza-se o evento OnExecute da ao, como apresentado no QUADRO 3.

21 QUADRO 3 RECUPERAR OU VALIDAR VALORES


Procedure TpageProducerPageDemo.ENVIARexecute(Sender: TObject; Params: Tstrings); Begin IF NOME_CAMPO.Action.Value= Then Adapter.Errors.AddError(Exception.Create(Nome no pode ser nulo)); End; Fonte: Pauli, 2002.

Desenvolver a interface com o usurio para o formulrio e o script relacionado levaria algum tempo, usando HTML simples. Mas o componente AdapterPageProducer tem um projetista de HTML integrado, que a Borland chama de Web Surface Designer. Usando essa ferramenta, pode-se adicionar visualmente um formulrio pgina HTML e adicionar o componente AdapterFieldGroup a ela. Para ter editores para os dois campos automaticamente apresentados, necessrio conectar esse grupo de campos ao adaptador. Ento, para ter botes para todas as aes do adaptador, deve-se adicionar um componente AdapterCommandGroup e conect-lo ao componente AdapterFieldGroup (Cantu, 2002). Os campos e os botes so apresentados automaticamente, se as propriedades AddDefaultFields e AddDefaultCommands do grupo de campos e do grupo de comandos forem configuradas. O efeito das operaes visuais executados para construir o formulrio ilustrado na FIGURA 8, est resumido no trecho do QUADRO 4.

22 QUADRO 4 SCRIPT PROJETISTA DO ADAPTERPAGEPRODUCER


object AdapterPageProducer: TAdapterPageProducer object AdapterForm1: TAdapterForm object AdapterFieldGroup1: TAdapterFieldGroup Adapter = Adapter1 object FldText: TAdapterDisplayField FieldName = Text end object FldAuto: TAdapterDisplayField FieldName = Auto end end object AdapterCommandGroup1: TAdapterCommandGroup DisplayComponent = AdapterFieldGroup1 object CmdPost: TAdapterActionButton ActionName = Post end object CmdAddPlus: TAdapterActionButton ActionName = AddPlus end end end end Fonte: Cantu, 2002.

FIGURA 8 WEB SURFACE DESIGNER

Fonte: Cantu, 2002.

23

3.4 CRIANDO UMA WEB PAGE MODULE


Quando criado um novo WebSnap Page Module (pgina WebSnap) a caixa de dilogo na FIGURA 9 apresentada. Pode-se criar um novo Web Page Module para cada pgina Web da aplicao. No momento da criao escolhido o tipo de componente a ser usado para produzir o contedo da pgina. As opes de produtores PageProducer so: ou

AdapterPageProducer, XSLPageProducer.

DataSetPageProducer,

InetXPageProducer,

FIGURA 9 CRIAO DE UM WEB PAGE MODULE COM UM ADAPTERPAGEPRODUCER

Dependendo do tipo de produtor escolhido, a opo New File poder ser marcada. Caso a opo estiver marcada, um novo arquivo HTML ser criado com o mesmo nome da unit, ficando automaticamente associado ao WebPageModule. Este arquivo conter alguns tags HTML ou server-side scripts e pode ser facilmente alterado em um editor externo, ou no prprio Delphi. A opo Module Options permite especificar como dever ser feita a criao e a destruio do objeto. A opo Creation pode ser On Demand (o mdulo criado quando

24 algum solicitar seu contedo) ou Always (o mdulo criado quando o aplicativo iniciado). A opo Caching permite configurar a instncia do objeto para permanecer em memria aps o uso (Cache Instance), ou para que seja destrudo aps devolver o contedo do produtor associado (Destroy Instance).

3.5 WEBSNAP E BANCO DE DADOS


De acordo com Cantu (2002), uma das reas em que o Delphi sempre se destaca a programao em bancos de dados. Por isso, no surpresa existir um grande suporte a manipulao de conjuntos de dados dentro da estrutura WebSnap. Especificamente pode-se usar o componente DataSetAdapter para conectar-se a um conjunto de dados e exibir seus valores em um formulrio ou em uma tabela, usando o editor visual do componente AdapterPageProducer. Como exemplo, um novo aplicativo WebSnap foi criado com um componente AdapterPageProducer como pgina principal, para apresentar uma tabela em uma grade, e outro componente AdapterPageProducer em uma pgina secundria, para mostrar um formulrio com um nico registro. Ao aplicativo, tambm foi adicionado um mdulo de dados WebSnap, como um container dos componentes de conjunto de dados. O mdulo de dados tem um componente ClientDataSet conectado a um conjunto de dados dbExpress atravs de um provedor e baseado em uma conexo InterBase, como segue no QUADRO 5. QUADRO 5 EXEMPLO DE SCRIPT DO COMPONENTE CLIENTDATASET
object ClientDataSet1: TClientDataSet Active = True ProviderName = DataSetProvider1 end object SQLConnection1: TSQLConnection Connected = True ConnectionName = IBLocal LoginPrompt = False end object SQLDataSet1: TSQLDataSet SQLConnection = SQLConnection1 CommandText = select CUST_NO, CUSTOMER, ADDRESS_LINE1, CITY, STATE_PROVINCE, + COUNTRY from CUSTOMER end object DataSetProvider1: TDataSetProvider DataSet = SQLDataSet1

end
Fonte: Cantu, 2002.

25 Segundo Cantu (2002), pode-se adicionar um componente DataSetAdapter primeira pgina e conect-lo ao componente ClienteDataSet do mdulo da Web. O adaptador torna automaticamente disponveis todos os campos do conjunto de dados e vrias aes predefinidas para operar sobre ele (como Delete, Edit, Apply). Assim como o componente PagedAdapter, o componente DataSetAdapter tem uma propriedade PageSize em que se pode indicar o nmero de elementos a serem exibidos em cada pgina. O componente tambm tem comandos que podem ser usados para navegar entre as pginas. Essa estratgia particularmente conveniente quando se quer apresentar um conjunto de dados grande em uma grade. O produtor de pgina correspondente tem um formulrio contendo dois grupos de comandos e uma grade. O primeiro grupo de comandos (exibido abaixo da grade) tem comandos predefinidos pra manipular pginas: CmdPrevPage, CmdNextPage e CmdGotoPage. Esse ltimo comando gera uma lista de nmeros para as pginas, de modo que um usurio pode pular diretamente para cada uma delas. O componente AdapterGrid tem as colunas padro, mais uma extra, contendo dois comandos, Edit e Delete. O grupo de comandos inferior tem um boto, usado para criar um novo registro.

3.5.1 MESTRE-DETALHE NO WEBSNAP


O componente DataSetAdapter tem suporte especfico a relacionamentos mestredetalhe entre conjuntos de dados. Depois de ter criado o relacionamento entre os conjuntos de dados, define-se um adaptador para cada conjunto de dados e, em seguida, conecta-se a propriedade MasterAdapter do adaptador do conjunto de dados de detalhes. Configurar o relacionamento mestre-detalhe entre os adaptadores os faz trabalhar de uma maneira transparente. Por exemplo, quando se muda o modo de trabalhar do mestre ou insere-se novos registros, os detalhes entram automaticamente no modo Edit ou so atualizados (Cantu, 2002).

3.6 SESSES, USURIOS E PERMISSES


Segundo Cantu (2002), outra rea muito interessante da arquitetura WebSnap seu suporte a sesses e usurios. As sesses so suportadas usando-se uma estratgia clssica: cookies temporrios. Esses cookies so enviados para o navegador, de modo que as requisies seguintes do mesmo usurio podem ser reconhecidas pelo sistema. Adicionando

26 dados a uma sesso, em vez de um adaptador de aplicativo, pode-se ter dados que dependem de sesso ou do usurio especfico (embora um usurio possa executar vrias sesses, abrindo vrias janelas de navegador no mesmo computador). Para suportar sesses, o aplicativo mantm os dados na memria, recurso este que no est disponvel no caso de programas CGI, por exemplo. Alm de ter pginas que exigem um login para acessar, pode-se fornecer a usurios especficos o direito de ver mais pginas do que outros. Todo usurio, tem um conjunto de direitos separados por pontos-e-vrgulas ou vrgulas. O usurio deve ter todos os direitos definidos para a pgina solicitada, geralmente listados nas propriedades ViewAccess e ModifyAccess dos adaptadores, que indicam, respectivamente, se o usurio pode ver os elementos determinados enquanto navegam ou se podem at edita-los. Essas configuraes so muito granulares e podem ser aplicadas a adaptadores inteiros ou a alguns campos de adaptadores especficos. Por exemplo, pode-se ocultar algumas das colunas de uma tabela para determinados usurios, ocultando os campos correspondentes. O componente global PageDispacher tambm tem os eventos OnCanViewPage e OnPageAccessDenied que podem ser usados para controlar o acesso s vrias pginas do programa dentro do cdigo do programa, permitindo o controle ainda maior.

27

4 DESENVOLVIMENTO DO TRABALHO
Neste captulo so apresentados os requisitos do prottipo, as fases de seu desenvolvimento, considerando a seqncia de suas etapas e as caractersticas do prottipo, proporcionando assim o entendimento das funcionalidades do mesmo. Alm disso, sero tambm relacionados e discutidos os resultados obtidos a partir das avaliaes da anlise e implementao do prottipo desenvolvido.

4.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO


Com a realizao deste trabalho pretendeu-se fazer uma verificao da efetividade dos novos recursos de desenvolvimento do Delphi 6 para aplicaes de internet mais especificamente o WebSnap. Esta proposta baseou-se no fato da pouca nfase dada a esta tecnologia atualmente no desenvolvimento de aplicaes web. Para isto foi utilizada essa nova coleo de componentes na construo de um prottipo de sistema de reserva de laboratrio de ensino on-line. Os requisitos identificados para o trabalho so: a) ao acessar o prottipo, o mesmo dever solicitar o login do usurio para que sejam dadas as devidas permisses; b) devem existir dois perfis de usurios: administrador e usurio padro; c) o prottipo deve ser capaz de permitir que o usurio administrador mantenha os cadastros de usurio, disciplina, software, laboratrio e horrio; d) o prottipo deve ser capaz de permitir que o usurio faa reservas de laboratrio on-line; e) o prottipo deve permitir que um usurio faa consultas de reservas realizadas; f) o prottipo deve permitir que um usurio desmarque reservas realizadas.

4.2 ESPECIFICAO
A especificao do prottipo foi realizada utilizando a linguagem de modelagem Unified Modeling Language (UML). A UML a padronizao da linguagem de

28 desenvolvimento orientado a objetos para visualizao, especificao, construo e documentao de sistemas (Furlan 1998). Para a modelagem foram utilizados os diagramas de casos de uso, diagramas de classes e diagramas de seqncia. Os mesmos foram feitos utilizando a ferramenta Rational Rose da empresa Rational Software Corp.

4.2.1 CASOS DE USO


Neste prottipo foram identificados cinco casos de uso. Eles so descritos a seguir: a) efetuar Login: responsvel pelo login do usurio e pela liberao de permisses de acesso e manuteno das pginas; b) manter Cadastro: responsvel pela entrada dos dados referentes aos cadastros de usurios, disciplinas, softwares, laboratrios e horrios. Esses cadastros e eventuais manutenes so de total responsabilidade do usurio Administrador. Ao cadastrar um usurio, o mesmo pode ser administrador ou usurio padro e ter disciplinas ligadas a ele. Ao cadastrar os laboratrios, pode-se incluir quais os softwares com licenas de uso disponveis nesses laboratrios; c) fazer Reserva: neste caso de uso, ao acessar a pgina de reservas o usurio informa a disciplina, software e horrio. Atravs do software, o prottipo verificar quais os laboratrios que possuem a disponibilidade de licenas de uso, informando quais esto disponveis no momento, para que possam ser registradas as reservas; d) consultar Reserva: ao acessar a pgina de consultar reservas, so demonstradas todas as reservas, sendo que o usurio padro s poder modificar suas prprias reservas; e) desmarcar Reserva: ao acessar as consultas de reserva, o usurio padro tem direito de desmarcar suas prprias reservas. Caso o mesmo for administrador poder desmarcar as reservas de qualquer usurio. A FIGURA 10 demonstra os cinco casos de uso descritos anteriormente:

29 FIGURA 10 DIAGRAMA DE CASO DE USO

4.2.2 DIAGRAMA DE CLASSES


Segundo Furlan (1998), o diagrama de classe a essncia da UML resultado de uma combinao de diagramas propostos pelo OMT, Booch e vrios outros mtodos. Trata-se de uma estrutura lgica esttica em uma superfcie de duas dimenses mostrando uma coleo de elementos declarativos de modelo, como classes, tipos e seus respectivos contedos e relaes. A FIGURA 11 demonstra o diagrama de classes do prottipo.

30 FIGURA 11 DIAGRAMA DE CLASSES

Existem seis classes identificadas para o funcionamento do prottipo: a) TUsuario: corresponde aos usurios cadastrados no prottipo e controla os acessos dos tipos de usurios (administrador, usurio padro); b) TDisciplina: corresponde s disciplinas dos usurios padro cadastradas no prottipo e sempre estar ligada classe TUsuario. importante destacar que a ligao entre usurio e disciplina no obrigatria, uma vez que o prottipo pode ter usurios que no ministram disciplinas. Um exemplo pode ser o prprio administrador do sistema; c) TSoftware: corresponde aos softwares cadastrados no prottipo e podendo estar ligada a classe TLaboratrio; d) TLaboratorio: corresponde aos laboratrios cadastrados no prottipo e sempre estar ligada a classe TSoftware onde se encontram os softwares com direitos de uso para a classe TLaboratrio. O cadastramento dos softwares de responsabilidade do administrador. Assim, caso necessite de um software no cadastrado no prottipo o usurio padro dever entrar em contato com o

administrador que verificar a possibilidade de instalar o software em algum laboratrio. Isto particularmente importante para que se mantenha o controle sobre as licenas de uso dos softwares instalados nos laboratrios e para que o

31 administrador tenha tempo de providenciar as instalaes dos mesmos nos equipamentos; e) TReserva: a classe TReserva responsvel por manter as reservas efetuadas pelos usurios nos laboratrios; f) THorario: corresponde aos horrios cadastrados no prottipo e poder estar ligada a uma classe TReserva;

4.2.3 DIAGRAMA DE SEQNCIA


Os diagramas de seqncia representam a seqncia em que as aes ocorrem dentro do prottipo. Eles demonstram como feita a troca de mensagens entre as classes. Para cada caso de uso apresentado anteriormente, foi feito um diagrama de seqncia, os quais sero demonstrados a seguir:

4.2.3.1 EFETUAR LOGIN


Para entrar no prottipo a pessoa deve se identificar atravs de seu Login e Senha. executada a operao GetUsuario para assim efetuar o login conforme apresentado na FIGURA 12 do diagrama de seqncia Efetuar Login. Atravs do login o prottipo dever identificar se a pessoa um administrador ou um usurio padro, para assim dar seus devidos direitos de acesso ao sistema. FIGURA 12 DIAGRAMA DE SEQNCIA EFETUAR LOGIN

32

4.2.3.2 MANTER CADASTRO


O ator do tipo administrador efetua os cadastros, que so executados atravs da rotina Cadastrar existentes nas classes TUsuario, TDisciplina, TSoftware, TLaboratorio e THorario conforme apresentado na FIGURA 13 do diagrama de seqncia Manter Cadastro. FIGURA 13 DIAGRAMA DE SEQNCIA MANTER CADASTRO

33

4.2.3.3 FAZER RESERVA


O ator pode fazer uma reserva, que executada atravs da rotina Fazer Reserva da classe TReserva. Essa classe executa vrias operaes que so: a) GetUsuario: responsvel por pegar o usurio na tabela de dados; b) GetDisciplina: caso o usurio for do tipo usurio padro informar as disciplinas do mesmo; c) GetSoftware: responsvel por pegar na tabela de dados o software necessrio para reserva do laboratrio; d) GetLaboratorio: informar quais os laboratrios disponveis com direito de uso para o software escolhido anteriormente; e) GetHorario: responsvel por pegar na tabela de horrios o horrio da reserva; f) Fazer Reserva: responsvel por cadastrar a reserva. A FIGURA 14 apresenta o diagrama de seqncia Fazer Reserva. FIGURA 14 DIAGRAMA DE SEQNCIA FAZER RESERVA

34

4.2.3.4 CONSULTAR RESERVA


O ator pode fazer consultas de reservas, que so executadas atravs da rotina Consultar Reserva da classe TReserva. Essa classe executa vrias operaes que so: GetUsuario, GetDisciplina, GetSoftware, GetLaboratrio, GetHorario. A FIGURA 15 apresenta o diagrama de seqncia Consultar Reserva. FIGURA 15 DIAGRAMA DE SEQNCIA CONSULTAR RESERVA

35

4.2.3.5 DESMARCAR RESERVA


O ator pode desmarcar reservas, que so executada atravs da rotina Desmarcar Reserva da classe TReserva. Essa classe executa vrias operaes que so: GetUsuario, GetDisciplina, GetSoftware, GetLaboratrio, GetHorario. FIGURA 16 - DIAGRAMA DE SEQNCIA DESMARCAR RESERVA

36

4.2.4 MODELO DE DADOS


Neste modelo fica a estrutura dos dados utilizados no prottipo. Apesar de ser modelado baseado em objetos, os dados so armazenados em um banco de dados relacional, o MSSQL Server 2000. Sendo assim, na FIGURA 17 apresentado o modelo de dados do prottipo. FIGURA 17 - MODELO DE DADOS FSICO

4.3 IMPLEMENTAO
Para ter-se um melhor entendimento da implementao do prottipo, a seguir mostrase as tcnicas, ferramentas utilizadas e quais so as operacionalidades desta implementao.

4.3.1 TCNICAS E FERRAMENTAS UTILIZADAS


Durante o desenvolvimento desse trabalho foram utilizadas algumas tecnologias e ferramentas citadas a seguir, visando uma melhor compreenso da pesquisa como um todo.

37 Para a criao das tabelas de estrutura de dados foi utilizado o ER/Studio da empresa Embarcadero. O banco de dados utilizado no prottipo foi o MSSQL Server 2000 da Microsoft. Para implementao do prottipo foi utilizada a ferramenta Borland Delphi 6.0. O desenvolvimento e testes foram realizados no Internet Explorer do sistema operacional Windows XP Professional. Nos testes de portabilidade e implantao do prottipo utilizou-se o Internet Information Service (IIS) da Microsoft como servidor Web.

4.3.2 OPERACIONALIDADE DA IMPLEMENTAO


Neste item, ser abordado o prottipo que o objetivo geral deste trabalho, demonstrando o seu funcionamento e apresentando sua interface simples e objetiva. Nesse prottipo foi explorada parte de desenvolvimento do lado do programador, sendo assim, para um melhor entendimento ser demonstrada detalhadamente a execuo do mesmo. Comeando com os diferentes comportamentos em conseqncia do login do usurio, podendo esse ser administrador ou usurio padro.

38

4.3.2.1 ADMINISTRADOR
O administrador responsvel pela manuteno dos cadastros (Usurio, Disciplina, Laboratrio, Software e Horrio) e Reservas. Compreendendo a insero, alterao e excluso dos registros nas referidas tabelas. Sendo assim, aps logado, o usurio administrador ter acesso a todos os cadastros disponibilizados no prottipo, conforme pode ser observado na FIGURA 18. FIGURA 18 TELA HOME DO ADMINISTRADOR

39

Alm dos cadastros naturais funo do administrador manter a tabela de usurios e apenas ele que pode inserir, excluir ou definir um outro usurio como administrador. Na FIGURA 19 pode-se observar a viso que o usurio administrador tem da pgina de usurios. FIGURA 19 TELA DE USURIO DO ADMINISTRADOR

40

Na pgina de Reservas observa-se mais um diferencial do administrador. Nessa pgina o mesmo pode inserir, alterar ou desmarcar qualquer reserva, indiferente do usurio que cadastrou a mesma. A viso da pgina de Reservas obtida pelo administrador demonstrada na FIGURA 20. FIGURA 20 TELA DE RESERVA DO ADMINISTRADOR

41

Ao administrador tambm cabe a funo de manter as tabelas filhas como o caso de Professor_Disciplinas e Laboratorio_Softwares. Nesses casos especficos a sua manuteno ocorre atravs da pgina de sua tabela pai, como se observa na FIGURA 21, onde a tela de Laboratrio disponibiliza a insero ou excluso dos softwares com direitos de uso para o respectivo laboratrio. FIGURA 21 TELA DE LABORATRIO DO ADMINISTRADOR

42

4.3.2.2 USURIO PADRO


Esse usurio representa a figura da pessoa que faz suas reservas de laboratrio. Ao logar-se na pgina principal ele ter acesso apenas s pginas de Usurio e Reserva, como pode ser observado na FIGURA 22. FIGURA 22 TELA HOME DO USURIO PADRO

43

Acessando-se a pgina de Usurio pode-se observar mais uma limitao que esse tipo de login impe. Apenas ser mostrado o usurio que est logado e nessa tabela no ser permitida a incluso ou excluso de registros, sendo ainda bloqueada a alterao do campo ADM que corresponde ao perfil do usurio (Administrador ou Usurio padro). Na FIGURA 23 mostrada a tela de Usurio do usurio padro. FIGURA 23 TELA DE USURIO DO USURIO PADRO

44

Quando logado com um usurio padro permitido consultar todas as reservas existentes, no entanto apenas pode-se alterar ou excluir reservas onde o usurio seja o mesmo que o usurio que est logado atualmente. Tal limitao pode ser vista na FIGURA 24 que mostra a tela de reservas do usurio padro. FIGURA 24 TELA DE RESERVA DO USURIO PADRO

45

Ao cadastrar uma nova reserva quando o usurio logado for do tipo usurio padro, o mesmo j vem como responsvel da reserva, bastando apenas selecionar a disciplina, software, laboratrio, data e horrio. Pode-se ver na FIGURA 24 tela de incluir reservas do usurio padro. FIGURA 25 TELA DE INCLUIR RESERVA DO USURIO PADRO

4.4 RESULTADOS E DISCUSSO


Neste item sero comentadas algumas caractersticas e dificuldades da tecnologia de desenvolvimento em questo neste trabalho. Uma das primeiras dificuldades encontradas na fase do levantamento bibliogrfico foi a escassez de material, pois a tecnologia nova e h poucos documentos sobre o assunto. As principais bibliografias sobre desenvolvimento Web tratam de tecnologias como ASP, PHP, Dot.Net que tm sido mais utilizadas comercialmente.

46 Outra dificuldade foi o fato da tecnologia ser originria e proprietria da Borland, sendo que a maior parte do material encontrado era da prpria empresa, devendo-se portanto tomar muito cuidado com a propaganda embutida em tais textos. Quanto implementao, foram encontradas pequenas dificuldades tambm oriundas da novidade, mas tudo contribuiu para o aprendizado e para as avaliaes conclusivas. No desenvolvimento do prottipo utilizou-se o aplicativo Web App Debugger Executable que uma das grandes caractersticas referentes ao tipo de Servidor de aplicaes WebSnap. O Web App Debugger Executable permite que se desenvolva uma aplicao Web sem precisar ter um servidor WWW instalado na mquina. Com ele, gerado um executvel que um servidor COM que pode ser utilizado no desenvolvimento da aplicao, o que facilita muito na depurao do prottipo. Este tipo de aplicao deve ser usado somente para fins de desenvolvimento, teste e depurao, mas nunca para distribuio. No momento da distribuio, deve-se migrar de uma aplicao do tipo Web App Debugger Executable para uma de produo (ISAPI/NSAPI, CGI, WIN-CGI ou mdulos Apache). Para testar a portabilidade do prottipo desenvolvido com Web App Debugger Executable, o mesmo foi migrado facilmente para um servidor WWW que suporte ISAPI.. Abaixo so descritos os passos para a migrao entre os tipos de servidores suportados pelo WebSnap: a) abrir o projeto original (desenvolvido para Web App Debugger Executable) no IDE do Delphi; b) mostrar o Project Manager usando View | Project Manager; c) abrir a rvore do projeto para que todas as units fiquem visveis; d) no Project Manager, clicar com o boto direito e criar um novo projeto WebSnap, selecionando o tipo de servidor apropriado. Nesse teste de portabilidade criou-se um projeto para ISAPI; e) abrir a rvore do novo projeto para que sua unit seja mostrada, onde se deve remover a mesma;

47 f) feito esses passos, selecionar cada unit do projeto original (exceto o arquivo .DPR) e arrastar para o novo projeto. Neste caso, aparecer um dilogo solicitando a confirmao para adicionar o arquivo ao novo projeto, devendo-se clicar em YES; g) Executar o novo projeto. A homologao da implantao do prottipo foi realizada num sistema operacional Windows XP Professional com IIS, onde se pde constatar a facilidade de implantao. Os requisitos/passos para a implantao esto descritos a seguir: a) necessidade de um servidor de banco de dados para suportar as estruturas existentes no prottipo. Foi utilizado o MSSQL Server 2000; b) instalao do BDE; c) configurar um Aliase denominado TCCx apontando para a base de dados definida; d) necessidade de prvia instalao de um servidor WWW. Utilizou-se IIS que est presente na instalao do Windows XP Professional; e) compartilhar para Web a pasta onde se encontra o prottipo; f) para testar a funcionalidade da implantao, deve-se carregar o Internet Explorer e acessar o endereo compartilhado no item anterior. Quanto performance do prottipo pode-se dizer que a mesma foi boa, porm deve-se lembrar que no se teve a possibilidade de colocar o mesmo com vrios usurios logados simultaneamente.

48

5 CONCLUSES
Com a situao atual no desenvolvimento de sistemas onde Internet a palavra do momento, comeou-se a observar que existem duas reas bem distintas para o desenvolvimento de sites, que podem ser separadas em profissionais diferentes (programador e webdesigner). O WebSnap veio justamente ajudar nesse sentido, pois com ele fica bem dividida a parte de programao e a interao com o usurio. Alm disto, o mesmo extremamente gil na construo de aplicaes web com ligao a base de dados, como demonstrado no prottipo. O principal objetivo do trabalho, que era desenvolver uma aplicao utilizando os recursos de internet do Delphi 6, mais especificamente o WebSnap, foi atingido plenamente com o desenvolvimento de um prottipo de reserva de laboratrio de ensino on-line. O uso do WebSnap como tecnologia de desenvolvimento de pginas para a internet mostrou-se muito interessante para o aprimoramento das tcnicas de desenvolvimento de aplicativos Web, uma vez que a tecnologia realmente fcil de usar e o resultado obtido no prottipo satisfez as expectativas. Em virtude das exigncias do mercado, que esto cada vez mais se expandindo e necessitando de informaes em qualquer hora e em qualquer lugar, os benefcios que o prottipo fornece so muito interessantes, pois nele destacam-se as facilidades da administrao remota dos cadastros, a possibilidade de serem efetuadas reservas de qualquer lugar e um maior controle referente aos direitos de uso de cada software instado nos laboratrios. O estudo da tecnologia WebSnap mostrou-se muito interessante para o aprimoramento das tcnicas de desenvolvimento de aplicativos Web. Entretanto, aspectos como performance e segurana no puderam ser totalmente avaliados em funo do sistema no ter sido utilizado em produo efetivamente. Apesar disto, com as evidncias encontradas no trabalho concluise que se tem um conjunto que promete ser muito promissor nas aplicaes como um todo. Embora ainda esteja mais na teoria do que na prtica, um paradigma que vem conquistando desenvolvedores e usurios, devido s vantagens que a tecnologia pode oferecer, seja em nvel comercial ou em nvel de aprendizagem.

49

5.1 EXTENSES
Devido ao WebSnap ser dividido em duas partes e nesse prottipo ser explorada principalmente parte de desenvolvimento do lado do programador, uma sugesto seria desenvolver um aplicativo explorando a parte de scripts da tecnologia. Sugere-se tambm que seja desenvolvido um aplicativo utilizando a tecnologia WebSnap junto com outras tecnologias de desenvolvimento Web encontradas no Delphi. Quanto ao prottipo alguns aspectos podem ser melhorados, onde sugere-se um melhor desenvolvimento na parte de interface e um tratamento mais rigoroso na segurana do mesmo.

50

REFERNCIAS BIBLIOGRFICAS
CANTU, Marco. Dominando o Delphi 6: a bblia; Traduo Joo Eduardo Nbrega Tortello. So Paulo: Makron Books, 2002. CUSUMANO, M.; YOFFIE, D. Competing on internet time: lessons from netscape and its battle with Microsoft. New York: Free Press, 1998. FLEURY, Andr Leme. O surgimento da internet, Mestrando em Engenharia de ProduoUFSC, . Disponvel em: <http://igti.eps.ufsc.br/ce/surgimento.htm>. Acesso em: 03 abr. 2002. FURLAN, Jos Davi. Modelagem de objetos atravs da UML. So Paulo: Makon Books, 1998. MATOS, Gladstone. WebSnap essencial, formulrios, fields e producers. Clube Delphi, Rio de Janeiro, v. 26, p. 16-25, 2002. PAULI, Guinther. WebSnap essencial, fundamentos, arquitetura e componentes. Clube Delphi, Rio de Janeiro, v. 24, p. 24-36, 2002.

51

ANEXO I

52

Neste anexo encontra-se o dicionrio de dados do prottipo.

TCC_USUARIOS
Table Name Primary Keys Columns TCC_USUARIOS HANDLE

Column Name HANDLE

Datatype int

Null N

Definition Cdigo seqencial utilizado como chave primria

VINCULO NOME ADM

varchar(20) varchar(40) char(1)

N N N

Descrio do vnculo do usurio Descrio do nome do usurio Escolha do tipo de usurio

(administrador / usurio padro) SENHA LOGIN Foreign Keys varchar(10) varchar(20) N Descrio da senha do usurio N Descrio do login do usurio

Parent Table TCC_USUARIOS TCC_USUARIOS

Child Table TCC_RESERVAS TCC_PROFESSOR_DISCIPLINAS

53 DDL Code

CREATE TABLE TCC_USUARIOS( HANDLE VINCULO NOME ADM SENHA LOGIN int varchar(20) varchar(40) char(1) varchar(10) varchar(20) NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL,

CONSTRAINT PK1 PRIMARY KEY NONCLUSTERED (HANDLE) )

TCC_DISCIPLINAS
Table Name Primary Keys Columns TCC_DISCIPLINAS HANDLE

Column Name HANDLE

Datatype Int

Null

Definition seqencial utilizado

N Cdigo

como chave primria NOME Foreign Keys varchar(40) N Descrio do nome da disciplina

Parent Table TCC_DISCIPLINAS TCC_DISCIPLINAS

Child Table TCC_RESERVAS TCC_PROFESSOR_DISCIPLINAS

54 DDL Code

CREATE TABLE TCC_DISCIPLINAS( HANDLE NOME int varchar(40) NOT NULL, NOT NULL,

CONSTRAINT PK5 PRIMARY KEY NONCLUSTERED (HANDLE) )

TCC_PROFESSOR_DISCIPLINAS
Table Name Primary Keys Columns TCC_PROFESSOR_DISCIPLINAS HANDLE

Column Name HANDLE

Datatype int

Null

Definition

N Cdigo seqencial utilizado como chave primria

PROFESSOR DISCIPLINA Foreign Keys

int int

N Cdigo da tabela de usurios N Cdigo da tabela de disciplinas

Parent Table TCC_USUARIOS TCC_DISCIPLINAS

Child Table TCC_PROFESSOR_DISCIPLINAS TCC_PROFESSOR_DISCIPLINAS

55 DDL Code

CREATE TABLE TCC_PROFESSOR_DISCIPLINAS( HANDLE PROFESSOR DISCIPLINA int int int NOT NULL, NOT NULL, NOT NULL,

CONSTRAINT PK19 PRIMARY KEY NONCLUSTERED (HANDLE), CONSTRAINT RefTCC_USUARIOS29 FOREIGN KEY (PROFESSOR) REFERENCES TCC_USUARIOS(HANDLE), CONSTRAINT RefTCC_DISCIPLINAS30 FOREIGN KEY (DISCIPLINA) REFERENCES TCC_DISCIPLINAS(HANDLE) )

TCC_LABORATORIOS
Table Name Primary Keys Columns TCC_LABORATORIOS HANDLE

Column Name HANDLE

Datatype Int

Null

Definition

N Cdigo seqencial utilizado como chave primria

NOME CAPACIDADE

varchar(40) Int

N Descrio do nome do laboratrio Y Descrio laboratrio da capacidade do

Foreign Keys

Parent Table TCC_LABORATORIOS TCC_LABORATORIOS

Child Table TCC_RESERVAS TCC_LABORATORIO_SOFTWARES

56 DDL Code

CREATE TABLE TCC_LABORATORIOS( HANDLE NOME CAPACIDADE int varchar(40) int NOT NULL, NOT NULL, NULL,

CONSTRAINT PK8 PRIMARY KEY NONCLUSTERED (HANDLE) )

TCC_SOFTWARE
Table Name Primary Keys Columns TCC_SOFTWARE HANDLE

Column Name HANDLE

Datatype Int

Null

Definition

N Cdigo seqencial utilizado como chave primria

NOME Foreign Keys

varchar(40)

N Descrio do nome do software

Parent Table TCC_SOFTWARE TCC_SOFTWARE

Child Table TCC_RESERVAS TCC_LABORATORIO_SOFTWARES

57 DDL Code

CREATE TABLE TCC_SOFTWARE( HANDLE NOME int varchar(40) NOT NULL, NOT NULL,

CONSTRAINT PK6 PRIMARY KEY NONCLUSTERED (HANDLE) )

TCC_LABORATORIO_SOFTWARES
Table Name Primary Keys Columns TCC_LABORATORIO_SOFTWARES HANDLE

Column Name HANDLE

Datatype Int

Null

Definition

N Cdigo seqencial utilizado como chave primria

LABORATORIO SOFTWARE Foreign Keys

Int Int

N Cdigo da tabela de laboratrios N Cdigo da tabela de sofwares

Parent Table TCC_LABORATORIOS TCC_SOFTWARE

Child Table TCC_LABORATORIO_SOFTWARES TCC_LABORATORIO_SOFTWARES

58 DDL Code

CREATE TABLE TCC_LABORATORIO_SOFTWARES( HANDLE LABORATORIO SOFTWARE int int int NOT NULL, NOT NULL, NOT NULL,

CONSTRAINT PK21 PRIMARY KEY NONCLUSTERED (HANDLE), CONSTRAINT RefTCC_LABORATORIOS31 FOREIGN KEY (LABORATORIO) REFERENCES TCC_LABORATORIOS(HANDLE), CONSTRAINT RefTCC_SOFTWARE32 FOREIGN KEY (SOFTWARE) REFERENCES TCC_SOFTWARE(HANDLE) )

TCC_HORARIOS
Table Name Primary Keys Columns TCC_HORARIOS HANDLE

Column Name HANDLE

Datatype Int

Null

Definition

N Cdigo seqencial utilizado como chave primria

NOME Foreign Keys

varchar(20)

Y Descrio da grade de horrio

Parent Table TCC_HORARIOS

Child Table TCC_RESERVA_HORARIOS

59 DDL Code

CREATE TABLE TCC_HORARIOS( HANDLE NOME int varchar(20) NOT NULL, NULL,

CONSTRAINT PK3 PRIMARY KEY NONCLUSTERED (HANDLE) )

TCC_RESERVA_HORARIOS
Table Name Primary Keys Columns TCC_RESERVA_HORARIOS HANDLE

Column Name HANDLE

Datatype Int

Null N

Definition Cdigo seqencial utilizado como chave primria

RESERVA HORARIO Foreign Keys

Int int

N N

Cdigo da tabela de reservas Cdigo da tabela de horrios

Parent Table TCC_HORARIOS TCC_RESERVAS

Child Table TCC_RESERVA_HORARIOS TCC_RESERVA_HORARIOS

60 DDL Code

CREATE TABLE TCC_RESERVA_HORARIOS( HANDLE RESERVA HORARIO int int int NOT NULL, NOT NULL, NOT NULL,

CONSTRAINT PKTCC_RESERVA_HORARIOS PRIMARY KEY NONCLUSTERED (HANDLE), CONSTRAINT RefTCC_HORARIOS35 FOREIGN KEY (HORARIO) REFERENCES TCC_HORARIOS(HANDLE), CONSTRAINT RefTCC_RESERVAS41 FOREIGN KEY (RESERVA) REFERENCES TCC_RESERVAS(HANDLE) )

TCC_RESERVAS
Table Name Primary Keys Columns TCC_RESERVAS HANDLE

Column Name HANDLE

Datatype int

Null

Definition

N Cdigo seqencial utilizado como chave primria

DATA USUARIO DISCIPLINA SOFTWARE LABORATORIO

datetime int int int int

N Descrio da data da reserva N Cdigo da tabela de usurios N Cdigo da tabela de disciplinas N Cdigo da tabela de softwares N Cdigo da tabela de laboratrios

61 Foreign Keys

Parent Table TCC_USUARIOS TCC_DISCIPLINAS TCC_SOFTWARE TCC_LABORATORIOS TCC_RESERVAS DDL Code

Child Table TCC_RESERVAS TCC_RESERVAS TCC_RESERVAS TCC_RESERVAS TCC_RESERVA_HORARIOS

CREATE TABLE TCC_RESERVAS( HANDLE DATA USUARIO DISCIPLINA SOFTWARE LABORATORIO int datetime int int int int NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL,

CONSTRAINT PK9 PRIMARY KEY NONCLUSTERED (HANDLE), CONSTRAINT RefTCC_USUARIOS25 FOREIGN KEY (USUARIO) REFERENCES TCC_USUARIOS(HANDLE), CONSTRAINT RefTCC_DISCIPLINAS26 FOREIGN KEY (DISCIPLINA) REFERENCES TCC_DISCIPLINAS(HANDLE), CONSTRAINT RefTCC_SOFTWARE27 FOREIGN KEY (SOFTWARE) REFERENCES TCC_SOFTWARE(HANDLE), CONSTRAINT RefTCC_LABORATORIOS28 FOREIGN KEY (LABORATORIO) REFERENCES TCC_LABORATORIOS(HANDLE) )