80
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Sistema de Gestão de Recursos Móveis João Manuel Ferreira Gouveia Mestrado Integrado em Engenharia Informática e Computação Orientador: António Miguel Pontes Pimenta Monteiro 17 de Janeiro de 2011

Sistema de Gestão de Recursos Móveis · Resumo Cada vez mais, ... 4.1. Spring Framework 3.0 ... Figura 13 – Arquitectura da Spring MVC Framework 3.0

Embed Size (px)

Citation preview

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Sistema de Gestão de Recursos Móveis

João Manuel Ferreira Gouveia

Mestrado Integrado em Engenharia Informática e Computação

Orientador: António Miguel Pontes Pimenta Monteiro

17 de Janeiro de 2011

Sistema de Gestão de Recursos Móveis

João Manuel Ferreira Gouveia

Mestrado Integrado em Engenharia Informática e Computação

Aprovado em provas públicas pelo Júri:

Presidente: Ana Paula Rocha

Vogal Externo: Paulo Sousa (ISEP/IPP-DEI)

Orientador: António Miguel Pontes Pimenta Monteiro

____________________________________________________

9 de Fevereiro de 2011

i

Resumo

Cada vez mais, as tecnologias de mobilidade e os dispositivos móveis são a chave para

acelerar e optimizar processos e operações de negócio. Este facto torna as tecnologias de

mobilidade no próximo nível da infraestrutura das Tecnologias de Informação (TI) das

organizações. Em particular, a crescente área de «Gestão de Recursos Móveis» em tempo real,

do original Mobile Resource Management ou, simplesmente, MRM.

Esta Dissertação insere-se no contexto descrito, onde há uma necessidade de sistemas

integrados e escaláveis que permitam a monitorização e controlo das operações e aumentem a

eficiência operacional. Além disso, pretende-se acrescentar o suporte a indicadores de gestão

para Apoio à Decisão.

A Dissertação tem como objectivo principal a concepção e teste da arquitectura e

infraestrutura de uma solução empresarial capaz de responder aos requisitos esperados para uma

aplicação MRM num contexto empresarial, com adição de uma componente de Apoio à Decisão

e recorrendo apenas a tecnologias de Código Aberto.

A Dissertação demonstra uma solução empresarial inovadora capaz de gerir, em tempo

real, recursos móveis georreferenciados e que integra ainda uma componente de Apoio à

Decisão.

Trata-se de um trabalho extenso que resultou numa solução que reúne todas as vantagens

de uma arquitectura adequada a aplicações empresariais e as vantagens das mais adequadas e

avançadas tecnologias de Código Aberto.

ii

iii

Abstract

Increasingly, mobile technologies and mobile devices are the key to speed and streamline

business processes and operations. This makes mobile technologies the next level of enterprise

Information Technology (IT) infrastructure. In particular, there are reliable studies that point out

the growing area of Mobile Resource Management in real time.

This Dissertation is within the scope of MRM enterprise solutions, where the market

demands integrated and scalable solutions that enable the operation‟s monitoring and

operational efficiency. In addition, we intend to add support for management indicators

(Decision Support).

The Dissertation's main goal is to design and test an enterprise solution that meets the

expected requirements for a MRM application in a business context, integrating a Business

Intelligence component and using only Open Source technologies.

The Dissertation introduces an innovative enterprise solution capable of managing geo-

referenced mobile resources in real time, with an integrated Business Intelligence component.

This extensive Dissertation resulted in a solution that combines all the advantages of the

appropriate enterprise application architectures and the challenging State-of-the-Art Open

Source technologies.

iv

v

Agradecimentos

No momento de concluir esta Dissertação, não posso deixar de agradecer a todos os

Professores, colegas e amigos que me ensinaram, apoiaram e incentivaram ao longo de todos

estes anos de estudo e trabalho.

A todos os que contribuíram directamente ou indirectamente para a realização desta

Dissertação, manifesto a minha gratidão, com um especial agradecimento:

Ao Prof. Miguel Pimenta Monteiro, por todo o apoio e orientação da Dissertação;

Ao Eng.º Jorge Soares von Doellinger, pelo apoio e amizade sempre demonstrado;

À Capgemini Portugal, pelas condições necessárias ao desenvolvimento da Dissertação;

A todos os colegas e amigos da unidade de Technology Services, da Capgemini Portugal,

por toda a amizade e incentivo;

Aos meus familiares, pela compreensão que têm demonstrado ao apoiarem e incentivarem

a minha dedicação e empenho.

vi

vii

Conteúdo

Resumo ................................................................................................................................ i

Abstract ............................................................................................................................ iii

Agradecimentos ..................................................................................................................v

Lista de Figuras ................................................................................................................ xi

Notação ........................................................................................................................... xiii

Acrónimos e abreviaturas utilizadas: ............................................................................ xiii

Capítulo 1

Introdução ..........................................................................................................................1

1.1. Enquadramento .....................................................................................................1

1.1.1. Mobile Resource Management .....................................................................1

1.1.2. Business Intelligence ....................................................................................2

1.2. Descrição da Dissertação ......................................................................................2

1.3. Objectivos e Resultados Esperados.......................................................................2

1.4. Organização do Documento..................................................................................2

Capítulo 2

Estado da Arte ....................................................................................................................3

2.1. Avaliação do Mercado ..........................................................................................3

2.1.1. Segmentação Actual .....................................................................................3

2.1.2. Caracterização do Mercado Alvo ..................................................................4

2.2. Ambiente da Industria ..........................................................................................4

2.2.1. Tendências e Previsões do Mercado .............................................................4

2.2.2. Atractividade do Mercado.............................................................................5

2.2.3. Análise SWOT..................................................................................................6

2.3. Soluções de Mobilidade Empresarial ....................................................................7

2.4. Plataformas de Desenvolvimento de Aplicações Móveis......................................8

2.5. Soluções no Mercado............................................................................................8

2.6. Aspectos Inovadores ........................................................................................... 10

Capítulo 3

Arquitectura do Sistema .................................................................................................. 13

viii

3.1. Visão Geral ......................................................................................................... 13

3.2. Análise Funcional do Sistema ............................................................................. 14

3.2.1. Definições ................................................................................................... 14

3.2.2. Actores........................................................................................................ 16

3.2.3. User Stories ................................................................................................ 17

3.2.4. Fluxo de Dados ........................................................................................... 17

3.3. Arquitectura Física ............................................................................................. 18

3.4. Arquitectura do Software .................................................................................... 20

3.4.1. Modelo da Arquitectura .............................................................................. 20

3.4.2. Descrição da Arquitectura........................................................................... 21

3.5. Tecnologias e Arquitectura ................................................................................. 22

Capítulo 4

Frameworks de Desenvolvimento ................................................................................... 25

4.1. Spring Framework 3.0 ........................................................................................ 25

4.1.1. Arquitectura ................................................................................................ 25

4.1.2. Tecnologias................................................................................................. 27

4.1.3. Estratégias de Desenvolvimento ................................................................. 30

4.2. Liferay Portal 6.0 ................................................................................................ 32

4.2.1. Arquitectura ................................................................................................ 33

4.2.2. Tecnologias................................................................................................. 33

4.2.3. Estratégias de Desenvolvimento ................................................................. 34

4.3. Pentaho BI Platform 3.6 ..................................................................................... 35

4.3.1. BI Platform e Arquitectura.......................................................................... 35

4.3.2. Reporting .................................................................................................... 37

4.3.3. Data Integration .......................................................................................... 37

4.3.4. Analysis Services ........................................................................................ 37

4.3.5. Data Mining ................................................................................................ 37

Capítulo 5

Desenvolvimento e Implementação ................................................................................. 39

5.1. Infraestrutura e Ambiente de Desenvolvimento .................................................. 39

5.1.1. Servidor MySQL 5.1 .................................................................................. 39

5.1.2. MySQL Workbench 5.2 .............................................................................. 40

5.1.3. SpringSource Tool Suite 2.3.2 .................................................................... 41

5.1.4. Servidor Liferay Portal 6.0 ......................................................................... 42

5.1.5. Servidor Pentaho 3.6 ................................................................................... 43

5.2. Especificação da Implementação ........................................................................ 44

5.2.1. Método de Desenvolvimento ...................................................................... 44

5.2.2. Visão Geral ................................................................................................. 45

5.2.3. Base de Dados ............................................................................................ 47

ix

5.2.4. Spring Portlets ............................................................................................ 49

5.2.5. Portal Liferay .............................................................................................. 52

5.2.6. Pentaho - Business Intelligence .................................................................. 53

5.3. Resultados Alcançados ....................................................................................... 53

Capítulo 6

Conclusões e Trabalho Futuro ........................................................................................ 57

Referências ....................................................................................................................... 59

CONTEÚDO

x

xi

Lista de Figuras

Figura 1 – Evolução das Iniciativas de Mobilidade (Aberdeen Group, 2009) ........................................... 5 Figura 2 – Diagrama de Porter: Principais Influências no Mercado de Soluções de Mobilidade .............. 6 Figura 3 – Análise SWOT da Solução MRM .............................................................................................. 7 Figura 4 – Diagrama UML do Modelo Funcional .................................................................................... 14 Figura 5 – Exemplo de um Portal com Portlets ...................................................................................... 15 Figura 6 – Exemplo de um Dashboard.................................................................................................... 16 Figura 7 - Diagrama do Fluxo de Dados da Aplicação............................................................................. 18 Figura 8 - Diagrama da Arquitectura Física ............................................................................................ 19 Figura 9 - Modelo da Arquitectura Model-View-Controller (Oracle, 2010) ............................................ 21 Figura 10 – Arquitectura de Software da Aplicação (MVC) .................................................................... 22 Figura 11 – Tecnologias da Arquitectura do Software ........................................................................... 23 Figura 12 – Tecnologias e Linguagens Envolvidas nas Respectivas Camadas da Aplicação .................... 24 Figura 13 – Arquitectura da Spring MVC Framework 3.0 ....................................................................... 26 Figura 14 – Diagrama de Funcionamento do DispatcherServlet da Spring MVC .................................... 31 Figura 15 – Diagrama de Sequência do Processo de Funcionamento de Portlets .................................. 32 Figura 16 – Arquitectura do Liferay Portal ............................................................................................. 33 Figura 17 – Organização das Ferramentas da Pentaho BI Suite CE ........................................................ 35 Figura 18 – Arquitectura do Pentaho BI Platform (Pentaho Community, 2008) .................................... 36 Figura 19 – Exemplo do Interface Gráfico do MySQL Workbench .......................................................... 40 Figura 20 – Interface da SpringSource Tools Suite ................................................................................. 41 Figura 21 – Funcionalidades Instaladas no IDE da SpringSource Tool Suite ........................................... 42 Figura 22 – Página Inicial do Portal Liferay ............................................................................................ 43 Figura 23 – Página Inicial do Servidor da Plataforma Pentaho BI .......................................................... 44 Figura 24 – Modelo da Aplicação Web ................................................................................................... 45 Figura 25 – Arquitectura Geral da Implementação da Solução .............................................................. 46 Figura 26 – Modelo Relacional UML da Base de Dados OLPT ................................................................ 47 Figura 27 – Modelo e Funcionamento da Aplicação Web ...................................................................... 50 Figura 28 – Organização do Projecto no IDE .......................................................................................... 51 Figura 29 – Estrutura da Aplicação Web ................................................................................................ 52 Figura 30 – Demonstração do Portal e do Portlet Spring da Aplicação MRM ........................................ 55 Figura 31 – Demonstração do Tema do Portal Liferay para Smartphone ............................................... 55 Figura 32 – Demonstração de Painel de Indicadores Pentaho no Liferay .............................................. 56

LISTA DE FIGURAS

xii

xiii

Notação

a) O método de primeiro elemento e data do ISO 690 é o standard internacional

usado neste documento para especificar os elementos incluídos nas referências

bibliográficas;

b) «Nomenclatura adaptada» - identifica a nomenclatura adaptada ou traduzida de

nomes, termos, disciplinas, conceitos, etc. de língua estrangeira;

c) http://link/ - os endereços e ligações Web são apresentados em itálico;

d) Código de programação ou Directórios - o código ou nomes de programação,

os caminhos de directórios ou nomes de directórios são apresentados com o tipo de

letra Consolas (tamanho 10);

Acrónimos e abreviaturas utilizadas:

AOP – Aspect-Oriented Programming

API – Application Program Interface

CRM – Costumer Relationship Management

ERP – Enterprise Resource Planning

ETL – Extraction, Transformation and Loading

GIS – Geographic Information System

IDE – Integrated Development Environment

JSP – JavaServer Pages

OLAP – On-line Analytic Processing

OOP – Object-Oriented Programming

PDA – Personal Digital Assitant

RAM – Random Access Memory

SDK – Software Development Kit

TI – Tecnologias de Informação

URL – Uniform Resource Locator

NOTAÇÃO

xiv

1

Capítulo 1

Introdução

Este documento é elaborado no âmbito da Dissertação do Mestrado Integrado em

Engenharia Informática e Computação, da Faculdade de Engenharia da Universidade do Porto.

Esta introdução ao Dissertação inclui o seu enquadramento, a descrição do âmbito, os

objectivos e a organização do documento.

1.1. Enquadramento

As Tecnologias de Informação (TI) são uma imposição para as organizações que

pretendem competir no mercado. Se inicialmente, o papel das TI era essencialmente a

automatização dos processos operacionais das organizações, esse papel tem evoluído

consideravelmente. (Santos, et al., 2009) Neste momento, as TI, além do suporte aos processos

operacionais, permitem aumentar o conhecimento das organizações: sobre si própria; sobre as

entidades externas e sobre a sua capacidade de influência no mercado. (Santos, et al., 2009)

Actualmente, vários indicadores de mercado apontam para as tecnologias de mobilidade

como o próximo nível de infraestrutura das TI que suportam as organizações. A corroborar,

existem estudos de referência que indicam a importância e a tendência das tecnologias de

monitorização, navegação e dos dispositivos móveis nas organizações. Ainda, os indicadores

dos mesmos, apontam para um aumento considerável no investimento e na competição por

serviços baseados na localização. Tudo isto faz crer que a actual área em grande crescimento

das organizações é a área da gestão de recursos móveis em tempo real, o Mobile Resource

Management. (Intergraph Corporation, 2005)

Da mesma forma, o êxito das empresas depende de sistemas que apoiem a tomada de

decisão com base no conhecimento das empresas, através da informação obtida das TI. Onde

esse conhecimento é obtido através de processos e/ou tarefas de Business Intelligence.

Nesta Dissertação o conceito de Mobile Resource Management e de Business Intelligence

entendem-se da forma enunciada a seguir, no âmbito do mesmo.

1.1.1. Mobile Resource Management

O Mobile Resource Management (ou MRM) é definido como a capacidade de monitorizar

o progresso de recursos móveis em tempo real, com o objectivo de atribuir a tarefa correcta ao

recurso correcto, com o equipamento adequado, numa localização precisa, na hora certa.

(Intergraph Corporation, 2005)

Introdução

2

Um sistema MRM deverá saber onde estão os seus recursos móveis, onde eles estiveram e

onde eles devem estar, de forma a gerir eficazmente o volume de trabalho e a melhorar a

resposta dos recursos em função das exigências. (Intergraph Corporation, 2005)

1.1.2. Business Intelligence

O termo Business Intelligence (ou BI) tem sido adoptado para substituir a designação de

Sistemas de Suporte à Decisão. (Ramos, et al., 2009)

Os sistemas de BI dispõem de um conjunto de ferramentas analíticas para extracção de

informação relevante, a partir de dados armazenados. Estes sistemas melhoram a

disponibilidade e a qualidade da informação para a tomada de decisão. (Ramos, et al., 2009)

1.2. Descrição da Dissertação

Esta Dissertação consiste na concepção e teste de uma solução de MRM empresarial,

principalmente em termos da sua arquitectura e infraestrutura, para a gestão de tarefas e

colaboradores em tempo real capaz de incluir a monitorização dos colaboradores com recurso à

georreferenciação, a par da troca de informação técnica associada a um cenário empresarial.

Ainda, a aplicação deve permitir a modularização dos dados obtidos para uma vertente de

Business Intelligence.

A Dissertação foi proposta pela Capgemini Portugal, Serviços de Consultadoria e

Informática, S.A. e desenvolvido em Lisboa, nas suas instalações.

1.3. Objectivos e Resultados Esperados

Concepção de uma aplicação empresarial capaz de responder aos requisitos e

funcionalidades descritos no ponto 1.1;

Recorrer exclusivamente a tecnologias de Código Aberto;

Estudar diferentes tecnologias capazes de integrar uma solução;

Provar a capacidade e a interoperabilidade das tecnologias de Código Aberto

escolhidas para a solução.

1.4. Organização do Documento

Para além da introdução, esta dissertação contém mais 5 capítulos. No capítulo 2, é

descrito o estado da arte onde, além do enquadramento no mercado, é feita a análise das

soluções no mercado e dos aspectos inovadores desta Dissertação. No capítulo 3, é descrita a

arquitectura do sistema que incluí a análise funcional e a apresentação das tecnologias por cada

camada da arquitectura. No capítulo 4, é apresentado o estudo das frameworks de

desenvolvimento. No capítulo 5, é descrito o ambiente de desenvolvimento, a sua configuração

e as especificações e opções da implementação. No capítulo 6, é feita a discussão do trabalho

desenvolvido e apresentação do trabalho futuro.

3

Capítulo 2

Estado da Arte

Este estudo do Estado da Arte tem como objectivo principal identificar as últimas soluções

e tecnologias utilizadas para implementar soluções de mobilidade empresarial.

Para uma melhor percepção do Estado da Arte, e em primeiro lugar, é necessário definir o

enquadramento da aplicação. Assim, na secção 2.1, é analisado o Mercado Actual e é definido o

Mercado Alvo da aplicação.

Nas secções 2.2 e 2.3, é apresentado o ambiente de competição onde se insere a aplicação

MRM, as oportunidades e a análise do grau de interesse deste tipo de aplicações.

Nas secções 2.4 e 2.5, são definidas as características gerais que uma solução de

mobilidade empresarial deve ter e as plataformas que podem suportar aplicações do tipo.

