Representational State Transfer (REST) is a style of software architecture for building networked systems. In recent years there has been an increase in the level of awareness and interest in building enterprise applications (both user-facing and non-user-facing) using REST principles.
While the basic concepts and principles of REST style are not hard to describe, correctly architecting applications according to those concepts and principles can pose immense challenges. The challenges are rooted in the number of years spent building applications using action-oriented MVC frameworks, and RPC-driven distributed platforms, which are sometimes at odds with resource oriented principles. The challenges range from basics like identifying and modeling resources, to constructing URIs, to more involved issues like caching, concurrency, language and content negotiation and so on. These challenges need to be addressed to meet the end goal, which is not to claim REST-compliance, but to take full advantage of HTTP for all it is good for.
Using JSR-311 and AtomPub as the basis for examples, in this session we will walk through those areas of application development where enterprises can take advantage of REST principles, showing how to do so correctly without sacrificing any of the required “ilities”. This session will also describe how to take advantage of the REST principles using web frameworks, carefully highlighting better practices. Audiences interested in building scalable enterprise applications will benefit from this session by learning which set of areas to focus on, and some patterns for design and architecture.
HTTP is a RESTful application protocol, and by extension, web applications can take full advantage of REST. However, in reality, web applications are far from being RESTful. On the one hand, there are well-known limitations with HTML and XHTML in supporting several aspects of REST. On the other hand, mainstream techniques and frameworks used to build web applications pay little or no attention to REST. For instance, MVC, the most popular paradigm for building web UI, ended up encouraging action-oriented architectures as opposed to resource orientation. Then there are frameworks like JSF that lead to web applications that treat HTTP more like a network protocol and less like an application protocol. The net result is sub-optimal web applications, i.e. those that cannot take full advantage of HTTP level infrastructure, sometimes compromising performance, scalability and even security.
This session walks through some pitfalls of current Java web UI frameworks, with examples, and patterns and strategies for how to avoid the pitfalls. The primary target audience is developers building web applications.
© 1997 2008 Kovsky Conference Productions Inc.; All rights reserved.