DESENVOLVIMENTO DE UMA FERRAMENTA COLABORATIVA FUNDAMENTADA NOS CONCEITOS DE WEB 2.0

Tamanho: px
Começar a partir da página:

Download "DESENVOLVIMENTO DE UMA FERRAMENTA COLABORATIVA FUNDAMENTADA NOS CONCEITOS DE WEB 2.0"

Transcrição

1 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

2 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

3 DESENVOLVIMENTO DE UMA FERRAMENTA COLABORATIVA FUNDAMENTADA NOS CONCEITOS DE WEB 2.0 Raphael Batista Saldanha PARECER: NOTAS: 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

4 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

5 A meu irmão Alisson Batista de Medeiros V

6 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

7 SUMÁRIO INTRODUÇÃO Web Tecnologias da Web Plataforma Web Tecnologias da Plataforma Web SOA Web Services Tecnologias Arquitetura Cliente/Servidor Linguagem HyperText Markup Cascading Style Sheet e JavaScript Linguagem Estruturada de Consultas Windows Communication Foundation LINQ Metodologia Arquitetura Proposta Camada de Apresentação Camada de Serviços Camada Lógica Camada de Dados FFB Wiki Desenvolvimento do FFB Wiki Interfaces do FFB Wiki Módulo Arquivos Módulo Cursos Módulo Debates Módulo Perguntas Módulo Usuários Funcionalidades da Solução Resultados Obtidos Conclusão Trabalhos Futuros Referências Bibliográficas VII

8 LISTA DE FIGURAS Figura 1 Exemplo de XML Figura 2 Exemplo de Mensagem SOAP Figura 3 Exemplo do elemento <definitions> Figura 4 Exemplo do elemento <types> Figura 5 Exemplo do elemento <message> Figura 6 Exemplo do elemento <porttype> Figura 7 Exemplo do elemento <binding> Figura 8 Exemplo do elemento <service> Figura 9 UDDI Figura 10 Arquitetura Cliente/Servidor Figura 11 Exemplo de consulta em uma fonte de informações em memória utilizando LINQ Figura 12 Arquitetura do LINQ Figura 13 Comunicação entre a Camada de Apresentação e a Camada Web Figura 14 Diagrama de entidades Figura 15 Comunicação na camada de serviços Figura 16 Interfaces da camada lógica Figura 17 Classes concretas da camada lógica Figura 18 Interfaces da camada de dados Figura 19 classes concretas da camada de dados Figura 20 - Tela de Arquivos Figura 21 - Tela de Filtros de Arquivo Figura 22 Tela de Versões de Arquivo Figura 23 Tela de Manutenção de Arquivo Figura 24 Tela de Compartilhamento de Arquivo Figura 25 Tela de Assuntos de Arquivo Figura 26 Tela de Manutenção de Assuntos de Arquivo Figura 27 Tela de Cursos Figura 28 Tela de Filtros de Curso Figura 29 Tela de Manutenção de Curso Figura 30 Tela de Debates Figura 31 Tela de Manutenção de Debates Figura 32 Tela de Itens de Debate Figura 33 Tela de Manutenção de Itens de Debate Figura 34 Tela de Perguntas Figura 35 Tela de Manutenção de Perguntas Figura 36 Tela de Respostas Figura 37 Tela de Manutenção de Respostas Figura 38 Tela de Usuários Figura 39 Tela de Filtros de Usuário Figura 40 Tela de Manutenção de Usuários VIII

9 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

10 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

11 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

12 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

13 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. trabalho. No Capítulo 7 Resultados Obtidos: Reúne os principais resultados deste No Capítulo 8 Conclusão: Reúne as principais conclusões deste trabalho e perspectivas futuras. 4

14 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

15 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

16 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

17 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

18 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 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

19 É 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

20 <?xml version="1.0" encoding="utf-8"?> <root> <class name="ffbwiki.net.dal.sqldao.cursodao"> <query name="insert"> INSERT INTO Cursos (Nome) VALUES </query> <query name="update"> UPDATE Cursos SET Nome WHERE ID </query> <query name="delete"> DELETE FROM Cursos WHERE ID </query> <query name="getbyid"> SELECT TOP 1 * FROM Cursos WHERE ID </query> <query name="getall"> SELECT * FROM Cursos </query> <query name="selecionarpornome"> SELECT * FROM Cursos WHERE 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