Por fim, nas duas últimas secções, são identificadas as soluções apresentadas pelas

principais empresas do ramo, entre outras existentes no mercado, e identificados os aspectos

inovadores que se pretenderam incluir nesta Dissertação.

2.1. Avaliação do Mercado

Esta avaliação do Mercado é feita com o estudo da sua segmentação actual do tecido

empresarial português e a caracterização do Mercado Alvo.

2.1.1. Segmentação Actual

Na estrutura empresarial portuguesa as PME representam 99,6% das unidades empresariais

criando cerca de 3/4 dos empregos privados e realizam mais de metade dos negócios em

Portugal. (IAPMEI, 2008)

Dentro desta classe dimensional encontram-se empresas dos mais diversos sectores de

mercado com necessidades distintas. Deste mercado pretende-se identificar um segmento

essencialmente caracterizado pela necessidade de gestão de recursos móveis. Assim, com base

nos sectores de mercado existentes (Ministério da Ecónomia e da Inovação), destacam-se os

sectores de Comércio e Distribuição, Serviços e Transportes.

Se observarmos o retrato sectorial do país, as perspectivas de atractividade deste segmento

são animadoras. Só os sectores de Comércio e Serviços representam cerca de 3/4 das unidades

empresariais em actividade, geram mais de metade dos empregos privados em Portugal e

aproximadamente 2/3 dos negócios do país. Em particular, o sector de Serviços gerava em 2005

mais de 1/4 dos empregos privados, sendo o principal sector empregador em Portugal. Sendo

também, este último, o sector que mais cresceu em Portugal entre os anos 2000 e 2005.

(IAPMEI, 2008) Representando em 2009, 3/4 do Valor acrescentado bruto e 60,5% do emprego.

Estado da Arte

4

(AICEP , 2010) Em suma, os sectores económicos que mais crescem e com maiores

perspectivas de crescimento são os que constituem o segmento de mercado identificado.

A identificação da necessidade de soluções MRM à medida para um segmento de mercado

crescente e desta dimensão, justifica a necessidade da solução que se pretende desenvolver.

2.1.2. Caracterização do Mercado Alvo

Dos sectores de Comércio e Distribuição, Serviços e Transportes, pretende-se desenvolver

uma solução para pequenas e médias empresas que sigam as tendências da evolução da

mobilidade empresarial, que necessitem de gerir tarefas e mobilidade de colaboradores em

tempo-real de forma optimizada, independentemente do grau de informatização da sua

actividade. Contudo, pode-se ainda enquadrar serviços ligados ao sector público.

Assim, o mercado alvo caracteriza-se pelas seguintes necessidades:

Gestão de mobilidade de colaboradores em tempo-real;

Gestão de tarefas em função, ou não, do posicionamento geográfico dos colaboradores

em tempo-real;

Monitorização do posicionamento de colaboradores;

Processos de gestão optimizados;

Análise da eficácia da gestão de colaboradores e tarefas optimizada;

Análise da eficiência e eficácia de colaboradores;

Baixos custos de aquisição e implementação de soluções integradas;

Soluções integradas capazes e preparadas para acompanhar a evolução das tecnologias

com baixos custos.

No Sector do Comércio e Distribuição e no Sector de Serviços serão essencialmente

grossistas dos mais variados ramos (retalho e bens de consumo, tabaco, informática, gás, pneus,

etc.) ou empresas de comércio com serviço de distribuição/entrega e empresas prestadoras de

serviços ao domicílio (reparações, assistência técnica, instalação de equipamentos, limpeza,

etc.).

2.2. Ambiente da Industria

Nesta secção é focado o ambiente empresarial onde se insere a Dissertação.

2.2.1. Tendências e Previsões do Mercado

O sector das organizações de TI pode ser afectado, essencialmente, por tendências

económicas e tecnológicas.

Poderia esperar-se que as empresas, face à corrente crise económica, apresentassem uma

redução no orçamento nos seus planos de mobilidade. Mas, pelo contrário, as empresas

mantiveram-se fiéis aos seus planos de mobilidade ou tornaram os planos ainda mais

ambiciosos. Segundo pesquisas feitas por empresas independentes, a mobilidade empresarial é o

futuro mais previsível e torna-se cada vez mais uma vantagem competitiva no panorama do

mercado actual. (E-Commerce Times, 2009)

Os dados indicam que as empresas com mais sucesso no seu plano de mobilidade

conseguiram até 40% mais de produtividade nos colaboradores, 35% na satisfação dos clientes

e, inclusive, 25% na retenção de empregos. Agilidade, flexibilidade e velocidade de resposta,

são benefícios que qualquer organização que compita no mercado quer atingir. (E-Commerce

Times, 2009)

Contudo, apesar do elevado interesse nestes benefícios, há sempre um esforço contínuo

para redução de custos nos seus planos, o que resulta, por exemplo, em reduzir o orçamento

para dispositivos (cada vez mais evoluídos e dispendiosos) e, consequentemente, recorrer a

Estado da Arte

5

dispositivos pessoais dos próprios colaboradores para trabalho. Esta estratégia faz com que os

dispositivos, actores do sistema, não sejam normalizados e haja uma migração dos serviços de

manutenção internos para serviços outsource. (E-Commerce Times, 2009) Consequentemente,

esta estratégia de poupança, levanta questões de segurança, risco e responsabilidade para as

empresas.

A constante evolução tecnológica, por um lado, obriga as empresas a adoptar estratégias

que aumentam os custos de adaptação dos seus sistemas, os custos com dispositivos roubados

ou por intrusão. São estratégias que, além de atingirem a contabilidade, podem levantar questões

de legitimidade. Por outro lado, a evolução responde com soluções que minimizam estas

desvantagens, como protocolos eficazes na segurança da rede, VPN e encriptação de dados on-

device. (E-Commerce Times, 2009) Assim, para atenuar os riscos da constante evolução e

crescimento das TI, as empresas de maior sucesso exigem aos seus empregados o cumprimento

das normas de segurança, autenticação e acesso.

Esta análise das tendências e previsões de mercado é baseada no estudo “More Mobility –

Less Budget: The 2009 Enterprise Mobility Benchmark” (Aberdeen Group, 2009) pela

Aberdeen Group e é, na sua essência, corroborada pelo estudo mais recente “Enterprise

Mobility Strategies 2010” (Aberdeen Group, Dezembro 2009) realizado pela mesma empresa.

2.2.2. Atractividade do Mercado

Ainda no estudo “More Mobility – Less Budget: The 2009 Enterprise Mobility

Benchmark” (Aberdeen Group, 2009) da Aberdeen Group, foi apresentado o resultado de um

inquérito ilustrativo da atractividade do mercado de soluções de mobilidade empresariais. Nesse

inquérito, foi verificado um aumento de 42%, em relação ao inquérito anterior, nos inquiridos

que responderam que têm iniciativas de mobilidade em curso e uma descida de 93% nos que

responderam que não tinham nenhuma iniciativa do tipo (Figura 1). (E-Commerce Times, 2009)

Figura 1 – Evolução das Iniciativas de Mobilidade (Aberdeen Group, 2009)

Neste ponto, também é importante analisar o contexto do mercado das soluções de

mobilidade. Assim, com uma Análise de Porter pretende-se perceber quanto o contexto pode

afectar a atractividade deste mercado.

Poder negocial dos fornecedores: no ramo das TI pode existir alguma pressão dos

fornecedores de hardware ou dispositivos necessários à implementação das soluções de

mobilidade, depende da existência de restrições impostas ao nível das plataformas a utilizar.

Ainda derivado dessas restrições, existe ainda o factor das empresas fornecedoras de software

licenciado a integrar numa solução de mobilidade.

Estado da Arte

6

Poder negocial dos clientes: na conjuntura actual os clientes podem estar sensíveis ao

preço da implementação de TI. Influência da dimensão do cliente e da solução a implementar.

Por outro lado, existe um número considerável potenciais clientes no mercado e a necessidade

soluções de mobilidade é cada vez maior.

Ameaça de substitutos: empresas com menor fundo de maneio podem optar por

aplicações normalizadas para colmatar apenas as suas necessidades básicas de mobilidade.

Contudo, as empresas com iniciativas de mobilidade em curso, dificilmente mudarão o seu

plano pois, os custos associados à mudança deste tipo de soluções são muito elevados.

Ameaça de novas entradas: as necessidades de investimento e o capital vultuoso para o

arranque de uma actividade neste ramo são, talvez, a principal barreira à entrada de novos

substitutos. Os clientes fidelizam-se às actuais empresas competidoras por preferência ou por

diferenciação das soluções e o respectivo suporte.

Rivalidade entre concorrentes: No mercado global, não existe nenhuma empresa

dominante. Contudo, a rivalidade é atenuada pela dimensão do mercado que é muito grande e

pela diferenciação das soluções de mobilidade entre as empresas competidoras.

Em baixo, na Figura 2, é possível observar o respectivo diagrama de Porter.

Figura 2 – Diagrama de Porter: Principais Influências no Mercado de Soluções de Mobilidade

2.2.3. Análise SWOT

Assumindo a total capacidade interna para a execução do projecto, podemos concluir a

Análise dos Sectores de Negócio com a Análise SWOT da solução MRM estudada e

desenvolvida.

Pontos Fortes

Recurso a apenas tecnologias de Código Aberto normalizadas;

Baixo custo;

Independência da tecnologia de Base de Dados;

Estado da Arte

7

Inclusão de uma componente de Apoio à Decisão na solução, através de uma

plataforma e ferramentas de Business Intelligence.

Pontos Fracos

Não é uma solução integrada para uma cadeia de negócio completa;

Os serviços disponibilizados na solução podem ser considerados limitados (ex.:

não tem serviços do tipo Context-aware).

Oportunidades

Crescimento do mercado de aplicações de mobilidade empresarial;

Identificação de um Mercado Alvo com défice de soluções à medida.

Ameaças

Adopção da mesma estratégia e das mesmas tecnologias por parte da concorrência;

Empresas de menor dimensão que ofereçam soluções com custos ainda mais

reduzidos;

Soluções de custos reduzidos em detrimento da qualidade e fiabilidade.

Em baixo, na Figura 3, é possível observar a matriz da análise SWOT apresentada.

Figura 3 – Análise SWOT da Solução MRM

2.3. Soluções de Mobilidade Empresarial

As soluções de mobilidade empresarial podem integrar plataformas de colaboração móvel

ou simples serviços de informação contextualizada, permitem comunicação por vídeo, voz e

texto.

Na sua generalidade, as soluções de mobilidade fazem a captura, tratamento e visualização

de informação contextual de processos de negócio em tempo real. Esta informação

contextualizada pode ser, por exemplo, a localização de um bem móvel, o seu estado (ex.: em

movimento ou não), as suas condições de conservação (ex.: temperatura e pressão) ou a

localização de uma pessoa e respectiva disponibilidade.

Assim, com as actuais tecnologias é possível implementar aplicações de mobilidade

empresarial que permitem responder aos mais variados tipos de necessidades, tais como:

Estado da Arte

8

Inserção e actualização de informação no imediato - Sincronização;

Suporte à decisão em tempo real;

Georreferenciação;

Planeamento e escalonamento de actividades;

Optimização de actividades;

Inventariação de bens através de sistemas de código de barras/RFID no terreno;

Facturação on-site;

Integração em soluções empresariais;

Gestão e auditoria completas;

Segurança.

2.4. Plataformas de Desenvolvimento de Aplicações Móveis

Existem várias plataformas para o desenvolvimento de aplicações de mobilidade. Contudo,

a escolha da plataforma de desenvolvimento deve ser bem decidida de acordo com a

especificação da implementação ou com a predominância no mercado ou ainda com base numa

aposta na tendência do mercado. Por norma, as plataformas não são compatíveis entre si e cada

dispositivo móvel apenas suporta uma plataforma específica, com a possível excepção do Java

ME.

As principais plataformas que suportam dispositivos de diferentes fabricantes são:

Java ME;

Symbian;

Android;

.NET Compact Framework;

Windows Mobile e Windows Phone;

Palm OS.

Destinadas apenas a um fabricante, existem as plataformas BlackBerry, iPhone OS (iOS) e,

mais recentemente, a Samsung Bada e Nokia MeeGo, uma evolução do Nokia Maemo.

2.5. Soluções no Mercado

Todas as grandes empresas de Consultadoria e/ou de Tecnologias de Informação, com

mais ou menos ênfase, apresentam soluções de mobilidade para responder às diferentes

necessidades empresariais.

De seguida, são apresentadas as características das soluções de mobilidade empresarial

apresentadas por algumas das maiores empresas do ramo: HP, IBM & Cisco, CSC e Accenture.

Depois, serão apresentadas as soluções das empresas encontradas no mercado português, Sinfic

e Geoglobal, que apresentam, com mais detalhe, soluções muito próximas da solução que se

pretende desenvolver.

HP A HP apresenta a capacidade de desenvolver soluções móveis optimizadas para os

diferentes tipos de dispositivos móveis (PDA, smartphone, etc.). Esta oferta pode também ser

completada com recurso a Sistemas de Informação Geográfica (GIS). Assim, a HP apresenta

soluções capacitadas de tecnologias de identificação automática, incluindo código de barras,

imagens, RFID e serviços baseados em localização, tais como GPS e sistemas de localização em

tempo real. (HP, 2010)

Estas tecnologias são usadas tipicamente para aplicações de Acompanhamento e Gestão,

Gestão de cadeias de fornecimento, Logística, Gestão de Processos e Segurança. (HP, 2010)

Estado da Arte

9

IBM & Cisco A IBM e a Cisco formaram uma aliança com o objectivo de integrar os seus processos de

negócio, conhecimento da indústria, tecnologias de informação e trabalho em rede. (Cisco,

2010)

Esta aliança, sem referência a um produto concreto ou solução com um fim específico,

apresenta a capacidade de desenvolver soluções de mobilidade empresarial com base em três

componentes: serviços Mobility User, Motion Network e Borderless Access. (Cisco, 2010)

Pretendem assim que as suas soluções de mobilidade permitam a captura e integração

dinâmica de informação contextual em processos de negócio em tempo real. (Cisco, 2010) Com

base nas tecnologias associadas aos componentes Mobility User e Borderless Access (Wi-Fi,

VPN, Voip, Cloud-based services, etc.), a ideia consiste em permitir os colaboradores e clientes

comunicarem e partilharem dados entre si de forma segura, independentemente da sua

localização, dispositivo ou aplicação/plataforma a usar. Ainda, as tecnologias envolvidas na

componente Motion Network permitem, essencialmente, serviços de Localização Context-

aware. (Cisco, 2010) Estes serviços recorrem às tecnologias da rede para localizar os

dispositivos móveis e dinamizar essa informação com informação contextualizada através de

Presence Applications. Com base neste serviço, é possível actualizar e saber o estado de um

colaborador em tempo real com base na sua localização e as regras definidas pelo utilizador. Por

exemplo, se um colaborador saiu da cafetaria para ir para uma reunião, ao entrar na sala de

reuniões o estado do colaborador no seu dispositivo passará para ocupado de acordo com o seu

contexto (ex.: reunião) e o seu dispositivo será automaticamente configurado para modo

silencioso. Consequentemente, na tentativa de comunicação com este colaborador, visto que

este está ocupado (em reunião), o sistema poderá permitir, no contexto, reencaminhar a

chamada para um colaborador alternativo que esteja disponível. (Cisco, 2010)

CSC A CSC apresenta a solução Mobile Enterprise como um sistema modular e completo com

o objectivo de facilitar a adaptação das soluções de mobilidade às diferentes indústrias e

respectivas necessidades. O seu sistema pretende integrar aplicações empresariais (incluindo

integração com sistemas ERP, CRM, etc.) e de produtividade de acordo com os papéis nas

empresas. Assim, o sistema está diferenciado em duas partes: Mobile Worker e Mobile

Executive. (CSC, 2010)

A solução Mobile Worker não é dependente de uma única plataforma, é compatível com

diversos tipos de dispositivos móveis: PDA, BlackBerry, Notebook, etc. A solução pode

também recorrer aos mais diversos dispositivos de acordo com necessidades específicas: RFID,

leitura de Código de Barras, GPS, GIS, vídeo e voz. O que possibilita desenvolver diferentes

soluções industriais: gestão de armazéns, gestão de turnos e inspecções, monitorização e gestão

de tarefas e recursos, gestão de workflows, serviços de pontos de entrega com ordens de compra

e/ou venda, etc. (CSC, 2010)

Com foco nas necessidades de gestores de negócio em constante movimento, a CSC

apresenta a solução Mobile Executive que fornece serviços baseados nas necessidades de

trabalho remoto. Tal como a solução anterior, é compatível com diversos dispositivos móveis.

Através dos quais dispõe de diversas funcionalidades, tais como: ferramentas de gestão de

informação pessoal (email, calendário, tarefas, etc.), assim como acesso a uma plataforma que

possibilita o acesso a aplicações empresariais (ERP, CRM, etc.). (CSC, 2010)

Accenture A Accenture como empresa de tecnologias de informação, consultadoria e outsourcing

oferece soluções móveis e todo um conjunto de serviços de apoio de forma a maximizar a sua

implementação, o seu uso e a sua aceitação no contexto empresarial. Dispõe também de um

Innovation Center for Open Source, significado da crescente importância das tecnologias Open

Source.

As soluções da Accenture são apresentadas de uma forma genérica, sem identificar

aplicações, funcionalidades ou recursos específicos. Apresenta as soluções sob a forma de

serviços e as ferramentas de desenvolvimento de aplicações móveis. Assim, Accenture pretende

Estado da Arte

10

desenvolver aplicações móveis inovadoras e à medida começando, em primeiro lugar, por uma

estratégia de mobilidade empresarial (Mobile Enterprise Strategy). Depois, para reduzir a

complexidade, o custo e o tempo de desenvolvimento associado com o desenvolvimento deste

tipo de soluções, apresenta uma Framework de arquitectura para aplicações Windows Mobile

com suporte para múltiplos utilizadores (Avanade Connected Arquitecture) e uma ferramenta

para iPhone de gestão de aplicações móveis e integração com armazéns de dados (Enterprise

iPhone Toolbox). (Accenture, 2010) As restantes soluções apresentadas são serviços através de

