Nemesys - Thales Opus
Download
Report
Transcript Nemesys - Thales Opus
www.thalesgroup.com
Nemesys workshop
An introduction to Nemesys
By Patrick Stephens
Thales Underwater Systems– 13 April 2015
Introduction
2 /
Agenda
Nemesys
Why do we use it?
What is it?
How does it work?
Why is it not used in GVA?
OPUS
What is it?
Comparisons with MyCCM
Questions
Handout provided
Online links also available
Thales Underwater Systems– 13 April 2015
www.thalesgroup.com
OPUS
An overview of OPUS
By Patrick Stephens
Thales Underwater Systems– 13 April 2015
What is OPUS?
4 /
Open Platform for (Underwater) Systems
Common middleware products
Open-source – in use by other companies
Reuse and common evolution
Toolbox approach
Only use what you need
Common middleware
Pick and choose what you want to use
Thales Underwater Systems– 13 April 2015
www.thalesgroup.com
Nemesys
An introduction to Nemesys
By Patrick Stephens
Thales Underwater Systems– 13 April 2015
Problems
6 /
Inconsistent interface definitions
Late detection leads to large costs
Hard to change
Defined by architect not individual engineers
Re-inventing the wheel
Multiple implementations of same comms layer
Slightly different assumptions leads to bugs
Unable to reuse applications
What are the problems with previous approaches?
Thales Underwater Systems– 13 April 2015
What is Nemesys?
7 /
Communications layer
Independent of technology
Multi-language support
Scalable
Dynamic
Consistent simple API
Communications layer
Part of OPUS
Thales Underwater Systems– 13 April 2015
Why use Nemesys?
8 /
“It just works”
Simple
Consistent
S_WatchDataNavigator line = allocLine();
Factory.getInstance().createServer(this,
line.setMins(mins);
"WatchData", technology
);
line.setSecs(secs);
Nemesys.getInstance().manage(this)
sendLine(line);
Factory.getInstance().createClient(this,
"WatchData", S_WatchDataNavigator
technology );
line = getLine();
Nemesys.getInstance().manage(this)
Long mins = line.getMins();
Long secs = line.getSecs();
Simple to use
Thales Underwater Systems– 13 April 2015
Reuse
9 /
Common communications layer
Reuse of communication layer
Reuse of application modules (even between projects)
Most people do not care how data is sent
Still allow for full control at a lower level if required
Consistent approach everywhere
Thales Underwater Systems– 13 April 2015
History
10 /
Initial CORBA-only implementation
UK need for socket implementation
French need for DDS implementation
Proposals for more technologies
Based on French CORBA product
Evolved into multiple technologies
Thales Underwater Systems– 13 April 2015
Why not in GVA?
11 /
Decision taken early on
GVA is DDS-only
Lack of knowledge about Nemesys
Existing tools later discarded
GVA tooling is now based on Nemesys
DDS plugin and Java Rhapsody wizards
Using IDL defined externally
No real technical reason
Thales Underwater Systems– 13 April 2015
How to use Nemesys?
12 /
Define data model
Generate
Wizards and other automation
Use
UML or text
API generated in code and Rhapsody
Demo
Only need to define data model
Simple to then generate and use
Thales Underwater Systems– 13 April 2015
13 /
Thales Underwater Systems– 13 April 2015
Questions
www.thalesgroup.com
Nemesys workshop
End
Thales Underwater Systems– 13 April 2015