21 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=" 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> </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

22 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

23 mensagem. Elemento <types>: é utilizado para informar os tipos de dados presentes na 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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 É 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 ; 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

42 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. dados. Insert: Interage com a camada de dados para inserir um novo objeto no banco de 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. identificador. GetByID: Interage com a camada de dados para retornar o objeto filtrando pelo 33

43 No diagrama da Figura 17, visualizam-se as classes concretas da camada lógica. Figura 17 Classes concretas da camada lógica 34

44 arquivo. A classe ArquivoBusiness contém as regras de negócio específicas da entidade 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

45 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. curso. A classe CursoBusiness contém as regras de negócio específicas da entidade 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

46 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. debate. A classe DebateBusiness contém as regras de negócio específicas da entidade 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

47 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. pergunta. A classe PerguntaBusiness contém as regras de negócio específicas da entidade 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

48 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 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 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

49 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

50 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

51 dados. No diagrama da Figura 19, visualizam-se as classes concretas da camada de Figura 19 classes concretas da camada de dados 42

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

Microsoft.NET. Desenvolvimento Baseado em Componentes

Microsoft.NET. Desenvolvimento Baseado em Componentes Microsoft.NET Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Desenvolvimento Baseado em Componentes Resolução de problemas específicos, mas que podem ser re-utilizados em

Leia mais

UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO RELATÓRIO DE ESTÁGIO SUPERVISIONADO PROPOSIÇÃO DE UMA NOVA ARQUITETURA BASEADA EM

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

Resumo de TCC Desenvolvimento de um sistema ERP com foco nas tecnologias de software livre / código aberto

Resumo de TCC Desenvolvimento de um sistema ERP com foco nas tecnologias de software livre / código aberto UFSC - Universidade Federal de Santa Catarina CTC Centro Tecnológico INE Departamento de Informática e Estatística INE5631 Projetos I Prof. Renato Cislaghi Resumo de TCC Desenvolvimento de um sistema ERP

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br Guia de Consulta Rápida HTTP Décio Jr. Novatec Editora www.novateceditora.com.br Guia de Consulta Rápida HTTP de Décio Jr. Copyright 2001 da Novatec Editora Ltda. Todos os direitos reservados. É proibida

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

PADRÕES PARA O DESENVOLVIMENTO NA WEB

PADRÕES PARA O DESENVOLVIMENTO NA WEB PADRÕES PARA O DESENVOLVIMENTO NA WEB Ederson dos Santos Cordeiro de Oliveira 1,Tiago Bonetti Piperno 1, Ricardo Germano 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR- Brasil edersonlikers@gmail.com,

Leia mais

Infra estrutura da Tecnologia da Informação

Infra estrutura da Tecnologia da Informação Infra estrutura da Tecnologia da Informação Capítulo 3 Adaptado do material de apoio ao Livro Sistemas de Informação Gerenciais, 7ª ed., de K. Laudon e J. Laudon, Prentice Hall, 2005 CEA460 Gestão da Informação

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

História e Evolução da Web. Aécio Costa

História e Evolução da Web. Aécio Costa Aécio Costa A História da Web O que estamos estudando? Período em anos que a tecnologia demorou para atingir 50 milhões de usuários 3 As dez tecnologias mais promissoras 4 A evolução da Web Web 1.0- Passado

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB Deusa Cesconeti e Jean Eduardo Glazar Departamento de Ciência da Computação Faculdade de Aracruz UNIARACRUZ {dcescone, jean}@fsjb.edu.br RESUMO

Leia mais

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura

Leia mais

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Web Service Plínio Antunes Garcia Sam Ould Mohamed el Hacen Sumário Introdução conceitual O Web Service

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

Aplicativos para Internet Aula 01

Aplicativos para Internet Aula 01 Aplicativos para Internet Aula 01 Arquitetura cliente/servidor Introdução ao HTML, CSS e JavaScript Prof. Erika Miranda Universidade de Mogi das Cruzes Uso da Internet http://www.ibope.com.br/pt-br/noticias/paginas/world-wide-web-ou-www-completa-22-anos-nesta-terca-feira.aspx

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