plataformas da Accenture ou serviços hospedados na Accenture que se desviam bastante do tipo

de solução que se pretende desenvolver. (Accenture, 2010)

Das tecnologias utilizadas para o desenvolvimento das soluções empresariais, a Accenture

apresenta ainda soluções baseadas em Open Source Software (OSS), mostra o crescente

interesse da adopção por parte de organizações de Tecnologias de Informação e destaca a

vantagem de baixos custos de licenciamento e manutenção. (Accenture, 2010) Através do

Accenture Innovation Center for Open Source, a Accenture pretende criar a possibilidade dos

seus clientes comprovarem funcionamento de soluções Open Source em ambientes simulados,

avaliados e testados pelo Centro. (Accenture, 2010) Assim, a Accenture definiu arquitecturas

comprovadas que contêm tecnologias Open Source para as áreas que mais podem beneficiar:

arquitecturas do tipo Service-oriented (SOA), Server virtualization, Portais Web, Gestão de

conteúdos e dados, Business Intelligence (BI) e Aplicações Web. (Accenture, 2010)

Sinfic A Sinfic apresenta soluções de mobilidade integradas e automatizadas, com tratamento de

informação em tempo real. A sua oferta pretende assegurar a optimização de todo o processo de

uma cadeia de valor de uma organização, desde a produção e armazenamento, até à venda e

distribuição. (Sinfic, 2010)

Próximo da solução MRM que se pretende desenvolver, apresentam sistemas de gestão e

optimização de rotas, consumos e posicionamento, gestão de tarefas (definindo perfis de

clientes, perfis de técnicos, prioridades, etc.), gestão de stocks globais e individuais e gestão de

mensagens. (Sinfic, 2010)

Geoglobal A Geoglobal apresenta nos seus serviços o GeoMob, uma solução de gestão e controlo de

bens e recursos móveis. (Geoglobal, 2010) A solução destina-se essencialmente à logística.

Permite o rastreio de todas as encomendas a entregar, integrando em tempo real toda a

informação das operações de distribuição. (Geoglobal, 2008)

A solução GeoMob recorre a tecnologias de comunicação GPRS e Wi-fi associadas a

tecnologias de GPS para localização e monitorização de frotas. Utiliza ainda a leitura de códigos

de barras e RFID para identificação de operações, objectos, intervenientes e locais. (Geoglobal,

2008)

2.6. Aspectos Inovadores

Face ao Estado da Arte, os aspectos inovadores e de diferenciação da solução especificada

e implementada incluem os seguintes:

Tecnologia – o recurso exclusivo a tecnologias de Código Aberto normalizadas permite

desenvolver soluções aplicacionais estáveis e modulares, disponíveis para diferentes áreas de

negócio e acessíveis a pequenas e médias empresas.

Simplicidade – a solução pretende optimizar as operações empresariais em tempo real de

forma simples e escalável. Ao se eliminar as funcionalidades pesadas das soluções comuns

pretende-se explorar um Mercado Alvo bem definido. Além disso, pretende-se adoptar uma

comunicação entre Front Office e Back Office eficiente que, em conjunto com as tecnologias, irá

optimizar os custos de operação sem prejudicar a optimização das operações.

Estado da Arte

11

Reforço da decisão – integração de uma forte componente de Business Intelligence que irá

permitir a análise dos dados gerados pelo sistema, com todas as potencialidades associadas.

Dadas as soluções presentes no mercado, o tipo e o Mercado Alvo da solução que se pretende

desenvolver, a integração e inclusão deste módulo torna-a, sem dúvida, uma solução/aplicação

inovadora.

Estado da Arte

12

13

Capítulo 3

Arquitectura do Sistema

A Arquitectura do Sistema é o modelo conceptual que define a estrutura, comportamento e

a funcionalidade do sistema.

Este capítulo inicia-se com a Visão Geral do sistema onde é apresentada uma divisão

lógica do mesmo. De seguida, é apresentada a Análise Funcional do Sistema, onde são

identificadas as suas funcionalidades e comportamento.

Na secção 3.3, são identificados os componentes físicos que podem suportar o sistema.

Na secção 3.4, é apresentado o modelo da arquitectura de software utilizada e só depois a

representação da arquitectura solução baseada no modelo apresentado.

Este capítulo termina com a identificação das tecnologias e o seu enquadramento na

arquitectura de software apresentada.

3.1. Visão Geral

O desenvolvimento do sistema é dividido em 4 módulos funcionais:

Back Office – Módulo de gestão de tarefas e colaboradores: responsável pelo

(re)planeamento e (re)escalonamento de tarefas;

Front Office – Módulo da interacção dos colaboradores com o sistema: comunicação

e troca de dados do negócio em tempo real;

BI – Módulo de extracção e transformação de dados da componente de Apoio à

Decisão (Business Intelligence);

Administração – Módulo de gestão e administração de utilizadores e configuração do

sistema.

O respectivo diagrama UML do Modelo Funcional apresenta-se na Figura 4 (incluindo as

suas dependências). No modelo apresentado, o Front Office depende da actividade do módulo

de Back Office. O módulo da Administração opera através do módulo de Back Office. O módulo

de BI opera sobre os dados recolhidos no Back Office.

Arquitectura do Sistema

14

Figura 4 – Diagrama UML do Modelo Funcional

3.2. Análise Funcional do Sistema

A Análise Funcional descreve o comportamento do sistema através da definição das suas

funções e especificação dos componentes da aplicação.

3.2.1. Definições

Antes de se iniciar a Análise Funcional é necessário definir conceitos importantes para a

correcta compreensão do sistema que se pretende analisar.

Portal Um portal consiste num grupo de páginas Web que estão, por norma, associadas a

utilizadores, cujo acesso, organização e permissões é gerido por um conjunto de utilizadores-

administradores desse portal.

Actualmente e por norma, todos os Portais suportam páginas Web dinâmicas que são

constituídas por uma ou mais janelas. Cada janela contém um ou mais Portlets. Por sua vez, um

Portlet tem associado uma lógica de negócio do lado do servidor e uma interface do lado do

cliente.

Portlet Portlets são componentes orientados à Web que disponibilizam conteúdos dinâmicos. Os

Portlets são suportados em páginas Web dinâmicas e, devido ao facto de terem especificações

padrão de desenvolvimento (na especificação Java EE), são reutilizáveis e portáveis. Esta

característica fez com que os Portlets ganhassem bastantes adeptos no desenvolvimento de

portais para a Web. (Oracle) Na Figura 5 é possível visualizar um exemplo de Portlets num

portal.

Arquitectura do Sistema

15

Figura 5 – Exemplo de um Portal com Portlets

Business Intelligence Os sistemas de Business Intelligence (BI) pretendem melhorar a disponibilidade e

qualidade da informação gerada por um sistema. Para tal é necessário conjugar dados com um

conjunto de ferramentas analíticas de forma a se obter informação relevante para a tomada de

decisão.

Os sistemas de BI extraem informação útil através de ferramentas de análise, a partir de

dados recolhidos das operações do sistema que integram. As tarefas associadas ao BI e à

respectiva gestão do conhecimento, são:

Análise dos dados históricos e actuais da organização para elaboração de previsões;

Criação de possíveis cenários na introdução ou alteração de variáveis;

Permitir a análise e o acesso a dados para responder a questões não predefinidas;

Análise detalhada da organização (aprofundamento do conhecimento).

Dashboard Dentro do conceito de BI existem vários conceitos importantes mas, dada a extensão do

tema, o enfoque da Dissertação foi restringido à integração da componente de BI num sistema

MRM. Como tal, o conceito mais relevante é o de dashboard.

Um dashboard pode ser traduzido como um «Painel de Indicadores». Em BI, os

indicadores são o resultado das tarefas de análise dos dados através de ferramentas analíticas

adequadas. Os indicadores são normalmente representados por diferentes tipos de gráficos. Por

sua vez, os tipos de gráficos têm que ser adequados aos dados que se pretendem apresentar

como indicador.

Assim, um dashboard pode ser definido como um conjunto de gráficos/indicadores

resultantes dos processos de análise de dados associados ao BI, com o objectivo de apoiar a

tomada de decisões. Na Figura 6 é possível visualizar um exemplo de um dashboard constituído

por Portlets.

Arquitectura do Sistema

16

Figura 6 – Exemplo de um Dashboard

Deslocação, Movimento, Percurso O sistema MRM descrito centra-se nos conceitos de deslocação, movimento e percurso.

Uma deslocação tem sempre associada a si um local georreferenciado (uma coordenada de

GPS), uma ou mais tarefas a executar nesse local e um ou mais recursos necessários para a sua

execução.

Se duas deslocações forem representadas como dois pontos num mapa, um movimento

será a linha que une esses dois pontos. Ou, por outras palavras, um movimento num mapa

georreferenciado interessa apenas o ponto de partida e o ponto de chegada, independente do

trajecto adoptado para chegar do inicial ao final.

Assim, um percurso será um conjunto de movimentos cujos pontos de chegada são iguais

aos pontos de partida do movimento seguinte, excepto no caso do primeiro e último movimento

de um percurso.

Estes conceitos foram elaborados aquando da concepção do modelo relacional da base de

dados. A dissecação de percursos em movimentos e movimentos em deslocações foi a solução

encontrada mais eficaz para persistir os dados necessários.

3.2.2. Actores

Os principais actores do sistema incluem:

Utilizador não autenticado – Utilizador não registado ou que ainda não efectuou a

autenticação no sistema. Não possui qualquer tipo de permissões de acesso ao sistema a não ser,

o acesso à página inicial do portal e ao formulário de autenticação.

Operacional – Utilizador registado e autenticado no sistema, com permissões de acesso

através de um portal Web ou aplicação para dispositivos móveis. Considerados os utilizadores

de Front Office, terão acesso à informação relativa à sua actividade e ao preenchimento de

pequenos relatórios pré-definidos.

Operador – Utilizador registado e autenticado no sistema, com permissões de acesso

através de um portal Web. Considerados os utilizadores de Back Office, podem consultar e gerir

Arquitectura do Sistema

17

os recursos da organização de acordo com as funcionalidades do sistema e lógica do contexto

empresarial.

Administrador – Utilizador registado e autenticado no sistema com permissão total sobre

todas as suas funcionalidades tais como, efectuar operações relativas à gestão de utilizadores e

manutenção do sistema.

3.2.3. User Stories

As User Stories são uma definição de alto nível dos requisitos do sistema. Faz parte das

metodologias ágeis de desenvolvimento de software, mais especificamente da metodologia

Extreme Programming (XP) e desempenha um papel importante no planeamento da

implementação. (Wells, 2010)

Segue-se a apresentação das User Stories do sistema, cada ponto corresponde a uma única

User Story e pode representar um requisito funcional ou não funcional:

Os utilizadores não autenticados no sistema têm que se autenticar obrigatoriamente.

Os utilizadores autenticados podem configurar os seus dados de acesso ao sistema.

Os utilizadores autenticados podem alterar os seus dados pessoais.

Os utilizadores podem consultar os dados de Business Intelligence desde que lhes seja

dada permissão por um Administrador.

As deslocações devem ser atribuídas de acordo com parâmetros de optimização.

As deslocações devem ser geridas apenas através do Back Office por um Operador ou,

sempre que possível, automaticamente pelo sistema.

Os Operadores podem gerir operacionais, tarefas, deslocações e percursos.

Os Operadores podem atribuir percursos constituídos por deslocações a operacionais.

Os Operadores devem certificar-se que as tarefas são associadas a deslocações e

atribuídas a operacionais cumprindo os requisitos estabelecidos para o efeito, quer

sejam atribuídas por si ou automaticamente pelo sistema.

Os Operadores terão acesso a um Sistema de Informação Geográfica para efeitos das

suas operações.

Os Operadores podem elaborar relatórios de anomalias da operação do sistema.

Os Operacionais terão acesso ao sistema através dos seus dispositivos móveis.

Os Operacionais terão acesso aos percursos pré-estabelecidos e calculados, associados

aos seus Planos de Tarefas do dia.

Os Operacionais poderão visualizar os percursos em dispositivos móveis apropriados.

O trajecto a percorrer entre as deslocações de um percurso será calculado pelo próprio

dispositivo do Operacional, apropriado para o efeito.

Os Operacionais não podem gerir os seus Planos de Tarefas.

Os Operacionais, após uma deslocação, podem preencher individualmente um Relatório

de Execução de Tarefas atribuídas a si para aquela deslocação.

Os Operacionais podem elaborar pequenos relatórios ou actualizar o seu estado de

acordo com eventuais problemas ou reparos relacionados com a sua actividade.

Os Administradores podem modificar todas as configurações do sistema e operar com

todas as funcionalidades no mesmo.

3.2.4. Fluxo de Dados

Na Figura 7 é apresentado o Diagrama de Fluxo de Dados do Sistema onde é possível

verificar a lógica do funcionamento, a ordem das operações e as funcionalidades do sistema.

Com o objectivo de facilitar a percepção do funcionamento do sistema, no Diagrama de

Fluxo de Dados referido só está representado a persistência dos objectos do tipo Tarefa através

Arquitectura do Sistema

18

do mapeamento objecto-relacional para a base de dados. Contudo, todos os dados gerados pelas

actividades do sistema ou recolhidos pelo sistema são mapeados e persistidos em base de dados.

Os Operadores de Back Office introduzem no sistema as tarefas a executar. Após essa

introdução, o sistema deve fazer o planeamento e o escalonamento das tarefas segundo critérios

de prioridade e disponibilidade dos recursos necessários à sua execução. As tarefas são

associadas a deslocações que vão constituir os percursos a efectuar pelos Operacionais durante

um dia. Após o planeamento e o cálculo dos percursos, o sistema atribui os mesmos aos

Operacionais, constituindo o Plano de Tarefas a ser executado no dia. Os Operacionais

preenchem Relatórios de Execução de Tarefas no final da execução das tarefas associadas a uma

deslocação. A actualização da localização dos colaboradores é feita aquando da submissão dos

referidos relatórios ou aquando da actualização do estado do colaborador.

Na componente de BI, através da respectiva plataforma e com recurso a ferramentas

analíticas faz-se a selecção dos dados relevantes da Base de Dados Operacional (BD OLPT)

(dados gerados e recolhidos pelo sistema). Faz-se também a respectiva modelação e

armazenamento numa Data Warehouse através de um processo de ETL. Depois procede-se à

construção e apresentação dos dashboards com todos os indicadores pretendidos.

Figura 7 - Diagrama do Fluxo de Dados da Aplicação

3.3. Arquitectura Física

Na

Figura 8 é apresentado a estrutura física de alto nível do sistema a desenvolver, o

Diagrama da Arquitectura Física.

Arquitectura do Sistema

19

Figura 8 - Diagrama da Arquitectura Física

Arquitectura do Sistema

20

Os principais intervenientes incluem os seguintes:

Dispositivo móvel – pode ser Tablet PC, PDA, smartphone ou outro dispositivo móvel

capaz de suportar as funcionalidades pretendidas para os Operacionais através do Portal.

Computadores pessoais – máquina a partir do qual é possível aceder ao sistema e operar

no mesmo de acordo com o tipo de utilizador e as funções designadas ao mesmo. Não

necessariamente apenas a partir da intranet mas também, a partir da rede externa.

Servidor Web – máquina onde será alojada a aplicação ou plataforma do sistema.

Servidor de Base de Dados – máquina onde será alojada a Base de Dados necessária ao

funcionamento do sistema.

3.4. Arquitectura do Software

3.4.1. Modelo da Arquitectura

Sendo um dos requisitos a garantia de uma aplicação empresarial completamente de

Código Aberto, foi decidido que toda a Arquitectura do Software deveria assentar sobre

plataforma Java.

Esta opção foi feita com base na necessidade da interoperabilidade e compatibilidade entre

diferentes frameworks e com a eventual necessidade de integração com outros sistemas. Além

disso, para integrar esta solução foram estudadas as melhores ferramentas, frameworks e

plataformas de Código Aberto para integrar a solução. Após esse estudo, concluiu-se que o

conjunto de frameworks e plataformas seleccionadas são todas desenvolvidas com tecnologias

Java. Desta forma, faz todo o sentido orientar e adequar a Arquitectura de Software à plataforma

Java EE.

Assim, tratando-se de uma aplicação empresarial em Java e orientada à Web, a plataforma

é necessariamente a Java Platform, Enterprise Edition (Java EE). Além desta, existe ainda a

Java Platform, Standard Edition (Java SE), a Java Platform, Micro Edition (Java ME) e a Java

FX. (Oracle, 2010)

A plataforma Java EE foi construída sobre a plataforma Java SE. Assim, a plataforma Java

EE além das funcionalidades da Java SE (desde classes básicas a classes de alto nível utilizadas

para redes, segurança, acesso a base de dados, interfaces gráficas e XML parsing), disponibiliza

uma API e um runtime environment para o desenvolvimento de aplicações empresariais de

grande escala, multi-tiered (com áreas funcionais separadas em camadas chamadas tiers),

escaláveis, estáveis e seguras. (Oracle, 2010)

A plataforma Java EE está concebida de forma a dar completa liberdade no desenho de

arquitecturas de aplicações empresariais. Embora isso permita utilizar os componentes da

plataforma ao gosto do arquitecto da aplicação, nem sempre as opções tomadas são as mais

benéficas para o sistema onde será integrada. O arquitecto do sistema pode até encontrar

situações em que ele próprio tenha dificuldade em decidir sobre a opção que optimiza a robustez

e a eficiência da aplicação. Para colmatar as falhas que poderão surgir desta liberdade, a Sun

(agora Oracle) criou o programa Java Blueprints. Este programa constitui um guia com

exemplos concretos para que os programadores e arquitectos de sistemas sobre a Java EE

saibam maximizar as suas vantagens, assim como identificar os modelos de arquitectura e de

programação que melhor se adequam ao tipo de desenvolvimento e implementação das suas

aplicações.

Com o programa Java Blueprints, a actual Oracle, pretende educar a comunidade Java

através da definição de um conjunto de recomendações de modelos de programação das

aplicações, de guias orientadoras e arquitecturas para cenários de aplicações no mundo real.

Através deste programa faz ainda a divulgação das novas tecnologias e funcionalidades da

Arquitectura do Sistema

