Need Orchestration and BPEL looks good, but can you completely avoid webservices? - web-services

I need orchestration and Apache ODE looks good. However, we need to avoid webservices (soap ) completely. We don't want to deal with that technology as as all our services are "rest" based. Is this possible if we use Apache ODE?
A BPEL workflow becomes a webservice. Is it possible to make it Rest-based service?

It is possible to use WSDL 1.1 extensions for REST as discussed in the Apache ODE documentation
http://ode.apache.org/extensions/wsdl-11-extensions-for-rest.html

Related

Apache CXF vs Apache Camel

our problems:
a sets of existing applications (recruiting, purchasing, payroll etc..) communicate outside through various ways (email, pdf, csv file, webservices etc)
a new ERP system we gona use(SAP or Agresso) communicates the outside through web services
we need integrate the existing systems with the ERP system, and apply some rules
my questions:
can we do the job by only using CXF?
is CXF a subset of camel
or perhaps to achieve what we want, we have to combine those two?
also Mule doesn't give a specific price for the cost, anyone had experience with MuleSoft?
thanks for time!
The comment by BMW is very true.
However to answer you a little more closely.
CXF is a services framework. It allows you to create SOAP, REST and even CORBA services. So yes it can help you create and consume web services.
CXF is a component used inside Camel, CXF is not a subset of camel. Camel will allow you to provide and consume web services using CXF.
Camel is a EIP(Enterprise Integration Pattern) framework which allows you to do things such as route a file to a web service. Or expose a SOAP service that talks to JMS queues etc. I know Camel also has a SAP component.
Thus Camel orchestrates the various components into routes that allows various systems to integrate.
In short you will use Camel with the CXF and other components to resolve your problems.
I have not used Mule yet but I can tell you this. You can host your Camel routes on Apache Karaf and create your own light weight "ESB" so no need to use Mule ESB.
Another alternative would be Fuse ESB and also Servicemix. THey are also capable of hosting Camel route.
I currently have several camel routes that expose web services and consume various data from files, rss feeds etc hosted on Karaf and it works like a charm.

Axis2 vs JAX-WS

I have to implement SOAP based web services for a project. We are considering different options like axis2, ejb as a web service, jax-ws but not really sure about the advantages/drawbacks of these options. Can someone please help in this regard.
It would be great if someone can point to any other alternatives for implementing SOAP based webservices.
Thanks in advance,
-Csn
For me, the easiest way to expose a web service is creating an EJB with annotations (JAX-WS) if you are using a Java EE server like JBoss.
Consuming a WS is a bit different but I prefer JAX-WS too, because Axis2 throw exceptions if you use complex parameters (classes) and you add an attribute. JAX-WS instead calls every 'get' and 'set' for the serialized xml. If no 'set' is implemented, no problem.
That's an advantage for backward compatibility.
I would highly recommend to use Apache CXF for developing SOAP web services. This stack is based on JAX-WS but has much more features. CXF has an excellent integration with Spring. There are a lot of documentation on the internet how to create web services using this framework. If I would be working on completely new web service I would definitely choose Apache CXF.

Approaches for creating REST Web services?

i am new to REST Service development. I compared the development mechanism for both REST and WS web services and i found that you can create a WS web service using WSDL file that is the top down appraoch (Correct me if i am wrong) and using bottom up approach also, that is generating the classes manually.
But when it comes to REST web service development you have to follow bottom up approach only that is generating the classes manually. NetBeans IDE provides certain wizards for creating REST web service quickly from databases, entity classes and patterns.
I had also seen when you are developing web service in eclipse and you are using wizard in eclipse IDE, you can create a REST web service from WSDL file. I found this very strange. My question here is what are the approaches we can have for creating REST web services. Can we create REST web services using top-down and bottom up approached. If yes then please provide me details.
Thanks.
It is possible to describe a REST service using a contract. This is the intent of WADL and WSDL 2.0. WADL is specifically a REST contract, whereas WSDL 2.0 evolved from the original WSDL spec. to support all HTTP bindings. Since REST services rely on the use of HTTP methods and headers to exchange messages a WSDL 2.0 contract can work. There is a really good explanation here: http://ajaxonomy.com/2008/xml/web-services-part-2-wsdl-and-wadl
For development of REST services, I'm not sure if NetBeans, Eclipse or other tools specifically support automated REST service from WSDL generation. I would imagine that most are still intended for SOAP service creation. At this point I think WSDL 2.0 and WADL can be used to describe a REST service, but are not intended for automated generation of a REST service.
REST services are simple HTTP request/response,and therefore don't require complex stubs. In most cases it would probably take more time to write the WSDL describing the REST service, than it would take to write the REST service itself.

Combining JAX-WS and JAX-RS

I need to create a web service project that creates some web services and exposes the end points using SOAP and REST. I've done a lot of JAX-RS work but I'm a little light on an JAX-WS implementations. Is there an open sourced technology that implements both?
I would suggest Apache CXF. It is an open source services framework which will allow you to do exactly what you need.

What is the easiest and most simple way of creating webservice (SOAP) using Spring?

i am not familiar with the most optimal and easy way on how to develop webservices using Spring. We are going to use Tomcat as our application container, so i was wondering what the most easy way would be to develop webservices using Spring running on Tomcat? Should i use CXF/Axis or something else? We are planning to use the code-first approach.
Currently we already have some nice Spring beans as services and it would be great if we could expose them as SOAP endpoints.
If you use code first, I would suggest Apache CXF with the jax-ws front end or the simple front end
The JAX-WS version is more powerful, but the Simple Frontend decouples your code from the framework (you don't need to annotate your services). Both are simple to create and work reliably.