ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM 2001) June 18, 2001 Designing and Optimizing a Scalable CORBA Notification.

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
OneBridge Mobile Data Suite Product Positioning. Target Plays IT-driven enterprise mobility initiatives Extensive support for integration into existing.
A component- and message-based architectural style for GUI software
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
CORBA - Common Object Request Broker Architecture.
Persistent State Service 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Lecture 23: Software Architectures
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Computer Science Scalability of Linux Event-Dispatch Mechanisms Abhishek Chandra University of Massachusetts Amherst David Mosberger Hewlett Packard Labs.
Performance Management 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
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.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
GOVERNMENT SERVICES INTEGRATION INDUSTRY SOLUTION.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
A. Dworak BE-CO-IN, CERN. Agenda 228th June 2012  Sum up of the previous report  Middleware prototyping  Transport  Serialization  Design concepts.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
26 Sep 2003 Transparent Adaptive Resource Management for Distributed Systems Department of Electrical Engineering and Computer Science Vanderbilt University,
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
An Introduction to Software Architecture
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
1 Chapter 2. Communication. STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered Protocol But some other protocols.
1 06/00 Questions 10/6/2015 QoS in DOS ECOOP 2000John Zinky BBN Technologies ECOOP 2000 Workshop on Quality of Service in Distributed Object Systems
Wireless Access and Terminal Mobility in CORBA Dimple Kaul, Arundhati Kogekar, Stoyan Paunov.
October 8, 2015 Research Sponsored by NASA Applying Reflective Middleware Techniques to Optimize a QoS-enabled CORBA Component Model Implementation Nanbor.
(Business) Process Centric Exchanges
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Work Flows Done By Sendhil Annamalai Sanghamitra Das Nandini T. Gopinath Sanjeev U.N. Sunil B Varghese.
ICALEPCS’ GenevaACS in ALMA1 Allen Farris National Radio Astronomy Observatory Lead, ALMA Control System.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Electronic Payment Systems (1)
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
Middleware Services. Functions of Middleware Encapsulation Protection Concurrent processing Communication Scheduling.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
CS 5150 Software Engineering Lecture 16 Program Design 3.
1 Chapter 2. Communication. STEMPusan National University STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered.
CORBA: Object Adapter, Services, Inter-ORB Protocols - Balaprasuna Chennupati.
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
OpenSAF Technical Overview Mario Angelic Technical Co-Chair OpenSAF Project June 4 th, 2009.
Design Patterns-1 7 Hours.
LOCO Extract – Transform - Load
Transparent Adaptive Resource Management for Middleware Systems
Ch > 28.4.
Harjutus 3: Aünkroonne hajussüsteemi päring
Inventory of Distributed Computing Concepts
An Evolution of QoS Context Propagation in
An Introduction to Software Architecture
Chapter 5 Architectural Design.
Presentation transcript:

ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM 2001) June 18, 2001 Designing and Optimizing a Scalable CORBA Notification Service Pradeep Gore, Ron Cytron Department of Computer Science, Washington University, Saint Louis Doug Schmidt, Carlos O’Ryan Electrical and Computer Engineering, University of California, Irvine

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Overview CORBA Notification Service –CORBA Event Service and drawbacks –Structured Events, Filtering and QoS properties. Design Challenges –Handling multiple event, supplier and consumer types uniformly. –Efficiently propagating different event types to different consumers. –Minimizing interference between channel participants. –Fairness in Event Processing –Optimizing the performance of Any's. –Footprint reduction. –Customizing for particular deployment environments. Performance Measurements –Event Channel Scalability (per consumer throughput). –Effect of different thread configurations on consumer throughput. –Filtering overhead. Concluding Remarks

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service CORBA invocation Standard "CORBA" method invocations result in synchronous execution of an operation provided by an object Both requestor (client) and provider (server) must be present Client blocks until operation returns Only supports uni-cast communication

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service CORBA Event Service For many applications, a more decoupled communication model between objects is required. (e.g. publish-subscribe) asynchronous communication with multiple suppliers and consumers.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Common Event Service Collaborations

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Benefits of the OMG Event Service Anonymous consumers/suppliers –Publish and subscribe model Group communication –Supplier(s) to consumer(s) Decoupled communication –Asynchronous delivery Abstraction for distribution –Can help draw the lines of distribution in thesystem Abstraction for concurrency –Can facilitate concurrent event handling

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Notification Service Extends Event Service Filtering –Consumers can specify arbitrarily complex filtering constraints in Extended TCL (Trader Constraint Language). Structured Events –carry filtering and QoS parameters that influence the delivery of payload data to its destination. Sharing subscription information –Subscriptions and publications are visible to participants. QoS properties –Allows suppliers, consumers administrators of event channels to configure QoS properties such as reliability, priority, buffer ordering and timeliness on a per-channel, per-proxy or per-event basis.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Component Structure of the CORBA Notification Service

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Structured Events Defines a standard data structure into which a wide variety of event messages can be stored. Fixed event header contains type information - –Domain (e.g.Telecom, Health Care, Financial) –Type ( e.g. Communication Alarm, VitalSigns, StockQuote) –Event Name (e.g. heartrate, ECG reading) Variable header has per event QoS properties as (name, value) pairs. Event Body has filterable body fields that are used by filters, and the payload data.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Example use case of Notification Service

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Design Challenges

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Challenge 1: Handling Multiple Event, Supplier and Consumer types uniformly Context –Events can have different representations - e.g. Any, Structured Sequence or custom –Corresponding Consumers and Suppliers can have different representations e.g. StructuredConsumer Problem –Event Channel must propogate events in one form to consumers that require it in another form. –Do not want to convert to a cannonical format or make many copies. –For similar IDL interfaces, do not want to duplicate code in implementation.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Solution1 : Adapter Pattern Adapter converts the interface of a class to another interface that a client expects. Adapter object implements a Target interface and delegates operations to the Adaptee. Notify_Event = target interface Any_Event, Structured_Event = Adapters CORBA::Any, CosNotification::StructuredEvent = Adaptee

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Challenge 2: Efficiently propagating different event types to different consumers Context –The event channel can receive events that have to be dispatched to consumers that accept another type of event. E,g, Any event to Structured consumer. Problem –Different event types have to be propagated to different types of receiving consumers.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Solution 2: Visitor pattern Visitor allows to represent an operation to be performed on the elements of an object structure “ Double Dispatching ” –Channel invokes dispatch_event method that in turn invokes push_event on the event.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Challenge 3: minimizing “interference” between channel participants Context –Event Channel must receive requests, apply filtering and dispatch events to consumers. –Some suppliers might not want to be blocked in a CORBA 2-way while event channel delivers the event to consumers. –Filter evaluation might be a lengthy operation (e.g. A remote filter that needs to consult a database) –A consumer might be arbitrarily slow hence causing the event channel to block in the dispatching 2-way Problem –A reasonable implementation should strive to minimize this “interference” between channel participants.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Solution: 3, Active Object pattern Active object pattern decouples method execution from method invocation. Events and operations required on them are encapsulated as command objects. An enqueuing thread places events in the queue as per the buffering policy. Worker thread(s) dequeue each event and applies the operation.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Challenge 4: Ensuring fairness in event processing Context –At worst, the event processing overhead is a maximum of 4 filters and the time to deliver to consumer. –Though events are queued according to priority, a long winded event processing phase can starve other events in the queue from making any progress. Problem –Event processing should be broken up into different stages to ensure fairness.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Solution 4: Command Object Pattern A command object encapsulates a request as an object, thereby allowing parameterization of different requests. Filter processing, subscription lookup and event dispatching are encapsulated as command objects.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Challenge 5: Optimizing the performance of Anys Context –A CORBA compliant Notification Service must be able to process events containing Anys. –An Any is an expensive data type that can have many levels of nesting. E.g. an Any that contains a sequence of Anys and so on. –The ORB demarshalling engine makes copies of the entire data buffer used to represent the Any. Problem –Any intensive CORBA services such as Notification can benefit from reduced data copies of this expensive type.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Solution 5: Reference Counting A reference counted object can be shared by multiple objects and destroyed when it is not in use. Client applications rather than the ORB can be make to release a ref. counted Any. Very well suited for Notification as the service itself does not modify the event. As the event can be logically multicast to multiple recipients, the ownership can be shared via a reference count.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Other design challenges Footprint Reduction –A use case might want a subset of the Notification Service. –The builder pattern can be used to make the service “composable” by users. Customizing event channels for particular deployment environments. –A developer might want to extend the service implementation. –Need a way to specify options and properties for a configuration –The Component Configurator pattern decouples the behavior of component services from the time the service is configured into an application.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Performance measurements Experimental Testbed QuadCPU PC with 400MHz pentiumII processors Linux , GCC TAO , all optimizations enabled.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Event Channel Scalability

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Effect of Thread configuration 2 consumers, 1 supplier “slow” consumer has a 1 sec. delay in push. Case 1: reactive Case 2: 2 threads, 1 shared queue. Case 3: Thread an queue per proxy supplier.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Filtering overhead Filter attached to Consumer Admin, 2 dispatching threads. Filtering drops average throughput of 15% and picks up slightly by 2% with 2 more dispatching threads.

Pradeep Gore Designing and Optimizing a Scalable CORBA Notification Service Concluding remarks Notification Service allows decoupled, anonymous communication between consumers and suppliers. –Filtering and QoS properties Suitable Design patterns and reusable framework components were utilized to implement TAO’s Notification Service. Critical path of event propagation was optimized. Configurable and extensible implementation.