Data Distribution Service as an alternative to CORBA Notification Service for the Alma Common Software Jorge A. Avarias Alfaro (ALMA UTFSM group/NRAO)

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

ESO - Tokyo July, 2005 ALMA Common Software Training- Course Session 1b Distributed Systems G.Chiozzi.
COM vs. CORBA.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
CORBA - Common Object Request Broker Architecture.
22 May 2015Joe Hoffert Quality of Service Configuration DSML for the Data Distribution Service Joe Hoffert
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
PROGRESS project: Internet-enabled monitoring and control of embedded systems (EES.5413)  Introduction Networked devices make their capabilities known.
Middleware Technologies compiled by: Thomas M. Cosley.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM 2001) June 18, 2001 Designing and Optimizing a Scalable CORBA Notification.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Constructing Reliable Software Components Across the ORB M. Robert Rwebangira Howard University Future Aerospace Science and Technology.
CORBA Programming Using ACE/TAO
Common Object Request Broker Architecture CORBA. RMI is a simplified version of CORBA that does fairly well CORBA is all-singing and all-dancing Multiple.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Cloud MapReduce : a MapReduce Implementation on top of a Cloud Operating System Speaker : 童耀民 MA1G Authors: Huan Liu, Dan Orban Accenture.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Container-component model and XML in ALMA ACS Heiko Sommer (ESO), Gianluca Chiozzi (ESO), Klemen Zagar (Cosylab) and Markus Völter.
Wireless CORBA Richard Verhoeven. Content Quick Introduction to CORBA Wireless & Mobile Wireless CORBA Test Case Conclusions.
The ALMA Common Software: a developer friendly CORBA-based framework G.Chiozzi d, B.Jeram a, H.Sommer a, A.Caproni e, M.Pesko bc, M.Sekoranja b, K.Zagar.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
ALMA Common Software Basic Track Introduction to the ACS Framework.
6st ACS Workshop UTFSM ACS Course Component, Container, Lifecycle Management 6st ACS Workshop UTFSM, Valparaiso, Chile H. Sommer, G. Chiozzi.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Information Management NTU Interprocess Communication and Middleware.
Ramiro Voicu December Design Considerations  Act as a true dynamic service and provide the necessary functionally to be used by any other services.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application.
SPREAD TOOLKIT High performance messaging middleware Presented by Sayantam Dey Vipin Mehta.
Introduction GOALS:  To improve the Quality of Service (QoS) for the JBI platform and endpoints  E.g., latency, fault tolerance, scalability, graceful.
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
Abhishek Bachchan Vishal Patangia
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
ALMA Common Software Basic Track A walk through ACS functionality.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
FT-ERF Fault-Tolerance in an Event Rule Framework for Distributed Systems Hillary Caituiro-Monge, Graduate Student. Advisor: Javier Arroyo-Figueroa, Ph.D.
ICALEPCS’ GenevaACS in ALMA1 Allen Farris National Radio Astronomy Observatory Lead, ALMA Control System.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
ICALEPCS WE2.4-6I ALMA Common Software Status and Development G.Chiozzi a, A.Caproni a e, R.Cirami e,P.Di Marcantonio e,D.W.Fugate d, S.Harrington.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
ICALEPCS 2005 Geneva, Oct. 12 The ALMA Telescope Control SystemA. Farris The ALMA Telescope Control System Allen Farris Ralph Marson Jeff Kern National.
Garching - 15th - 19th January, 2007 ACS: status and latest development The ACS Team.
August 20, 2002 Applying RT-Policies in CORBA Component Model Nanbor Wang Department of Computer Science Washington University in St. Louis
1st ACS Workshop UTFSM, Valparaiso, Chile ACS Course The Big Picture of ACS H. Sommer, G.Chiozzi.
20 February 2016Joe Hoffert Quality of Service Configuration DSML for the Data Distribution Service Joe Hoffert
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
ESO - Garching 08 – 09 March, st ALMA Common Software Workshop ACS Container/Component Model.
ALMA Common Software Basic Track Component/Container Model and Lifecycle Management.
Discussion on oneM2M and OSGi Interworking Group Name: ARC Source: Jessie, Huawei, Meeting Date: Agenda Item:
1 CS590L Distributed Component Architecture Yugi Lee STB #555 (816) * This presentation is prepared based.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Towards a Generic Hardware Device Simulation Framework applied to Telescope Control Systems Matias Mora Klein Memoria para optar al título de Ing. Civil.
Design Patterns-1 7 Hours.
Common Object Request Broker Architecture (CORBA)
CORBA Alegria Baquero.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Interpreter Style Examples
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Wireless CORBA Richard Verhoeven.
Presentation transcript:

Data Distribution Service as an alternative to CORBA Notification Service for the Alma Common Software Jorge A. Avarias Alfaro (ALMA UTFSM group/NRAO) javarias@inf.utfsm.cl Presented by Gianluca Chiozzi (ESO) ICALEPCS 2009 – WEA006

Contents ALMA and ACS ACS Data Channel Data Distribution Service The prototype Tests Conclusion

Introduction

ALMA Common Software ACS is a software infrastructure for the development of distributed systems based on the Component/Container paradigm end-to-end: from data reduction to control applications common application framework and design patterns, not just libraries well tested software that avoids duplication make upgrades and maintenance reasonable common development environment and tools Open source (LGPL) Used by several projects Container Service Interface Comp Comp Container Lifecycle Interface: Init Run shutdown CORBA Orbs Services Manager Deployment configurations Other ACS services

ALMA Common Software ACS provides the basic services needed for object oriented distributed computing. Among these: Transparent remote object invocation Object deployment and location based o n a container/component model Distributed error and alarm handling Distributed logging Distributed events

ACS Data/Notification Channel Publisher/Subscriber mechanism. Asynchronous communication. Publisher doesn’t know about Subscribers. Subscriber doesn’t know about Publishers. Many to many communication. Based on CORBA Notify Service. Producer Consumer

CORBA Notify Service Publisher/Subscriber implementation with CORBA. Pull model (Pull Subscriber and Pull Consumer). Push model (Push Subscriber and Push Consumer). A broker (Notify Service) is responsible to deliver the messages. Message Filtering: Channels. Structured messages. Producer Consumer Producer Consumer

ACS Data/Notification Channel Based on CORBA Notify Service. Handles structured messages. Data type is defined in IDL file. Support set of Quality of Service properties. Uses CORBA Naming Services to make visible the channel. Provides: SimpleSupplier class SimpleConsumer class

The Problems with NS CORBA Notify Service always embeds the message as Any CORBA data type: Marshalling uses a lot of CPU time. Length of the message requires a lot of network bandwidth. CORBA Notify Service doesn’t scale very well. Centralized delivery. ACS Notification Channel lacks of late joining subscriber feature.

An alternative: Data Distribution Service OMG Open Standard (as well as CORBA) High performance Publisher/Subscriber specification (focused on Real-Time) Peer to Peer Resource Management through QoS policies. Entities: Publisher Data Writer Subscriber Data Reader Topic

Why DDS? Real data centric publisher/subscriber. Not just events! Data Distribution Service can do the same as CORBA Notify Channel. But… it could offer more features: Better performance Multicast transport support Can be configured to support late joining subscriber feature. Would be desirable to provide these features in ACS: DDS for ACS.

Objectives of the prototype To compare Data Distribution Service and CORBA Notify Service, trying to find a common abstraction, considering the functionality offered by the ACS Notification Channel API. Implement an ACS Notification Channel alternative based on OpenDDS (in C++), trying to maintain the actual ACS Notification Channel API. Set up a test suite including some measurement of throughput or other performance indicators.

Data Distribution Service for ACS DDS Notification Messaging API DDS specification only implements push model. Maps: SimpleSupplier in DDSPublisher SimpleConsumer in DDSSubscriber Offers a very similar API. Hide DDS complexity: Initialization of entities of DDS. Transport selection and initialization of OpenDDS.

Verification

Tests Scalability test Slow Consumer test Throughput test 1 Publisher. 1, 10, 20, 30, 50, 60, 75, 100 Subscribers. 1000 messages at 10 Hz. Slow Consumer test Several Subscriber and one Slow Subscriber. Throughput test 1 Subscriber. Message frequency: as fast as possible.

Scalability test results

Scalability test results

Scalability test results: Resource consumption Program Memory Usage (MiB) Number of Threads DDS Subscriber 4,8 12 NC Consumer 3,4 2 DDS Publisher (Container) 55,4 216 NC Supplier (Container) 3,9 7 DCPSInfoRepo 73 206 NotifyService 68,9 102

Throughput test Container crashes for memory exhaustion queuing undelivered messages with both implementations. Some values: The crash can be avoided in DDS Set correctly the QoS properties (History and Resources). DDS NS Message Received ~ 80.000 ~ 230.000 Maximum Latency [uS] ~ 2.500.000 ~ 35.000.000

Conclusions

