iBus - Ein Software Bus für Java Komponenten: iBus - Ein Software Bus für Java Komponenten Dr. Silvano Maffeis
SoftWired AG, Zürich
maffeis@softwired.ch
Trends: Trends 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
Need: Middleware which is ...: Need: 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
Works like Radio Transmission...: Works like Radio Transmission... Tuner 2 Tuner 1 Station A Station B “The Ether” Radio Channels
Publish/Subscribe Communication: subscribe (“SUN”);
subscribe (“AAPL”); subscribe (“SUN”); subscribe (“AAPL”); subscribe (“AAPL”);
subscribe (“SUN”);
publish(“SUN”, 43.0);
publish(“SUN”, 42.7); publish (“AAPL”, 29.2);
publish(“AAPL”, 29.3); subscribe (“AAPL”);
subscribe (“SUN”); Intranet Publish/Subscribe Communication
Differences to CORBA and RMI: Differences 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
“Hub-and-Spoke” Architecture: “Hub-and-Spoke” Architecture Employs a network centric broker application
All events are passed through the broker Maintains subscriptions
Distributes events Broker TCP TCP TCP TCP TCP
“Multicast Bus” Architecture: “Multicast Bus” Architecture A fully distributed and scalable architecture
No broker processes
Events are transmitted by IP multicast
IP Multicast Details: IP 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)
1:1 mapping into Ethernet addresses
IP Multicast Example: IP Multicast Example Subnet 130.80.51.0 send (datagram, 226.1.1.1)
130.80.51.10 recv (226.1.1.1)
130.80.51.12 recv (226.1.1.1)
130.80.51.11 Subnet 130.80.52.0 IGMP IGMP mrouted
130.80.51.1
130.80.52.1
Products: Products Iona OrbixTalk (www.iona.com) (C++, multicast)
TIBCO ObjectBus (www.tibco.com) (C, multicast)
Talarian SmartSockets (www.talarian.com) (C++, h&s)
VisiBroker Events (www.inprise.com) (Java, h&s)
Marimba Castanet (www.marimba.com) (Java, h&s)
iBus (www.softwired.ch) (Java, multicast)
SoftWired iBus: SoftWired 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
What You Get: What 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
iBus Channels and URLs: iBus 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
Protocol Stack Framework: Protocol 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
Protocol Stack Framework (cont.): Protocol Stack Framework (cont.) Receiver Objects Receiver Objects Protocol Stack Protocol Stack IPMCAST REACH NAK FIFO ZIP CONTEXT ...
Sample Talker Application: Sample 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/financial/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); } }
Sample Listener Application: Sample 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/financial/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));
}
};
Distributed Information Systems: Distributed Information Systems iBus Software Medium Event
Producer Event
Producer Event
Consumer Event
Consumer Gateway Gateway iBus
Gateway Filter Filter Gateway WallStreetWeb
Stand-alone Applications: Stand-alone Applications iBus Software Medium
Vehicle Communication System: Vehicle Communication System iBus Software Medium Maps etc. Naming
iBus Status: iBus 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
Summary: Summary 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