Documento apresentado para discussão. II Encontro Nacional de Produtores e Usuários de Informações Sociais, Econômicas e Territoriais

Documento apresentado para discussão. II Encontro Nacional de Produtores e Usuários de Informações Sociais, Econômicas e Territoriais Documento apresentado para discussão II Encontro Nacional de Produtores e Usuários de Informações Sociais, Econômicas e Territoriais Rio de Janeiro, 21 a 25 de agosto de 2006 PID - Projeto de Interoperabilidade

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br Desenvolvimento Web Saymon Yury C. Silva Analista de Sistemas http://www.saymonyury.com.br Vantagens Informação em qualquer hora e lugar; Rápidos resultados; Portabilidade absoluta; Manutenção facilitada

Leia mais

XHTML 1.0 DTDs e Validação

XHTML 1.0 DTDs e Validação XHTML 1.0 DTDs e Validação PRnet/2012 Ferramentas para Web Design 1 HTML 4.0 X XHTML 1.0 Quais são os três principais componentes ou instrumentos mais utilizados na internet? PRnet/2012 Ferramentas para

Leia mais

Conceitos Web. Prof. Msc. Juliano Gomes Weber (jgw@unijui.edu.br) Notas de Aula Aula 13 1º Semestre - 2011. UNIJUÍ DETEC Ciência da Computação

Conceitos Web. Prof. Msc. Juliano Gomes Weber (jgw@unijui.edu.br) Notas de Aula Aula 13 1º Semestre - 2011. UNIJUÍ DETEC Ciência da Computação UNIJUÍ DETEC Ciência da Computação Prof. Msc. Juliano Gomes Weber (jgw@unijui.edu.br) Conceitos Web Notas de Aula Aula 13 1º Semestre - 2011 Tecnologias Web jgw@unijui.edu.br Conceitos Básicos Sistema

Leia mais

Gerenciamento e Interoperabilidade de Redes

Gerenciamento e Interoperabilidade de Redes EN-3610 Gerenciamento e Interoperabilidade de Redes Gerenciamento baseado na Web Prof. João Henrique Kleinschmidt Gerenciamento baseado na Web Web browser Acesso ubíquo Interface Web vs Gerenciamento baseado

Leia mais

Arquitetura de Software: Uma Central para Gestão da execução de serviços

Arquitetura de Software: Uma Central para Gestão da execução de serviços Arquitetura de Software: Uma Central para Gestão da execução de serviços ADILSON FERREIRA DA SILVA Centro Paula Souza São Paulo Brasil afs.software@gmail.com Prof.a. Dr.a. MARILIA MACORIN DE AZEVEDO Centro

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

Facilidade e flexibilidade na web

Facilidade e flexibilidade na web Facilidade e flexibilidade na web palavras-chave: acessibilidade, usabilidade, web 2.0 Tersis Zonato www.tersis.com.br Web 2.0 o termo de marketing x a nova forma de conhecimento Web 2.0 O conceito começou

Leia mais

SOA na Prática Ricardo Limonta

SOA na Prática Ricardo Limonta SOA na Prática Ricardo Limonta Arquiteto JEE Objetivo Apresentar os conceitos de Arquiteturas Orientadas a Serviços; Entender a relação entre SOA e a tecnologia Web Services; Implementar SOA com Web Services

Leia mais

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web Modelagem de Sistemas Web Aula 4 Ferramentas e metodologias para projeto de sistemas web Ferramentas e metodologias para projeto de sistemas web Ferramentas CASE Fontes: Sarajane e Marques Peres Introdução

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Desenvolvimento em Ambiente Web Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com No início A Web é criada em 1989, para ser um padrão de publicação e distribuição de textos científicos e acadêmicos.

Leia mais

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação Internet Gabriela Trevisan Bacharel em Sistemas de Infomação Histórico da Web World Wide Web o nosso www é o meio de comunicação mais utilizado no mundo atualmente. Através da WWW qualquer usuário conectado

Leia mais

19/05/2009. Módulo 1

