Modelagem do Domínio Gerenciamento dos Laboratórios da

Propaganda
FACULDADE FARIAS BRITO
CIÊNCIA DA COMPUTAÇÃO
RAPHAEL BATISTA SALDANHA
DESENVOLVIMENTO DE UMA FERRAMENTA
COLABORATIVA FUNDAMENTADA NOS CONCEITOS
DE WEB 2.0
Fortaleza 2008
RAPHAEL BATISTA SALDANHA
DESENVOLVIMENTO DE UMA FERRAMENTA
COLABORATIVA FUNDAMENTADA NOS CONCEITOS
DE WEB 2.0
Monografia apresentada para obtenção dos
créditos da disciplina Trabalho de
Conclusão do Curso da Faculdade Farias
Brito, como parte das exigências para
graduação no Curso de Ciência da
Computação.
Orientador: Me. Ricardo Wagner.
Fortaleza 2008
II
DESENVOLVIMENTO DE UMA FERRAMENTA
COLABORATIVA FUNDAMENTADA NOS CONCEITOS
DE WEB 2.0
__________________________________
Raphael Batista Saldanha
NOTAS:
PARECER:
MONOGRAFIA (ESCRITA):
APRESENTAÇÃO (ORAL):
BANCA EXAMINADORA:
_______________________________________________
Prof. Me. Ricardo Wagner Cavalcante Brito
(Orientador)
_______________________________________________
Profª. Dra. Wietske Ineke Meyering
(Examinador)
_______________________________________________
Prof. Me. Sérgio Araújo Yunes
(Examinador)
III
RESUMO
Devido à necessidade de fornecer um meio no qual alunos, professores e colaboradores
da Faculdade Farias Brito possam compartilhar conhecimento e informações, torna-se
indispensável o desenvolvimento de uma aplicação que realize essa tarefa. A realização
dessa pesquisa foi motivada pelo objetivo de possibilitar o compartilhamento, bem
como a gestão do conhecimento gerado no contexto da Faculdade Farias Brito. Baseado
nos conceitos de engenharia de software descritos por Ort (2005) e nos fundamentos do
desenvolvimento de aplicações web descritos por O’Reilly (2004), o desenvolvimento
de um software colaborativo foi a solução encontrada para permitir gestão do
conhecimento no contexto da Faculdade Farias Brito. Foi realizada uma revisão
bibliográfica sobre os métodos, as ferramentas e as tecnologias mais utilizadas
atualmente, e em especial, as que possibilitam o desenvolvimento de aplicações web. O
desenvolvimento do software FFB Wiki foi a solução metodológica adotada para
fornecer um meio no qual alunos, professores e colaboradores da Faculdade Farias Brito
possam compartilhar conhecimento entre si. Como resultado desse trabalho, fazendo
uso de tecnologias que possibilitam um melhor desempenho e uma maior usabilidade e
tendo como base uma arquitetura de software bem estrutura, foi obtido um meio eficaz e
de fácil utilização que permite o desenvolvimento intelectual, pessoal e profissional dos
alunos, professores e colaboradores da Faculdade Farias Brito.
Palavras chave: Web 2.0, Plataforma web, Web Services, SOA, SOAP e Arquitetura de
Software.
IV
A meu irmão Alisson Batista de Medeiros
V
AGRADECIMENTOS
Aos meus pais, Francisco Cunha Saldanha e Zidiê Batista de Medeiros, a minha avó
Antonia Batista de Almeida e à minha irmã, Sara Batista de Medeiros, pelo apoio,
dedicação, conselhos e admirável paciência.
Ao Professor Jorge Albuquerque, por seu apoio e estimulo no início do curso.
Ao Professor Ricardo Wagner, pela confiança, amizade, dedicação, competência e
inestimável orientação, estando sempre disponível e comprometido com a qualidade do
trabalho.
Ao Professor Pitágoras Martins, pelo estímulo, confiança, amizade e dedicação.
Ao meu amigo Felipe Oquendo Nogueira, por ter me ensinado e me guiado em todos
esses anos de faculdade.
Ao meu amigo Patrick Romero Quinderé Frota, por seu apoio incondicional em todos
os momentos.
Aos colegas e professores do curso, pelo incentivo e apoio.
A todos aqueles que de forma direta ou indireta, colaboraram para a conclusão deste
trabalho.
VI
SUMÁRIO
INTRODUÇÃO................................................................................................................ 1
1
Web 2.0..................................................................................................................... 5
1.1
Tecnologias da Web 2.0 ............................................................................... 6
1.2
Plataforma Web ............................................................................................ 7
1.3
Tecnologias da Plataforma Web................................................................... 8
1.3.1
SOA .......................................................................................................... 9
1.3.2
Web Services ............................................................................................ 9
2
Tecnologias............................................................................................................. 18
2.1
Arquitetura Cliente/Servidor ...................................................................... 18
2.2
Linguagem HyperText Markup .................................................................. 19
2.3
Cascading Style Sheet e JavaScript ............................................................ 20
2.4
Linguagem Estruturada de Consultas ......................................................... 21
2.5
Windows Communication Foundation....................................................... 21
2.6
LINQ........................................................................................................... 22
3
Metodologia............................................................................................................ 24
4
Arquitetura Proposta............................................................................................... 27
4.1
Camada de Apresentação............................................................................ 27
4.2
Camada de Serviços.................................................................................... 30
4.3
Camada Lógica ........................................................................................... 31
4.4
Camada de Dados ....................................................................................... 39
5
FFB Wiki ................................................................................................................ 47
5.1
Desenvolvimento do FFB Wiki.................................................................. 48
5.2
Interfaces do FFB Wiki .............................................................................. 48
5.2.1
Módulo Arquivos.................................................................................... 49
5.2.2
Módulo Cursos ....................................................................................... 53
5.2.3
Módulo Debates...................................................................................... 55
5.2.4
Módulo Perguntas................................................................................... 59
5.2.5
Módulo Usuários .................................................................................... 63
5.3
Funcionalidades da Solução ....................................................................... 65
6
Resultados Obtidos ................................................................................................. 66
7
Conclusão ............................................................................................................... 67
7.1
Trabalhos Futuros ....................................................................................... 67
8
Referências Bibliográficas...................................................................................... 68
VII
LISTA DE FIGURAS
Figura 1 – Exemplo de XML.......................................................................................... 11
Figura 2 – Exemplo de Mensagem SOAP...................................................................... 12
Figura 3 – Exemplo do elemento <definitions> ............................................................. 13
Figura 4 – Exemplo do elemento <types>...................................................................... 14
Figura 5 – Exemplo do elemento <message>................................................................. 14
Figura 6 – Exemplo do elemento <portType> ............................................................... 15
Figura 7 – Exemplo do elemento <binding>.................................................................. 15
Figura 8 – Exemplo do elemento <service>................................................................... 16
Figura 9 – UDDI............................................................................................................. 17
Figura 10 – Arquitetura Cliente/Servidor....................................................................... 19
Figura 11 – Exemplo de consulta em uma fonte de informações em memória utilizando
LINQ............................................................................................................................... 22
Figura 12 – Arquitetura do LINQ................................................................................... 23
Figura 13 – Comunicação entre a Camada de Apresentação e a Camada Web ............. 28
Figura 14 – Diagrama de entidades ................................................................................ 29
Figura 15 – Comunicação na camada de serviços.......................................................... 31
Figura 16 – Interfaces da camada lógica ........................................................................ 32
Figura 17 – Classes concretas da camada lógica............................................................ 34
Figura 18 – Interfaces da camada de dados.................................................................... 40
Figura 19 – classes concretas da camada de dados ........................................................ 42
Figura 20 - Tela de Arquivos.......................................................................................... 49
Figura 21 - Tela de Filtros de Arquivo ........................................................................... 50
Figura 22 – Tela de Versões de Arquivo........................................................................ 50
Figura 23 – Tela de Manutenção de Arquivo ................................................................. 51
Figura 24 – Tela de Compartilhamento de Arquivo....................................................... 51
Figura 25 – Tela de Assuntos de Arquivo ...................................................................... 52
Figura 26 – Tela de Manutenção de Assuntos de Arquivo............................................. 52
Figura 27 – Tela de Cursos............................................................................................. 53
Figura 28 – Tela de Filtros de Curso .............................................................................. 54
Figura 29 – Tela de Manutenção de Curso..................................................................... 54
Figura 30 – Tela de Debates ........................................................................................... 55
Figura 31 – Tela de Manutenção de Debates ................................................................. 56
Figura 32 – Tela de Itens de Debate ............................................................................... 57
Figura 33 – Tela de Manutenção de Itens de Debate ..................................................... 58
Figura 34 – Tela de Perguntas ........................................................................................ 59
Figura 35 – Tela de Manutenção de Perguntas............................................................... 60
Figura 36 – Tela de Respostas........................................................................................ 61
Figura 37 – Tela de Manutenção de Respostas .............................................................. 62
Figura 38 – Tela de Usuários.......................................................................................... 63
Figura 39 – Tela de Filtros de Usuário ........................................................................... 64
Figura 40 – Tela de Manutenção de Usuários ................................................................ 64
VIII
LISTA DE ABREVIATURAS
ANSI
GUJ
HTTP
HTML
IBM
IDE
IIS
LINQ
OASIS
Information Standards
SOA
SOAP
SQL
TCP
UDDI
UDP
URI
WCF
WSDL
WWF
W3C
XML
American National Standards Institute
Grupo de Usuários Java
Hypertext Transfer Protocol
Hyper Text Markup Language
International Business Machines
Integrated Development Environment
Internet Information Service
Language Integrated Query
Organization for the Advancement of Structured
Service-Oriented Architecture
Simple Object Access Protocol
Structured Query Language
Trasmission Control Protocol
Universal Description, Discovery and Integration
User Datagram Protocol
Uniform Resource Identifier
Windows Communication Foundation
Web Services Description Language
Workflow Foundation
World Wide Web Consortium
eXtensible Markup Language
IX
INTRODUÇÃO
A Web, para chegar a sua fase 2.0, necessitou passar por um longo processo de
amadurecimento e por vários obstáculos que vão desde tecnologias que permitissem seu
desenvolvimento até a crença de que a Web já estava bastante desenvolvida. Como ela
foi projetada inicialmente para o simples compartilhamento de documentos, fazia-se
necessário uma mudança no valor da Web para seus usuários para que a mesma pudesse
evoluir (O’REILLY, 2004).
Segundo O´Reilly (O’REILLY, 2004), a Web, com o passar dos anos, evoluiu e
se tornou uma rede de alcance mundial, onde pessoas de todos os lugares podiam se
conectar e compartilhar informações entre si. Nesse contexto, surgiu a necessidade de
maior interação do usuário com a Web, dando início ao processo de transição para sua
fase 2.0.
Essa nova fase da Web, além de permitir o compartilhamento de informações
entre seus usuários de um modo distinto, possibilitou também uma maior colaboração
entre os mesmos. Esse é um dos principais aspectos dessa nova fase, na qual os usuários
deixam de ser apenas leitores de informações para também serem produtores, tornando
assim a Web dinâmica e colaborativa (O’REILLY, 2004).
Dentre as aplicações disponíveis na Web que ilustram esses aspectos, é possível
citar, a enciclopédia Wikipédia (http://pt.wikipedia.org/) cujo conteúdo é produzido,
editado
e
validado
por
seus
próprios
usuários
e
o
website
Flickr
(http://www.flickr.com/) que permite a criação de álbuns e o compartilhamento de
fotografias entre usuários de todo o mundo.
Vários fatores contribuíram para o avanço da Web em direção a sua fase 2.0,
dentre esses é possível citar alguns que foram de fundamental importância para que isso
ocorresse:
•
A popularização da banda larga;
•
Surgimento de tecnologias que possibilitam uma experiência de
navegação mais rica para o usuário;
1
•
Melhoria das técnicas de desenvolvimento de aplicações web, que
possibilitaram maior qualidade nos serviços disponibilizados na Web;
•
Crescimento do interesse de pessoas e empresas de se conectarem a rede.
Indo além, os conceitos e tecnologias disponíveis na Web 2.0 permitem que
aplicações sejam desenvolvidas a partir de outras já existentes. Desse modo, é possível
o crescimento mais rápido, com mais atrativos e funcionalidades nessa nova fase. Esse é
justamente um dos principais fundamentos da Web 2.0, que apresenta a grande rede
como uma plataforma de serviços, na qual aplicações podem e devem utilizar e
disponibilizar recursos na Web (O’REILLY, 2004).
Motivação
Cursos de Ciência da Computação geralmente possuem em seu currículo
diversas disciplinas voltadas para o desenvolvimento de software. Na Faculdade Farias
Brito, a existência do interesse em fornecer um amplo estudo sobre os principais
aspectos relativos ao desenvolvimento de software pode ser observada nas ementas de
disciplinas como: Estruturas de Dados I e II, Lógica de Programação I e II, Técnicas de
Programação, Construção e Análise de Algoritmos, Bancos de Dados I e II, Engenharia
de Software, Análise Orientada a Objetos, Programação para Web, Gerência de Projetos
e Teoria Geral dos Sistemas.
Essas disciplinas, quando reunidas, fornecem aos alunos da Faculdade Farias
Brito uma base sólida, que será de grande importância para seu amadurecimento
profissional, uma vez que o mercado de trabalho vem se tornando cada vez mais
competitivo.
Buscando reunir o conhecimento adquirido ao longo do curso de Ciência da
Computação, este trabalho foi desenvolvido com o objetivo de fornecer informações e
práticas atuais tanto sobre o desenvolvimento de aplicações baseadas no conceito de
Web 2.0 quanto sobre o desenvolvimento de aplicações baseadas no conceito da
arquitetura Service-Oriented Architecture (SOA).
2
Além disso, foi descrita a aplicação que faz uso de todo o conhecimento obtido
ao longo do curso de Ciência da Computação para fornecer aos alunos, professores e
colaboradores da Faculdade Farias Brito um meio no qual possam compartilhar
conhecimento e informações a fim de tornar ainda mais eficaz a difusão de
conhecimento no contexto da faculdade.
Objetivos
Esse trabalho tem como objetivo realizar um estudo do conceito de Web 2.0 e se
propõe a projetar e disponibilizar uma plataforma de desenvolvimento baseada em
serviços, além de desenvolver um software colaborativo que utilize os conceitos de Web
2.0, fazendo uso das melhores práticas de desenvolvimento web e fornecendo uma
experiência rica de navegação para o usuário.
Inicialmente, foi realizado o processo de desenvolvimento envolvendo o
levantamento de requisitos e a geração inicial da estrutura de código do projeto que
contemplará o modelo entidade-relacional; a estrutura de regras de negócio e as classes
de acesso a dados que se limitam às operações de leitura, escrita, atualização e remoção.
Os objetivos específicos são os seguintes:
•
Definir os conceitos e tecnologias da Web 2.0;
•
Desenvolver uma ferramenta colaborativa baseada nos conceitos de Web 2.0,
que forneça um meio no qual seus usuários possam realizar o
compartilhamento de conhecimento, abrindo espaço para a troca de
informações e para o crescimento pessoal e profissional.
3
Organização do Trabalho
Este trabalho está organizado como se segue.
O capitulo 1 – Web 2.0: Apresenta uma visão geral do termo Web 2.0 e detalha
a definição tratada neste trabalho – a Web como plataforma de software. Esse capítulo
apresenta também as principais soluções e tecnologias usadas para construir a
plataforma Web.
No capitulo 2 – Tecnologias: São apresentadas as tecnologias e os conceitos
utilizados na elaboração do projeto e em sua implementação.
O capitulo 3 – Metodologia: São apresentadas as ferramentas utilizadas e a
solução técnica adotada para o desenvolvimento do protótipo.
O capitulo 4 – Arquitetura Proposta: Descreve a arquitetura a ser utilizada para
o desenvolvimento do protótipo.
O capitulo 6 – FFB Wiki: Descreve o FFB Wiki.
No Capítulo 7 – Resultados Obtidos: Reúne os principais resultados deste
trabalho.
No Capítulo 8 – Conclusão: Reúne as principais conclusões deste trabalho e
perspectivas futuras.
4
1
Web 2.0
No ano de 2001 houve uma grande mudança no cenário da Web. Esse período
foi marcado pelo aparente colapso de inúmeras empresas ponto-com, a maioria criada
de forma oportunista durante os dois anos anteriores. Porém, durante uma conferência
promovida pela O’Reilly Media e MediaLive International no ano de 2004, Dale
Doughherty pioneiro da Web e vice-presidente da O’Reilly, notou que, ao contrário de
haver regredido, a Web estava mais dinâmica, crescendo cada vez mais e pronta para ser
substituída por uma tecnologia ascendente (O’REILLY, 2004).
Com o passar do tempo, tornou-se evidente que após seu suposto colapso, a Web
tinha sofrido diversas mudanças, dentre essas, principalmente em sua arquitetura, suas
aplicações e suas formas de uso, indicando assim que a mesma encontrava em um novo
estágio de seu desenvolvimento (O’REILLY, 2004).
Os principais aspectos dessa nova fase da Web são descritos por O´Reilly
(O’REILLY, 2004):
• A transição de sites estáticos para sites dinâmicos;
• Uma mudança no valor socioeconômico da Web;
• Colaboração e participação dos usuários;
• Uma atitude, não uma tecnologia;
• Confiança em seus usuários;
• Experiência rica do usuário.
A Web 2.0 se caracteriza por uma nova forma de navegar pela Internet, na qual
seus utilizadores deixam de ser apenas leitores de informações, uma vez que o conteúdo
existente na mesma pode ser editado por seus próprios usuários.
Outro aspecto importante é o que fornece a Web como uma plataforma de
serviços, onde seus usuários não precisam ter um computador com grande poder de
processamento já que as aplicações acessadas fazem uso de recursos disponibilizados
por outros. A distribuição do processamento dos dados é realizada entre várias
máquinas, fazendo do computador que o usuário utiliza apenas uma plataforma de
acesso para aplicativos da Web.
5
As características fundamentais da Web 2.0 são descritas por O´Reilly
(O’REILLY, 2004):
•
O usuário deixa de ser apenas um leitor de informações em uma página para
se tornar um produtor de informações, inserindo e editando conteúdos já
existentes na Web;
•
Informações e conhecimento deixam de ser armazenados localmente para ser
compartilhados na rede e tornam-se acessíveis a outros usuários;
Para que seja possível visualizar os conceitos da Web 2.0 aplicados no mundo
real, a seguir são apresentadas aplicações que foram desenvolvidas com base nesses
conceitos:
•
Youtube (http://www.youtube.com): permite que seus usuários carreguem,
assistam e compartilhem vídeos em formato digital;
•
Enciclopédia Wikipédia (http://pt.wikipedia.org): tem todo seu conteúdo
produzido, editado e validado por seus próprios usuários;
•
Flickr (http://www.flickr.com): permite que seus usuários criem álbuns,
realizem o compartilhamento de fotografias e entrem em contato com
fotógrafos de qualquer lugar do mundo;
•
Google Docs (http://docs.google.com): possibilita a portabilidade de
documentos, que permite a edição do mesmo documento por mais de um
usuário.
1.1
Tecnologias da Web 2.0
A Web como conhecemos atualmente é conseqüência do surgimento de várias
tecnologias, o aprimoramento de outras já existentes e a consolidação de princípios e
práticas que tornaram possível seu desenvolvimento rápido e consistente da Web.
A seguir são descritas as principais tecnologias utilizadas no desenvolvimento de
aplicações na Web 2.0:
• AJAX: torna as páginas web mais dinâmicas, possibilitando assim uma
navegação mais rica para o usuário (FLANAGAN, 2002);
6
• XML: linguagem que se estabeleceu como padrão mundial para a troca
de dados entre aplicações (MARCHAL, 2000);
• CSS: permite a estilização de um aplicativo web (W3C, 2008);
• SOA: fornece um modelo no qual uma aplicação possa ser
disponibilizada como serviço (ORT, 2005).
Essas tecnologias atendem aos requisitos básicos da Web 2.0, onde, além de ser
necessário fornecer uma interface rica e amigável para o usuário, é preciso
disponibilizar essas aplicações como serviços.
1.2
Plataforma Web
Um dos principais aspectos da Web 2.0 se refere ao fato de que as aplicações
desenvolvidas para essa nova fase da Web podem tanto utilizar recursos já existentes
quanto podem ter seus recursos utilizados por outras aplicações. Dessa maneira, a Web
se apresenta como um repositório de aplicações que interagem entre si para
disponibilizar funcionalidades para seus usuários.
As aplicações que utilizam ou que fornecem seus recursos e funcionalidades na
Web implementam a arquitetura Service-Oriented Architecture (SOA), que é baseada
nos princípios de computação distribuída. Essas aplicações são disponibilizadas na Web
através de Web Services, que fazem uso de eXtensible Markup Language (XML), uma
linguagem de marcação utilizada para descrever a aplicação e suas respectivas
funcionalidades de modo que outras aplicações possam se comunicar de maneira
adequada com a mesma, além de ser utilizado também para realizar o transporte de
informações entre essas aplicações (ORT, 2005).
Além das inúmeras vantagens de se usar XML para descrever a aplicação e para
realizar o transporte de informações entre aplicações, o que o torna imprescindível para
atender aos princípios da Web 2.0 é o fato dessa linguagem possibilitar que uma
aplicação seja utilizada por qualquer outra independentemente de linguagem e/ou
plataforma, tornando-se ideal no meio heterogêneo em que a Web se encontra
atualmente (SEELY, 2002).
7
1.3
Tecnologias da Plataforma Web
Tecnologias como Service-Oriented Architecture (SOA) e Web Services são
indispensáveis para o desenvolvimento de aplicações e, quando bem empregadas,
podem trazer grandes benefícios para o processo de desenvolvimento de software como
um todo.
Dentre os benefícios encontrados ao se utilizar essas tecnologias podemos citar:
• Facilidade na integração com outros sistemas: como as aplicações são
disponibilizadas através de web services é possível que uma aplicação
interaja com outra aplicação de modo transparente;
• Maior agilidade no processo de desenvolvimento: como a aplicação pode
ser construída em módulos é possível uma realizar uma divisão durante o
processo
de
desenvolvimento,
atribuindo
a
cada
grupo
de
desenvolvedores o módulo no qual seus desenvolvedores têm maior
experiência;
• Menor custo na manutenção do sistema: como o sistema pode ser
construído em módulos é possível realizar a manutenção de um módulo
separadamente;
• Menor gasto com equipamentos: como a aplicação pode de seus módulos
disponibilizados e processados em computadores vários computadores
são necessários computadores mais simples ao invés de um com grande
poder computacional;
• Melhor desempenho: pois a aplicação pode de seus módulos
disponibilizados e processados em computadores vários computadores.
A seguir são descritas as tecnologias mais utilizadas no desenvolvimento de
aplicações para a Web 2.0: SOA, Web Services, XML, SOAP, WSDL e UDDI.
8
1.3.1 SOA
Service-Oriented Architecture (SOA) é um modelo de arquitetura de software
que fornece um padrão no qual arquitetos e/ou desenvolvedores de softwares possam
desenvolver aplicações que utilizem ou que possam ser utilizadas por outras aplicações,
ou seja, permitindo assim a compartilhamento de funcionalidades e recursos
computacionais entre aplicações distintas (ORT, 2005).
Permitir o compartilhamento de recursos computacionais é uma das grandes
vantagens de SOA, pois ao se utilizar a mesma para conectar aplicações é possível obter
uma redução significante nos gastos em equipamentos e em manutenção, bem como
aumentar o desempenho da aplicação como um todo (ORT, 2005).
Para uma aplicação-cliente realizar uma comunicação com um serviço
disponível na Web é necessário que a mesma conheça a especificação desse serviço.
Para isso é necessário que o serviço forneça uma interface bem definida dos métodos
que serão disponibilizados. Porém, basta que a aplicação-cliente tenha conhecimento da
definição dos métodos que o serviço disponibiliza, não importando como ou em qual
linguagem de programação o mesmo os implementa. Desse modo, uma vez que não
ocorra alteração na interface, o cliente ainda irá poder se comunicar com o serviço
mesmo que esse tenha sofrido alteração na implementação de seus métodos (ORT,
2005).
Normalmente, a comunicação das aplicações que se baseiam em SOA é
realizada através de Web Services, que serão descritos a seguir.
1.3.2 Web Services
Web Services representam uma solução adotada a nível mundial tanto para
realizar a integração quanto para a comunicação entre aplicações. Os Web Services
realizam o transporte de dados entre aplicações via protocolo HTTP (Hypertext Transfer
Protocol) no formato XML que é encapsulado pelo protocolo SOAP (Simple Object
Access Protocol) (ORT, 2005). Os aspectos de cada tecnologia mencionada acima serão
abordados posteriormente.
9
É indispensável o uso de XML no contexto no qual a Web está inserida
atualmente, pois o mesmo permite que uma aplicação possa ser utilizada por qualquer
outra independentemente de linguagem de programação e/ou plataforma (ORT, 2005).
No desenvolvimento de Web Services são utilizadas as seguintes tecnologias:
XML, SOAP, WSDL e UDDI.
XML
Em meados da década de 1990, pela insatisfação com os formatos existentes e
pela necessidade de se criar uma linguagem padronizada para a transferência de dados
entre aplicações o World Wide Web Consortium (W3C) criou o eXtensible Markup
Language (XML) que é uma linguagem de marcação simples e de grande legibilidade
tanto para humanos como para máquinas (GUJ, 2008).
O XML é uma linguagem extensível, que possibilita a criação de marcações
(tags) sem qualquer limitação. Isso faz com que o XML seja ideal para estruturação de
dados organizados de forma hierárquica, o que é de grande importância nos dias de
hoje, onde as informações necessitam ser bem estruturadas para que aplicações distintas
possam entendê-las (GUJ, 2008).
A estrutura XML, apresentada na Figura 1, fornece um exemplo de um
documento. Esse exemplo demonstra a flexibilidade existente nos documentos XML
onde uma tag pode conter qualquer informação. Além disso, uma tag poder ter ou não
atributos associados a ela. O exemplo também aborda uma característica descrita
anteriormente, a legibilidade do documento. Por possuir uma estrutura bem definida,
um documento XML também é facilmente interpretado por sistemas computacionais
(W3C, 2004).
10
<?xml version="1.0" encoding="utf-8" ?>
<root>
<class name="FFBWiki.Net.DAL.SQLDAO.CursoDAO">
<query name="insert">
INSERT INTO Cursos (Nome) VALUES (@Nome)
</query>
<query name="update">
UPDATE Cursos SET Nome = @Nome WHERE ID = @ID
</query>
<query name="delete">
DELETE FROM Cursos WHERE ID = @ID
</query>
<query name="getByID">
SELECT TOP 1 * FROM Cursos WHERE ID = @ID
</query>
<query name="getAll">
SELECT * FROM Cursos
</query>
<query name="selecionarPorNome">
SELECT * FROM Cursos WHERE Nome like @Nome
</query>
</class>
</root>
Figura 1 – Exemplo de XML
Embora um documento XML seja flexível, ele deve atender a um único e
indispensável requisito: ter somente um elemento raiz (GUJ, 2008).
SOAP
Como foi discutido no tópico anterior, XML é um padrão adotado a nível
mundial para a troca de informações entre aplicações. Porém, para que essa
comunicação seja realizada, é necessário definir uma maneira no qual seja possível
construir mensagens que possam trafegar por diferentes protocolos e que garanta a
interoperabilidade e intercomunicação entre aplicações distintas (SEELY, 2002).
Essa tarefa é de responsabilidade do Simple Object Access Protocol (SOAP),
que é um protocolo definido pelo World Wide Web Consortium (W3C). Esse protocolo
é baseado em XML e HTTP e tem como objetivo realizar o transporte de informações
estruturadas (SEELY, 2002).
Os elementos necessários para a transmissão de dados utilizando SOAP são
descritos por Seely (SEELY, 2002):
11
•
Envelope: É obrigatório na transmissão de toda mensagem SOAP. É o
elemento raiz do documento XML. O Envelope pode conter declarações
de dois elementos:
o Namespaces: são os responsáveis por evitar o conflito de nomes
dentro do arquivo.
o encodingStyle: define como será feita a representação dos dados
no documento XML.
•
Cabeçalho: É opcional na transmissão, porém quando for utilizado deve
obrigatoriamente ser o primeiro elemento do Envelope. É responsável
por carregar informações adicionais.
•
Corpo: É obrigatório na transmissão de toda mensagem SOAP. Contém a
informação a ser transportada para o seu destino final.
Na Figura 2, visualiza-se um exemplo de mensagem SOAP que apresenta os três
elementos que foram descritos anteriormente.
<?xml version="1.0" encoding="utf-8"?>
<soap:Header>
<m:Trans
xmlns:m=" http://www.ffb.edu.br/wiki"
soap:mustUnderstand="1">
234
</m:Trans>
</soap:Header>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.ffb.edu.br/wiki">
<m:GetInfoUsuario>
<m:Nome>Raphael</m:Nome>
<m:SobreNome>
Saldanha
</m:SobreNome>
<m:Telefone>
9999-8888
</m:Telefone>
<m:Cidade>
Fortaleza
</m:Cidade>
<m:Curso>
Ciência da Computacao
</m:Curso>
<m:Semestre>
Oitavo
</m:Semestre>
</m:GetInfoUsuario>
</soap:Body>
</soap:Envelope>
Figura 2 – Exemplo de Mensagem SOAP
12
WSDL
Como descrito anteriormente, aplicações podem ser disponibilizadas na Web
através de web services, porém, é necessário que seus utilizadores conheçam sua
definição: como acessá-la e quais métodos a mesma disponibiliza. Para realizar essa
tarefa, utiliza-se a Web Services Description Language (WSDL), que é uma linguagem
baseada em XML desenvolvida em conjunto pela Ariba, IBM e Microsoft no início do
ano de 2001 (RECKZIEGEL, 2006).
Os elementos fundamentais que compõem um documento WSDL são descritos
por Chirstensen (RECKZIEGEL, 2006).
Elemento <definitions>: é a tag raiz do documento WSDL. É utilizado para
definir os namespaces utilizados no documento.
Na Figura 3, visualiza-se a definição de vários namespaces de um documento
WSDL através do elemento <definitions>
Figura 3 – Exemplo do elemento <definitions>
13
Elemento <types>: é utilizado para informar os tipos de dados presentes na
mensagem.
Na Figura 4, visualiza-se a definição de vários tipos de dados de um documento
WSDL através do elemento <types>.
Figura 4 – Exemplo do elemento <types>
Elemento <message>: é utilizado para informar os dados que serão transmitidos.
Para cada elemento <message> pode existir um ou mais elementos <part>, que
representam os parâmetros de entrada e de saída que a mensagem retorna.
Na figura 5, visualiza-se a definição de parâmetros de entrada e de saída de um
documento WSDL através do elemento <message>.
Figura 5 – Exemplo do elemento <message>
14
Elemento <portType>, define quais métodos serão disponibilizados.
Na figura 6, visualiza-se a definição uma operação, bem como a definição de
seus parâmetros de entrada e saída.
Figura 6 – Exemplo do elemento <portType>
Elemento <binding>: define como a mensagem será transmitida para um
portType em particular.
Na figura 7, visualiza-se o exemplo do elemento <binding>.
Figura 7 – Exemplo do elemento <binding>
15
Elemento <service>: define a localização do serviço.
Na figura 8, visualiza-se o exemplo do elemento <service>.
Figura 8 – Exemplo do elemento <service>
UDDI
O Universal Description, Discovery and Integration (UDDI) é uma
especificação técnica baseada em XML que foi desenvolvida no ano de 2001 em
conjunto pela Ariba, IBM e Microsoft, com patrocínio da Organization for the
Advancement of Structured Information Standards (OASIS). Essa especificação tem
como objetivo descrever, descobrir e integrar serviços disponíveis na Web (SNELL;
TIDWELL; KULCHENKO, 2001).
Uma maneira de uma aplicação-cliente se comunicar com um serviço disponível
na Web é fazer com que a mesma conheça estaticamente a localização desse serviço
através de um Uniform Resource Identifier (URI). Porém, existem casos em que a
aplicação-cliente não conhece a URI do serviço, nesses casos é necessário que exista
uma forma dinâmica para descobrir a localização desse serviço. Essa é uma das
funcionalidades do UDDI, possibilitar que serviços possam ser publicados e descobertos
na Web (SNELL; TIDWELL; KULCHENKO, 2001).
A seguir são descritos as categorias que compõem o UDDI:
• Páginas brancas: contêm informações sobre os fornecedores do serviço,
como por exemplo, o nome e o telefone do fornecedor do serviço
(SNELL; TIDWELL; KULCHENKO, 2001);
16
• Páginas amarelas: contêm uma listagem organizada por categorias dos
serviços disponíveis na Web (SNELL; TIDWELL; KULCHENKO,
2001);
• Páginas verdes: contêm informações sobre serviços disponíveis bem
como a especificação técnica de como é realizado a interação com os
mesmos (SNELL; TIDWELL; KULCHENKO, 2001).
Na figura 9, visualizam-se facilmente os conceitos do UDDI, onde uma
aplicação-cliente pode utilizar um serviço caso essa conheça de modo estático a URI do
serviço ou pesquisar dinamicamente um serviço que foi previamente publicado através
do UDDI.
Figura 9 – UDDI
17
2
Tecnologias
Este capítulo apresenta as tecnologias empregadas na construção do FFB Wiki.
Optou-se pela escolha de tecnologias de fácil acesso, recentes e que ofereçam à proposta
apresentada características relevantes na qualidade do produto final.
2.1 Arquitetura Cliente/Servidor
A arquitetura Cliente/Servidor é um dos modelos mais utilizados no
desenvolvimento de aplicações tanto para ambiente Web quanto para o ambiente
desktop. O principio desse modelo é a separação entre clientes e servidores, onde cada
cliente é capaz de enviar requisições para um servidor, e este realiza o processamento
necessário e retorna os dados para o cliente (GRAY et. al, 2001).
Esse modelo é de grande importância no desenvolvimento de aplicativos, pois
permite a distribuição de processamento de dados entre várias máquinas, ou seja,
compartilha recursos entre máquinas mais simples possibilitando que cada máquina
realize apenas parte do processamento, ao invés de ter um único computador com
grande poder computacional realizando todo o trabalho (GRAY et. al, 2001).
A comunicação entre o cliente e o servidor pode ser realizada através dos
protocolos Trasmission Control Protocol (TCP) ou User Datagram Protocol (UDP)
(GRAY et. al, 2001).
O TCP é um protocolo orientado a conexão, onde o cliente estabelece com o
servidor uma conexão confiável e ambos realizam trocas de mensagens para verificar a
perda de pacotes, eliminar a duplicação e possibilitar a recuperação de dados
corrompidos (GRAY et. al, 2001).
O UDP é um protocolo não orientado a conexão. Esse protocolo não é confiável,
pois não há uma conexão permanente entre o cliente e o servidor para que haja troca de
mensagens, ou seja, quando uma mensagem é enviada por um cliente não há qualquer
tipo de garantia que essa mensagem chegue ao servidor (GRAY et. al, 2001).
18
A Figura 10 apresenta o modelo da arquitetura Cliente/Servidor, onde é
demonstrado a comunicação entre aplicações-cliente representadas na figura pelos
elementos “ClienteA” e “ClienteB” com o servidor representado pelo elemento
“Servidor”.
Figura 10 – Arquitetura Cliente/Servidor
2.2 Linguagem HyperText Markup
Antes do surgimento da Internet, Tim Berners-Lee desenvolveu uma coleção de
ferramentas para realizar a comunicação e disseminação de pesquisas entre ele e seu
grupo de colegas, porém, com o surgimento da Internet, ocorreu o desenvolvimento e
aprimoramento desse conjunto de ferramentas até surgir o Hyper Text Markup
Language (HTML) que se tornou uma linguagem robusta para o desenvolvimento de
páginas web (BERNERS-LEE; CONNOLLY, 1995).
O HTML é composto por texto e comandos de formatação chamados etiquetas
(tags). Essas etiquetas são elementos entre parênteses angulares que permitem o
desenvolvimento de uma página web. Segundo Berners-Lee (BERNERS-LEE, 1995)
com a utilização dessas etiquetas o desenvolvedor pode realizar diversas tarefas, tais
como:
19
•
Formatar textos
•
Inserir tabelas
•
Definir a aparência da página
•
Definir propriedades da página
•
Definir funções
•
Definir a ligação da página com outros arquivos como CSS, Scripts, etc.
2.3 Cascading Style Sheet e JavaScript
Embora o HTML forneça vários métodos para o desenvolvimento de páginas
web, a linguagem tem inúmeras limitações em relação tanto ao design das interfaces das
aplicações quanto às funcionalidades que essas páginas poderiam disponibilizar
(BERNERS-LEE; CONNOLLY, 1995).
Para que seja possível o desenvolvimento de uma página com um melhor design
de interface e com mais funcionalidades é necessária a utilização de linguagens
auxiliares como o CSS e o JavaScript (FLANAGAN, 2002).
O CSS (Cascading Style Sheet) é uma linguagem utilizada para especificar o
estilo de uma página web escrita em HTML. Essa página possui uma ligação para o
arquivo que contém o código CSS com toda a definição do estilo da página. Uma das
grandes vantagens da utilização do CSS para a estilização de um aplicativo web é a
possibilidade de reuso do estilo, uma vez que cada página contém uma ligação para um
mesmo documento CSS. Ao se alterar esse documento, a alteração é refletida em todas
as páginas desse aplicativo (BERNERS-LEE; CONNOLLY, 1995).
O JavaScript é uma linguagem de programação executada pelo navegador. Foi
desenvolvida em 1995 pela Netscape com o objetivo de fornecer interação entre o
usuário e as páginas (FLANAGAN, 2002).
20
2.4 Linguagem Estruturada de Consultas
A Structured Query Language (SQL) é uma linguagem de pesquisa declarativa
para banco de dados relacional que se baseia nos princípios da álgebra relacional. Foi
desenvolvida nos anos 70 pela International Business Machines (IBM) e com o passar
dos anos tornou-se padrão no mercado devido a sua simplicidade, facilidade de uso e
robustez (HOFFMAN, 2004).
Dada a utilização a nível mundial, adotou-se um padrão para a linguagem
através do American National Standards Institute (ANSI) em 1986 e ISO em 1987
(HOFFMAN, 2004).
2.5 Windows Communication Foundation
Windows Communication Foundation (WCF) é uma tecnologia recente, que foi
introduzida no mercado pela Microsoft em dezembro de 2006 e que tem como principal
objetivo realizar a comunicação distribuída de dados, onde dois ou mais computadores
executam uma tarefa em comum (SMITH, 2007).
Uma das grandes vantagens de se utilizar WCF na camada de serviço de uma
aplicação é que o mesmo pode fazer uso de mensagens SOAP para realizar a
comunicação com outro processo, possibilitando assim a comunicação entre um
processo WCF e qualquer outro processo (SMITH, 2007).
Quando um processo WCF se comunica com outro tipo de processo, ambos
utilizam a serialização XML nas mensagens SOAP para realizar a comunicação. Dessa
forma, o WCF é capaz de se comunicar com quase todos os tipos de processos uma vez
que a XML é uma linguagem universal para a transmissão de dados. Porém, quando a
comunicação é realizada entre dois processos WCF, é utilizada a serialização binária
com o objetivo de otimizar a comunicação entre esses dois processos (SMITH, 2007).
21
2.6 LINQ
Assim como o WCF, o Language Integrated Query (LINQ) é uma tecnologia
recente, que foi introduzida no mercado pela Microsoft em dezembro de 2006 e tem
como principal objetivo permitir que consultas sejam aplicadas a qualquer dado em
memória (MARGUERIE; EICHERT; WOOLEY, 2008).
O LINQ determina um conjunto de operadores padrões de consulta de propósito
geral que admite que operações de travessia, de filtragem e de projeção sejam expressas
de modo direto, porém declarativo, em qualquer linguagem de programação baseada em
.NET (MARGUERIE; EICHERT; WOOLEY, 2008).
Na Figura 11, visualiza-se um exemplo de consulta utilizando LINQ que
seleciona apenas as strings dentro da variável lstNomes que tenham comprimento maior
ou igual a 5 e atribui o resultado à variável lstNomesFiltrados.
using System;
using System.Query;
using System.Collections.Generic;
class app
{
static void Main()
{
string[] nomes = { "Raphael", "Oquendo", "Patrick" };
IEnumerable<string> lstNomesFiltrados = from s in nomes
where s.Length >= 5
orderby s
select s;
}
}
Figura 11 – Exemplo de consulta em uma fonte de informações em memória utilizando LINQ
22
Na Figura 12, visualiza-se um as linguagens programação, os provedores e as
fonte de dados que são compatíveis com LINQ.
Figura 12 – Arquitetura do LINQ.
23
3
Metodologia
Baseando-se especialmente em O´Reilly (2004) e Ort (2005) foi realizada uma
explanação dos conceitos de Web 2.0. Em seguida, iniciou-se a elaboração de uma
plataforma baseada nesses conceitos, bem como o desenvolvimento de um software
colaborativo chamado FFB Wiki.
O FFB Wiki foi construído para fornecer um meio no qual alunos, professores e
colaboradores da Faculdade Farias Brito possam compartilhar conhecimento e
informações entre si.
Esse software é uma aplicação web que foi projetada com base no padrão
Cliente/Servidor e utiliza uma arquitetura N-Camadas. Na codificação do sistema foi
utilizado o paradigma de programação orientada a objetos e para obter um melhor
desempenho na manipulação de dados fez-se uso de Language Integrated Query
(LINQ). Como repositório de informações foi utilizado um sistema de banco de dados.
Além disso, esse software faz uso de tecnologias como JavaScript, CSS e HTML para
fornecer ao usuário final uma interface rica e de fácil navegabilidade, aproximando a
aplicação a um formato disponível em aplicações desktop.
Para atender ao requisito da Web 2.0 que indica que uma aplicação deve
disponibilizar seus recursos através da Web, foi desenvolvida uma camada de serviços.
Essa camada foi desenvolvida baseando-se nos conceitos de Service-Oriented
Architecture (SOA) e utiliza Windows Communication Foundation (WFC) para
disponibilizar os recursos da aplicação. Optou-se por utilizar WCF ao invés de web
services, pois como já foi descrito anteriormente o mesmo fornece maior segurança e
melhor desempenho.
24
Durante todo o processo de desenvolvimento, de teste e de utilização do FFB
Wiki foram necessários recursos de software e de hardware. Tais recursos são descritos
a seguir.
Software
Na escolha dos softwares a serem utilizados no desenvolvimento da aplicação
optou-se pelos mais recentes disponíveis no mercado, pois os mesmos fornecem melhor
desempenho, uma maior segurança e possibilitam uma maior usabilidade do usuário
final. Os softwares utilizados no desenvolvimento são descritos a seguir:
• Sistema Operacional: O sistema operacional utilizado no servidor é o
Windows Vista Enterprise Edition. O mesmo foi responsável por
permitir o funcionamento de todos os softwares, bem como os hardwares
utilizados na fase de desenvolvimento da aplicação;
• Servidor Web: O Servidor Web utilizado é o Internet Information Service
(IIS), na versão 7.0. O mesmo foi utilizado para hospedar a aplicação
desenvolvida nesse trabalho;
• Banco de Dados: Foi utilizado o Microsoft SQL Server, na sua versão
2005. É responsável por armazenar as informações geradas a partir da
aplicação desenvolvida nesse trabalho;
• Gerenciadores: Para o gerenciamento de banco de dados, utilizou-se o
Microsoft SQL Management Studio na versão 9.00.1399.00;
• IDE: No desenvolvimento das interfaces em formato ASP.NET utilizouse o Microsoft® Visual Studio 2008, programa que permite tanto a
criação do design das páginas quanto a programação das mesmas;
• Plataforma: Como plataforma de desenvolvimento foi utilizado o .Net
Framework 3.5;
• Navegador: Foi utilizado o Microsoft Internet Explorer, na sua versão
7.0. É responsável pela interação entre o usuário e a aplicação.
25
Hardware
As características dos equipamentos utilizados são:
• Servidor: Processador Pentium Core 2 Duo, com 2.20 GHz de clock, 2.0
GB de memória RAM, HD 160 GB Sata e placa de rede 10/100 MB.
• Estação de Desenvolvimento: Processador Pentium Core 2 Duo, com
2.20 GHz de clock, 2.0 GB de memória RAM, HD 160 GB Sata e placa
de rede 10/100 MB.
• Estações Clientes: Especificações mínimas exigidas são: placa de rede
10/100 MB e 128 MB de memória RAM.
26
4
Arquitetura Proposta
A arquitetura proposta foi projetada com o intuito de permitir o desenvolvimento
de aplicações que se baseiam no conceito que propõe a Web como uma plataforma de
software. Desta maneira, essas aplicações devem tanto fazer uso de serviços disponíveis
na Web como também disponibilizá-los.
Essa arquitetura baseia-se na arquitetura N-Camadas e é composta pelas
seguintes camadas: Camada de Apresentação, Camada de Serviços, Camada Lógica e a
Camada de Dados.
4.1
Camada de Apresentação
A camada de apresentação é composta por formulários ASP.Net, construídos
com o intuito de oferecer uma navegabilidade simples e intuitiva, e são responsáveis por
realizar a interação entre o usuário e a aplicação.
Ao receber uma requisição do usuário, são construídas as entidades a partir das
informações que o usuário está editando, relacionando-se os campos dos formulários
com as propriedades das entidades. Isso é necessário, pois para se trafegar uma
informação entre a camada de apresentação e a camada de serviços é preciso que ambas
as camadas conheçam o tipo de informação que irá transitar entre elas.
A comunicação entre a camada de apresentação e a camada de serviços é
realizada através do HyperText Transfer Protocol (HTTP), que é um protocolo que
possibilita a comunicação de forma padronizada entre um cliente e um servidor a fim de
realizar troca de dados.
Na Figura 13, visualiza-se um exemplo de modelo de comunicação realizado
entre a camada de apresentação e a camada de serviços. Nesse exemplo a camada de
apresentação, que é representada pelo elemento “Caller”, envia as informações para
serem processadas na camada de serviços, representada nesse exemplo pelo elemento
“Service”.
27
Figura 13 – Comunicação entre a Camada de Apresentação e a Camada Web
No diagrama da figura 14, visualizam-se as entidades que foram utilizadas na
construção do sistema e que podem ser utilizadas no transporte de dados entre a camada
de apresentação e a camada de serviços.
28
Figura 14 – Diagrama de entidades
A classe ArquivoEntity representa um arquivo. Os arquivos deverão ser
cadastrados no sistema para que possa ser realizado tanto o armazenamento quanto o
compartilhamento desses arquivos com outros usuários.
A classe VersãoDeArquivoEntity representa a versão de um arquivo. Para que
uma versão de arquivo possa ser cadastrada, é necessário que um arquivo seja
previamente cadastrado. Tem o objetivo de armazenar as modificações feitas em um
arquivo.
A classe AssuntoDeArquivoEntity representa o assunto de arquivo. Os assuntos
de arquivo deverão ser cadastrados no sistema para que seja possível organizar os
arquivos por contexto.
29
A classe CursoEntity representa os cursos. Os cursos deverão ser cadastrados no
sistema para que seja possível organizar arquivos, perguntas e debate.
A classe DebateEntity representa um debate. Tem o objetivo de agrupar um
conjunto de informações.
A classe ItemDeDebateEntity representa uma unidade do debate. Para que um
item de debate possa ser cadastrado, é necessário que um debate seja previamente
cadastrado. Representa a interação dos usuários do sistema com o debate.
A classe PerguntaEntity representa uma pergunta. Representa uma pergunta
feira por um dado usuário do sistema.
A classe RespostaDePerguntaEntity representa a resposta de uma pergunta.
Representa a resposta de um usuário a uma dada pergunta.
4.2
Camada de Serviços
A camada de serviços é responsável por transmitir as requisições feitas a partir
de uma aplicação-cliente para a camada lógica. Com essa breve descrição somada aos
conceitos de Web 2.0 é possível notar que a camada de serviços aplica um dos
principais conceitos dessa nova fase da Web, o que define que aplicações devem utilizar
ou fornecer seus recursos na Web (O´REILLY,2004).
Na Figura 15, visualiza-se a arquitetura de comunicação na camada de serviços.
Nesse exemplo nota-se que aplicações distintas fazem uso dos recursos e
funcionalidades disponíveis nos serviços dessa camada.
30
Figura 15 – Comunicação na camada de serviços
Embora as tecnologias da Web 2.0 que foram previamente apresentadas neste
trabalho sejam suficientes para o desenvolvimento de aplicações web, existem
tecnologias já disponíveis no mercado que vão além. Desse modo optou-se por utilizar o
Windows Communication Foundation como modelo de programação entre a camada de
serviços e outras aplicações, pois o mesmo possibilita melhor desempenho e maior
segurança.
4.3
Camada Lógica
A camada lógica possui a lógica para atender os requisitos do sistema. É nessa
camada que estão implementados os métodos e as regras de toda a aplicação. Não existe
uma interface para o usuário e seus dados são voláteis, ou seja, para que algum dado
seja persistido, deve ser utilizada a camada de dados (ORT, 2005).
Essa camada recebe as requisições da camada de serviços, em seguida realizada
a validação dos dados da entidade correspondente e por fim a mesma envia a entidade
para a camada de dados para que a informação possa ser persistida.
É necessário apenas que a camada de serviços tenha conhecimento da definição
dos métodos que a camada lógica disponibiliza, não importando como ou em qual
linguagem de programação o mesmo os implementa. Desse modo, uma vez que não
31
ocorra alteração na interface, a camada de serviços ainda poderá se comunicar com a
camada lógica, mesmo que essa tenha sofrido alguma alteração na implementação de
seus métodos.
No diagrama da Figura 16, visualizam-se as interfaces que foram utilizadas para
realizar o contrato entre a camada de lógica e camada de serviços.
Figura 16 – Interfaces da camada lógica
32
Todas as interfaces da camada lógica estendem a interface “IBusiness” que
define a assinatura dos métodos mais genéricos de manipulação de dados, tais como:
Inset, Update, GetALL, GetByID e Delete.
Insert: Interage com a camada de dados para inserir um novo objeto no banco de
dados.
Update: Interage com a camada de dados para realizar as alterações feitas no
objeto na base de dados.
Delete: Interage com a camada de dados para remover o objeto da base de dados.
GetAll: Interage com a camada de dados para retornar do banco de dados todos
os objetos do tipo correspondente do mesmo.
GetByID: Interage com a camada de dados para retornar o objeto filtrando pelo
identificador.
33
No diagrama da Figura 17, visualizam-se as classes concretas da camada lógica.
Figura 17 – Classes concretas da camada lógica
34
A classe ArquivoBusiness contém as regras de negócio específicas da entidade
arquivo.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
todos os arquivos que foram disponibilizados pelo usuário passado como
parâmetro;
•
SelecionarArquivosCompartilhados: Interage com a camada de dados
para retornar os arquivos que estão sendo compartilhados;
•
SelecionarArquivosCompartilhadosComUsuario: Interage com a camada
de dados para retornar os arquivos compartilhados com o usuário
passado como parâmetro;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de um arquivo;
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um
arquivo;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um
arquivo.
A classe VersaoDeArquivoBusiness contém as regras de negócio específicas da
entidade versão de arquivo.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
todas as modificações feitas em um arquivo filtrando pelo usuário
passado como parâmetro;
•
SelecionarPorArquivo: Interage com a camada de dados para retornar
todas as versões de um arquivo;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de uma versão
de arquivo;
35
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de uma
versão de arquivo;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de uma
versão de arquivo.
A classe AssuntoDeArquivoBusiness contém as regras de negócio específicas
da entidade assunto de arquivo.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
todos os assuntos de arquivo que foram disponibilizados pelo usuário
passado como parâmetro;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de um assunto
de arquivo;
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um
assunto de arquivo;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um
assunto de arquivo.
A classe CursoBusiness contém as regras de negócio específicas da entidade
curso.
•
SelecionarPorNome: Interage com a camada de dados para retornar uma
lista de cursos filtrando pelo nome;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de um curso;
36
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um curso;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um curso.
A classe DebateBusiness contém as regras de negócio específicas da entidade
debate.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
uma lista de debates filtrando por usuário;
•
SelecionarPorCurso: Interage com a camada de dados para retornar uma
lista de debates filtrando por curso;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de um debate;
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um
debate;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um
debate.
A classe ItemDeDebateBusiness contém as regras de negócio específicas da
entidade item de debate.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
uma lista de itens de debates filtrando por usuário;
•
SelecionarPorDebate: Interage com a camada de dados para retornar uma
lista de itens de debates filtrando por debate;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de um item de
debate;
37
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um item
de debate;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de um item
de debate.
A classe PerguntaBusiness contém as regras de negócio específicas da entidade
pergunta.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
uma lista de perguntas filtrando por usuário;
•
SelecionarPorCurso: Interage com a camada de dados para retornar uma
lista de perguntas filtrando por curso;
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de uma
pergunta;
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de uma
pergunta;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de uma
pergunta.
A classe RespostaPerguntaBusiness contém as regras de negócio específicas da
entidade reposta de pergunta.
•
SelecionarPorUsuario: Interage com a camada de dados para retornar
uma lista de respostas de pergunta filtrando por usuário;
•
SelecionarPorPergunta: Interage com a camada de dados para retornar
uma lista de respostas de pergunta filtrando pela pergunta;
38
•
Insert: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da inserção de uma
resposta de pergunta;
•
Update: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de uma
resposta de pergunta;
•
Delete: Sobrescreve o comportamento da classe AbstractBusiness para
implementar as regras de negócio específicas da atualização de uma
resposta de pergunta.
4.4
Camada de Dados
A Camada de Dados representa o repositório das informações. Essa camada é
responsável por receber as requisições da camada lógica e seus métodos executam as
requisições no SQL Server 2005.
Nessa camada estão presentes as implementações dos objetos de acesso a dados.
Cada objeto de acesso a dados é acessado através de sua Interface, deixando a camada
flexível para seja possível realizar a persistência de dados em diversos tipos de
repositórios de informações, tais como arquivos XML, arquivos de texto e bancos de
dados. Na solução apresentada, foram implementados objetos de acesso a dados para o
banco de dados SQL Server 2005.
A execução de operações no SQL Server é feita através da classe AbstractDAO.
Essa classe utiliza a classe QueryReader para identificar a consulta SQL a ser disparada
contra o banco. O QueryReader recebe o identificador da classe e o nome da operação a
ser realizada para obter a consulta correspondente. Após o retorno da string de consulta,
a AbstractDAO associa essa consulta a um objeto do tipo SqlCommand que é utilizado
para efetuar a consulta no SQL Server
Para operações de insert e update o objeto de acesso a dados recebe da camada
de lógica a entidade a ser incluída ou atualizada e persiste os dados no banco. Para
operações de consulta o objeto de acesso a dados retorna o resultado em um objeto do
tipo IList. Por exemplo, para recuperar todos os arquivos disponibilizados por um
39
usuário o objeto de acesso a dados deve receber como parâmetro uma entidade do tipo
UsuarioEntity e retornar uma IList contendo objetos do tipo ArquivoEntity que
representam os arquivos disponibilizados pelo usuário passado como parâmetro.
No diagrama da Figura 18, visualizam-se as interfaces que foram utilizadas para
realizar o contrato entre a camada de lógica e a camada de dados.
Figura 18 – Interfaces da camada de dados
40
Todas as interfaces da camada de dados estendem a interface “IDAO” que
define a assinatura dos métodos mais genéricos de manipulação de dados, tais como:
Inset, Update, GetALL, GetByID e Delete.
Insert: Insere um novo objeto no banco de dados.
Update: Persiste as alterações feitas no objeto na base de dados.
Delete: Remove o objeto da base de dados.
GetAll: Solicita ao banco de dados todos os objetos do tipo da classe concreta.
GetByID: Retorna o objeto filtrando pelo identificador.
41
No diagrama da Figura 19, visualizam-se as classes concretas da camada de
dados.
Figura 19 – classes concretas da camada de dados
42
A classe ArquivoDAO tem o objetivo de manipular e persistir os dados da
entidade arquivo. A classe ArquivoDAO implementa os seguintes métodos:
•
SelecionarPorUsuario: Retorna os uma lista arquivos filtrando por
usuário;
•
SelecionarArquivosCompartilhados: Retorna uma lista contendo todos os
arquivos que estão compartilhados;
•
SelecionarArquivosCompartilhadosComUsuario: Retorna uma lista de
arquivos compartilhados filtrando por usuário;
•
Insert: Insere um novo arquivo na base de dados;
•
Update: Persiste as alterações feitas na entidade arquivo;
•
GetALL: Retorna uma lista contendo todas os arquivos;
•
GetByID: Retorna o objeto arquivo filtrando pelo identificador;
•
Delete: Remove o objeto arquivo da base de dados.
A classe VersaoDeArquivoDAO tem como objetivo manipular e persistir os
dados da entidade versão de arquivo. A classe VersaoDeArquivoDAO implementa os
seguintes métodos:
•
SelecionarPorUsuario: Retorna uma lista de versões de arquivo filtrando
por usuário;
•
SelecionarPorArquivo: Retorna uma lista de versões de arquivo filtrando
por arquivo;
•
Insert: Insere uma nova versão de arquivo na base de dados;
•
Update: Persiste as alterações feitas na entidade versão de arquivo;
•
GetALL: Retorna uma lista contendo todas as verões de arquivo;
•
GetByID: Retorna o objeto versão de arquivo filtrando pelo
identificador;
•
Delete: Remove o objeto versão de arquivo da base de dados.
43
A classe AssuntoDeArquivoDAO tem como objetivo manipular e persistir os
dados da entidade assunto de arquivo. A classe AssuntoDeArquivoDAO implementa os
seguintes métodos:
•
SelecionarPorUsuario: Retorna uma lista de assuntos de arquivo filtrando
por usuário;
•
Insert: Insere um novo assunto de arquivo na base de dados;
•
Update: Persiste as alterações feitas na entidade assunto de arquivo;
•
GetALL: Retorna uma lista contendo todos os assuntos de arquivo;
•
GetByID: Retorna o objeto assunto de arquivo filtrando pelo
identificador;
•
Delete: Remove o objeto assunto de arquivo da base de dados.
A classe CursoBusiness tem o objetivo de manipular e persistir os dados da
entidade curso. A classe CursoBusiness implementa os seguintes métodos:
•
SelecionarPorNome: retorna uma lista de cursos filtrado por nome;
•
Insert: Insere um novo curso na base de dados;
•
Update: Persiste as alterações feitas na entidade curso;
•
GetALL: Retorna uma lista contendo todos os cursos;
•
GetByID: Retorna o objeto curso filtrando pelo identificador;
•
Delete: Remove o objeto curso da base de dados
A classe DebateDAO tem o objetivo de manipular e persistir os dados da
entidade debate. A classe DebateDAO implementa os seguintes métodos:
•
SelecionarPorUsuario: retorna uma lista de debates filtrado por usuário.
•
Insert: Insere um novo debate na base de dados;
•
Update: Persiste as alterações feitas na entidade debate;
•
GetALL: Retorna uma lista contendo todos os debates;
•
GetByID: Retorna o objeto debate filtrando pelo identificador;
44
•
Delete: Remove o objeto debate da base de dados.
A classe ItemDeDebateDAO tem o objetivo de manipular e persistir os dados da
entidade item de debate. A classe ItemDeDebateDAO implementa os seguintes
métodos:
•
SelecionarPorUsuario: Retorna uma lista de itens de debates filtrado por
usuário.
•
SelecionarPorDebate: Retorna uma lista de itens de debates filtrado por
debate.
•
Insert: Insere um novo item de debate na base de dados;
•
Update: Persiste as alterações feitas na entidade item de debate;
•
GetALL: Retorna uma lista contendo todos os itens de debate;
•
GetByID: Retorna o objeto item de debate filtrando pelo identificador;
•
Delete: Remove o objeto item de debate da base de dados.
A classe PerguntaDAO tem o objetivo de manipular e persistir os dados da
entidade pergunta. A classe PerguntaDAO implementa os seguintes métodos:
•
SelecionarPorUsuario: Retorna uma lista de perguntas filtrado por
usuário.
•
SelecionarPorCurso: Retorna uma lista de perguntas filtrado por curso.
•
Insert: Insere uma nova pergunta na base de dados;
•
Update: Persiste as alterações feitas na entidade pergunta;
•
GetALL: Retorna uma lista contendo todos as perguntas;
•
GetByID: Retorna o objeto pergunta filtrando pelo identificador;
•
Delete: Remove o objeto pergunta da base de dados.
45
A classe RespostaDePerguntaDAO tem o objetivo de manipular e persistir os
dados da entidade resposta de pergunta. A classe RespostaDePerguntaDAO implementa
os seguintes métodos:
•
SelecionarPorUsuario: Retorna uma lista de respostas de pergunta
filtrado por usuário.
•
SelecionarPorPergunta: Retorna uma lista de respostas de pergunta
filtrado por pergunta.
•
Insert: Insere uma nova resposta de pergunta na base de dados;
•
Update: Persiste as alterações feitas na entidade resposta de pergunta;
•
GetALL: Retorna uma lista contendo todos as respostas de pergunta;
•
GetByID: Retorna o objeto resposta de pergunta filtrando pelo
identificador;
•
Delete: Remove o objeto resposta de pergunta da base de dados.
46
5
FFB Wiki
O FFB Wiki é uma aplicação baseada no conceito de plataforma web (principio
que indica que uma aplicação disponibiliza seus serviços para que outros
desenvolvedores possam implementar suas próprias aplicações) construída usando uma
arquitetura N-Camadas.
A aplicação visa fornecer um meio no qual alunos e professores da Faculdade
Farias Brito possam se comunicar e compartilhar informações de maneira eficaz e
inteligente. A aplicação foi projetada com o intuito de fornecer uma interface amigável
e intuitiva para seus usuários, mas além do cuidado no planejamento da interface, houve
um cuidado especial no desenvolvimento da arquitetura da aplicação. A arquitetura do
FFB Wiki foi desenvolvida utilizando-se as melhores práticas de desenvolvimento de
sistemas e as tecnologias mais recentes e inovadoras, tais como: Windows
Communication Foundation e LINQ.
Em resumo, as objetivos do FFB Wiki são:
•
Realizar o compartilhamento de arquivos e informações entre os usuários, de
acordo com o curso (Ciência da Computação, Administração, Marketing ou
Direito) e o assunto;
•
Permitir a realização de perguntas entre seus usuários e que essas perguntas
possam ser respondidas por qualquer outro usuário de forma seletiva, ou
seja, por relevância de conteúdo das mensagens;
•
Fornecer um meio pelo qual os professores possam interagir, debater e/ou
orientar os alunos que fazem parte de sua(s) disciplina(s), servindo também
como divulgação de trabalhos e grupos de pesquisa no qual o aluno possa se
engajar;
•
Fornecer um meio pelo qual o aluno possa lançar desafios na área de
computação, propor soluções, estimulando a busca pelo conhecimento.
47
5.1 Desenvolvimento do FFB Wiki
A aplicação foi desenvolvida na linguagem de programação C#. Utiliza como
servidor de aplicação o Internet Information Services (IIS) 7.0. Para a camada de
serviços é utilizado o Windows Communication Foundation e como servidor de banco
de dados é utilizado o SQL Server 2005.
5.2 Interfaces do FFB Wiki
No desenvolvimento das interfaces do sistema, procurou-se tornar o ambiente o
mais amigável possível, através de uma interface rica aliada a uma navegabilidade
simples e bem estruturada.
As páginas foram desenvolvidas na linguagem ASP.NET, utilizando as técnicas
atuais de codificação como que proporcionam um menor tempo de processamento.
Além disso, procurou-se evitar o uso de estruturas, formatações e imagens que
pudessem prejudicar o desempenho da aplicação em casos que o usuário não possua
conexão banda larga.
48
A seguir são apresentadas as interfaces do FFB Wiki.
5.2.1
Módulo Arquivos
Este módulo realiza a gestão dos arquivos do usuário bem como o
compartilhamento dos mesmos. É composto pelas seguintes páginas:
• Arquivos – Possibilita a visualização de todos os arquivos do usuário
bem como todos os arquivos que foram compartilhados com ele.
Na Figura 20, visualiza-se a interface de Arquivos.
Figura 20 - Tela de Arquivos
• Filtros de Arquivo – Possibilita ao usuário definir os filtros que serão
aplicados na tela de Arquivos para uma melhor visualização dos dados.
49
Na Figura 21, visualiza-se a interface de Filtros de Arquivo.
Figura 21 - Tela de Filtros de Arquivo
• Versões do Arquivo – possibilita a visualização de todas as versões de
um dado arquivo
Na Figura 22, visualiza-se a interface Versões de Arquivo.
Figura 22 – Tela de Versões de Arquivo
• Manutenção de Arquivo – possibilita a criação, edição ou remoção de um
arquivo.
50
Na Figura 23, visualiza-se a interface de Manutenção de Arquivo.
Figura 23 – Tela de Manutenção de Arquivo
• Compartilhamento de Arquivo – Possibilita um usuário compartilhar seus
arquivos com outros usuários do sistema
Na Figura 24, visualiza-se a interface de Compartilhamento de Arquivo.
Figura 24 – Tela de Compartilhamento de Arquivo
• Assuntos do Arquivo – possibilita a visualização dos assuntos de arquivo
do usuário
51
Na Figura 25, visualiza-se a interface de Assuntos de Arquivo.
Figura 25 – Tela de Assuntos de Arquivo
• Manutenção de Assuntos de Arquivo – possibilita a criação, edição de
assuntos de arquivo.
Na Figura 26, visualiza-se a interface de Manutenção de Assuntos de Arquivo.
Figura 26 – Tela de Manutenção de Assuntos de Arquivo
52
5.2.2
Módulo Cursos
Este módulo realiza a gestão dos cursos do sistema. É composto pelas seguintes
páginas:
• Cursos – possibilita a visualização dos cursos do sistema
Na Figura 27, visualiza-se a interface de Cursos.
Figura 27 – Tela de Cursos
53
• Filtros de Cursos – Possibilita ao usuário definir os filtros que vão ser
aplicados na tela de Cursos para uma melhor visualização dos dados.
Na Figura 28, visualiza-se a interface de Filtros de Cursos.
Figura 28 – Tela de Filtros de Curso
• Manutenção de Curso – Possibilita a criação, edição ou exclusão dos
cursos do sistema.
Na Figura 29, visualiza-se a interface de Manutenção de Cursos.
Figura 29 – Tela de Manutenção de Curso
54
5.2.3
Módulo Debates
Este módulo realiza a gestão dos debates que ocorrem no sistema. É composto
pelas seguintes páginas:
• Debates – possibilita a visualização de todos os debates do curso no qual
o usuário está associado.
Na Figura 30, visualiza-se a interface de Debates.
Figura 30 – Tela de Debates
55
• Manutenção de Debates – possibilita a criação, edição ou exclusão de
debates
Na Figura 31, visualiza-se a interface de Manutenção de Debates.
Figura 31 – Tela de Manutenção de Debates
56
• Itens de Debate – possibilita a visualização das interações dos usuários
com um determinado debate.
Na Figura 32, visualiza-se a interface de Itens de Debate.
Figura 32 – Tela de Itens de Debate
57
• Manutenção de Itens de Debates – Possibilita a criação, edição ou
exclusão de uma interação com um debate.
Na Figura 33, visualiza-se a interface de Manutenção de Itens de Debate.
Figura 33 – Tela de Manutenção de Itens de Debate
58
5.2.4
Módulo Perguntas
Este módulo realiza a gestão das perguntas que são realizadas através do
sistema. É composto pelas seguintes páginas:
• Perguntas – possibilita a visualização das perguntas. Somente serão
exibidas as perguntas que foram feitas por usuários do mesmo curso.
Na Figura 34, visualiza-se a interface de Perguntas.
Figura 34 – Tela de Perguntas
59
• Manutenção de Perguntas – Possibilita a criação, edição ou exclusão de
perguntas.
Na Figura 35, visualiza-se a interface de Manutenção de Perguntas.
Figura 35 – Tela de Manutenção de Perguntas
60
• Respostas – possibilita a visualização das interações dos usuários com
uma determinada pergunta.
Na Figura 36, visualiza-se a interface de Respostas.
Figura 36 – Tela de Respostas
61
• Manutenção de Respostas – Possibilita a criação, edição ou exclusão de
uma interação com uma pergunta.
Na Figura 37, visualiza-se a interface de Manutenção de Respostas.
Figura 37 – Tela de Manutenção de Respostas
62
5.2.5
Módulo Usuários
Este módulo realiza a gestão dos usuários do sistema. É composto pelas
seguintes páginas:
• Usuários – possibilita a visualização dos usuários do sistema.
Na Figura 38, visualiza-se a interface de Usuários.
Figura 38 – Tela de Usuários
• Filtros de Cursos – Possibilita o usuário definir os filtros que vão ser
aplicados na tela de Usuários para uma melhor visualização dos dados.
63
Na Figura 39, visualiza-se a interface de Filtros de Usuário.
Figura 39 – Tela de Filtros de Usuário
• Manutenção de Usuários – Possibilita a criação, edição ou exclusão de
um usuário.
Na Figura 40, visualiza-se a interface de Manutenção de Usuário.
Figura 40 – Tela de Manutenção de Usuários
64
5.3 Funcionalidades da Solução
A aplicação desenvolvida neste trabalho fornece uma interface simples e
intuitiva para que os alunos da Faculdade Farias Brito possam compartilhar
conhecimento e informações entre si. Dentre as funcionalidades que a aplicação
fornecer podemos citar:
1. Possibilitar compartilhamento de arquivos e informações entre os
usuários,
de
acordo
com
o
curso
(Ciência
da
Computação,
Administração, Marketing ou Direito) e o assunto.
2. Permitir que usuários façam perguntas para outros usuários e que possam
ser respondidos por qualquer outro usuário de forma seletiva, ou seja, por
relevância de conteúdo das mensagens.
3. Fornecer um meio no qual os professores possam interagir, debater e/ou
orientar alunos que façam parte de sua(s) disciplina(s), servindo também
como divulgação de trabalhos e grupos de pesquisa no qual o aluno pode
se engajar.
4. Fornecer um meio pelo qual o aluno possa lançar desafios na área de
computação, propor soluções, estimulando a busca pelo conhecimento.
65
6
Resultados Obtidos
O desenvolvimento da aplicação FFB Wiki em apenas dois meses (março e abril
de 2008), serve para confirmar a produtividade da arquitetura detalhada anteriormente e
do ambiente integrado de desenvolvimento Visual Studio .NET 2008.
O uso de tecnologias recentes como o Language Integrated Query (LINQ) e o
Windows Communication Foundation (WCF) representa o grande diferencial do FFB
Wiki, pois além de fornecer uma melhor segurança e um melhor desempenho, também
faz da aplicação um referencial de utilização dessas tecnologias, proporcionando aos
profissionais da área de informática uma melhor compreensão da aplicabilidade dessas
tecnologias.
Além disso, o FFB Wiki pode ser um passo importante no processo de ensino na
Faculdade Farias Brito, uma vez que os alunos, ao utilizarem o sistema, terão acesso ao
conhecimento de maneira mais eficiente.
Os principais resultados estão diretamente ligados aos objetivos específicos:
• Definição do conceito de Web 2.0 bem como os principais princípios e
técnicas utilizadas no desenvolvimento de aplicações que se baseiam
nesse conceito;
• Desenvolvimento de uma ferramenta colaborativa que possibilita o
compartilhamento de conhecimento entre os alunos, professores e
colaboradores da Faculdade Farias Brito.
66
7
Conclusão
Este trabalho realizou um estudo dos conceitos da Web 2.0, principalmente os
que colocam a mesma com uma plataforma de serviços. Também desenvolveu um
software colaborativo chamado FFB Wiki que aplica os conceitos de Web 2.0 para
fornecer um meio no qual alunos, professores e colaboradores da Faculdade Farias Brito
possam compartilhar conhecimento.
Inicialmente foi abordado o conceito de Web 2.0, bem como os conceitos
relacionados ao termo. A seguir foi apresentado o conceito de plataforma web e as
tecnologias utilizadas para disponibilizar aplicações como serviços na Web. Em seguida
foi descrito o FFB Wiki, um software colaborativo que possibilita o crescimento
pessoal, intelectual e profissional dos alunos, professores e colaboradores da Faculdade
Farias Brito.
Os resultados obtidos mostram que a utilização dos conceitos de Web 2.0 pode
trazer grandes benefícios a seus usuários, pois ao possibilitar a interação entre os
mesmos de modo eficaz é possível realizar a difusão de conhecimento.
7.1 Trabalhos Futuros
A implementação de outras funcionalidades e tecnologias no software
apresentado neste trabalho podem colaborar para a sua evolução e utilidade, gerando
diferentes resultados e obtendo um vasto leque de objetivos.
Dentre as recomendações para trabalhos futuros tomando como base a proposta
abordada, incluem-se:
• Utilização de Windows Workflow Foundation (WWF) para controlar os
fluxos do sistema;
• Estudo sobre as convergências da Engenharia de Software voltada para a
Web;
67
8
Referências Bibliográficas
1. ARAÚJO, A. Framework de Análise e Projeto Baseado no RUP para o
Desenvolvimento de Aplicações Web. Dissertação de Mestrado, UFPE, Centro de
Informática, 2001.
2. BERNERS-LEE, T., FIELDING, R.; Hypertext Transfer Protocol -- HTTP/1.0, RFC
1945, Maio de 1996.
3. BERNERS-LEE, T. CONNOLLY, D.; Hypertext Markup Language - 2.0, RFC 1866,
Novembro de1995.
4. CHRISTENSEN, E; CURBERA, F; MEREDITH, G; WEERAWARANA, S. Web
Services Description Language (WSDL), 2001. Disponível em:
http://www.w3.org/TR/wsdl. Acessado em: Novembro de 2007.
5. FLANAGAN, D. JavaScript: The Definitive Guide. O'Reilly Media, Inc., 2002.
6. GRAY, R. S.; KOTZ, D.; PETERSON, R. A.; BARTON, J.; CHACON, D.; GERKEN,
P.; HOFMANN, M.; BRADSHAW, J.; BREEDY, M.; JEFFERS, R.; SURI, N. MobileAgent versus Client/Server Performance: Scalability in an Information-Retrieval Task.
Fifth IEEE International Conference on Mobile Agents. Atlanta, Georgia, USA,
dezembro 2001.
7. GUJ. GRUPO DE USUÁRIOS JAVA. Entendendo XML. Disponível em:
http://www.guj.com.br/java.tutorial.artigo.19.1.guj. Acessado em: Novembro de 2008.
8. HOFFMAN, J. Introduction to Structured Query Language, 2001.
9. RECKZIEGEL, M. Descrevendo um Web Service – WSDL. Disponível em:
http://imasters.uol.com.br/artigo/4422/webservices/descrevendo_um_web_service__wsdl/. Acessado em: Novembro de 2008.
10. MARCHAL, B. XML conceitos e aplicações. São Paulo: Berkeley, 2000.
68
11. MARGUERIE, F; EICHERT, S; WOOLEY, J. LINQ in Action. Manning Publications,
2008.
12. O’REILLY, T. What is WEB 2.0: Design patterns and business models for the next
generation of software. Disponível em:
http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html.
Acessado em: Novembro de 2007.
13. ORT, E. Service-Oriented Architecture and Web Services: Concepts, Technologies, and
Tools, Sun Developer Network, April 2005 Disponível em:
http://java.sun.com/developer/technicalArticles/WebServices/soa2/. Acessado em:
Novembro de 2007.
14. SEELY, S. SOAP: Cross plataform web service development using XML. Upper
Saddle River: Prentice Hall PTR, 2002
15. SMITH, J. Inside Windows Communication Foundation, Microsoft Press, 2007.
16. SNELL, J.; TIDWELL, D.; KULCHENKO, K. Programming web services with soap.
O'Reilly, 2001.
17. The UDDI Technical White Paper. Disponível em: http://www.uddi.org. Acessado em:
Novembro de 2007
18. W3C. WORLD WIDE WEB CONSORTIUM. Simple object access protocol (SOAP).
Disponível em: http://www.w3.org/XML. Acessado em: Novembro de 2007
19. W3C. WORLD WIDE WEB CONSORTIUM. Cascading Style Sheets (CSS).
Disponível em: http://www.w3.org/Style/CSS/ Acessado em: Novembro de 2007
69
Download