Project

General

Profile

Architecture Report » History » Version 10

« Previous - Version 10/32 (diff) - Next » - Current version
Daniel Soares, 03/11/2012 18:03


Architecture Report

  1. Introduction
    1.1 Glossario
  2. Visão Geral da Tecnoligia
    2.1 HTML5
    2.2 CSS
    2.3 PHP
    2.4 JAVASCRIPT
    2.5 JQUERY
    2.6 ANDROID
  3. Arquitetura Lógica
  4. Arquitetura Física
  5. Decisões Chave do Design

3. Arquitetura Lógica

O objetivo da arquitetura lógica é dividir o sistema em módulos lógicos através de pacotes de classes e as dependências existentes entre si. A sua representação é feita através de diagramas de UML (Figura 1) onde serão explicadas as relações de composição e dependência entre pacotes. A decomposição deste sistema será feita através da decomposição horizontal e vertical.

Ver página anterior: Visão Geral da Tecnologia | Ver página seguinte: Arquitetura Física

4. Arquitetura Física

Nesta secção é documentada a estrutura física do sistema do Travel, Inc. (máquinas, ligações, componentes de software instalados e dependências de componentes), através da utilização de um UML de deployment (Figura 2).

4.1 Máquina Cliente

Para poder usufruir da aplicação, o cliente deverá ter acesso à Internet, quer seja através do computador pessoal ou do dispositivo móvel com plataforma Android cuja versão seja 2.2 ou superior, com suporte para os padrões web usuais (HTML, CSS, Javascript, jQuery, etc…)

4.2 Máquina Servidor

O servidor http é a componente necessária de forma a possibilitar a comunicação entre a máquina cliente e a máquina servidor, permitindo a interação entre os dois módulos, servindo também como “intermediário” entre o cliente e a base de dados. A tecnologia para tal efeito será principalmente através da linguagem PHP.

O servidor da base de dados é onde será guardada toda a informação da aplicação correspondente a toda a Lógica de Negócio. A tecnologia utilizada para este processo será o MySQL.

4.3 Ficheiros Utilizados

4.3.1 Aplicação Web

index.php Ficheiro responsável pela iniciação da página principal, onde é possível ao utilizador efetuar o registo e login
register_action.php Ficheiro responsável por efetuar a adição de um novo utilizador à base de dados da aplicação web, realizando assim o registo de um utilizador no sistema
home.php Ficheiro responsável pela iniciação e formatação da página inicial de um utilizador com sessão iniciada, a partir de onde é possível efetuar várias operações oferecidas pelo sistema (Aceder à página de perfil, pesquisar boleias, etc..)
login_action.php Ficheiro responsável por efetuar o login de um utilizador no sistema, criando uma sessão, verificando se este se encontra inserido na base de dados do sistema
logout_action.php Ficheiro responsável por terminar a sessão de um utilizador do sistema
profile.php Ficheiro responsável pela iniciação e formatação da página de perfil de cada utilizador, que contem as suas informações pessoais
searchT.php Ficheiro responsável pela pesquisa na base de dados do sistema do melhor percurso e meio de transporte, segundo as especificações inseridas pelo utilizador (Ex: De onde para onde e quando)
insCarpool.php Ficheiro responsável pela inserção de uma boleia, e todas as suas características, na base dados (Ex: De onde para onde, quando, locais de passagem e se o utilizador que está a oferecer o serviço é fumador ou não)
style.css / slide.css Ficheiros responsáveis pela formatação gráfica do código html inserido nos ficheiros
connect_db.php Ficheiros responsável por iniciar a base de dados do sistema
jscript.js Ficheiro responsável pela validação de formulários e interação do utilizador com a página web
slide.js Javascript para o slide que permite efetuar o login

4.3.2 Aplicação Móvel

ActionItem.java Ficheiro responsável pelos objetos que componhem as várias opções do menu
Login.java Ficheiro responsável por iniciar uma sessão de utilizador na aplicação, verificando se este se encontra inserido na base de dados da aplicação
Mensagens.java Ficheiro responsável pela listagem das mensagens trocadas entre utilizadores
Register.java Ficheiro responsável por efetuar a adição de um novo utilizador à base de dados da aplicação móvel, realizando assim o registo de um utilizador na aplicação
Menu.java Ficheiro responsável pela iniciação da página inicial de um utilizador com sessão iniciada, a partir de onde é possível efetuar várias operações oferecidas pela aplicação (Aceder à página de perfil, pesquisar boleias, etc..)
Popupwindows.java Ficheiro responsável pelas janelas de popup com as várias opções do menu
Profile.java Ficheiro responsável pela iniciação da página de perfil de cada utilizador, contendo os dados deste mesmo, onde é possível efetuar alterações das informações de cada utilizador
QuickAction.java Ficheiro responsável pelas animações das janelas de popup do menu
Search.java Ficheiro responsável pela pesquisa na base de dados da aplicação do melhor percurso e meio de transporte, segundo as especificações inseridas pelo utilizador(Ex: De onde para onde e quando)
SearchPeople.java Ficheiro responsável pela pesquisa de utilizadores que se encontram registados na aplicação, ou seja, inseridos na base desta mesma

Ver página anterior: Arquitetura Lógica | Ver página seguinte: Decisões Chave do Design

5. Decisões Chave do Design

5.1 Autenticação e Autorização

O uso efetivo da aplicação necessita de que o utilizador se registe na base de dados. A gestão destes utilizadores pode ser controlada pelos administradores (por exemplo, se um utilizador se comportar desadequadamente, pode ser banido do sistema).

5.2 Tratamento e Logging de erros

Se for um do utilizador, após a existência desse erro, o utilizador será informado do erro cometido, e se for o caso, será apresentada uma forma de o corrigir.
Caso o erro for proveniente do sistema, será armazenado um log com os erros encontrados de forma a mantê-lo funcional através da rápida correção dos mesmos, garantindo assim a segurança e eficiência do sistema.

5.3 Gestão de Transações

Aquando de uma alteração na base de dados, existe a possibilidade de algum pormenor falhar e impossibilitar uma determinada ação na base de dados com total sucesso. Como forma de prevenir situações em que a base de dados fique inconsistente e não funcional, será sempre efetuado um backup do sistema de forma a ser possível realizar o rollback, ou seja, retornar ao último estado em que a base de dados funcionou com sucesso.

5.4 Segurança

Numa fase inicial, serão controlados os acessos, tendo em conta os privilégios do utilizador (se for administrador terá mais privilégios que um utilizador “normal”).
Para efeitos de segurança, de forma a criar um sistema robusto e fiável, as passwords dos utilizadores serão encriptadas. Se um utilizador se esquecer da password, terá a possibilidade de redefinir a palavra-passe após a recepção do link para o efeito no endereço e-mail fornecido.
Um administrador poderá banir outros utilizadores, e para prevenir que um utilizador banido volte a infringir as regras, o IP desse utilizador será bloqueado e impedido de regressar ao website.

Ver página anterior: Arquitetura Física | Ver página seguinte: Protótipo