introduction

2

Click here to load reader

Upload: jerome-chapman

Post on 03-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

Processing an Information Object (IO). JBI Client 1 publishes an ImageInfo object 2. PubCatcher converts XML to C++ binary and sends a DDS publication to local brokers and other JBI server’s PubCatchers 3. PubCatcher on JBI Server 2 sends a DDS publication to brokers on its local DDS Domain - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction

IntroductionGOALS:

To improve the Quality of Service (QoS) for the JBI platform and endpoints

E.g., latency, fault tolerance, scalability, graceful degradation

Includes QoS of interactions JBIendpoint

APPROACH:

Build on QoS-aware middleware

Examined Java Message Service (JMS) and Real-Time Java (e.g., RTSJ)

Currently using OMG Data Distribution Service (DDS)

Completed work: Demonstrate feasibility of proposed architecture

IDL generation from supported XML schemas

Prototype of XML IO conversion

DDS predicate generation from supported XPath predicates

Potential next steps:

Automate generation of XML IO conversion code

Automate compilation of generated source code

Dynamically load generated code

Evaluate expressability of XML schema and XPath predicates, as used by JBI, when converted to IDL and DDS predicates

PubCatcher

Broker#1

Broker#2

Disseminator (s)

PubCatcher

Broker#1

Broker#2

JBI Client 4(subscriber)

IOType: ImageInfo

JBI Client 1(publisher)

IOType: ImageInfo

JBIServer 1

XMLC++ binary

LegendJBI Client 3(subscriber)

IOType: ImageInfo

JBI Client 2(subscriber)

IOType: SARInfo

Broker #1 in each JBI Server is servicing clients subscribing to ImageInfo objects

Predicate Match

Predicate Mismatch

1

2

2

3

4

5

6

JBIServer 2

1. JBI Client 1 publishes an ImageInfo object

2. PubCatcher converts XML to C++ binary and sends a DDS publication to local brokers and other JBI server’s PubCatchers

3. PubCatcher on JBI Server 2 sends a DDS publication to brokers on its local DDS Domain

4. JBI Client 4’s predicate doesn’t match

5. Broker converts back to XML to send to Disseminator

6. Disseminator forwards publication to JBI Client 3

Disseminator (s)

Processing an Information Object (IO) Questions/Challenges:

Can important pieces of JBI be implemented with DDS?

DDS does not include centralized brokering

DDS does not include archival data (a limit to queries)

Can better QoS properties be attained with DDS?

Note: DDS QoS parameters useful such as Deadline, Reliability, Latency Budget, Resource Limits, etc.

Original Proposed JBI/DDS Architecture

Bandwidth Savings: Transmitting C++ binary data rather than XML

Brokering Savings: Parse an IO once and do most predicate evaluation in DDS

JBI/DDS Architecture Implementation

Introduction of New Information Object Type

New IO Type

Parse XML Schema

Generate IDL (Interface Definition Language) structure

Compile into DDS-compatible C++ code

Generate XML to C++ conversion code

Generate C++ toXML conversion code

XMLSchema

Generatedobject code

Compile

JBI Client Pub JBI Client Sub

JBI Client Pub JBI Client Sub

JBI Server (s)(Using DDS)

......

Difficulties

Security – dynamic code generation

Aggressive application of DDS

Interim experiment:

The 100X JBI uses “JBI Connectors” to connect multiple 100X servers

Apply DDS in a less aggressive manner

See right panel

Page 2: Introduction

The 100X JBI Connector • Executes alongside 100X JBI servers • Connects multiple 100X JBI servers

Above: Three 100X JBI servers and their connectors.

The DDS/JBI Connector• Candidate scheme for integration• TAO DDS is utilized between JBI servers• The DDS code is transparent to the JBI servers

and JBI clients

• Providing QoS-enabled dissemination between multiple JBI servers and compression of JBI IOs

• The dashed connections between the DDS/JBI Connectors and the DCPSInfoRepo are part of the TAO DDS architecture

• All JBI IO types are represented with just one DDS message type and, currently, one DDS topic.

• Performance results (latency) were obtained for the 100X Connector, the DDS/JBI Connector with compression, and the DDS/JBI Connector without compression

– Message type of approximately one kilobyte in size– Most of the latency can be attributed to network

communication time for both the 100X and DDS/JBI Connector and not to the overhead of the connectors

Above: Three 100X JBI servers and DDS/JBI connectors.

TAO DDS

• Currently supports five of the 22 QoS policies defined in the DDS specification

• History/Durability– Whether samples are discarded by DDS after

being sent to all known subscribers or if a certain number of samples is kept to send to late-joining subscribers

– Verified with a three-node configuration experiment to allow a new Connector or a restarted Connector to get a snapshot of the past

• Liveliness– Supports the Automatic setting, which indicates that

DDS should periodically poll participants at a configurable interval

– When an SSH tunnel is broken or a DDS/JBI Connector exits, the DDS components on the nodes are notified within the lease duration. Notification is also given to the DDS components when the DDS/JBI Connector which was previously not reachable is again reachable (the SSH tunnel is restored and/or the DDS/JBI Connector restarts).

– One major issue identified: there is no mechanism within the current JBI with which the DDS/JBI Connector can communicate to indicate liveliness information. That is, the DDS/JBI Connector has no way of notifying the JBI that a node has gone down or reappeared.

• Reliability and Resource Limits: – Only the use of TCP transports with Reliability as

Reliable ensured message delivery. Other settings resulted in samples being dropped in cases of heavy load for tests (or error message indicating that the maximum blocking time has been exceeded).

• Later renamed to OpenDDS