21

plataforma e aborda questões como escalabilidade, portabilidade e interoperabilidade, entre

outros assuntos que tenham impacto no futuro e sucesso da plataforma Java. (Oracle, 2010)

Para a arquitectura no Java BluePrints podemos encontrar os padrões de arquitectura

recomendados, os Java EE Patterns. Com estes padrões recomendados (padrões testados e com

provas dadas) pretende-se solucionar problemas de projecto recorrentes e problemas das

consequências e do impacto das soluções. (Oracle, 2010) Deste modo, a arquitectura de

software adoptada para a aplicação segue o modelo Model-View-Controller (MVC). (Oracle,

2010)

No modelo de arquitectura MVC faz-se a separação dos dados da aplicação (Model), da

apresentação dos dados (View), e da lógica de negócio (Controller). Na Figura 10 é apresentado

o diagrama que representa o modelo de arquitectura MVC. (Oracle, 2010)

Figura 9 - Modelo da Arquitectura Model-View-Controller (Oracle, 2010)

Esta organização, suporta melhor a escalabilidade (múltiplos utilizadores), facilita

modificações e a manutenção das aplicações, já que as respectivas camadas podem ser

desenvolvidas e testadas em separado.

3.4.2. Descrição da Arquitectura

Para a solução MRM pretende-se que a interface do utilizador do sistema seja

desenvolvida e organizada num portal. Sob esse portal estará a funcionar a aplicação com toda a

lógica de negócio, de acordo com a Análise Funcional e respectiva persistência. Assim, o portal

deverá fornecer toda a informação e todos os dados necessários para as funções dos Operadores

e dos Operacionais, segundo os requisitos da aplicação. Paralelamente existe a plataforma de

Business Intelligence, cujos indicadores (resultado das tarefas associadas ao BI) devem ser

visualizados no portal.

De acordo com a estrutura da aplicação descrita, na Figura 10 é apresentada a arquitectura

de software genérica da aplicação, segundo a arquitectura MVC padrão. Nela é possível

visualizar a estrutura e a organização das diferentes camadas da solução e a sua correspondência

com o padrão MVC incluindo, a integração com as camadas associadas à componente de

Business Intelligence.

Arquitectura do Sistema

22

Figura 10 – Arquitectura de Software da Aplicação (MVC)

Nas camadas mais baixas da aplicação que correspondem ao Model da arquitectura,

encontram-se a Base de Dados e a Abstracção da Base de Dados. A Base de Dados com sistema

OLTP (Online Transaction Processing), está encarregue de suportar todas as transacções

necessárias em tempo real. Por sua vez, a camada de Abstracção da Base de Dados faz o

mapeamento objecto-relacional. Este mapeamento permite relacionar as tabelas da Base de

Dados com os objectos da linguagem de programação da aplicação ou, por outras palavras e

neste caso, permite a persistência dos objectos da linguagem Java em Base de Dados.

No correspondente ao Controller da arquitectura existe a Integração Aplicacional. A

Integração Aplicacional será o núcleo da aplicação que é desenvolvido em Java e que suporta

toda a lógica de negócio e comportamento da aplicação.

Na componente View da arquitectura existe o portal que suporta todas as funcionalidades

associadas à interface do utilizador da aplicação através de páginas Web dinâmicas.

Paralelamente irá funcionar a plataforma de Business Intelligence. A plataforma integra a

solução de forma independente da aplicação. Esta inclui as suas próprias camadas e interface,

com as respectivas ferramentas associadas às tarefas de Business Intelligence. Tem acesso à

Base de Dados OLTP da aplicação e ao conhecimento da lógica de negócio, necessário para as

ferramentas ETL (Extract, Transform and Load). Ou seja, a própria plataforma tem as

ferramentas necessárias para a extracção dos dados da Base de Dados OLTP, a sua

transformação e carregamento para uma Base de Dados que irá funcionar como armazém de

dados, a Data Warehouse. Por fim, a plataforma integra-se na componente View da aplicação

(no portal) através da visualização de dashboards, os indicadores de apoio à decisão.

3.5. Tecnologias e Arquitectura

Um dos requisitos e factor de inovação da Dissertação é a concepção de uma solução com

recurso exclusivo a tecnologias de Código Aberto. O estudo das tecnologias capazes de integrar

a solução não é simples. As tecnologias envolvidas estão em constante evolução e de forma

pouco linear. Tanto podem dar um salto qualitativo grande entre versões, como dar um salto

pequeno apenas para correcção de bugs. O tempo entre os lançamentos das versões pode

também variar consideravelmente, o que, por vezes, torna difícil de prever a sua evolução e o

seu futuro.

Após o estudo das características das tecnologias candidatas à solução, foram feitos alguns

testes de integração das mesmas. No resultado do estudo e dos testes efectuados, foram

seleccionadas as tecnologias que reuniam as melhores características, em conformidade com a

Arquitectura do Sistema

23

arquitectura apresentada. Na Figura 11 são apresentadas as tecnologias seleccionadas para as

diferentes camadas e módulos da Arquitectura de Software apresentada.

Figura 11 – Tecnologias da Arquitectura do Software

Para o portal foi seleccionado o Liferay Portal, versão 6.0. A Liferay apresenta uma

infraestrutura de especificação e gestão de portais, tecnologicamente bastante evoluída e com

bastantes implementações e aplicações reais. Apresenta clientes importantes como a CISCO, a

T-Mobile, a China Mobile, etc.

A aplicação será implementada com recurso à framework desenvolvida pela SpringSource,

a Spring Framework, versão 3.0.4. A SpringSource tem parceiros como a VMware, Accenture,

JTeam, Terracotta, etc. A aplicação será desenvolvida de forma a responder às funcionalidades

esperadas e será suportada no portal. Pretende-se assim que as operações dos utilizadores sejam

executadas na aplicação através do portal.

Na camada de abstracção de dados são utilizadas algumas funcionalidades disponibilizadas

pela Spring Framework, o módulo Spring ORM. O Spring ORM em conjunto com as

funcionalidades de Mapeamento Objecto-Relacional do Hibernate3, constituem a camada de

persistência da aplicação.

Os dados da aplicação são persistidos numa Base de Dados desenvolvida num servidor

MySQL 5.1, com todas as tecnologias associadas.

A execução das tarefas de Business Intelligence estão a cargo da plataforma Pentaho,

versão 3.6.0. A Pentaho disponibiliza uma suite completa, a Pentaho BI Suite, com as suas

próprias ferramentas de ETL, Análise, Reporting e Data Mining. A plataforma Pentaho BI

opera sobre a Base de Dados da aplicação e persiste os dados resultantes na sua própria Base de

Dados do tipo Data Warehouse. Tal como o portal Liferay, a plataforma Pentaho tem duas

versões, a Community Edition e a Enterprise Edition. No caso da Enterprise Edition, a Pentaho

disponibiliza ainda uma ferramenta específica para a construção de dashboards.

As versões das tecnologias apresentadas são as versões finais (não beta) mais actualizadas

até à data do início dos trabalhos da Dissertação. Apenas as ferramentas da Pentaho BI Suite

não têm especificada a versão porque estas pertencem à Suite mas funcionam e são lançadas de

forma independente da Plataforma (mas operam sobre a mesma). Além disso, as tarefas de BI e

o funcionamento das respectivas ferramentas não são o enfoque da Dissertação, apenas a sua

integração na solução/sistema de MRM.

As tecnologias foram seleccionadas de forma a maximizar a sua integração e as respectivas

funcionalidades. Toda a solução apresentada tem em comum a Spring Framework. Quer o

Liferay Portal, quer a Pentaho BI Platform, têm uma parceria de desenvolvimento com a

Arquitectura do Sistema

24

SpringSource. Consequentemente, faz todo o sentido desenvolver a aplicação MRM também

com recurso à Spring Framework.

A decisão sobre as tecnologias teve por base o seu grau de integrabilidade, as suas

funcionalidades, a sua interface gráfica (importante no caso do BI) e o facto de terem, no geral,

as tecnologias mais sofisticadas do seu Estado da Arte.

Para trabalhar nas tecnologias e frameworks apresentadas para o desenvolvimento da

solução é necessário ter um conhecimento alargado das tecnologias Web da plataforma Java EE,

das respectivas linguagens e funcionalidades. Na Figura 12 é apresentado um sumário de todas

as tecnologias envolvidas, em função das respectivas camadas da aplicação.

Figura 12 – Tecnologias e Linguagens Envolvidas nas Respectivas Camadas da Aplicação

Na Figura 12, é possível concluir que as tecnologias envolvidas na Dissertação são de facto

extensas e que além de oferecerem um leque grande de hipóteses de desenvolvimento, permitem

personalizar completamente a aplicação.

No capítulo seguinte, as arquitecturas e as tecnologias das frameworks de desenvolvimento

apresentam-se com mais detalhe, resumindo-se as suas características principais e as suas

potencialidades.

25

Capítulo 4

Frameworks de Desenvolvimento

No presente capítulo são apresentadas as arquitecturas, as tecnologias e as principais

funcionalidades das frameworks de desenvolvimento utilizadas na solução empresarial, de

forma ordenada: Spring Framework, Liferay Portal e Pentaho BI Platform.

4.1. Spring Framework 3.0

A Spring Framework é uma plataforma Java para desenvolvimento de aplicações Java. A

framework permite ao programador concentrar-se no desenvolvimento da aplicação sem se

preocupar com a estrutura da mesma. (Spring Source, 2010)

A Spring Framework traz bastantes vantagens para quem desenvolve as aplicações. Esta

permite implementar métodos em Java:

Para transacções em Bases de Dados sem ter que lidar com APIs específicas para

transacções;

Como procedimentos remotos sem recorrer a funções específicas de Java RMI;

Para gestão de operações sem ter que lidar com as APIs do JMX (Java Management

Extensions);

Para gerir e manipular mensagens sem utilizar as APIs do JMS (Java Message Service).

Todas estas vantagens estão relacionadas com o conceito de Dependecy Injection (DI) e

Inversion of Control (IoC) no desenvolvimento da Spring Framework. Estas duas características

serão apresentadas como parte das tecnologias.

4.1.1. Arquitectura

A sua arquitectura é modular. Permite desde o desenvolvimento de aplicações Java sobre

somente a plataforma Java SE, ao desenvolvimento de aplicações empresariais de grande escala

sobre a plataforma Java EE. (Spring Source, 2010)

As bibliotecas e recursos da framework estão organizados em cerca de 20 módulos. Os

principais módulos da framework são agrupados em Spring Core Container, Data

Access/Integration, Web, Aspect-Oriented Programming (AOP) e Test, conforme apresentado

na Figura 13. (Spring Source, 2010)

Frameworks de Desenvolvimento

26

Figura 13 – Arquitectura da Spring MVC Framework 3.0

No núcleo da framework, o Core Container, estão contidos os módulos Core, Beans,

Context e Expression Language.

O Core e o Beans são os módulos principais da framework e que incluem as características

IoC e DI.

O módulo Beans implementa uma BeanFactory avançada que remove a necessidade de

criar classes Singleton ao nível da programação da aplicação Java e permite separar a

configuração e a especificação, das dependências da programação da aplicação. A interface da

BeanFactory tem um mecanismo de configuração avançada capaz de suportar qualquer tipo de

objecto. Tem ainda uma subinterface, a ApplicationContext que adiciona mais funcionalidades

orientadas a aplicações empresariais. Esta última interface representa o denominado IoC

Container que é responsável por instanciar, configurar e construir os mais diversos tipos de

Beans. (Spring Source, 2010)

O módulo Context, implementado sobre os módulos Core e Beans, permite aceder aos

objectos de forma parecida com um JNDI registry. Dá suporte a funcionalidades que

complementam o módulo Beans tais como: internacionalização (ex.: facilita a utilização de

diferentes linguagens na mesma aplicação), propagação de eventos, carregamento de recursos,

criação de contextos de forma transparente (ex.: criação de Servlet Containers). (Spring Source,

2010)

O módulo Expression Language é uma extensão da Unified Expression Language (Unified

EL) da especificação JSP 2.1, uma linguagem avançada para manipulação de objectos em

runtime denominada SpEL (Spring Expression Language). A linguagem permite

funcionalidades do tipo get e set de propriedades de objectos, invocação de métodos, operadores

lógicos e aritméticos e utilização de variáveis pelo nome, entre outras funcionalidades. A SpEL

é complementar ao módulo Context, permitindo alternativas de implementação que aumentam a

transparência das aplicações. (Spring Source, 2010)

Frameworks de Desenvolvimento

27

A camada Data Access/Integration consiste nos módulos JDBC, ORM, JMS e

Transaction.

O módulo JDBC (Java Database Connectivity) permite a abstracção da camada JDBC. Não

é necessário fazer qualquer tipo de programação associada ao estabelecimento de ligação com

Bases de Dados, enviar SQL statements ou processamento de resultados específicos da Base de

Dados. (Spring Source, 2010)

O módulo ORM permite integração com as APIs mais populares associadas ao

mapeamento Objecto-relacional, tais como: JPA, JDO, Hibernate e iBatis. Assim, com este

módulo é possível combinar todas as funcionalidades da Spring Framework com a framework

de mapeamento Objecto-relacional pretendida. (Spring Source, 2010)

O módulo OXM suporta a abstracção da implementação do mapeamento de

Objectos/XML para JAXB, Castor, XMLBeans, JiBX e XStream.

O Java Messaging Service (JMS) contém o envio e recepção de mensagens.

O módulo Transaction torna a programação das transacções transparentes. Faz a gestão das

transacções para classes Java que implementem interfaces e para POJOs (Plain Old Java

Objects), o que permite a escrita do código uma única vez e também beneficiar de estratégias de

transacções em diferentes contextos aplicacionais. (Spring Source, 2010)

A camada Web consiste nos módulos: Web, Web-Servlet, Web-Struts e Web-Portlet.

O módulo Web permite a integração de funcionalidades orientadas à Web e a inicialização

do mencionado IoC Container com Servlet Listeners e o contexto da aplicação orientada à Web.

(Spring Source, 2010)

O módulo Web-Servlet contém a Spring Web MVC Framework. Permite a clara separação

da lógica da aplicação, do modelo de dados e das Web forms. A framework está implementada

em redor do DispatcherServlet que faz a resolução de pedidos e das Views a apresentar de

acordo com a localização e tema, bem como suporte de upload de ficheiros. (Spring Source,

2010)

O módulo Web-Struts suporta as classes de integração do Struts numa aplicação Spring

mas trata-se de um módulo que está descontinuado. Não se justifica a sua integração tendo-se

acesso ao Spring Web MVC Framework que é muito mais vantajosa que a solução clássica do

Struts. (Spring Source, 2010)

O módulo Web-Portlet possibilita a implementação da arquitectura MVC em Portlets, com

todas as funcionalidades do módulo Web-Servlet. (Spring Source, 2010)

O módulo AOP permite uma implementação conforme uma programação do tipo Aspect-

Oriented. A tecnologia associada a este módulo será analisada no ponto seguinte, relativo às

tecnologias da Spring Framework. (Spring Source, 2010)

O último módulo, Test, disponibiliza os componentes de teste para as aplicações Spring

com JUnit ou TestNG. Permite carregar os contextos das aplicações Spring

(ApplicationContext) e possibilita o uso de uma espécie de falsos objectos (mock objects) que

possibilitam testes isolados. (Spring Source, 2010)

4.1.2. Tecnologias

Inversion of Control e Dependency Injection Conforme já referido a Spring Framework implementa o principio de Inversion of Control

(IoC). Também conhecido como Dependency Injection (DI).

Em termos gerais, na Spring, DI é o processo onde os objectos definem as suas

dependências (que podem ser outros objectos) através da passagem das mesmas como

argumentos ao seu construtor (numa factory) ou através da definição das dependências como

propriedades da instância do objecto, após ter sido criado. Ou, por outras palavras, o próprio

Bean é que controla a instanciação e localização das suas dependências na construção directa da

classe. (Spring Source, 2010)

Na realidade, existe uma discussão na comunidade Java sobre qual dos dois termos o mais

correcto. (Fowler, 2004) Apesar de não haver uma conformidade nas opiniões, é aceite que o

termo IoC é demasiado genérico para ser anunciado como uma característica de uma framework

Frameworks de Desenvolvimento

28

porque uma framework que não tem algum tipo de «inversão de controlo» deixa de ser uma

framework. Ou seja, o objectivo de uma framework é sempre “inverter o controlo” sobre um

determinado aspecto do desenvolvimento, onde a mesma assume o controlo na vez do

programador.

Nessa lógica, no caso da Spring Framework, é aceitável dizer que o IoC desta framework

consiste na Dependency Injection nos Beans da aplicação.

Com o princípio de DI, o código torna-se mais limpo quando os objectos são criados com

as suas próprias dependências. Desta forma o objecto não necessita de procurar as suas

dependências, nem saber a localização e as classes das mesmas. (Spring Source, 2010)

Esta funcionalidade obriga a existência de algum tipo de resolução na construção dos

Beans pois a declaração das suas dependências tem que corresponder aos respectivos

construtores. Neste caso, o próprio IoC Container valida a configuração de cada Bean no

momento da sua criação, incluindo a validação da referência das dependências dos Beans.

(Spring Source, 2010)

Os Beans podem ter diferentes âmbitos, uns podem estar pré-instanciados e são criados

aquando da criação do IoC Container, outros só são criados quando são necessários. Na prática,

com o princípio de DI, a criação de um Bean normalmente causa a criação de um grafo de

Beans, assim que as suas dependências e as suas dependências das dependências (e assim

consecutivamente) são criadas e atribuídas/ligadas entre si. (Spring Source, 2010)

Validation, Data Binding e Type Conversion As tecnologias Validation e Data Binding são complementares e constituem uma solução

de validação que integra as validações na camada de integração aplicacional. Ou seja, com estas

duas tecnologias, os processos de validação não estão presos à camada Web das aplicações.

Estas permitem utilizar as classes de validação como plug-ins das outras camadas da aplicação.

Para tal, a Spring tem as interfaces denominadas Validator e DataBinder que transformam esta

funcionalidade acessível e fácil para diferentes camadas da aplicação. Assim é possível validar

através da interface Validator os Inputs do utilizador que têm uma ligação dinâmica, criada com

