Master Worker

The Master Worker style of coordination may represent a single or a chain of calls from client programs to server side programs in an asynchronous fashion. It is the asynchronous equivalent of the existing synchronous 'call and return' style of coordination.

A Master Worker call syntax is similar to the 'call and return' syntax.

Syntax : agent | component.method where,
 * agent or component refers to an instance of type Agent or Component

Any invocation of a method declared in an Agent or Component definition automatically qualifies for a Master Worker call by a client.

public Agent MasterAgent {	public void setValue(int x); public int getValue; public void incrValue; }

Definition file : MasterAgent.indus

public class Master implements MasterAgent {	Context{ setServantType("USER"); }

public int m_value = 0;

public int getValue {		return m_value; }

public void setValue(int v)	{ m_value = v;	}

public void incrValue {		m_value++; }

public static void main(String [] args) {		try {			Master m = newType Master("mh1"); int value = m.getValue; // First Master Worker call System.out.println("value = " + value);

m.setValue(100); value = m.getValue; // Second Master Worker call System.out.println("value = " + value);

m.incrValue; value = m.getValue; System.out.println("value = " + value);

m.incrValue; value = m.getValue; System.out.println("value = " + value); }		catch (Exception e) 		{ e.printStackTrace; }		} }

Implementation file : Master.indus

Syntactic sugar is applied over the Master Worker style to derive other forms of coordination in Indus.

Next : Broadcast