Mig ação pa a Web de
um sis ema in eg ado de
p o isão e cadas o de
ecu sos
João Ped o Codeço P oença
Mes ado In eg ado em Engenha ia de Redes e Sis emas In o má icos
Depa amen o de Ciência de Compu ado es
2013
O ien ado
And é Figuei edo Medas, DSCB/OMP/PW, Po ugal Telecom SI
Coo ien ado
Manuel Edua do Co eia, P o esso Auxilia , Faculdade de Ciências
da Uni e sidade do Po o
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
ii
Todas as co eções de e minadas
pelo jú i, e só essas, o am e e uadas.
O P esiden e do Jú i,
Po o,
______/______/_________
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
iii
pala as-cha e
Mig ação de uma aplicação pa a Ja a usando Seam; So wa e
de ges ão de ede de elecomunicações; Van agens de usabilidade na
Web.
esumo
Es e ela ó io é e e en e ao p oje o de es ágio ealizado na PT
SI (Po ugal Telecom Sis emas de In o mação). O obje i o do p oje o
consis iu em mig a uma aplicação esponsá el pela ges ão da ede de
cob e, uma aplicação já com alguns anos, que pa a além de e uma
in e ace mui o con usa, exige que es a seja ins alada em odas as
máquinas dos colabo ado es que a p e endam usa . Foi subs i uída a
a qui e u a clien e-se ido Windows, po uma a qui e u a Web em Ja a
e usou-se a amewo k Seam 2.2.2, ga an indo que a usabilidade osse
melho ada.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
i
keywo ds
Mig a ing an applica ion o Ja a using Seam; Managemen
so wa e elecommunica ions ne wo k; Ad an ages o usabili y on he
Web.
abs ac
This epo is abou he p ojec accomplished in PT SI (Po ugal
Telecom – In o ma ion Sys ems). The goal o he p ojec was o mig a e
an applica ion, esponsible o managing he coppe ne wo k, an
applica ion ha has al eady a ew yea s, which has a con using
in e ace, ha equi es o be ins alled in all employees machines ha
wan o use i . Windows clien -se e a chi ec u e was eplaced by a
Web a chi ec u e in Ja a using Seam 2.2.2 amewo k, ensu ing ha
usabili y had been imp o ed.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
Índice
LISTA DE FIGURAS…………………………..….…….……..………………..………...... ii
LISTA DE ABREVIATURAS……….………..….…….……..…………….....………….....ix
1. INTRODUÇÃO ...................................................................................................... 1
2. APLICAÇÃO EXISTENTE .................................................................................... 3
2.1 APLICAÇÃO...................................................................................................... 3
2.2 ÁREAS DE INFLUÊNCIA ..................................................................................... 4
2.3 REDE DE ACESSO ............................................................................................ 6
2.4 EQUIPAMENTO DE COMUTAÇÃO ........................................................................ 6
2.5 ATRIBUIÇÃO DE RECURSOS .............................................................................. 7
2.6 MORADAS ....................................................................................................... 8
2.7 INTERFACES .................................................................................................... 9
2.8 ARQUITETURA DE REDE INTERNA .................................................................... 11
2.9 ARQUITETURA DE REDE PARA APLICAÇÕES EXTERNAS...................................... 14
3. PROGRAMAS E TECNOLOGIAS USADAS ...................................................... 16
3.1 ECLIPSE ........................................................................................................ 16
3.2 JBOSS SEAM 2.2.2 ......................................................................................... 17
3.2.1 WebLogic 10.3.4......................................................................... 18
3.2.2 JSF – Ja aSe e Faces ............................................................ 18
3.2.3 EJB – En e p ise Ja aBeans ...................................................... 19
3.2.4 Rich aces.................................................................................... 20
3.2.5 A qui e u a Rich aces ................................................................. 21
3.3 PIE (PROGRESSIVE INTERNET EXPLORER) ...................................................... 23
3.4 ALLFUSION GEN E GUARDIEN ......................................................................... 23
3.5 RUMBA, MAINFRAME EDITION ....................................................................... 24
3.6 GOOGLE MAPS JAVASCRIPT API V3 ............................................................... 24
3.6.1 Geocoding API ........................................................................... 26
3.6.2 Di ec ions API ............................................................................. 26
4. IMPLEMENTAÇÃO E RESULTADOS ................................................................ 27
4.1 PROJETO NO ECLIPSE .................................................................................... 28
4.1.1 En i y .......................................................................................... 28
4.1.2 Session ...................................................................................... 29
4.1.3 U ils ............................................................................................ 30
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
i
4.1.4 WebCon en ............................................................................... 30
4.2 MÓDULO INTERFACES .................................................................................... 32
4.3 MÓDULO MORADAS ....................................................................................... 41
4.3.1 Ro ei o ........................................................................................ 42
4.3.2 Ce i icação de mo adas ............................................................. 58
4.4 MÓDULO EQUIPAMENTO DE COMUTAÇÃO ........................................................ 65
4.5 PROBLEMAS E ATRASOS QUE SURGIRAM ......................................................... 68
5. CONCLUSÕES ................................................................................................... 70
5.1 O QUE FAZIA DIFERENTE................................................................................. 70
5.2 TRABALHO FUTURO ........................................................................................ 70
6. REFERÊNCIAS BIBLIOGRÁFICAS ................................................................... 72
7. ANEXOS ............................................................................................................. 74
7.1 ANEXO AUTENTICAÇÃO .................................................................................. 74
7.2 ANEXO LISTARGRUPODEREDES ..................................................................... 75
7.3 ANEXO MAPAGOOGLE ................................................................................... 76
7.4 ANEXO XMLGEOCODING ............................................................................... 78
7.5 ANEXO COORDENADASGEOGRAFICAS ............................................................ 79
7.6 ANEXO CERTIFICARAUTOMATICAMENTE .......................................................... 80
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
ii
Lis a de Figu as
Figu a 1 - Ec ã p incipal da aplicação................................................................ 4
Figu a 2 - Exemplo de á eas de in luência......................................................... 5
Figu a 3 - In e aces, c iação de mensagem .................................................... 10
Figu a 4 - Diag ama de ede in e na, p é-exis en e e implemen ada ............... 11
Figu a 5 - Diag ama de ede pa a aplicações ex e nas ................................... 14
Figu a 6 – Fluxo de p ocessamen o de um e en o [18] ................................... 21
Figu a 7 – Sequência de p ocessamen o do pedido [18] ................................. 22
Figu a 8 - Sequência de p ocessamen o da espos a [18] ............................... 22
Figu a 9 - Google Maps s Bing Maps ............................................................. 25
Figu a 10 – Lacunas no layou ........................................................................ 31
Figu a 11 – Aplicação, menu pincipal .............................................................. 32
Figu a 12 – Aplicação, c i é ios de pesquisa de mensagens ........................... 32
Figu a 13 – Web, c i é ios de pesquisa de mensagens ................................... 33
Figu a 14 – Aplicação, lis a de mensagens ..................................................... 34
Figu a 15 – Web, lis a de mensagens ............................................................. 34
Figu a 16 – Aplicação, de alhes de uma mensagem ....................................... 35
Figu a 17 – Web, de alhes de uma mensagem ............................................... 36
Figu a 18 – Web, de alhes de uma mensagem (bu e ) ................................... 36
Figu a 19 – Web, c iação de mensagem pelo bu e ....................................... 36
Figu a 20 – Aplicação, c iação de mensagem ................................................. 37
Figu a 21 – Web, c iação de mensagem ......................................................... 38
Figu a 22 – Aplicação, janela dos ipos de egis o ........................................... 39
Figu a 23 – Web, página dos ipos de egis o .................................................. 39
Figu a 24 – Web, página dos ipos de in e ace (Reg as A ibu os) ................. 40
Figu a 25 – Aplicação, página inicial do módulo mo adas ............................... 41
Figu a 26 – Web, página inicial do módulo mo adas ....................................... 42
Figu a 27 – Web, página inicial do o ei o ....................................................... 43
Figu a 28 – Aplicação, pesquisa de códigos pos ais ....................................... 44
Figu a 29 – Web, Google Maps na página do o ei o ...................................... 45
Figu a 30 – Web, calculo de pe cu sos pelo Google Maps .............................. 46
Figu a 31 – Aplicação, c iação do código pos al .............................................. 47
Figu a 32 – Web, c iação do código pos al ...................................................... 47
Figu a 33 – Aplicação, de alhes do código pos al ............................................ 48
Figu a 34 – Web, de alhes do código pos al .................................................... 49
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
iii
Figu a 35 – Web, ab mapa no código pos al .................................................. 50
Figu a 36 – Web, associa localidade e a uamen o a código pos al ............... 51
Figu a 37 – Web, de alhes da localidade ......................................................... 52
Figu a 38 – Aplicação, de alhes do a uamen o .............................................. 53
Figu a 39 – Web, de alhes do a uamen o....................................................... 54
Figu a 40 – Aplicação, seleção de a uamen o pa a lis a p édios ................... 55
Figu a 41 – Aplicação, lis agem de p édio de um de e minado a uamen o ..... 56
Figu a 42 – Web, ma ca coo edenadas de um p édio .................................... 57
Figu a 43 – Web, Unidades de Alojamen o de um p édio ................................ 58
Figu a 44 – Aplicação, pesquisa de pedidos de ce i icação ............................ 59
Figu a 45 – Web, pesquisa de pedidos de ce i icação .................................... 60
Figu a 46 – Web, ce i icação de a uamen o .................................................. 61
Figu a 47 – Web, ce i icação de a uamen o (iden i icação) ........................... 62
Figu a 48 – Web, ce i icação de p édio, UAL e código pos al ......................... 63
Figu a 49 – Web, ce i icação concluida .......................................................... 64
Figu a 50 – Passos da ce i icação de um UAL c/CP7..................................... 64
Figu a 51 – Aplicação e Web, menu inicial dos módulos ................................. 65
Figu a 52 – Aplicação, janela p incipal do módulo de comu ação .................... 65
Figu a 53 – Web, página p incipal do módulo de comu ação........................... 66
Figu a 54 – Web, lis a de Unidades de A endimen o ....................................... 67
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
ix
Lis a de Ab e ia u as
AB - Ac ion Block
AJAX - Asynch onous Ja asc ip and XML
API - Applica ion P og amming In e ace
BO - Business Op imiza ion
BPM - Business P ocess Managemen
CICS - Cus ome In o ma ion Con ol Sys em
COBOL - COmmon Business O ien ed Language
GUI - G aphical Use In e ace
HTTP - Hype ex T ans e P o ocol
IDE - In eg a ed De elopmen En i onmen
IP - In e ne P o ocol
JSON - Ja aSc ip Objec No a ion
OLTP - Online T ansac ion P ocessing
PHP - PHP Hype ex P ep ocesso
PROC - P ocedu e S ep
PT - Po ugal Telecom
SI - Sis emas de In o mação
SOA - Se ice O ien ed A chi ec u e
SQL - S uc u ed Que y Language
TCP - T ansmission Con ol P o ocol
TUXEDO - T ansac ions o Unix, Ex ended o Dis ibu ed Ope a ions
WEB - Wo ld Wide Web
XHTML - eX ensible Hype ex Ma kup Language
XML - eX ensible Ma kup Language
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
6
Uni e sidade do Po o - FCUP
Em suma, os p ocessos implemen ados nes e módulo são a c iação, al e ação
e emoção de Á eas de In luência que azem uso de ou os ês módulos.
Mo adas – Cadas o das localizações eais;
Rede de Acesso – Ge e o cadas o dos elemen os que cons i uem a ede;
Equipamen o de comu ação – Cadas o dos elemen os de ede e á eas
de cen ais associadas.
2.3 Rede de Acesso
Quando alamos em Rede de Acesso es amo-nos a e e i a odos os
componen es que cons i uem a Rede Local, ou seja, odos os elemen os en e a
cen al e o clien e que são da esponsabilidade de ges ão da Po ugal Telecom, que
se encon em no ex e io ou in e io de edi ícios de clien e.
Es e módulo em como obje i o ge i o cadas o dos á ios elemen os que
cons i uem a ede. Aqui, ambém é con olada a disponibilidade e capacidade
exis en e pa a pedidos de ligação à ede ele ónica, sendo es es ge idos pelo módulo
de A ibuição de Recu sos. Também é possí el e mos a opologia da ede assim
como as suas ca ac e ís icas écnicas, acili ando a de eção da necessidade de no os
p oje os.
De uma o ma mais obje i a, es e módulo é capaz de aze o seguin e:
Regis o de odos os Elemen os de Rede (mo ada, capacidades e dados
especí icos);
Ges ão das ligações en e Elemen os de Rede;
C iação, al e ação e eliminação de ligações pa a pa .
2.4 Equipamen o de Comu ação
Equipamen os de Comu ação oi o e cei o e úl imo módulo a se mig ado
du an e o es ágio, e inclui odos os equipamen os que possibili am os se iços de
comu ação indispensá eis à comunicação en e clien es. Aqui é assegu ada a
in o mação de cadas o dos equipamen os de comu ação, azendo a associação de
um núme o, que pe mi e ao clien e o acesso ao se iço pedido e à po a ou canal da
placa capaz de o nece esse se iço, dependendo das suas ca ac e ís icas,
capacidades e disponibilidades.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
7
João P oença
Es e módulo é esponsá el po ge i a in o mação dos seguin es componen es:
Á ea de Cen al – Zona onde es ão associados os equipamen os de
comu ação assim como os elemen os de ede, po onde são o necidos os
se iços;
Comu ado – P es a se iço de comu ação às Unidades de A endimen o
às quais es á ligado, o necendo os caminhos pa a a comunicação en e
clien es;
Unidades de A endimen o - É o conjun o de equipamen os de
a endimen o de clien e que são se idos pelo mesmo Comu ado . Podem
se locais, quando es ão jun o do seu comu ado , ou emo as. Es a
dis ingue o equipamen o que é se ido po comu ado es di e en es na
mesma Á ea Cen al, ou que são se idos pelo mesmo comu ado mas
es ão emo izados;
Placas e Po as de Unidades de A endimen o – Ha dwa e de uma
de e minada ecnologia capaz de o nece Se iços de Supo e. Uma placa
em dois a ibu os: P a elei a e Posição. A Posição é de inida po um
ende eço chamado de Po a, cada Po a pode e á ios canais;
In o mação de Nume ação – In o mação sob e núme os cuja ma cação
dá acesso a de e minados se iços.
2.5 A ibuição de Recu sos
Quando é ecebida uma equisição de clien e nas aplicações de a endimen o
da Po ugal Telecom a solici a a ins alação, al e ação ou emoção de um ou mais
se iços, es as são egis adas como equisições. Es as equisições con êm odas as
ca a e ís icas dos se iços assim como a mo ada de ins alação.
A aplicação ecebe es as equisições e o seu módulo de A ibuição de
Recu sos é esponsá el po calcula o caminho da Rede de Acesso que es á
disponí el, desde a mo ada de ins alação a é ao Comu ado , a ibuindo um ou á ios
núme os ao clien e pa a o acesso aos Se iços pedidos. Quando a A ibuição de
Recu sos es á concluída, essa in o mação é en iada de ol a pa a a aplicação de
a endimen o e es a ai se esponsá el po ins ala os ecu sos iden i icados. Depois
da ins alação de e se en iada a in o mação de sa is ação do clien e pa a a aplicação,
pa a que haja uma a ualização de cadas o. O módulo Reg as é quem decide como
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
8
Uni e sidade do Po o - FCUP
de em se p ocessadas as equisições quando chegam, se de em se ca i adas
1
manualmen e ou au oma icamen e.
Podemos en ão conclui que es e módulo é esponsá el pelas seguin es ases:
Reconhece qual o Elemen o de Rede Te minal em melho es condições,
pa a sa is aze o se iço pedido pelo clien e;
A pa i do Elemen o de Rede Te minal, iden i ica o encaminhamen o da
Rede de Acesso a é ao comu ado . Na cen al é iden i icado o
equipamen o de comu ação e um ou mais núme os adequados ao
o necimen o de de e minado se iço;
Nos casos em que não é possí el p ocede à ca i ação, de ido a
insu iciências de in aes u u a, são emi idas mensagens com os mo i os,
pa a que se p oceda a uma in e enção manual;
Se a in e enção manual não o possí el, as equisições passam a se
a adas no sub-módulo “Ge i Lis a de Espe a” podendo ou não exis i
in e enções di e as no e eno. Nes e sub-módulo são simuladas mais
uma ez as o dens de ca i ação;
Po im, quando é concluída a ins alação, ecebe a a ualização de
cadas o, como e e ido em cima.
2.6 Mo adas
O módulo Mo adas oi o segundo módulo a se mig ado, e é aqui que é ei a a
ges ão de A uamen os, Códigos Pos ais, Localidades, Apa ados, Ag upamen o de
A uamen os, P édios, Unidades de Alojamen o (ex. apa amen os), Edi ícios e
Mo adas In e nacionais. Os pedidos de clien es pa a a ins alação de no os se iços e
al e ação ou emoção de se iços já exis en es, são ecolhidos a a és de canais de
a endimen o. As mo adas de equisição são en iadas pa a o módulo Mo adas, e aí
se ão alidadas/ce i icadas. A espos a é en iada de ol a pa a a aplicação de
1
Iden i icação do encaminhamen o de ede que melho se adequa ao se iço solici ado. Nes e p ocesso são
escolhidos os elemen os de ede e os equipamen os necessá ios.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
9
João P oença
a endimen o e a equisição é assim sa is ei a. G ande pa e da base de dados é
o necida pelos CTT.
O módulo Á eas de In luência usa a in o mação a mazenada nes e módulo
pa a a localização au omá ica de ecu sos de ede, a a és da mo ada da equisição.
2.7 In e aces
O módulo In e aces oi o p imei o módulo a se mig ado, em como p incipal
uncionalidade c ia e simula mensagens das in e aces exis en es na aplicação
(ce ca de 70). Também é possí el c ia , al e a ou emo e in e aces, mensagens de
e o, pe missões de u ilizado es e ge i os alo es pe mi idos. Es e módulo é usado
apenas pa a es es, po isso é que não apa ece no menu p incipal da aplicação ( ig. 1).
Suponhamos que que íamos es a a ce i icação no módulo Mo adas, sem
es e módulo e íamos que pedi a uma aplicação de a endimen o que en iasse uma
equisição pa a a aplicação, o que é pe ei amen e desnecessá io. Bas a pa a isso,
c ia uma mensagem nes e módulo com os egis os e a ibu os necessá ios à
ce i icação de uma mo ada, incluindo a sua o igem, e execu a-la. Depois de
execu ada, ela ai apa ece no módulo Mo adas como se i esse sido en iada po
uma aplicação ex e na.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
10
Uni e sidade do Po o - FCUP
Figu a 3 - In e aces, c iação de mensagem
Na igu a 3, podemos e uma mensagem a se c iada. Temos a in e ace que
amos usa , nes e caso a GII027 (In e aces Pedido de Ce i icação de Mo ada), o ipo
de in e ace, os egis os disponí eis pa a se em adicionados à mensagem, os egis os
que já o am adicionados e os a ibu os com os alo es que lhe dei de cada egis o.
Nes e caso só p eciso de dois egis os, o p imei o (GIIE027PC) pa a desc e e a
mo ada e o segundo (GIIE027XX) apenas se e pa a iden i ica o im da mensagem.
Pa a além das p incipais uncionalidades, o módulo ambém nos pe mi e
consul a o egis o da mensagem, o his ó ico, a espos a e al e a o es ado.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
11
João P oença
2.8 A qui e u a de ede in e na
Na igu a 4 es á ep esen ado o diag ama da a qui e u a de ede pa a a
aplicação.
MainF ame
P oc
AB
AB
AB
DB2
P oc P oc
AB
P oc
JAVA / SEAM
P oxy P oxy P oxy
All usion Gen
Gua dIEn
B owse
TCP/IP
CICS
Lis ene
Lis ene
Windows AB
AB
GUI (P oc)
C++
GUI (P oc)
C++
AB
Clien Manage
(COBOL / SQL) (COBOL / SQL)
(COBOL / SQL)
(COBOL / SQL)
Figu a 4 - Diag ama de ede in e na, p é-exis en e e implemen ada
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
12
Uni e sidade do Po o - FCUP
Toda a aplicação o iginal oi p og amada no All usion Gen; es a e amen a em
uma linguagem p óp ia e é esponsá el pela ge ação dos p oxys Ja a, dos PROCs
(P ocedu e S ep) e dos ABs (Ac ion Block). Depois da ge ação é usada uma aplicação
chamada build o pa a compila mos o código, an o das janelas da aplicação Windows
como os p oxys da aplicação Web.
Os PROCs são p og amas usados pa a analisa um conjun o de dados e
p oduzi ou pu s di e en es. Recebem os dados en iados pelo u ilizado , chamam os
ABs pa a al e a e in e p e a esses dados e de ol em o esul ado ao u ilizado . Os
ABs são chamados pelos PROCs e po ou os ABs. T a am os dados ecebidos e caso
seja necessá io, podem in e agi com a base de dados an o pa a consul a de
in o mação como pa a al e ações e emoções de dados. Os dados são al e ados
consoan e a unção do AB e no im são de ol idos ao PROC.
Quando um clien e numa máquina Windows solici a alguma equisição pela
aplicação, es a é en iada pa a o Clien Manage ins alado na máquina e depois
eencaminhada po uma ligação TCP/IP (T ansmission Con ol P o ocol/In e ne
P o ocol) pa a o MainF ame usando socke s. O MainF ame é um compu ado de
g andes dimensões e em como p incipal linguagem o COBOL (COmmon Business
O ien ed Language). Na sua maio ia, são usados em g andes emp esas como é o
caso da Po ugal Telecom. Um compu ado des es pode subs i ui cen enas de
se ido es mais pequenos. Pa a se em acedidos logicamen e usam-se e minais que
emulam o sis ema ope a i o do MainF ame. No meu caso usei o RUMBA, um so wa e
pa a Windows. O MainF ame da emp esa usa z/OS, um sis ema ope a i o de 64 bi s
c iado pela IBM e que supo a uncionalidades como o CICS (Cus ome In o ma ion
Con ol Sys em) e DB2. Es e SO a a um ele ado núme o de in o mações con ínuas,
com g ande es abilidade e segu ança. [1]
No MainF ame exis e uma componen e chamada CICS, um moni o de
ansações que é usado pa a p ocessamen os Ba ch e pa a a i idades online. Quando
exis em ansações que são e e uadas em á ios passos, o CICS em que sabe que
se um desses passos alha en ão os ou os odos ambém êm que alha pa a
ga an i consis ência nos dados. Supo a milha es de ansações po segundo e
o nece escalabilidade a mui o baixo cus o po ansação. Quando su giu, apenas e a
usado em MainF ames da IBM com sis emas ope a i os z/OS e z/VSE, hoje em dia já
é usado nou os sis emas. [2]
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
13
João P oença
O CICS con em um lis ene que ecebe a equisição e ai p ocu a nos seus
egis os qual é a ansação que ai usa pa a chama de e minado p og ama, com
base nos dados ecebidos. Ou seja, se o clien e es i e a consul a os de alhes de um
A uamen o na aplicação, o lis ene ai chama a ansação que diz espei o ao PROC
que pe mi e a consul a dessa in o mação. O PROC ai chama os ABs pa a es es
a a em dos dados ecebidos e solici a in o mação à base de dados, caso seja
p eciso. Tan o os PROCs como os ABs o am ge ados em COBOL e SQL (S uc u ed
Que y Language) no caso dos que p ecisam de consul a a base de dados DB2.
DB2 é um sis ema de ges ão de base de dados elacionais que abalha no
MainF ame, ei o pela IBM. A linguagem u ilizada é SQL e é usado em emp esas que
necessi am de ans o ma g andes quan idades de dados em in o mação de negócio.
Inicialmen e es e sis ema de base de dados apenas abalha a em MainF ames da
IBM, mais a de oi ala gado pa a sis emas UNIX e Windows. Como já oi di o o
MainF ame abalha com z/OS, e o DB2 pa a es e sis ema além de se usado pa a
supo a ope ações c í icas em á eas de negócios, pe mi e ambém uma g ande
pe o mance OLTP (Online T ansac ion P ocessing)
2
. DB2 pa a z/OS em algumas
ca a e ís icas exclusi as como a segu ança mul i-ní el, comp essão a ní el de
ha dwa e e abelas com amanhos mui o g andes. [3] [4]
Pa a a nossa aplicação Web unciona , a a qui e u a do lado de o a do
MainF ame oi um pouco al e ada. A aplicação Web é man ida num se ido
WebLogic, o b owse do clien e comunica com es e se ido . Em ez de e mos um
clien manage esponsá el po ecebe as equisições e eencaminha-las, emos os
p oxys que basicamen e êm a mesma unção e comunicam com o clien e a a és do
p o ocolo HTTP (Hype ex T ans e P o ocol). Um p oxy é um in e mediá io en e o
clien e e o se ido . Nes e caso, a unção do p oxy é ecebe uma equisição da
aplicação Web e eencaminha-la pa a o CICS no MainF ame ia p o ocolo TCP/IP
a a és de socke s. A espos a é ecebida de igual o ma, o MainF ame en ia pa a o
2
É um sis ema que egis a odas as ansações de uma de e minada ope ação.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
14
Uni e sidade do Po o - FCUP
p oxy e es e pa a o clien e. Quando o p oxy en ia a equisição pa a o MainF ame odo
o p ocesso é execu ado da mesma o ma que na a qui e u a an e io .
2.9 A qui e u a de ede pa a aplicações ex e nas
Quando as aplicações ex e nas comunicam com a aplicação, a a qui e u a é
di e en e.
APPs
Ex e nas
T
I
B
C
O
(xml)
T
U
X
E
D
O
AB
P oc
AB
AB
DB2
CICS
TCP/IP TCP/IP
Lis ene
P oc
Figu a 5 - Diag ama de ede pa a aplicações ex e nas
Temos ês no os componen es na igu a 5. As aplicações ex e nas são
aplicações que necessi am, po exemplo, de i ce i ica mo adas à nossa aplicação.
O clien e ai a uma loja e pede que um de e minado se iço seja ins alado em sua
casa. O uncioná io da loja em uma aplicação que ai e i ica se a mo ada do clien e
se encon a ce i icada na nossa aplicação. Caso não se encon e, ai en a ce i ica-
la. As aplicações ex e na comunicam com o TIBCO ia TCP/IP.
O TIBCO é um so wa e que ge e in o mações, p ocessos e decisões em
empo eal. Pe mi e a comunicação en e so wa es que são incompa í eis e pode se
usado localmen e ou em nu em. TIBCO o nece um middlewa e
3
que az com que o
acesso aos dados possa se ei o po á ios sis emas ao mesmo empo. [5]
3
Um mediado en e o so wa e e as á ias aplicações. Usa-se pa a ans e i dados en e p og amas que
usam p o ocolos di e en es.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
15
João P oença
A ua em ês á eas c í icas [6]:
SOA (Se ice O ien ed A chi ec u e) - Uma a qui e u a o ien ada a se iços.
Es es se iços são acessí eis a a és de in e aces que são
disponibilizadas a a és de webse ices. Os se iços não são mais do que
uncionalidades das á ias aplicações.
BPM (Business P ocess Managemen ) – Faz a ges ão comple a e
consis en e dos luxos de p ocessos das emp esas.
BO (Business Op imiza ion) – Con e e luxos de dados em in o mações
c i icas, disponibilizando-as a clien es e pa cei os.
As aplicações ex e nas in ocam um webse ice do TIBCO, que ecebe a
mensagem em o ma o XML (eX ensible Ma kup Language) e con e e-a pa a um
bu e . [5] O bu e é en iado pa a um middlewa e no MainF ame ambém po TCP/IP.
Es e middlewa e é o TUXEDO (T ansac ions o Unix, Ex ended o Dis ibu ed
Ope a ions), que ge e ansações dis ibuídas em compu ado es e em uma pla a o ma
mui o escalá el pa a desen ol e , implemen a e ge i aplicações c í icas pa a a
missão [7].
O TUXEDO ecebe o bu e e eencaminha-o pa a o lis ene que exis e no
CICS. A pa i daqui odo o p ocesso é igual ao an e io , ou seja, o lis ene escolhe a
ansação que in oca o p og ama que a mensagem deseja chama , es e chama os
ABs, os ABs podem chama ou os ABs ou i busca in o mação à base de dados. A
espos a é en iada no sen ido in e so, em bu e pa a o TIBCO e es e con e e-a em
XML pa a se lida pela aplicação ex e na. Ao longo do p ocesso exis em mensagens
de con i mação pa a e i ica o sucesso ou insucesso ela i amen e à en ega das
mensagens en e os componen es.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
22
Uni e sidade do Po o - FCUP
Figu a 7 – Sequência de p ocessamen o do pedido [18]
No p imei o caso (o supe io ) odo o JSF é codi icado e o il o não analisa a
espos a an es de en ia pa a o clien e. Já no segundo caso (o in e io ), nem oda a
egião é codi icada, udo depende da á ea da egião AJAX e o il o analisa a espos a
an es de es a chega ao clien e.
Figu a 8 - Sequência de p ocessamen o da espos a [18]
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
23
João P oença
Como mos a a igu a 8, quando é pedido um ecu so, o il o do RichFaces ai
e i ica se esse ecu so não se encon a em cache. No caso de exis i , é en iado de
ol a pa a o clien e, caso con á io o Resou ce Builde egis a o pedido e só depois
se á en iado.
Ajax ac ions componen s – São os componen es de ação, e são usados pa a
en ia equisições Ajax do lado do clien e. Ex. <a4j:commandBu on> e
<a4j:commandLink>.
AjaxCon aine – É uma in e ace que se e e e a uma á ea na página JSF que
ai se descodi icada, du an e uma equisição.
Ja aSc ip engine – Um mo o de Ja aSc ip que é execu ado do lado do
clien e. Com base nas espos as AJAX ele ai sabe como a ualiza cada á ea de uma
página JSF.
3.3 PIE (P og essi e In e ne Explo e )
PIE é uma biblio eca Ja aSc ip . Os di e en es b owse s que exis em são uma
do de cabeça pa a qualque p og amado . O uso de CSS3 no on -end de websi es
as ezes o na-se complicado de ido à incompa ibilidade de ende ização en e os
b owse s. Can os a edondados, somb as, g adien es, anspa ência en e ou os, são
algumas das p op iedades que icam bem no design de um websi e mas que p ecisam
de se ajus adas aos á ios b owse s como é o caso do In e ne Explo e , o mais
usado den o da Po ugal Telecom. Pa a ajuda na ende ização oi usado Ja aSc ip ,
nes e caso o PIE. Não é p eciso pe cebe mui o de Ja aSc ip pa a usa o PIE, pois a
aplicação des e é simples e baseada na hospedagem de alguns ichei os no se ido e
na chamada des es po pa e da classe ou ID co esponden e no CSS. [19]
3.4 All usion Gen e Gua dIEn
Toda a aplicação exis en e oi ge ada com o Al usion Gen, um ambien e de
desen ol imen o pa a conceção, implemen ação e manu enção de aplicações
escalá eis. O All usion Gen az ge ação de código li e de e os pa a odo o ipo de
soluções, seja a lógica da aplicação, in aes u u as de comunicação, se ido es Web
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
24
Uni e sidade do Po o - FCUP
e b owse in e aces. Semp e que há al e ações, es as apenas exigem um pequeno
es o ço, is o que odas as mudanças são ei as a ní el do modelo e não do código.
Is o pe mi e que as emp esas mudem apidamen e pa a ou os ambien es, como
J2EE, sem se em especialis as nesses ambien es e sem p ecisa em de eesc e e o
código. Exis e uma maio lexibilidade na escolha de um melho ambien e, e dá a
possibilidade às emp esas de aze in es imen os em ecnologias que já es ão
implemen adas. [20]
O Gua dIEn é um so wa e que supo a e ge e os modelos do Al usion Gen. É
essencial pa a as emp esas con ola em as aplicações desen ol idas pelo Al usion
Gen e que, ao mesmo empo, necessi am de eduzi o o e head desse con olo. An es
de uma de e minada encomenda en a em p odução, passa po á ios es ados, sendo
que essas ases são con oladas no Gua dIEn. No meu p oje o oi essencial pa a
consul a o código dos se ido es e dos clien es. Também me oi ú il pa a ge a os
se ido es, pois pa a aze mos o ace das en adas e das saídas de um de e minado
se ido , caso ele não es eja ge ado com ace a i o, é necessá io que ele seja ge ado
no amen e.
3.5 RUMBA, MainF ame Edi ion
O RUMBA é um emulado de e minal usado pa a se liga e u iliza in o mação
do MainF ame que, nes e caso é da IBM e em o sis ema ope a i o z/OS. Ga an e
uma ligação segu a e uma g ande iabilidade. Po ezes o código ge ado pelo All usion
Gen não é su icien emen e explíci o pa a pe cebe mos quais são os pa âme os de
en ada e de saída de um de e minado se ido e, po isso, du an e o meu p oje o,
usei á ias ezes es a e amen a pa a aze ace aos se ido es. [21]
3.6 Google Maps Ja aSc ip API 3
Es a API [22] pe mi e inco po a o Google Maps num websi e. A e são 3 eio
aze maio apidez na consul a de mapas. Exis e uma g ande quan idade de
e amen as que pe mi e manipula e adiciona con eúdo aos mapas.
An es de usa a API do Google, consul ei a documen ação de ou as duas APIs
pa a escolhe aquela que melho se i ia adequa ao que e a p eciso pa a o meu
p oje o. A indecisão es a a en e o Google Maps, Bing Maps e Sapo Maps. Decidi pô
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
25
João P oença
de pa e o Sapo Maps pois a sua documen ação es á mui o esumida, não em nada
que se assemelhe ao S ee View da Google e as e amen as de manipulação são
mui o mais eduzidas. Vis o que, no meu p oje o e a in e essan e a is a de ua, iz
alguns es es no S ee side do Bing e no S ee View da Google e cheguei à conclusão
que es e ipo de isualização no mapa es a a indisponí el pa a g ande pa e dos
locais no Bing Maps, pelo menos em Po ugal.
Figu a 9 - Google Maps s Bing Maps
A igu a 6 é e e en e à A enida Visconde de Ba ei os, umas das a enidas
mais conhecidas na Maia, sendo que a is a de ua es á disponí el no Google Maps,
mas não no Bing Maps.
A escolha acabou po cai no Google Maps pois, pa a além do que já oi di o e
apesa da documen ação do Bing Maps ambém es a bas an e boa, a do Google es á
mais comple a, com mui os exemplos de código. Um ou o mo i o que ambém pesou
na minha escolha oi o ac o de nos ó uns de discussão, ce ca de 70% dos ópicos
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
26
Uni e sidade do Po o - FCUP
sob e es e assun o são ace ca do Google Maps e, po isso, se ia mais ácil esol e
e en uais p oblemas que pudessem su gi comuns a ou os u ilizado es.
Em complemen o des a API, usei dois se iços undamen eis, a Geocoding API
e Di ec ions API.
3.6.1 Geocoding API
Es e se iço pe mi e aze a con e são de ende eços (A enida Visconde de
Ba ei os) em coo denadas geog á icas (37,445342 -122,023213), que podem se
usadas pa a adiciona ma cado es a um mapa, num de e minado local. Exis e a
geocodi icação e e sa, que ambém oi usada no meu p oje o, que é o p ocesso
in e so quando que emos con e e coo denadas em ende eços. As espos as HTTP
de geocodi icação podem i em o ma o JSON (Ja aSc ip Objec No a ion) ou XML,
um exemplo de um pedido de coo denadas da A enida Visconde de Ba ei os é o
seguin e:
h p://maps.googleapis.com/maps/api/geocode/json?add ess=A enida
+Visconde+Ba ei os,Maia,&senso = alse
O ende eço, pa a além de de ol e as coo denadas des a ua, nes e caso em o ma o
JSON, dá-nos ambém ou as ca a e ís icas como o código pos al. [23]
3.6.2 Di ec ions API
Es a API pe mi e calcula pe cu sos en e localizações a a és de solici ações
HTTP. É possí el escolhe á ios ipos de anspo e assim como especi ica a o igem,
des ino e pon os de passagem. [24]
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
27
João P oença
4. Implemen ação e Resul ados
Ao longo do es ágio o am mig ados ês módulos: In e aces, Mo adas e
Equipamen o de Comu ação. A escolha des es módulos não oi po acaso, analisei o
g au de dependência de odos os módulos e cheguei à conclusão que es es e am
aqueles que menos dependiam de ou os, po isso se ia lógico inicia a mig ação aqui.
Du an e o início da implemen ação, além de e ido uma pequena o mação ace ca da
aplicação, ambém me oi aconselhado um documen o [25] ace ca de edes de acesso
que me ajudou a pe cebe mui o melho a aplicação, e i alguns concei os que alei
em cadei as de edes de elecomunicações, du an e o cu so, e ap endi ou os. Como
oi e e ido num dos capí ulos an e io es, exis e uma e amen a esponsá el po ge a
odo o código dos clien es e se ido es, o All usion Gen. Cada um des es módulos em
dezenas, po ezes cen enas de janelas clien es; oi necessá io le o código de odas
essas janelas pa a pe cebe exa amen e a unção de cada uma. Es es clien es
ecebem os pa âme os dados pelo u ilizado e, de aco do com a ação p e endida,
chamam o ou os se ido es esponsá eis po manipula esses pa âme os. Os
se ido es ecolhem essa in o mação e de ol em aos clien es o esul ado. Esse
esul ado pode se calculado apenas com base no código do se ido ou, caso seja
p eciso, chamam a base de dados pa a subme e ou ecolhe in o mação. Apesa de a
mig ação e sido ei a do lado do clien e, os códigos dos se ido es ambém i e am
que se lidos pa a sabe quais os pa âme os que es es ecebem no inpu pa a
de ol e o ou pu desejado.
A GUI (G aphical Use In e ace) da aplicação exis en e é mui o con usa e
pouco in ui i a. Um dos p incipais mo i os pa a a c iação des e p oje o, pa a além de
e i a que a aplicação osse ins alada em odas as máquinas dos u ilizado es, oi aze
com que se conseguisse com o meno núme o de cliques e no meno empo possí el
despole a uma ação sem o na a aplicação ainda mais con usa. Nas p óximas
secções, começo po explica como é que o p oje o es á es u u ado no eclipse em
elação às classes exis en es, e de que manei a a a qui e u a Model-View-Con olle
[26] oi seguida. Mos o ambém algum código Ja a e Ja aSc ip mais ele an e usado
em cada um dos módulos. A a és de p in sc eens ei os nas duas aplicações
(Windows e Web), ou aze compa ações pa a se pe cebe onde é que oi possí el
ganha usabilidade. À medida que ui implemen ando as uncionalidades da aplicação
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
28
Uni e sidade do Po o - FCUP
o am su gindo alguns p oblemas, na úl ima secção alo sob e esses p oblemas e
como é que se esol e am.
4.1 P oje o no eclipse
Foi c iado no eclipse um p oje o Seam com o nome o g.p si.sig aweb em que
á ios paco es, pas as e ichei os de con igu ação o am c iados au oma icamen e.
Exis em ês paco es undamen ais onde es ão as classes do p oje o e o WebCon en
que con em as páginas Web.
4.1.1 En i y
Aqui, como o nome indica, es ão as en idades. Exis em ce ca de 50 en idades
di e en es em cada módulo. Po exemplo, um equipamen o no módulo da comu ação
em á ios a ibu os: id, ende eço, á ego_lido, á ego_máximo_pe mi ido,
da a_es ado e c… Esses a ibu os es ão odos de inidos nes as classes com os
espe i os ge e s e se e s. Pa a de ini uma classe como sendo uma en i y no Seam,
bas a adiciona mos a ag @En i y no início do código, depois dos impo s.
Pa a além des e ipo de classes emos as classes das in e aces. Es as classes
êm cen enas de unções que são chamadas pelos beans, e são esponsá eis po
aze odo o ipo de ligações com os se ido es a a és dos p oxies. No anexo
lis a G upoDeRedes, es á uma unção de uma das classes in e aces que lis a o g upo
de edes do módulo de comu ação. Es a unção en ia os dados pa a o inpu do
se ido esponsá el po es a lis agem, a a és dos pa âme os que es ão na s ing
“connec ionS ing”. Esses dados podem se nulos se o u ilizado quise a lis agem de
odos eles, ou podem con e dados se quise il a os esul ados. Depois o se ido
de ol e um a ay de esul ados e, a a és de um ciclo o , é gua dado o ou pu nou o
a ay que é de ol ido ao bean, que chamou es a unção.
Uma ez que o código é ge ado, os de alhes da comunicação são
anspa en es pa a quem desen ol e. A au en icação na aplicação é ei a po uma
classe que ambém es á nes e paco e. Essa classe em a unção do anexo
Au en icação que é esponsá el po en ia o id e passwo d do u ilizado pa a o p oxy.
Essa unção ai e o na ue se as c edenciais es i e em co e as ou alse caso o
con á io.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
29
João P oença
4.1.2 Session
Pa a o nece os dados aos di e en es componen es das páginas Web é
necessá io c ia os managed beans e, é nes e paco e que eles são c iados. Um
managed bean pa a além de o nece os dados pa a as páginas, ecebe os dados
subme idos pelo u ilizado e a a os di e en es e en os.
Lis agem 1
O u ilizado ez a pesquisa de um g upo de edes na página Web, en ão essa
pesquisa despole ou uma ação no bean. A unção ‘pesquisa ’ da lis agem 1, chama a
unção do anexo lis a G upoDeRedes que es á na classe “In e acesLis agem” no
paco e en i y e gua da o esul ado num a ay p e iamen e c iado “lis aG upoDeRedes”.
An e io men e, com Ja aSe e Faces, semp e que quiséssemos c ia um
bean e íamos que o egis a num ichei o de con igu ação chamado aces-con ig.xml.
Com o Seam não p ecisamos de aze isso, bas a adiciona ano ações nas classes
managed beans, como é possí el e na lis agem 1 “@Name(“g upoRedesBean”)”.
Quando usamos es a ano ação, o bean passa a se ge ido pelo Seam po isso, além
de se um managed bean passa ambém a se um Seam Componen .
@Name("g upoRedesBean")
public class G upoDeRedesBean {
public S ing pesquisa () {
g upoRedesSelecionado = new G uposRedes();
echaTudo();
i (! il o.ge Id_s ing().equals("")) {
il o.se Id(In ege . alueO ( il o.ge Id_s ing()));
}
else {
il o.se Id(0);
}
lis aG upoDeRedes = In e acesLis agem.lis a G upoDeRedes( il o);
e u n "/Comu acao_g upoRedes.xh ml";
}}
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
30
Uni e sidade do Po o - FCUP
4.1.3 U ils
Es e paco e em apenas uma classe, a do lei o de con igu ações. Es a classe
é esponsá el po le o con eúdo do ichei o de con igu ações onde es á o ende eço
do MainF ame. Essa in o mação ai se passada a odas as unções das classes das
in e aces, pa a que es as consigam comunica com os se ido es a a és dos p oxies,
como acon ece na unção do anexo lis a G upoDeRedes.
4.1.4 WebCon en
É nes e di e ó io que es ão odas as páginas Web em o ma o XHTML, as
olhas de es ilo CSS, os ichei os Ja aSc ip e as imagens do p oje o. Usou-se um
sis ema de empla e Web chamado Facele s, uma ecnologia do Ja aSe e Faces
que oi idealizada com o obje i o de ge a uma á o e de componen es. Todas as
páginas Web êm uma es u u a semelhan e à da lis agem 2.
Lis agem 2
<!DOCTYPE composi ion PUBLIC "-//W3C//DTD XHTML 1.0
T ansi ional//EN"
"h p://www.w3.o g/TR/xh ml1/DTD/xh ml1- ansi ional.d d">
<ui:composi ion xmlns="h p://www.w3.o g/1999/xh ml"
xmlns:s="h p://jboss.com/p oduc s/seam/ aglib"
xmlns:ui="h p://ja a.sun.com/js / acele s"
xmlns: ="h p://ja a.sun.com/js /co e"
xmlns:h="h p://ja a.sun.com/js /h ml"
xmlns: ich="h p:// ich aces.o g/ ich"
xmlns:a4j="h p:// ich aces.o g/a4j"
empla e="layou / empla e.xh ml">
<me a h p-equi ="Con en -Type" con en =" ex /h ml;
cha se =u -8" />
<ui:de ine name="body">
CONTEUDO AQUI
</ui:de ine>
</ui:composi ion>
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
31
João P oença
Pa a esc e e uma página com Facele s, é necessá io decla a quais a aglibs
que amos usa . Pa a cada aglib di e en e usa-se namespaces
6
dis in os. Na lis agem
3 de ini am-se alguns namespace, cada um associado a uma aglib, como po
exemplo: Facele s, HTML (do JSF), Co e (do JSF) en e ou os.
Uma das g andes an agens do Facele s é a possibilidade de c ia mos uma
página layou pa a a aplicação. Nessa página são de inidas pa es comuns à maio ia
das páginas como é o caso das co es, on es, es ilos e CSS. Ou a an agem é a
c iação de lacunas no layou p incipal. Is o, pe mi e que enhamos cabeçalhos e
odapés iguais em odas as páginas e que, o seu con eúdo p incipal seja de inido pelo
u ilizado nas páginas que usam o layou .
Figu a 10 – Lacunas no layou
Como mos a na igu a 10, na página de layou de inimos o nome pa a a lacuna
usando a ag “inse ”: <ui:inse name=”body”/>. Na página que con ém o
con eúdo das lacunas, usamos a ag “de ine” pa a p eenche a lacuna de inida, como
é possí el e na lis agem 2. Po im, o Facele s az a mon agem do esul ado inal
pa a se ap esen ado ao u ilizado .
6
Namespaces no xml são como paco es no Ja a, pe mi em que duas ags com o mesmo nome sejam
in e p e adas de manei as di e en es, consoan e o namespace a que ela pe ence.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
38
Uni e sidade do Po o - FCUP
in e ace que ai usa , não é necessá io mos a a pa e dos ipos de in e ace e dos
egis os. Is o é ei o a a és de Ajax, á medida que o u ilizado clica nas opções,
pedidos Ajax são en iados pa a a ualiza pa es da página. Exis e um egis o em odas
as mensagens que indica o seu im, é o egis o e minado em “XX”. Esse egis o
passou a se adicionado au oma icamen e ao im da mensagem. Alguns egis os êm
um p edecesso que é con igu ado na janela de ipos de egis o, po isso quando um
egis o desses é adicionado, o seu p edecesso ambém e á que se , o que não
acon ecia na aplicação an e io . Pa a além disso, exis e um algo i mo que ai aze
com que os egis os se posicionem na lis a de egis os disponí eis numa o dem
co e a, ou seja, quando exis e um egis o que em um p edecesso en ão esse egis o
de e apa ece depois do seu p edecesso .
Figu a 21 – Web, c iação de mensagem
Na igu a 20 é possí el e que cada egis o em dezenas de a ibu os, po isso
ab i uma janela pa a al e a cada um desses a ibu os é um pouco demo ado. Como
mos o na igu a 21, esse p oblema oi solucionado. Temos a lis a de a ibu os e bas a
clica na coluna do alo do a ibu o que que emos al e a . Pa a passa mos ao p óximo
a ibu o ou clicamos na coluna ou ca egamos na ecla TAB.
Ou os menus como “Tipos de Regis o” ( ig. 22) e “Tipos de In e ace” ambém
inham o p oblema de al e ação de alo es em no as janelas, que en e an o oi
solucionado na Web ( ig. 23).
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
39
João P oença
Figu a 22 – Aplicação, janela dos ipos de egis o
Figu a 23 – Web, página dos ipos de egis o
Es a solução de mos a udo na mesma janela a a és de Ajax, em ez de
ab i no as janelas pa a cada ação, acili a a in e ação da aplicação com o u ilizado ,
mas nem semp e é possí el aze isso. Quando emos abelas com mui as colunas, é
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
40
Uni e sidade do Po o - FCUP
necessá io o ganiza a página de manei a a que a in o mação não ique mis u ada. O
exemplo da igu a 24 é um desses casos.
Figu a 24 – Web, página dos ipos de in e ace (Reg as A ibu os)
Es a abela ( ig. 24), das eg as dos a ibu os, de i a de uma ou a abela dos
“Tipos de In e ace”. E a impossí el mos a oda a in o mação numa única página po
isso, a a és de AJAX, quando o u ilizado chama es a abela, a aplicação esconde as
ou as deixando a janela mais limpa.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
41
João P oença
4.3 Módulo Mo adas
O módulo das mo adas oi o segundo módulo a se mig ado. Es e módulo az
pa e da aplicação. No en an o, oi-me pedido que o pusesse num p oje o di e en e.
Alguns u ilizado es, quando usam a aplicação, apenas abalham com es e módulo e,
po isso, não lhes in e essa e acesso aos ou os, nem con ém. A ideia é e uma
aplicação Web que aça apenas a ges ão de mo adas, e ou a que aça udo o es o.
Foi en ão c iado um no o p oje o apenas pa a es e módulo.
Figu a 25 – Aplicação, página inicial do módulo mo adas
A igu a 25 mos a a janela inicial, uma janela com mui os bo ões e alguns
deles desnecessá ios. Esses bo ões êm duas unções p incipais:
Ro ei o – Ge i A uamen os, Códigos Pos ais, Ag upamen os de A uamen os,
Apa ados, Edi ícios, Localidades, Mo adas In e nacionais e Unidades de
Alojamen o.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
42
Uni e sidade do Po o - FCUP
Ce i icação de mo adas – Recebe as mo adas en iadas pelas aplicações
ex e nas e ce i icá-las.
Na aplicação Web, depois de aze o login, o u ilizado é di ecionado pa a um
menu em que em apenas dois bo ões, o Ro ei o e a Ce i icação de Mo adas ( ig. 26).
Figu a 26 – Web, página inicial do módulo mo adas
Assim, se quise mos i a es e módulo apenas pa a ce i ica mo adas, não
p ecisámos de e aquela in e ace ão con usa que exis ia, nem p ocu a pelo bo ão
que diz espei o a es a unção, que na igu a 25 é o décimo bo ão do menu.
4.3.1 Ro ei o
Quando clicámos em Ro ei o, no no o menu, somos di ecionados pa a a
página p incipal da ges ão de mo adas.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
43
João P oença
Figu a 27 – Web, página inicial do o ei o
Como podemos e na igu a 27, es a página ap esen a um es ilo mui o mais
simples e in ui i o do que a da aplicação ( ig. 25). Em ez de e mos um menu com
bo ões em que necessi amos de passa o a o po cima pa a sabe qual é a sua
unção, emos um menu em abs em que o nome de cada ab é a unção que
desempenha.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
44
Uni e sidade do Po o - FCUP
Figu a 28 – Aplicação, pesquisa de códigos pos ais
Na aplicação, semp e que clicamos num dos bo ões são abe as duas janelas,
a janela da lis a e a de pesquisa. Po exemplo, o bo ão dos códigos pos ais ab e a
janela da lis a com o espe i o menu e ab e ou a janela po cima pa a aze a
pesquisa ( ig. 28). Pa e-se do p incípio que a p imei a coisa que o u ilizado que aze
quando ab e a janela é uma pesquisa mas, isso pode não se e dade. E se o
u ilizado quise c ia um código pos al? En ão em que echa a janela de pesquisa e
p ocu a o bo ão de c ia código pos al no menu. Com es e no o menu na Web ( ig.
27), ao clica mos em cada ab a página não muda pois é udo código no clien e, pa a a
mudança de ab se mais ápida, e os c i é ios de pesquisa são imedia amen e
ap esen ados. Só depois de clica mos em pesquisa é que uma no a página é
ap esen ada, com a lis a de esul ados assim como o menu dessa lis a. Nes e menu
da Web emos ainda um bo ão “C ia ” ao lado dos c i é ios de pesquisa, e is o esol e
o p oblema de anda a echa janelas quando que emos c ia alguma coisa.
Aqueles dois bo ões es á icos na pa e in e io di ei a da página, pe mi em que
o u ilizado á pa a o menu de ce i icação de mo adas semp e que quise (em
qualque página da aplicação Web) e que enha acesso ao Google Maps a a és da
p óp ia página, uma das no as unções da aplicação Web.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
45
João P oença
Figu a 29 – Web, Google Maps na página do o ei o
Ao clica no bo ão do Google Maps é mos ado um mapa na página oda,
debaixo do menu p incipal ( ig. 29). Aqui o u ilizado é capaz de p ocu a po uma
localidade ou uma de e minada zona, pode aze zoom no mapa, usa o Google S ee
View e al e a o ipo de mapa. Es e mapa pode se mui o an ajoso em di e sas
si uações, uma delas é quando o u ilizado que p ocu a po uma ua que não sabe o
nome, mas sabe o de uma ua p óxima e, ao u iliza o mapa, consegue acilmen e
aze essa pesquisa. Exis e um bo ão no mapa “Calcula Caminho” que pe mi e
calcula as di eções en e dois sí ios.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
46
Uni e sidade do Po o - FCUP
Figu a 30 – Web, calculo de pe cu sos pelo Google Maps
Na igu a 30 oi calculado o pe cu so en e as ins alações da Po ugal Telecom,
na Rua Tenen e Valadim, e a Faculdade de Ciências da Uni e sidade do Po o. O
pe cu so é ap esen ado no mapa, e as di eções são calculadas do lado di ei o. Es a
unção não me oi pedida, apenas implemen ei na aplicação po que além de que e
ap ende um pouco mais sob e es a API, ap o ei ei o ac o de já es a a mexe nela
pa a explo a ou as uncionalidades. Como não me oi pedida, eu e a minha equipa
não chegamos a ala em que pode ia se ú il pa a o u ilizado . No en an o, pa a um
écnico que aça ins alações em casa dos clien es, al ez seja ú il calcula o pe cu so
a é casa des es.
Ao c ia um código pos al é necessá io o código, a designação e uma
localidade associada. Pa a associa uma localidade, é abe a uma no a janela da lis a
de localidades e, consequen emen e, a janela dos c i é ios de pesquisa das
localidades.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
47
João P oença
Figu a 31 – Aplicação, c iação do código pos al
A igu a 31 mos a o p ocesso de c iação de um código pos al na aplicação.
Como podemos e , emos a janela do código pos al (1), a janela da lis a de
localidades (2) e a janela dos c i é ios de pesquisa de localidades (3). Mais uma ez
emos á ias janelas a ab i umas em cima das ou as, e chegamos a um pon o que o
u ilizado se esquece do que es á a aze . Na Web isso não acon ece pois é udo ei o
na mesma página a a és de AJAX.
Figu a 32 – Web, c iação do código pos al
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
54
Uni e sidade do Po o - FCUP
Figu a 39 – Web, de alhes do a uamen o
A igu a 39 mos a os de alhes de um a uamen o o ganizado po abas. A aba
dos “Edi ícios” es á desa i ada pois não exis em edi ícios associados a es e
a uamen o e po isso, o u ilizado não p ecisa de e essa abela. Mais uma ez exis e
a aba “Mapa”, e pa a o cen a mos na posição co e a é usada a ab e ia u a, o í ulo e
a designação do a uamen o. Exis em a uamen os iguais em di e en es zonas do
país, a designação da localidade do a uamen o é ambém en iada no link de consul a
à API. Es a página dos a uamen os em ou as janelas impo an es pa a que a
aplicação uncione co e amen e. No en an o, as soluções implemen adas nessas
páginas são idên icas as que o am implemen adas em páginas an e io es, po isso
não i ei ala sob e elas.
Quando na aplicação, clicamos no bo ão de “P édios e Unidades e Alojamen o”
são abe as ês janelas.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
55
João P oença
Figu a 40 – Aplicação, seleção de a uamen o pa a lis a p édios
Na igu a 40 emos a janela da lis a de p édios (1), a da lis a de a uamen os
(2) e a dos c i é ios de pesquisa de um a uamen o (3). É necessá io escolhe o
a uamen o pa a o qual que emos a lis a de p édios, po isso é que es as janelas são
odas abe as.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
56
Uni e sidade do Po o - FCUP
Figu a 41 – Aplicação, lis agem de p édio de um de e minado a uamen o
Depois da escolha do a uamen o, essa in o mação ai ica ixa na lis a de
p édios ( ig. 41). Na Web é exa amen e igual, a ab de “P édios e Unidades de
Alojamen o” é na e dade os c i é ios de pesquisa de um a uamen o, a di e ença é
que mais uma ez udo é ei o de uma manei a mais simples pa a o u ilizado pois é
udo ei o na mesma página. No p ocesso de c iação de um p édio já e a possí el
gua da as coo denadas geog á icas desse p édio na base de dados, no en an o, essa
in o mação e a in oduzida manualmen e, o que ob iga a o u ilizado a sabe à pa ida,
quais e am as coo denadas geog á icas do p édio. Usei mais uma ez o Google Maps
pa a o u ilizado , quando es á a c ia o p édio, u iliza o ma cado pa a ma ca o p édio
no mapa. A API mos a quais são as coo denadas e esse alo , a a és de um
algo i mo, é con e ido pa a coo denadas do ipo WGS84 [27] que ão se
pos e io men e gua dadas na base de dados. Esse mapa ambém es á acessí el
quando es amos a edi a o p édio.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
57
João P oença
Figu a 42 – Web, ma ca coo edenadas de um p édio
O Google S ee View é mui o ú il nes a pa e da aplicação, pois pe mi e-nos
ma ca o p édio com mais de alhe. A igu a 42 mos a um ma cado no edi ício da
Po ugal Telecom, na Rua Tenen e Valadim, e as espe i as coo denadas. O bo ão
“Gua da Coo denadas” con e e as coo denadas e p eenche os campos e e en es a
es as. Des a manei a, é possí el e a base de dados dos p édios mui o mais comple a
e po meno izada.
Den o dos p édios podemos e Unidades de Alojamen o (UALs). Na
aplicação, a lis a das UALs é mos ada numa no a janela, assim como as unções
dessa janela (de alhes, c iação, edição e c…). Na igu a 43 é possí el e que odas
essas janelas es ão a se mos adas numa única página.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
58
Uni e sidade do Po o - FCUP
Figu a 43 – Web, Unidades de Alojamen o de um p édio
Se eu es i e a e uma janela com de alhes de um p édio, enho que e
in o mação nessa mesma janela do a uamen o a que ele pe ence, e se es i e a e
uma janela com de alhes de uma UAL, enho que sabe o p édio e o a uamen o. Ao
e odas as janelas numa página Web posso elimina oda essa in o mação epe ida e
assim, consegui espaço pa a ap esen a udo o que é necessá io.
4.3.2 Ce i icação de mo adas
Es a zona do módulo é a mais impo an e, pois usa a in o mação do o ei o
pa a ce i ica as mo adas. Passei um mês pa a aze a mig ação des a pa e da
aplicação, pois o p ocesso de ce i icação em uma lógica mui o complexa e po isso,
necessi a de algo i mos bem de inidos. Nada oi ei o de no o aqui po que o ní el de
di iculdade, pa a consegui implemen a na Web es as janelas com odas es as
unções, já e a ele ado. No en an o, consegui o ganiza a página de manei a a que
odas es as unções ossem mais in ui i as pa a o u ilizado e ossem mos adas de
uma o ma mais limpa, sem janelas sob epos as.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
59
João P oença
Figu a 44 – Aplicação, pesquisa de pedidos de ce i icação
A igu a 44 mos a a janela de c i é ios de pesquisa das mo adas ce i icadas
ou po ce i ica , pe mi e aze a pesquisa po o igem do pedido (aplicação ex e na),
ipo de mo ada (Apa ado, A uamen o, P édio e c…), iden i icado único, nome do
a uamen o e ou os.
Na Web, em ez de mos a odos os c i é ios e icalmen e, c iei um painel
que mos a os c i é ios na ho izon al e que pode se ocul ado semp e que o
desnecessá io.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
60
Uni e sidade do Po o - FCUP
Figu a 45 – Web, pesquisa de pedidos de ce i icação
Na igu a 45 emos o painel da pesquisa, e po baixo a lis a de pedidos.
Quando a pesquisa é ei a, o painel é echado, icando a página mais li e pa a
mos a odo o es o da in o mação. O ícone que es á na pa e in e io di ei a da igu a
45 pe mi e i pa a o o ei o, al como ambém acon ecia no o ei o onde e a possí el i
pa a a ce i icação.
An es de p ossegui , ale a pena explica como unciona um p ocesso de
ce i icação. Qualque aplicação ex e na que necessi a de ce i ica uma mo ada, en ia
um pedido com a mo ada que deseja ce i ica . Se essa mo ada já exis i , exa amen e
com o mesmo nome, na base de dados, en ão o u ilizado não p ecisa de aze nada e
a aplicação ce i ica au oma icamen e. Caso a mo ada não exis a na base de dados,
en ão é necessá ia a ação do u ilizado . Exis em uas que são conhecidas po mais do
que um nome, é o caso da P aça de Mouzinho de Albuque que que é conhecida po
o unda da Boa is a, e exis em ou as que êm nomes quase iguais, em que apenas
di e em num “de” no meio da pala a. Casos como es es necessi am da in e enção
do u ilizado , mas não são apenas es es, pode-se c e ce i ica uma mo ada que não
exis a mesmo na base de dados. Os apa ados, as mo adas in e nacionais e os
a uamen os são casos mais simples na ce i icação, po que o u ilizado ecebe uma
de e minada mo ada e só p ecisa de escolhe a mo ada ce a no o ei o ou c ia uma
no a mo ada, pa a a pode ce i ica , ou seja, é uma ce i icação di e a. Quando se
a a de p édios, Unidades de Alojamen o e códigos pos ais a lógica de negócio é
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
61
João P oença
di e en e. An es de ce i ica um p édio é necessá io ce i ica o a uamen o desse
p édio, an es de ce i ica uma Unidade de Alojamen o é p eciso ce i ica o p édio
dessa Unidade de Alojamen o, e an es de ce i ica um código pos al é p eciso
ce i ica a Unidade de Alojamen o. Quando a aplicação ecebe um pedido de
ce i icação de uma mo ada que já enha sido ce i icada, en ão o p ocesso de
ce i icação é ei o au oma icamen e.
A mo ada que ou usa de seguida pa a exempli ica uma ce i icação é do ipo
“UAL c/CP7” ou seja, Unidade de Alojamen o com Código Pos al. Pa a a ce i icação
des e ipo de mo ada es a comple a, p imei o é necessá io ce i ica o a uamen o,
depois o p édio, a UAL e po im o código pos al.
Figu a 46 – Web, ce i icação de a uamen o
Na igu a 46 exis e um bo ão no menu, o p imei o, que inicia a ce i icação. Um
algo i mo ai e de le o pedido de ce i icação e se capaz de, consoan e o ipo de
mo ada, o es ado e o subes ado da ce i icação, ab i na página a janela co e a. Nes e
caso, como es á no início e não em nenhum a uamen o com o nome “FACULDADE
DE CIÊNCIAS” na base de dados, ab iu a ce i icação do a uamen o onde em
in o mação do a uamen o en iado e onde se pode escolhe o a uamen o na base de
dados que ai se iden i icado.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
62
Uni e sidade do Po o - FCUP
Figu a 47 – Web, ce i icação de a uamen o (iden i icação)
Ao escolhe o a uamen o iden i icado, podemos usa um que já es eja na base
de dados, a a és de uma pesquisa, ou c ia um no o ( ig. 47). Se clica mos no bo ão
“C ia ”, somos edi ecionados au oma icamen e pa a a página do o ei o com a janela
de c iação de a uamen o, já abe a e com os campos p eenchidos, de aco do com o
a uamen o ecebido. Depois de iden i icado, podemos p ossegui com a ce i icação e
emos duas opções: ou selecionámos a caixa de “Ce i ica Au oma icamen e” e o
algo i mo ai en a ce i ica o que al a (P édio, UAL e CP7) sem in e enção do
u ilizado , ou não selecionamos e mesmo que o es o da in o mação já cons e na base
de dados, ele ai pedi que o u ilizado e i ique odos os dados no amen e. A A enida
da Boa is a oi o a uamen o iden i icado pa a es e pedido. O código do anexo
ce i ica Au oma icamen e mos a o algo i mo da ce i icação usado quando é iniciada
a ce i icação. P imei o de udo en a ce i ica o pedido sem in e enção do u ilizado
a a és da chamada da unção
“In e acesLis agens.ce i icacaoAu oma ica(pedidoSelecionado)”,
depois e i ica se o a uamen o do pedido já oi ce i icado e po im, se ainda al a
ce i ica algum elemen o, en a num “i ” que consoan e o ipo de pedido ai decidi
qual a janela que ai ab i pa a o u ilizado p eenche , se a janela do a uamen o, do
p édio, do apa ado e c... Den o do “i ”, seja qual o o ipo de pedido, se o a uamen o
não i e sido ce i icado, o algo i mo sabe que é a janela da ce i icação de
a uamen o que ai se chamada com exceção dos casos em que é um Apa ado ou
uma Mo ada In e nacional. Quando se ce i ica um a uamen o manualmen e e se
seleciona a caixa de “Ce i ica Au oma icamen e” o algo i mo do anexo
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
63
João P oença
ce i ica Au oma icamen e ol a a se chamado pa a en a a ce i icação sem
in e enção do u ilizado, caso consiga acaba, caso con á io en a no “i ” pa a decidi o
p óximo passo. Se ao ce i ica o a uamen o não o escolhida a opção de ce i ica
au oma icamen e, en ão é chamado ou o algo i mo pa ecido com o do anexo
ce i ica Au oma icamen e mas sem a chamada pa a a unção
“In e acesLis agens.ce i icacaoAu oma ica(pedidoSelecionado)”.
Figu a 48 – Web, ce i icação de p édio, UAL e código pos al
Ten ei ce i ica au oma icamen e, mas como não exis e nenhum p édio
chamado To e 70 na A enida da Boa is a, que e a o que es a a no pedido, a
ce i icação ai con inua a se ei a manualmen e ( ig. 48). Na lis a de pedidos, é
possí el e que o pedido já se encon a em ce i icação e que o a uamen o oi
ce i icado, nas colunas es ado e subes ado ( ig. 48).
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
70
Uni e sidade do Po o - FCUP
5. Conclusões
No plano de es ágio que o meu o ien ado ez, es a a p e is a a mig ação de
ês módulos e mais um, caso hou esse empo. Nes es seis meses, não hou e empo
pa a mig a o qua o módulo de ido aos a asos que desc e i na secção an e io . Pa a
a no a aplicação Web en a em p odução no u u o, além de se necessá io conclui a
mig ação dos ou os módulos, e iam de se ei os alguns ajus es ao código já esc i o.
Como oi explicado ao longo do ela ó io, es e p oje o consis iu numa oupagem no a
de se iços já an e io men e implemen ados, com excepção do Google Maps. O
p incipal desa io que encon ei, oi pe cebe como unciona a o código de algumas
janelas pa a depois as pude implemen a na Web. A g ande quan idade de janelas
en ol idas nes a aplicação, o nou a mig ação mais complicada e demo ada.
5.1 O que azia di e en e
No as ideias ace ca do design da aplicação o am su gindo du an e o p oje o.
Algumas dessas ideias, que apa ece am na pa e inal do p oje o, apenas o am
implemen adas nos úl imos módulos e po isso, como é possi el e nos p in sc eens
do capi ulo da implemen ação, icou po a ualiza o módulo In e aces de aco do com
os ou os. Mui as das janelas des e módulo ab em em páginas Web di e en es. Se
começasse hoje o p oje o es e módulo se ia implemen ado nos mesmos moldes dos
ou os ou seja, en a semp e que oda a in o mação apa eca numa única página em
ez de anda a “sal a ” de página em página.
5.2 T abalho u u o
Exis em janelas dos módulos mig ados que in e agem com ou os módulos
ainda não mig ados, essas janelas não o am implemen adas e e ão de o se . Como
oi explicado, o módulo das Mo adas oi pos o num p oje o di e en e. No u u o é
necessá io aze uma eplicação des e módulo pa a o p oje o p incipal, mas ope ações
de edi a , c ia e elimina de em se e i adas, icando es e módulo no p oje o p incipal
esponsá el apenas pela pesquisa e isualização de mo adas. Quando es a a a aze
a mig ação des e módulo su giu uma ideia que não oi implemen ada de ido a
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
71
João P oença
al e ações complexas que e a p eciso aze do lado do se ido . O obje i o e a que, na
pa e da ce i icação de mo adas, os u ilizado es apenas pudessem ce i ica mo adas
da sua zona de ope ação, ou seja, um u ilizado do Po o é esponsá el pela
ce i icação de mo adas do no e do país, logo são apenas essas que de em apa ece
na lis a de pedidos de ce i icação. No u u o es a uncionalidade de e ia se
implemen ada pois simpli ica mui o a ce i icação is o que, nes e momen o qualque
u ilizado pode ce i ica qualque mo ada do país independen emen e da sua zona.
Ainda nes e módulo, as coo denadas dos p édios e am gua dadas em di e en es ipos
pela aplicação, um deles é o Da um 73 [28]. Nes e momen o a aplicação Web es á a
con e e odas as coo denadas do Google Maps pa a WGS84 e não pa a Da um 73,
pois pa a que al seja possí el é necessá io usa a biblio eca PROJ.4. Es a biblio eca
não oi usada po al a de empo e po não se uma g ande p io idade pa a o p oje o.
No en an o, no u u o e a necessá io aze es a implemen ação.
Os es es de usabilidade e de acei ação o am ei os po mim e pela minha
equipa à medida que ia a ançando no p oje o, es es es es não o am mui o igo osos,
apenas po in uição, de ido ao p oje o es a numa ase inicial, po isso não o am
egis ados. No u u o é impo an e ealiza es es es es e egis á-los pa a comp o a
que o no o sis ema em uma maio usabilidade e acei ação que o an igo.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
72
Uni e sidade do Po o - FCUP
6. Re e ências Bibliog á icas
[1] Ebbe s, M. / O’B ien, W. / Ogden, B. “In oduc ion o he New Main ame: z/OS
Basics”. Ve an e (Ma ço 29, 2011)
[2] IBM. "CICS TS o OS/390: CICS DB2 Guide." Release 3. (1998/1999)
[3] Milligan, K. / Hend ickson, D. "DDS and SQL - The Winning Combina ion o
DB2 o i." IBM Sys ems and Technology G oup ISV Enablemen . (2012)
[4] IBM. "Timely da a analysis wi h a high-pe o mance, in eg a ed da a
wa ehouse." Vis o em 21 de Junho, 2013, de h p://www-
03.ibm.com/so wa e/p oduc s/us/en/in owa e ami.
[5] B own, P. C. “A chi ec ing Composi e Applica ions and Se ices wi h TIBCO,
Addison-Wesley P o essional”; 1 edi ion (Agos o 3, 2012).
[6] PBTI soluções. "TIBCO." Vis o em 1 de Julho, 2013, de
h p://www.pb i.com.b /pa cei os/ ibco/.
[7] BEA. "Tuxedo® Main ame Adap e o SNA Use Guide". (2006)
[8] E ickson, M. / McIn y e, A. "Wha is Eclipse, and how do I use i ?"
de elope Wo ks. (2001)
[9] Rapcinski, H. "U ilizando sub e sion como con ole de e são." G upo de
Usuá ios Ja a.
[10] Leona d, A. “JBoss Tools 3 De elope s Guide, Pack Publishing” (Ab il 17,
2009).
[11] Caelum. “FJ-34 Desen ol imen o pa a Web com JBoss Seam”. (2008)
[12] Sha ii, R. / Lee, S ephen. / Kondu i, G. “O acle Fusion Middlewa e 11g
A chi ec u e and Managemen , McG aw-Hill Osbo ne Media”; 1 edi ion (Junho
6, 2011).
[13] Baue , C. (2011). "Running Seam examples wi h BEA WebLogic." Vis o em 12
de Julho, 2013, de
h p://www.seam amewo k.o g/Documen a ion/RunningSeamExamplesWi hBE
AWebLogic.
[14] Allen, D. “Seam in Ac ion, Manning Publica ions” (Junho 15, 2008).
[15] Allen, D. "Seamless JSF, Pa 1: An applica ion amewo k ailo -made o
JSF." IBM - De elope Wo ks. (2007)
[16] Wikipedia. "En e p ise Ja aBeans - Types o En e p ise Beans." Vis o em 14
de Julho, 2013, de
h p://en.wikipedia.o g/wiki/En e p ise_Ja aBeans#Session_beans.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
73
João P oença
[17] Filocamo, D. “JBoss RichFaces 3.3, Pack Publishing” (Ou ub o 29, 2009).
[18] Red Ha . "RichFaces De elope Guide" (2008/2009)
[19] Poplade, T. "CSS3 com PIE – bo das, somb as e g adien e." TABLELESS.
(2011)
[20] ca echnologies. "CA-Gen." Vis o em 12 de Julho, 2013, de
h p://www.ca.com/us/p oduc s/de ail/CA-Gen.aspx.
[21] Su hone, M. L. / Tennoe, T. M. / Henssonow, F. S. “Rumba (Te minal
Emula o ), Be asc ip Publishing” (No emb o 01, 2010).
[22] Google. "Google Maps Ja aSc ip API 3." Vis o em 3 de Agos o, 2013, de
h ps://de elope s.google.com/maps/documen a ion/ja asc ip /.
[23] Google De elope (2013). "Google Maps API Web Se ices - The Google
Geocoding API." Vis o em 14 de Julho, 2013, de
h ps://de elope s.google.com/maps/documen a ion/geocoding/.
[24] Google De elope (2013). "Google Maps API Web Se ices - The Google
Geocoding API." Vis o em 14 de Julho, 2013, de
h ps://de elope s.google.com/maps/documen a ion/di ec ions/.
[25] Pi es, J. "Redes de Telecomunicações - Redes de Acesso." Capí ulo 7.
(2010/2011)
[26] S e e Bu beck, Ph D. “Applica ions P og amming in Small alk-80(TM): How o
use Model-View-Con olle (MVC)”. (1992)
[27] Depa men o De ense, 1987. "Depa men o De ense Wo ld Geode ic
Sys em 1984 - I s De ini ion and Rela ionships wi h Local geode ic Coo dina e
Sys ems", DMA Technical Repo 8350.2
[28] IGEO. "Da um 73 (Obsole o - Subs i uído pelo sis ema PT-TM06-ETRS89)."
Vis o em 1 de Se emb o, 2013, de
h p://www.igeo.p /p odu os/Geodesia/in _ ecnica/sis emas_ e e encia/Da um_
73.h m.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
74
Uni e sidade do Po o - FCUP
7. Anexos
7.1 Anexo Au en icação
A unção des e anexo en ia as c edenciais do u ilizado pa a o p oxy
esponsá el pela au en icação, de ol endo um booleano pa a con i ma se oi bem ou
mal sucedida.
public boolean au hen ica e()
{
log.in o("au hen ica ing {0}", c eden ials.ge Use name());
Gzal ldsValida U ilizado Impo imp = new Gzal ldsValida U ilizado Impo ();
InU ilizado u = imp.ge InU ilizado ();
u .se IdU ilizado (c eden ials.ge Use name());
InW kGi06900cValida U ilizado 1 u View =
imp.ge InW kGi06900cValida U ilizado 1();
u View.se An iga(c eden ials.ge Passwo d());
imp.se Command("OK");
Gzal ldsValida U ilizado u = new Gzal ldsValida U ilizado ();
y {
Gzal ldsValida U ilizado Expo exp = u.execu e(imp,
connec ionS ing);
Ou W kE o e o = exp.ge Ou W kE o();
in codE o = e o.ge CodE o();
i (codE o == 0)
{
e u n ue;
}
else
e u n alse;
} ca ch (IllegalA gumen Excep ion e) {
e.p in S ackT ace();
e u n alse;
} ca ch (CSUExcep ion e) {
e.p in S ackT ace();
e u n alse;
} ca ch (Excep ion e) {
e.p in S ackT ace();
e u n alse;
}
}
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
75
João P oença
public s a ic A ayLis <G uposRedes> lis a G upoDeRedes(G uposRedes il o) {
A ayLis <G uposRedes> g upos_de_ edes = new
A ayLis <G uposRedes>();
Gxicls sLis a G upoRedesImpo imp = new
Gxicls sLis a G upoRedesImpo ();
imp.se Clien Id(use name);
Gxicls sLis a G upoRedesImpo .InPesqG upoRedes pesq = imp
.ge InPesqG upoRedes();
i ( il o==null) {
pesq.se Desc icao("%");
pesq.se IdG upoRedes((sho ) 0);
}
else {
pesq.se Desc icao( il o.ge Desc icao());
pesq.se IdG upoRedes((sho ) il o.ge Id());
}
Gxicls sLis a G upoRedesImpo .InW kO demIe Supplied o dem =
imp.ge InW kO demIe Supplied();
o dem.se Selec Cha ("A");
Gxicls sLis a G upoRedes lis a = new Gxicls sLis a G upoRedes();
y {
Gxicls sLis a G upoRedesExpo exp = lis a .execu e(imp,
connec ionS ing);
o (Gxicls sLis a G upoRedesExpo .Ou G pRow ow :
exp.ge Ou G p()
.ge Rows()) {
G uposRedes g p = new G uposRedes();
Ou G G upoRedes ou = ow.ge Ou G G upoRedes();
i (ou .ge Desc icao(). im().isEmp y()) {
b eak;
}
g p.se Desc icao(ou .ge Desc icao(). im());
g p.se Id(ou .ge IdG upoRedes());
g p.se Id_s ing(S ing. alueO (g p.ge Id()));
g upos_de_ edes.add(g p);
}
e u n g upos_de_ edes;
} ca ch (Excep ion e) {
Sys em.ou .p in ln("ERRO na lis agem de g upo de edes!");
Sys em.ou .p in ln(e.ge Message());
e.p in S ackT ace();
e u n null;
}
}
7.2 Anexo lis a G upoDeRedes
Es e anexo é e e en e à unção que chama o p oxy esponsá el po de ol e
ao u ilizado a lis a de G upo de Redes, de aco do com os c i é ios de pesquisa que
es e de iniu.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
76
Uni e sidade do Po o - FCUP
<sc ip
s c="h ps://maps.googleapis.com/maps/api/js? =3.exp&senso = alse"></sc ip >
<sc ip >
a geocode = new google.maps.Geocode ();
unc ion geocodePosi ion(pos) {
geocode .geocode({
la Lng: pos
}, unc ion( esponses) {
i ( esponses && esponses.leng h > 0) {
upda eMa ke Add ess( esponses[0]. o ma ed_add ess);
} else {
upda eMa ke Add ess('Não é possi el localiza o ende eço pa a es a
posição.');
}
});
}
unc ion upda eMa ke S a us(s ) {
documen .ge Elemen ById('ma ke S a us').inne HTML = s ;
}
unc ion upda eMa ke Posi ion(la Lng) {
documen .ge Elemen ById('in o').inne HTML = [
la Lng.la (),
la Lng.lng()
].join(', ');
}
unc ion upda eMa ke Add ess(s ) {
documen .ge Elemen ById('add ess').inne HTML = s ;
}
7.3 Anexo MapaGoogle
Es e sc ip mos a um mapa ao u ilizado com base nas coo denadas que lhe
o am passadas. Pa a além da unção p incipal Ge Mapa, exis em qua o ou as
unções que abalham com o mapa:
geocodePosi ion, con e e as coo denadas num ende eço;
upda eMa ke S a us, muda o es ado do ma cado , a mo e ou
ma cado;
upda eMa ke Posi ion, posiciona o ma cado no sí io pa a onde oi
mo ido;
upda eMa ke Add ess, mos a in o mação do ende eço onde es á o
ma cado .
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
77
João P oença
unc ion Ge Mapa(la , lng) {
a la Lng = new google.maps.La Lng(la , lng);
a map = new google.maps.Map(documen .ge Elemen ById('map-can as'), {
zoom: 18,
cen e : la Lng,
mapTypeId: google.maps.MapTypeId.HYBRID
});
a ma ke = new google.maps.Ma ke ({
posi ion: la Lng,
i le: 'Poin A',
map: map,
d aggable: ue
});
// Upda e cu en posi ion in o.
upda eMa ke Posi ion(la Lng);
geocodePosi ion(la Lng);
// Add d agging e en lis ene s.
google.maps.e en .addLis ene (ma ke , 'd ags a ', unc ion() {
upda eMa ke Add ess('A mo e ...');
});
google.maps.e en .addLis ene (ma ke , 'd ag', unc ion() {
upda eMa ke S a us('A mo e ...');
upda eMa ke Posi ion(ma ke .ge Posi ion());
});
google.maps.e en .addLis ene (ma ke , 'd agend', unc ion() {
upda eMa ke S a us('Ma cado');
geocodePosi ion(ma ke .ge Posi ion());
documen .ge Elemen ById(' o m1:la '). alue = ma ke .ge Posi ion().la ();
documen .ge Elemen ById(' o m1:lng'). alue =
ma ke .ge Posi ion().lng();
});
}
</sc ip
>
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
78
Uni e sidade do Po o - FCUP
7.4 Anexo XMLGeocoding
Quando usamos o se iço de Geocoding do Google Maps, pa a con e e um
ende eço em coo denadas, a espos a é dada no o ma o xml, como exempli ico nes e
anexo.
Po ugal Telecom SI
Mig ação pa a Web de um Sis ema In eg ado de P o isão e Cadas o de Recu sos
79
João P oença
public s a ic Coo denadasGeog a icas ge JSONByGoogle(S ing ullAdd ess)
h ows Mal o medURLExcep ion {
Coo denadasGeog a icas coo denadas = new Coo denadasGeog a icas();
ja a.ne .URL u l = new ja a.ne .URL( ullAdd ess);
URLConnec ion conn;
y {
P oxy p oxy = new P oxy(P oxy.Type.HTTP, new
Ine Socke Add ess(
"194.65.37.123", 80));
conn = u l.openConnec ion(p oxy);
By eA ayOu pu S eam ou pu = new
By eA ayOu pu S eam(1024);
IOU ils.copy(conn.ge Inpu S eam(), ou pu );
ou pu .close();
S ing esul = ou pu . oS ing();
Documen Builde Fac o y dbFac o y = Documen Builde Fac o y
.newIns ance();
Documen Builde dBuilde = dbFac o y.newDocumen Builde ();
Documen doc = dBuilde .pa se(new
S ingBu e Inpu S eam( esul ));
doc.ge Documen Elemen ().no malize();
NodeLis nodes = doc.ge Elemen sByTagName("loca ion");
o (in i = 0; i < 1; i++) {
Node node = nodes.i em(i);
i (node.ge NodeType() == Node.ELEMENT_NODE) {
Elemen elemen = (Elemen ) node;
S ing la = ge Value("la ", elemen );
S ing lng = ge Value("lng", elemen );
coo denadas.se La i ude_con e ida(Double.pa seDouble(la ));
coo denadas
.se Longi ude_con e ida(Double.pa seDouble(lng));
}
}
e u n coo denadas;
} ca ch (IOExcep ion e) {
e.p in S ackT ace();
e u n null;
} ca ch (Pa se Con igu a ionExcep ion e) {
e.p in S ackT ace();
e u n null;
} ca ch (SAXExcep ion e) {
e.p in S ackT ace();
e u n null;
}
}
7.5 Anexo Coo denadasGeog a icas
A unção des e anexo lê o xml de ol ido pelo se iço de Geocoding do Google
Maps, gua da as coo denadas e de ol e-as ao u ilizado .