re 12.51 BPEL process flow. The BPEL process flow is shown in Figure 12.51. The process implies several invocations of the VELabService, each enclosed in its own block (scope) as seen in the diagram above: Switch configuration (Figure 12.52) Multimeter configuration Source configuration Reading the measurement from the multimeter Tele-Measurement Services for m-Learning setSwitchConfiguration computeLPTCommand InvokeVeLabService Figure 12.52 Switch configuration block. The embedded Java activity called "computeLPTCommand" is used to calcu- late the value of the character that will be written on the LPT port. This calculation is based on the input parameter values as seen in the following snippet: bpelx: exec name = "computeLPTCommand" language = "java" version = "1. 5" > < ! [CDATA [short value = 0; // switch configuration String SWO = ( (Element) getVariableData ("inputVariable" "payloa d" /client : TPodit tProcessRequest/client:SWo") ) getFirstChild ( ) getNodeValue () ; value += SWO .equalsIgnoreCase ("on") ? 1 : 0; String swl = ( (Element) get :VariableData ("inputVariable" "payload", "/client PoditProcessRequest/client SW1") ) getFirstChild() getNodeValue (); value += sw1.equalsIgnoreCase ("on") ? 2 : 0; Service Delivery Platforms <scope name= "SwitchConfiguration"s <sequence> setSwitchConfiguration [2009/02/03 18:43:13] Updated variable "switchConfigurationCommand"less <switchConfigurationCommand: <part kmins:xsi="http://www.w3.org/2001/XMLSchema-instand name='parameters"> <executeCommand xmlns="http://velab.service/"> <instrumentDescriptor>visa://192.168.67.101/LPT1</instrumentDescriptor> <command/> </executeCommand> </part> </switchConfigurationCommand> computeLPTCommand [2009/02/03 18:43:13] bpelx:exec executed InvokeVeLabService [2009/02/03 18:43:18 Invoked 2-way operation "executeCommand" on partner "VeLabService" less <messages> (switchConfigurationCommand> <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance name="parameters"> <executeCommandxmlns="http://velab.service/"> <instrumentDescriptor>