blue bar background yellow bar background
Colorado Software Summit 2008 banner
Colorado Software Summit logo

The Best Way to Master a Technology Is to Teach It to Others

Subbu Allamaraju

Yahoo!

Pragmatic REST

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.

RESTful Web Applications — Facts vs Fiction

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.

Photo of Subbu Allamaraju

Subbu Allamaraju has over 12 years of experience in Java and JEE, with the last 5 years spent architecting and developing infrastructure software and standards for web applications and web services.

Subbu is currently a Principal Engineer at Yahoo! whose responsibility is to make sure that the next wave of Yahoo!'s web services follow the best principles of REST and provide a consistent and yet scalable access to Yahoo!'s vast amounts of data. In this process, Subbu helps define standards and guidelines for architecting web services, and related infrastructure software.

Prior to joining Yahoo! last year, Subbu was at BEA Systems Inc as an architect, primarily responsible for driving federated portals and related standards such Web Services for Remote Portlets (WSRP) versions 1.0 and 2.0, JSR-168 (Portlet API Version 1.0), JSR-286 (Portlet API Version 2.0), and JSR-301 (Portlet Bridge Specification for JavaServer Faces).

In the past, Subbu spoke at JavaOne and BEAWorld conferences, and wrote several books on J2EE, mostly focusing on the web container.

Subbu holds a Ph.D. in Electrical Engineering from the Indian Institute of Technology, Kharagpur.

Blog: http://www.subbu.org
Email: subbu@subbu.org