MODULE "io" CORBA OMNIBROKER sole "InputOutput"
/* this is the general io-megamodule that allows input and output for text-based data. The data may be structured over several hierarchies. As the default format for exchanging data between megamodules contains type and name for each data-element, the io-megamodule has no problem to display data correctly. */
METHOD io.ask(IN text, IN value, RES result) /* prompt user for data */
METHOD io.write(IN text, IN value) /* return data to user */
PARAM io.value OPAQUE
/* default-data containing name, type and default-values of the data to be asked for or name, type, and values of data to be displayed */
PARAM io.result OPAQUE
/* datablob containing user input; types and names are equal to the ones in the parameter io.value, values may be equal or changed by user */
PARAM io.text STRING /* prompt presented to user during I/O */
 

MODULE "RoutePlan" CORBA ORBIX sole "RoutePlanModule"
/* module takes two cities, and returns routes between those cities */
METHOD RoutePlan.AllRoutes (IN Cities, RES Route, RES NoRoutes, RES RoutesList)
PARAM RoutePlan.Cities OPAQUE /* data containing cities */
PARAM RoutePlan.Route OPAQUE REP /* one possible route between cities, successive extracts of this parameter within one invocation will return all the routes */
PARAM RoutePlan.RoutesList OPAQUE /* a list of all the possible routes */
PARAM RoutePlan.NoRoutes INT /* number of routes found */
 

MODULE "RouteCost" CORBA ORBIX sole "RouteCostModule"
/* module takes a route and some cargo (goods), and returns the cost of transporting the goods along that route */
METHOD RouteCost.OneRouteCost(IN Route, IN Goods, RES RouteCost)
PARAM RouteCost.Route OPAQUE /* a route (between cities) */
PARAM RouteCost.Goods OPAQUE /* goods transported along Route */
PARAM RouteCost.RouteCost OPAQUE /* cost to send goods along Route */
 

MODULE "RouteChoose" CORBA ORBIX sole "RouteChooseModule"
/* module takes several routes and returns the best route, based on the decision criterion */
METHOD RouteChoose.BestRoute(IN RouteCosts, IN Criterion, RES BestRoute)
/* choose best route from among RouteCosts */
METHOD RouteChoose.AddOneRouteToSet(IN OneRoute, OUT Set)
/* add one route cost to RouteCosts */
PARAM RouteChoose.RouteCosts OPAQUE /* list of route costs */
PARAM RouteChoose.Criterion OPAQUE /* criterion to pick bect route */
PARAM RouteChoose.BestRoute OPAQUE /* best route, based on criterion */
PARAM RouteChoose.OneRoute OPAQUE /* one route to add to RouteCosts */
PARAM RouteChoose.Set OPAQUE /* set of routes */
 

MODULE "CmathS" JAVA sole "SimpleMathChaims"
/* provides simple mathematics */
METHOD CmathS.ADD (IN arg1, IN arg2, RES res)
/* constraint: arg1, arg2 and res have to be of same type */
PARAM CmathS.arg1 INT, REAL, DATETIME
PARAM CmathS.arg2 INT, REAL, DATETIME
PARAM CmathS.res INT, REAL, DATETIME