a interface DataBinder, com as classes de validação na camada de integração aplicacional.

(Spring Source, 2010)

A tecnologia Type Conversion, tal como o nome sugere, é um sistema geral de conversão

de tipos de objectos. O sistema desenvolvido na Spring define uma Service Provider Interface

(SPI) que implementa a conversão lógica dos tipos e uma Application Provider Interface (API)

para executar a conversão dos tipos em runtime. (Spring Source, 2010)

Spring Expression Language – SpEL A SpEL é uma linguagem de expressão que permite o acesso e a manipulação de objectos

ou estruturas de objectos em runtime. A sintaxe da linguagem é semelhante a Unified EL (Java

Unified Expression Language), que permite embeber expressões de programação em páginas

Web. A SpEL, comporta-se como uma extensão da referida linguagem, adicionando outras

funcionalidades como invocação de métodos e integração de modelos básicos de expressões

(templates). (Spring Source, 2010)

Existem outras linguagens de expressão em Java, por exemplo, OGNL, MVEL ou JBoss

EL. Contudo, o objectivo da Spring é oferecer uma linguagem bem desenvolvida e

completamente integrada, que possa ser usada em todos os produtos oferecidos pela mesma.

(Spring Source, 2010)

Entre outras funcionalidades da linguagem, destacam-se (Spring Source, 2010):

Operadores relacionais e booleanos;

Expressões regulares;

Acesso a propriedades, arrays, listas e maps;

Invocação de métodos;

Atribuição de variáveis;

Construção de arrays;

Modelos de expressões (templates).

Frameworks de Desenvolvimento

29

Para se ter uma noção do funcionamento da tecnologia Type Conversion e de como a

linguagem SpEL pode ser usada, apresenta-se o seguinte exemplo (Spring Source, 2010):

(…) // Uma classe que representa uma lista de booleanos class Simple { public List<Boolean> booleanList = new ArrayList<Boolean>(); } (…) // Nova lista de booleanos Simple simple = new Simple(); // Adiciona true à lista simple.booleanList.add(true); // Cria o serviço de conversão por contexto (tecnologia Type Conversion) StandardEvaluationContext simpleContext = new StandardEvaluationContext(simple); /* O valor false é passado como String. A SpEL e o service de conversão irão * reconhecer correctamente que o valor do tipo String tem ser passado para * Booleano e só depois adicionado */ parser.parseExpression("booleanList[0]").setValue(simpleContext, "false"); // b terá o valor booleano false Boolean b = simple.booleanList.get(0); (…)

No excerto apresentado é utilizado um exemplo que pode ser usado para adicionar

facilmente inputs do utilizador a estruturas de programação mas, a SpEL pode também ser

usada, por exemplo, em configurações de Beans em XML.

Aspect-Oriented Programming (AOP) A tecnologia Aspect-Oriented Programming da Spring complementa a Object-Oriented

Programming (OOP) que proporciona uma outra forma de pensar sobre a estrutura dos

programas. Enquanto na OOP a unidade central é a classe, na AOP a unidade central é o Aspect.

(Spring Source, 2010)

Um Aspect é a modularização/concretização de um interesse partilhado entre diferentes

classes. Por exemplo, a gestão de transacções é um interesse partilhado por várias classes de

uma aplicação Java empresarial. No Spring AOP, o conceito Aspect é implementado através de

classes normais ou classes com anotações (suporta @AspectJ). (Spring Source, 2010)

Uma aplicação Spring recorre naturalmente à tecnologia AOP quando se requer serviços

ou pacotes de serviços middleware (ex.: pooling). (Spring Source, 2010)

Contudo, existe a Spring AOP Framework que fornece serviços empresariais,

especialmente para substituição de serviços de EJBs, dos quais se destaca a gestão declarativa

de transacções. Neste exemplo, há um forte interesse do recurso à AOP framework para

substituir a tecnologia Container-Managed Transactions dos EJB (EJB CMT) da plataforma

Java EE. Uma das vantagens oferecidas sem equivalente na EJB CMT é a possibilidade da

existência de regras para rollbacks das transacções que permite, por exemplo, apanhar

excepções não suportadas, geradas pelo código que executa no contexto actual de uma

transacção e lançadas para a Stack. (Spring Source, 2010)

Frameworks de Desenvolvimento

30

Testing A tecnologia Testing baseia-se no valor acrescentado que o principio IoC traz aos testes

unitários (Unit Testing) e na framework de testes de integração (Spring Framework Integration

Testing). (Spring Source, 2010)

Por sua vez, a DI faz com que o código da aplicação seja menos dependente do seu

container que as tradicionais aplicações Java EE. Isso permite testar os POJOs da aplicação com

JUnit ou TestNG, simplesmente instanciando-os com o operador new. Assim como, utilizar

falsos objectos (mock objects) para testar partes da aplicação isoladamente. (Spring Source,

2010)

Se as recomendações de arquitectura da Spring forem seguidas, a aplicação terá as suas

camadas e componentes definidos de forma clara. Por exemplo, deverá ser possível testar a

camada dos serviços da aplicação através da criação de “falsos” DAOs (Data Access Objects)

ou interfaces para repositórios, sem recorrer aos dados reais persistidos na camada de dados

para executar os testes unitários. (Spring Source, 2010)

A framework permite fazer testes de integração (Integration Testing) à aplicação sem ser

necessário publicar a mesma ou liga-la a outra infraestrutura empresarial. Esta possibilita testar

a aplicação:

Na correcta ligação das estruturas e contextos do IoC Container.

No acesso a dados usando JDBC ou ferramentas ORM: testa os statements SQL, as

queries do Hibernate3, o mapeamento de entidades JPA, etc.

A partir da Spring Framework 2.5, os testes unitários e de integração podem ser feitos

através anotações (annotation-driven testing) com a Spring TestContext Framework. (Spring

Source, 2010)

4.1.3. Estratégias de Desenvolvimento

Apenas os principais tópicos e vantagens das tecnologias disponibilizadas pela Spring

Framework foram expostos. Mas já é possível deduzir que são de facto extensas e, com certeza,

leva algum tempo até o programador poder usufruir de todas as vantagens disponibilizadas.

Neste ponto são apresentadas as duas principais alternativas de desenvolvimento Web que

a framework permite. Ambas são estratégias válidas para o desenvolvimento de aplicações Web.

Aplicações Web A opção de desenvolvimento convencional de aplicações Web é baseada em Servlets e

feito com recurso à Spring Web MVC Framework. Conforme já referido, esta framework foi

desenhada em redor do DispatcherServlet que faz a resolução dos pedidos e respectivas páginas,

suporta temas e upload de ficheiros. (Spring Source, 2010)

A Spring Web MVC Framework, tal como outras frameworks de desenvolvimento do

género, é desenhada em redor de um Servlet que faz a resolução de pedidos, do tipo request-

driven.

Na Figura 14 é apresentado o diagrama de funcionamento do DispatcherServlet. Nele é

possível visualizar como as aplicações Web standard desenvolvidas em Spring MVC se

comportam. O padrão de funcionamento do DispatcherServlet em tudo se assemelha ao design

“Front Controller”. (Spring Source, 2010)

Frameworks de Desenvolvimento

31

Figura 14 – Diagrama de Funcionamento do DispatcherServlet da Spring MVC

Portlets A Spring Portlet MVC Framework espelha as funcionalidades da Web MVC Framework,

descritas nos pontos anteriores, para o desenvolvimento de Portlets com especificação JSR-168.

(Spring Source, 2010)

Enquanto no workflow de um Servlet, o pedido de acção está associado a uma resposta

dessa acção e a uma renderização, num Portlet, um pedido pode ter duas fases na resposta do

seu workflow: a fase de acção e a fase de renderização. A fase de acção é executada apenas

quando há um pedido de acção ou uma modificação do sistema. A fase de renderização é

executada só quando há um refresh da interface (um pedido de actualização da página pelo

utilizador). A principal diferença de funcionamento está na distinção destas duas fases, as

acções são executadas uma única vez e as renderizações são executadas várias vezes. Isto

implica uma clara separação das camadas de persistência, daquelas camadas que geram aquilo

que é renderizado para o utilizador. (Spring Source, 2010)

Na Figura 15 é possível observar o diagrama de funcionamento de pedidos em duas fases

dos Portlets, cujos intervenientes das acções são o servidor do portal, o Portlet Container e dois

Portlets, o A e o B. O exemplo do diagrama corresponde ao comportamento de dois Portlets

configurados numa única página de portal, onde o primeiro pedido ao servidor corresponde ao

carregamento ou actualização da página Web e o segundo pedido corresponde ao pedido de uma

acção do Portlet A, sempre através de um Navegador Web.

Frameworks de Desenvolvimento

32

Figura 15 – Diagrama de Sequência do Processo de Funcionamento de Portlets

A divisão dos pedidos a Portlets em duas fazes é um dos pontos fortes da especificação

JSR-168. Por exemplo, numa pesquisa dinâmica os resultados podem ser actualizados com

frequência na interface sem o utilizador executar explicitamente a acção de pesquisa novamente.

(Spring Source, 2010)

Outras frameworks equivalentes tentam esconder esta especificação de pedidos em duas

fases mas, na Spring não há essa intenção, é entendido que isso seria despromover a vantagem

da especificação JSR-168. (Spring Source, 2010)

Tal como a Web MVC Framework está desenhada em redor do DispatcherServlet, a

Portlet MVC Framework, por sua vez, está desenhada em redor do DispatcherPortlet. O

DispatcherPortlet resolve os pedidos e faz a sua delegação para os respectivos handlers. O

mapeamento dessas delegações e as renderizações das respostas são configuráveis. O suporte

para upload de ficheiros é feito da mesma forma que a Web MVC. Já o suporte das

funcionalidades de internacionalização e temas são feitos pelos Portlets Containers (os portais).

Como a exposição destas duas funcionalidades é feita no DispatcherPortlet da mesma forma

que no DispatcherServlet, elas funcionam correctamente. (Spring Source, 2010)

4.2. Liferay Portal 6.0

O Liferay Portal é um portal empresarial Open Source escrito em Java com todas as

funcionalidades associadas a páginas Web, constituídas essencialmente por unidades funcionais,

os Portlets.

O Liferay é o primeiro Java Portlet Container a suportar as especificações JSR-168 e JSR-

286. O portal está bastante avançado em relação a outros do género, é versátil e opera como um

Servlet Java EE em qualquer um dos mais usados Java Servlet Containers (ex.: Apache Tomcat,

Frameworks de Desenvolvimento

33

Glassfish, JBoss, WebShere, etc.). É ainda possível conectar o portal com quase todos os tipos

de servidor de Base de Dados (ex.: MySQL, Hypersonic, HSQLDB, Oracle, PostgreSQL,

Microsoft SQL Server, etc.). Internamente, para gestão de ligações e queries à Base de Dados, é

possível utilizar Hibernate ou JPA.

Com o objectivo de aumentar a flexibilidade do portal, o Liferay usa a Spring Framework

nas suas funcionalidades internas, com todas as metodologias associadas ao Inversion of

Control (IoC) e ao Aspect-Oriented Programming (AoP). Quase todos os serviços e

funcionalidades do portal Liferay podem ser substituídos através de passos relativamente

simples.

Apesar da sua associação às tecnologias Spring, o Liferay suporta Portlets desenvolvidos

com recurso a outras tecnologias, desde que sejam de acordo com as especificações JSR-168 ou

286. O portal suporta várias frameworks de desenvolvimento de Portlets, incluindo Struts,

Spring MVC, Java Server Faces (JSF), a par da sua própria framework. Para os templates dos

Portlets, também suporta várias tecnologias, incluindo Velocity, Freemarker e Vanilla JSP.

4.2.1. Arquitectura

O portal Liferay tem uma arquitectura SOA. Permite aos utilizadores acederem de

qualquer dispositivo e aos programadores acederem através da API exposta via SOAP, RMI,

XML-RPC, JSON, etc.

Figura 16 – Arquitectura do Liferay Portal

Com os princípios SOA, o portal foi desenhado para suportar diversos tipos de Portlet,

cache de páginas, alojamento virtual dinâmico. Integra ainda LDAP e SSO, segurança, etc.

Em particular, o Enterprise Service Bus (ESB) funciona como um gestor central de

ligações a infraestruturas empresariais que permite ligar aplicações e serviços exteriores, com

facilidade. Por exemplo, através do ESB é possível integrar o portal com SharePoint, BPM, etc.

4.2.2. Tecnologias

O portal suporta praticamente todas as tecnologias associadas à Web e as já referidas

tecnologias associadas à Spring Framework. Assim, nesta secção apenas se justifica referir a

única tecnologia particular do portal, o Web Application Integrator (WAI).

Frameworks de Desenvolvimento

34

Web Application Integrator (WAI) O WAI disponibiliza uma forma rápida de integrar aplicações Java Servlet normalizadas

no portal. Basta copiar o ficheiro WAR (Web Application Archive) de uma aplicação para a

pasta de integração e a aplicação será automaticamente configurada com os ficheiros

necessários e disponibilizada através de Portlets ou, mais especificamente, iFrame Portlets.

4.2.3. Estratégias de Desenvolvimento

O desenvolvimento do portal pode ser feito com diferentes tipos de extensões. Umas

extensões podem alterar o núcleo do portal, enquanto outras podem acrescentar novas

funcionalidades ao mesmo. O importante é escolher a estratégia de desenvolvimento mais

adequada, de forma a poupar tempo e esforço e assegurar a compatibilidade da extensão com

futuras versões.

As opções de desenvolvimento são Portlets, Themes (temas), Layout Templates (visual e

disposição das páginas), Hooks (funcionalidades) e Ext plugins (modificações ao portal). Todas

estas opções podem ser publicadas no servidor do portal automaticamente pelo WAI como

plugins.

Portlets Os Portlets são os componentes mais importantes de um portal, sendo eles que contêm

toda a funcionalidade. Os Portlets funcionam como pequenas aplicações Web e o portal (um

Portlet Container) é responsável por agregar os Portlets que são visualizados em páginas Web

dinâmicas. (Liferay, 2010)

Os Portlets são a extensão menos invasiva do Liferay Portal, são inteiramente contidos

neles próprios e em caso de erro, não impedem o funcionamento do portal. Um único projecto

(plugin) deste tipo pode implementar múltiplos Portlets, sendo assim possível dividir uma única

aplicação em pequenas unidades funcionais que podem ser visualizadas e dispostas

dinamicamente numa página Web. (Liferay, 2010)

Os Portlets podem ser desenvolvidos com as próprias frameworks disponibilizadas pela

Liferay: a MVCPortlet e a AlloyPortlet. Pode usar-se também outra Framework de

desenvolvimento de Portlets, como no caso da solução apresentada, a Spring Portlet MVC

Framework.

Themes A opção de desenvolvimento Theme permite implementar plugins do tipo «Tema». Num

Theme é possível fazer alterações ao visual do portal através de uma combinação de CSS,

imagens e Velocity templates.

Na maioria dos casos as modificações são feitas exclusivamente através de CSS. Contudo,

no caso de se pretender modificações mais profundas à disposição e aos elementos do próprio

portal, é possível desenvolver templates que se sobrepõem às definições do portal que vêm por

defeito. (Liferay, 2010)

Layout Templates Os plugins do tipo Layout Template são em tudo idênticos aos Themes (temas) mas, em

vez de modificarem o visual do portal, modificam apenas a sua disposição. Os Layout Template

são escritos em Velocity. (Liferay, 2010)

Hooks As modificações às funcionalidades do núcleo do Liferay devem ser feitas através de

plugins do tipo Hook. Os Hooks podem modificar as propriedades do portal ou acrescentar

acções ao iniciar e encerrar do portal, no login e logout dos utilizadores, na criação e destruição

de sessões. Numa perspectiva de IoC, o Liferay permite substituir qualquer funcionalidade ou

serviço do seu núcleo por uma implementação personalizada dos mesmos, tal como os JSP

templates por defeito no portal. (Liferay, 2010)

Frameworks de Desenvolvimento

35

Ext plugins A opção Ext plugins é a que dá mais flexibilidade na modificação do núcleo do Liferay

Portal, permitindo modificar qualquer classe através da substituição da sua implementação.

Pode-se considerar como uma modificação de mais baixo nível. A substituição de classes tem

riscos e custos acrescidos, além de que não é garantida a sua compatibilidade com futuras

versões do portal. Tal como os restantes plugins, os Ext plugins são publicados automaticamente

pelo WAI mas requerem ainda o reiniciar do servidor para terem efeito. (Liferay, 2010)

4.3. Pentaho BI Platform 3.6

A Pentaho BI Suite é uma plataforma que implementa componentes de BI orientados à

construção de soluções empresariais.

No caso da plataforma Pentaho BI e para a solução apresentada, não é necessário recorrer à

sua framework para fazer qualquer tipo de desenvolvimento ou integração. Ou seja, ao nível das

funcionalidades do BI, não é suposto fazer-se qualquer tipo de implementação. Ao nível da

integração, a plataforma deverá ter implementado os seus próprios mecanismos de integração,

pretendendo-se que necessite apenas de configuração.

As funcionalidades e ferramentas referidas neste ponto serão apenas as disponibilizadas

com a Community Edition (CE) da plataforma Pentaho BI Suite. Na Figura 17, são apresentados

os projectos associados à plataforma Pentaho BI, da versão CE, com as respectivas ferramentas

disponibilizadas.

Figura 17 – Organização das Ferramentas da Pentaho BI Suite CE

4.3.1. BI Platform e Arquitectura

A Pentaho BI Platform é o núcleo ou a base da Pentaho BI Suite, fornece toda arquitectura

e infraestrutura necessária para a construção de soluções de BI. Corre em servidor Web (ex.:

Tomcat) e tem um controlador central que funciona como um motor de workflows. A plataforma

funciona como um processo centralizado. Todas as actividades/tarefas de BI desenvolvidas com

as ferramentas resultam na definição de processos de diferentes naturezas em forma de

workflow que são executados pelo motor de workflows. (Pentaho Corporation, 2008)

Esta forma de funcionamento centralizado é o factor de diferenciação em relação a outras

plataformas de BI. A arquitectura e o código completamente originais, com integração de outros

