0

I have a typical requirement something like that … I have a oracle tuxedo server with lots of services , now we need to add one microservice layer on that which can talk(In and out) with the tuxedo server , something like a adaptor with can accept call form tuxedo server and can call also to some tuxedo services in REST.

Proposed Design diagram is something like this… enter image description here

But the problem is that tuxedo server (version 12) , can accept call as REST , but from tuxedo server we did not found any way call our microservices in REST. As per my study tuxedo server can call other services only in its legacy way , with TPC/IP written in C++.

If any one can help me out to implement this design will be highly appreciated …

Solution points

1) Write a adaptor in java , which can accept a tuxedo call from a tuxedo server and can call a tuxedo serve. (call a tuxedo server for services that part is resolved already, sample code in BEA doc , but the other part , accepting a service call from tuxedo in legacy way , we did not found any, is it possible to write something in java for that ? any doc or sample? )

                                **or**

2) In any way from tuxedo server if can call in REST to our Microservices, replacing the proposed adapter direct call from tuxedo server to different micro-services.(may be written in java or c++ and deployed in existing tuxedo server)

Please let me know if any one suggest any other good approach to achieve this.

Biswajit
  • 323
  • 4
  • 15

1 Answers1

1

I think Oracle SALT is what you are looking for: it can both expose Tuxedo services as Web services and call Web services from Tuxedo. See https://docs.oracle.com/cd/E35855_01/salt/docs12c/overview/over.html but it's also an additional product you have to buy from Oracle.

It's also possible to build such adaptor yourself but it will be Tuxedo code (not some Java code that taps into Tuxedo's internals). A Tuxedo server that calls REST services is pretty easy - use something like libcurl in C++ and just transform Tuxedo data types to JSON or XML. It's also possible to write Tuxedo servers in Python (tuxmodule) and Java. To call a Tuxedo service over HTTP from other microservices you can

aivarsk
  • 478
  • 5
  • 7
  • Thanks a lot , just one point in case custom adaptor , how can I receive a tuxedo call which done on TCP/IP (I guess) from a tuxedo server. We actually want make a generic solution, so that need not to change existing call process or tuxedo server code... any help will be highly appreciated... – Biswajit Apr 08 '19 at 06:46
  • It's not done using TCP/IP, it's System V message queues with a proprietary message format (http://aivarsk.github.io/2019/03/22/blocking-tpacall/) To receive such call you have to create a Tuxedo server and then forward to the REST endpoint. You will have to update Tuxedo configuration once to include your server in Tuxedo application. – aivarsk Apr 08 '19 at 11:18
  • I have published my Python3 bindings for Oracle Tuxedo (https://pypi.org/project/tuxedo/) and it contains samples of implementing HTTP+JSON web server that calls Tuxedo services and calling HTTP+XML endpoints from Tuxedo service. It's not Java of course but it's the cheapest (just core Tuxedo) and simplest / shortest code for adapters. – aivarsk Nov 05 '19 at 06:49