• Nenhum resultado encontrado

Monografia-Projeto2-VersãoInicial

N/A
N/A
Protected

Academic year: 2021

Share "Monografia-Projeto2-VersãoInicial"

Copied!
26
0
0

Texto

(1)

1

Universidade Federal de Campina Grande

Centro de Engenharia Elétrica e Informática

Departamento de Sistemas e Computação

Sistema de Bate-Papo para Redes

Sociais

Andressa Bezerra ferreira

Camila Pascoal

Renata Braga de Andrade

Campina Grande – PB

Setembro de 2011

(2)

2 Monografia de Projeto de Graduação sob o título “Sistema de Bate-Papo para Redes Sociais” defendida por Andressa Bezerra Ferreira, Camila Pascoal e Renata Braga

de Andrade. Aprovada em _____ de 2011, em Campina Grande, Estado da Paraíba,

pela banca examinadora constituída por

______________________________________________________ Prof. ______________________________________________________ Prof. ______________________________________________________ Prof.

(3)

3

Sumário

Introdução ... 03

Processo de Desenvolvimento ... 05

Análise e Requisitos ... 08

Arquitetura ... 10

Verificação e Validação ... 16

Métricas ... 17

Conclusões ... 18

Referências Bibliográficas ... 19

Apêndices ... 20

(4)

4

Introdução

Descrição do Problema

O projeto trata-se do desenvolvimento de um sistema de bate-bapo para o Turingo. O Turingo é uma rede social na área de turismo que será lançada brevemente. Os usuários do Turingo são turistas e empresas interessadas em oferecer seus serviços. Um dos maiores requisitos do Turingo é ser escalável, dessa forma, ele foi concebido para que a quantidade de servidores alocados seja determinada pela quantidade de requisições.O sistema de bate-papos deve suportar centenas de milhares

de conversas simultâneas.

Visão da solução

Deseja-se construir um chat semelhante ao facebook; que apareça na página do turingo, numa barra lateral no canto direito e na parte inferior. Entretanto os requisitos são diferentes: o chat deve funcionar somente para comunicação entre turistas e empresas, nunca empresa-empresa ou turista-turista; as demais regras de negócio serão aplicadas para definir quais empresas estão habilitadas para conversar com turistas, essas regras irão variar em função da disponibilidade de uma empresa, dos lugares onde a empresa oferece serviços, etc.

Contexto do Projeto

Os usuários do Chat-Turingo são exatamente os mesmos do Turingo; ou seja, são pessoas interessadas em viajar ( turistas ) e empresas interessadas em fornecer seus serviços a essas pessoas. O ambiente de execução do Turingo é brownser o usuário; ele estará rodando junto com o Turingo, em uma barra lateral, exatamente como o chat do facebook. O chat só está no ar quando o Turingo estiver, e só estará no chat quem estiver no Turingo, pois as aplicações estão completamente ligadas.

(5)

5

Processo de Desenvolvimento

Introdução

Neste capítulo será descrito o processo utilizado para guiar o desenvolvimento deste projeto.

O desenvolvimento de software consiste em um conjunto de atividades com a finalidade de se obter um software de boa qualidade, que atenda às expectativas do cliente, em um prazo razoável com um custo aceitável. Define quem faz o quê, quando e como.

O uso de um processo mostrou-se um dos principais mecanismos para se obter um software de qualidade e cumprir corretamente as metas de desenvolvimento.

O Processo XP1

Durante o desenvolvimento deste projeto, foi utilizado o processo de desenvolvimento XP1 [16]. Este foi escolhido por se tratar de um processo mais simples para ser aplicado pela primeira vez no ambiente acadêmico.

O XP1 é baseado nas práticas do processo de desenvolvimento eXtreme Programming(XP) [17]. A sua elaboração foi feita levando em consideração o ambiente acadêmico em que os alunos geralmente não trabalham no projeto 40 horas semanais. Outros motivos para a adoção de XP1 foram por ser um processo ágil e indicado quando os requisitos funcionais do software não estiverem bem definidos, permitindo mudanças com um custo menor.

Papéis do Processo

