1. Introduction
The purpose of this aspect of
the project was to analyze documents and other data sources that
identify, describe or specify the nature of ITS messages, as well
as various technical approaches, protocols and technologies that
have been assessed or applied as part of any previous or currently
on-going projects for ITS messages (at the logical versus physical
implementation level). Additionally, consideration was given to
both existing and emerging standards that might be applicable
to an ITS message set template(s), as well as commercial-off-the-shelf
(COTS) and emerging technical approaches and technologies. Together
with the needs and requirements identified by the ITS Data Dictionary/Message
Set Template Working Group, this knowledge of technical approaches,
protocols and technologies for an ITS message set template can
be thought of as forming a set of bounding criteria or constraints.
It is within these logical boundaries that various ITS subsystems
must be able to specify their message sets (i.e., message types).
These boundaries provide a framework which must therefore be reflected
in the standard for an ITS message set template, which is to be
specified under the next task of this project.
The following terminology used
within the IEEE ITS message set template project applies to this
document:
Message Set Template specifies the parameters ('slots') and syntax for defining Message Sets
Messages Sets are abstract types of messages (i.e., message types)
Messages are actual instances
of messages
2. Objectives of the
ITS Message Set Template(s)
To understand the importance
of the ITS message set template standard and the manner in which
it is to be applied, one must first understand the top-level requirement
for the related ITS data dictionary standard. That requirement
can be stated as follows: the standard shall support the specification
of data dictionaries that allow the unambiguous specification
of all ITS information, including but not limited to, information
to be exchanged between or among ITS subsystems (through the use
of message sets). ITS message sets are therefore the logical medium
by which information interchange between ITS subsystems is accomplished.
The message set template standard provides the basic structure
or framework for specifying message sets (i.e., types of messages).
Those types, when instantiated, are the specific messages that
are interchanged at the physical implementation level.
3. Requirements for
and Approaches to the ITS Message Set Template
3.1 Relating the ITS
Message Set Template to ITS Data Dictionaries
When specifying a message set,
its contents should normally be data structures (i.e., data concepts
and data elements) described in and managed by an ITS data dictionary
conforming to the ITS data dictionary standard. There may be some
exceptions [Note: whether some derived data elements (for
example where some statistical algorithm is applied to a data
element from the data dictionary) can be specified within a message
set rather than in a data dictionary is an open issue]. The message
sets should not specify permissible ranges of values for data
elements, as this information should already be specified for
the data elements as part of the meta data about them in an ITS
data dictionary. Data types should also not be specified separately
in a message set, as those should already be specified for the
data elements as part of the meta data about them in an ITS data
dictionary. For this reason, it may be useful to have the data
types used in the data dictionary standard correspond to [at least
a subset of] the ASN.1 data types. A subset of only the more basic
ASN.1 data types may be preferable, as some of the extended ASN.1
data types cross over into limited semantics. Such semantics are
best left to the data dictionary meta structures to handle. However,
in a message set one should be able to specify the sequence of
data elements appearing in a message, as well as allowable ranges
of repeating data elements within a message (e.g., maximum four
sets of Routes returned). [Note: the working group should
review the ASN.1 standard to see exactly how this is specified
i.e., using what syntactical construct(s) and/or extended data
type(s), and determine whether ASN.1 meets the working group's
requirements in this area]. Certain conditions under which data
elements may appear in a message may also be specified as part
of the message set specification using the message set template
and ASN.1.
Another open issue remaining
in this area is whether the message sets contain data elements
'flattened' to the lowest-level of data structuring, versus having
the ability to re-express in ASN.1 higher-level data structures
from the data dictionary and resolve them to the lowest level
at runtime. This is not a logical level issue, as the specification
of the message set template will be in the data dictionary and
will therefore have access to the higher-level data structures.
But if ASN.1 encodings are used for implementation, then the question
arises as to whether these need to be flattened in advance. If
they are not resolved to the lowest-level in advance, then the
applications need to have access to the data structures of the
data dictionary (either pre-compiled into the application - in
which case update consistency becomes an issue - or at runtime).
How the actual physical messages
are encoded, as well as how the actual instances are transmitted,
are purely implementation issues. Implementation issues are not
the subject of the ITS message set template standard, and to the
degree they are addressed here at all, it is only for informational
purposes. Given the variability in the nature of messages (i.e.,
wireline versus wireless, transactional versus dynamic, short-range,
etc.), and given the need to optimize specific messaging environments
to meet particular performance requirements, it is anticipated
that there will be many different ways to implement ITS messages.
Another way to state this is that it is the logical requirements
for the message that will be specified using the message set template
standard, with potentially multiple physical implementations able
to meet those requirements.
Since message sets can be described
and managed using data concepts and data elements just like any
other ITS data, then the message sets themselves should be populated
as contents in an ITS data dictionary conforming to the ITS data
dictionary standard. The collection of message sets (i.e., those
portions of ITS data dictionaries containing message set specifications)
can be thought of as comprising a 'message catalog'. Providing
a message set cataloging capability in an ITS data dictionary
will require hosting the message set template as a data structure
in ITS data dictionaries.
3.2 Relating the ITS
Message Set Template to the ISO OSI 7-Layer Architecture
The Open System Interconnection
(OSI) model developed by the International Organization for Standardization
(ISO) identifies 7 layers for organizing a messaging or communications
environment and managing its services. Each higher level requests
a service which is provided by the next lower layer in the architecture.
The 7 layers are:
Layer 7 - Application = application interface
Layer 6 - Presentation = presentation to applications
Layer 5 - Session = presentation dialog management
Layer 4 - Transport = message handling
Layer 3 - Network = routing of packets
Layer 2 - Data Link = frames from node to node with shielding
Layer 1 - Physical = bits on
a wire
It should be noted that there
are few if any complete, direct implementations of the 7-layer
architecture. TCP/IP, for example, does not make this fine grain
of distinction and does not address presentation issues to any
great degree, or application (i.e., semantic) issues at all. The
important distinction for purposes of the message set template
is between the lower-level transport/network protocol-related
aspects that are 'syntactic' (Layers 5 down to 1) and the application-related
aspects (and maybe some presentation-related aspects) that are
'semantic' (Layers 7 and 6).
The message set template will
provide for the specification of message types from the perspective
primarily of Layer 7 - Application, but may in some cases also
address at least some aspects of Layer 6 - Presentation. Layers
5-1, in particular deal heavily with implementation issues and
will likely vary greatly across ITS. Implementation issues cannot
be addressed directly in the message set template. However, the
message set template may, for example, provide slots in its header
or trailer which allow high-level specification (logically through
a 'radio button' or menu-driven approach) of the particular requirements
for a message set in terms of such messaging parameters as acknowledgement,
authentication, security, etc. These specifications will need
to be fairly-generic in order to allow various individual messaging
implementation standards to be applied as appropriate. For issues
such as bandwidth or quality of service, which have been raised
as possible meta data issues related to ITS messages, the specific
data needed to request and verify this is also at a lower level
of the OSI 7 layer architecture than Layers 7 - Application or
Layer 6 - Presentation. However, again, some degree of logical
specification for these sorts of parameters may be provided for
in the message set template, with the request to meet that requirements
(i.e., provide that service) being passed down the appropriate
lower level of the protocol.
3.3 Use of ASN.1 as
the Expressive Formalism
After review and analysis of
several alternatives (including BNF, SGML and CORBA), the IEEE
ITS DD/MST Working Group decided to use Abstract Syntax Notation
One (ASN.1) [ISO 8824:1994] as the expressive formalism for specifying
message sets based on the message set template standard. ASN.1
is widely-used for this purpose both within the standards development
community and industry. It should be noted that the decision to
use ASN.1 as an expressive formalism in no way implies or requires
the use of ASN.1 encodings for the actual implementation of the
messages. The abstract syntax of ASN.1 is neutral with respect
to implementation. Depending upon the nature (including performance
requirements) of a particular messaging environment, one or more
of the ASN.1 encodings may be appropriate for implementation use.
One contrast to note between ASN.1 and the EDI environment is
that ASN.1 encodings are binary, whereas EDI is ASCII text-based.
However, any decision about the use of ASN.1 encodings for implementing
messages is outside the scope of the IEEE ITS message set template
standard.
ASN.1 is a primarily static-oriented
specification language. It is possible to specify process or function,
but languages like CORBA IDL, for example, are more explicitly
oriented to behavioral specification and invocation. With ASN.1,
the message is explicitly making a query or sending information;
in the case of CORBA, the message is sending a process request
along with the input variables and expected/desired output variables.
ASN.1 does, however, provide for constraint specification. For
example, SQL 92 referential and existential integrity constraints
(i.e., the WHERE clause) can be expressed in ASN.1's constraint
language. An ASN.1 message specification and/or its implementation
would typically link to a DBMS (such as SQL) through a programming
language (i.e., in the context of an application program).
ASN.1 allows fully-open specification
of length, value, etc. at the abstract specification level. At
the implementation level (for performance reasons) this can be
limited in applications where both ends of the interchange know
about the nature of the message. In other words, every message
set should be specified using ASN.1, but even where ASN.1 is used
for the implementation, the specification does not need to explicitly
exist as part of the implementation environment. The messages
can be compiled. Having a logical-level specification of the message
sets, however, ensures that even compiled messages have a specification
that is human-readable.
Aspects of the ASN.1 standard
are also useful if there is a need to assign a unique numerical
address to message sets. This appears to be the case in ISO/TC204
N224 for some transportation-related messages, and the IEEE ITS
message sets may need to do this then to ensure consistency with
such international standards.
4. Additional Topic
Areas Identified During the Preliminary Analysis
4.1 One or More Than
One Message Set Template
Given some global requirements
for (broadcast) messages, does there need to be just one message
set template that is applicable at this highest-level to all messages,
or is there a fundamental split into DSRC versus 'other'? If there
is only one message set template, are DSRC messages simply allowed
to have null values in many of the header slots that do not apply
to them?
4.2 Global Addressing
Scheme
Regarding ISO/TC 204 N222, N223,
N224: These documents appear to suggest handling the complexity
of coordinating the message specifications for the many aspects
of an ITS by uniquely identifying many administrative domains
(via the Sector and Service ID's). These administrative domains
are then assigned to working groups, each of which is then free
to define the message formats required for its domain, independent
of the others. Overlaps among the domains appear to be handled
by liaison or coordination, but not by means of a formal, uniform
interchange medium.
This approach raises some critical
global issues related to port, node, network/subnetwork, group
addressing. A message must somehow specify where it came from
(in case there is a reply) and where it's going. A message can
go to a single point (port on a node), be broadcast to a network/subnetwork,
or be sent to a port on each of a pre-arranged group of nodes
(i.e., multicast). ITS will probably use all of these. To handle
this, the addressing scheme should be globally specified. If
there are other more global messages as well (i.e., ones that
cross sector, or go outside of ITS to say EPA or DoD), then there
needs to be a global addressing scheme for this level of interaction.
The IEEE ITS message set template should support applicable national
and international standardization at this level, too. Except for
dedicated messaging, how would such a global message ever have
identification of where it came from or where it was going? For
example, if any of the 33 basic messages in the ISO/TC204 standard
cross sectors and if sectors have the right to choose their own
formats, then how do messages cross boundaries and still know
addresses? Only a global addressing scheme, such as used for example
for Internet TCP/IP and OSI would ensure this.
4.3 Transport Services
and Sessions
The question arises as to what
message transport services are required for ITS messages, and
if/how such services should be specified in the message set template.
Some services may require the establishment of a session with
the required parameters reserved across the network for all messages
sent within the session. This means all elements of the network
involved with retransmission of messages (i.e., routers, nodes)
will understand session-related messages (e.g., establish session,
end session, session status, change session). Some session-related
requirements include:
Time constraints - e.g., required
bandwidth, isochronous transmission, end-to-end delay limits
Integrity constraints - e.g.,
guaranteed error-free arrival, in-order arrival
Security constraints - e.g.,
encrypted channel, guaranteed identity of endpoints, encryption
type
Routing and gateway requirements
- e.g., address translation in mixed networks, route determination
to meet other constraints (like cost)
Multicast - e.g., videoconference
group.
Typically in such cases there
are specific messages for setting up the sessions (i.e., these
can be thought of as 'meta messages'). This means that the individual
content-related messages don't have to worry then about at least
some of the general session-related parameters like overall security
for the session. But even in this case, individual messages could
have specialized security requirements just for that message.
Since TCP/IP, as an example of
a physical implementation of a messaging environment, does not
have a session protocol, some might argue that it isn't relevant
to specify session requirements for message sets at the logical
level. It is true that TCP/IP effectively stops at the transport
level and leaves sessions up to presentation and application level
protocols. For some applications, like transmitting Web pages
(HTTP) or netnews (NNTP), sessions may not be required. But for
many more applications, like mail (SMTP, POP), terminal emulation
(Telnet, rlogin), file transfer (FTP), real-time/isochronous (RSVP),
file sharing (NFS), the equivalent of sessions are implemented
by the individual application protocols. This has led to numerous
problems: security holes, duplicated code and message content,
unresolved conflicting requirements. When TCP/IP came into use,
it wasn't clear what the requirements for sessions were or how
they would be supported in a network. Since then, the OSI model
has come out, and at the implementation level SNA and Appletalk
both contain integral session protocols, due to a large number
of service protocols that require security, authentication, and
resource allocation. These might be looked at sources for parameters
to specify for sessions, although again the message set template
should abstract away from the specifics of these implementation-level
protocols. Many other specific mechanisms are available to provide
security, authentication and resource allocation, but most of
these are too specific or too poorly packaged to be useful as
sources. For example, there are a number of problems in internet
protocols due to the lack of a standard session protocol, including:
FTP, Telnet, rlogin and POP
all separately implement user authentication. FTP, Telnet and
rlogin transmit the user's ID and password in the clear. POP does,
too, but has an option for encrypted password authentication.
PPP has its own optional secure authentication.
There is no standard way to
encrypt messages, leading to a hodge-podge of application-level
encryption schemes (like PGP mail, or applications calling DES
with Kerberos-managed keys).
NFS is insecure. FTP does not
encrypt transmitted content. SMTP servers typically do not do
any authentication; the SMTP protocol does not provide for authentication.
RSVP is only now in the process
of standardization. Reserving resources using this approach is
left to the application. Previously developed code (e.g., for
FTP, Telnet, socket-based applications) will have to be modified
to use it in addition to the protocols already used.
This knowledge of the state-of-the-art
can be applied to the question of what to specify in the message
set template. When specifying a message set, it may be appropriate
to specify some parameters regarding the need for and nature of
user authentication (ID and password), including whether secure
authentication is needed, and whether encryption of passwords
is necessary. It may be also useful to specify whether a message
set requires encryption of its contents, although specific encryption
schemes may not be specifiable due to the wide variety of schemes
and their interaction with and dependence upon specific applications
or kinds of applications.
4.4 Elements Common
to Many Message Domains
Based on a review of current
message sets in other domains (e.g., ASC X12 EDI and U.N. Edifact),
certain data elements appear to occur quite commonly in many message
sets. These may be the same thing as, or at least relate to, the
so-called 'basic data elements' being addressed in the IEEE ITS
data dictionary standard. These should not be specified only for
use in messages, but rather should be in an ITS data dictionary
(directly or by reference to some other standard) and should then
be applied to messages, as appropriate. If certain of them must
typically be specialized when applied to messages, this information
should also be represented in the data dictionary.
Example 1: Physical quantities.
A common way of expressing physical quantities should be specified.
A dictionary of equivalences should be available.
Physical quantities can be:
Simple units (e.g., gram, piece)
Multipliers (e.g., kilo, nano)
Combined units (e.g., kilo meter / hour)
Derived units (e.g., Newton = kilo gram * meter / (sec * sec))
Approximate common units (e.g. bargeload, container)
Standardized common units (e.g., standard container)
Gross or net (weight)
Inside or outside (dimensions)
Note:
Combined units of measure and derived units of measure should
also be considered. The EDI standards have addressed this area
fairly extensively.
Example 2: Currencies. There
should be a standard format(s) for encoding currency units in
messages (e.g. DM 1,00), and for specifying the decimal point
symbol. Some message set standards allow only one currency format
and one decimal point symbol.
Example 3: Geographic location.
There are many systems for specifying geographic location. Some
subset of these should be standardized, along with a means of
translating among the members of that subset. With the widespread
use of GPS, Lat/Long/Elevation is finding the most use. In this
case, there must be a standard reference datum.
Example 4: Country code. There
should be a standard for specifying 'country' in messages. Some
message set standards allow only one format.
Example 5: Telephone number.
There should be a standard for specifying telephone numbers in
messages. Some message set standards allow only one format.
Example 6: Date and time of
day. ISO 8601 provides standards in this area. In message set
standards, there is often a single standard used, with local translations.
Or, if local date/time are used, there must be a standard for
the locality (time zone, daylight time adjustment, calendar) and
a translation to UTC.
4.5 Other Issues
The following miscellaneous issues
should also be considered, and may merit parameterization as part
of the message set template:
4.5.1 Acknowledgement and Synchronous/Asynchronous
Transactions
Does the message require acknowledgement
or not. 'Broadcast' messages inherently do not require acknowledgement.
Does the message involve synchronous
or asynchronous transactions?
How does the combination of
acknowledgement interplay with synchronous/ asynchronous transactions,
for example in long-duration messages?
- Synchronous transactions and acknowledgement = sequential wait with locking
- Asynchronous transactions and acknowledgement = coincidence with no locking
- Synchronous/asynchronous with
no acknowledgement
These criteria may change message
structures, i.e., they may indicate a need for separate message
set templates at a second level. However, the difference between
DSRC versus transactional messages is really about temporal and
spatial parameters, and may not merit separate message set templates
at all.
4.5.2 Dispositions
Messages can be categorized based
on their modal disposition. There are three message dispositions:
Query = Search
Command = Execute
Statement = Inform (including
Broadcast).
Certain values for slots in the
message set template may change depending upon which of the three
dispositions is being addressed, but the overall message set template
structure (i.e. the slots themselves) will not change among the
three dispositions.
4.5.3 Kinds Versus Species of
Message Sets
Changes in the structure of the
message set template (refer to 4.5.1 above) or to values for the
slots (refer to 4.5.2 above) result in different kinds of message
sets. These are meta level changes, analogous to changes to the
meta structures of the data dictionary. Differences in the abstract
contents of message sets, for example emergency traffic information
messages versus toll collection messages result in different message
sets (i.e., species or types of messages) not different kinds
of messages at the message set template level.
4.5.4 Compiled Versus Uncompiled
Messages
All message sets should be specified
using the message set template. One of the parameters when specifying
message sets will likely be whether the messages are compiled
or not in their implementation environment.
4.5.5 Compressed Versus Uncompressed
Messages
This is different from 4.5.4
in that it is not concerned with translating a message into a
form that is directly machine-interpretable for more efficient
transmission and/or processing. Like compilation, this requirement
is largely driven by efficiency concerns related to transmission
and/or processing. However, in this case, optimization of the
message involves removal of unused message parameter slots (i.e.,
slots with a null value) and/or reduction in size (through some
compression algorithm) of the slot length allocated for some parameter
based on the value of that parameter being variable in length.
4.5.6 Generalized Data Interchange
The IEEE ITS message set template
is intended to support generalized data interchange. There are
two basic approaches to providing this capability. Which of the
two approaches is used may be useful information to specify for
a message set. The two approaches are:
Direct = assumes the receiving
system knows what the data being sent means, based on the data
concepts and data elements of the message set all being in the
overall ITS data dictionary (including the ITS data registry)
Mediated = the message itself
contains references to other data dictionary structures (from
functional-oriented or application-specific data dictionaries)
or embeds its own specification of the data elements contained
in ad hoc messages.
Details of Documents
Reviewed and Associated Comments
1. ITS-Related MSTs
During the March 6-7, 1997 working
group meeting the basic message was described as:
! Header ! Information/Content
! Trailer !
Header could consist of:
! Address ! Priority ! Security
! ... !
Security could be broken in to
some multilevel security definition [Note: This does not
need to be at the level of DoD multi-level security, although
as discussed above, there may be security at at least the level
of sessions and individual messages].
Trailer is undefined, but could
be an error check code.
The subworking group chair performed
a review of existing ITS message sets, where information was available
(basically ATIS messages from a workshop in the Spring of 1994).
Very little is consistent among the varied sets. They are: ADVANCE,
TravTek, Mitre ATIS message Set, VICS, UTMS, SAE J1708, EURO-Scout,
and the Enterprise BIF/BAP.
As to details on the message
headers and trailers (and size of fields):
ADVANCE:
Header:
msgType (1 Byte)
processOptions (1 Byte)
saveBytes (2 Byte)
termAddr (4 Byte)
register (1 Byte)
format (1 Byte)
priority (1 Byte)
applHdrOffset (1 Byte)
applName (2 Byte)
MNA_Command (1 Byte)
Trailer:
None
TravTek:
Header:
Message type (1 Byte)
Version of Prog (1 Byte)
Trailer
CRC16 (2 Byte)
Mitre ATIS message Set:
Header:
Message Type (6 bits)
Trailer:
None
VICS:
No data on message structure
UTMS
! Transmission Control Section (sync 1 Byte)
! Header (8-10 Byte) header:
Automatically Generated Equipment Number (3 Byte)
Automatically generated number (3 Byte)
Vehicle type )
In-vehicle Equipment Type } - (1 Byte)
User type
Information Type (1 Byte)
Length of Valid Data (1 Byte)
Trailer:
Transmission Control Section
(4 Byte CRC)
SAE J1708:
Message ids (2 Byte)
EURO-Scout:
!Poll header ! File Header !
Pool Header:
Pool Descriptor (2 Byte)
Beacon ID (15 bit)
Version (1 bit)
Number of Entries (1 Byte)
Relative Address of file _i_ (3 Byte)
File header:
Application description (2 Byte)
(class (5 bit), code (8 bit), Version (3 Bit) File length (3 Byte)
Crucial length (2 Byte)
Trailer:
CRC (2 Byte)
Enterprise BAP/BIF:
From the text, the subworking group chair determined that there are headers. Unfortunately, it was unable to be determined from the documentation exactly what the message headers are. There appear to be User messages and System Messages (the latter seem important). The header seems to include at least the following information:
System Message Types
Supplier ID
Message [Set] Type
Default Country/State Code
Location Table Code
The only consistent element in
the various message headers is a "Message Type" typically
of 1 Byte (refer to ADVANCE, TravTek, Mitre, UTMS, EURO-Scout
and BIF/BAP).
Message Trailer, if it is used,
seems to be a 2 Byte CRC.
Other Subworking Group Notes
Related to the ITS Message Set Template
_Message header_
Should include a Message Type
of minimum 2 Bytes (256). This would provide space to define the
message by functionality and message. Potential growth to 3 Bytes
is possible. Need to get a good handle as to the number of messages
the various message sets may have, and how many proprietary concerns/messages
are interested before nailing this one down.
Size of the message in Bytes.
Here or in message body? (UTMS, EURO-Scout)
Origin information should be
considered: origin identity, location, time, and date.
Prioritization should be considered.
Security could just as well be
part of the message or information content. There would appear
to be a limited number of messages that require security or validation
- primarily the financial messages. The bulk of messages don't
need the overhead.
What other elements should be
included in the header?
_Message content_
[Not our concern, except perhaps
for some size of message information?]
_Message trailer_
It has been proposed that the
ITS Message Set Template not have a trailer. If some sort of error
detection or correction scheme (CRC) is needed by the application,
then the information content should include the CRC. If the transmission
media needs error correction (e.g., DSRC), then the CRC is added
by the lower levels of the ISO Open System Interconnection (OSI).
2. TMDD MST
Assumed basic structure (Header
Fields)(Data Fields)
Header information (what header
fields are mandatory in all messages?)
Message Code
Sequence Number
Time Stamp
Data Format
Security
Addressing/Origin
Priority
Message Length (Fixed/Variable)
How communication protocol-dependent
is the MST?
3. NATO Industrial Advisory
Group, Subgroup 52 (NIAG/SG52), Allied Naval Engineering Publication
(ANEP)-51, NATO Naval Combat System Information Catalogue, Volume
0 - Introduction and Volume 4 - Message Construction Standard
At the level of Volume 0, there
appears to be many similarities to the objectives and overall
structuring of approaches between ANEP and the ITS data dictionary
standard and guidelines and the message set template standard.
For example, the notions of 'formally and unambiguously' defining
data structures and data elements and the [generic] messages they
get packaged into are found in both projects. ASN.1 is the expression
mechanism, with MS Access serving at least as an interim analytical
tool, if not a limited data dictionary or registry [Note:
Vol. 0 talks about standardization of data elements and messages,
particularly looking towards genericity to reduce unnecessary
differences and hence reduce ambiguity]. There are also some obvious
differences in terms of the breadth and general nature of the
data being interchanged. This document is concerned with intra-ship
communications. As such, it can ignore issues related to operation
over a large area outside a tightly controlled environment, issues
very much in evidence in an ITS. The general issues of message
construction apply, but in an intra-ship environment, message
transport is much simplified, so the protocols associated with
message addressing, routing and transmission are very simple.
ANEP data might well be fairly analogous to the emergency and
traffic management data within the ITS, but doesn't deal with
commercial/business data elements, financial data feeds, etc.
that are more complex and don't map as directly to the low-level
basic data types of ASN.1 (e.g., Integer, Real, String, etc.).
Based on reviewing Volume 0,
the most relevant detailed document to review appeared to be Volume
4: Message Construction Standard. This was stated as providing
a "formal and unambiguous syntax for the definition of messages
and data structures (components of messages)". Some of the
basic data elements are also stated as being 'formally defined'.
However, within Volume 4 itself it makes it clear that 'formally
defined' is really only 'formally syntactically defined'. The
basic data types are really only the eight most primitive ASN.1
data types (i.e., for whatever reasons, they don't make use of
the full set of ASN.1 basic types). Additionally, while ASN.1
may be formal and unambiguous in its syntax (since the syntax
and at least aspects of the associated grammar are defined in
specifications that are well-controlled standards documents),
that does not in any way mean that the [semantic] definitions
one specifies using ASN.1 are necessarily formal or unambiguous.
That would be presuming the nature of content based on the nature
of its form. "C" is a formal and unambiguously defined
programming language, but that does not mean someone cannot write
bad or completely nonsensical programs in it, and while they may
compile and execute, they don't produce any meaningful output.
Saying, for example, that Message 37, Incident, is a set with
members Incident Type (VisibleString), Date (VisibleString --
YYYYMMDD), ShipNumber (Integer), NatureOfIncident (VisibleString)
and Report (Sequence of Events (VisibleString)) doesn't tell a
human user explicitly about what an incident is, what a ship is,
what's an acceptable description of the nature of an incident,
what constitutes an event versus a part of an event or a description
of an event. A message of this nature can be parsed and read into
a receiving application, but unless that application already 'knows'
what those data elements mean and has the same expected meanings
for them as the sending application, then there is no assurance
of nonambiguity. Given that, appropriate questions to ask would
include: do these standards at least include a set of procedures
for defining data elements in a consistent manner using, for example,
structured English; do they have a set of real 'building blocks."
In this case, the answers seem to be 'no', and that is apparently
sufficient in this case, as the messages are simple enough and
the data structures and data elements are at a low enough level
that a direct mapping to ASN.1 basic data types provides recipients
of the message all that is necessary (in this case, syntax) to
act upon the message or otherwise make use of it in the receiving
application's context.
The message header - albeit very
simple in this case - may be of interest in identifying potential
parameters for the message set template, and should therefore
be considered along with such input as the list of ITS-related
message templates compiled by the message set template subworking
group. The message header consists of:
Message Catalogue Number (MCN)
Message Name
Message Description
Catalogue Group
Message Source
Message Destination(s)
Message Length
- Minimum Message Length
- Typical Message Length
- Maximum Message Length
Typical Frequency
4. RFC 2076 Internet Message
Headers
This memo contains a table of
commonly occurring headers in headings of e-mail messages. The
document compiles information from other RFCs such as RFC 822,
RFC 1036, RFC 1123, RFC 1327, RFC 1496, RFC 1521, RFC 1766, RFC
1806, RFC 1864 and RFC 1911. A few commonly occurring headers
which are not defined in RFCs are also included. For each header,
the memo gives a short description and a reference to the RFC
in which the header is defined.
This is deemed very useful to
the message set template effort and will be used to help prepare
a checklist of candidate header items.
5. EWOS Guide to Open System
Specifications (GOSS) AMHI and AMH3 (EWOS) Profiles
These profiles may be good candidates
for header and/or trailer slots. The following may be relevant.
AMH1
An MTA, an MS or a UA shall as the basis of the AMH11 profile support the
following Elements of Service:
* Access Management
* Content Type Indication
* Converted Indication
* Delivery Time Stamp Indication
* Message Identification
* Non-delivery Notification
* Original Encoded Information Types Indication
* Submission Time Stamp Indication
* User/UA Capabilities Registration
* Conversion Prohibition
* Delivery Notification
* Disclosure of Other Recipients
* DL Expansion Prohibited.
In addition, an MTA shall support
the following Elements of Service:
* Explicit Conversion
* Grade of Delivery Selection
* Multi-destination Delivery
* Prevention of Non-delivery Notification
* Probe
* Conversion Prohibition in Case of Loss of Information
* Deferred Delivery
* Deferred Delivery Cancellation
* Redirection Disallowed by
Originator.
The functional groups for AMH1
profiles are
* Conversion
* Distribution List
* Physical Delivery
* Manual Forwarding
* Redirection
* Latest Delivery
* Return of Content
* Security
* Use of Directory
* 84 Interworking.
AMH3 has EDI mappings:
An MTA, an MS or a UA shall as the basis of the AMH31 profile support the
following Elements of Service
* EDI Message Identification
* Typed Body
* Character Set
* EDI Message Type(s)
* EDI Notification Request
* EDI Standard Indication
* EDIM Responsibility Forwarding Allowed Indication
* Interchange Header
* Originator Indication
* Recipient Indication.
In addition for the EDIMG-MS and the EDIMG-UA it shall support the following
Elements of Service on reception
* Cross Reference Information
* EDIN Receiver
* Expiry Date/Time Indication
* Incomplete Copy Indication
* Multi-part Body
* Obsoleting Indication
* Related Message(s).
The functional groups for AMH3
profiles are
* Conversion
* Distribution List
* Physical Delivery
* Manual Forwarding
* Redirection
* Latest Delivery
* Security
* Use of Directory
* 84 Interworking
* Multi-part body
* X12 heading fields
* Private syntaxes
* EDIFACT heading fields.
6. MTL - A C++ Class Library
for Mobile Service Protocols
This contains a recommended list
of the basic ASN.1 data types to use in messages. Basically those
are:
Boolean Type
Integer Type
Enumerated Type
BitString Type
OctetString Type
Null Type
CharacterString Type
[Real Type appears to be missing????]
Notes from the Discussion
of ASN.1 at the March Working Group Meeting:
1. How to get from structures
in the data dictionary to the message body (for specification
of message sets)?
If the data dictionary and message
set catalog are two separate artifacts, then would involve exporting
from the data dictionary (i.e., a DBMS) to the message catalog.
This would require mapping (one time) the ITS data dictionary
meta structures to the message set template (and associated ASN.1
syntax).
If you have a central ITS data
dictionary and/or several integrated functional-oriented data
dictionaries, then more/most of the structure (i.e., intelligence)
is there and doesn't have to be specified from scratch in the
message sets. The message sets can be specified as a part of an
ITS data dictionary. Message developers can access and utilize
the data dictionaries. The applications will create the messages
based on their own internal model of them, which should be consistent
with that given in the message set catalog (as part of an ITS
data dictionary). Message [instances] are interchanged from one
local application to other local application(s). The data dictionary
to ASN.1 link is for application development and maintenance,
not for runtime messaging.
Other Message-Related Notes
from the March Working Group Meeting
Object Class = Link
Data Element Concept = Start Node or End Node
Data Element (which is primitive
and has an implementation-level data type associated with it)
= Latitude and Longitude
SDO SDO
! !
11179 Data Elements (DB primitives) Message Sets in ASN.1 format
! !
Report in ASN.1 format !
! !
Combination of Message Set Header
and Trailer and other message specification with the data elements
from the data dictionary
Note:
This only works with message sets that involve fairly simple packaging
of data elements. If there is a need to embed much of the structure
from the data dictionary, then there has to be a tighter coupling
of the data dictionary and the message set template. In the best
case, the message set should be defined in the data dictionary.
Note:
The CVO/CVISN group has lots of implementations of messages in
EDI and Edifact contexts. If we decide that the specification
notation should be ASN.1, that doesn't preclude existing and new
implementations using various messaging languages. That's an implementation
issue. Also, if ASN.1 is considered for implementation purposes,
it should be noted there are compilers that can take the ASN.1
expressions and translate them into various programming languages.
ITS Service Provider <->
Comms. Interface <-> 1) cellphone 2) pages 3) etc.
Message Set Template: Address;
Priority; Security; Content [covered by application standards]
Security Levels would be defined
elsewhere for each message set.
PDU header at Layer 7 = message
set template header
What is the relationship between
the header in the message set template and the protocols required
for lower-layers?
The first priority should be
to ensure the message set template is sufficient for center-to-center
communications, but the DSRC/wireless data that goes through VASP
(Value Added-Service Providers) also needs to be considered. The
VASPs will filter traffic, emergency, weather, routing and other
information for in-vehicle traveler systems.
IEEE/ITS Home
Page
Sue Vogel, Staff