Red Hat’s JBoss division has released the 1.0 version of JBoss RESTEasy, a framework that enables developers to write Representational State Transfer-based — also known as “RESTful” — Web services in Java.
JBoss fellow Bill Burke has been championing the effort and crowed about the technology achieving a version 1.0 generally available release on Jan. 21. “I am pleased to announce the first GA release of JBoss RESTEasy,” Burke said in a blog post on the technology.
RESTEasy is a fully certified and portable implementation of the JAX-RS specification. JAX-RS is also known as Java Specification Request (JSR) 311 — the Java API for RESTful Web Services. JAX-RS is a new Java Community Process (JCP) specification that provides a Java API for RESTful Web Services over the HTTP protocol.
“REST is a set of architectural principles that defines why the World Wide Web has been so successful at scaling so massively and how you can apply those principles to modern distributed applications,” Burke told eWEEK. “While not protocol-specific, when people talk about REST they usually are talking about using HTTP in a RESTful manner. I like to think of REST as the rebirth or rediscovery of HTTP. Distributed technologies like WS-*/SOAP [the web services stack and Simple Object Access Protocol] have used HTTP solely as a transport protocol when in reality it is a very rich protocol — caching and content-negotiation are two examples.”
Moreover, Burke argues that “Developers like REST because it generally is much simpler than putting together a SOAP stack. Most languages and platforms support HTTP while this is not so true with WS-*. Also, interoperability is always an issue between vendor stacks with SOAP. With REST you focus on what matters, the exchanged data format — X M L, JSON, whatever — and let HTTP do all the heavy lifting.”
Meanwhile, RESTEasy can run in any Servlet container, but tighter integration with the JBoss Application Server is also available to make the user experience nicer in that environment, Burke said. While JAX-RS is only a server-side specification, RESTEasy has innovated to bring JAX-RS to the client through the RESTEasy JAX-RS Client Framework. This client-side framework allows you to map outgoing HTTP requests to remote servers using JAX-RS annotations and interface proxies, Burke said.
“From a Java perspective, you’ve always been able to write RESTful applications using a Servlet container,” Burke said. “What RESTEasy does is make you more productive at writing RESTful applications through the new JAX-RS standard that will be part of Java EE [Enterprise Edition] 6.”
Additional features of the RESTEasy technology include: a fully certified JAX-RS implementation; portability to Tomcat or any application server that runs on Java Development Kit (JDK) 5 or higher; it is an embeddable server implementation for JUnit testing; it has a rich set of providers for: XML, JSON, YAML, Fastinfoset, Atom, and more; it has Java Architecture for XML Binding (JAXB) marshalling into XML, JSON, Fastinfoset, and Atom as well as wrappers for arrays, lists, and sets of JAXB Objects; it features asynchronous HTTP (Comet) abstractions for JBoss Web, Tomcat 6, and Servlet 3.0; it has Enterprise JavaBeans (EJB), Spring, and Spring MVC integration; and it features a client framework that leverages JAX-RS annotations so that you can write HTTP clients easily (JAX-RS only defines server bindings).
Moreover, for his part, Burke said he sees REST overtaking SOAP. “From an adoption standpoint, I believe that REST has a high probability of overtaking SOAP/WS-* as a preferred way to integrate SOA [Service Oriented Architecture] applications,” he said. “Once developers start realizing how difficult it is to get these WS-* stacks up and running, let alone, interoperating with one another, they’ll see the light.”