IOS Release 0.3
|
Download SALSA release 0.7.0
SALSA |
|
Download the latest version of
IOS: Compiled Jar:
ios0.3.jar
Source:
ios0.3src.tar.gz |
|
Add salsa/src and
ios/src or the jar files to your CLASSPATH. |
How to use IOS to dynamically
reconfigure your applications
IOS v0.3
supports currently two virtual network topologies for application load
balancing and reconfiguration: a cluster-to-cluster topology and a
peer-to-peer topology. The steps to run you applications on either topology
are outlined below.
Running IOS with the Peer-to-Peer
(P2P) configuration:
|
Start a naming server in one of
the machines in your network
java wwc.naming.WWCNamingServer
|
|
Start a peer
server. Peer servers are used as a bootstrapping mechanism to allow peer IOS
agents to discover other peers when they join the IOS network. You can start
as many peer servers as you wish.
java
-Dport=<port number> -Didentifier=io/peerServer resources.PeerServer
|
|
Start an IOS
agent in any machine that you want to participate in the IOS p2p network.
The JVM argument Dconnection specifies the UAL of a peer server.
java -Dconnection=rmsp://machine1.wcl.cs.rpi.edu:7000/io/peerServer
theater.IOTheater 2000
|
|
Now your network
is configured with IOS agents. You can launch any IOS ready application in
one of the machines that is part of the IOS network.
|
Running IOS with the
Cluster-to-Cluster (C2C) configuration:
The C2C
configuration consists of a set of clusters that are connected in a
peer-to-peer way. Every cluster has a cluster manager that is responsible
for intra-cluster load balancing. Every peer runs a delay sensor to monitor
the inter-network latencies between the peer clusters.
Inter-cluster
load balancing is performed between the different clusters when necessary to
improve the overall performance of the running applications.
|
First you need to
start a WWC Naming Server in one of the machines in your network.
|
java wwc.naming.WWCNamingServer
|
On each cluster in
your network, start a manager. A manager can be started with a list of peer
managers. You need to have the Universal Actor Locator (UAL) of every peer,
which specifies the location of the peer manager (Example: rmsp://machine1.cs.rpi.edu:
4040/ where machine.cs.rpi.edu is the IP of the peer and 4040 is the port it
is listening to). Refer to the SALSA tutorial for more information about UAL.
The JVM arguments Dport and Didentifier indicate the port number of the
manager and the name of the manager respectively. |
java
-Dport=<port number> -Didentifier=io/peerServer
ntsC2C.peerserver.PeerServer <peer1UAL> <peer2UAL> …
|
Start a delay
sensor on each manager. Delay sensors use the default port number 5001. |
java ntsC2C.pslb.DelaySensor
|
On each machine in
your cluster, start an IOS agent (IOTheater). The JVM argument Dconnection
specifies the UAL (the location) of the manager of this cluster. The last
argument specifies the port number to be used with this agent. |
java -Dconnection=rmsp://machine.cs.rpi.edu:4040/io/peerServer
ntsC2C.IOTheater <port number>
|
After you configure
all your clusters with IOS agents and managers, your network is ready to start
reconfiguring your applications. Launch your application in one of the
machines that are part of the IOS network. |
Make you application IOS ready:
|
The current
version of IOS supports only SALSA applications. Future releases will
support other programming languages. |
|
To make your
SALSA application IOS ready, all actors in your application need to extend
AutonomousActor (see
Node.salsa
for an example). |
|
To run your application on the
P2P configuration, import the core.language package. |
|
To run your application on the
C2C configuration, import the ntsC2C.core.language package. |
import
ntsC2C.core.language.*;
|
|
|
|
|
|