Скачать презентацию The Narada Broker A Flexible Messaging Infrastructure Rahim Скачать презентацию The Narada Broker A Flexible Messaging Infrastructure Rahim

5a18b71195319259222eb3ee5651ad5f.ppt

  • Количество слайдов: 45

The Narada. Broker: A Flexible Messaging Infrastructure Rahim Lakhoo (Raz) DSG Seminar 12 th The Narada. Broker: A Flexible Messaging Infrastructure Rahim Lakhoo (Raz) DSG Seminar 12 th April 2004

Outline • Introduction • Underlying Technologies – Java Messaging Service (JMS) • Overview of Outline • Introduction • Underlying Technologies – Java Messaging Service (JMS) • Overview of the Narada. Broker • Brokers Capabilities • Brokers Current Usages • Live Demo (screenshots) • Summary • Conclusions • Future Work 2

Introduction • Narada. Brokering was developed by Community Grids Lab at Indiana University • Introduction • Narada. Brokering was developed by Community Grids Lab at Indiana University • Distributed messaging infrastructure – Message orientated Middleware (Mo. M) – Notification framework • Originally designed to provide uniformed multicasting for supporting real-time collaboration via the publish/subscribe architecture • Narada. Brokering is defined as a network of cooperating brokers 3

JMS • Unified messaging infrastructure from Sun Microsystems • Support for messages containing Java JMS • Unified messaging infrastructure from Sun Microsystems • Support for messages containing Java objects • Provides guaranteed message delivery: – Once-and-only-once delivery semantics – Client acknowledge mode or transacted sessions can be used to ensure transmission • Used to provide Message Orientated Middleware • JMS domains can be classified as either: – Point-to-Point – Publish/Subscribe • Includes common API – email 4

JMS – Point-to-Point (PTP) • Point-to-Point messaging: – Concept of FIFO message queues – JMS – Point-to-Point (PTP) • Point-to-Point messaging: – Concept of FIFO message queues – Messages are addressed to a specific queue – Clients extract messages from the queue 5

JMS – Publish/Subscribe • A Topic is a JMS-managed object, which manages the message JMS – Publish/Subscribe • A Topic is a JMS-managed object, which manages the message flow from publisher to subscriber • Publish/Subscribe messaging: – Messages are addressed to a topic with a content hierarchy – Generally topics are anonymous and dynamic – Can provide the ability for software multicast via topics 6

JMS Topics • Topics can be published as – Tag pair value • Make=Ford, JMS Topics • Topics can be published as – Tag pair value • Make=Ford, Model=Focus, Colour=* – “/” separated string • /Uo. P/dsg/chat – Integer • 10 • JMS also handles topic sessions • JMS does not specify how to organise topics • Messages can be missed due to latencies when a subscriber subscribes to a topic 7

JMS Message • Header: – Contains ID – Used for routing messages • Properties: JMS Message • Header: – Contains ID – Used for routing messages • Properties: – Optional Header field – Extra Descriptions for the payload • Body: – – – Stream message – Java primitive types Map message – Tag value pairs Text message – String type Object message – Java object Bytes message 8

What JMS does not do • • Load balancing Fault tolerance Error notification Administration What JMS does not do • • Load balancing Fault tolerance Error notification Administration Security Wire protocol Message repository Language for creating message definitions 9

Narada. Broker • Narada. Brokering is a collection of cooperating brokers • Implementation of Narada. Broker • Narada. Brokering is a collection of cooperating brokers • Implementation of JMS (1. 0. 2 b compliant) • Event based messaging: – Events are time stamped messages • Asynchronous communications • Capable of supporting: – Grid services – Web Services – P 2 P – Audio/Video conferencing (Java Media Framework) • Publish/Subscribe architecture with XML based Topics 10

Narada. Broker continued • Supports multiple protocols: – – – – • • TCP/IP Narada. Broker continued • Supports multiple protocols: – – – – • • TCP/IP (blocking & non-blocking) UDP Multicast SSL HTTP RTP HHMS (PDA’s, mobile phones) Provides an interface to a reliable storage Compress/decompress messages (zlib) Capable of fragmenting large files (>1 GB) Supports JXTA interactions 11

Narada. Broker continued • Cluster based architecture: – Attempts to map the virtual network Narada. Broker continued • Cluster based architecture: – Attempts to map the virtual network to the physical network via cluster groups – Lowers the strain on the network infrastructure – Each broker is assigned a logical address e. g. [1. 1] • Can bypass firewalls and work across NAT’s or proxies: – Contains a transport probe that scans ports that are usable/open 12

