Hello,

We are working in a project where we want to provide cross platform NLP
text processing with UIMA-AS processing. So our goal is to generate a
Delegate and add it to the delegates generated by UIMA-AS. UIMA-AS
generates services and the services endpoint names (or destinations) can be
provided to a UIMA-AS aggregate pipeline to generate a combination of
services. The services are the delegates which are used by the aggregate.

Now our approach is to provide a new destinations name( which is not
generated by any of the UIMA-AS services but by some other JAVA or non JAVA
cross platform program) along with other UIMA-AS generated endpoits which
are generated by few UIMA-AS services ,and build an aggregate combining
them. In the aggregate the UIMA-AS generated services will work as
delegates and the non UIMA-AS generated endpoint should also work for
another delegate which is not a UIMA-AS generated service.

As the documentation[1
<https://uima.apache.org/d/uima-as-2.8.1/uima_async_scaleout.html#ugr.async.ov.concepts.jms_descriptor>]
says  the endpoints are the input queues generated when the UIMA-AS
services are generated. The input queue name user can specify. But, for
each input queue there is a reply queue created by the aggregate ,this
reply queue is a temporary queue and it is mentioned in the header of a CAS
message sent from aggregate to delegate, the delegate replies to the reply
queue.

So We are interested to know,
1. How we can generate a temporary reply queue and tell the UIMA-AS
aggregate to use it corresponding the input queue that is not generated by
the UIMA-AS service but by other means?
2. How the UIMA-AS generated delegate replies to a reply queue
(specifically the code)?
3. Is UIMA-AS is flexible enough so that we can provide a delegate which is
not generated by UIMA-AS but still can be combined with other UIMA-AS
delegates so that it can work seemlessly with others and can be used in a
UIMA-AS aggregate?

We have subscribe to an input queue and receive a CAS message, they we
tried to send reply to the reply queue which is mentioned in the 'reply-to'
field of the header but it did not work. The program we are using for this
is a python client which is connected to the UIMA-AS broker using stomp
protocol.Code is given below.

def main():
conn = stomp.Connection()
conn.set_listener('MyListener', MyListener())
conn.start()
conn.connect()
conn.subscribe('OpenNlpSegmenter_Service',1,'auto')

while True:
time.sleep(10);

class MyListener(stomp.ConnectionListener):
    def on_connected(self,headers, message):
   print('connected  "%s"' % message)
    def on_connecting(self,host_and_port):
   print("connecting to: ",host_and_port)
    def on_error(self, headers, message):
        print('received an error "%s"' % message)
    def on_message(self, headers, message):
        print('received headers "%s"' % headers)
        print('received a message "%s"' % message)
        print("trying to connect to reply queue")
conn = stomp.Connection()
conn.start()
conn.connect()
conn.send(headers['reply-to'],message,headers=headers)
conn.disconnect()


The header of a message is is looks like below:

{'*destination*': '/queue/LanguageToolLemmatizer_Service',

'priority': '4',

'ServerURI': 'tcp://localhost:61616',

'subscription': '1',

'timestamp': '1487698370963',

'*reply-to*': '/remote-temp-queue/ID:Dibyo-PC-54740-1487698146395-1:3:1',

'AcceptsDeltaCas': 'true',

'*MessageFrom*':
'rmtRtrnQ_DemoAnnotatorQueue_1_LanguageToolLemmatizer_Service_192.168.16.13f7a252:15a61b82f1a:-8000',


'message-id': 'ID:Dibyo-PC-54740-1487698146395-3:1:3:1:3',

'Payload': '1000',

'MessageType': '3000',

'expires': '0',

'Command': '2000',
'CasReference': '543544b:15a61bb7001:-7ff8'
}

1.
https://uima.apache.org/d/uima-as-2.8.1/uima_async_scaleout.html#ugr.async.ov.concepts.jms_descriptor

Your help is highly appreciated.

Thanks & Regards,
Dibyojyoti Sanyal
Student TU Darmstadt MDSS
*Linked in <https://de.linkedin.com/in/dibyojyotisanyal>*

Reply via email to