Document details

Projecto timecloud: software de gestão de tempo laboral numa plataforma cloud

Author(s): Neto, João Paulo Encarnação

Date: 2011

Persistent ID: http://hdl.handle.net/10400.21/1140

Origin: Repositório Científico do Instituto Politécnico de Lisboa

Subject(s): Software de gestão de tempo laboral; Aplicação cloud; Solução SaaS; Google app engine; Interface REST; Timesheets management software; Cloud application; SaS solution; REST interface


Description

O presente projecto tem como objectivo a disponibilização de uma plataforma de serviços para gestão e contabilização de tempo remunerável, através da marcação de horas de trabalho, férias e faltas (com ou sem justificação). Pretende-se a disponibilização de relatórios com base nesta informação e a possibilidade de análise automática dos dados, como por exemplo excesso de faltas e férias sobrepostas de trabalhadores. A ênfase do projecto está na disponibilização de uma arquitectura que facilite a inclusão destas funcionalidades. O projecto está implementado sobre a plataforma Google App Engine (i.e. GAE), de forma a disponibilizar uma solução sob o paradigma de Software as a Service, com garantia de disponibilidade e replicação de dados. A plataforma foi escolhida a partir da análise das principais plataformas cloud existentes: Google App Engine, Windows Azure e Amazon Web Services. Foram analisadas as características de cada plataforma, nomeadamente os modelos de programação, os modelos de dados disponibilizados, os serviços existentes e respectivos custos. A escolha da plataforma foi realizada com base nas suas características à data de iniciação do presente projecto. A solução está estruturada em camadas, com as seguintes componentes: interface da plataforma, lógica de negócio e lógica de acesso a dados. A interface disponibilizada está concebida com observação dos princípios arquitecturais REST, suportando dados nos formatos JSON e XML. A esta arquitectura base foi acrescentada uma componente de autorização, suportada em Spring-Security, sendo a autenticação delegada para os serviços Google Acounts. De forma a permitir o desacoplamento entre as várias camadas foi utilizado o padrão Dependency Injection. A utilização deste padrão reduz a dependência das tecnologias utilizadas nas diversas camadas. Foi implementado um protótipo, para a demonstração do trabalho realizado, que permite interagir com as funcionalidades do serviço implementadas, via pedidos AJAX. Neste protótipo tirou-se partido de várias bibliotecas javascript e padrões que simplificaram a sua realização, tal como o model-view-viewmodel através de data binding. Para dar suporte ao desenvolvimento do projecto foi adoptada uma abordagem de desenvolvimento ágil, baseada em Scrum, de forma a implementar os requisitos do sistema, expressos em user stories. De forma a garantir a qualidade da implementação do serviço foram realizados testes unitários, sendo também feita previamente a análise da funcionalidade e posteriormente produzida a documentação recorrendo a diagramas UML.

The project aims at providing a service platform for managing and accounting work hours, allowing workers to set their work time, vacations and absences . The system enables the production of work reports and the automatic analysis of the data, e.g. excessive absences oroverlapping vacations of workers. The emphasis is to provide an architecture that facilitates the inclusion of such functionalit ies . The project implementation targets Google App Engine (i.e. GAE) in order to provide a solution based on the Software as a Service paradigm, providing high availability and automatic data replication. The platform ’s choice resulted from the analysis of the current main cloud platforms: Google App Engine, Windows Azure and Amazon Web Services. The analysis considered the features of each platform, namely programming model, data model, provided services and costs. The result is a layered solution composed of the following modules : interface, business logicand data management. The platform’s interface is designed according to the REST architectural constraints, and supports JSON and XML format s. It also includes an authorization component, based on Spring-Security. Authentication is performed through Google Accounts. In order to increase decoupling, the solution resorts to the Dependency Injection design pattern, whichprovides technology independence at the different layers. It was also implemented a prototype to provide the current work’s proof of concept. The prototype issues AJAX requests to the platform services and its implementation is simplified by the use of several javascript libraries and design patterns, such as the model-view-viewmodel, used through a data binding mechanism. T he project development used a Scrum based agile approach, in order to implement the system requirements, which were expressed in user stories. Unit tests were produced in order to ensure the quality of the developed code, and UML was used to document and analyze the implemented functionalities.

Document Type Master thesis
Language Portuguese
Advisor(s) Pereira, Paulo Alexandre Leal Barros
Contributor(s) RCIPL
facebook logo  linkedin logo  twitter logo 
mendeley logo

Related documents

No related documents