19/05/2009. Módulo 1 ASP.NET Módulo 1 Objetivo Mostrar os conceitos fundamentais da plataforma Microsoft.Net e suas ferramentas; Apresentar os conceitos fundamentais de aplicações web e seus elementos; Demonstrar de forma

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

A Estrutura de um Web Service

A Estrutura de um Web Service A Estrutura de um Web Service Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo Atualmente, o Serviço Web é a solução mais utilizada para integração entre sistemas, pois apresenta vantagens

Leia mais

TEMA TECNOLOGIA DA INFORMAÇÃO -Tipos de SI e Recursos de Software parte2. AULA DE SISTEMAS DE INFORMAÇÃO PROFa. ROSA MOTTA

TEMA TECNOLOGIA DA INFORMAÇÃO -Tipos de SI e Recursos de Software parte2. AULA DE SISTEMAS DE INFORMAÇÃO PROFa. ROSA MOTTA TEMA TECNOLOGIA DA INFORMAÇÃO -Tipos de SI e Recursos de Software parte2 AULA DE SISTEMAS DE INFORMAÇÃO PROFa. ROSA MOTTA CONTEÚDO DA AULA Tipos de Software Serviços Web Tendências 2 OBJETIVOS ESPECÍFICOS

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Arquiteturas SOA, WOA, e REST

Arquiteturas SOA, WOA, e REST Arquiteturas SOA, WOA, e REST Aplicação de Software Social Fred Figueiredo Luiz Borges Pedro Pires Arquiteturas SOA, WOA e REST Desenvolvimento de aplicações orientadas ao fornecimento de serviços que

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE. Kellen Kristine Perazzoli 1, Manassés Ribeiro 2 RESUMO

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE. Kellen Kristine Perazzoli 1, Manassés Ribeiro 2 RESUMO INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE Kellen Kristine Perazzoli, Manassés Ribeiro RESUMO O grande avanço tecnológico vivenciado nos últimos anos, os web services vem sendo utilizados trazendo

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

Introdução à Tecnologia Web. Ferramentas e Tecnologias de Desenvolvimento Web. Profª MSc. Elizabete Munzlinger www.elizabete.com.

Introdução à Tecnologia Web. Ferramentas e Tecnologias de Desenvolvimento Web. Profª MSc. Elizabete Munzlinger www.elizabete.com. IntroduçãoàTecnologiaWeb FerramentaseTecnologiasde DesenvolvimentoWeb ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br FerramentaseTecnologiasde DesenvolvimentoWeb

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações Universidade de São Paulo Escola Politécnica Programa de Educação Continuada em Engenharia PROGRAMA DE MBA em Gestão e Engenharia do Produto O Produto Internet e suas Aplicações Tecnologias de Informação

Leia mais

FERRAMENTAS PARA DESENVOLVIMENTO EM C#

FERRAMENTAS PARA DESENVOLVIMENTO EM C# FERRAMENTAS PARA DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Wyllian Fressatti 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

Sistemas de Informações Gerenciais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Sistemas de Informações Gerenciais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Sistemas de Informações Gerenciais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 4 Infra-Estrutura de TI: Hardware e Software 2 1 OBJETIVOS

Leia mais

Web Services: estudo de caso envolvendo uma aplicação B2B

Web Services: estudo de caso envolvendo uma aplicação B2B Web Services: estudo de caso envolvendo uma aplicação B2B Cristiano Fornari Colpani (FURB) cristiano.colpani@senior.com.br Alexander Roberto Valdameri (FURB) arv@furb.br Resumo. Este artigo descreve um

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

Desenvolvimento de Aplicação Windows Mobile Acessando um WebService

Desenvolvimento de Aplicação Windows Mobile Acessando um WebService Faculdade de Negócios e Administração de Sergipe Disciplina: Integração Web Banco de Dados Professor: Fábio Coriolano Desenvolvimento de Aplicação Windows Mobile Acessando um WebService Professor: Fabio

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

PRnet/2013. Linguagem de Programação Web

PRnet/2013. Linguagem de Programação Web Linguagem de Programação Web Linguagem de Programação Web Prnet/2013 Linguagem de Programação Web» Programas navegadores» Tipos de URL» Protocolos: HTTP, TCP/IP» Hipertextos (páginas WEB)» HTML, XHTML»

