April 2014
State of the Community - A Look at the University Program
Lacey Rae Trebaol, Engineer + Community Manager
When I was in college (Was it that long ago?), I was able to download free (or super inexpensive) software suites. I once bought MATLAB and LabVIEW - with the signal processing and communications toolbox - for less than $150. These were not only valuable as education tools, but also, once I became proficient, as skills on my resume and then as skills on programs I worked on. Being able to use a robust software package proved to be invaluable. Being able to use one that enables communication between disparate heterogeneous systems and applications could be a game changer once you enter the workforce or are faced with large-scale system and data challenges.
Through our University Program, RTI offers qualified university students, researchers and classrooms a license for the latest full Connext DDS Professional package. Some companies offer a limited version of their software that breaks if you exceed some arbitrary limit or values in your data. The RTI University Program is not like that: it is not 1-2 versions behind what we presently offer our paying customers. It is the same exact thing. And you don’t have to pay a dime. It’s completely free.
And you know those invaluable tools I mentioned? They are tightly-integrated with Connext DDS to make your distributed application development even easier. You can install the RTI DDS Toolkit for LabVIEW directly from the VI Package Manager or by visiting http://sine.ni.com/nips/cds/view/p/lang/en/nid/211817. You can then install the MATLAB classes for Connext DDS from http://www.mathworks.com/hardware-support/rti-dds.html. As a bonus, Simulink blocks are available at the same site. And all of these integrations are completely free!
If you’re wondering how members of our University Program are using RTI Connext DDS in the classroom, check out the PLANET Project profile. PLANET (Platform for the Deployment and Operation of Heterogeneous Networked Cooperating Objects) is being run out of the Universität Duisburg-Essen in Germany. They’re using Connext DDS as the middleware for the communication between heterogeneous Cooperating Objects, such as UAVs, UGVs and ground sensor networks. They built a set of PLANET services on Connext DDS with the aim of easing the deployment, operation and maintenance of heterogeneous networked Cooperating Objects.
The PLANET project is one of many University projects using RTI Connext DDS. I believe it serves as a spectacular example of how the University Program lets you use Connext DDS in the classroom or lab to not only assist in learning to achieve the course objectives, but also to build a marketable skillset to create all kinds of amazing systems in the years, and jobs, to come.
For details on how to apply for your free University license, please visit our website. As usual, if you have any questions or concerns post them to our Community Forum - we’re happy to help!
OMG News: Security Specification, RPC, CCM, and More!
Gerardo Pardo, CTO
The March 2014 OMG meeting was held in Reston, Virgina. A lot of things were going on in the DDS community: DDS Security, RPC over DDS, Unified Component Model and a surprise for everyone….
The DDS Security specification (see the specification and overview presentation) was recommended for adoption! Over more than 3 years in the works, it gathered broad support had excellent reviews from the Architecture Board. This specification was led by RTI, joined by PrismTech and supported by TwinOaks, MITRE and eProsima. It is eagerly awaited by many users who have even written to the OMG urging its adoption without delay. Needless to say, distributed systems security is in high demand!
Next, the evaluation team delivered a report on the two competing submissions to the RPC over DDS specification. The evaluation team was led by the representative from General Dynamics and included representatives from Northrop, Remedy IT, THALES, NSWC, TwinOaks Computing, and Jackrabbit Consulting. The two submissions--one joint from RTI and eProsima and the other from PrismTech--are very different.
RTI/eProsima proposed “clean” profiles with 2 APIs and several mappings to Topics and Types:
- The 2 APIs are Request-Reply and functional (proxy stub/skel objects)
- The mapping profiles were Elastic versus Lean and A/Legacy versus B/Modern
- Elastic maps 2 topics per operation, supports interface composition and different QoS per operation.
- Lean maps 2 Topics per Interface (independent of the number of operations) and is more scalable.
- A/Legacy does not rely on extensions to RTPS 2.2 and can work on top of any existing DDS, but it pollutes the data with metadata information.
- B/Modern relies on a new RelatedSampleIdentity Inline QoS and leverages XTYPES to keep the data and the metadata separate. This separation is important in the context of DDS Security as different access control policies govern access to data and metadata.
- Several combinations were proposed. Some were mandatory and others were optional.
PrismTech proposed something that amounted to a Lean “opaque” mapping that sent binary data encoded using custom marshalling and defined with a custom IDL.
The final recommendation was well aligned with the joint RTI/eProsima submission:
- Recommend the “clean” mappings with both Request-Reply and Functional APIs.
- Include both a new Lean/A (Legacy) profile (mandatory) as well as an optional Lean/B (Modern) profile.
The recommendation is also to leave the Elastic A(Legacy) and Elastic B (Modern) profiles for a future spec or a vendor extension. Revised submissions and (potentially) a vote will occur at the June meeting.
The next topic of interest was the Unified Component Model (UCM) submissions. The goal was to define a clean and light component model that was free of dependencies on middleware (CORBA, DDS, etc.) and could be deployed on top of the selected middleware.
The component API would be purely functional -- similar to the DDS4LWCCM ports -- so middleware dependencies could be encapsulated.
RTI, THALES, PrismTech, Remedy, BAE, IBM and AIST submitted Letters of Intent indicating they planned to submit a specification. Clearly there was a lot of pent-up interest!
The real bombshell was that the Industrial Internet Consortium (IIC) was formed and announced to the press. Their website is http://www.iiconsortium.org/. The goals of the IIC are:
- Identify requirements for open interoperability standards.
- Define common architectures to connect smart devices, machines, people, processes and data.
- Use existing and create new industry use cases and test beds for real-world applications.
- Deliver best practices, reference architectures, case studies, and standards requirements to ease deployment.
- Influence the global standards development process for Industrial Internet Systems.
- Facilitate open forums to share and exchange real-world ideas, practices, lessons and insights.
- Build confidence around new and innovative approaches to security.
This is potentially game-changing. The 5 founding members, GE, Intel, Cisco, AT&T and IBM, each contributed the funds required to start the consortium; they are permanent members of the steering committee.
Several other organizations have since joined, including RTI, Vanderbilt, PrismTech and Mitre. Check out the OMG press release (http://www.omg.org/news/releases/pr2014/03-27-14.htm). DDS is mentioned as the key middleware technology.
Beyond marketing, there are a lot of technical heavy-hitters in this group. I was in the Consortium reception attended by the CTOs and lead architects of several of these companies and found it extremely energizing. This group is really intent on changing the word by enabling smart industrial applications and “brilliant machines.”
More Best Practices
Rose Wahlin,Principal Software Engineer
In the last couple months, we’ve published a white paper and written up more best practices to help you make good design choices when building your DDS systems. One of these best practices involves architecting the system, and designing Topics and data types. We also discuss network configuration and Quality of Service.
Architectural:
- Don't Force Topic Names to be the Same as Type Names: Sometimes developers and system architects assume that there must be a 1-to-1 mapping between data types and Topic names, and make architectural decisions around that. However, there is no requirement that data types match Topic names. Topic names should be determined based on the meaning of the data, not the structure of the data.
Network Configuration and QoS:
- Use Multicast for One-to-Many Data: You can get increased performance when sending one-to-many data by enabling multicast on your DataReaders.
- Configure Your QoS Through Profiles: When designing the QoS that you will be using in your system, design your QoS as a series of profiles you can reuse across multiple applications. This reduces mistakes from hand-edited QoS profiles and makes it easier to reuse QoS tuning already done for individual applications.
RTI Connext DDS + Microsoft Rx = Reactive2
Sumant Tambe,Senior Software Research Engineer
The secret is out! Event-driven design is the foundation of building responsive, resilient and scalable distributed systems. Not surprised? … You are not alone. OMG Data Distribution Service (DDS) and perhaps many other distributed system middleware technologies have used event-driven design and delivered responsive, resilient, and scalable systems for decades. But things are somewhat different this time.
The secret lies in the way you think about managing events. This time, it’s different, simple and powerful: Reactive Programming. Reactive Programming allows systematic handling of events without resorting to the otherwise chaotic process known as the callback-hell. Microsoft Reactive Extensions (Rx) has emerged as a new technology to handle events as continuously changing data values and react to events by simply composing behaviors as you might build with Legos.
The researchers at RTI and Vanderbilt University got together and asked themselves the question: “What happens when two reactive technologies are combined together, i.e., RTI Connext DDS and Microsoft Rx?” Here’s what we found: callback-hell ends, logic flows, concurrency becomes your friend again, programs are fun to read and errors are no longer orphans.
Sound too good to be true? Check out the Rx4DDS.NET announcement. Rx4DDS.NET is a collaborative research project with Vanderbilt that brings Rx to the DDS world. The combination is so powerful that you can now write SQL-like queries on streaming DDS data. This is sometimes referred to as Complex Event Processing (CEP). We got so carried away with Rx4DDS that we implemented real-time sports analytics over sensor data gathered in a real soccer game. Here is the related paper on Reactive Stream Processing. You can download Rx4DDS.NET from the RTI Community Github repository.
We're Hiring!
Jan Van Bruaene, VP Engineering
| It is an exciting time at RTI. We have several new interns over the summer, both in Sunnyvale, CA, and in Granada, Spain. And several new engineers are joining us in the coming months. We are still looking for a few specific skills to join the team: security, research and system administration. The sysadmin/devops role is focused on the R&D infrastructure: - Be our virtualizer in chief, managing our virtualized build and test environments
- Sprinkle some magic performance dust on our performance lab running 10G Ethernet and Infiniband
- Learn how to speak Bamboo and Jira while maintaining our developer tools (mainly from Atlassian)
- Deliver best practices, reference architectures, case studies, and standards requirements to ease deployment.
- Automate, automate, automate! - make your job easy
We are looking for somebody who understands storage and has experience administering a variety of operating systems and setting up virtualized environments. Perhaps most importantly, this would be someone who loves figuring things out and enjoys working in a larger R&D team spread across multiple locations. |