examples.wslauncher2
Class WebserviceLauncherImpl

java.lang.Object
  extended byde.fhg.igd.semoa.service.AbstractService
      extended byexamples.wslauncher2.WebserviceLauncherImpl
All Implemented Interfaces:
Service, WebserviceLauncher

public class WebserviceLauncherImpl
extends AbstractService
implements WebserviceLauncher

This service launches an agent via webservice. The agents migrates to the first host found via vicinity and invokes the webservice method specified by the given parameters web service url, method name and method parameters. Publish -class examples.wslauncher2.WebserviceLauncherImpl -key ${WhatIs:WEBSERVICE_LAUNCHER2} Publish -key ${WhatIs:WEBSERVICE_LAUNCHER2} \; -launch http://localhost:8000/vesuv/services/IhkBenachrichtigung "Test" 12345 http://localhost:8000/vesuv/services/IhkBenachrichtigung notifyIhk Test 12345

Version:
$Id: WebserviceLauncherImpl.java 1913 2007-08-08 02:41:53Z jpeters $
Author:
C. Nickel

Field Summary
private static String ADDITIONAL_EXCLUDES
          Additional package prefixes which shall not be imported into the agent
private static String AGENT_
          The class of the agent which shall be launched
private  Map syncmap_
          The syncmap_ is needed to coordinate the webservices and the agents.
private  long TIMEOUT
          Timeout for each thread to wait for the agent's return.
private static int TOKEN_LENGTH
          Length of the token which is used to synchronize agent and webservice.
 
Fields inherited from class de.fhg.igd.semoa.service.AbstractService
REV_POSTFIX, REV_PREFIX
 
Fields inherited from interface examples.wslauncher2.WebserviceLauncher
WHATIS, WS_NAME
 
Constructor Summary
WebserviceLauncherImpl()
          Constructor
 
Method Summary
 String author()
          Returns the name of the author of the service.
 String info()
          Returns the informative string which should describe the service's essence in a sentence.
 void launch(String wsurl, String method, String[] param)
          This method generates a token and stores it in the agent's properties as well as in the syncmap_.
static void main(String[] argv)
           
 void response(String answ, String token)
          Checks if the token is a key in the syncmap.
 String revision()
          Returns the revision number of this class as a string.
 
Methods inherited from class de.fhg.igd.semoa.service.AbstractService
checkDependencies, dependencies, docs, doPrivileged, doPrivileged, getACC, getEnvironment, majorVersion, minorVersion, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TOKEN_LENGTH

private static int TOKEN_LENGTH
Length of the token which is used to synchronize agent and webservice. The token is a random string.


AGENT_

private static String AGENT_
The class of the agent which shall be launched


ADDITIONAL_EXCLUDES

private static String ADDITIONAL_EXCLUDES
Additional package prefixes which shall not be imported into the agent


TIMEOUT

private long TIMEOUT
Timeout for each thread to wait for the agent's return.


syncmap_

private Map syncmap_
The syncmap_ is needed to coordinate the webservices and the agents. When several webservices are running it ensures that the agent gives his response to the right one. The keys in the syncmap_ are the different tokens which are also stored in the properties of the agent. The values are the answers reported by the agents.

Constructor Detail

WebserviceLauncherImpl

public WebserviceLauncherImpl()
Constructor

Method Detail

launch

public void launch(String wsurl,
                   String method,
                   String[] param)
This method generates a token and stores it in the agent's properties as well as in the syncmap_. It launches the agent named in AGENT_. Webservice and agent are synchronized via the token. To combine the request with the answer, the answer is assigned to the token in the syncmap_.

Specified by:
launch in interface WebserviceLauncher
Parameters:
wsurl - the url of the webservice which shall be called by the agent
method - the method of the webservice which shall be called
param - the parameters which are needed for a call of this method
See Also:
WebserviceLauncher.launch(String, String, String[])

response

public void response(String answ,
                     String token)
Checks if the token is a key in the syncmap. The method then stores the answer under this key and notifies the waiting webservice.

Specified by:
response in interface WebserviceLauncher
Parameters:
answ - answer from the agent
token - token for the synchronization of the agent and the webservice launcher

info

public String info()
Description copied from class: AbstractService
Returns the informative string which should describe the service's essence in a sentence.

Specified by:
info in interface Service
Specified by:
info in class AbstractService
Returns:
the String with the service's short description.

author

public String author()
Description copied from class: AbstractService
Returns the name of the author of the service. The format to be used should be John Doe <jdoe@zilch.net>.

Specified by:
author in interface Service
Specified by:
author in class AbstractService
Returns:
the String with the author's name.

revision

public String revision()
Description copied from class: AbstractService
Returns the revision number of this class as a string. This class provides default implementations of methods majorVersion(), minorVersion based on the assumption that this method returns a revision string as generated by rcs(1) for the template "$Revision: 1.7 $/$Date: 2007-08-08 04:41:53 +0200 (Wed, 08 Aug 2007) $".

Specified by:
revision in class AbstractService

main

public static void main(String[] argv)
                 throws Exception
Throws:
Exception


Copyright © Fraunhofer Gesellschaft. All Rights Reserved.