A modern approach to Java application development
Java remains a powerhouse tool for application development, but developers need to take advantage of new design principles to get the most from their applications.
With Java investments in the billions over the last dozen years, it's a safe bet that enterprise companies won't be replacing these systems any time soon. In fact, one could claim Java usage is growing in spite of best efforts to claim otherwise by aficionados of Ruby, PHP, Python, Groovy, Scala, and other dynamic languages.
Red Hat for example reports that its JBoss Java middleware is its fastest growing business. IBM remains heavily invested in its WebSphere Java middleware. And let's not forget Oracle, which not only has the Sun brand (and ergo Java) pending but last year added BEA to the fold.
Java application platforms have been so focused on scalability and efficiency of database-driven applications that they've often ignored what's evolved in the consumer Web: rich user environments, better interactivity, and a mixing of content and data, collaboration and social features--all with much more personal control and empowerment. Efforts like JavaFX have been interesting if not ready for prime time.
But Java is hardly irrelevant, and Benjamin Mestrallet, founder and CEO of eXo Platform, thinks he can change exactly the perception that Java can't be Web 2.0 hip. eXo, which just opened its first U.S. office, is hoping to remake Java from stodgy to socially aware by combining powerful REST-based common services with rich Web 2.0 apps to get the most out of so-called legacy Java apps.
eXo counts a number of very smart people with deep Java roots in their court to make this happen including: Bob Bickel, a founder of Bluestone Software, former head of HP Middleware and former JBoss head of strategy; Edwin Khodabakchian, founder of Collaxa and former VP of Product Management at Oracle; and Sacha Labourey, longtime JBoss CTO and former co-GM of Red Hat Middleware.
Mestrallet noted that while developers in the .Net and PHP world often have pre-packaged services available to them in consistent frameworks--like SharePoint and Drupal--Java developers have not been able to consistently rely on a modern framework to tightly integrate all their legacy Java applications and components. Designed to eliminate barriers and open up services between departments, businesses and people, REST enables any number of services to be exposed--and then reused and integrated with other services.
Mestrallet advocates a two-tiered service-based framework:
- User Interface Services--provide reusable services for building rich applications as well as pre-built applications. UI services can include social, gadgets, mashup pages, scripting, GWT and Ajax. A document UI service, for example, might be something as simple as a view of available documents that are shared by a network of users. The social UI might provide a simple way for people to join a group to have access to those documents and various approval scenarios.
- REST-based Foundation Services--provide common services for social, collaboration, content management, single sign on, preference control, etc. Foundation services used by UI services can be an underlying Java Content Repository, a set of social-networking services like a social graph, and a user identification service.
Mestrallet points to a simple example that combines the mapping services that Google makes available with a traditional Java-based customer order system. The ability to combine the database of addresses and mashing them into a map can arm companies with better intelligence on deploying resources or enable informed decisions on warehouse and distribution centers to lower costs.
Alternatively, this same customer order system can be merged with a dynamic system that allows a sales organization to package customer proposals more effectively and share those proposals in an interactive fashion that combines live database-driven data with content systems--all shared in a web of collaboration graphs (think social networking applied to business where there might be a proposal team network at a company, with a partner network also contributing as well as a customer network all interacting in different ways and at different times).
Java is a powerful workhorse that occasionally needs a kick in the rear to get people excited again. The approach that eXo advocates holds definite appeal for organizations that want to modernize their system designs while continuing to enjoy the benefits that Java brings to the table.