Leia mais

Programação de Servidores CST Redes de Computadores. Marx Gomes Van der Linden

Programação de Servidores CST Redes de Computadores. Marx Gomes Van der Linden Programação de Servidores CST Redes de Computadores Marx Gomes Van der Linden Programação de Servidores Aplicações cliente/servidor para web. Fundamentos de HTML+CSS. Linguagem de programação de servidor:

Leia mais

Comunicado Técnico 11

Comunicado Técnico 11 Comunicado Técnico 11 ISSN 2177-854X Maio. 2011 Uberaba - MG Web Services e XML Comunicação Inteligente entre Sistemas Responsáveis: Daniela Justiniano de Sousa E-mail: dsol_dani21@hotmail.com Graduada

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas BPM e SOA Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Como funcionam as organizações? O que ébpm Business Process Management (BPM)

Leia mais

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Web Services Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org November 29, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November

Leia mais

Programação Cliente em Sistemas Web

Programação Cliente em Sistemas Web Programação Cliente em Sistemas Web WEBSERVICES Cap 18. - Sistemas distribuídos e serviços web em Deitel, H.M, Sistemas Operacionais, 3 ª edição, Pearson Prentice Hall, 2005 Fonte: Rodrigo Rebouças de

Leia mais

AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE EM NUVEM

AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE EM NUVEM AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE EM NUVEM José Carlos Pineli 1, Mauricio Duarte 2 1 Faculdade de Tecnologia de Garça (FATEC Garça) Garça SP Brasil 2 Docente do curso de Tecnologia em Análise e Desenvolvimento

Leia mais

COMUNICAÇÃO ENTRE SISTEMAS ATRAVÉS DE XML E WEB SERVICES

COMUNICAÇÃO ENTRE SISTEMAS ATRAVÉS DE XML E WEB SERVICES COMUNICAÇÃO ENTRE SISTEMAS ATRAVÉS DE XML E WEB SERVICES M.Sc. FERNANDO DE ANDRADE BASTOS¹(fbastos@unidavi.edu.br) GUILHERME AUGUSTO CAVILHA BUTZKE²(guibutzke@gmail.com) RESUMO Na área de sistemas de informação

Leia mais

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello 1/39 Serviços Web (Web Services) Emerson Ribeiro de Mello Departamento de Automação e Sistemas Universidade Federal de Santa Catarina 22 de Maio de 2007 2/39 Arquitetura Orientada a Serviços Arquitetura

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO INTRODUÇÃO AO DESENVOLVIMENTO WEB PROFª. M.Sc. JULIANA H Q BENACCHIO Internet Internet é o conjunto de diversas redes de computadores que se comunicam entre si Internet não é sinônimo de WWW (World Wide

Leia mais

Extensões MIDP para Web Services

Extensões MIDP para Web Services Extensões MIDP para Web Services INF-655 Computação Móvel Universidade Federal de Viçosa Departamento de Informática MIDP Architecture MIDP = Mobile Information Device Profile Connection Framework HttpConnection

Leia mais

Módulo 11 A Web e seus aplicativos

Módulo 11 A Web e seus aplicativos Módulo 11 A Web e seus aplicativos Até a década de 90, a internet era utilizada por acadêmicos, pesquisadores e estudantes universitários para a transferência de arquivos e o envio de correios eletrônicos.

Leia mais

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS 21/11/2013 PET Sistemas de Informação Faculdade de Computação Universidade Federal de Uberlândia 1 BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS Leonardo Pimentel Ferreira Higor Ernandes Ramos Silva 21/11/2013

Leia mais

QUESTÕES PROVA 2 (28 a 44)

QUESTÕES PROVA 2 (28 a 44) QUESTÕES PROVA 2 (28 a 44) 28) A orientação a objetos é uma forma abstrata de pensar um problema utilizando-se conceitos do mundo real e não, apenas, conceitos computacionais. Nessa perspectiva, a adoção

Leia mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos

Leia mais

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services Danielle Corrêa Ribeiro 1, Elizabeth Mª Martinho da Silva 1, Francisco A. S. Júnior 1, Thatiane de Oliveira Rosa 1, Madianita Bogo

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais