Section 31.2. APPLICATION SCENARIO


31.2. APPLICATION SCENARIO

Consider a manufacturing plant where a large number of mobile devices, robots, and possibly "smart" artifacts (appliances for short) executes tasks to collaboratively manufacture goods, control quality, receive production schedules, and order sub-parts needed in the production process. The tasks the robots execute are broken down into basic (parametrizable) macros. Macros are available in the firmware of each robot and reflect its capabilities and functionality. They ensure a deterministic behavior of the robot (by taking into account input from various sensors). For example, to avoid relying on the precision of the motors, a macro may control the movements of a robot's wheels so that the robot follows a guidance line on the floor.

A simplified setting of this type is illustrated in Figure 31-1. Assume that quality problems have been detected in production hall H2. To identify the source of a drop of quality in the production process, it is required to continuously monitor all activities within H2 (messages received or sent by robots, service calls, macro executions, sensor inputs, etc.). With a conventional application design, the ability to react to changes is encoded in the appliance before it is deployed. Hence, the flexibility of the appliance is limited to what designers could foresee and what is reasonable to embed within the application. Thus, conventional design implies taking the appliance of interest offline to add the necessary functionality (logging in this case).

Figure 31-1. Mobile appliance traversing a production hall.


The form of application awareness we describe addresses this problem by allowing any mobile device that enters the production hall to be adapted on the fly. Consider a mobile appliance M located in production hall H1. At this point, it does not have the monitoring functionality needed in H2, as the type of logging needed for quality assurance could not be foreseen when M was initially deployed. Upon entering production hall H2, the application-aware production hall detects M's presence and sends a run-time extension e that adds the necessary monitoring functionality in M. Extension e modifies M's execution during its presence in H2 such that all relevant activities are recorded in a base station associated with H2 and used by the functionality in e. When M leaves H2, the monitoring extension is discarded. Fixed devices are treated accordingly: they are detected by H2 at deployment time, and the monitoring extension remains until the corresponding appliance is redeployed in another production hall or monitoring is no longer required. The list of extensions that can be used in a similar manner includes the following:

Control. In certain locations, one might want to change the execution of a robot's task. This change may be necessary when macros initially programmed to follow a simple guidance line in H1 encounter a forking in H2. Given the potential differences in geometry and external factors, adapting a robot task to a new location results in consistently changing the parameters of the macros under execution, interlacing the execution of existing macros with executions of other macros, or reacting to sensor events in a different way than initially foreseen. Because all these changes must be consistent, aspect-oriented programming is extremely well suited for expressing behavior-changing extensions.

Logging. In difficult or important situations, one may want to record all movements performed as well as all events detected by the robot sensors. That way, if an accident or failure occurs, one can replay a part of the sequence of movements to see if the failure can be reproduced or at least be better understood. This feature is particularly interesting if the failure is due to the interaction between different robots: the system can be instructed to feed the events previously captured by each robot's sensor and replay the sequence of movements of all robots at the right relative time, thereby reproducing the interaction between them.

Remote replication and coordination. When the precision of the robot hardware is high, it is possible to use the extension to monitor all the moves and feed these move operations to an identical robot in a remote location (or to a collection of identical robots in other locations). That way one can either duplicate the work or follow up on what is being done. It is also possible that the replication of the work takes place at a scale different from what is being done by the original robot. The only feature needed is the ability to amplify or reduce the extracted sequence of movements to adjust it to the new scale. Replication of movements may be further enhanced with coordination.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net