1",
g
univer'§idade
Honde
Érora
slo EsÍudo côrn Long* Exp*rtünctd frtísÍrrrado
Departailrento de
tnform
áúica
Mestrado em Engenharia
Informática
Procedimentos
de
Inform
açáo
Portuária
Electrónica
Carlos
Manuel Silva Boita
(m 1 85 7 8@alunos.uevora.pt>
Orientador
z LuísArriaga
da CunhaÉvora,
l8
de Julho de 2008UE
t7t
308
Procedimentos
de
Informação
Portu
ária
Electrónica
Carlos Manuel Silva Boita
(m I 85 7 8@alunos.uevora.pt)
Orientadorz
LuísArriaga
da CunhaEsta dissertação não
inclui
as críticas e sugestões feitas pelojúri.
)Y)
508
a
AGRADECIMENTOS
Deixo aqui o meu profundo agradecimento ao professor
Lús
Arriaga da Cunh4pelo
seuapoio,
disponibilidadee
motivação,que me
permitiu
aprofundar eaprender novos conceitos.
A
Indra
Sistemas,que
me deu
a
oportunidadede
participar
num
projecto emergentee
com
múto
bons ingredientespara
explorare
aprender.A
toda eqúpa do Pipe, pelo apoio, companheirismo e compreensão.Aos meus amigos, pela compreensão, carinho e apoio.
Aos meus familiares que sempre me deram apoio nos momentos mais
dificeis
eme apoiaram em seguir em frente para alcançaÍ os meus objectivos.
A
todos os que directa ou indirectamentecontibúram.
Tabela de Gonteúdo
LISTA DE FIGI,RAS
VII
PROCEDURESFORPORTELECTRONICINFORMATION...
...XX1
rNTRoDuÇÃol.l
1.2 1.3 OBJEcTTvoS ENQUADRAMENTO INSTTUCIoNAL3.1.1
Bases de Dados Distribuídas.I
2 2 3
2.1
DsscRrÇÃoDosrsrEMA2.2
AcroREs Do srsrEMA E TNTERAcÇÃo coM A JUP4
7 8
3
CONCEITOS ETECNOLOGrA...
...103.1
SISTEMAS Dsrnnubos p IvrronaçÂo nE SrsrBuasll
1i
t4 14 l53.1.2
Processos Distribuídos...3.1.3
TrocadeMuragens...3.2
SOA (Srn zcr- O runtrto Anc nntcntRE) ...3.2.1
SOA e Web Sentices3.2.2
SOA e BPM @usiness Process Manager)...3.2.3
SOA e ESB @nterprise Service Bus) ...3.2.4
Service Oriented Architecture versus Silo Architecture3.3
BPEL (BusrrEss P Roc NS DGcunoN UNaUAGE) ...3.4
IBI(JA\.Á BUSTNESSlttron
tnov)3.5
OPENESB (OPEN Er,t-TERpRrsE SERW1E Bus)3.6
JavaCAPS (JAVA CoMposm ApucÁnoN PLATF)RMSUTTE)3.7
J1'veEE(J,tttt E^rrERpNSE EDmoN)J,7.1
JSF3.7.2
EIB @nterprise Java Beans)3.8
UNn (UNTFTED MoDELTNG LANcuAcE)...j.8.1
Diagramas de Casos de Uso...j.8.2
Diagramas de Classes3.8.3
Diagrama de Estados....3.8.4
Diagrama de Actividades3.8.5
Diagramas de Sequência.3.9
APAC}DANTt7
21 21 23 27 29 30 JJ 35 37 39 42 43 44 45 46 47 48 49 50 50 53 55 573.10
Shnssr...4
METODOLOGIAS E PROCEDIMENTOS4.1
AnernrscruRADosrsrEMAJUP4.1.1
ModeloJ2EE4.2
ExrENsÃo DE coMpoNENTEs JSF...4.3
JCAPSUaJUP4.4
INTERoPERABTLTDADE ENTRE ToDos os poRTos...
... 604.5
OBJEcroBusrtrEssTRÁNSAcnoN
...614.6
Busttttss TrutNSAcnoNAcrIoNS.
... 634.7
SÍvrsse... ... 646.2.5
Ponto de situação do projecto...5
CASO DEESTUDO
...655.1
DrscruçÃooopRocEssoAvrsoDECTDGADA
...655.2
MoDELAÇÃoUML...
...665.3 INTERTACE
...735.4
GsRAÇÃoosTanprassNorrFrcAÇôEs
...735.5 INTEGRAÇÃo/OReUESTRAÇÃo...
...745.5.1
Erntio da mensagemMl
745.2.1
Diagrama de Classes - Aviso de Chegada...5.2.2
Caso de Uso-Aviso de Chegada..5.2.i
Diagrama de aaividades -Aviso de Chegada..5.2.4
Diagrama de estados - Aviso de Chegada...6.2.2
Descartar Hibernate e criar camada de persistênciaprópria...6.2.3
Aprofundar as potencialidades do JCAPS ...6.2.4
Melhorar mecanismo de comunicação de mensagens com 5D5... 66 67 72 72 8l 87 87 88 88 89 896
CONCLUSÔES [E PERSPECTTVAS FtTI]RASI
...816.1 í-nNnr rlcôpc
6,2
TRABALHOFUTURO6.2.1
Geração de Código.... 7.1 7.2ANEXOA-ECRÃDEAUTENTTCAÇÃO...
...91ANExo B - Ecn oo ronruuúruo DA cruAÇÃo DE r.tM Avrso DE CITEGADA Do NAvro 92 Attsxo C
-
CAso DE uso Do Avrso orCHEcADA.
... 93 7.37.4 7.5 7.6 7.7
AND(o D
-
DIAGRA,A DE ACTTyIDADES Do PR@Esso Auso DE CHEGADÀ ... 93 ANExo E - BP Do ENvro DA MENSAGEM M I ... 95 ANExo F - BP os REcEpÇÃo DE MENSAGENS oo SDS ... 96S
REFERÊNCIAS 98Lista de Figuras
ILUSTRAÇÃo I -VrsÂo GERÁL
oor{scócro..
...4ILUSTRAÇÂo2-CARACTERZAÇÃooapr-lrmoRMAJUP....
...6ILUSTRAÇÃo 3 - INTERACÇÃo oa CouuNpaoe PonruÁrue coM A
JUP...
... 8ILUSTRÂÇÃo 4 - REPRESENIAÇÃO DE UM POSSÍvrI- CENÁRIO Nt,M SISTSMA OTSTRBUÍDO (rmrrnocmmmor).
(Fom:
Joslrmls,2007)...
... 16IrusrneÇÂo 5 - AReurrEcruRa s1$rca DE r.rM wEB sERvIcE. (Foxrr: NewcoMER E LoMow,
2005)...
... l8 IlusrneÇÂo 6 - PLATAFoRMA op Wzn Stnwczs.(Forc:
NrwcoNGR E LoMow, 2005)... 20IlusrnaÇÃo 7 - AIIIuENTE ESB. (Fovre: KnINUIvrITRATH,
2005)...
...22IlusrnaÇÃo 8 -DESENHo
DASrLoARCHnEcruRE...
...23ILUSTRAÇÃo 9 _ DESENHO DA ARQI.JITECTTJRA ORIENTADA A SERVIÇOS (SOA). 24 ILUSTRAÇÃo 10
-
ANTES E DEpors DESOA...
...26IIusTneÇÃo I I
-
IDENTFICAÇÃo Do BPEL NUMA ARQUTECTTJRÂ APLICACIONAL. (FOVTE: SALTER E JENNI.IGS, 2OO8) 28 IlusrnnÇÃo 12-
AÀ,mrNre JBI. (FoIürE: TRr-HovE, 2006) 29 IrusrneÇÃo I 3-
AneurecruRA Do OpENESB. (FoNrr: OpENESB, 2008) 3l ILUSTRAÇÃo 14-
REsuMo Dos coMpoNENTEs Jeva CAPS. (For.rrr: SUN MrcRosysrEMs, 2008) 35 IlusrnnÇÃo l5-
AplrcAçôes uur.n-ceueoe. (Fovrr: BALL ET AL., 2006)... 36IrusrneÇÃo 16
-
Col,poRTAl"{EI,mo JSF. (Fovrr: MÂNN,2005)...
... 39ILUSTRAÇÃo 17-ORcAr.[zAÇÃoDoEJB 3.0API.
(Fom:
PAI.ÍDAE rAL.,2005)...40IlusrneÇÃo 18
-
H(ENpLo DE DTAGRAMA DE CAso DE Uso....
...44IlusrneÇÂo 19-E)GNpLoDE DTAGRAMADE
CLAssEs..
...45ILUSTRAçÂo 20 - Ercrwro DE DIAGRÁI\,IA DE EsrÁDos.
IlusrnnÇÂo 2 I - HGil,rLo DE DT,AGRAMA or Acrrvp.qpps. ...
ILUSTRAÇÂo 22 - HGNPLo DE IJM DIAGRAMA »e SequÊNcns. ILUSTRAÇÃo 23 - AReu[Ecrr.JRA ApLrcAcroNAL Do srsrsMA JUP ILUSTRAÇÃo 24 _ ApenÊNcIA DA coMPoNENTE I:LooKIJP
ILUSTRAÇÃo 25 - E)GTIPLo SIMPLES DA CONSTRUÇÃO DE UM BPEL.
IlusrneÇÂo 26 - Ponros oe
IlusrneÇÃo 27 - DTAGRAMA DE CLAssEs Do pRocEsso Auso DE CIGGADA.
ILUSTRAÇÂo 2 8 - CAso DE uso Do pRocEsso Avrso DE CHEGADA. (VER ANExo D) ... ILUSTRAÇÃo 29 - Drncneua DE EsrADos Do pRocEsso Auso op
Crrcloa.
lrugrRAçÃo 30 -NonrtclçÕss e rARErAs DESENCADEADAS após o axúNcro DA CHEcADA
.46 .47 .48 .51 .56 .59 .60 .66 .67 .72 DE
LMNAVIOAOPORTO...
...73 ILUSTRAÇÂo 3 I - EseuEMA REPRESENTATTVo DA FASE DE pnrplRaÇÃo DA MENSAGEM Ml. ... 75IlusrnaÇÃo 32 - DFERENTES FAsEs DA coNsrnuçÃo oe wNsAcEM M I (cowrnvueçÃo oe
rMAGEMArrEruon).
...
...76 ILUSTRÂÇÃo 33 -PREENCHnÍEI.noDos poRTos AlrrERroREs E SEGUINTES (cmeos oavrNsecruMl).
77IrusrnaçÃo 34 - TRADUÇÃo p coorrcaÇÃo DA rúENSAGEM
Ml
78ILUSTRÂÇÃO 35 _ ENVIO DA À,TNSaGSÀ{
Ml
PARA O SISTEMA SDS. 78IlusrnaÇÂo 36 - GnaveçÃo DA MENSAGEM
Ml
No srsrEMA. 79ILUSTRAÇÃo 37 - EcRà DE AurrvncaçÃo. 9l IlusrRAÇÂo 38 - Ecn oo Avrso DE CTEGADA DE uM NAvro. 92 ILUSTRAÇÃo 39-CAsoDE usoDopRocEsso AvrsoDE
CHEGADA...
...93 ILUSTRAÇÂo 40 - DIAGRAMA DE ACTwTDADES Do pRocEsso Avrso DE CHEGADA. ... ...94 ILUSTRAÇÃo4l -BusflrEssPRocEssDoEl.rvroDArIENSAGEM M1...95IlusrneçÃo
42-
Bustt'tzssPRocEssDE REcspÇÃo or NGNSAGENS Do SDS. 96 IlusrnaÇÃo43-Bus/,trEssPRocEss»EnrcrrçÃoDACoNTRAMARCA...97Lista de Quadros
TeseLA I-INrERvEx.IEx.[ESDosIsrEMA
...7 TASPLA2-CÓOTCOJSPOACOMPONENTEI:LOOKW;uIN-IZADANAJUP ...57Tesele3-MENSAGEMRECEBIDAEM)avIL(INPL[)
...60 Tmpm4-DBscruÇÃooocAsoDEUsoDoPRocEssoAvISoDECrroaoa...7llx
Glossário
e
Siglas
APP BPEL BPM Business ProcessBusiness
to
Business (B2B) de Portos deBusines Process Execution Language.
Umalinguagem baseada
em
)C\dL utilizada
para orquestrar serviçospara
serviços compostos ou processos.Os
serviços
resultantes
são
WebSertices.
Business Process Manager. Termo genérico que se refere
a
todasas
actividades realizadas paracontrolar
processos
de
negócio
(business processes).Uma
descrição
estruturadade
actividades
ou tarefas quetêm
de
ser feitas para resolver umanecessidade de negócio.
O
Business
to
Business
é
um
conceito relativamente recente de comércio electrónico queutiliza
a
Internet
como
canal
de
comunicação entre entidades, nomeadamente empresasi.No B2B as empresas visitam-se pela Internet, e aí
podem
utilizar
serviços, efectuar
compras,EAI
consultas e
toca
de produtos, através dos serviçose funcionalidades que disponibilizam na rede.
Enterprise
Application Integration
Uma aproximação paraintegrar
sistemas distribuídosque
utilizam
uma
infra-estnrturacomum.
Comesta
aproximação,para
cada sistema
fornecerbasta manter apenas um adaptador específico para
cada um dos sistemas com os quais ele comunica.
SOA
pode ser descrito como uma extensãoEAI
que fomeceo
aspecto técnicoa
que chamamos interoperabilidade.Electronic
Data
Interchange,pode ser
definidacomo
o
movimento
electónico de
documentos padrãode
negócio entre entidades (internas ou externas).O
EDI
usa
um
formato
de
dados estnrturadode
recolha
automáticaque
permiteque os
dados sejam transformadossem
serem reintroduzidos.Eletronic Data
Interchangefor
Administration, Commerce and Transportétmpadrão
tradicionalde
EDI,
para
descriçãotextual
de
documentosEDI
ESB
ETL
HTTP
visando
o
annazenamentoe
enüo
por
meios electónicos.Enterprise servtce bus.
A
infra-estruturade
um ambienteSOA
que permitea
interoperabilidadedos
serviços.
As
suas principais funções
sãofomecer conectividade, üansformações de dados,
e
routing, permitindo que
diferentes
sistemas possam comunicarvia
serviços.O
ESB
possui outras capacidades relacionadascom
segurança, fiabilidade,contolo
de serviços, e composição deprocessos.
Extract Transform Load. Ferramentas de software
cuja
funçãoé a
extracção de dadosde
diversos sistemas, transformação desses dados mediante regras de negócios e por fim a carga dos dados.HyperText Transfer
Protocol.
O
protocoloprincipal
da
World
Wide
Web.De
uma
formasegura é
coúecida
por HTTPS.Integrated
Development Environment.
Um
arnbiente orientado
ao
desenvolümento
desoftware específico. (Exemplo: NetBeans
eIDE
INE
Interoperabilidade
IPTM
JMS
Eclipse)
Instituto Nacional de Estatística
A
capacidadede
diferentes sistemas comunicarentre
si.
Interoperabilidade
ente
diferentes plataformas e diferentes linguagens éo
objectivo principal do SOA.Instituto Porturírio e dos Transportes Marítimos
Java
Message Service.Uma
API
do
Java paramessage-oriented
middleware (serviços
demensagens).
Janela Única Porturíria
Uma
forma de
agregar serviçosa
processos denegócio.
A
orquestraçãoretme
viírios
serviços num novo serviço que temo contolo cental
aolongo
detodo
o
processo. Para Web Services, o BPEL é um standard para a orquestação.Plataforma Comum Porturíria
Um
cont'unto estruturadode
actividades/tarefaspüa
obter
uma
determinada
necessidade ou atingir um determinado objectivo.JUP
Orquestração
PCOM
RMI
RPC
SEF
Serviço
SOAP
Remote
Method lrwocation,
é
uma
interface deprogramação
que
permite
a
execução
de chamadas remotasno
esüloRPC em
aplicações desenvolvidas em Java. É uma das abordagens da plataforma Java para fornecer as funcionalidadesde uma plataforma de objectos
distibúdos.
Remote Procedure
Call.
É, um protocolono
qualum
programa pode chamarum
serviço de outroprograma localizado
nouto
computador
numa rede sem ter que entender os detalhes desta.Serviço de Estrangeiros e Fronteiras
Em
tecnologias
da
informação,
pode
ser designadocomo
a
resoluçãode
funcionalidadesde negócio.
Tecnicamente,
um
serviçoé a
descrição de umaou
mais
operações
que
utilizam troca
deinformação entre um fornecedor e um cliente.
Simple Object Access
Protocol,
é um
protocolopara troca
de
informações estruturadas numaplataforma
descentalizada
e
distibúda,
utilizando tecnologias baseadas em )OvIL.Worlcflow
)G/ÍL
Na
maioria
das
organizações, principalmenteempresariais,
os
procedimentos
que
cadainterveniente
assume
no
contacto
com
adocumentação,
informação
ou
taÍefas
destas,devem estar
sob uma
estrutura organizacionaladequada
aos
objectivos
de
negócio
da organização.O
work/lou, surge para responder ànecessidade
de criar
um
co4iunto de regras queveúam
ajudar
na
obtenção destes objectivos.Worffiow
controla todas
as
actiüdades
queconstifuem
um
processo,sugerindo
o
melhorfluxo
a
seguir,
tendo
em
conta
regrasimplementadas à partida.
Extensible
Marhry
Language,é
uma linguagemcapaz de descrever diversos tipos de dados. O seu
propósito
principal
é a
facilidade departilha
deinformações atavés da Intemet.
Ente
linguagensbaseadas em
XVIL
incluem-seXHTML
(formatoResumo
A
integração de sistemasé
uma necessidade cada vez mais necessária face àexigência e competitiüdade dos negócios. Uma forma de responderÍnos a estes
factos é através da tecnologi4 acompanhando-a e aprofundando-a.
O
presente documento apresenta uma proposta de solução tecnológica a estesfactos. O caso que iremos abordar trata-se da necessidade de renovar
o
sistema de gestão portuáriaa nível
nacional, garantido uma continúdade de negócio, assim comoa
implementação de novas funcionalidades que permitama
estaplataforma ser totalmente independente e integrável com outros sistemas e/ou adaptável a oufas organizações no futuro.
SOA,
Service OrientedArchitecture,
foi
a filosofia
adoptada para garantir afacilitação
do
tráfego marítimo
através
da
harmonizaçáode
processos eprocedimentos
entre
os
vários portos,
fundamentalmenteno
referente
àinterconexão e interoperabilidade, e a partilha e troca elecfiónica de informação
processual entre os vrários membros da comunidade marítima e portuaria.
Procedures
for
Port
Electronic
lnformation
System integration
is a
necess§
progressively more required due
to
the business demand and competitiveness.It
is possible to respond to the latter factswith
technology, byfollowing it
and developing it.This study proposes a technological solution for the abovementioned facts. The
case
to
be addressed is the needto
renovate the port management systemin
anaüonwide scale, assuring simultaneously the continuity of the business and the implementation
of
new functionalities thatallow for
thisplatform
to be utterly independentand
applicable
to
other
systems
and/or
adaptable
to
other organrzations in the future.SOA,
Seryice Oriented Architecture,w6
the theory adoptedto
guarantee thesimplification
of
the
maritimetraffic, by
harmonisingthe
processes and the procedures amongthe
several ports, especially concerning the interconnection andinteroperability,
andthe
electronic sharing and exchangeof
information referent to processes amongst the numerous members of the maritime and port community.I
lntrodução
No
tempo cottente, verificando a existência de uma forte informatrzação globale com a
contínua evoluçãotecnológic4
deparamo-noscom a
necessidade deseguir este
ritno
vertiginoso atentamente, de forma a melhorar incessantementeo
funcionamento
das
organizaçõesatendendo
à
competitividade
e
aocrescimento dos negócios. Para que isto possa acontecer, é fundamental quebrar
as
barreiras
organizacionaise
geográficas,guê
impedem
que
os
actoresintervenientes
teúam um
melhor
desempenhono
seu tabalho.
Uma arquitectura orientada a serviços (SOA) apresenta-se como uma solução viável paÍaa
obtençãode
eqülíbrio ente
instituições/oryaruzações,reduzir
custos, melhorara produtiüdade
e
sustentabilidade,eütar
o
desperdícioe
optimizar processos e a comunicação.A
APP, Associação dos Portos de Portugal, como
desejo de contribuir para o desenvolvimentoe
modemizaçãodo
Sistema PortuiárioNacional, lançou
odesafio
de
desenvolvere
acfi:alizar
as
aplicaçõesinformáticas
de
gestãoportuaria (aplicação PCOM) de todos os portos nacionais, tendo como objectivo a criação de uma nova aplicação denominada JUP (Janela Única Portuária), que centralizaná todos os processos de gestiio porturária dos portos Douro e Leixões, Lisboa e Sines.
Partindo
destedesafio,
e
tendo
a
possibilidadede
fazer
parte da
equipa integrante desteprojecto
surgiua
motivação peraa
realizaçãode um
estudo sobre a melhor forma de abordar o problema tendo em vista os aspectos acima referidos.1.1
Objectivos
O
objectivo deste trabalhoé
apresentar uma abordagemSOA
sobreo
sistemaJUP,
expondo
a
arqútectura utilizada
e
as
tecnologias
e
ferramentas envolventes, assim como efectuar um esfudo em torno desta.1.2
Enquadramento
lnstitucional
A
Indra
SistemasPortugal
S.A
é
uma
subsidiária
da
Indra
Sistemas,multinacional
espanhola,líder no
sector das Tecnologiasde
Informação.A
Indra proporciona aos seus clientes apoio e serviços para as mais diversas áreasde
mercado,tanto
na
Industria
e
Comércioem
geral como
em
areas mais específicas, nomeadamente;Transporte
e
Tráfego,
Energi4 Utilidades
eOperadores,
Administação
Públicae
Saúde, Defesae
Forçasde
Seguranç4 Finanças e Seguros.A
APP
-
Associaçãodos Portos
de
Portugalé
uma
Associaçãosem
fins lucrativos consütuídaem
1991,com
o
objectivode
sero fórum
de debate etroca de informações de matérias de interesse comum para os portos e para o
í.3
Organização da Dissertação
No
próximo capítulo apresentaremos a JUP, Janela Única Portuaria" expondo adescrição
do
sistema assimcomo
os
seus intervenientes. Seguidamente, nocapítúo
3
faremosa
exposiçãodos
conceitose
tecnologias abordadas noprojecto.
No
capítulo
4
discutiremos
as
metodologias
e
procedimentos adoptadosna
implementaçãodo
sistema JUP. Posteriormente,no
capítulo 5, apresentaremos um caso de estudo sobreum
dos processos implementados no sistemaJUP.
Por
fim,
discutiremose
concluiremos acercadas
escolhas edecisões tomadas no projecto.
2
Janela Única Portuária
Neste capítulo iremos
apresentaro
sistema JLJP
especificandoas
suascaracterísticas
principais,
assimcomo
os
seus intervenientes.Na
secção 2.1iremos apresentar a descrição do sistema e na secção 2.2 os actores do sistema e
a forma como estes interagem no sistema.
2.1
Descrição do sistema JUP
O
sistema permite gerir toda a operação portu.ári4 não só do ponto de vista da autoridade portuária como também do ponto de vista das várias entidades que compõem a comunidade porturíria.Podemos
dividir
o sistema em três conjuntos:ttaaaat++aata»lataaaaaaaatta aaaaa++t',
ilJP -
Jrrlh
ÍiHer PortrÉrhIlustração I
-
Visâo geral do negócio.a
t
Errçi:Emti:lr
Egrri:rr *-t;. ft Erlld:rt
t
il
a
Ermdlrir huirir hErr llüiri-r Eieler Pru,rlro l,{rio Tnnrpo(r Corírolodt Du,untntm * Pmtt.';ÍGítlmloúr gío dt Pru,t';';orI Pmt et";o l,kn,rdtr-br
o
Meios
de
Transporte
-
Neste conjunto constamtodos os
processos relacionados com as operações dos meios de transporte realizadasden[o
daáreaportuária: Comboio, Camião e obviamente
Naüo.
o
Mercadorias
-
Neste conjunto constam os processos relacionados como
registode
entradae
saídada
mercadoria, bemcomo
as obrigações declarativas referentesa
esta"mais
especificamentea
declaração de mercadoriasà
alÍândega atravésde
um
conjuntode
documentos dosquais se destaca o Manifesto.
o
Controlo
de
Processos-
Este conjunto compreendea monitoizaçáo,
por
parte da autoridade portuaria das actiüdades relacionadas com osmeios de transporte e mercadorias.
A
principal
missãodo
sistemaé
responder às necessidades querdo
meio
detransporte,
quer da
mercadorianele
tansportada,
de uma forma
célere
eeficiente. Para
tal,
devepermitir a
solicitação detodo
o tipo
de
produtos eserviços necessários numa escala
e
fornecer meios as entidades competentes para responder a esses pedidos.O
sistemaestá intimamente
ligado
ao
sistemada
Autoridade
Aduaneira, existindo uma relação Businessto
Business(B2B)
ente
os dois
sistemas.A
informação registada é partilhada
por
ambos e deve também estar acessível asrestantes entidades da comruridade portuiíria.
Deve
também conseguircomunicaÍ
com os
sistemas dasvárias
instalações poúuárias, sejam estas de operadoras de contentores ou de carga geraUgranéis.Finalmente,
o
sistema devedisponibilizar
a
informação adequadaàs
vráriasautoridades nacionais competentes
(IPTM,
INE, VTS Costeiro, entre outros).Além
de
fomentara
integração detoda a
comunidade portuaria (AutoridadePorturíriq Autoridade Aduaneira, Capitania,
SEF,
Sanidade, Operadores Portuiários, etc.), para que os pedidos sejam efectuados uma sóvez,
sendo ainformação compartilhada por todos, com as questões de confidencialidade da informação asseguradas,
o
sistema também permitea
integração com sistemas internos, como sistemas de facturação, estatística e recursos humanos. Na figura abaixo podemosverificar
todas estas integrações assim como uma visão geraldas características da JUP.
JUP
lnh rb,:*q
lnb rrrs
lnb rhaas Erfurma
Ilustração 2
-
Caracterização da plataforma JI-IP.Gorünh dt Ilmurnlfts t Pfitto$stp tfutit do Serul;o lloffica$ü+*
fltrht
EH §stÉma OúÍfr mfug §0§ oúnu Pru*üsol,lth Tmn*prte Prmm*or dt Gtsliio üÊ ftssro+ {PGry Fmctriso ],lercadofiat Prüfacüra$ol
ftpnúngffi
Li - '* **ir-ffiI
L sirtenaI
L ;L2.2
Actores do sistema e interacção com
a JUP
Podemos
dividir os
actores intervenientesno
sistemanos
seguintes grandes grupos, de acordo com o tipo de intervenção que têm no sistema:Tabela 1
-
Intervenientes do sistema.7
Agentes
São
os
representantes
perante
a
restantecomunidade
do
navio, comboio, camião
e
atémesmo
da
mercadoria.São
os
responsáveis por entregarum
conjunto de
declaraçõese
pedido
dedespacho
que são
geralmente denominados porobri gações declarativas.
Autoridades
São responsáveis pela emissão de autorizações para a maioria das actividades do
navio ou
mercadoria. Sem as aut onzações deste grupo um navio não pode entrarou
sair de porto, descaregarlcarregarou
atémesmo
manobrar
em
porto. Neste
grupo encontritm-se a capitania do porto,a
autoridade desaúde, a alf*andega e a administração do porto.
Prestadores de Seruiços
Dentro
da
éreaportuária existe
um
conjunto
deserviços que podem ser executados sobre o navio ou
sobre
a
carga.
São
exemplos
de
senriços,
oabastecimento de provisões,
a
recolha de resíduos deum
navio
ou
o
aluguerde
equipamento. Estesserviços são prestados por um conjunto de entidades
bem
identificado
ou
até pela
propria
autoridade porfuária.Na
figura
abaixo podemosver, de forma
esquematizada,como
estes actores intervêm no sistema:ilm
Caneqador§
F . -:.rtlut :-. :. 11..il ?*b-r-;-t''§
-2-tt-it"- 1 . ;t-r rFl irlllltl,rt
ft
rI
0rr FJPÍ:
aüD
4l?.\ r,ij195Ltt
r.#
üI
llx
'tffi q ,:l''-;.
#
,;J
ÂLrt]rlúâdÊ 5aúde C.rpÊunm SEF2.3
Sintese
Neste capítulo ficámos a conhecer o sistema JUP e os seus intervenientes.
O
sistema
divide-se
em
três
conjuntos principais:
meios
de
transporte, mercadorias e controlo de processos.O
sistema integra outros sistemas (como facturação) e comunica com sistemas externos como o SDS.llustração 3
-
Interacção da Comunidade Portuária com a J[.IP.^4,
L.
0brigações
De*laratÍr,ras
JUP
Respoeftas RegistosOs seus intervenientes principais são os Agentes, Autoridades e Prestadores de
Serviços.
3
Conceitos
e
Tecnologia
No
presente capítulo iremos mergulharno
contexto tecnológico que envolve o sistemaJUP. kemos
abordar
vrírios
conceitos
em torno das
tecnologias utilizadasno
nossotabalho e
taçar
a
ponte
paraa
metodologia adoptada, descrita no capítulo seguinte.Começaremos
com uma
apresentação genéricade
sistemasdistribúdos
eintegração de sistemas
na
secção 3.1, mencionando algUns exemplos como asbases
de
dados distribuídas, processosdisribuídos
e
sistemasde troca
demensagens (nas secções 3.1.1, 3.1.2 e 3.1.3).
Seguidamente,
apresentaremos
o
paradigma
SOA
(Service-OrientedArchrtecture)
na
secção
3.2,
realçando conceitos importantes
que
o caracterizam, como Web Sertices na sub-secçáo3.2.|,BPM
(Business Process Manager)na
sub-secçáo 3.2.2e ESB
(Enterprise Service Bus)m
sub-secção3.2.3.
Terminamos
esta
secçãocom uma
comparaçãoente
SOA
e
Silo Archite cture, na sub-se cção 3.2.4.De
seguid4
introduziremosa
tecnologiaBPEL
(Business Process ExecutionLanguage)
e
JBI
(Java
Business
Integration),
nas
secgões3.3
e
3.4, respectivamente, paÍaum
melhor entendimento das plataformas de integração, monitorizaçãoe
orquestraçãoutilizadas
na
JUP
-
o
OpenESBe
JCAPS, explicadas nas duas secções seguintes (3.5 e 3.6).Posteriormente,
na
secçáo3.7,
apresentaremosa
tecnologiaJma
EnterpriseEdition
(JavaEE),
enfatizandoo
modelo multi-camada paÍaa
construção deaplicações SOA. Nesta secção especificaremos os seus componentes principais: o JSF
(Jna
Sertter Faces),na secção 3.7.1, e EJB (Enterprise Java Beans), nasecção 3.7.2.
De
segúda
abordaremos a linguagem de modelação utilizada neste projecto, oUML,
com a descrição dos diagramas utilizados (na secção 3.8).Por
Íim,
apresentaremos uma tecnologia para automatízar o desenvolvimento desoftware, o Apache ANIT, expostana secção 3.9.
3.í
Sistemas Distribuídos e lntegração de Sistemas
Existem viárias definições
litetírias
para sistemas distribúdos, e nenhuma delas é completamente satisfatória ou está de acordocom
qualquer uma das outras. Segundo Tanenbaum(1994),
a
melhor
forma
de
caracterizarum
sistemadistibúdo
é a seguinte:"A
distributed systemis a
collectionof
independent computersthat
appear to the users of the system as a single computer"Esta definição sugere dois aspectos fundamentais. O primeiro relacionado com
o
hardware(a
autonomia das máquinas)e
o
segundocom
o
software
(os utilizadores pensam no sistema como um computador individual).Um
exemplo simples deum
sistemadistibúdo
pode ser um sistema bancário. Imaginemos um grande banco com centenas defiliais
em todo o mundo. Cadauma tem
um
servidor
que
guardaas
contaslocais, assim como todas
astansacções. Cada computador esüí apto para comunicar com todos os outros computadores
e
com
o
servidor.
Se uma
tansacção
pode ser feita
sem permissão paraum
cliente, e os utilizadores não notificam qualquer diferença entre este sistema eo
sistemacental,
este faz a sua actualização. Podemos ter então um sistema cujas bases de dados estiio distribuídas por todos e quando severifica
uma
alteração, essa informaçãoé
automaticamente panilhada pelos utilizadores do sistema. (Tanenbaum, 1994)A
integraçãode
sistemasé
uma
aproximaçãoestatégica para
ligar
viáriosmódulos/sistemas de informação, permitindo trocas de informação suportando eventos comuns, de modo a obter um sistema
final
funcional. (Linthicum, 2004)O conceito de integração de sistemas, ou
AI
(Application Integration), pode serinterpretado de várias formas. Uma delas pode interpretar o conceito como uma referência
à
integraçãode
aplicaçõesumas
dento
dasoutas.
Outo
seria estabelecer a integração de sistemas apenas por transferência/partilha de dadosente
aplicações,ou
seja, uma aplicação enviaos
dadose a
outra recebe-os, havendo interacção entre os sistemas.(Linthicum,200l)
Alguns exemplos de tecnologias associadas a integração de sistemas podem ser
bus,
ETL,
EAI,
RPC,
RMI,
worlctlow,monitor
de tansacções,ente
outos.
(Cunha,2007)
Partindo destes
dois
conceitos(distibúção e
integração), saltaà üsta
uma característica bastante importante destetipo
de sistemas-
a interoperabilidade.Os
sistemasdistribuídos
oferecem-nos estruturaspaÍa
partilha de
métodos provenientes de locais distintos para serem processados através de aplicações etambém
pela
interoperabilidadeente
processos,isto
é,
o
sistema oferece mecanismos normalizados para aceder aos objectos partilhados, objectos quesão executados em vários servidores.
(Linthicum,2004)
Portanto,
a
interoperabilidade esta associadaà
particularidadede
um
sistema conseguir comunicar de uma forma perceptívele
funcional com outro sistema. Para que isto aconteça facilmente, a existência de mecanismos noÍInalizados éessencial, independentemente do tipo de sistema.
Num
sistemadistribúdo
a forma como é apresentada a informação é bastanteimportante,
pois
o
objectivo
fulcral
é a
tansmissão
de
dados
de
uma organizaçãopara
outa.
Apresentemosentão
algrrnsmodelos
de
sistemasdistibúdos.
3.1.1
Bases de DadosDistribuídas
Imaginemos
um
conjunto de sistemas diferentes, cadaum com
uma base dedados. Uma vez tratando-se de um sistema distribuído, este conjunto de base de
dados diferentes formariam apenas uma base de dados (remota) que
permitiria
aceder à informação de qualquer um dos fragmentos.Assim, de
forma
tanspaÍente e aberta" qualquer utilizador poderia consultar ainformação registada num
outo
sistema integrado.Um
dos
problemas
principais desta
tecnologia
é o
facto
de
a inserção/actualizaçáo de dados na base de dados remota serum
processo que pode causarmúta
lentidãoe
uma baixa performanceno
seu acesso. (Cunhq 2007)3.1.2
ProcessosDistribuídos
Por vezes, há situações em que a troca de informação é demasiado reduzida, o que não
justifica
a utilização de mecanismos complexos para que isso aconteça. Quando temos uma situação de request/reply, por exemplo, transacções curtas, acabamospor
conseguir uma melhor performance se utilizarmos estetipo
deprocessos do sistema
distribúdo,
que pode ser um web service. Exemplo: RPC.(CuÍúa,2007)
3.1.3
Troca
de MensagensEste paradigma destina-se a situações menos reconhecidas em que há
toca
de informação anível
da lógica aplicacional, isto é, informação que as aplicaçõesA
integração neste mecanismo tem a característica interessante de ser auditavele
contolável.
Exemplo:EDI/XML.
(Cunhq 2007)3.2
SOA
(Servrc*OrtenÍed Architecturel
O
termo
SOA tem origem
em
1994,
com
o
antigo analista
da
Garürer, Alexander Pasik, período em que ainda não existia)CvIL nem
Web Services.(Josuttis,2007)
Com base no modelo cliente/servidor e
no
software que poderia envolver cadanma
destas partes,
Pasik
realçou
server
orientation estimulando
o desenvolvimento de aplicaçõesSOA
e, juntando a necessidade, cada vez maisvivq
das empresas integrarem os seus sistemas com outros sistemas de outras entidades,o
SOA
tomou-seum
conceito futurista
no
desenvolvimento desoftware. (Josuttis, 2007)
A
grande vantagem de uma arquitectura orientada a serviços parte da redução daredundância
na
construçãode
sistemas aplicacionais,graçÍs à
reutilização deserviços, que serão referidos muitas vezes como Web Services.
O
SOA permiteàs
organizaçõeso
desenvolvimentode
aplicaçõestendo
como
enfoque
osprocessos de negócio, fazendo uso de serviços
já
existentese
orquestando-as tendo em vista as necessidades de cada aplicação. (Erl, 2005)O
SOA
facilita
a
interacção entre serviçose
permitetirar
melhorpartido
dascapacidades
de
distibúção
que
estes oferecem.Outo
ponto
importante que determina este conceito refere-se ao controlo destas capacidades dedistribüção
poder
serfeito por
diferentes domÍniosde
diferentes proprietarios,ou
seja,podemos
ter
sistemas complexos onde diferentes equipas, departamentos ou organizaçõesinteragem
simultaneamente,utilizando
diferentes
plataformas também, e cada uma destas podemodificar
os ambientes em que cadaum
seinsere sem causaÍ transtorno para Íts outras partes. (Josuttis, 2007; Erl, 2005)
Do ponto referido anteriormente aproximamo-nos de uma outra característica do
soA
-
suporte da heterogeneidade. Em sistemas com um grau de complexidadeelevado podemos encontrar diferentes plataformas, diferentes linguagens e
paradigmas de programação, e por vezes, diferente middleware, isto é, sistemas
heterogéneos. (Josutti s, 2007)
Ilustraçâo
4
-
Representaçâode
um
possível cenárionum
sistema distribuído(heterogeneidade). (Fonte: Josuttis, 2007)
Com sistemas heterogéneos e a capacidade de poder ligáJos facilmente,
o
SoA
permite
um
grande avanço
no
que
toca
à
interoperabilidadede
sistemas,/ \
I
estendendo
o
conceito de EnterpriseApplication
Integratior?(EAI).
(Josuttis, 2007)3.2.1
SOA eWeb
ServicesA
partida deduzimos uma forte ligagãoente
SOA e serviços.Um
serviço, numaperspectiva
de
negócio, consiste numa funcionalidade tecnológica autónoma, associada a actividades de negócio. Tecnicamente,um
serviço é uma interfacede mensagens que podem ser trocadas
ente
fomecedores e clientes.Cada serviço possui
um
contextode
execuçãopróprio
e é
responsável pela execuçãode
um
conjuntobem
estanquede
funções.§ewcomer e
Lomow, 200s)Vejamos como
Natis
(2003) mostraa
importante relaçãoente
SOA
e
WebServices:
Although
Web Services donot
necessartlyfianslate
to SOA, andnot
all
SOAk
basedon
Web
Services,the
relationship
betweenthe
two
technologt
directions
is
important and they are mutually
influential:
Web
Servicesmomentum
wilt
brtng SOA
to
mainstream useÍs,
and
the
best'practicearchitecture
of
SOA
will
help make
Web
Senices initiatives
§ucce§sÍul§atis,2003)
Segundo Newcomer e
Lomow
(2005),o facto
dos Web services serem difusos(no
sentidoem
que
possuema
capacidadede
poderem estar presentes, ou "espalhados",por
diferentes
aplicações),simples
e
autónomos contribuem vantajosamente para a implementação de aplicações SOA.A
arqútectura básicade
um
Web service (verilustação
5) consiste em especificações(WSDL,
SOAPe
UDDI)
que
suportama
interacção
entr.erequester (cliente)
e
provider
(fomecedor) e o potencial conteúdo do Web service.
UDDI t*. .o -) *t" -a a tl ll a a -a ao tta a"' tta WSDL SOAP
Ilustraçâo 5
-
Arquitectura básica de um Web service. (Fonte: Newcomer e Lomoq 2005)O
provider
tipicamente publica a descrição doWSDL do
seu Web service e o requester acede a esta descrição atavés daUDDI,
ou
de outrotipo
de registo,pedindo
a
execuçãodo
serviço
com
o
envio
de
uma
mensagem SOAP.Para um melhor entendimento desta arquitecürÍq pasisemos a especificar SOAP,
UDDI
e WSDL.o
SOAP (Simple
Object Access Protocol)z Protocolo
para troca
deinformação num ambiente
distibúdo.
Pedidos de clientes e as respostas deum
Web Service são transmitidos como mensagens SOAP por HTTP,permitindo uma troca perfeitamente interoperável
ente
clientese
WebServices, executados em plataformas e locais diferentes na Internet. As mensagens
SOAP definem,
com
base
em
XML,
a
descrição
da mensagem e a forma como processáJa,inclui
regras de codificação (em)C\4L
também)para indicar
instânciasde tipos de
dadosdentro
da mensagem e, uma convenção para representar os pedidos remotose
aresposta resultante. (Gudgin eL al., 2007 ; Box et a1., 2000)
o
WSDL
(Web
Services
Description Language):
Descrigão
de
um serviço de rede no formato )C\4L (nome/localizaçáo do servigo e meios possíveis para comunicaÍ com este). Esta descrigão pode ser guardada em registosUDDI
ou publicados na Web. (Hansen, 2007)o
IIDDI
(anivercal
Description Discovery
and Integration):
Formato)G/ÍL
standard que permite publicar informação de negócio na lnternet sobre produtos e Web Services, onde a informação pode ser prontamentee globalmente acedida pelos clientes. (Hansen, 2007)
Vejamos de seguida uma
ilustação
de uma plataforma de Web Serttices com ascomponentes
básicas
e
estendidas necessríriaspaÍa
dar
suporte
a
umaarqútectura orientada
a
serviços,atavés
uma Enterprise ServiceBzs
@SB) para ligar os serviços.§ewcomer
e Lomow, 2005)Core Faciliües
ProvkJed by the
Web SeMces PlatÍorm
Ilustraçâo 6
-
Plataforma de Web Services. @onte: Newcomer e Lomow, 200OExistem várias versões diferentes de lüeb Services especificados por diferentes organizações, o que pode tomar a interoperabilidade num problema.
No
entanto,a
Web
ServicesInteroperability
Organtzation
(WS-I) tenta resolver
estepoÍnenor
pela promoção de diferentes perfis para determinados conjr.rntos destandards. @r1,2004) Service Contracts Service Begistry[ookup Service Proxies/lStubs Servic*Level Data Model Seruhe-Level Security Service-Level Management Service-Lwel QoS ServkB-Level Comm Model Multi-LanguaÍp Bindings
Serulce Contracl §ervice Contmcl §eÍvlcê Prcvidcr Service Gontract §ervice Fequecter Servhe Provider
3.2.2
SOA eBPM
(Business ProcessManager)
Numa
arqütectura orientadaa
servigos, os serviços são tipicamente partes deum ou
mais
processosde
negócio
distibúdos.
Estesserviços são
depois executados sobreuma
certa ordem para
atingir
um
determinadofim.
Esta sequênciade
execução
de
serviços
forma
um
flrxo,
o
quat pode
serrepresentado sobre a forma de um BPI|ld (Business Process Manager).
BPM,
consiste numa tecnologia que permite conhecer, visualizar econtolar
osprocessos de negócio de uma ou mais organizações e, a sua relação com o SOA
é
bastante eüdente,na
medidaem
que as actiüdades debaixo nível de
um processo são serviços. Do ponto de vista do negócio, não interessa quando é queos
serviços são básicosou
complexos, massim
que os serviços oferecem asfunções de negócio necessárias. (Josuttis, 2007)
3.2.3
SOA e E,SB (Enterprise Semice Bus)Uma parte
do SOA
correspondeà infra-estutura
que permitea
comunicagão entre serviços. Esta funcionalidadeé coúecida por
ESB, Enterprise Service Bus.Além
de permitir aos clientes chamar os serviços fomecidos, o ESB impulsionaa interoperabilidade uma vez que permite a integração de diferentes plataformas
e
linguagens
de
programação,onde
um
dos
pontos
fundamentais
é
a transformaçãode
dados,isto é, a
habilidade para üansformar dadosde
um determinado formato paraouto,
permitindo assim que qualquer serviço sejaasessível e entendido por qualquer parte
envolüda
no sistema. Tarnbém assumeum
papel
importante
no
que toca
a
routing,
seguranga,monitorização
eorquestação (normalmente
por BPEL),
autenücaçãoe fiabilidade.
(Chappel, 2004 ; Kinnumpurath, 200 5)Ilustração 7
-
Ambiente ESB. (Fonte: Kinnumpurath, 2005)No
mundo ESB,os
serviços não interagem directamente entre si.No
entanto,em tempo de
execução,o
ESB
acfuacomo
um
mediador entreos
serviços, podendo implementarprotocolos
de
ligação,
tadução
e
manuseamento demensagens, entre
outas
actiüdades. (Kinnumpurath, 2005)I-LI
t
I
fl
tt
-ffi
§eruice §eruics §eruice 5*rrlce §eruice Servica3.2.4
Service OrientedArchitecture
versus SiloArchitecture
Uma aplicaçáo stlo típica traça as suas funcionalidades sobre uma aplicação
já
existente. Basicamente, existe uma aplicação com uma interface que acede aosdados de negócio através de aplicações de mainframe.
A
lógica de negócio estadistribúda
ao longo de um mainframe e outros computadores descentralizados.A
sua interface tende a servolátil,
o
que forçaa
que quemutiliza
os serviços tenha que se adaptar a estes sempre que haja alterações. Isto pode causar algurn caos, começado pela duplicagãode
sistemas, regras de negócioe
dados. Na figura abaixo podemos ver a ilustração deste cenário. (Gévaudan, 2005)application, presentation
incl. businÊss logic
Ilustração 8
-
Desenho da Silo Architecture.Por outro lado, numa arquitectura orientada a serviços, as aplicações possuem
apenas a apresentação da lógica de negócio. Existem serviços que normalmente
oferecem funcionalidades de negócio sem apresentação.
E
a própria aplicação que controla os grupos de utilizadorese
as sequências de negócio através debusiness processes (processos de negócio), reduzindo a complexidade e levando
a um desenvolvimento e deploynent mus rápido. (Gévaudan,2005)
services, business lffiic
and daEbases
Ilustração 9
-
Desenho da arquitectura orientada a serviços (SOA).ÜF =.9
5E
HõgB
ão-TE.§
.*.t
Ê ÕNuma arquitectura orientada a serviços, o ponto de interacção entre
o
cliente efomecedor
do
serviço
é
definido
por uma
função
de
negócio,
e
não
por aplicações entre componentes, como acontece na silo architecture.No
SOA, um serviço fomece todo o conteúdo desta função de negócio (ou grupo de fi.rnções)e expõe uma interface aos seus clientes.
Isto
significa que a lógica de negócio pode ser modificada sem afectar os clientes. (Gévaudan, 2005)Desta forma, as aplicações numa arquitectura orientada a serviços não contêm a
lógica de
negócio. Estas aplicaçõesutilizam
serviços,muito
mais fáceis
deimplementar
e
com um
grau
de
simplicidade superior,e
esteé
um
factor extremamente importante para quem desenvolve software, representando uma grande vantagem face aos custos elevados na manutenção de aplicações com uma arqütectttra silo. (Gévaudan, 2005)Na figura abaixo podemos ver um exemplo concreto do desenho da arquitectura
de um sistema antes do SOA e depois do SOA:
25
{
Funçôes de Hegócio dependentes de Aplicagôes Aplicaçôes Comp ostas
§erviços de ilegscio RBtttilizaueis
@
t-J
trtrr*rt ,+1l re;*1tra ai l* ItIlustração l0
-
Antes e depois de SOA.Observando
a
imagem, podemosverificar
que
em
arqútecturas tradicionais (antesdo
SOA), todosos
componentesdo
sistema (actividades de processos, aplicaçõese
dados) estão normalmente fechadosem
blocos independentes eincompatíveis.
Como
já
referimos, esta
característicaimplica uma
grande dificuldade na manutenção destes sistemas, onde os utilizadores são obrigados anavegaÍ
em
redes, aplicaçõese
bases de dados separadas para conseguirem concretizar os seus objectivos. (Sun Microsystems, 2008b)Com
o
surgimentodo
SOA,
atravésde
um
serviço
integrado,o
utilizador consegue aceder a dados relevantes numa única aplicação e numa única sessão.(Sun Microsystems, 2008b) Gestão de Prúissionals Corüol Bus Depois de SOA
Compartimentado, Departarnelilâ|, Co laboratiuo, lntegrado
T
Contrdaçâol Cartelra Contsataç& Pagrrrúc Supffi TarÍrção Antes de SOA §inistras AHraê Expedbrb §uphrr-rfu PrgrrnrÍe ffi*"*wIttuldirg
n
' cRit' Vendr Finanç* CatálqpFunção & l{egocb CorftrdaçâoJ Carteira Sinistros Prorc Hegocb I
rnri
Corürt+()o
Ít tc Serui0o Çt"'t. e §eru1ço3.3
BPEL (Business
Process
Execution Languagel
Segundo
Iymgar
etal.
(2008), BPEL, também conhecido por WS-BPEL (Web Service BusinessProcess Execution Language),
consistenuma
linguagem (baseada em)CvIL)
de execução com a finalidade de especificar processos denegócio e protocolos de interacção de negócio. Por Jordan e Evdemon (2006),
esta interacção ocorre através de Web Services, e a estrutura do relacionamento
a nível da interface é
encapsuladarrrnpartnerLink.
Um
processoBPEL
define comomúltiplas
interacções entre serviçoscom
osseus parceiros são coordenados para atingir objectivos de negócio, assim como
o
estadoe
toda
a
lógica
necessiíriapara
esta coordenação.Por outro
lado, introduz mecanismos sistemáticos paÍalidar
com excepções de negócio e falhas de processamento, possuindo tambémum
mecanismo paradefinir
como é que actividades individuais ou compostas, inseridas numa unidade de trabalho, est2Íoa
ser compensadasem
casosde
ocorrênciade
excepçõesou
de
solicitaçõesreversas por parte dos parceiros. (Jordan e Evdemon,2006)
BPEL é um processo reutilizável, com elevado nível de abstracção, que pode ser
intoduzido em
diferentes
cenários, enquantomantém
um
comportamentouniforme
a
nível
da
aplicaçãopara
todos
eles.
Outro
aspecto refere-se àdiminuição considerável da complexidade. (Jordan
e
Evdemon,2006; Salter eJennings,2008)
Segundo Salter e Jennings (2008), actualmente, a adopção
do BPEL
éo
meio mais elegante paÍa orquestrar Web Services inseridos num processo de negócio significativo. Vejamos esquematicamente onde se insere o BPEL:Ç c}
.-
*., () {tr L-+-, {n .ela-o
p
G, >\5
UMLActivity
Dfl
É
D{
+
DC&
Pmcess ArchitectBPEL
<inwke> < assi§fl > < rÊceive >
ffi
lntegerationDeveloperws
&
services DevÊlorer&
sYstem Derrclo,er§torage
Ilustraçâo
1l
-
Identilicaçâo do BPEL numa arquitectura aplicacional. @onte: Salter eJennings,2008)
Podemos
veriÍicar que na primeira
camadaa
modelaçãode
actividades eworlc/low, através de
UML
(ver
secção 3.8), seguido dos nossos processos deintegração, com a tecnologia BPEL e por
fim,
os Web Services (WS) que fazem3.4
JBI (Java
Busíness lntegrationl
JBI é um standard do Java para estruturar a integração de sistemas de negócio.
Define
um
ambientepara
conectar componentesque
interagem usando um modelo de serviços baseados em WSDL.Na figura
seguinte está representadoo
ambiente desta tecnologia,onde
osrectângulos azuis representam as componentes de ligação, dentro do ambiente
JBI.
Estes componentes estão ligados am
router
de mensagens, através doschamados delivery channels (a amarelo), e a sua firnção tanto pode ser serviços por parte do fornecedor ou do cliente, ou ambos. (Ten-Hove,2006)
Local Providers/ Consumers Protocol Handlers Remote Providers/ Consumers
ô
1,
Ilustração 12
-
Ambiente JBI. (Fonte: Ten-Hove, 2006)Os
componentesque
fomecemou
recebem serviços localmente(dentro
do ambienteJBI)
são chamados de service engines e os componentes que fomecemI t J DC DC DC DC JBI a
Normalized Message Router
29 Environment Service Engine 1 Binding Component 1 Binding Component 2 aaa Service Engine 2
ou
recebem serviços atravésde
algum protocolo
de
comunicaçãoou
outratecnologia
remot4 são
chamados
binding
componentes(em
português, componentes de ligação). (Ten-Hove, 2006)Os componentes
JBI,
umavez
instaladosnum
ambienteJBI,
interagem entreeles
atravésde
um
processode troca de
mensagens,que
é
descrito
por documentosWSDL,
publicadospelo
serviço fornecido. Estes descritores deserviço contêm informação necessiária para que haja interacção entre serviços
cliente
e
serviço
fomecedor.
O
JBI
possü uma
infra-estrutura
leve
demensagens,
coúecida
por
Normalized
Message
Router,
que
fomece
omecanismo
de troca
de
mensagens, garantindo interoperabilidadeentre
oscomponentes. (Raj et al., 2006; Ten-Hove, 2006)
3.5
OpenESB (Open Enterprise Service Bus)
Um
dos
exemplos
de
uma
plataforma
ESB
para
Business
Integration,Enterprise
Application Integration
(EAD
e
SOA
é
o
OpenESB
(Open Enterprise Service ,Bzs). OpenESBé um
projecto
open sourceque
inclui
o padrão Java BusinessIntegration (JBI)
e diversos componentes e tecnologias deseúadas paramaximizar
a
agilidade dos negóciose reduzir os
custos deintegração. Para além disto, conta com novas funcionalidades e ferramentas que
possibilitam o desenvolvimento de aplicações compostas, ao mesmo tempo, em que impulsionam as aplicações
e
sistemasjá
existentes.A
plataforma ofereceaumento
de
interoperabilidade
e
integração
com
outros
softwares,nomeadamente
o
Java CAPS, que
abordaremosno
segünte
subcapítulo. (OpenESB,2008)Na figura seguinte podemos observar a arquitectura desta plataforma, com cada
uma das suas componentes identificadas:
{
Ú;ffinllffikx-I lr Application Server ARR[;c11ion §erver lBl BU5 lnternrUlntranet'lc
o
Composite Application Businets Logiç ttnitsIlustração 13
-
Arquitectura do OpenESB. (Fonte: OpenESB, 2008)Segundo OpenESB (2008):
.
Application
Server:
Servidor aplicacional (GlassFish), quepermite
afiabilidade,
escalabilidade,
resiliência, implantação
(em
inglês, deploymenr) e controlo de aplicações Java EE.3r lllonitor ;Àffi i I T
ffi
r
b*-&#ffi.sry
I l L> ',I r.-,\
I ,I t IO Composite
Applicatioa:
Simples artefactos autónomos que contémsub-artefactos que podem ser serviços que compõem
a lógica de
negócionum
serviço
global. Uma
CompositeApplication
permite-nos
criar serviços de integração ou orquestração com uma nova lógica de negócio, semter
que
interferir nos
serviçosjá
existentes, comunicando com outras aplicações através de protocolos HTTP, SOAP, REST, JMS, FTP,entre tantos outros.
A
orquestração de serviços é feita através de BPEL.JBI
Bus:
Alberga uma série de componentes de ligação que integramtodo
o
ambiente
de
negócio.
Este
é o
grande
responsável pela interoperabilidadedo
sistema. Quandoo
envio/recepção de mensagensocoÍre
fora de um
ambienteJBI,
a
comunicaçãoé
feita
através do Normalized Message RouterOIMR),
uma infra-estrutura de mensagens,e
passadaspara
o
cliente
através
de
um
componentede
ligação apropriada.No
casode
ocorrernum
ambienteJBI,
não
é
necessiáriaqualquer
conversão, serialização
ou
normalização,
pois
todas
asmensagens
estão
normalizadase
num
formato
standard, chamado WSDL.Service Engines and
Binding
Componentsz Services Engines fomecem a lógica de negócio e serviços de transformação a outros componentes.Os
Binding
ComponenÍsfomecem
serviços externos
ao
ambiente OpenESB,permitindo
envolver outros protocolos de comunicação ou serviços.a Business
Logic Units:
Elementos que implementam certos aspectos dosserviços globais.
Por
exemplo,um
processo de negócioBPEL
criadopara
implementaruma
transacçáo e-commerce,a
partir de
serviços internos ou externos.3.6
Java CAPS (Java Composite Aplication Platform SuiÍe)
A
plataforma escolhida para implementaro
conceito SOA neste projectoé
oJava Composite Application Platform Suite (Java CAPS, ou apenas JCAPS) da
Sun
Microsystems.Esta
ferramenta está preparada para endereçar projectos complexos,onde
a
diversidadede
sistemase
aplicaçõese
das
respectivas interfaces seja grandee
em que
se
pretenda encapsular rapidamente essasaplicações como Web Services compostos
e
orquestrados. (Sun Microsystems, 2008)Sendo baseada
no
conceitoSOA
e
Enterprise ServiceBzs (ESB),
o
JCAPSdisponibiliza
ferramentaspila o
rápido
desenvolvimentode
novos
serviços compostos (CompositeApplications),
integração baseadaem
lV'eb Services, serviços de Business Process Managemeríl(BPM) e
standards abertos. Além disto, os seus módulos são totalmente interoperáveis e fornecemo
mais vastoconjunto
de
funcionalidadesde
integraçãoe
reutilizaçáo, transformagão dedados
(ETL)
e
um
completíssimo conjunto
de
conectoresde
serviços
eaplicações. (Sun Microsystems, 2008)
Esta suite
inctui
ainda
funcionalidadescomo
BusinessActivity
Monitoring
(BAM)
para a criação de sofisticados dashboards e sistemas de alerta, serviçosde
integragãoB2B e
implementao
conceitode Vista Global
de
Clientes eRecursos (Master Custo mer Index). (Sun Microsystems, 2008)
Segundo
Sun
Microsystems(2008a),
a
última
versãoJCAPS
6
possui
osseguintes componentes principais:
o
SunJava
ESB Suite:
Baseadano
OpenESB (abordadono
capítulo anterior) e JBI, a Sun Java ESB Suite é uma plataforma modular e abertaque
permite
a
rápida criaçãode
aplicaçõese a
interligaçãoa
vários componentes e protocolos para maior flexibilidade SOA.o
Intelligent Event Processor(IEP):
Oferece a capacidade para identificar ameaçasem
tempo real, permitindo às
organizações responder anegócios críticos e tomar acções correctivas de forma pro-activa.
o
Business
Process
Management:
Suporta
BPEL
2,
inclui
novascaracterísticas
defailover
e
alta disponibilidade, e fornece processos demonitorização através da integração com IEP.