scieee Open visual document viewer

Migração para Web de um sistema integrado de provisão e cadastro de recursos

João Pedro Codeço Proença

Full text

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 .