Switch styles (Capricorn). XML Feed Calendar
All | Developers | General | Java | Surfing
20070515 Tuesday May 15, 2007

Back to the Future

Last Tuesday at JavaOne, Sun launched what I think is a game-changing set of technologies, a new product family and as well a new initiative around improving client support in Java, one that I believe will fundamentally redefine how we express rich, compelling experiences to consumers leveraging the Java platform as the vehicle for the delivery of those applications and content.  To understand the reasons why the announcements around JavaFX Script and Mobile are so important, one has to take a look at the evolution of modern web-based computing as it relates to client technologies, products and devices.

The question I will pose to you here, is whether a number of technologies introduced into the web are in fact, evolutionary or revolutionary ... and while at times it would seem that the entire ecosystem has been revolutionized periodically, I believe we can look back through history and determine that yes, while in the moment that may be so, over time we can see certain evolutionary trends.

For instance, going back a few years, we see the change from what were classic "Terminal Applications", that is extremely thin clients connected to (usually) large rooms of computers to that of Client/Server architectures ... typically represented as those emerging as part of the PC "revolution".

(there's that word again, "revolution")

This diagram represents that shift between Terminals and Clients, and for this I will use roughly the amount of code applied to each side of this binary equation ... code on the client, versus code on the server ...

200705101317

Stepping forward a bit, we see the emergence of the Internet ... or the modern web.  And while not nearly as severe a shift in cycle as that between Terminal Applications and those in the Client/Server space, we do see a move away from the Rich Clients which dominated the early PC life cycle with that of applications typically architected solely around the web browser ... which in the early days was static HTML delivered to the client by the web server.

200705101320

Enter the modern "Web 2.0" era, and the rise of the Rich Internet Application ... as more was required of the modern web client, the injection of intelligence into the richer web client caused once again, a swing back towards more code executing on the client, such as JavaScript and other languages which get pushed to the client by server-based applications.  So it's not a true re-biasing towards clients per se, although they are certainly richer for things like AJAX, etc., but more like server-controlled or server-managed clients ....

There is a well established engineering principle typically used in designing aircraft, a function of aerodynamics referred to as stability.  Basically, the stability of an aircraft in flight to remain in straight, level and upright flight and to return to that attitude without corrective action by the pilot.  The overall tendency of an airplane to do so is called dynamic stability, which is preceded by a series of damped out oscillations ...

Stability can be positive ... which means that as a result of those oscillations, the plane will return to stable flight.  Stability can also be negative, which means that as a result of those oscillations, the plane will move it farther away from stable flight ... basically, unstable flight.  Most modern military aircraft have that tendency ... without computers, they are in fact, a flying brick ...

So what forces operate against this cycle of the client and the server ?  The current trend is one of increasing stability (less oscillation) ... so what are those possible forces which are in effect dampening the wild swings biasing towards client or server and serving the function of creating a more balanced result ?

For one, created code.  If we look at this force over time, the drive towards the assembly of applications as opposed to the creation of new code has increased.  The rapid rise of interest and prevalence of scripting being used to tie together existing components and functionality especially with modern RIAs is one example of this trend.

200705101322

The other is the demand on rich interactivity, which includes the use of rich content and media.  The need for compelling and rich UIs, coupled with the need to deliver and manage this content in real time as well as the intelligence required in the modern client application for interacting with the modern web is a force which places a high demand on richer clients.

200705101323

A third force is one which is, in many ways, the "great equalizer" .. and directly effects and has driven the modern web, that of collaboration and the need to bridge the requirements and capabilities of the increasingly richer clients as well as the data and services present on the server. This force is manifest in this drive to continue to improve both the user experience as well as the performance, scalability and in general overall usefulness of the web ... and collaboration and integration is integral to that forward progress.

200705101323-1

The result, of course, is this notion of the "web as a platform" ... a platform that provides the wealth of services needed by increasingly richer clients and an increasingly large set of services and data available underneath.

200705101324

We are today living in the world of the rich internet application built on the web as a platform, yet because of the need for something more, struggling to somehow build a richer, yet more tightly integrated client into that model.  A client which is increasingly integrated with the underlying web as the platform for collaboration, but also increasingly integrated with it's host environment, whether that's a desktop, a mobile device or other more consumer-oriented platforms.

So the question remains ... what next ?

What's the point of increasing balance in this cycle of web computing ?

200705101326

That Integrated Rich Client is the next step in the evolution of the web computing client, currently dominated by the rich internet application, which today leverages things like AJAX to provide for that richer experience people are demanding.  The Integrated Rich Client is about the following:

We are now at the point where the confluence of available technology and consumer demand makes this all possible. 

At JavaOne, we demonstrated elements of that solution, technologies such as GlassFish V3, Derby in the browser, Java SE futures and JavaFX Script. Each provide a component piece of where the future lies within the integrated rich client. Within products coming from Sun, such as JavaFX Mobile, you'll see the realization of those technologies in a fully integrated distribution, initially for mobile devices and eventually on a broad spectrum of devices ... from set top boxes to desktops. We'll go back to the future, but a future different than the "thick" of old, one that leverages the modern (yet evolving) web and the rich set of services and data underneath, utilizing the rich Java clients that will be built upon a leaner JRE and dynamic and compelling user experience.

Posted by brewin May 15 2007, 03:28:53 PM PDT Permalink

Comments:

Post a Comment:

Comments are closed for this entry.