Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes...

33
Slide 1 JDM 11/10/2008 MIT Lincoln Laboratory A Real-Time Publish-Subscribe Control Plane for a COTM Node HPEC 24 September 2008 J. Darby Mitchell Software Architect Wideband Tactical Networking MIT Lincoln Laboratory This research was sponsored by the Department of the Army under Air Force Contract FA8721-05-C-0002. Opinions, interpretations, conclusions, and recommendations are those of the authors and are not necessarily endorsed by the United States Government. MITLL Presentation #63P-08-26

Transcript of Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes...

Page 1: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

Slide 1JDM 11/10/2008

MIT Lincoln Laboratory

A Real-Time Publish-Subscribe Control Plane for a COTM Node

HPEC24 September 2008

J. Darby MitchellSoftware Architect

Wideband Tactical NetworkingMIT Lincoln Laboratory

This research was sponsored by the Department of the Army under Air Force Contract FA8721-05-C-0002. Opinions, interpretations, conclusions, and recommendations are those of the authors and are not necessarily endorsed by the United States Government.

MITLL Presentation #63P-08-26

Page 2: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 2JDM 11/10/2008

Outline

• Introduction– Assumptions– Requests

• Problem Statement – Project Vision and System Context– System Architecture– Software Architecture Problem

• Software Architecture– Quality Attributes and Architectural Styles– Architectural Reasoning– Quality Attribute Tradeoffs– Runtime View

• Design and Implementation– Designing Topics– Topic Mapping– Handling Exceptions

• Conclusion– Lessons Learned– Acknowledgements

Page 3: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 3JDM 11/10/2008

Outline

• Introduction– Assumptions– Requests

• Problem Statement – Project Vision and System Context– System Architecture– Software Architecture Problem

• Software Architecture– Quality Attributes and Architectural Styles– Architectural Reasoning– Quality Attribute Tradeoffs– Runtime View

• Design and Implementation– Designing Topics– Topic Mapping– Handling Exceptions

• Conclusion– Lessons Learned– Acknowledgements

Page 4: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 4JDM 11/10/2008

Assumptions and Requests

• Assumptions:– You know what MIT Lincoln Laboratory does– You recognize the value of buying vs. building software– You know that there’s no such thing as a “silver bullet”– You are familiar with the concepts of call-return middleware– Many of you are familiar with real-time publish-subscribe

• Requests– If you’d like to discuss any of these assumptions, please talk

with me offline– Please hold your questions until the end of the talk

Page 5: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 5JDM 11/10/2008

Outline

• Introduction– Assumptions– Requests

• Problem Statement – Vision and System Context– System Architecture– Software Architecture Problem

• Software Architecture– Quality Attributes and Architectural Styles– Architectural Reasoning– Quality Attribute Tradeoffs– Runtime View

• Design and Implementation– Designing Topics– Topic Mapping– Handling Exceptions

• Conclusion– Lessons Learned– Acknowledgements

Page 6: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 6JDM 11/10/2008

Vision: Evolution of Terminal to Node

• Milstar On-The-Move (MOTM) Terminal – 3-axis positioner (MITLL)– Multi-band antenna and feed (44/30/20 GHz)– Blockage mitigation technology for COTM– IP over Milstar capability– Single link capability

COTM Node

Milstar

LDR/MDR

CDL

Commercial (Ku)

WGS (Ka)

GBS

DVB

• COTM Node– Manage multiple links– Compose links from

modular HW/SW components

HMMWVWLAN WLAN

DismountMOTM Terminal

– Facilitate integration of “stovepipe” COTS radios

– Dynamic routing for cooperative networking

– Support for insertion of additional radios

Page 7: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 7JDM 11/10/2008

COTM Node: Phase 0 Data Plane

COTM Node

Milstar

LDR/MDR

HMMWVWLAN WLAN

Dismount

COTM Node

Page 8: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 8JDM 11/10/2008

COTM Node: Phase 0 Data Plane

COTM Node

GBS

DVB

HMMWVWLAN WLAN

Dismount

COTM Node

Page 9: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 9JDM 11/10/2008

Static Links

Reconfigurable Links

System Architecture Concept

NetworkAgent

Black Network

RF

Non-reconfigurable link

Modem

Modem

user data (IP/RF)node controlaperture pointing

HAIPERedNetwork

PhysicsPackage

Page 10: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 10JDM 11/10/2008

Software Architecture Problem

Key

Component

Invocation

Notification

