org.apache.uima.collection.impl.cpm.container.deployer
Class VinciTAP

java.lang.Object
  extended by org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP

public class VinciTAP
extends java.lang.Object

Vinci Proxy to remote Cas Processor vinci service. This component is used for both local( managed) and remote ( unmanaged) Cas Processors. Its main purpose is to invoke remote APIs on Cas Processors running as vinci services. It serializes data contained in the Cas into XCAS and sends it to the service. It desiralizes data from XCAS returned from the service back into the Cas.


Constructor Summary
VinciTAP()
           
 
Method Summary
static CasData addKeysToDataCas(CasData dataCas, AFrame aFrame)
          Appends keys (types) from XCAS to provided CasData instance doing conversions of ':' in WF keys to '_colon_' and '-' to '_dash_' to enforce UIMA compliance.
 CasData[] analyze(CasData[] aCasList, ProcessTrace aPT, java.lang.String aResourceName)
          Main routine that sends requests to remote vinci services.
 CasData analyze(CasData aCas, ProcessTrace aPT, java.lang.String aResourceName)
          Performs Analysis of the CAS by the remote vinci service Cas Processor
 void batchProcessComplete()
          Let the remote service now that end of batch marker has been reached, the notification is one-way meaning the CPE does not expect anything back from the service.
 void collectionProcessComplete()
          Notify the remote service that the CPE reached end of processing.
 void connect(java.lang.String aServiceName)
          Connects to external service using service name as a way to locate it.
 void connect(java.lang.String aHost, int aPort)
          Connects the proxy to Cas Processor running as a vinci service on a given host and port number.
 ProcessingResourceMetaData getAnalysisEngineMetaData()
          Returns Cas Processor metadata as it is returned from the remote Cas Processor running as vinci service.
 java.lang.String getServiceHost()
          Returns host where the service is running
 int getServicePort()
          Returns port of the service this proxy is connected to
 java.lang.String getVNSHost()
          Returns VNS Host
 java.lang.String getVNSPort()
          Returns VNS Port
 boolean isConnected()
          Returns status of the vinci connection
 AFrame sendAndReceive(AFrame aFrame)
          Send a given Vinci Frame to the remote vinci service and return result
 void setContentTag(java.lang.String aContentTag)
          Defines subject of analysis
 void setKeys2Drop(java.lang.String[] aKeys2Drop)
          Defines types as array that will not be sent to the Cas Processor service
 void setTimeout(int aTimeout)
          Define the max time in millis the proxy will wait for response from remote service
 void setTimer(UimaTimer aTimer)
          Defines a custom timer to use for stats
 void setVNSHost(java.lang.String aVNSHost)
          Sets the VNS host this proxy will use to locate service
 void setVNSPort(java.lang.String aVNSPort)
          Sets the VNS port this proxy will use to locate service
 boolean shutdown(boolean shutdownService, boolean aDoSendNotification)
          Conditionally sends the shutdown request to managed (local) vinci service.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VinciTAP

public VinciTAP()
Method Detail

setContentTag

public void setContentTag(java.lang.String aContentTag)
Defines subject of analysis

Parameters:
aContentTag - - subject of analysis

setTimer

public void setTimer(UimaTimer aTimer)
Defines a custom timer to use for stats

Parameters:
aTimer - - custom timer

setKeys2Drop

public void setKeys2Drop(java.lang.String[] aKeys2Drop)
Defines types as array that will not be sent to the Cas Processor service

Parameters:
aKeys2Drop - - array of types excluded from the request

connect

public void connect(java.lang.String aHost,
                    int aPort)
             throws java.net.ConnectException
Connects the proxy to Cas Processor running as a vinci service on a given host and port number.

Parameters:
aHost - - name of the host where the service is running
aPort - - port number where the service listens for requests
Throws:
java.net.ConnectException

setTimeout

public void setTimeout(int aTimeout)
Define the max time in millis the proxy will wait for response from remote service

Parameters:
aTimeout - - number of millis to wait

connect

public void connect(java.lang.String aServiceName)
             throws ServiceConnectionException
Connects to external service using service name as a way to locate it.

Parameters:
aServiceName - - name of the service
Throws:
ServiceConnectionException

sendAndReceive

public AFrame sendAndReceive(AFrame aFrame)
                      throws ServiceException,
                             ServiceConnectionException
