Best practice - transfer data between web services using esb - esb

I would like to ask you about best practise in sending data (POST/GET variable) between two web services, where between them is ESB:
WEB_SERVICE1 <-----------> ESB <----------> WEB_SERVICE2
Should I create another webservice in ESB, which will transfer data between WEB_SERVICE1 and WEB_SERVICE2?

Translations within the ESB is how you should transfer data from one web service to another.
You should leverage the ESB to do the communication between the two.
You generally use translators/mappers provided by the ESB framework to facilitate the translation/formats of data coming in and out.
Web Service 1 pushes message to ESB
ESB reads post/get data, formats data to meet Web Service 2 demands
ESB redirects/post to Web Service 2
Edit
You might want to give us some more info on how you are planing on using these. Are you just trying to call one service from another ? Or are you trying to do something more
If you just want to not worry about p2p, then ideally you would have webservice 1 push a message to the message bus, the message bus would pick it up and, translate it, and deliver it to web service 2 (or any other subscribers).
Take a look a message endpoints in the Fuse Integration Patterns document

Related

How do I integrate my application to an HL7 V2.5 hospital HIS?

My small company provides hospitals with a bug prevalence report. Earlier, we had only 1 customer who provides the necessary data for the application (patient demographics, culture details, antibiotic dosage etc) in a CSV dump for us to ingest. Now, we have larger hospitals interested in our product who have HL7 V2.5. I've found that people use Mirth connect for interfacing but very little on how this entire setup works.
As a vendor, what are the things I need to do to make the integration possible?
From what I've read one of the approaches is the following:
Set up a https server. Install and run mirth on it.
The hospital will now send HL7 messages (are these text files?) to this server on a Mirth channel. Mirth can help me parse these messages and extract the data.
I build further processing mechanisms to ingest that data into my application that the hospital will use.
Also, what is the standard followed when hospitals send HL7 messages? Do the hospital systems provide a consolidated HL7 file for the required data? Or will I as the vendor have to collect separate files and parse them to convert data into usable format?
The usual process for receiving HL7 data is to:
Stand up an integration engine such as Mirth, Lyniate Rhapsody, or Infor Cloverleaf.
Establish a TCP/IP connection (an HL7v2 interface) to send and receive HL7 messages with the other software system. HL7v2 connections are usually made through a VPN to provide additional security, since the transport protocol (MLLP) does not have any native security.
Configure your integration engine to parse and convert the messages into a format your application can understand.
There are alternatives such as HL7v2 over web services or via SFTP, but these aren't as common. HL7v2 messages aren't files, unless you are using the SFTP process to actually download/upload messages. Each HL7v2 message represents a single event and are almost always transmitted individually in near-real-time.
Some potentially helpful resources are here and here.

Any ESB frameworks which provides API to host a webservice dynamically

i am performing an R&D to check whether are there any open source ESB frameworks which provides the following features
1. API to host a SOAP webservice/consume a service by providing the required data. We are working on a tool to design webservices for our product and the metadata created from the tool would be input to the API. What we are looking is that the metadata generated should be hosted as a webservice instantly without restarting the ESB container.
2. API provided by the framework to define the count of a service executions performed.
3. ESB framework which supports versioning both in hosting a service and also consuming a service.
It would be very helpful if someone can provide a direction to such ESB frameworks
Talend ESB provides the functionality you described.
it can consume a WSDL (your metadata created from your tool) to quickly create a web service service. It is hot deployed into a Karaf container (i.e. do not need to restart the ESB container)
you can use built in logging or custom logging to count executions performed.
it can be hooked into git or svn for versioning.
There is a free version you can download here.
Here is a basic tutorial on the product which demonstrates a. ingesting a WSDL, b. hot deployment, and c. execution count (though it does not go into how to log that).

Architecture tips for multi-platform software / API

I'm creating a multi-platform app, mostly for web interface, mobile and a windows application. The app will manage user task lists and sync them to the server, but also store them locally for processing data faster.
My idea of architecture until now is:
Keeping most of the processing on client side, eventually syncing with the server.
Developing an API to provide and receive data that will be saved on the server (basically just a json wrapper web service)
The data flow:
user Authenticates -> Requests updated Json objects to the server -> populate client-side objects -> work with client-side objects -> send a json object back to the server -> server updates data.
Is this a good approach? I've never done this, can you guys give me some tips?
I think you are on the right track. The idea is to decouple the front-end from the back-end. The backend shall expose a set of CRUD (Create, Read, Update, Delete) functions as RESTful JSON web services. All your different flavours of UI (mobile, web, windows) can consume the same API.
I would recommend for the web front-end to take a look at AngularJS together with bootstrap.
Regarding the backend, you could implement it as a simple Java web application with Jersey/JAX-RS or alternatively, you could check Node.js + Express.

How to expose mysql data as a soap web service in Talend

I want to expose data in a mysql data source as a soap web service using Talend. How can I achieve that. Please advice.
The most powerful way to do so to do so is probably to build a WSDL using Talend Open ESB Studio (Tutorial)
Alternatively, if you don't like to use another piece of software or you prefer a quick-and-dirty solution, you can achieve this with standard Talend Open Studio for Data Integration. You just need to draw a standard Talend job which redirects your mysql data output to a tBufferOutput instance. Then, you must export your job as Axis webservice, finally deploy it in your application server (Tutorial). This way, your buffer data will be automatically exposed via web service. But it has a drawback: you cannot tune the response (ie, add labels to fields or refactor the SOAP response structure at all).

how to use FUSE ESB glue multiple applications

i have two applications, one deployed on server 1. the other deployed on server 2. application one want to post some date to application two, when application two process complete. it will send a event to application one, my customer suggest us to use FUSE ESB, how to implement it ,
any answer is appreciate
You can use messaging for that. Fuse ESB comes with ActiveMQ as the messaging solution out of the box. Then you can have application A send a message to a queue, which application B pickup, and send back a response on a response queue, for application A to receive.
You can also use other kind of transports such as HTTP, web service, TCP, and many many more.
Fuse ESB comes also out of the box with Apache Camel which has a lot of transports and components ready to use. See the list here: http://camel.apache.org/components
I suggest you read the Fuse ESB production introduction guide at: https://access.redhat.com/knowledge/docs/en-US/Fuse_ESB_Enterprise/7.1/html-single/Product_Introduction/index.html