componentes de Código Aberto, formam uma plataforma de BI avançada, original, escalável e

modular. (Pentaho Corporation, 2008)

A plataforma tem um sistema complexo de funcionalidades, associadas a: servidores Java

EE, segurança, portais, workflows, motores de regras, geração de gráficos, colaboração, gestão

de conteúdos, análise de dados e modelação. Muitos dos componentes que integram as

Frameworks de Desenvolvimento

36

funcionalidades são desenvolvidos sobre normas e podem ser substituídos por outros produtos.

(Pentaho Corporation, 2008)

Na Figura 18 é apresentada a arquitectura da plataforma, onde se apresentam os

componentes desenvolvidos pela Pentaho, os componentes de Código Aberto integrados na

plataforma e as tecnologias clientes envolvidas (ver legenda da figura).

Figura 18 – Arquitectura do Pentaho BI Platform (Pentaho Community, 2008)

O Solution Engine é centro de toda a arquitectura e gere o acesso aos componentes da

plataforma.

A plataforma fornece serviços para aplicações Web exteriores. Os serviços têm acesso ao

Solution Engine e aos componentes da interface do utilizador. Os serviços podem ainda ser

chamados pelo motor de workflows para executar acções do sistema.

Um sistema de auditoria da própria plataforma faz a monitorização da performance dos

diferentes componentes de geração de relatórios e extracção de dados.

Os Componentes são módulos que podem ser adicionados ao sistema.

Todos os motores têm os respectivos componentes que os integram, o que os torna motores

completamente modulares. É possível inclusive acrescentar novos motores desenvolvendo

apenas os respectivos componentes de integração. (Pentaho Corporation, 2008)

Frameworks de Desenvolvimento

37

4.3.2. Reporting

O projecto Pentaho Reporting Community Edition inclui: Pentaho Report Designer,

Pentaho Report Engine, Pentaho Reporting SDK e partilha as bibliotecas mais comuns

associadas ao reporting com a restante plataforma de BI. Estas ferramentas Open Source

permitem a criação de relatórios analíticos (com indicadores) e relacionais (de diferentes fontes

de informação) e exportá-los para: PDF, Excel, HTML, Text, Rich-TExt-File, XML e CSV.

(Pentaho Corporation, 2010)

4.3.3. Data Integration

A distribuição do Pentaho Data Integration Community Edition é a base de todas as tarefas

associadas ao BI, constituindo a distribuição no cliente das ferramentas ETL. O Pentaho Data

Integration implementa ferramentas gráficas e intuitivas, com um ambiente do tipo drag and

drop. (Pentaho Corporation, 2010)

Tal como é suposto pelo processo ETL, estas ferramentas permitem:

Extracção de dados – recolhe dados de diversas fontes e faz a sua homogeneização;

Transformação de dados – limpeza de dados com a identificação de erros e aplicação

de possíveis correcções e conversão de dados para os formatos que vão ser persistidos

na Data Warehouse;

Carregamento de dados – persistência dos dados transformados em Data Warehouses,

incluindo tarefas como: ordenação, agregação, consolidação e verificação da

integridade dos dados. (Ramos, et al., 2009)

4.3.4. Analysis Services

O Pentaho Analysis Services Community Edition é um servidor com a tecnologia Online

Analytical Processing (OLAP) que permite aos utilizadores do sistema analisar grandes

quantidades de informação, em diferentes perspectivas e em tempo real. (Pentaho Corporation,

2010)

O servidor tem uma arquitectura ROLAP (Relational OLAP). Nesta arquitectura o servidor

funciona como intermediário entre a base de dados relacional e as ferramentas clientes que

fazem a análise dos dados. Um servidor ROLAP tem um gestor de base de dados relacionais

para armazenar e gerir os dados que serão analisados posteriormente. (Ramos, et al., 2009)

Os utilizadores poderão explorar os dados, manipulando-os sobre as diferentes

perspectivas, de acordo com o esquema de modelação de dados utilizado.

4.3.5. Data Mining

O projecto Pentaho Data Mining disponibiliza um conjunto de ferramentas de Data Mining

e aprendizagem do sistema. Explora os dados e aprende com o sistema e com a lógica do

negócio, através de regras de associação, classificação, regressão, algoritmos de criação de

clusters, etc. (Pentaho Corporation, 2010)

O objectivo do Data Mining é encontrar relacionamentos, padrões ou modelos a partir dá

análise de grandes quantidades de dados.

Frameworks de Desenvolvimento

38

39

Capítulo 5

Desenvolvimento e Implementação

Neste capítulo, é apresentada a infraestrutura de desenvolvimento, incluindo a instalação e

a configuração das plataformas e frameworks apresentadas no capítulo anterior. Nas secções

seguintes, são apresentadas e discutidas as soluções encontradas, relativas a diferentes aspectos

da integração e interoperabilidade das tecnologias. O capítulo conclui com os resultados

alcançados no desenvolvimento da solução.

5.1. Infraestrutura e Ambiente de Desenvolvimento

O Ambiente de Desenvolvimento necessário para desenvolver a solução é bastante

exigente a nível computacional. Requer uma máquina (ou mais) com capacidade suficiente para

correr um servidor de Base de Dados, um ou dois servidores Web (depende da intenção do

arquitecto do sistema) e um emulador de smartphone para testes da componente móvel.

Neste caso, o componente da solução mais exigente ao nível de recursos computacionais é

o componente de Business Intelligence. Para se ter uma noção da exigência dos recursos, os

requisitos recomendados para a plataforma Pentaho BI são 2Gb de RAM e um processador com

dois núcleos a 64bits (dual-core x64).

O Ambiente de Desenvolvimento apresentado é configurado em ambiente Windows. Nas

secções seguintes, da 5.1.1 à 5.1.5, são apresentados os passos de instalação dos componentes

que constituem o ambiente de desenvolvimento com as respectivas interfaces.

Os requisitos principais são a instalação do .NET Framework versão 3.5 e o Java

Development Kit (JDK) actualizado. No ambiente de desenvolvimento testado, é usado o JDK

versão 6, actualização 21.

5.1.1. Servidor MySQL 5.1

O servidor MySQL é bastante simples e rápido de instalar. Basta aceder à página Web de

downloads da MySQL e escolher o download da aplicação de instalação do „MySQL

Community Server‟.

Depois de terminado o download, corre-se a aplicação de instalação e segue-se todos os

passos da instalação recomendada. A Base de Dados deverá ser do tipo OLTP, sem necessidade

de qualquer configuração excepcional.

O MySQL Community Server é a Base de Dados Open Source mais popular, suportada por

uma grande comunidade de programadores e adeptos de software aberto.

A versão 5.1 do servidor é a utilizada no ambiente de desenvolvimento da solução.

Desenvolvimento e Implementação

40

5.1.2. MySQL Workbench 5.2

Na mesma página de download do servidor MySQL, faz-se o download do MySQL

Workbench.

A sua instalação é trivial, basta seguir os passos de instalação e as opções de configuração

recomendadas.

O MySQL Workbench é a um ambiente integrado de ferramentas de:

Desenho e modelação de Bases de Dados;

Desenvolvimento SQL (em substituição do anterior MySQL Query Browser);

Administração de Bases de Dados (em substituição do anterior MySQL Administrator

e em alternativa à linha de comandos MySQL).

Figura 19 – Exemplo do Interface Gráfico do MySQL Workbench

O ambiente integrado desta interface gráfica facilita e agiliza o desenvolvimento de Bases

de Dados. A partir da interface é possível aceder à ferramenta de criação de modelos

relacionais, a MySQL Model. Esta ferramenta permite escolher a notação pretendida para as

relações e os objectos do modelo e gerar os scripts SQL a partir do mesmo, entre outras

funcionalidades mais avançadas.

A ferramenta de administração de Bases de Dados, a Admin, permite gerir o servidor,

configurar todos os parâmetros e variáveis associadas às Bases de Dados MySQL, monitorizar a

ligações e o estado do servidor, entre outras opções.

A última ferramenta da interface a apresentar é a MySQL Editor. Com esta ferramenta é

possível estabelecer uma ligação a um servidor MySQL instanciado e fazer todo o tipo de

operações que o SQL permite, incluindo a criação de Vistas e de Rotinas. A principal vantagem

é a possibilidade de gerir facilmente mais do que um Schema de uma BD e executar

rapidamente os scripts SQL, por exemplo, gerados pelo MySQL Model.

Desenvolvimento e Implementação

41

5.1.3. SpringSource Tool Suite 2.3.2

O SpringSource Tool Suite (STS) é uma ferramenta para desenvolvimento de aplicações

Java empresariais personalizada e configurada em função da estratégia de desenvolvimento da

Spring.

O download do STS é feito através do sítio da SpringSource.

O STS tem uma interface bastante familiar, é desenvolvida com base no Eclipse IDE (ver

Figura 20). Incluí ferramentas para o desenvolvimento de aplicações empresariais com base nas

tecnologias Java, Spring, Groovy and Grails e desenvolvimento OSGi. (SpringSource, 2010)

Figura 20 – Interface da SpringSource Tools Suite

A distribuição da ferramenta vem ainda com um servidor Apache Tomcat (TC) optimizado

para Spring. O TC Server Developer Edition tem uma interface gráfica que permite identificar e

diagnosticar problemas de aplicações através de métricas de desempenho em tempo real.

(SpringSource, 2010)

Para o ambiente de desenvolvimento da solução é necessário proceder a alguns passos de

configuração e instalação das tecnologias de desenvolvimento no STS (o IDE). Incluindo as

ferramentas para as estratégias de desenvolvimento do Liferay.

Configuração do IDE

1) Após o download do STS a partir do sítio da SpringSource, executar o instalador e

instalar com as opções recomendadas;

2) Após a instalação, verificar no IDE se a versão do JRE configurada por defeito no STS,

é a da distribuição do JDK instalado;

3) No STS, instalar as ferramentas do Hibernate através do seu Update Site:

http://download.jboss.org/jbosstools/updates/stable/;

4) No STS, instalar o SDK do Liferay também através do seu Update Site:

http://releases.liferay.com/tools/ide/eclipse/helios/stable/;

Desenvolvimento e Implementação

42

5) Fazer o download do ficheiro em arquivo com o compilador Jikes e extrair o ficheiro

para o directório mais conveniente;

6) Fazer o download do ficheiro em arquivo dos binários do construtor Ant e extrair o

ficheiro para o directório mais conveniente;

7) Para o funcionamento correcto das ferramentas é necessário configurar as seguintes

Variáveis de Ambiente do Windows:

a. «JAVA_HOME» a apontar para o directório do JDK;

b. «JIKES_HOME» a apontar para o directório do compilador Jikes;

c. «ANT_HOME» para o directório onde foi extraído no ponto anterior

d. Acrescentar «%JIKES_HOME%\bin», «%JAVA_HOME%\bin» e «%ANT_HOME%\bin»

à variável «Path»

Se a configuração do IDE for feita com sucesso, deverão aparecer os símbolos das

funcionalidades instaladas (Hibernate e Liferay), na visualização de “About” (Figura 21).

Figura 21 – Funcionalidades Instaladas no IDE da SpringSource Tool Suite

5.1.4. Servidor Liferay Portal 6.0

As instruções de instalação e configuração das ferramentas necessárias para as estratégias

de desenvolvimento do portal, foram consideradas no ponto anterior, aquando da instalação do

IDE. Contudo, é ainda necessário configurar o servidor do portal Liferay para ser utilizado no

IDE.

Como o IDE de desenvolvimento para o portal é o mesmo, dispensa-se qualquer

introdução ao mesmo neste ponto.

Configuração do servidor Liferay no IDE

1) No sítio do Liferay, fazer o download das distribuições da comunidade do Plugins SDK

e do pacote do portal com o servidor Tomcat;

2) Configurar o Liferay Plugins SDK no IDE, adicionando o respectivo directório em

«Installed SDKs» do IDE;

3) Configurar a instância do servidor Tomcat do portal no IDE, adicionando o runtime

environment do mesmo.

Caso a configuração seja terminada com sucesso, a instancia do servidor deverá aparecer

no separador Servers da interface apresentada (Figura 20).

Para testar o servidor e o portal, basta seleccionar o mesmo na aba apropriada do IDE e

iniciá-lo. No final do arranque do servidor, o sítio do portal deverá abrir automaticamente no

Desenvolvimento e Implementação

43

navegador pré-definido. Caso não aconteça, pode-se abrir o mesmo manualmente e navegar até

http://localhost/.

Na Figura 22 é apresentada a página inicial do portal Liferay. A autenticação de testes é

feita com o correio electrónico «[email protected]» e a palavra passe «test».

Figura 22 – Página Inicial do Portal Liferay

5.1.5. Servidor Pentaho 3.6

O desenvolvimento de Business Intelligence não é objectivo da Dissertação, pelo que é

desprezada a apresentação e configuração das ferramentas disponibilizadas na Pentaho BI Suite,

referidas no capítulo 4. Interessa apenas configurar o servidor para a implementação da

integração das tecnologias e funcionamento da plataforma Pentaho BI no conjunto da solução.

Configuração do servidor

1) No sítio da Pentaho, nos projectos da comunidade, fazer o download do servidor

Tomcat com a plataforma Pentaho BI;

2) Configurar as seguintes Variáveis de Ambiente do Windows:

a. «CATALINA_HOME» a apontar para o directório do servidor Tomcat da

plataforma;

b. «CATALINA_OPTS» com o seguinte valor:

-Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

3) Iniciar a plataforma de BI executando o ficheiro «start-pentaho.bat» localizado na

pasta «biserver-ce» do ficheiro transferido e extraído;

4) Para experimentar ou trabalhar com a plataforma de imediato, basta aceder através do

navegador de internet, a http:/localhost:8080/;

5) Para acrescentar fontes de dados à plataforma, aceder à consola de administração que

pode ser iniciada com a execução do ficheiro «start-pac.bat» na pasta

«administration-console».

A página inicial do servidor deverá apresentar-se conforme a Figura 23.

Desenvolvimento e Implementação

44

Figura 23 – Página Inicial do Servidor da Plataforma Pentaho BI

Depois da configuração do servidor da plataforma Pentaho BI, pode-se explorar as

demonstrações da plataforma.

Para todas as tarefas de BI (ETL, Reporting, etc.) é necessário o download das respectivas

ferramentas da plataforma.

5.2. Especificação da Implementação

Sobre a especificação da implementação, em primeiro lugar são apresentados os métodos

de desenvolvimento utilizados durante a concepção e implementação da solução.

Em segundo lugar é apresentado a visão e o funcionamento geral da solução desenvolvida

com base nas tecnologias apresentadas anteriormente.

Depois, são apresentadas as opções de integração e as especificações da implementação

das tecnologias.

5.2.1. Método de Desenvolvimento

No desenvolvimento da solução foram usados processos ágeis de desenvolvimento de

software da metodologia XP (Extreme Programming). (Wells, 2010)

Apesar de haver outros processos de desenvolvimento ágeis, os processos da metodologia

XP são os mais adequados ao tipo de projecto/desenvolvimento que se pretende fazer. O XP

adequa-se bem quando os requerimentos do sistema podem mudar ao longo da implementação

ou não há uma ideia concreta da solução final. Nesta metodologia, o desenvolvimento é feito

com pequenas equipas, com o método de «Programação em Pares», do original Pair

Programming. A implementação da solução é feita de forma iterativa e a programação das

funcionalidades feita por pares de programadores num só computador. O tempo de

desenvolvimento deste método em comparação com o tempo de desenvolvimento das

funcionalidades por programadores independentes estima-se que seja equivalente mas, a

qualidade do código de programação é quase sempre superior. Contudo, neste aspecto, a

implementação efectuada foi feita apenas pelo autor.

O conceito usado e mais relevante desta metodologia é a «História do Utilizador», do

original User Story. Uma User Story descreve um problema a ser resolvido pelo sistema-

Desenvolvimento e Implementação

45

solução. Não descreve a solução, não usa linguagem técnica, nem expressões típicas dos

tradicionais levantamentos de requisitos. Em vez disso, utilizam-se expressões simples e

directas sobre o que sistema “faz”, como se se tratassem de comandos ao sistema. Num

levantamento de requisitos tradicional, corresponde aos requisitos funcionais e não funcionais.

Do XP, foi ainda utilizado o Test-driven Development que pode ser traduzido como

«Desenvolvimento Orientado a Testes». Neste tipo de desenvolvimento os métodos de teste são

implementados primeiro que os métodos funcionais a testar. A vantagem principal deste tipo de

desenvolvimento é o teste da aplicação em pequenos passos e a possibilidade de reformular e

aprovar o seu desenho antes de avançar com a implementação de novas funcionalidades.

Contudo, apesar de aparentemente ser um princípio básico, requer uma grande disciplina, já que

a tendência do programador é fazer precisamente o oposto. (Ambler, 2010)

5.2.2. Visão Geral

A aplicação de gestão de recursos móveis consiste numa aplicação Web desenvolvida em

Spring Portlet MVC Framework, que funcionará como um plugin para portais Web.

A aplicação é constituída por vários Portlets, cada um com a sua funcionalidade. Por sua

vez, apesar de os Portlets serem implementados como módulos funcionais independentes, no

seu conjunto, fazem parte de uma única aplicação Spring, onde partilham os dados e a lógica

entre si, implementando assim todas as funcionalidades da aplicação.

Como se trata de uma aplicação baseada em Portlets ela não funciona por si só, necessita

de um portal (um Portlet Container) onde possa ser alojada.

A Figura 24 ilustra a organização e estrutura do modelo da aplicação descrito. Contendo a

aplicação Web a definição dos Portlets, a estrutura e a lógica da aplicação e as tecnologias de

persistência dos dados na Base de Dados (BD). Neste caso, o acesso à BD é feito através de um

mapeamento objecto-relacional com Hibernate3. O portal Liferay funciona de forma

independente e suporta aplicações Web desenvolvidas com a Spring Portlet MVC Framework

que, por sua vez, fornece todas as tecnologias necessárias ao desenvolvimento da aplicação

MRM.

Figura 24 – Modelo da Aplicação Web

Desenvolvimento e Implementação

46

O portal Liferay necessita da sua própria BD para funcionar. Na BD, o portal persiste toda