Durante o processo de desenvolvimento os principais papéis assumidos pelos participantes deste projeto foram:

 Cliente: Principal interessado pela conclusão rápida, com custo baixo e com qualidade do software. Responsável por definir as funcionalidades (User Stories) desejadas e tirar dúvidas que surgirem durante o desenvolvimento; descrever os requisitos não funcionais do software; definir o plano de release, escrever os testes de aceitação e definir quais atividades serão desenvolvidas para cada release.

 Desenvolvedor: Responsável por ajudar o cliente a levantar as User Stories e os requisitos não funcionais; elaborar um projeto arquitetural e estimar o tempo de desenvolvimento das User Stories, durante a fase de planejamento de release; dividir as User Stories em tarefas, estimar, com precisão, o tempo de desenvolvimento de tarefas e escolher tarefas para desenvolver, durante a fase de planejamento de atividades; elaborar o esquema lógico dos dados, se necessário.

 Gerente de Projeto: Conduz as atividades de planejamento; aloca revisores de testes; avalia riscos e toma providências quanto aos riscos descobertos; mantém o progresso do projeto.

(6)

6 o Nesta etapa (Projeto 2 ), os gerentes de cada release são:

 Release 1 – Andressa Bezerra Ferreira  Release 2 – Renata Braga de Andrade  Release 3 – Camila Pascoal

 Release 4 – Andressa Bezerra Ferreira  Release 5 – Renata Braga de Andrade  Release 6 – Camila Pascoal

 Release 7 – Andressa Bezerra Ferreira

Atividades do Processo

O processo foi dividido em planejamento, iteração e releases; foi planejado que haveria 7 releases, cada uma contendo 1 iteração, com duração de 2 semanas.

Release: é a liberação pública de uma nova versão de um programa ao qual foram adicionadas correções e melhorias

Iteração: Uma iteração abrange as atividades de desenvolvimento que conduzem à liberação de um produto - uma versão do produto estável e executável, junto com qualquer outro elemento periférico necessário para usá-lo. Portanto, uma iteração de desenvolvimento é de certa forma uma passagem completa por todas as etapas: pelo menos Requisitos, Análise & Design, Implementação e Teste.

Planejamento:

O planejamento é uma ferramenta administrativa, que possibilita perceber a realidade, avaliar os caminhos, construir um referencial futuro, estruturando o trâmite adequado e reavaliar todo o processo a que o planejamento se destina. Sendo, portanto, o lado racional da ação.

Artefatos

Em XP1, artefatos representam informações que devem ser guardadas sob controle de versão de forma permanente e em sincronia. XP1 não sugere muitos artefatos, numa tentativa de minimizar esforços de sincronização. Os artefatos de XP1 são:

 Artefatos sob responsabilidade do cliente:  User Stories;

 Requisitos não funcionais;

 O plano de releases (cronograma).  Artefatos de desenvolvimento:  O projeto arquitetural;  Código;  Testes.  Artefatos de gerência:  Os planos de iteração;

(7)

7  Tabela de risco;

(8)

8

Análise e Requisitos

Introdução

Neste capítulo será descrita a análise do projeto mediante a apresentação do seu modelo conceitual e de cada requisito funcional e não-funcional e sua arquitetura.

Requisitos Não-Funcionais

 O servidor deve ser escrito em PHP rodando em cima de Jabber.

 A interface do sistema deve ser compatível com os browsers Internet Explorer , Mozilla Firefox e Chrome.

o A interface deve ser feita em PHP

o O sistema deve suportar cerca de 2000 ( esse número ainda está em estudo ) conversas simultâneas por máquina.

 O sistema deve ser escalável(Caso eu use duas máquinas o sistema deve suportar 4000 conversas simultâneas; para 3 máquinas, 6 mil conversas e assim por diante).

 O sistema deve ser desenvolvido de forma que a configuração das máquinas (Core 2 Duo, 8Gb RAM, onde somente 1Gb deve estar sendo usado pelo sistema) o suporte.

o OBS: Essas configurações de hardware são para dar suporte ao lado servidor do Chat; o lado cliente roda na web ( nos brownsers IE, Firefox e Chrome) , não importando assim a configuração de hardware.