NB Topology • Brokers are arranged hierarchically in clusters: – Cluster – Super-Cluster • NB Topology • Brokers are arranged hierarchically in clusters: – Cluster – Super-Cluster • Brokers each hold Broker Network Maps (BNM): – Used to calculates the cost for traversals across connections 13

Narada. Brokering 14 Narada. Brokering 14

Broker Locators • Broker Locators are used by clients to find Brokers to connect Broker Locators • Broker Locators are used by clients to find Brokers to connect to • The Broker Locator propagates the Brokers information to the client: – Hostname/IP – Listening port – Transport protocol • Client uses this information to transparently connect to the Broker • Clients may have connections to multiple Brokers • This provides load balancing 15

Broker Locators 16 Broker Locators 16

Profiles • Profiles at a node signify an interest in events which match certain Profiles • Profiles at a node signify an interest in events which match certain templates • Includes a constraint that events need to satisfy before being routed • Every profile has a unique ID • Each profile has a matching destination • This is generally considered as a subscription • Subscriptions are in a hierarchy which can potentially overload a super-cluster controller - solution is to add more controllers 17

Organisation & Routing • Client subscriptions stored in a hierarchy within the system: – Organisation & Routing • Client subscriptions stored in a hierarchy within the system: – Broker maintains client subscriptions – Cluster controller maintains broker subscriptions • Events received are matched (matching engine) against stored profiles and destinations are computed: – Cluster controller manages broker destinations – Broker manages client destinations • Each broker has a set of destinations, it computes the best destination based on broker hops 18

Organisation & Routing 19 Organisation & Routing 19

Event messaging 20 Event messaging 20

NB Matching Engines • Possibility for multiple matching engines at each node, depending on NB Matching Engines • Possibility for multiple matching engines at each node, depending on what needs to be supported • Different types of constraints can be used on subscriptions/profiles for matching: – String based Topics separated by “/” – Integer topics – Tag = value pairs – XPath queries – String based coupled with SQL like queries – Regular expressions 21

Types of Matching Engines • String based: – Separated by “/” e. g. /Uo. Types of Matching Engines • String based: – Separated by “/” e. g. /Uo. P/dsg/chat – Subscriptions to a topic does not include all sub-topics • String based coupled with SQL like queries: – First matches the string based topic – Second matches with SQL 92 like query against the events properties – Reduces amount of times SQL matches are calculated • Tag = value pairs: – “, ” separated pairs – Also allows for * type wildcard • Integer based 22

Types of Matching Engines • XPath based queries: – XPath query language searches, locates Types of Matching Engines • XPath based queries: – XPath query language searches, locates and identifies parts of an XML document – Searches for XML advertisements across the Broker network • Regular Expressions: – For text based content 23

Narada Transport Framework 24 Narada Transport Framework 24

NB transport framework • User Channels: – Applications interface with the broker – Supports NB transport framework • User Channels: – Applications interface with the broker – Supports the publish/subscribe architecture • Links: – Implements a data protocol – Different underlying transport protocol – Administration link negotiates best available communications protocol 25

Performance Monitoring • Performance monitoring: – Monitors links originating from a node – Displays Performance Monitoring • Performance monitoring: – Monitors links originating from a node – Displays a set of metrics: • Average delays • Round trip latency • Jitter • Loss rates • Throughput – The metrics are returned to a performance aggregator • The metrics are available either via the built in application or through the integrated web server • The performance data gathered is an XML document 26

Performance Aggregator 27 Performance Aggregator 27

Security Framework 28 Security Framework 28

Security Framework • KMC – Key Management Centre: – – – Includes Authorization module Security Framework • KMC – Key Management Centre: – – – Includes Authorization module Manages keys associated with entities and topics Ensures secure communications with entities via SSL Entities register their public key with the KMC Multi-KMC also being investigated • Comprises of two basic parts: – Authentication for all Publishers and Subscribers – Secured Publishing and Receiving • ACL’s are associated to topics published • Similar to X. 509 certificate chaining, KMC hierarchy designed to verify signatures 29

Security Framework • Supports different cryptographic algorithms with various different key sizes: – – Security Framework • Supports different cryptographic algorithms with various different key sizes: – – DES/3 DES AES RSA RC 2 • Designed to support: – JMS messages – JXTA messages – Audio/video conferencing • KMC only a prototype and thus currently is a centralised implementation instead of distributed 30

