Any ESB frameworks which provides API to host a webservice dynamically - esb

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).

Related

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

Best practice - transfer data between web services using 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

Integration with Siebel On-Premise CRM?

Has anyone ever integrated an external web application with Siebel On-Premise CRM? Note that I'm not talking about Siebel On-Demand SaaS, but their behind-the-firewall product. Specifically, I'm trying to achieve two-way synchronization of CRM objects (contacts, accounts, sales opportunities) between my web application and a customer's internal Siebel setup. Are there any well-known techniques for initiating or receiving external connections from a Siebel On-Premise installation.
Siebel On-Premise offers a wealth of integration options. Start with Siebel Bookshelf and specifically Integration Platform Technologies: Siebel Enterprise Application Integration.
For your more static data, have a look at MDM. In this case refer to Siebel Master Data Applications Reference for Industry Applications.
Otherwise, webservices or Siebel's prebuilt ASI's offer alternatives.
Exchanging XML through webservices which map data to Siebel Integration Objects, which map to Siebel Business Components, is pretty much standard fare from the architectural point-of-view.
I had to intgrate an applicaiton with Siebel, and it did prove to be pretty difficult. In the end I had to use the CTI interface, designed for handling Telephone calls and routing them to siebel. I basically had to trick it into thinking it was receiving a call and piggy back the data onto this.
Obviously this would only work if you allready use the CTI interface and have it setup.
Worked on a couple of Siebel projects for my sins. Standard ways to interface include:
- Web Services (which I think MoMo was referring to) - you'll need to check with the Siebel app team to see if this is / can be turned on; also, the vanilla services might need to be modified to reflect any modifications to the Siebel data structures; even in Siebel this has become the standard way to interface between web apps
- Direct reads from the Siebel database tables (you can't write to them though for very special and sad reasons); fast and no mods required
- Direct writes to the Siebel EIM database tables (you can write to them and then get the Siebel Server to run a data-load job); fast, but needs the data-load job to run
- I think there is some JBeans support but I don't know if it works or not
Drop by the Oracle support site and look for a document called "Overview: Siebel Enterprise Application Integration"
OK - so you'll also need to remember that Siebel is a bit weird so you will need a Siebel dev to help you out with understanding what the hell is going on...