Key Enabling Hardware Decisions:– Separate control and data planes– Switched Gigabit Ethernet CompactPCI backplane– System boards are Intel x86 SBCs running Linux– Modem boards shall be PPC running VxWorks

Key Enabling Hardware Decisions:– Separate control and data planes– Switched Gigabit Ethernet CompactPCI backplane– System boards are Intel x86 SBCs running Linux– Modem boards shall be PPC running VxWorks

RFI

Page 11: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 11JDM 11/10/2008

Outline

• Introduction– Assumptions– Requests

• Problem Statement – Project Vision– System Context– System Architecture– Software Architecture Problem

• Software Architecture– Quality Attributes and Architectural Styles– Architectural Reasoning– Quality Attribute Tradeoffs– Runtime View

• Design and Implementation– Designing Topics– Topic Mapping– Handling Exceptions

• Conclusion– Lessons Learned– Acknowledgements

Page 12: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 12JDM 11/10/2008

Quality Attributes and Architectural Styles

• Essential Qualities– Predictability: Ability to anticipate task scheduling requirements– Timeliness: Ability to meet real-time constraints– Reliability: Ensures delivery of critical control data

• Desirable Qualities– Modularity: Facilitates decomposition and encapsulation– Extensibility: Facilitates addition of components (i.e. functionality)– Simplicity: Component development should be straightforward

• Architectural StylesStyle Example Design PatternsCall-return Client-server, forwarder-receiverImplicit Invocation GoF Observer, Publish-subscribe

Page 13: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 13JDM 11/10/2008

Publish-Subscribe

• Subscribers register to collect issues to a particular Topic• Publishers register to distribute issues to a particular Topic• A Topic acts as a GoF Mediator to decouple Publishers and

Subscribers

Subscriber

struct Position {double latitude;double longitude;double altitude;

}

“VehiclePosition”

TopicPublisher S1

Issue 1longitude = -71.225

latitude = 42.447

altitude = 44.8

Page 14: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 14JDM 11/10/2008

Publish-Subscribe

SubscriberPublisher

Publisher

Publisher

Subscriber

Subscriber

Subscriber

Topic

• May be zero or more publishers per topic• May be zero or more subscribers per topic

Page 15: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 15JDM 11/10/2008

Architectural Reasoning

• Ideal for one-to-many or many-to-many relationships

• Promotes predictability• Data-centric (data identifier)• No assumption of existence• Data source always initiates

communication

Result: decoupled interaction

Publish-Subscribe• Ideal for one-to-one and many-

to-one relationships• Promotes reliability• Object-centric (object identifier)• Assumption of existence• Data source may or may not

initiate communication– forwarder-receiver– client-server

Result: highly coupled interaction

Call-return

Page 16: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 16JDM 11/10/2008

Quality Attribute Tradeoffs

• Timeliness• Predictability• Modularity• Extensibility

• Reliability• Simplicity

Publish-Subscribe Call-return

Page 17: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 17JDM 11/10/2008

Real-time Publish-Subscribe with NDDS

• The Network Data Distribution Service is a real-time publish- subscribe middleware developed by Real-Time Innovations, Inc.

• NDDS was designed for distributed real-time systems• Provides a number of QoS settings to customize the collection

and distribution of issues• At the time we selected the product, the OMG DDS specification

was still being finalized• RTI was a significant contributor to the OMG DDS specification

effort• RTI had plans to refactor NDDS to conform to the DDS spec• RTI had already published their RTPS wire protocol

Partition

Writer Data LifecycleOwnership Strength

Reader Data LifecycleOwnership

User DataLiveliness

Topic DataLifespan

Group DataLatency Budget

Transport PriorityHistory

Time-Based FilterEntity Factory

Resource LimitsDurability

ReliabilityDestination Order

PresentationDeadlineQuality of Service Parameters

Page 18: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 18JDM 11/10/2008

Software Architecture: Runtime View

Key

Vehicle Position & VelocitySignal Strength

Pointing Angle

Component

Invocation

Notification

Pub-sub Domain

Page 19: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 19JDM 11/10/2008

Outline

• Introduction– Assumptions– Requests

• Problem Statement – Project Vision– System Context– System Architecture– Software Architecture Problem

• Software Architecture– Quality Attributes and Architectural Styles– Architectural Reasoning– Quality Attribute Tradeoffs– Runtime View

• Design and Implementation– Designing Topics– Topic Mapping– Handling Exceptions