a informação sobre os utilizadores, a sua gestão (hierarquia, permissões, etc.), a organização do

portal, as estrutura das páginas Web dinâmicas, a localização dos temas, das imagens, etc. Ou

seja, o portal persiste todas as suas funcionalidades e configurações nas suas próprias tabelas, na

BD.

A Arquitectura Geral da Solução (apresentada na Figura 25) ilustra o funcionamento de

toda a solução e a organização das suas diferentes camadas e módulos.

Figura 25 – Arquitectura Geral da Implementação da Solução

Nesta solução existem várias Bases de Dados envolvidas. O portal tem uma BD

independente da BD OLTP da aplicação MRM. A plataforma de BI, dada a sua arquitectura,

necessita das suas próprias Bases de Dados operacionais e uma Data Warehouse onde irá

persistir os dados já modelados.

O acesso ao portal pode ser feito através de dispositivos móveis ou através de

computadores pessoais. No contexto empresarial apresentado, os dispositivos móveis estão

associados aos Operacionais de Front Office e os computadores pessoais aos Operadores de

Back Office. O portal será o responsável por gerir o acesso e a apresentação dos Portlets nas

diferentes perspectivas dos utilizadores.

Para a componente de BI, o acesso aos dados da aplicação MRM é feito através das

ferramentas Pentaho que irão, por sua vez, recorrer ao motor da plataforma Pentaho BI para

executar as tarefas associadas à modulação dos dados. As tarefas de BI irão resultar em

indicadores de Apoio à Decisão, em forma de relatórios e gráficos que poderão ser visualizados

em Portlets iFrame. Estes Portlets limitam-se a requisitar a visualização dos indicadores através

de pedidos URL ao servidor Pentaho.

Desenvolvimento e Implementação

47

5.2.3. Base de Dados

O Modelo Relacional da Base de Dados desenvolvido e implementado é apresentado na

Figura 26.

Figura 26 – Modelo Relacional UML da Base de Dados OLPT

A camada de persistência da aplicação necessita de uma Base de Dados desenhada à

medida do negócio. Assim, para o efeito de prova, supôs-se que a BD deveria suportar um

Desenvolvimento e Implementação

48

negócio de instalação e manutenção de dispositivos em casa de clientes e capaz de guardar

indicadores primários de BI suficientes para a demonstração da componente de Apoio à

Decisão.

Segue-se a explicação e a descrição de todos os objectos representados do Modelo

Relacional (Figura 26), incluindo as suas relações:

Utilizadores – toda a informação relativa aos utilizadores do sistema MRM. Os

utilizadores são classificados por tipos de utilizadores (operadores, operacionais,

administradores, etc.), têm estados (de baixa, activo, de férias, etc.), têm uma

classificação de desempenho e podem estar associados a uma Deslocação ou mais.

Tipos_Utilizadores – todos os tipos de utilizadores do sistema. Os utilizadores

têm que ter sempre associado um tipo.

Estado_Utilizadores – todos os tipos de estados dos utilizadores do sistema. Os

utilizadores têm que ter sempre associado um estado.

Classificacoes_Colaboradores – histórico de todas as classificações atribuídas

aos utilizadores ao longo do tempo. A classificação pode estar associada a um factor de

desempenho e todos os colaboradores têm que ter uma classificação.

Utilizadores_has_TempoPrevisto – todos os tempos previstos de cada utilizador

para a execução de cada um dos tipos de tarefas. Permite avaliar o tempo que cada

utilizador demora a executar as tarefas, em função do tipo de tarefa.

Tarefas – toda a informação necessária à execução das tarefas. As tarefas podem

ter um cliente e/ou um dispositivo associado que, por sua vez estará necessariamente

atribuido a um cliente. As tarefas têm tipos de tarefas e problemas relativos à falha da

execução das mesmas.

Tipos_Tarefas – todos os tipos de tarefas do sistema. Todas as tarefas têm que

necessariamente ter um tipo.

Tarefas_has_Tipos_Problemas – todos os problemas associados à não execução

de uma tarefa. Ou seja, cada tarefa pode ter um ou mais problemas pré-definidos

associados à falha da sua execução.

Tipos_Problemas – todos os tipos de problemas associados à falha da execução

das tarefas do sistema. As tarefas executadas com sucesso não têm problemas

associados.

Clientes – toda a informação relativa aos clientes. Os clientes podem ter zero ou

mais dispositivos associados assim como, tarefas.

Dispositivos – toda a informação relativa aos dispositivos que podem ser

necessários à execução das tarefas e atribuídos a clientes.

Tipos_Dispositivos – todos os tipos de dispositivos. Todos os dispositivos têm que

necessariamente ter um tipo.

Deslocacoes – toda a informação necessária a uma deslocação. A tabela de

deslocações é o objecto central do modelo relacional. Uma deslocação pode ter mais do

que uma tarefa associada a essa deslocação. Contudo, uma deslocação tem apenas um

utilizador que a irá efectuar. Uma deslocação pertence sempre a um percurso a realizar

por um utilizador.

Percursos – toda a informação relativa ao histórico dos percursos, incluindo os

quilómetros previstos para o percurso. Os percursos são constituídos por movimentos

entre deslocações.

Movimentos – toda a informação calculada pelo dispositivo do utilizador entre

duas deslocações. Efectua um histórico dos movimentos efectuados entre duas

deslocações.

Tipos_Estados_Percursos – todos os tipos de estados dos percursos. Os percursos

têm que necessariamente ter um estado associado.

Dos objectos descritos, interessa destacar a solução utilizada para persistir os percursos a

efectuar pelos utilizadores. A ideia surge da necessidade de um utilizador ter mais do que uma

deslocação a efectuar num dia e ser necessário um percurso para percorrer essas deslocações. Os

Desenvolvimento e Implementação

49

percursos têm um movimento entre duas deslocações. As deslocações são ordenadas numa

sequência de movimentos. O conjunto dos movimentos entre deslocações consecutivas forma o

percurso a efectuar.

A dinâmica dos percursos apresentada permite calcular no Back Office a sequência das

deslocações que minimiza os quilómetros percorridos e passar para o Front Office apenas o

ficheiro com um formato de itinerário que deverá ser carregado por um dispositivo GPS

apropriado.

Os formatos de ficheiros de itinerários mais conhecidos são GPX (GPS Exchange Format),

ITN (TomTom Navigator Itinerary File) e KML (Keyhole Markup Language File, usado no

Google Earth).

O modelo permite ainda suportar as modificações ao percurso de um utilizador. Ou seja,

permite fazer um replaneamento das tarefas e dos percursos ao longo do dia e guardar o seu

histórico.

5.2.4. Spring Portlets

Na aplicação Spring existem 3 camadas. A camada de «Visualização» ou View

corresponde à componente de visualização dos Portlets no portal. A camada da Integração

Aplicacional corresponde à estrutura e lógica da aplicação e, na perspectiva do modelo MVC,

ao módulo Controller. A camada da abstracção da Base de Dados, o módulo Model do modelo

MVC, corresponde à tecnologia Hibernate3 que faz o mapeamento objecto-relacional (ou

camada ORM).

A Persistência Nesta solução a persistência é feita através do mapeamento das Entidades (classes POJO –

Plain Old Data Objects) para o Modelo Relacional da BD, através de anotações da API Java

Persistence – Java Persistence Annonations (JPA) – na própria classe da Entidade. Nestas

«Entidades JPA» ou «Entidades Anotadas», o mapeamento é feito através destas anotações do

JDK 5.0 em detrimento dos ficheiros hbm.xml (o ficheiro Hibernate3, descritor do mapeamento

objecto-relacional em formato XML).

Sobre as Entidades está a camada Data Access Object (DAO). O DAO é uma técnica de

persistência que separa o objecto a persistir (a Entidade) da lógica de acesso à Base de Dados.

Na solução é utilizada a framework de persistência Spring DAO.

Esta framework utiliza um método simples para configurar o acesso à BD através da

framework EJB da plataforma Java EE. O método consiste na criação de um Spring Bean com a

configuração do acesso à BD (um DataSource Bean) que é injectado nas classes DAO. Ou seja,

para o efeito, cada classe DAO é definido um novo Bean que o associa ao DataSource Bean.

Além do mapeamento a API do Hibernate3 permite gerir as ligações e as transacções dos

DAO aos dados através de «Sessões» (Session). Estas «Sessões» são criadas/estabelecidas

através do SessionFactory da API do Hibernate3.

Assim, resumidamente, o DAO tem associado a si um DataSource e uma Entidade (POJO).

O DAO implementa os métodos de persistência das Entidades no DataSource que, no caso, será

uma Base de Dados. Os métodos dos DAO estabelecem «Sessões» de ligação à Base de Dados

(BD) através do SessionFactory do Hibernate3. As «Sessões» gerem as ligações e as

transacções para a BD, onde o mapeamento das Entidades para os Objectos da BD é feito

através das anotações (JPA) nas próprias classes das Entidades.

A Estrutura e Lógica da Aplicação A lógica da aplicação está distribuída por um componente de serviços e por um

componente Web.

O componente de serviços é constituído por métodos gestores (Managers) que aplicam a

lógica de negócio relativa à execução de tarefas, cálculos e operações com objectos. Estes

métodos prestam serviços à componente Web e utiliza a camada DAO para a persistência dos

objectos/entidades.

Desenvolvimento e Implementação

50

A componente Web implementa os «Controladores» (Controllers) da aplicação, onde cada

classe Controller corresponde a um Portlet da aplicação. Assim, cada Portlet tem a sua classe

Controller que gere a sua visualização e recebe os comandos do utilizador. Ou, por outras

palavras, os Controllers de cada Portlet chamam os serviços e gerem a sua visualização de

acordo com os comandos do utilizador.

Os Controllers requisitam ainda os serviços de uma componente de validação para efectuar

todo o tipo de validações relativas aos comandos do utilizador e às operações das classes

Managers, de acordo com a lógica do negócio.

A visualização dos Portlets é implementada em JavaServer Pages (JSPs) (de acordo com a

arquitectura) e com suporte para JavaScript (JS) e Cascading Style Sheets (CSS).

Todo o modelo de funcionamento da aplicação descrito pode ser visualizado na Figura 27.

Figura 27 – Modelo e Funcionamento da Aplicação Web

Conforme já referido, esta implementação da aplicação Web é feita no SpringSource Tool

Suite (IDE) com recurso à Spring Framework ou, mais especificamente, à Spring Portlet MVC

Framework.

O desenvolvimento foi feito a partir de um projecto Spring criado de raiz e está dividido

pelos componentes mencionados. Ou seja, cada componente da estrutura da aplicação

corresponde a um «Pacote» (Package) do projecto (ver Figura 28).

A compilação e publicação da aplicação no servidor do portal Liferay são feitas pela

ferramenta de compilação Java, Apache Ant através de um ficheiro build.xml desenvolvido à

medida da aplicação.

Desenvolvimento e Implementação

51

Figura 28 – Organização do Projecto no IDE

Configuração da aplicação A configuração da aplicação é dividida em três ficheiros essenciais: web.xml,

portlet.xml e applicationContext.xml.

O web.xml tem as configurações gerais da aplicação ao nível do servidor: configuração

relativa ao sistema de logs do servidor, caminho do ficheiro de configuração do contexto da

aplicação, configuração dos pedidos de renderização, etc.

O applicationContext.xml tem a declaração e configuração de todos os Spring Beans

associados à camada de persistência, entre outras tecnologias disponibilizadas através da Spring

Framework, tais como: Beans para resolução das vistas (JSPs),para tratamento de excepções,

para internacionalização da aplicação, etc.

O portlet.xml tem a declaração dos Portlets da aplicação e todas as configurações

associadas aos mesmos.

Existem ainda os ficheiros XML de configuração de cada Portlet. Este ficheiro de

configuração define o Controller do respectivo Portlet, entre outras definições de contexto que

podem ser específicas do Portlet.

Desenvolvimento e Implementação

52

Figura 29 – Estrutura da Aplicação Web

5.2.5. Portal Liferay

A configuração da aplicação relativa ao portal Liferay está dividida por três ficheiros:

liferay-plugin-package.properties, liferay-display.xml e liferay-portlet.xml.

O liferay-plugin-package.properties define as propriedades genéricas da aplicação

que funcionará como um plugin para o portal. Um plugin do portal pode ter, entre outras

propriedades, um nome, uma descrição, um autor, uma página de suporte, etc.

O liferay-display.xml declara e configura a categoria dos Portlets da aplicação para o

portal Liferay. Outras definições dos Portlets no portal são feitas no liferay-portlet.xml.

Além do desenvolvimento da aplicação da solução MRM, foi feito um estudo ao acesso do

portal através de smartphones.

Nesse estudo foi desenvolvido um tema e uma funcionalidade para o portal, com as

respectivas estratégias de desenvolvimento Theme e Hook.

O tema desenvolvido altera o CSS e o layout das páginas onde for aplicado. Apresenta os

Portlets da página numa única coluna e a faz o seu redimensionamento, adequando a

visualização do portal para smartphones.

A funcionalidade desenvolvida (o Hook) faz o redireccionamento dos utilizadores para

uma página do portal, quando é acedido por um iPhone ou Android e se efectua a autenticação.

Sem esta funcionalidade o utilizador fica na mesma página inicial após a autenticação. Esta

funcionalidade foi desenvolvida em Velocity1.

Assim, com estas duas implementações é possível redireccionar o utilizador que acede por

um smartphone directamente para a página que tem o tema adaptado ao dispositivo.

1 O Apache Velocity Engine é um motor de templates, de Código Aberto e gratuito. O Velocity

permite o uso de uma linguagem para implementar templates que referenciam objectos definidos em

código Java.

Desenvolvimento e Implementação

53

5.2.6. Pentaho - Business Intelligence

Entre outros tipos de acesso, a plataforma Pentaho BI permite fazer pedidos e aceder

directamente aos conteúdos gerados (gráficos, dashboard, etc.), resultantes das tarefas de BI,

através de URL.

Todas as tarefas executadas pela plataforma Pentaho BI são definidas por ficheiros XML

denominados Action Sequence. Tal como o nome sugere, estes ficheiros XML definem uma

«sequência de acções» ou seja, definem actividades como queries a Bases de Dados, geração de

relatórios, envio de Emails, etc. e permitem a passagem de dados entre acções dentro do mesmo

Action Sequence ou entre diferentes Action Sequences.

O que a plataforma permite é especificar no URL o Action Sequence correspondente ao

conteúdo que se pretende visualizar, juntamente com os dados de autenticação no servidor.

Depois, o conteúdo é gerado e carregado em páginas HTML.

Por conseguinte, a solução para a integração da componente de Apoio à Decisão no portal

baseia-se precisamente nesta funcionalidade da plataforma através de iFrame Portlets. Esses

Portlets podem ser desenvolvidos de forma mais ou menos sofisticada mas, todos tem o

objectivo de embeber outras páginas HTML dentro do portal. Desta forma, é possível ter um

conjunto de iFrame Portlets pré-definidos com pedidos URL de indicadores da plataforma

Pentaho BI.

Esta solução adoptada permite construir dinamicamente um Painel de Indicadores no portal

Liferay ou construi-lo com a ferramenta Pentaho apropriada e fazer posteriormente o pedido do

mesmo, através de iFrame Portlets.

5.3. Resultados Alcançados

Os estudos, testes e desenvolvimentos efectuados permitem perceber o modo de

implementação, a evolução e a potencialidade das tecnologias utilizadas para a solução.

No caso particular da integração da plataforma Pentaho BI no portal, esperava-se uma

integração mais sofisticada relativamente à apresentada. Existe alguma documentação que

indica que a plataforma inclui Portlets desenvolvidos para integração em portais. Esta

possibilidade foi testada através de intercomunicação de Portlets mas, os resultados

demonstraram que essa funcionalidade ainda não se encontra verdadeiramente funcional e

aplicável. O resultado mais próximo que se conseguiu foi ter o portal Liferay e a plataforma

Pentaho BI no mesmo servidor Tomcat e apresentar um Portlet HTML da plataforma no portal.

Os Portlets mais sofisticados e de real interesse não funcionam no portal.

Esta via de integração pode ter falhado por um de dois motivos. O primeiro motivo pode

prender-se simplesmente com o facto de a funcionalidade dos Portlets da plataforma Pentaho BI

não estar terminada. O segundo motivo pode dever-se à não compatibilidade dos Portlets

implementados na plataforma Pentaho BI, com a versão do portal utilizada. Contudo, o último

motivo é pouco provável, já que o conceito de Portlet é precisamente ser desenvolvido sobre

uma norma e ser portável entre portais.

A pesquisa sobre esta solução de integração da plataforma Pentaho no portal tornou-se

difícil devido à fraca documentação mantida pela comunidade, quer em quantidade, quer na

qualidade dos documentos. Para todas as outras tecnologias das funcionalidades do sistema foi

sempre encontrada a documentação necessária. Embora, no geral, o facto de estas frameworks

de Código Aberto estarem em constante evolução, torna difícil o trabalho das comunidades

acompanharem a evolução e actualizarem a documentação em tempo útil. Como exemplo,

destaca-se novamente a plataforma Pentaho que só no ano 2010 teve três lançamentos de

versões finais, mas a documentação encontrada sobre os temas necessários estão datados de

2006 a 2009.

Dado o insucesso desta solução de integração foi necessário encontrar uma solução

alternativa que permitisse disponibilizar a componente de Apoio à Decisão no portal. Assim, a

alternativa encontrada consiste em formular pedidos de Indicadores ou Painéis de Indicadores

de BI à plataforma Pentaho através de URL, conforme especificado na secção 5.2.6. Ou seja, a

Desenvolvimento e Implementação

54

plataforma permite publicar, no servidor da mesma, os gráficos ou outros indicadores de BI e

acedê-los directamente através de URL num Navegador Web. Esta funcionalidade pode ser

utilizada no portal com iFrame Portlets.

Em relação ao estudo inicial sobre a integração das tecnologias, apenas a plataforma

Pentaho obrigou a busca de uma alternativa na estratégia. As restantes tecnologias foram

integradas como inicialmente previsto.

Os resultados finais alcançados incluem a implementação total da arquitectura proposta

(mostrada na Figura 10), com a integração e a prova do funcionamento conjunto de todos os