JXTA • JXTA stands for Juxtapose, meaning side-by-side • JXTA is a Peer-to-Peer protocol JXTA • JXTA stands for Juxtapose, meaning side-by-side • JXTA is a Peer-to-Peer protocol specification which defines a standard for the behavior JXTA peers • Six protocols define the JXTA platform: – Peer Resolver Protocol (PRP) allows peers to send search queries – Peer Discovery Protocol (PDP) allows peers to discover advertisements – Peer Information Protocol (PIP) allows peers to poll the status of another peer – Pipe Binding Protocol (PBP) allows peers to bind a pipe to a peer – Endpoint Router Protocol (ERP) allows peers to request routing information – Rendezvous Protocol (RVP), here peers subscribe to a propagation service 31

NB-JXTA • JXTA is included with the Narada. Broker • JXTA peers do not NB-JXTA • JXTA is included with the Narada. Broker • JXTA peers do not communicate with Narada. Brokers direct • Narada. Broker provides a JXTA proxy • This process is transparent to JXTA peers • Narada. Broker adds its own header to JXTA messages 32

NB-JXTA 33 NB-JXTA 33

NB Web Services • WS-Eventing: – Allows Web Services to subscribe to or accept NB Web Services • WS-Eventing: – Allows Web Services to subscribe to or accept subscriptions for event notification messages • WS-Reliable. Messaging: – Allows messages to be delivered reliably in the presence of software component, system or network failures • SOAP: – Support for SOAP messages will be provided in version 1. 0 of the Narada. Broker 34

NB Web Services 35 NB Web Services 35

NB Grid. FTP • Provides support for Grid. FTP transfers • Data from client NB Grid. FTP • Provides support for Grid. FTP transfers • Data from client stored in a local temporary file • Data in temporary file is then read and sent over the Narada. Brokering system to the endpoint • Temporary stores provide support for failures • Seems to be a prototype implementation 36

NB Grid. FTP 37 NB Grid. FTP 37

Screenshots Broker Connection made to another broker Node Address Request Distance calculation with hops Screenshots Broker Connection made to another broker Node Address Request Distance calculation with hops Command used to access Broker Operations available Link ID New logical address 38

Screenshot JMS Chat Link registration Initial Chat application connection Publishing Topic Subscribing Topic Conversations Screenshot JMS Chat Link registration Initial Chat application connection Publishing Topic Subscribing Topic Conversations between 3 clients across 3 brokers 39

Screenshots Video Transmitter Receiver Subscription to topic 40 Screenshots Video Transmitter Receiver Subscription to topic 40

Summary • JMS used for unified messaging and topics • Narada. Broker supports multiple Summary • JMS used for unified messaging and topics • Narada. Broker supports multiple protocols • Cluster based topology • Only has partial capabilities for bypassing firewalls • Only has a prototype security framework • Capable of video conferencing • Supports JXTA clients • Prototype support for Grid. FTP • Emerging Web Service support • Narada. Broker is still pre version 1. 0 41

Conclusions • Parts of the Narada. Broker has been hard coded for the Windows Conclusions • Parts of the Narada. Broker has been hard coded for the Windows OS, which hampers its portability • The Broker has the potential for bridging services • Firewalls still cause issues for the broker • Some stability issues are caused when links are abruptly terminated • Will the integration of Grid Services still be feasible considering GT 4 is based on Web Services? • Version 1. 0 is to be released soon, hopefully this will be more refined 42

Future work • Further investigation of the services provided by the Narada. Broker • Future work • Further investigation of the services provided by the Narada. Broker • Investigate the feasibility of Grid. P 2 P with the Narada. Broker • Collaborate with other universities to establish a UK testbed • Evaluate the Narada. Broker across a Wide. Area-Network (WAN) 43

Acknowledgements • University of Portsmouth • Members of the DSG • Community Grids Lab Acknowledgements • University of Portsmouth • Members of the DSG • Community Grids Lab 44

Links • JMS - http: //java. sun. com/products/jms/ • JXTA - http: //www. jxta. Links • JMS - http: //java. sun. com/products/jms/ • JXTA - http: //www. jxta. org/ • Narada. Brokering – http: //www. naradabrokering. org/ • JMF - http: //java. sun. com/products/javamedia/jmf/index. jsp • Grid. FTP http: //www. globus. org/datagrid/gridftp. html 45