• Conclusion– Lessons Learned– Acknowledgements

Page 20: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 20JDM 11/10/2008

Designing Topics

• Samples – periodic, independent measurements of the environmentExamples:

– Vehicle position and velocity– Link state– Modem signal strength– Satellite location and velocity– UTC Time

• Events – sporadic, relative changes in system stateExamples:

– Link formation and teardown– Status messages– Error messages– Parameter changes– Routing changes

RELIABILITY: BEST EFFORT

HISTORY: KEEP LAST

RELIABILITY: RELIABLE

HISTORY: KEEP ALL

Page 21: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 21JDM 11/10/2008

Topic Mapping

Key

Component

Sample Topic

Event Topic

Publication

Subscription

Page 22: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 22JDM 11/10/2008

Topic Mapping: Samples

SamplesS1 – UTCTimeS2 – AHRSLocationS3 – AHRSDisplacementS4 – AHRSVelocityS5 – AntennaReferenceAngleS6 – AcquisitionMetricS7 – AntennaAnglesS8 – DTRSamplesS9 – LDREnergyMetric

Key

Component

Sample Topic

Event Topic

Publication

Subscription

Page 23: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 23JDM 11/10/2008

Topic Mapping: Events

EventsE1 – DeviceStatusE2 – TrackCommandE3 – AntennaCommandE4 – DTRParamsE5 – DeviceCommandE6 – LDRCommandE7 – RIMCommand

Key

Component

Sample Topic

Event Topic

Publication

Subscription

struct DeviceStatus {string deviceId;int statusType;int code;string msg;

};

struct DeviceStatus {string deviceId;int statusType;int code;string msg;

};

struct DeviceCommand {string deviceID;int command;

};

struct AntennaCommand {string deviceID;int command;double az;double el;

};

Page 24: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 24JDM 11/10/2008

Outline

• Introduction– Assumptions– Requests

• Problem Statement – Project Vision– System Context– System Architecture– Software Architecture Problem

• Software Architecture– Quality Attributes and Architectural Styles– Architectural Reasoning– Quality Attribute Tradeoffs– Runtime View

• Design and Implementation– Designing Topics– Topic Mapping– Handling Exceptions

• Conclusion– Lessons Learned– Acknowledgements

Page 25: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 25JDM 11/10/2008

Lessons Learned

• Using publish-subscribe:– Made component development slightly more complicated– Greatly facilitated software integration– Enabled us to successfully defer some components, while

still making progress on the project– Is not as straightforward when you are marshalling

parameters with commands• Respect the invariants of the architectural style:

– NodeController could be killed and later restarted with no detrimental impact to system in steady state

– Debug topics could be published for later use with negligible impact on system performance

• Actively managing consistency of QoS settings was essential

• Having a commercial vendor to delegate middleware support concerns to was very helpful

Page 26: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 26JDM 11/10/2008

Acknowledgements

• Sponsor: PM WIN-T, Ft. Monmouth

• Group Leaders: Dr. Marc Zissman and Scott Sharp

• Systems Engineer: Dr. Andrew Worthen

• RF team: Dr. Jim Vian, John Murphy, Ted O’Connell

• Hardware team: Steve Pisuk, John Delisle, Jason Hillger

• Software team: Darby Mitchell, Curran (Nachbar) Schiefelbein, Marc Siegel, Marie Heath

• Testing team: Dr. Mark Smith, Ted O’Connell

Page 27: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 27JDM 11/10/2008

Current Work

• TSAT Reference Terminal (TRT)– A joint project with Group 64 based on TRUST-T– A COTM Node that is based on the Software Communications

Architecture (SCA) for software defined radios.– The SCA mandates the use of CORBA middleware, so DDS will not

be used.• Network and Link Emulation Testbed (NLET)

– A distributed network emulation testbed– Uses DDS for a distributed real-time context simulation and real-time

dynamic control of link emulation.

Page 28: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 28JDM 11/10/2008

References

• Mitchell et. al. “Applying Publish-Subscribe to COTM Node Control”, MIT Lincoln Laboratory Journal, Volume 16, No. 2, December 2006.http://www.ll.mit.edu/news/journal/journal.html

• L. Bass, P. Clements and R. Kazman, Software Architecture in Practice, Addison Wesley, 1998.

• Garlan, D. and M. Shaw, Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996.

[email protected]

Page 29: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

Slide 29JDM 11/10/2008

MIT Lincoln Laboratory