Requisitos Funcionais

 Logar: Ao entrar na sua conta do Turingo, o chat já se loga automaticamente; assim como no facebook e gmail.

 Logout: O usuário, ao entrar no turingo e ter seu bate-papo carregado, pode optar por sair do chat.

 Iniciar conversa: Após logado, qualquer turista pode falar com qualquer agência ( online ) e qualquer agência pode falar com qualquer turista (online.)

(9)

9 as opções: Online, Ocupado e Ausente ( Offline sai do chat ).

(10)

10

Arquitetura

A principal decisão-chave da arquitetura do projeto foi a escolha da tecnologia Jabber, pois como se trata de um sistema de bate-papo a comunicação é o essencial.

Decisão-Chave Utilizar tecnologia Jabber

Drivers RNF: O sistema deve ser escalável.

Descrição

Flexibilidade - as aplicações Jabber, além das mensagens

instantâneas, incluem gerenciamento

de rede, gestão de

conteúdo, ferramentas de colaboração, compartilhamento de arquivos, jogos e monitoramento remoto de sistemas.

Vantagens O sistema pode ser distribuído de

forma que não limita o número de usuários.

Desvantagens Observações

Mais vantagens oferecidas pela tecnologia jabber:

 Abertura - os protocolos Jabber são gratuitos, abertos, públicos e de fácil compreensão ,além disso existem múltiplas implementações de clientes, servidores, componentes e bibliotecas de código.

 Padronização - A IETF( Internet Engineering Task Force ), formalizou o núcleo dos protocolos XML de transmissão de dados como uma tecnologia de mensagens instantâneas e presença sob o nome de XMPP e as especificações XMPP foram publicadas como RFC 3920 e RFC 3921.

 Confiabilidade - as primeiras tecnologias Jabber foram desenvolvidas por Jeremie Miller em 1998 e estão bastante estáveis agora, centenas de desenvolvedores estão trabalhando em tecnologias Jabber, existem dezenas de milhares de servidores Jabber funcionando na Internet hoje e milhões de pessoas usando o Jabber como mensageiro instantâneo.

(11)

11 confiabilidade do sistema, partindo do fato que o protocolo XMPP será usado através do Jabber; garante-se que o sistema também possui a mesma confiabilidade.

 Descentralização - a arquitetura da rede Jabber é similar ao e-mail, como resultado qualquer um pode ter o seu próprio servidor Jabber, permitindo às pessoas e organizações terem total controle sobre suas mensagens instantâneas.

 Segurança - qualquer servidor Jabber pode ser isolado da rede Jabber pública ( por exemplo, a intranet da empresa ), além disso fazem parte das especificações XMPP medidas de segurança robustas, usando SASL e TLS.

 o Segurança do Sistema: A segurança do sistema com relação ao lado cliente é feita por meio do login no Turingo ( ao se logar no turingo, loga-se no chat). A segurança no lado servidor também é feita via autenticação por login.

 Extensibilidade - usando o poder das "XML namespaces", qualquer um pode construir funcionalidades sobre os protocolos centrais, para manter a interoperabilidade, as extensões comuns são mantidas pela Jabber Software Foundation.

 Flexibilidade - as aplicações Jabber, além das mensagens instantâneas, incluem gerenciamento de rede, gestão de conteúdo, ferramentas de colaboração, compartilhamento de arquivos, jogos e monitoramento remoto de sistemas.

 Diversidade - uma grande quantidade de empresas e projetos de código aberto usam os protocolos Jabber para criar e desenvolver aplicações e serviços.

Estrutura da Arquitetura

O projeto arquitetural é subdivido em dois, já que trata-se de um sistema cliente servidor.

(12)

12 Arquitetura Jabber

As tecnologias usadas serão:

FrontEnd ( entenda FrontEnd como sendo o cliente web): Jabber , HTML,

Bibliotecas

XMPP, PHP e JavaScript

BackEnd ( entenda BackEnd como sendo o servidor para o chat, que estará rodando nas máquinas da empresa do cliente ): O servidor Jabber openfire.

