Title: iBus Ein Software Bus fr Java Komponenten
1iBus - Ein Software Bus für Java Komponenten
- Dr. Silvano Maffeis
- SoftWired AG, Zürich
- maffeis_at_softwired.ch
2Trends
- The Real-Time Enterprise
- Competitive advantage by increasing speed of
business activity - Immediately process changes in information
- Componentware
- Distributed information systems, software
composition - JavaBeans, ActiveX, CORBA
- Ubiquitous computing
- Intelligent watches, mobile phones, PDAs, home
appliances - Exchange events via infrared, satellite and
cellular channels
3Need Middleware which is ...
- Component based
- Platform independent
- Light-weight
- Flexible and event-oriented
- Extensible at development-time and at run-time
(!) - Pure Java Software Bus
4Works like Radio Transmission...
Station A
Station B
The Ether
Radio Channels
Tuner 2
Tuner 1
5Publish/Subscribe Communication
subscribe (SUN) subscribe (AAPL)
subscribe (SUN)
publish (AAPL, 29.2) publish(AAPL, 29.3)
Intranet
subscribe (AAPL) subscribe (SUN) publish(SU
N, 43.0) publish(SUN, 42.7)
subscribe (AAPL)
subscribe (AAPL) subscribe (SUN)
6Differences to CORBA and RMI
- Group communication vs. point-to-point
- Channel subscription vs. resolving references
- Spontaneous networking, plug-and-play
- Self-describing event objects vs. static IDL
interfaces - Lose coupling, no import of IDL interfaces
- Software medium abstraction
7Hub-and-Spoke Architecture
- Employs a network centric broker application
- All events are passed through the broker
TCP
TCP
- Maintains subscriptions
- Distributes events
Broker
TCP
TCP
TCP
8Multicast Bus Architecture
- A fully distributed and scalable architecture
- No broker processes
- Events are transmitted by IP multicast
9IP Multicast Details
- IEEE 802 LANs (Ethernet, Token Ring, FDDI)
support multicast and broadcast - A low-level software bus
- Most efficient dissemination of information
- IP Multicast uses hardware multicast
- Class D IP addresses (224.0.0.0 to
239.255.255.255) - 11 mapping into Ethernet addresses
10IP Multicast Example
mrouted 130.80.51.1 130.80.52.1
send (datagram, 226.1.1.1) 130.80.51.10
IGMP
IGMP
Subnet 130.80.51.0
Subnet 130.80.52.0
recv (226.1.1.1) 130.80.51.12
recv (226.1.1.1) 130.80.51.11
11Products
- Iona OrbixTalk (www.iona.com) (C, multicast)
- TIBCO ObjectBus (www.tibco.com) (C, multicast)
- Talarian SmartSockets (www.talarian.com) (C,
hs) - VisiBroker Events (www.inprise.com) (Java, hs)
- Marimba Castanet (www.marimba.com) (Java, hs)
- iBus (www.softwired.ch) (Java, multicast)
12SoftWired iBus
- Combines the advantages of Java and of the
Software Bus model - Multicast Bus architecture fully distributed
- Hub-and-spoke also supported
- Extensible TCP, IP Multicast, encryption,
compression, - Light-weight 100k library, 300k heap space
13What You Get
- iBus consists of a programming library (JAR file)
and of utility applications - The library provides classes and methods to
- Open communication channels for transmission
- Subscribe an interest in communication channels
- Pushing events (Java objects) into channels
- Pulling events through channels (like RMI)
- Track failures
- Installation
- Copy iBus JAR file
- Set CLASSPATH variable and go!
- java iBus.util.talker
14iBus Channels and URLs
- Channels are named by iBus URLs such as
- ibus//226.1.1.1/financial/quotes/SUN
- ibus//pluto.sun.com/updates/jdk
- Both reliable IP multicast and TCP channels
- Multicast used mainly inside Intranets
- (Secure) TCP channels can be established for
routing iBus events between Intranets
15Protocol Stack Framework
- iBus API separate from transport layers
- Other middleware products are black boxes
- iBus Protocol Stack framework to
- customize of retransmission delays etc.
- add new communication protocols (e.g., infrared,
satellite) - include new quality of services (e.g., special
purpose encryption, different reliable multicast
protocols) - Gray Box approach
16Protocol Stack Framework (cont.)
Receiver Objects
Receiver Objects
FIFO
ZIP
Protocol Stack
Protocol Stack
NAK
REACH
CONTEXT
...
IPMCAST
17Sample Talker Application
import iBus. public class Talker public
static void main (String argv) throws
Exception // create an iBus protocol
stack for reliable multicast Stack stack
new Stack (Reliable") // create an
iBus URL for the destination channel
iBusURL url new iBusURL ("ibus//226.1.2.3/finan
cial/quotes") // open the channel
stack.registerTalker(url) // create
a Posting to hold a quote string Posting
posting new Posting ()
posting.setLength(1) posting.setObject(0,
new String(SUN 42.7)) // multicast
the quote through the iBus channel denoted by
url stack.push (url, posting)
18Sample Listener Application
import iBus. // The listener
application public class Listener public
static void main (String argv) throws
Exception Stack stack new Stack
(Reliable") QuoteReceiver
receiverObject new QuoteReceiver ()
iBusURL url new iBusURL ("ibus//226.1.2.3/finan
cial/quotes") stack.subscribe (url,
receiverObject) stack.waitTillExit()
// A listener class to receive
quotes class QuoteReceiver implements
iBus.Receiver public void dispatchPush
(iBusURL source, Posting p) // to
display the quote string
System.out.println ("QuoteReceiver got a quote
" (String) p.getObject(0))
19Distributed Information Systems
WallStreetWeb
Event Producer
Event Producer
iBus Gateway
Filter
Filter
iBus Software Medium
Event Consumer
Event Consumer
Gateway
Gateway
Gateway
20Stand-alone Applications
iBus Software Medium
21Vehicle Communication System
Maps etc.
Naming
iBus Software Medium
22iBus Status
- Core product of SoftWired AG
- Public review releases since early 1997
- Tested on NT, Win95, Solaris, Linux, (AIX)
- Projects (Financial) information systems,
multimedia - Technical support and consulting services
- Software at http//www.softwired.ch/ibus
23Summary
- Trends the real-time enterprise, componentware,
ubiquitous computing, ... - Need A software medium
- Software bus advantages
- Technical fault-tolerance, efficient
dissemination of events, spontaneous networking
(like JINI) - Design lose coupling of components, flat
architectures, extensibility and maintainability - iBus Combines the advantages of software buses,
Java, and of protocol composition