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 ( cujo conteúdo é produzido, editado e validado por seus próprios usuários e o website Flickr ( 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 ( permite que seus usuários carreguem, assistam e compartilhem vídeos em formato digital; Enciclopédia Wikipédia ( tem todo seu conteúdo produzido, editado e validado por seus próprios usuários; Flickr ( 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 ( 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=" soap:encodingstyle=" <soap:body xmlns:m=" <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

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

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

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

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

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

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

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

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

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

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

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

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

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

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

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

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 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

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

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

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

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

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

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

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

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

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

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

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS CST em Análise e Desenvolvimento de Sistemas 5ª. Série Programação e Design para Web A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN José Agostinho Petry Filho 1 ; Rodrigo de Moraes 2 ; Silvio Regis da Silva Junior 3 ; Yuri Jean Fabris 4 ; Fernando Augusto

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

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

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

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

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

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

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

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

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Objetivo. O objetivo da disciplina é conhecer os princípios da programação de

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

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

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

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS Manual de Instalação Tempro Software StavTISS Sumário 1. INTRODUÇÃO... 2 2. REQUISITOS DO SISTEMA... 3 3. INSTALAÇÃO... 4 4.

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

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Tópicos de Ambiente Web Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Roteiro Motivação Desenvolvimento de um site Etapas no desenvolvimento de software (software:site) Analise

Leia mais

Lista 3 Exercícios de Gestão de Redes

Lista 3 Exercícios de Gestão de Redes 1. Quais os fatores que contribuem para o sucesso de uma operação de gerenciamento? O sucesso de uma operação de Gerenciamento depende dos seguintes fatores: O sistema de gerenciamento invocador deve ter

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar e independente da plataforma, bastando para isso

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

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

Rotina de Discovery e Inventário

Rotina de Discovery e Inventário 16/08/2013 Rotina de Discovery e Inventário Fornece orientações necessárias para testar a rotina de Discovery e Inventário. Versão 1.0 01/12/2014 Visão Resumida Data Criação 01/12/2014 Versão Documento

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

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET WEBSITE MUNDO MULHER GABRIELA DE SOUZA DA SILVA LUANA MAIARA DE PAULA SILVA

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Programação para a Web - I. José Humberto da Silva Soares

Programação para a Web - I. José Humberto da Silva Soares Programação para a Web - I José Humberto da Silva Soares Fundamentos de Internet Rede Mundial de Computadores; Fornece serviços, arquivos e informações; Os computadores que têm os recursos são chamados

Leia mais

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho. Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

Leia mais

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Web Design. Prof. Felippe

Web Design. Prof. Felippe Web Design Prof. Felippe 2015 Sobre a disciplina Fornecer ao aluno subsídios para o projeto e desenvolvimento de interfaces de sistemas Web eficientes, amigáveis e intuitivas. Conceitos fundamentais sobre

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC Configurador Automático e Coletor de Informações Computacionais GOVERNO FEDERAL SOFTWARE PÚBLICO software livre desenvolvido pela Dataprev Sistema de Administração

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

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

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

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

Desenvolvimento de aplicações web com JSP

Desenvolvimento de aplicações web com JSP Desenvolvimento de aplicações web com JSP Leandro Soares de Sousa, Paulo Henrique de Sousa Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Cx. Postal 160 77054-970 Palmas TO

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais