Sei sulla pagina 1di 10

Versão: 1.

7
Development Code Collaborator XMPP Data: 30/08/2010

Projeto Development Code


Collaborator XMPP
Versão 1.0

Página 1 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010

Histórico de Revisões
Data Versão Autor Descrição
20/08/2010 1.0 Alan N. Voiski Criação do documento
-Introdução
-Decisões Arquiteturais
21/08/2010 1.1 Rafael E. Pereira Criação do documento
-Detalhamento dos requisitos
21/08/2010 1.2 Hélio Martins Revisão do documento
-Detalhamento das decisões arquiteturais
22/08/2010 1.3 Joel C. Ribeiro Revisão do documento
-Detalhamento das decisões arquiteturais
22/08/2010 1.4 Rodrigo Revisão do documento
Alcântara -Detalhamento das decisões arquiteturais
26/08/2010 1.5 Alan N. Voiski Atualização do Diagrama de Seqüência
29/08/2010 1.6 Rodrigo Validação do documento
Alcântara
30/08/2010 1.7 Joel C. Ribeiro Validação do documento

Página 2 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010

Conteúdo
Introdução ..................................................................................................................................... 4
Descrição da aplicação .............................................................................................................. 4
Requisitos do sistema.................................................................................................................... 4
Requisitos funcionais ................................................................................................................ 4
Eclipse.................................................................................................................................... 4
Visual Studio .......................................................................................................................... 5
Requisitos de desempenho ....................................................................................................... 5
Requisitos de portabilidade ...................................................................................................... 5
Decisões arquiteturais................................................................................................................... 6
Sistema em rede peer-to-peer .................................................................................................. 6
Diagrama de distribuição .......................................................................................................... 7
Fluxo principal ........................................................................................................................... 7
Diagrama de seqüência ............................................................................................................. 8
Diagrama de conexões .......................................................................................................... 9
Diagrama de edição colaborativa........................................................................................ 10

Página 3 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010

Introdução
Este documento descreve o propósito da aplicação e seus requisitos. Ele trará detalhes
importantes sobre seu funcionamento bem como a necessidade que ele atende. Algumas
decisões arquiteturais serão exibidas, embora elas possam sofrer alterações durante as demais
etapas de desenvolvimento ou manutenção. Cabe aos colaboradores responsáveis pela
documentação atualizar e manter este documento sincronizado com a situação do sistema.

Descrição da aplicação
A aplicação tem como fundamento a colaboração de desenvolvimento de software à
distância, ou auditoria do mesmo. Aplicável a desenvolvimento em par ou simples suporte a
codificação, também possui foco na utilização por equipes locais. Ela deverá suportar o
protocolo XMPP utilizando um servidor para disponibilizar o sistema de bate-papo onde por
ele permitirá o conhecimento das máquinas participantes. O sistema conhecendo a máquina
fará conexão direta permitindo um ganho ao se compartilhar o código, reduzindo a latência da
comunicação com servidor. Este compartilhamento de código permitirá edição em tempo real
de ambos participantes, com um controle para concorrência. O compartilhamento deve ser
rápido a fim de viabilizar e evitar desânimo por parte do desenvolvedor, a fim de garantir
também benefício para desenvolvimento que estejam no mesmo recinto. Diferente do XP,
ambos poderão ser dirigentes (driver), embora esta opção deva ser opcional para garantir o
uso em projetos que utilizam este processo.

Requisitos do sistema

Requisitos funcionais
Este tópico irá tratar questões operacionais por parte do usuário do sistema, por ter
intuito geral ele deverá respeitar questões tanto pelo ambiente de desenvolvimento (IDE -
Integrated Development Environment) diferente como padrões acordados. Algumas
customizações serão utilizadas por conta do perfil de desenvolvimento e pelo sistema que irá
utilizar este plugin.

Eclipse
Ambiente mais utilizado por sistemas desenvolvidos com código Java. A versão
suportada será 3.5 galileo ou superior.

• Uma janela (view) para cliente de conversa utilizando XMPP, com lista de
parceiros e outros contatos, deve diferenciar quais possuem suporte ao sistema.
• Uma janela para cada conversa aberta, exibindo histórico e campo de texto para
permitir a conversa do cliente XMPP.
• Uma janela exibindo contexto de compartilhamento deve possuir uma árvore
aninhada de projeto, pacote e arquivos.
• Uma janela de histórico por arquivo compartilhado, acionado com contexto de
menu do arquivo ou código.

Página 4 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010

• Uma perspectiva (Perspective) contendo as janelas padrões, sendo elas as de


diretórios dos projetos, cliente XMPP, contexto de compartilhamento, console
de log do sistema e editor do arquivo.
• O editor em modo compartilhamento deverá exibir o código do arquivo e a
posição em edição em destaque. A linha editada será travada, e exibida para o
parceiro. O parceiro ao editar uma linha, o usuário principal visualizará a linha
em separado e com fundo destacado. Após autorizar a alteração o código será
sincronizado como original.
• Qualquer um dos parceiros poderá realizar uma chamada de atenção, presente
na janela da conversa.
• A janela de comparação de arquivos já existente no eclipse deverá ser suportada
tanto para alterações vindas do parceiro como a do início do compartilhamento,
comparando o anterior com o final.

Visual Studio
Ambiente mais utilizado por sistemas utilizando codificação C#, Visual Basic, J# e demais
dentro do framework .NET. A versão suportada será 2008 ou superior.

Requisitos de desempenho
Estes requisitos são gerais, independente do ambiente de desenvolvimento utilizado.
Eles visão o uso remoto de compartilhamento tanto em locais de trabalho distantes como
locais no mesmo recinto. Eles devem viabilizar o uso para auditoria interna, ou seja, mesmo
que o parceiro esteja no computador ao lado.

• O sistema deverá utilizar o servidor XMPP para encontrar o parceiro.


• O sistema deverá sincronizar com o parceiro somente os arquivos principais, ou
pacote/projetos principais, sendo estes somente os arquivos marcados como contexto
do compartilhamento.
• O envio de modificações deverá ser feito por linha, com o intuito de reduzir o tráfico.
Um controle de linha deverá existir para evitar a perda do controle antes do
sincronismo de alterações.

Requisitos de portabilidade
Esta questão deve ser bem observada em relação à viabilidade do uso do plugin no
ambiente de trabalho. Questões tais como desempenho e funcionalidade tornam o sistema
interessante ao sistema, porém há alguns detalhes a mais listados a seguir.

• O sistema deve ser fácil de configurar.

Página 5 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010
/08/2010

• O sistema deve permitir a configuração para modo XP1, onde o parceiro estará
bloqueado a realizar modificações sendo denominado
denominado navegador (navigator).
(nav A troca
de papel então será possível.

Decisões arquiteturais
rquiteturais
Aqui serão detalhados os padrões arquiteturais a serem utilizados no sistema. Não serão
tratadas aqui questões a baixo nível e sim somente questões gerais demonstrando os
benefícios deles ao sistema. Com eles os requisitos serão alcançados e também irão garantir a
confiabilidade do sistema uma vez que os padrões são sucesso de mercado.

Sistema em rede peer--to-peer


A primeira arquitetura a ser tomada como base é a de sistema
sistema em rede peer-to-peer.
Este padrão arquitetural garante a descentralização das funções e recursos na rede, onde cada
componente funciona tanto como cliente como servidor.

Ele irá fornecer o ponto de encontro dos parceiros. O servidor poderá ser interno ou
externo,, servidores web disponíveis em XMPP ou o próprio GTalk. Esta questão de uso do
XMPP facilitará o uso do sistema, uma vez que é simples sua implantação ou mesmo existem
diversos servidores gratuitos disponíveis no mercado. Existe uma gama enorme de servidores
disponíveis para serem implantados e muitos ambientes de trabalho já possuem um servidor
implantado.

O servidor servirá somente para encontro e também para uso das conversas entre
parceiros. A maioria dos servidores possui configurações para log de conversa ou recursos para
mensagens offline.. Portanto a conversa será centralizada.

A requisição de compartilhamento do contexto irá solicitar uma conexão direta com o


parceiro, desta forma a transmissão será direta com o fim de garantir desempenho.
desempenho A conversa
será mantida no servidor XMPP para garantir os recursos já citados.

Tem como características:

• Compartilhamento de dados entre componentes com


conexão direta.
• Descoberta de recursos, ou seja, descobrir demais
componentes na rede.
• Múltiplas respostas a uma única requisição.
• Resiliência a remoção de componentes.

1
Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ágil.
ágil

Página 6 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010
/08/2010

Diagrama de distribuição
ibuição
O sistema tem como intuito ser simples além de tudo, portanto a distribuição é somente
duas máquinas parceiras e um servidor para permitir o contato inicial entre eles.

Fluxo principal
O sistema
tema contará com uma seqüência simples aproveitando o sistema de peer-to-peer.
• Conectar ao servidor XMPP para encontrar parceiros e tornar-se
tornar um parceiro
disponível.
• Requisitar ao parceiro uma conexão direta via mensagens pelo servidor XMPP,
antes disso o contato deverá ser validado se possui o sistema de
compartilhamento. Parceiros ocupados não poderão ser solicitados, para isso o
usuário deverá tentar entrar em contato com ele antes.
• Ao aceitar a conexão direta, a transmissão passa a ser direta mantendo somente
a conversa pelo servidor XMPP. Então é enviado o contexto de
compartilhamento.
• Nesta etapa o usuário irá abrir um arquivo enviando a ação ao parceiro que
pode ou não abrir o arquivo também. O mesmo acontece caso o parceiroparce abra
outro arquivo.
• Qualquer alteração feita pelo usuário principal irá ser sincronizada diretamente
com o código original.
• Qualquer alteração realizada pelo parceiro irá aparecer uma linha abaixo da
linha original e deverá ser aprovada pelo usuário principal
principal para sincronização do
código original.

Ambos podem chamar atenção do outro para abertura de um arquivo, isso devido à
possibilidade do outro usuário não estar travado as ações do outro.

Página 7 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010
/08/2010

Caso o modo seja XP, o parceiro não poderá realizar as mudanças


mudanças a não ser que o
usuário principal mude de papel com ele. Desta forma o usuário principal não realizará ações
de edição.

Diagrama de seqüência
eqüência
Aqui será exibida a seqüência de pacotes e a comunicação e criação dos objetos
participantes. Dois diagramas serão expostos detalhando o fluxo principal de conexões e o
fluxo de alterações dos arquivos.

Página 8 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010
/08/2010

Diagrama de conexões

Página 9 de 10
Versão: 1.7
Development Code Collaborator XMPP Data: 30/08/2010
/08/2010

Diagrama de edição colaborativa


olaborativa

Página 10 de 10

Potrebbero piacerti anche