Backup Slides

Page 30: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 30JDM 11/10/2008

Reasoning About Connectors

• Reasoning about connectors vs. components• Consider several dimensions:

– synchronous vs. asynch– cardinality (1 : 1 vs. 1 : n)

• Ignore implementation concerns

Publish-subscribe =

Distribution + Implicit Invocation + Collection

Page 31: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 31JDM 11/10/2008

System Architecture: Connection View

Eth

erne

t

Page 32: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 32JDM 11/10/2008

Test Harness

Node ControllerTest Case

Driver and Adapters

• There is a one to one relationship between Drivers and Adapters• Node Controller only interacts with an Adapter through its Driver• A Driver caches Status and Error updates from its Adapter• Adapters may interact with other Adapters

Adapter

Logger

Commands

Parameters

Status

Errors

Driver

Page 33: Applying Publish-Subscribe to the Control Plane of a COTM Node · 2015-07-21 · Quality Attributes and Architectural Styles – ... The Network Data Distribution Service is a real-time

MIT Lincoln LaboratorySlide 33JDM 11/10/2008

Exception Handling

• Based on concepts from online article:Agarwal, Sachin, “C++ Exception-Handling Tricks for Linux”, IBM Software Labs, Feb 2005.http://www-128.ibm.com/developerworks/linux/library/l-cppexcep.html?ca=dgr-lnxw1fExceptionTricks

• Added mechanism to throw exceptions up to C++ from existing C code• Added mechanism to translate POSIX signals (e.g. SEGV) to C++ exceptions

--------------------------- Caught std::exception ---------------------------------------- at [ll/common/obj/x86-linux/TerminateHandler.cpp:44] ------------Type: SIGSEGVText: Received signalWhere: LL::Exceptions::SignalTranslator::SignalTranslator(int) atll/common/obj/x86-linux/SignalHandler.cpp:122Trace:(0) LL::Exceptions::SignalTranslator::SignalTranslator(int) [SignalHandler.cpp:125](1) LL::Exceptions::SignalHandler::handler(int) [SignalHandler.cpp:102](2) [libpthread.so.0](3) RtiThreadSleep [libutilsip.so](4) NddsUtilitySleep [libndds.so](5) LL::NDDS::Adapter::enterMainLoop(double) [NDDSAdapter.cpp:92](6) main [RimNDDSAdapter_main.cpp:96](7) __libc_start_main [libc.so.6](8) _start [??:0]

NDDS

AdapterLogger

------------------------- Caught LL::Exceptions::RTE ------------------------------------- at [ll/devices/obj/x86-linux/RimNDDSAdapter.cpp:99] -------------Type: CriticalErrorText: /dev/ttyS2 is not readableWhere: virtual void LL::SYS::SerialHWInterface::open() atll/sys/obj/x86-linux/SerialHWInterface.cpp:195Trace:(0) LL::Exceptions::RTE::RTE(LL::Exceptions::RTE::RTETypeEnum,

std::string const&, std::string const&) [RTE.cpp:32](1) LL::SYS::SerialHWInterface::open() [SerialHWInterface.cpp:195](2) LL::SYS::SerialHWInterface::binaryInvoke(std::vector<unsigned

char, std::allocator<unsigned char> > const&, int) [SerialHWInterface.cpp:128](3) LL::Devices::Rim::isOscillatorLocked() [Rim.cpp:86](4) LL::Devices::RimNDDSAdapter::sendDeviceStatus() [RimNDDSAdapter.cpp:99](5) LL::NDDS::Adapter::toggleDummy(bool) [NDDSAdapter.cpp:77](6) main [RimNDDSAdapter_main.cpp:95](7) __libc_start_main [libc.so.6](8) _start [??:0]

---------------------------------- rethrown ----------------------------------

E

E

[DeviceStatus/rim0] rim0 DS_ERROR EC_CRITICALERROR(exceptionMsg=Type: CriticalError Text:/dev/ttyS2 is not readable Where: virtual voidLL::SYS::SerialHWInterface::open() atll/sys/obj/x86-linux/SerialHWInterface.cpp:195guid=rim0)

=================================================================WTN Node Controllernode0 : spiral1

-----------------------------------------------------------------

node0>-> rim0: Type: CriticalErrorText: /dev/ttyS2 is not readableWhere: virtual void LL::SYS::SerialHWInterface::open() atll/sys/obj/x86-linux/SerialHWInterface.cpp:195

Node Controller