Conclusion ACS has now a prototype DDS replacement for the CORBA Notify Service. We have performed a comparison between the two implementations: + Good performance and scalability + Good QoS options and granularity A lot of memory A lot of threads Interoperability and portability still limited The prototype is used for the E-ELT evaluation of ACS. Future Work Get from prototype to “production quality” Port all other ACS Services now using NS to DDS. Test and compare with RTI DDS and OpenSplice Test Multicast protocols. E-ELT

QuestionS? This work was supported by the ALMA-Conicyt Fund #31060008 For more details: http://www.eso.org/projects/alma/develop/acs Next ACS workshop: UTFSM Valparaiso, Chile November 2009 This work was supported by the ALMA-Conicyt Fund #31060008

Extra slides

Data Distribution Service Remember talk about domains

ACS Notification Channel features Hide as much as possible the CORBA complexity. Have three levels of message filtering Event Domain Event Type Channel Name Offers two simple classes: SimpleSupplier, Publisher class void publishData(T data) SimpleConsumer, Subscriber class void consumerReady()

DDS Conceptual Mapping Domain = 411 Event domain Topic can be used as Channel for DDS Parition “1” filter Parition “2” filter Data Type “a” Topic Data type “b” Topic Data type “c” Topic … Notification Channel Event Domain Event type Channel Where the QoS is done: NC on NotifyService DDS on participants Topics only support one data type

DDS Example Deployment DDSPublisher <DataType1> DDSSubscriber <DataType1> Tao Pluggable Transport (SimpleTCP) Data Distribution Service DCPSInfoRepo DDSPublisher <DataType2> DDSSubscriber <DataType2>

Solution Proposal: Class model

Data Definition: IDL file module DDS_SIMPLE_EXAMPLE{ const string CHANNEL_NAME = "simple_example"; #pragma DCPS_DATA_TYPE "DDS_SIMPLE_EXAMPLE::simpleMessage" struct simpleMessage{ unsigned long seqnum; };

Publisher DDS void SimpleExampleDDSImpl::sendMessage() { pub_p = new acsPublisher( DDS_SIMPLE_EXAMPLE::CHANNEL_NAME, component, [NC/DDS]); DDS_SIMPLE_EXAMPLE::simpleMessage m; m.seqnum=1; PUBLISH_DATA(pub_p, DDS_SIMPLE_EXAMPLE::simpleMessage, m); sleep(1); pub_p->disconnect(); delete pub_p; }

Subscriber void handlerFunction(DDS_SIMPLE_EXAMPLE::simpleMessage m, void *other) { std::cout << "Arrived message" << std::endl; } Void main() …. ddsnc::DDSSubscriber *sub_p=0; ACS_NEW_DDS_SUBSCRIBER(sub_p, DDS_SIMPLE_EXAMPLE::simpleMessage, DDS_SIMPLE_EXAMPLE::CHANNEL_NAME, &handlerFunction, (void *)0); sub_p->consumerReady(); ACE_Time_Value tv(100); client.run(tv); sub_p->disconnect(); delete sub_p;

Test Configuration Software: Performance Indicators: ACS 8 Release Candidate running on Scientific Linux 5.2 VMware Virtual Machine running on VMware Server 2. ACE version 5.6.5, provided as part of ACS 8 RC. TAO version 1.6.5, provided as part of ACS 8 RC. OpenDDS version 1.1, compiled in the virtual machine Performance Indicators: Message Trip Time (Latency) Jitter

Slow Consumer test results In ACS NC Notify Service memory usage raises Reliable QoS policy retains the messages not delivered. DDS have the same behavior But it can be solved setting correctly the QoS properties (History and Resources) In DDS implementation the “normal” subscribers don’t have delays.

OpenDDS Architecture

OpenDDS programming

ACS NC Structured Message

Usage of ACS Notification Channel

Technical Details OpenDDS availability as part of ACS. Compilation of OpenDDS with ACS. Modifications done to ACS Makefile OpenDDS processing. dcps_ts.pl Generated extra classes for type support.

Threads Management

Problems, Solutions and Alternatives DDS CORBA Compatibility Participants parameters required by OpenDDS DCPSInfoRepo Location Transport Configuration Configuration File Factories Participant Transport

Known Problems Threads and Container Resource consumption (threads) The participant factory and the transport factory are threads that cannot be stopped. Resource consumption (threads) For each participant in the connection, OpenDDS creates a new thread to establish the communication between the others participants. Requires a lot of memory in comparison of NC. Occasionally container crash When a subscriber finish after the component is deactivated

Acknowledgements ESO and the ALMA-Conicyt Fund #31060008 Heiko Sommer for his dedication and help guiding this work. Matías Mora and Rodrigo Tobar for their support. Thesis advisors: Horst von Brand and Javier Cañas. My family, my friends and the Computer Systems Research Group.