seus componentes, através das seguintes acções:

Desenvolvimento de uma aplicação que demostra a integração das tecnologias em

Spring Portlet MVC, com toda a configuração em XML necessária e construtor Ant à

medida (Figura 30);

Integração da aplicação desenvolvida em Spring Portlet MVC com o portal Liferay

(Figura 30);

Desenvolvimento de um tema simples para smartphone (estratégia de desenvolvimento

Theme do Liferay) (Figura 31);

Desenvolvimento de novas funcionalidades para o portal Liferay com Velocity

(estratégia de desenvolvimento Hook do Liferay), tais como:

o Redireccionamento do utilizador para a sua página pessoal após a autenticação

no portal;

o Redireccionamento do acesso dos utilizadores ao portal através de iPhone ou

Android para a visualização adaptada aos dispositivos;

Integração da plataforma Pentaho BI com o portal Liferay através de iFrame Portlets

com pedidos URL à plataforma dos indicadores de BI (Dashboards, Gráficos,

Relatórios, etc.) (Figura 32);

Prova do não funcionamento da intercomunicação dos Portlets da plataforma Pentaho

BI com o portal Liferay, apesar de estar previsto o seu desenvolvimento e estarem

declarados na Community Edition da plataforma.

Conforme as acções descritas, para integrar e testar as tecnologias solução MRM foi

necessário recorrer a diferentes estratégias de desenvolvimento e desenvolver diferentes

projectos nas diferentes frameworks.

Da Figura 30 à Figura 32 são mostrados alguns dos resultados alcançados.

Na Figura 30 é possível verificar a integração da aplicação MRM desenvolvida em Spring

Portlet MVC Framework no portal Liferay. Do lado esquerdo da imagem, o menu de adição de

Portlets ao portal, onde o Portlet desenvolvido se encontra sob o submenu “Spring Portlet”. Do

lado direito da imagem, o respectivo Portlet, já adicionado.

Para o efeito de teste e demonstração das tecnologias da aplicação MRM, foi desenvolvido

o Portlet que faz a gestão dos tipos de tarefas da solução. Através deste é possível pré-definir os

tipos de tarefas do sistema, efectuando as operações CRUD dos objectos Tipo de Tarefa sobre a

Base de Dados.

Desenvolvimento e Implementação

55

Figura 30 – Demonstração do Portal e do Portlet Spring da Aplicação MRM

A Figura 31 mostra o resultado da estratégia Theme desenvolvida para o portal, onde o

mesmo Portlet (mostrado na Figura 30) é redimensionado e colocado numa única coluna junto

com outros Portlets. O Hook desenvolvido complementa esta funcionalidade, permitindo o

redireccionamento do utilizador para na página do portal com os Portlets que se pretendem

visualizar em smartphone.

Para o efeito, foi utilizado um emulador de smartphone com o sistema operativo Android.

Figura 31 – Demonstração do Tema do Portal Liferay para Smartphone

Na Figura 32 é possível visualizar o resultado da solução adoptada para a integração da

componente de Apoio à Decisão na solução. Na figura, são mostrados diferentes indicadores de

BI, de exemplo na plataforma Pentaho BI, no portal Liferay.

Desenvolvimento e Implementação

56

Figura 32 – Demonstração de Painel de Indicadores Pentaho no Liferay

Como o desenvolvimento efectuado é um desenvolvimento de teste e demonstração das

tecnologias, não houve cuidados especiais com a aparência e/ou enquadramento dos Portlets no

portal.

Em suma, os resultados satisfazem plenamente os objectivos da Dissertação, pois

permitem verificar a adequação e integração das tecnologias da solução apresentada às

exigências das funcionalidades esperadas para a aplicação MRM.

As tecnologias utilizadas permitem o desenvolvimento de uma aplicação consistente,

escalável e versátil que pode originar diferentes aplicações MRM adaptadas para diferentes

áreas de negócio. Com estes resultados é possível prever uma aplicação que funcionará com

base numa Base de Dados OLTP e que permitirá operar de forma eficaz, com a possibilidade da

actualização dos estados dos colaboradores em tempo real. O sucesso da integração da

componente de Business Intelligence irá permitir a análise dos dados gerados pelo sistema e

uma componente forte de Apoio à Decisão. Este facto associado às restantes funcionalidades

totalmente desenvolvidas com tecnologias de Código Aberto torna esta aplicação MRM uma

aplicação simples, de baixo custo e inovadora, em função das soluções existentes no mercado.

57

Capítulo 6

Conclusões e Trabalho Futuro

Nesta Dissertação foi concebida uma solução empresarial inovadora que é capaz de gerir

recursos móveis em tempo real e que integra uma componente de Apoio à Decisão. O seu

desenvolvimento foi feito com recurso às melhores práticas de desenvolvimento e às mais

recentes e evoluídas tecnologias de Código Aberto.

A Dissertação envolve um trabalho extenso que se inicia com a fase de enquadramento da

solução a desenvolver no mercado actual, incluindo o posicionamento da solução no mercado,

face às soluções existentes. Na fase seguinte foi feito todo o trabalho de concepção da solução,

com o estudo das frameworks candidatas e das respectivas tecnologias. Na terceira fase foi feita

a demonstração da solução integrada, com o teste e integração das tecnologias numa aplicação

empresarial Java, incluindo o suporte da componente de Apoio à Decisão com a plataforma de

BI. A quarta fase corresponde à escrita e apresentação de todo o trabalho desenvolvido na

Dissertação.

Devido à sua extensão e às tecnologias utilizadas, o trabalho desenvolvido foi bastante

desafiador. Os trabalhos da Dissertação foram executados exclusivamente pelo autor e sem

qualquer tipo de formação prévia sobre as frameworks utilizadas. A aprendizagem foi feita

através de um estudo inicial mas, principalmente aquando da implementação e teste das

tecnologias da solução. Por sua vez, as tecnologias e frameworks de Código Aberto, pelo facto

de estarem em constante evolução e fazerem parte do Estado da Arte, nem sempre têm a

documentação adequada e o melhor suporte ao desenvolvimento.

Contudo, os resultados alcançados consideram-se muito satisfatórios, na medida em que

todos os objectivos intermédios previstos foram alcançados e como tal, o objectivo principal

atingido: a concepção e teste da arquitectura e infraestrutura da aplicação empresarial capaz de

responder aos requisitos esperados para a aplicação MRM num contexto empresarial.

A solução foi desenvolvida com as tecnologias da plataforma Java EE, uma plataforma

transversal, suportada por múltiplas plataformas de desenvolvimento (Oracle, 2010). Sobre esta

plataforma foi desenvolvida uma aplicação de demonstração com recurso as tecnologias

enunciadas que se integra facilmente num portal, neste caso, no portal Liferay. Por sua vez, o

acesso de dispositivos móveis ao portal Liferay ficou testado com o desenvolvimento de um

tema (Theme) para smartphone cujo principal objectivo é adaptar a visualização dos Portlets

para o respectivo dispositivo. Assim como, ficou testado o desenvolvimento de um Hook para o

portal Liferay que detecta e faz o redireccionamento de smartphones para a página adequada ao

dispositivo. Ainda, a componente de Apoio à Decisão ficou integrada na solução através da

possibilidade da visualização dos gráficos e/ou Painéis de Indicadores da plataforma Pentaho no

portal Liferay.

Conclusões e Trabalho Futuro

58

O desenvolvimento efectuado permitiu trabalhar com as diversas estratégias de

desenvolvimento das diferentes frameworks. Para o efeito, foi necessário recorrer a diferentes

linguagens e tecnologias desde o DI da Spring Framework ao Velocity do portal Liferay.

As plataformas e tecnologias seleccionadas para o desenvolvimento da Dissertação foram

escolhidas com base nas suas funcionalidades e no seu Estado da Arte. A framework de

desenvolvimento da Spring Source é das mais avançadas e das que mais tecnologia dispõe, é

completamente modular, permitindo ao programador utilizar exactamente aquilo que precisa da

framework, tendo sempre a hipótese de integrar diferentes tecnologias na sua aplicação. Além

disso, a framework é orientada à utilização do padrão de arquitectura MVC (SpringSource,

2010).

No caso do portal Liferay e da plataforma Pentaho BI, representam o Estado da Arte nas

respectivas categorias de portais e plataformas de BI de Código Aberto. O Liferay é

amplamente usado e testado, com diversos parceiros importantes no universo das TI. A

plataforma Pentaho BI, essencialmente ao nível da Arquitectura, ambiente gráfico e usabilidade,

é a solução de BI de Código Aberto que maior potencial apresenta.

Trabalho Futuro Tendo em conta as funcionalidades previstas para a solução MRM final, a aplicação só fica

completa após o desenvolvimento dos restantes Portlets da aplicação Spring, incluindo o

desenvolvimento e implementação de um algoritmo de planeamento e escalonamento das

tarefas e a geração de percursos para os Operacionais (com exportação para ficheiros de

itinerários para dispositivos GPS). Além disso, recomenda-se o desenvolvimento de um tema

mais adequado para o portal e para smartphone.

Na componente de Business Intelligence será necessário construir dashboards a partir dos

dados resultantes do funcionamento da aplicação MRM, com recurso às ferramentas da

plataforma Pentaho BI.

Ainda na componente de BI, recomenda-se o desenvolvimento de iFrame Portlets que se

adaptem à visualização dos dashboards que forem construídos.

A integração das tecnologias foi testada e a viabilidade da solução foi demonstrada mas, só

após a conclusão destas recomendações é que será possível analisar e provar toda a

potencialidade da solução MRM concebida.

59

Referências

Aberdeen Group. Dezembro 2009. Enterprise Mobility 2010 - More Productivity, Same

Budget. s.l. : Aberdeen Group, Dezembro 2009.

—. 2009. More Mobility – Less Budget: The 2009 Enterprise Mobility Benchmark.

Aberdeen Group Web Site. [Online] Janeiro 27, 2009. http://www.aberdeen.com/aberdeen-

library/5909/RP-enterprise-mobility-applications.aspx.

Accenture. 2010. Accenture Innovation Center for Open Source. [PDF Document] 2010.

—. 2010. Accenture Innovation Center for Open Source. Accennture Web Site. [Online]

2010.

http://www.accenture.com/Global/Technology/Systems_Integration_Consulting/Services/Innov

ationOpenSource.htm.

—. 2010. Accenture Mobile Solutions - Unleashing the power of mobility solutions for

enterprise. [Online] 2010. http://www.accenture.com/NR/rdonlyres/22EE0D46-D554-4A8B-

A04D-5E8C19E405D8/0/Accenture_Mobile_Solutions.pdf.

—. 2010. Accenture Open Source Solutions. Accenture Web Site. [Online] 2010.

http://www.accenture.com/Global/Technology/Open_Source/default.htm.

AICEP . 2010. Portugal - Ficha País (Março 2010). s.l. : Agência para o Investimento e

Comércio Externo de Portugal, 2010.

Ambler, Scott W. 2010. Introduction to Test Driven Design (TDD). [Online] 2010.

http://www.agiledata.org/essays/tdd.html#WhatIsTDD.

Cisco. 2010. Cisco Context-Aware Mobility Solution: Presence Applications. Cisco

Systems Web Site. [Online] 2010.

https://www.cisco.com/en/US/solutions/collateral/ns340/ns394/ns348/ns788/brochure_c22-

497557.html.

—. 2010. Context-Aware Mobility Video. Cisco Systems Web site. [Online] 2010.

https://www.cisco.com/web/strategy/wireless/cam_grn_scrn_vid.html.

—. 2010. IBM - Strategic Alliances - Cysco Systems. Cisco Systems Web Site. [Online]

2010. http://www.cisco.com/web/partners/pr67/pr30/partners_strategic_alliance_.html.

—. 2010. Soluções de mobilidade - Cisco Systems. Cisco Systems Web Site. [Online]

2010. http://www.cisco.com/web/PT/solutions/mobility_index.html.

CSC. 2010. CSC Mobile Enterprise. CSC Web Site. [Online] 2010.

http://www.csc.com/managed_network_services/offerings/41553/41598-mobile_enterprise.

—. 2010. Mobile Executive: solutions for movers & shakers. [PDF Document] 2010.

—. 2010. Mobile Worker: powerfull solutions keep you moving. [PDF Document] 2010.

E-Commerce Times. 2009. E-Commerce News: Handled Devices: Enterprise Mobility:

An Investment That Works Harder, Smarter. E-Commerce Times Web Site. [Online] Setembro

4, 2009.

http://www.ecommercetimes.com/story/66742.html?wlc=1271670252&wlc=1272456443&wlc

=1272896028&wlc=1278256927.

Fowler, Martin. 2004. Martin Fowler - Inversion of Control Containers and the

Dependency Injection Pattern. Martin Fowler's Blog. [Online] 2004.

http://martinfowler.com/articles/injection.html.

Referências

60

Geoglobal. 2010. Geoglobal :: GeoMob. Geoglobal Web Site. [Online] 2010.

http://www.geoglobal.pt/ser_detalhe.php?aId=61.

—. 2008. GeoMob: Solução de Gestão e Controlo de Bens e Recursos Móveis. [Online]

2008. http://www.idc.pt/downloads/events/pres_2008-02-26/07_Geoglobal_2.pdf.

HP. 2010. Mobile Applications Services. HP Enterprise Services. [Online] Julho 2010.

https://h10134.www1.hp.com/services/mobileapps/.

IAPMEI. 2008. Sobre as PME em Portugal. 2008.

Intergraph Corporation. 2005. Mobile Resource Management and Beyond. Directions

Magazine. [Online] 17 de Abril de 2005.

http://www.directionsmag.com/article.php?article_id=831.

Liferay. 2010. Lifery Portal - Development Documentation. [PDF Document] s.l. : Connor

McKay, Editor, 2010.

Liferay, Inc. 2010. Enterprise open source portal and collaboration software. Liferay.com.

[Online] 2010. http://www.liferay.com/.

Ministério da Ecónomia e da Inovação. IAPMEI - Estudos e Informação Económica -

Sectores, Fileiras e Clusters. Instituto de Apoio às Pequenas e Médias Empresas e à Inovação.

[Online] http://www.iapmei.pt/iapmei-art-02.php?id=228&temaid=15.

MySQL. 2010. MySQL :: Download MySQL Workbench. MySQL.com. [Online] 2010.

http://www.mysql.com/downloads/workbench/.

Oracle. Introducing Java Portlet Specifications: JSR 168 and JSR 286. Sun Developer

Network. [Online] http://developers.sun.com/portalserver/reference/techart/jsr168/.

—. 2010. J2EE[tm] Design Patterns > Design Patterns Catalog. J2EE Patterns Catalog.

[Online] 2010. http://www.oracle.com/technetwork/java/index-jsp-136701.html.

—. 2010. Java BluePrints - J2EE Patterns. Java BluePrints: Model-View-Controller.

[Online] 2010. http://www.oracle.com/technetwork/java/mvc-detailed-136062.html.

—. 2010. Java Blueprints Patterns. Sun Developer Network. [Online] 2010.

http://java.sun.com/blueprints/patterns/index.html.

—. 2010. Java Blueprints: Guidelines, Patterns, and code for end-to-end Java applications.

Oracle Technology Network. [Online] 2010. http://www.oracle.com/technetwork/java/index-

jsp-136701.html.

—. 2010. Oracle Technology Network for Java Developers. Oracle Web Site. [Online]

2010. http://www.oracle.com/technetwork/java/index.html.

—. 2010. Your First Cup: An Introduction to the Java EE Platform. [PDF Document]

2010. PartNo: 821–1770–11.

Pentaho Community. 2008. Pentaho Community Wiki. 02. Architecture - BI Platform -

Pentaho Wiki. [Online] Janeiro 30, 2008.

http://wiki.pentaho.com/display/ServerDoc2x/02.+Architecture.

Pentaho Corporation. 2010. Data mining and machine learning used to help you

understand the business better and also improve future performace through predictive analytics.

Weka Project: Pentaho Data Integration. [Online] 2010. http://weka.pentaho.com/.

—. 2008. Introducing the Pentaho BI Suite Community Edition. [PDF Document] 2008.

—. 2010. Open Source analysis OLAP server written in Java. Enabling interactive analysis

of very large datasets stored in SQL databases without writting SQL. Mondrian: Pentaho

Analysis. [Online] 2010. http://mondrian.pentaho.com/.

—. 2010. Open Source ETL designed to bridge the gap between business and IT. Kettle

Project: Pentaho Data Integration. [Online] 2010. http://kettle.pentaho.com/.

—. 2010. Open Source report content creation, generation and distribution from all sources

of information. Pentaho Reporting Project. [Online] 2010. http://reporting.pentaho.com/.

—. 2008. Pentaho Open Source Business Intelligence Platform Technical White Paper.

[PDF Document] 2008.

Ramos, Isabel and Santos, Maribel Yasmina. 2009. Business Intelligence, Tecnologias

da Informação na Gestão do Conhecimento. s.l. : FCA - Editora de Informática, Lda, 2009.

978-972-722-516-3.

Referências

61

Santos, Maribel Yasmina and Ramos, Isabel. 2009. Business Intelligence - Tecnologias

da Informação na Gestão do Conhecimento. Lisboa : FCA - Editora de Infomática, Lda, 2009.

ISBN: 978-972-722-516-3.

Sinfic. 2010. Sinfic - Soluções de Mobilidade Newsletter. Sinfic, SA Web Site. [Online]

2010. http://www.sinfic.pt/SinficNewsletter/sinfic/Newsletter184/UN.MobileSolutions.html.

—. 2010. Soluções de Negócio. Sinfic, SA Web Site. [Online] 2010.

http://sinfic.org/SinficWeb/displayconteudo.do2?numero=23484.

Spring Source. 2010. Spring Framework 3.0.4, Reference Documentation. [PDF

Document] 2010.

SpringSource. 2010. SpringSource Tool Suite -- The Best Development Tool for

Enterprise Java. SpringSource. [Online] 2010. http://www.springsource.com/developer/sts.

Wells, Don. 2010. Extreme Programming Rules. Extreme Programming: A gentle

introduction. [Online] 2010. http://www.extremeprogramming.org/rules.html.

REFERÊNCIAS

62