EXRCITO BRASILEIRO
DEPARTAMENTO DE CINCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
CURSO DE MESTRADO EM SISTEMAS E COMPUTAO
Rio de Janeiro
2014
Rio de Janeiro
2014
c2014
355.33041
L318p
____________________________________________________________
Prof. Ricardo Choren Noya D.Sc. do IME Presidente
____________________________________________________________
Prof. Wallace Anacleto Pinheiro D.Sc. do IME
____________________________________________________________
Prof. Eduardo Bezerra da Silva D.Sc. do CEFET/RJ
Rio de Janeiro
2014
AGRADECIMENTOS
Aos professores Eduardo Bezerra da Silva e Wallace Anacleto Pinheiro por terem
aceitado participar de minha banca examinadora.
Em especial, ao meu orientador e professor Ricardo Choren Noya, pela ateno
constante e paciente orientao ao longo deste trabalho.
Aos professores Ten Cel Ronaldo Moreira Salles e Maria Claudia Reis Cavalcanti,
Coordenadores do Curso de Ps-Graduao em Sistemas e Computao do IME, por
acreditarem no meu interesse em concluir o curso, mesmo aps imprevistos pessoais.
Ao Instituto Militar de Engenharia e a todos os professores e funcionrios, que
tornaram possvel a realizao deste trabalho.
Ao Centro de Anlise de Sistemas Navais e a todos os meus colegas de trabalho,
em especial: Comte. Aquino, Luciene Carvalho, Jorge Calvelli e Manoel Pedro S,
que me apoiaram incondicionalmente para a concretizao deste trabalho.
Aos meus colegas de classe, Edgard Bernardo, Marcus Albert, Diego e Tanilson,
fiis participantes dos nossos grupos de estudo da sala 2035. Conquistar e
compartilhar o conhecimento com vocs sempre ser uma tarefa gratificante.
A Marinha do Brasil, por todas as oportunidades fornecidas para o meu
aprimoramento pessoal e profissional durante o transcurso de minha carreira militar.
Por fim, agradeo especialmente a minha famlia, pelo seu apoio incondicional.
Os que se encantam com a prtica sem a cincia so como os timoneiros que entram
no navio sem timo nem bssola, nunca tendo certeza do seu destino.
Leonardo da Vinci
SUMRIO
LISTA DE ILUSTRAES....................................................................................................09
LISTA DE TABELAS.............................................................................................................10
LISTA DE ABREVIATURAS................................................................................................11
1
INTRODUO ............................................................................................................. 14
1.1
O Problema ............................................................................................................................... 16
1.2
Objetivos .................................................................................................................................... 17
1.3
1.4
2.1
2.2
2.3
3.1
3.2
3.3
3.4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5.1
5.2
CONCLUSO ................................................................................................................ 60
6.1
Contribuies ............................................................................................................................ 61
6.2
APNDICES................................................................................................................... 63
LISTA DE ILUSTRAES
FIG. 2.1 Entidades Independentes do JC3IEDM (MIP, 2012) ..................................................... 22
FIG. 2.2 Servios automatizados oferecendo vrias capacidades (ERL, 2009) ......................... 27
FIG. 3.1 Viso dos Casos de Uso no Controle de uma Operao Conjunta ............................. 30
FIG. 3.2 Entidades Selecionadas do JC3IEDM (LARA; CHOREN, 2014) ................................. 36
FIG. 3.3 Especificao de ACTION-LOCATION (MIP, 2012) .................................................... 37
FIG. 3.4 Especializaes na Estrutura da Entidade LOCATION (MIP, 2012) .......................... 38
FIG. 3.5 rvore da Entidade OBJECT-TYPE (MIP, 2012) ........................................................... 39
FIG. 3.6 rvore da Entidade Independente OBJECT-ITEM (MIP, 2012) .................................. 40
FIG. 3.7 Especializaes da Entidade REPORTING-DATA (MIP, 2012) .................................. 41
FIG. 3.8 Relacionamento entre Entidades Independentes Selecionadas .................................. 42
FIG. 4.1 Entidade ACOMPANHAMENTO (SIPLOM) ............................................................... 46
FIG. 4.2 Descrio do Protocolo...................................................................................................... 52
LISTA DE TABELAS
TAB. 2.1 Requisitos para integrao de sistemas. ........................................................................ 32
TAB. 5.1 Tabela Comparativa entre os Trabalhos Relacionados ............................................... 59
10
LISTA DE ABREVIATURAS
ADEM
C2
Comando e Controle
C2S
COI
Communities of Interest
DEM
FA
Foras Armadas
HTTP
ICCRTS
IDE
IP
Internet Protocol
JC3IEDM
MD
Ministrio da Defesa
MEM
MIP
OMG
OODA
OTAN
UML
RNF
Requisito No Funcional
SC2
SIPLOM
SOA
SOAP
XML
11
RESUMO
O cenrio de uma Operao Conjunta pode ser descrito como um ambiente de
guerra heterogneo, onde existe a necessidade de atualizao de uma conscincia
situacional compartilhada, baseada em uma constante troca de informaes entre as
unidades participantes. No ambiente das operaes militares no usual existir uma
grande capacidade de processamento e uma infraestrutura de redes com banda larga,
o que torna necessria a elaborao de um protocolo para troca de mensagens, que
aborde especialmente estas restries, baseado nas tecnologias de troca de
mensagens.
No mbito de uma Operao Conjunta, torna-se necessrio uma correta
coordenao, em tempo hbil, dos sistemas de conscincia situacional existentes nos
Comandos de Fora, a m de permitir uma maior interoperabilidade. Essa integrao
deve ser abordada em dois nveis, por meio de um modelo de dados consolidado,
onde utilizado o Joint Consultation, Command and Control Information Exchange Data
Model (JC3IEDM), e de um protocolo para troca de mensagens, que trata o
encaminhamento de mensagens XML, utilizando SOAP, atendendo a requisitos de
integrao. Nesse contexto, tambm utilizada uma arquitetura orientada a servios
(SOA), que considerada como adequada para a integrao de Sistemas de
Comando e Controle (SC2s).
Este trabalho apresenta um modelo de protocolo para troca de mensagens entre
os SC2 utilizados nas Operaes Conjuntas, a m de permitir a interoperabilidade
entre os sistemas de informao de comando e controle, utilizando o JC3IEDM, o
modelo de dados para a interoperabilidade de SC2s desenvolvido pelo Multilateral
Interoperability Programme (MIP).
12
ABSTRACT
A Joint Operation scenario can be described as a heterogeneous war
environment, in which there is a need to update a shared situational awareness,
based on a constant exchange of information between computer systems (the
participating units). For example, in an operation in the Brazilian Amazon, a military
aircraft will not be able to accurately perform an Aerial Fire Support mission without
knowing the position of all friendly units in the area. These units may be from the
Army or Navy or any other force. The force may have a system that indicates the
position of its units.
Under a Joint Operation, it becomes necessary proper coordination in a timely
manner, of existing situational awareness in Force Command systems, to allow
greater interoperability. This integration must be addressed on two levels, through a
consolidated data model, which is used Joint Consultation, Command and Control
Information Exchange Data Model (JC3IEDM), and a protocol for message exchange,
which handles the routing of XML messages using SOAP, considering integration
requirements. In this context, a service-oriented architecture (SOA), which is
considered suitable for the integration of Command and Control Systems (SC2s) is
also used.
This study presents a model protocol for exchanging messages between SC2s
used in Joint Operations, to allow interoperability between command and control
information systems, using JC3IEDM, the data model for interoperability of SC2s
developed by Multilateral Interoperability Programme (MIP).
13
INTRODUO
14
por exemplo, no pode realizar Apoio de Fogo Areo sem saber a localizao de
suas Foras Amigas.
Nesse contexto, o processo de Comando e Controle (C2) fundamental para
o xito das operaes militares. Sendo uma atividade especializada, o processo
de C2 de concepo sistmica, e possui mtodos, procedimentos, caractersticas
e vocabulrio peculiares. Sistemas de Comando e Controle (SC2s) visam apoiar a
esfera decisria com informaes teis tomada de deciso. Este s sistemas
apresentam informaes sobre a rea de operao em um nvel de abstrao
adequado esfera decisria.
A rapidez da atualizao das informaes influencia na execuo do
processo de C2, reduzindo o tempo necessrio tomada de deciso. Esta
reduo imprescindvel no cenrio atual, que possui reas de operao
complexas. Os SC2s so ferramentas necessrias aplicao de paradigmas
modernos de conduo da guerra (TARANTI, 2012), tais como Network Centric
Warfare (NCW) (ALBERTS et al., 1999) ou o Power to Edge (ALBERTS, HAYES,
2003), sobre deixar o poder de deciso nos escales inferiores, ficando os
escales superiores apenas com o poder de veto das aes das esferas inferiores.
Estabelecer a interoperabilidade de sistemas uma tarefa desafiadora
(TARANTI, 2012). Especificamente nos SC2s utilizados no mbito de uma
operao conjunta, torna-se crtica a integrao em tempo hbil nos Comandos
de Fora, a fim de permitir uma maior interoperabilidade entre as un idades
operativas envolvidas, e no nvel estratgico e operacional, que ocorra uma
adequada troca de informaes entre os seus Comandantes. O desafio da
integrao de sistemas ainda maior nos SC2s, devido necessidade de se
atender a diversos requisitos no funcionais (RNFs), e ainda, de se prever uma
soluo escalvel, que permita inserir e alterar conceitos com um mnimo de
impacto e indisponibilidade (TARANTI, 2012).
Alm de questes tcnicas, os processos e conhecimentos diferentes entre os
atores envolvidos dificultam o estabelecimento de uma interoperabilidade no
domnio de SC2. Outrossim, esta situao ainda agravada pelo fato de que as
15
O PROBLEMA
A integrao de SC2s, que so j existentes nas FA e em operao, uma
necessidade na rea de desenvolvimento de sistemas de conscincia situacional.
Cada SC2 de uma FA possui respectivamente um modelo de dados particular,
que atende as caractersticas tpicas de cada ambiente de guerra. Esta falta de
padronizao entre os diferentes modelos dificulta a troca de dados entre os
SC2s, pois no existe uma semntica universal entre os dados a serem
compartilhados, e no representa um modelo para intercmbio de informaes.
O estado-da-arte na integrao de SC2s tem sido alcanado atravs do
desenvolvimento de servios que consomem modelos de dados padronizados,
como o The Alternate Development and Exchange Method - ADEM (MIP, 2014) , que
fornece os meios para a troca da situao atual de uma operao utilizando a
semntica do Joint Consultation, Command and Control Information Exchange Data
Model JC3IEDM (MIP, 2012). O ADEM oferece um paradigma para o
intercmbio de informaes, e permite uma troca de informaes simples e
extensvel, permanecendo fiel ao modelo de dados JC3IEDM, onde se abre a
possibilidade de troca com as comunidades de interesse (COIs) que podem no
estar dispostos ou capazes de implementar a especificao DEM (MIP, 2012).
Entretanto o ADEM est focado na troca de informaes da situao atual de
uma operao, no sendo possvel a troca de informaes de dados histricos. A
troca de informaes sobre a situao atual de uma operao um recurso
bsico da COI do MIP, onde se pode realizar contribuies significativas para as
COIs parceiras. Diminuir a distncia entre o MIP e as COIs parceiras o que se
espera para melhorar a qualidade e o compartilhamento de informaes durante
as misses realizadas em operaes conjuntas.
16
OBJETIVOS
O objetivo deste trabalho propor um modelo de protocolo para troca de
mensagens entre os sistemas de comando e controle (SC2) utilizados nas
Operaes
Conjuntas,
baseando-se
no
modelo
de
dados
para
17
CONTRIBUIES ESPERADAS
As contribuies esperadas pelo trabalho so:
1) Apresentar um protocolo para integrao de SC2, atravs de uma SOA, e
que utiliza o modelo de dados JC3IEDM no contedo de suas mensagens;
2) Propor uma infraestrutura SOA para apoiar a aplicao do protocolo; e
3) Apresentar um estudo de caso do barramento de comunicao.
Cabe salientar que os processos de transformao e cadastro das informaes
das operaes conjuntas em um banco de dados baseado neste modelo no faz
parte do escopo deste trabalho.
ORGANIZAO DO TRABALHO
A dissertao est estruturada da seguinte forma: no captulo 2 so
apresentados os conceitos bsicos, com o referencial terico necessrio para o
entendimento deste trabalho, o captulo 3 apresenta o Protocolo proposto,
discutindo tambm as hipteses assumidas e suas restries; o captulo 4
apresenta o cenrio de estudo e de emprego do protocolo, com o estudo de caso
de sua aplicao; no captulo 5 so discutidas as vantagens e desvantagens da
soluo apresentada e os trabalhos relacionados; e o captulo 6 apresenta a
concluso do trabalho, suas contribuies e sugestes de trabalhos futuros.
18
CONCEITOS BSICOS
INTEROPERABILIDADE DE SISTEMAS
Quanto mais organizaes perseguem os benefcios do e-business, mais elas
esto olhando para um processo chamado de integrao empresarial, ou
Enterprise Integration (EI), como um facilitador tcnico fundamental na
transformao de seus processos de negcios. Um cenrio tpico de EI envolve a
integrao de aplicaes empresariais. Por este processo, a organizao vincula se previamente a sistemas separados e isolados para dar-lhes uma maior
alavancagem.
Empresas so tipicamente compostas por centenas, se no milhares, de
aplicaes que so construdas, adquiridas de terceiros, parte de um sistema
legado, ou uma combinao destes, operando em vrios nveis de plataformas de
sistemas operacionais diferentes. No raro encontrar uma empresa que possui
trinta Web sites diferentes, trs instncias de Sistemas de Gesto Empresarial
(SAP) e solues departamentais incontveis. Para apoiar os processos de
negcio comuns, e o compartilhamento de dados entre aplicaes, essas
aplicaes precisam ser integradas. A integrao de aplicaes precisa fornecer
de forma eficiente, confivel e segura, a troca de dados entre vrias aplicaes
empresariais (HOHPE; WOOLF, 2004).
A EI no uma tarefa fcil. Por definio, a EI tem de lidar com mltiplas
aplicaes sendo executadas em vrias plataformas, e em locais diferentes.
Fornecedores de software oferecem Enterprise Application Integration (EAI) suites
que so multi-plataforma, utilizam integrao entre linguagens, bem como com
a capacidade de interagir com muitos pacotes de aplicaes empresariais
populares. No entanto, esta estrutura tcnica resolve apenas uma pequena
poro das complexidades de integrao (HOHPE; WOOLF, 2004).
Os verdadeiros desafios da integrao se estendem muito alm das questes
tcnicas e de negcios. Qualquer pessoa que tenha passado por uma
implementao de EAI pode atestar que as suas solues so um componente
19
20
O MODELO JC3IEDM
A
interoperabilidade
de
dados
requer
um
vocabulrio
semntico
organizaes,
pessoas,
equipamentos,
instalaes,
caractersticas
21
22
Papel no Modelo: fornece meios para atribuir filiaes para tipos de objetos
(OBJECT-TYPE) ou itens de objetos (OBJECT-ITEM).
23
GROUP-CHARACTERISTIC:
uma
referncia
um
conjunto
de
Na parte selecionada do
24
25
26
27
28
O PROTOCOLO PROPOSTO
29
A FIG. 3.1 apresenta as interaes entre estes atores, atravs dos casos de uso
levantados pela viso de negcios no controle de uma operao conjunta.
FIG. 3.1 - Viso dos Casos de Uso no Controle de uma Operao Conjunta
Com os Casos de Uso destacados possvel definir os Servios que podem
ser disponibilizados para qualquer SC2 que vise a interoperabilidade de C2.
Consultar Acompanhamento: o SC2 de Nvel Operacional utiliza os
Acompanhamentos
dos
meios
adjudicados
Operaes.
Esses
Situao
do
Acompanhamento:
Acompanhamento
30
acordo
com
Wing
Lam
Venky
Shankararaman
(LAM;
31
de
Descrio
Exemplos
Requisito
Volume
Tempo de Resposta
Tamanho
Timeliness
Padro de Formato de
Dados
Handshaking protocol
Infraestrutura de
Restries da infraestrutura
Comunicao
de comunicaes nas
aplicaes a serem
integradas.
Resilincia e Recuperao
Resilincia da estrutura de
Frequncia
Segurana
Frequncia de interaes
hora.
entre aplicaes.
32
33
entre
aplicaes
dever
tratar,
est
relacionado
34
se
trata
de
uma
operao
conjunta,
as
informaes
so
35
36
de
Operao,
Plano
de Operao,
Ordem de
37
Na parte selecionada do
38
39
40
41
protocolo
proposto
conta
com
um
Servio
Web
chamado
de
42
AS MENSAGENS DO PROTOCOLO
As mensagens do protocolo foram divididas em dois grupos: Mensagens de
Pedido de Posio e mensagens de Resposta para um Pedido de Posio. As
mensagens de Pedido de Posio por sua vez foram divididas em dos tipos:
Mensagem de Pedido de Posio de uma Unidade, e Mensagem de Pedido de
Posio de Unidades em uma rea. Segue abaixo a descrio das mensagens:
a) Mensagem de Pedido de Posio de uma Unidade: atravs dessa
mensagem possvel conhecer e manter atualizada a posio de uma
determinada unidade, ou objeto de interesse (Acompanhamento), atravs
do pedido de sua posio geogrfica. Atravs destas mensagens
consegue-se acompanhar os diversos meios de uma operao conjunta,
tanto um navio navegando na rea de operao, quanto uma tropa
progredindo no terreno. Sua especificao mais formalizada, no formato
EBNF, encontra-se no Apndice I. Na mensagem de solicitao, alm de
seu cabealho, onde dada a informao sobre para qual servio aquela
solicitao (ex: PositionReportWS), no corpo da mensagem fornecida a
informao sobre qual o objeto de interesse deseja-se obter a localizao:
<id> - Nmero Identificador do Objeto;
43
informao
de
unitsInLatLongResponse),
qual
servio
aquela
resposta
(ex:
44
PROVA DE CONCEITO
45
46
47
A) MENSAGEM DE REQUISIO
Como exemplo de parmetros enviados, apresenta-se 2 pontos geogrficos:
- Ponto1: Lat1=50 e Long1=40 (Ponto Sudoeste de uma rea retangular); e
- Ponto2: Lat2=100 e Long2=100 (Ponto Nordeste de uma rea retangular).
O mtodo unitsInLatLongRequest do Servio Web PositionReportWS receber
esses dois pontos como parmetros, e far a comparao com as latitudes e
longitudes dos objetos que esto no banco de dados baseado no JC3IEDM.
Atravs das tags em negrito da mensagem XML, observa-se no exemplo da
mensagem de Localizao de Acompanhamentos em uma rea, o Servio Web e
o seu mtodo que foram solicitados, e os parmetros enviados para esse mtodo.
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<To
xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/jc3svc/PositionReportWS</To>
<Action xmlns="http://www.w3.org/2005/08/addressing"
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
S:mustUnderstand="1">http://ws.svc.jc3.example/SvcWsUnitPosition/unitsInLat
LongRequest</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:73cc64de8daf-45d6-8b8c-40564fd6dce7</MessageID>
...
<wsa:ReplyTo xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://docs.oasis-open.org/wsrx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</wsa:Address>
</wsa:ReplyTo>
<wsa:FaultTo xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://docs.oasis-open.org/wsrx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</wsa:Address>
</wsa:FaultTo>
</S:Header>
<S:Body>
<ns2:unitsInLatLong xmlns:ns2="http://ws.svc.jc3.example/">
48
<lat1>50</lat1>
<lat2>100</lat2>
<long1>40</long1>
<long2>100</long2>
</ns2:unitsInLatLong>
</S:Body>
</S:Envelope>
B) MENSAGEM DE RESPOSTA
Atravs das tags em negrito da mensagem XML, observa-se no exemplo da
mensagem de Resposta da Localizao de Acompanhamentos em uma rea, os
dados fornecidos atravs da resposta do Servio.
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<Action xmlns="http://www.w3.org/2005/08/addressing"
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
S:mustUnderstand="1">http://ws.svc.jc3.example/SvcWsUnitPosition/unitsInLat
LongResponse</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:dbdbe21fb84d-4ae4-848d-e4ffade834ba</MessageID>
<RelatesTo xmlns="http://www.w3.org/2005/08/addressing">uuid:73cc64de8daf-45d6-8b8c-40564fd6dce7</RelatesTo>
...
<To xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasisopen.org/ws-rx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</To>
<MessagePending xmlns="http://docs.oasis-open.org/ws-rx/wsmc/200702"
xmlns:ns2="http://www.w3.org/2005/08/addressing" pending="false"/>
</S:Header>
<S:Body>
<ns2:unitsInLatLongResponse xmlns:ns2="http://ws.svc.jc3.example/">
<return>
<abrev>UIE5 ATB</abrev>
<id>1010</id>
<latitude>55.000000</latitude>
49
<longitude>70.000000</longitude>
<name>Unidentified AntiTank Battery 5</name>
<reportTime>12:00:00</reportTime>
<reportType>reported</reportType>
</return>
<return>
<abrev>UIE9 FA</abrev>
<id>1017</id>
<latitude>50.200000</latitude>
<longitude>89.000000</longitude>
<name>Unidentified FA Battalion 9</name>
<reportTime>12:00:00</reportTime>
<reportType>reported</reportType>
</return>
</ns2:unitsInLatLongResponse>
</S:Body>
</S:Envelope>
Objeto 1010
Objeto 1017
50
51
PostionReportWS
52
53
A) ARTEFATO DAO
A construo do Data Acess Object (DAO) foi realizada atravs do NetBeans
7.4, onde foi criado o artefato jc3-entities. Este artefato realiza o mapeamento
das entidades do banco JC3IEDM em classes Java, para que as informaes do
banco possam ser processadas.
A classe VWUnitPosition.java foi criada para facilitar o uso do JC3IEDM,
criando uma viso mais intuitiva do JC3IEDM, ou seja, uma view mais simples.
B) ARTEFATO DO SERVIO
A construo do artefato do servio (artefato SVC) foi realizada atravs do
NetBeans 7.4, onde foi criado o artefato jc3-svc. A classe PositionReport produz
o servio atravs do emprego de anotaes em Java nas operaes dos mtodos
unitPosition e unitsInlatlongs. Aps ser implantado no Servidor, o artefato foi
exposto como um Servio Web para consumo.
Dentro do artefato jc3-svc, em sua pasta denominada Web Services,
dentro do servio PositionReportWS foi implementada a Entrega de
Mensagem Confivel, como um atributo do Servio Web. Neste momento o
Servio est pronto, faltando apenas o cliente para consumi-lo.
A descrio do Servio Web (WSDL) est disponvel no endereo:
http://localhost:8080/jc3-svc/PostionReportWS?WSDL.
CONSTRUO DO CLIENTE
A construo do cliente do servio foi realizada atravs do NetBeans 7.4,
onde foi criado o artefato jc3-ws-cli. Foi realizada a gerao de um artefato
Java para clientes do servio a partir do WSDL do servio.
CONSTRUO DO CONSOLE
O console representa o solicitante do servio, equivalente ao SC2
Legado. A construo do console tambm foi realizada atravs do NetBeans
54
55
TRABALHOS RELACIONADOS
56
57
58
Rede Especfico
Pontos Histricos
Sim
No
No
LARA e CHOREN
Sim
No
Sim
No
Sim
No se aplica
(2014)
LUND et al. (2007)
59
CONCLUSO
protocolo,
utilizando-se
os
paradigmas
de
Request/Response
60
CONTRIBUIES
Entre as principais contribuies deste trabalho, destacam-se:
TRABALHOS FUTUROS
Os trabalhos futuros sero baseados no projeto de uma arquitetura completa
para o protocolo do barramento de comunicao, que permita a manipulao de
mensagens entre os SC2s em tempo de execuo desses sistemas, e a elaborao
de uma camada de criptografia nas mensagens, o que tambm desejvel. Esta
camada deve ser forte o suficiente para garantir a realizao de exerccios de
operaes conjuntas sem qualquer interferncia, interna ou externa s FA.
Ressalta-se que esta camada de segurana deve ser definida e desenvolvida de
modo a no comprometer o desempenho do protocolo de troca de mensagens.
Durante o desenvolvimento deste trabalho foram levantadas vrias questes
a serem tratadas, e, devido s limitaes de tempo, elas no foram estudadas e
61
62
REFERNCIAS BIBLIOGRFICAS
63
64
APNDICES
65
66
67
open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:ns6="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext1.1.xsd" xmlns:ns7="http://schemas.microsoft.com/ws/2006/05/rm">
<ns2:Identifier>uuid:1f17ff52-7489-4e75-b5ced61347e8c655</ns2:Identifier>
</ns2:AckRequested>
<ns2:SequenceAcknowledgement
xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns2="http://docs.oasisopen.org/ws-rx/wsrm/200702" xmlns:ns3="http://docs.oasis-open.org/wsrx/wsmc/200702" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:ns6="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext1.1.xsd" xmlns:ns7="http://schemas.microsoft.com/ws/2006/05/rm">
<ns2:Identifier>uuid:b0142f46-8913-4fab-a511ba89585be688</ns2:Identifier>
<ns2:None/>
</ns2:SequenceAcknowledgement>
<wsa:ReplyTo xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://docs.oasis-open.org/wsrx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</wsa:Address>
</wsa:ReplyTo>
<wsa:FaultTo xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://docs.oasis-open.org/wsrx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</wsa:Address>
</wsa:FaultTo>
</S:Header><soapenv:Body><typ:unitPosition>1010</typ:unitPosition></soapenv
:Body>
</soapenv:Envelope>
68
latlong_num ,
, latlong_num
latlong_num ,
, latlong_num
lat1_info_etag ;
, long1_info_etag ;
lat2_info_etag ;
, long2_info_etag ;
69
<ns2:Sequence xmlns="http://www.w3.org/2005/08/addressing"
xmlns:ns2="http://docs.oasis-open.org/ws-rx/wsrm/200702"
xmlns:ns3="http://docs.oasis-open.org/ws-rx/wsmc/200702"
xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd" xmlns:ns5="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:ns6="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext1.1.xsd" xmlns:ns7="http://schemas.microsoft.com/ws/2006/05/rm"
xmlns:ns8="http://schemas.xmlsoap.org/soap/envelope/"
ns8:mustUnderstand="true">
<ns2:Identifier>uuid:1f17ff52-7489-4e75-b5ced61347e8c655</ns2:Identifier>
<ns2:MessageNumber>1</ns2:MessageNumber>
</ns2:Sequence>
<ns2:AckRequested xmlns="http://www.w3.org/2005/08/addressing"
xmlns:ns2="http://docs.oasis-open.org/ws-rx/wsrm/200702"
xmlns:ns3="http://docs.oasis-open.org/ws-rx/wsmc/200702"
xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd" xmlns:ns5="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:ns6="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext1.1.xsd" xmlns:ns7="http://schemas.microsoft.com/ws/2006/05/rm">
<ns2:Identifier>uuid:1f17ff52-7489-4e75-b5ced61347e8c655</ns2:Identifier>
</ns2:AckRequested>
<ns2:SequenceAcknowledgement
xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns2="http://docs.oasisopen.org/ws-rx/wsrm/200702" xmlns:ns3="http://docs.oasis-open.org/wsrx/wsmc/200702" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:ns6="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext1.1.xsd" xmlns:ns7="http://schemas.microsoft.com/ws/2006/05/rm">
<ns2:Identifier>uuid:b0142f46-8913-4fab-a511ba89585be688</ns2:Identifier>
<ns2:None/>
</ns2:SequenceAcknowledgement>
<wsa:ReplyTo xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://docs.oasis-open.org/wsrx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</wsa:Address>
</wsa:ReplyTo>
<wsa:FaultTo xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://docs.oasis-open.org/wsrx/wsmc/200702/anonymous?id=5598fb43-f857-44cb-949230515e4e0942</wsa:Address>
</wsa:FaultTo>
</S:Header>
<S:Body>
<ns2:unitsInLatLong xmlns:ns2="http://ws.svc.jc3.example/">
<lat1>50</lat1>
<lat2>100</lat2>
<long1>40</long1>
<long2>100</long2>
</ns2:unitsInLatLong>
</S:Body>
</S:Envelope>
70
71
72
<id>1010</id>
<latitude>55.000000</latitude>
<longitude>70.000000</longitude>
<name>Unidentified AntiTank Battery 5</name>
<reportTime>12:00:00</reportTime>
<reportType>reported</reportType>
</return>
<return>
<abrev>UIE9 FA</abrev>
<id>1017</id>
<latitude>50.200000</latitude>
<longitude>89.000000</longitude>
<name>Unidentified FA Battalion 9</name>
<reportTime>12:00:00</reportTime>
<reportType>reported</reportType>
</return>
</ns2:unitsInLatLongResponse>
</S:Body>
</S:Envelope>
73
define
interface
produtor/consumidor,
ou
seja,
contratode
Requisito No Funcional de Resilincia: Garantia de Entrega da Mensagem de pelo menos uma vez.
Requisito No Funcional de Tempo de Resposta: Tempo Mximo de Inatividade = 5000ms (5 segundos).
74
</xsd:schema>
</types>
<message name="unitPosition">
<part name="parameters" element="tns:unitPosition"/>
</message>
<message name="unitPositionResponse">
<part name="parameters" element="tns:unitPositionResponse"/>
</message>
<message name="unitsInLatLong">
<part name="parameters" element="tns:unitsInLatLong"/>
</message>
<message name="unitsInLatLongResponse">
<part name="parameters" element="tns:unitsInLatLongResponse"/>
</message>
<portType name="SvcWsUnitPosition">
<operation name="unitPosition">
<input
wsam:Action="http://ws.svc.jc3.example/SvcWsUnitPosition/unitPositionReques
t" message="tns:unitPosition"/>
<output
wsam:Action="http://ws.svc.jc3.example/SvcWsUnitPosition/unitPositionRespon
se" message="tns:unitPositionResponse"/>
</operation>
<operation name="unitsInLatLong">
<input
wsam:Action="http://ws.svc.jc3.example/SvcWsUnitPosition/unitsInLatLongRequ
est" message="tns:unitsInLatLong"/>
<output
wsam:Action="http://ws.svc.jc3.example/SvcWsUnitPosition/unitsInLatLongResp
onse" message="tns:unitsInLatLongResponse"/>
</operation>
</portType>
<binding name="SvcWsUnitPositionPortBinding" type="tns:SvcWsUnitPosition">
<wsp:PolicyReference
URI="#SvcWsUnitPositionPortBinding_MCSupported_Policy"/>
<wsp:PolicyReference URI="#SvcWsUnitPositionPortBindingPolicy"/>
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="unitPosition">
<wsp:PolicyReference
URI="#SvcWsUnitPositionPortBinding_unitPosition_Policy"/>
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="unitsInLatLong">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="PositionReportWS">
75
<port name="SvcWsUnitPositionPort"
binding="tns:SvcWsUnitPositionPortBinding">
<soap:address location="http://localhost:8080/jc3-svc/PositionReportWS"/>
</port>
</service>
</definitions>
76
*)
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
*)
*)
*)
*)
*)
*)
*)
*)
*)
*)
*)
*)
rmp | srv ;
soap ;
soap_body ;
;
(* mensagens nvel 2 *)
wsrm = { dialog } ;
dialog = cli_req ,
rms_create_seq ,
rmp_create_seq_resp ,
rms_cli_req_with_seq ,
srv_cli_req ,
srv_srv_resp ,
rmp_create_seq_with_seq_ack ,
rms_create_seq_resp ,
rmp_srv_resp_with_seq ,
cli_srv_resp ,
rms_seq_ack ;
cli_req = cli , to , ( qry_by_id | qry_by_lat_long ) ;
(* nvel 1 *)
cli_srv_resp = cli , from , srv_resp ;
(* nvel 1 *)
rms_create_seq = rms , to , create_seq ;
rms_cli_req_with_seq = rms , to , cli_req_with_seq ;
rms_create_seq_resp = rms , to , create_seq_resp ;
rms_seq_ack = rms , to , seq_ack ;
rmp_create_seq_resp = rmp , from , create_seq_resp_sm ;
rmp_create_seq_with_seq_ack = rmp , from , create_seq_with_seq_ack ;
rmp_srv_resp_with_seq = rmp , from , resp_with_seq ;
rmp_create_seq_resp = rmp , from , create_seq_resp ;
seq_ack = wsrm_seq_ack_stag , wsrm_seq_ack , wsrm_seq_ack_etag ;
create_seq = create_seq_header , create_seq_body ;
create_seq_header = soap_header_void ;
create_seq_body = soap_body_stag , wsrm_create_seq , soap_body_etag ;
create_seq_resp_sm = xml_prefix , from , soap_stag , create_seq_resp ,
soap_etag ;
create_seq_resp = create_seq_resp_header , create_seq_resp_body ;
create_seq_resp_header = soap_header_void ;
create_seq_resp_body = soap_body_stag , wsrm_seq_resp , soap_body_etag ;
77
wsrm_seq_resp = wsrm_create_seq_resp_stag ,
wsrm_identifier ,
wsrm_create_seq_resp_etag ;
wsrm_create_seq = wsrm_create_seq_stag , wsrm_ack_to , wsrm_create_seq_etag
;
wsrm_ack_to = wsrm_ack_to_stag , wsa_address , wsrm_ack_to_etag ;
wsrm_seq_ack = wsrm_identifier , wsrm_ack_range ;
wsrm_identifier = wsrm_identifier_stag , urn , wsrm_identifier_etag ;
wsa_address = wsa_address_stag , uri , wsa_address_etag ;
wsa_to = wsa_to_stag , url , wsa_to_etag ;
wsa_msg_id = wsa_msg_id_stag , urn , wsa_msg_id_etag ;
wsa_action = wsa_action_stag , uri , wsa_action_etag ;
(* prefixo xml *)
xml_prefix_min = ts , qm , xml , xml_version , qm , tc ;
xml_prefix = ts, qm, xml , xml_version , xml_encoding , xml_standalone , qm
, tc ;
xml_version = sp , 'version' , eq , quote , '1.0' , quote ;
xml_encoding = 'encoding' , eq , quote , 'UTF-8' , quote ;
xml_standalone = 'standalone' , eq , quote , 'yes' , quote ;
(* tags *)
soap_stag = ts , soapenv , n_envelope , xns_example , xns_soap , tc ;
soap_etag = te, soapenv , ns_sep, n_envelope , tc ;
soap_header_void = ts , soapenv , ns_sep , n_header , tf ;
soap_header_stag = ts , soapenv , ns_sep , n_header , tc ;
soap_header_etag = te , soapenv, ns_sep , n_header , tc ;
soap_body_stag = ts , soapenv , ns_sep , n_body , tc ;
soap_body_etag = te , soapenv , ns_sep , n_body , tc ;
wsa_to_stag = ts , wsa , ns_sep , n_to , tc ;
wsa_to_etag = te , wsa , ns_sep , n_to , tc;
wsa_address_stag = ts , wsa , ns_sep , n_address , tc ;
wsa_address_etag = te , wsa , n_address , tc ;
wsrm_seq_ack_stag = ts , wsrm , ns_sep , n_sequence_acknowledgement ,
xns_wsrm , soapenv , wsrm_must_understand , tc ;
wsrm_must_understand = sp , 'mustUnderstand' , eq , quote , '1' , quote ;
wsrm_seq_ack_etag = te , wsrm , ns_sep , n_sequence_acknowledgement' , tc;
wsrm_ack_range = ts , wsrm , ns_sep , n_acknowledgement_range ,
wsrm_ack_lower_range , wsrm_ack_upper_range , tf ;
wsrm_ack_lower_range = sp , n_lower ,
wsrm_ack_upper_range = sp , n_upper ,
wsrm_ack_to_stag = ts , wsrm , ns_sep
wsrm_ack_to_etag = te, wsrm, ns_sep ,
78
(* namespaces *)
xns_soap = sp , xmlns , soapenv, eq , quote , ns_soap , quote ;
xns_wsrm = sp , xmlns , wsrm , eq , quote, ns_wsrm , quote ;
xns_example = sp , xmlns , typ , eq , quote , ns_example , quote ;
s_soap = 'http://schemas.xmlsoap.org/soap/envelope/' ; (* fixo *)
ns_wsrm = 'http://docs.oasis-open.org/ws-rx/wsrm/200702' ; (* fixo *)
ns_example = 'http://ws.svc.jc3.example/' ; (* fixo *)
(* nomes de elementos *)
n_create_sequence_response = n_create_sequence , n_response ;
n_create_sequence = n_create , n_sequence ;
n_sequence_acknowledgement = n_sequence , n_acknowledgement ;
n_acknowledgement_range = n_acknowledgement , n_range ;
n_acknowledgement = 'Acknowledgement' ;
n_create = 'Create' ;
n_range = 'Range' ;
n_response = 'Response' ;
n_sequence = 'Sequence' ;
n_envelope = 'Envelope' ;
n_header = 'Header' ;
n_body = 'Body' ;
n_address = 'Address' ;
n_acks_to = 'Acks' , n_to ;
n_to = 'To' ;
n_lower = 'Lower' ;
n_upper = 'Upper' ;
n_identifier = 'Identifier' ;
79
(* pontuao/delimitadores *)
te = ts , tn ;
tf = tn , tc ;
ts = '<' ;
tc = '>' ;
tn = '/' ;
qm = '?' ;
ns_sep = colon ;
dot = '.' .
colon = ':' ;
quote = '"' ;
eq = '=' ;
latlong_num , lat1_info_etag ;
, latlong_num , long1_info_etag ;
latlong_num , lat2_info_etag ;
, latlong_num , long2_info_etag ;
ts , ns2 , ns_sep , n_units_in_latlong ,
te ,
, tc
, tc
, tc
, tc
80
long1_info_stag = ts , n_long1 , tc ;
long1_info_etag = te , n_long1 , tc;
long2_info_stag = ts , n_long2 , tc ;
long2_info_etag = te, n_long2 , tc ;
n_units_in_latlong = 'unitsInLatLong' ;
n_lat1 = n_lat , '1' ;
n_lat2 = n_lat , '2' ;
n_long1 = n_long , '1' ;
n_long2 = n_long , '2' ;
lat = 'lat' ;
long = 'long' ;
81
unit_id_etag = te , n_id , tc ;
unit_lat_stag = ts , n_latitude , tc ;
unit_lat_etag = te , n_latitude , tc ;
unit_long_stag = ts , n_longitude , tc ;
unit_long_etag = te , n_longitude , tc ;
unit_name_stag = ts , n_name , tc ;
unit_name_etag = te , n_name , tc ;
unit_report_time_stag = ts , n_report_time
unit_report_time_etag = te , n_report_time
unit_report_time_stag = ts , n_report_type
unit_report_time_etag = te , n_report_type
n_vw_unit_position = 'vwUnitPosition' ;
n_unit_position = 'unitPosition' ;
n_abrev = 'abrev' ;
n_id = 'id' ;
n_name = 'name' ;
n_latitude = 'latitude' ;
n_longitude = 'longitude' ;
n_report_time = report , 'Time' ;
n_report_type = report , 'Type' ;
n_report = 'report' ;
report_type = string ;
,
,
,
,
tc
tc
tc
tc
;
;
;
;
(* auxiliar *)
uri = urn | url ;
number = digit { digit } ;
sp = sp , sz ;
sz = { [ ' ' ] } ;
string = { [ lowalpha | hialpha | digit | ' ' ] } ;
82
schemepart
ip-schemepart
login
hostport
host
hostname
domainlabel
alphadigit ;
toplabel
alphadigit
hostnumber
port
user
password
urlpath
=
=
=
=
=
=
=
{ xchar } | ip-schemepart ;
"//" , login , [ "/" , urlpath ] ;
[ user , [ ":" , password ] , "@" ] , hostport ;
host , [ ":" , port ] ;
hostname | hostnumber ;
{ [ domainlabel , "." ] } , toplabel ;
alphadigit | alphadigit { [ alphadigit | "-" ] } ,
=
=
=
=
=
=
=
(* ftp (RFC959) *)
ftpurl
fpath
fsegment
ftptype
=
=
=
=
(* file *)
fileurl
(* http *)
httpurl
hpath
hsegment
search
=
=
=
=
(* MAILTO (RFC822) *)
mailtourl
= "mailto:" , encoded822addr ;
encoded822addr = { xchar } ;
(* misc *)
lowalpha
83
"y" | "z" ;
hialpha
alpha
digit
;
safe
extra
= lowalpha | hialpha ;
= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
national
punctuation
reserved
hex
= digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" |
"c" | "d" | "e" | "f" ;
escape
unreserved
uchar
xchar
digits
=
=
=
=
=
(* fim *)
84