8. Release Notes¶
8.1. Supported Platforms¶
RTI Web Integration Service is supported on the platforms in Table 8.1.
Platform | Operating System |
---|---|
Linux® (Intel® CPU) | All Linux platforms on x86/x64 CPUs in the RTI Connext DDS Core Libraries Release Notes for the same version number, except not supported on Wind River® Linux 7 systems. |
Linux (ARM® CPU) | Ubuntu® 16.04 LTS on ARM v8 CPU |
OS X® | All OS X platforms in the RTI Connext DDS Core Libraries Release Notes with the same version number. |
Windows® | All Windows platforms in the RTI Connext DDS Core Libraries Release Notes for the same version number. |
Web Integration Service is also supported on the platforms in Table 8.2; these are target platforms for which RTI offers custom support. If you are interested in these platforms, please contact your local RTI representative or email sales@rti.com.
Operating System | CPU | Compiler | RTI Architecture Abbreviation |
---|---|---|---|
RedHawk™ Linux 6.5 | PPC x86 | gcc 4.9.2 | i86RedHawk6.5gcc4.9.2 |
RedHawk Linux 6.5 | PPC x64 | gcc 4.9.2 | x64RedHawk6.5gcc4.9.2 |
8.2. Compatibility¶
For backward compatibility information between Web Integration Service 6.0.0 and previous releases, please see the Migration Guide on the RTI Community portal.
8.3. What’s New in 6.0.0¶
8.3.1. New Platforms¶
- This release adds support for:
- SUSE Linux Enterprise Server 12 on x64 (x64Linux2.6gcc4.3.4)
- Ubuntu 16.04 LTS on ARM v8 (armv8Linux4.4gcc5.4.0)
- Ubuntu 18.04 LTS on x64 (x64Linux4gcc7.3.0)
8.3.2. Ability to Enable Topics¶
Like any other Entity, a DDS Topic can be created in enabled or disabled mode. This version of Web Integration Service introduces an option to enable Topics that were created in disabled mode. This option was already available for other DDS entities (i.e., DomainParticipants, Publishers, Subscribers, DataWriters, and DataReaders). For more information on this new functionality, please see the API Reference section of this document.
8.3.3. Upgraded to CivetWeb v1.11¶
Web Integration Service has upgraded the version of its embedded web server, CivetWeb, to v1.11. For more information on CivetWeb, please see its Release Notes on GitHub.
8.4. What’s Fixed in 6.0.0¶
8.4.1. Attempt to create invalid application not reported as error¶
Web Integration Service failed to return an error upon the creation of invalid applications that tried to register previously undefined types. This problem has been resolved.
[RTI Issue ID WEBINT-129]
8.5. Previous Releases¶
8.5.1. What’s Fixed in 5.3.1¶
8.5.1.1. CRLF Line-Endings in rtiwebintegrationservice Script¶
In the original release of RTI Connext DDS 5.3.1, rtiwebintegrationservice – the script that runs RTI Web Integration Service on UNIX-like systems (that is, Linux and OS X) – contained CRLF line-endings, which prevented the script from executing. This issue has been resolved.
8.5.2. What’s New in 5.3.0¶
8.5.2.1. Changes in XML and JSON Data Representation¶
This release introduces a few changes in the data representation in XML and JSON format.
Octets are now represented using a decimal value. For example:
<data>
<anOctet>255</anOctet>
</data>
{
"anOctet": 255
}
Enumeration literals are now represented as strings by default. You may use
the enumsAsIntegers
query parameter to enable the old behavior
(see Table 5.20).
<data>
<anEnum>ACE</anEnum>
</data>
{
"anEnum": "ACE"
}
Characters and Wide Characters now support escape sequences to represent non-printable characters. For example:
<data>
<myChar1>a</myChar1>
<myChar2>★</myChar2>
<myWChar1>b</myWChar2>
<myChar2>★<myWChar2>
</data>
{
"myChar1": "a",
"myChar2": "\u2605",
"myWChar1": "b",
"myWChar2": "\u2605"
}
Likewise, Strings and Wide Strings now support escaped sequences to represent non-printable characters.
<data>
<aString>El río miño</aString>
</data>
{
"aString": "El r\u00EDo mi\u00F1o"
}
An Instance Handle is now represented as a string, where each element of the old sequence is represented in hexadecimal. For example:
<instance_handle>580BA4179B1A6D6B4CD7CE4F54B3B63C</instance>
{
"instance_handle": "580BA4179B1A6D6B4CD7CE4F54B3B63C"
}
8.5.2.2. New parameters to configure sample representation¶
This release introduces a new set of parameters to configure sample
representation when reading through the GET operation on a DataReader. Before
this release, you could only choose the format representation via
the sampleFormat
query parameter, now you can also use:
prettyPrint
, which produces a response body with indentation and line breaks. By default the response body of the read operation is represented in a compact format without indentation and line breaks (i.e.,prettyPrint = False
).enumsAsIntegers
, which produces a response body where enumeration literals are represented as integers rather than strings. By default, enumeration literals are represented as strings (i.e.,enumsAsIntegers = False
).
8.5.2.3. New examples¶
Web Integration Service includes new examples as part of the installation.
These can be found under <path to examples>/web_integration_service
.
8.5.2.4. Admin Console support¶
RTI Admin Console has added support for Web Integration Service. You can now use Admin Console to browse the entities created by Web Integration Service and their associated QoS settings.
8.5.2.5. Support for NaN and Infinity in XML and JSON data representation¶
This release adds support for the representation of out-of-bound members in XML and JSON data samples.
In XML, not-a-number values (NaN) and infinity values are represented as follows:
<aValue>nan</aValue>
<anotherValue>inf</anotherValue>
In JSON format NaN and Infinity values are represented according to the ECMAScript specification. That is:
{
"aValue": "\"NaN\"",
"anotherValue": "\"Infinity\""
}
8.5.2.6. Attribute kind in <register_type> XML Tag is no longer necessary¶
The attribute kind in the <register_type>
XML tag is no longer required and
its use is deprecated. This change does not affect the way Web Integration
Service registers types.
Web Integration Service will still load configurations using the attribute
kind
, but it will log a warning similar to this:
DDS_XMLRegisterType_initialize:XML attribute 'kind' in tag <register_type> is
deprecated and will be ignored
8.5.2.7. Upgraded to CivetWeb v1.9.1¶
Web Integration Service has upgraded the version of its embedded web server—CivetWeb—to v1.9.1. For more information on CivetWeb, please see the Release Notes document on GitHub.
8.5.2.8. Support for builtin heap monitoring¶
Web Integration Service incorporates a builtin heap memory monitor that provides a way to analyze the heap allocations performed at the service and RTI Connext DDS layers. You can use heap monitoring through the command line with the following options:
heapSnapshotPeriod <sec>
Enables heap monitoring and generates a heap snapshot every <sec>.heapSnapshotDir <dir>
Specifies the output directory where the heap monitoring snapshots are dumped. The generated dump files have the following name:RTI_heap_<processId>_<index>.log
, where<processId>` is the process ID of the service execution, and ``<index>
is an integer that automatically increases each snapshot period.
For details related to the format of the snapshot files, see the API Reference HTML documentation for Connext DDS.
8.5.3. What’s Fixed in 5.3.0¶
8.5.3.1. Error listing types defined in different configuration files¶
When listing the types available in the system, Web Integration Service would
display only types defined in the default configuration file,
RTI_WEB_INTEGRATION_SERVICE.xml
, or loaded via the REST API. Types defined
in USERS_WEB_INTEGRATION_SERVICE.xml
and other configuration files were
excluded from the list. This problem has been resolved.
[RTI Issue ID WEBINT-112]
8.5.3.2. Waitsets did not awaken when Web Integration Service was closed¶
Client applications can configure a maxWait
time to wait for a number of
read conditions when calling GET on a DDS DataReader to read data. This
functionality blocks the thread that handles the HTTP request using a
DDS Waitset.
In Web Integration Service 5.2.3 and earlier, DDS Waitsets used throughout the service did not include a condition that would unblock them upon the reception of a signal to close the service (e.g., a signal generated by a CTRL+c command). As a result, after you entered CTRL+c, Web Integration Service would not exit until all DDS Waitsets had timed out. This problem has been resolved.
[RTI Issue ID WEBINT-127]
8.5.4. What’s New In 5.2.3¶
8.5.4.1. JSON support for writing and reading samples¶
Users can now write and read data samples using JSON. This complements the default XML format, making it simpler to map the data samples that are sent and received with Javascript objects. However, the definition of entities and QoS settings must be done in XML.
8.5.4.2. Simple authentication mechanism¶
Web Integration Service implements a simple authentication mechanism that ensures—if enabled—that only client applications with the appropriate API key can perform operations via the REST API. API keys are stored in an Access Control List file that can be created with Web Integration Service’s executable. HTTPS must be enabled to ensure that API keys are not intercepted by malicious applications.
8.5.4.3. Service configurations¶
For consistency with other RTI infrastructure services such as Routing Service or Persistence Service, we have introduced the concept of a Web Integration Service configuration. A service configuration contains a set of applications that are instantiated when the service is loaded. As a result, users need to specify a configuration when starting the service. Applications created via Web Integration Service’s REST API will automatically be appended to the list of applications under the running configuration.
8.5.4.4. Improved debugging messages¶
To make it simpler to debug an application, Web Integration Service provides
detailed logging information when the service is run with verbosity levels
of 5 or greater. These messages are logged via command line and can be
enabled using the -verbosity
command-line option.
8.5.4.5. Query strings to configure elements to read from DataReader’s queue¶
We have added a set of query strings to select the samples from the DataReader’s queue that must be read or taken. This includes filtering samples based on status conditions and filter expressions. We have also added the ability to configure whether to perform a take or a read operation (i.e., whether the samples read must be deleted from the DataReader’s cache or not).
8.5.4.6. Updated REST APIs to comply with latest revision of Web-Enabled DDS OMG specification¶
- Changed DomainParticipant’s resource name on URLs from
participants/
todomain_participants/
. - Changed DataWriter’s and DataReader’s resource name on URLs
from
datawriters/
anddatareaders/
todata_writers/
anddata_readers/
. - Changed the default value of the
Content-Type
header fromapplication/webdds+xml
toapplication/dds-web+xml
. - Added support for
OMG-DDS-API-Key
header. - Changed XML tags from “camelCase” to “snake_case” in the read data samples in the data and metadata sections.
8.5.5. What’s Fixed in 5.2.3¶
8.5.5.1. Error generating log messages with more than 1000 characters¶
We have normalized the error message representation that we include in HTTP responses. As a result, we have fixed a crash in Web Integration Service when logging error messages longer than 1,000 characters.
[RTI Issue ID WEBINT-88]
8.5.5.2. Error accessing Web Integration Service concurrently¶
We have fixed a thread-safety issue in the internal DDS functions that look up entities. Because these functions were not thread safe in previous versions of RTI Connext DDS, concurrent access to Web Integration Service could result in a hang that required a service restart.
[RTI Issue ID WEBINT-98]
8.6. Known Issues¶
8.6.1. Configurations and their applications cannot use same name¶
Due to current limitations in Connext DDS’s XML Parser, the name of the Web Integration Service configuration tag and the name of the applications within that configuration cannot be the same. For example:
<web_integration_service name="ShapesDemo">
<application name="ShapesDemo"/>
</web_integration_service>
To workaround this limitation, use different names for the service configuration tag and the applications within. For example:
<web_integration_service name="ShapesDemo">
<application name="ShapesDemoApplication"/>
</web_integration_service>
[RTI Issue ID CORE-3542]