No lado cliente, a tecnologia usada será principalmente JavaScript e HTML ; no lado servidor será usado o servidor Jabber Openfire que é feito em PHP usando da tecnologia XMPP para fazer comunicação com os clientes vias httpRequest. O servidor estará rodando em um espaço chamado Octoputs alocado dentro do servidor da empresa; o octopus fará chamadas REST ao tomcat para saber quais novos usuários do Turingo vão se tornar também novos usuários do chat turingo, será utilizado também hadoop, hbase e um balanceador de carga. O cliente estará rodando na web; quer seja no navegador IE, Firefox ou Chrome.

(13)

13 Componentes da arquitetura Jabber:

Jabber Session Messenger(JSM) – O JSM gerencia o registro de

novas contas, autentica usuários, e gerencia informações sobre presença.

C2S(Cliente-to-Server) – C2S manipula as conexões entre o servidor e seus

clientes. A principal tarefa é a formatação e roteamento de mensagens entre clientes e outros componentes.

S2S(Server-to-Server) – S2S manipula conexões entre o servidor jabber

e outros servidores.

Xdb( XML Database) – xbd é o mecanismo de armazenamento

persistente compartilhado para o servidor jabber.

Logger – Responsável por registrar mensagens de controle de outros

componentes para o servidor . Registra mensagens, registra o login e logout de usuários, erros e assim por diante.

Dnsrv(DNS servisse) – converte nomes de servidores em endereços IP. Jabber User Directory(JUD) – fornece serviços que habilitam clientes exibir

informações de seu contato, bem como a disponibilização de informações de outros contatos do cliente.

Conferencing (conf) – Permite formar grupos de clientes (salas de bate-papo). Component BUS - é o backbone do servidor.

Cliente Web

A aplicação cliente do sistema web que irá ser executada nos browsers dos computadores dos usuários do bate-papo será implementada usando plugins javascript para que a interface seja semelhante ao chat do facebook/gtalk.

(14)

14 Toda a comunicação da página HTML+javascript com o back-end do sistema deve ser feita utilizando PHP, linguagem para desenvolvimento web mais utilizada hoje em dia por disponibilizar mais recursos necessários a essa comunicação.

Acessado de qualquer browser, não é necessária a instalação de nenhum

aplicativo por parte do cliente.

Dividindo em módulos, temos as seguintes estruturas:

Ao fazer o login no site do turingo, a página HTML é carregada no browser já com a interface do chat, que será feita utilizando um framework para javascript chamado Jquery,que possui uma extensão com diversos recursos de interface gráfica, o Jquery UI.Ao escolher iniciar uma conversa as requisições serão feitas para o servidor php que irá estabelecer a comunicação com o backend usando bibliotecas XMPP que disponibiliza métodos de acesso como “connect”, “message”, “desconnect”, “processUntil” de acordo com a biblioteca escolhida, como por exemplo a XMPPHP que dá suporte aos métodos citados.

É importante destacar que a compatibilidade com os diversos browsers é influenciada pela forma de implementação do frontEnd do sistema,no que diz respeito às páginas HTML+javascript e os plugins utilizados, ou seja, vários testes de alto nível devem ser feitos para garantir a funcionalidade em todos os browsers definidos.

O cliente deve ainda, possibilitar a mudança de status do usuário, e a abertura de várias conversas simultâneas, tendo um limite máximo de janelas definido pelo administrador do sistema.

Além disso, o cliente web deve ter opções de fechamento de janela, minimização, e status invisível para o caso do usuário não desejar falar com nenhum outro.Caso o número máximo de janelas seja ilimitado,deve existir um mecanismo de

(15)

15 agrupamento de conversas para que todas sejam facilmente acessadas quando o número for suficientemente grande.

De acordo com as regras de negócio que serão implementadas, o usuário só pode iniciar uma conversa com agências de turismo, logo, o cliente web deve exibir a lista de perfis disponíveis para bate-papo de acordo com o tipo de usuário que está utilizando. Como solução para o cliente web, estamos usando o Jappix Mini, que satisfaz aos requisitos que procuramos e segue a arquitetura mostrada acima.

(16)

16

Verificação e Validação

A verificação e validação de software asseguram que o software cumpra com suas especificações e atenda às necessidades dos usuários.

Verificação: ”Estamos construindo certo o produto?" O software cumpre com suas especificações. Validação: Estamos construindo o produto certo?"

O software deve estar de acordo com o que o usuário deseja.

Verificação

A verificação é feita através da testabilidade, e esta por sua vez será feita através de teste de carga e teste de escala.

 Os testes de carga serão feitos através do endereço de loopback simulando diversos usuários logados no chat, espera-se que o chat funcione normalmente com o número de usuários que o cliente do projeto deseja. Outra possível ferramenta para testes de carga é o tsung, que ainda está em fase de estudo.

 Os testes de escala são feitos no servidor, e o servidor usado para o desenvolvimento do projeto ( Openfire ) já garante escalabilidade.

Validação

A validação do software é feita através do acompanhamento por parte do cliente, em todas as etapas, através de testes no uso do sistema.

(17)

17

Métricas

Big Chart

Nesse tópico mostraremos o uso do big chart; o big chart é um gráfico que serve para o acompanhamento da coleta de métricas. E escolhemos usá-lo por concordarmos que seria a melhor opção para esse caso; além do que já tínhamos conhecimento da ferramenta pois a usamos em outra(s) disciplina(s). No nosso caso, os pontos usados para o big chart foram: Classes, Testes de Aceitação, Testes de Unidade, Paginas JavaScript, User Stories, Testes de Carga e Ferramentas Analisadas. Abaixo segue o gráfico inicial em projeto 2.

Observações:

O Big Chart é ser atualizado a cada reunião de acompanhamento (final de cada Release).

(18)

18

Conclusões

(19)

19

Referências Bibliográficas

 MOFFITT, Jack. Professional XMPP Programming with JavaScript and jQuery. Wrox. 2010.

 SAINT-ANDRE, Peter. “Extensible Messaging and Presence Protocol (XMPP): InstantMessagingandPresence”. 10/2004. Disponível em http://xmpp.org/rfcs/rfc3921.html, Acessado em Agosto de 2011.

 CASCARDO, Thadeu Lima de Souza,

Jabber e XMPP: protocolo extensível paramensagens e presença

, Disponível em: <cascardo.info/lacfree.pdf>, Acessado em Agosto de 2011.

(20)

20

Apêndices

A seguir telas do servidor e do cliente ( legendas abaixo das imagens ):

(21)

21 Página de gerenciamento das configurações do servidor.

(22)

22 Página com a lista de usuários do servidor.

(23)

23 Página com as salas de conferência.

(24)

24 Chat carregando.

(25)

25 Servidor mostrando usuário logado.

(26)

26 Dois usuários conversando na sala de turismo João Pessoa.

Referências

Documentos relacionados

Sabe-se que as praticas de ações de marketing social tem inúmeras funções, dentre estas o papel de atuar na mudança de valores, crenças e atitudes, porém os alunos da

Esse tipo de aprendizagem funciona não no regime da recognição (DELEUZE, 1988), que se volta a um saber memorizado para significar o que acontece, mas atra- vés da invenção de

Os dados foram discutidos conforme análise estatística sobre o efeito isolado do produto Tiametoxam e a interação ambiente/armazenamento no qual se obtiveram as seguintes

- Alguns medicamentos que podem aumentar os efeitos de Fluticasona Nasofan, o seu médico pode querer monitorizá-lo cuidadosamente se estiver a tomar estes medicamentos

II - que estejam prestando serviço à Casa Cor Brasília e ao CasaPark e/ou que tenham com eles vínculos familiares consanguíneos ou afins, na linha reta ou na colateral, até o

Todavia, mesmo tendo em perspectiva que, a visão que aponta os índices de criminalidade como inversamente proporcionais ao aumento dos mecanismos coercitivos do Estado,

O Reitor do Instituto Federal de Santa Catarina (IFSC) torna público pelo presente Edital, de acordo com as disposições legais em vigor, o início do período de manifestação de

O “Fundo Previdencial - Revisão de Plano Patrocinadora 2016” foi constituído com uma parte da Reserva Especial de 31/12/2016 (99,14%) e foi atribuído às patrocinadoras do Plano