Send a given Vinci Frame to the remote vinci service and return result

Parameters:
AFrame - - Vinci Frame containing request
Returns:
AFrame - Frame containing result
Throws:
ServiceException
ServiceConnectionException

addKeysToDataCas

public static CasData addKeysToDataCas(CasData dataCas,
                                       AFrame aFrame)
                                throws java.lang.Exception
Appends keys (types) from XCAS to provided CasData instance doing conversions of ':' in WF keys to '_colon_' and '-' to '_dash_' to enforce UIMA compliance.

Parameters:
dataCas - - instance of CasData where the keys will be appended
aFrame - - source of keys (data)
Returns:
- modified CasData
Throws:
java.lang.Exception

analyze

public CasData analyze(CasData aCas,
                       ProcessTrace aPT,
                       java.lang.String aResourceName)
                throws ServiceException,
                       ServiceConnectionException
Performs Analysis of the CAS by the remote vinci service Cas Processor

Parameters:
aCas - - Cas to analayze
aPT - - performance trace object for stats and totals
aResourceName - - name of the Cas Processor
Returns:
- CAS containing results of analysis
Throws:
ServiceException - -
ServiceConnectionException

analyze

public CasData[] analyze(CasData[] aCasList,
                         ProcessTrace aPT,
                         java.lang.String aResourceName)
                  throws ServiceException,
                         ServiceConnectionException
Main routine that sends requests to remote vinci services. Each Cas in the list is placed in the request frame in its own DATA frame. For each Cas, this routine create a seperate DATA frame. The DATA frame contains types and data that are required by the annotator. For efficiency, the dropKeyList array can be defined with types that will be omitted from the DATA frame. These keys are not required by the annotator thus it is waste of bandwidth to include them in the request.

Parameters:
aCasList - - a list of Cas to send to service for analysis
aPT - - Process Trace object to aggrate time and stats
aResourceName - - name of the Cas Processor
Returns:
- List of Cas instances containing results of analysis
Throws:
ServiceException
ServiceConnectionException

getAnalysisEngineMetaData

public ProcessingResourceMetaData getAnalysisEngineMetaData()
                                                     throws ResourceServiceException
Returns Cas Processor metadata as it is returned from the remote Cas Processor running as vinci service.

Throws:
ResourceServiceException

batchProcessComplete

public void batchProcessComplete()
                          throws ResourceServiceException
Let the remote service now that end of batch marker has been reached, the notification is one-way meaning the CPE does not expect anything back from the service.

Throws:
ResourceServiceException

collectionProcessComplete

public void collectionProcessComplete()
                               throws ResourceServiceException
Notify the remote service that the CPE reached end of processing. Wait for response from the service before returning. This ensures that the request is accepted and the desired logic handling end of processing has completed.

Throws:
ResourceServiceException

shutdown

public boolean shutdown(boolean shutdownService,
                        boolean aDoSendNotification)
Conditionally sends the shutdown request to managed (local) vinci service. This routine should not terminate services deployed as remote (unmanaged). This routine does not verify that the service shut itself down. It does not even wait for response. It is up to the service to clean itself up and terminate.

Parameters:
shutdownService - - flag indicating if a shutdown command should be sent to the service
aDoSendNotification - - indicates whether or not to sent CollectionProcessComplete frame to service
Returns:
- true if shutdown message has been sent without error, false otherwise

isConnected

public boolean isConnected()
Returns status of the vinci connection

Returns:
- true if connection is valid, false otherwise

setVNSPort

public void setVNSPort(java.lang.String aVNSPort)
Sets the VNS port this proxy will use to locate service

Parameters:
aVNSPort - - vns port to use

setVNSHost

public void setVNSHost(java.lang.String aVNSHost)
Sets the VNS host this proxy will use to locate service

Parameters:
host - - name of the VNS host

getServicePort

public int getServicePort()
Returns port of the service this proxy is connected to

Returns:
- service port

getServiceHost

public java.lang.String getServiceHost()
Returns host where the service is running

Returns:
host name of the machine where the service is running

getVNSPort

public java.lang.String getVNSPort()
Returns VNS Port

Returns:
VNS port

getVNSHost

public java.lang.String getVNSHost()
Returns VNS Host

Returns:
VNS Host


Copyright © 2011. All Rights Reserved.