The current chair of the Apache Web Services project foresees a future without J2EE, and has just launched a software startup with a mission to make it happen, writes, Phil Wainewright.The inherent implication is that a lot of J2EE is unnecessary (if not downright "klunky") when building web services integration. There are a cluster of releases & tools that put into the hands of enterprise developers, enable the creation of a powerful services infrastructure based on lightweight Java servers rather than having to invest in the heavyweight J2EE platforms marketed by the established proprietary vendors.
Simeon Simeonov writing on The Next Programming Models higlights, the process of building software hasn’t fundamentally changed since the 80s. Excerpts with edits and comments:
Layers of abstraction are fundamental to software. Some layers are defined through programming models, e.g., machine language, assembly language, 3GLs, JSP. Others are defined through a combination of tools and frameworks, e.g., MFC and Visual Studio on top of C++. There is a limit to how high we can raise a level of abstraction through tools and frameworks alone. At some point, a new programming model is the best way forward. Two programming models that can significantly improve in the next few years.
Rich Internet Applications (RIAs): Applications that have the deployment characteristics of browser-based applications but have equivalent power and more interactivity than desktop applications are the need of the hour. RIAs fulfill that. They bring complexity on two levels. First, computing happens on both the client and the server over a potentially unreliable WAN. Second, they aim to deliver highly interactive user experiences (UEs). Users respond better to these types of interfaces, as in general no one wants to use old-style Web maps when you can go with Google maps or the Flash-based AbMap. A good RIA programming model will protect developers from the details of location, i.e., the tasks associated with synchronizing data shared between the front- and back-end, invoking back-end services, dealing with online/offline operation, etc. It will also have an advanced rendering engine, preferably one that is cross-platform and device independent, and a presentation model that hides much of the hassle of resolution, screen orientation and internationalization. Java doesn’t cut it, primarily for UE reasons. More than PC-based applications, mobile applications really need a makeover and there are a lot of dollars at stake. Microbrowsers are trying to find ways to bring AJAX + DHTM ± WAP to devices. Java has deep market penetration but poor UE.
Composite Applications : One of the cornerstones of SOA is that services can be implemented using anything.Traditional approaches for writing the glue code between services leave a lot to be desired.Deeper and more declarative mechanisms for putting services together are needed.Building, deploying and operating composite applications requires dealing with issues such as policy definition and enforcement, service evolution/versioning, system / deployment architectures and post-deployment management and monitoring. A winning programming model has to begin to address governance issues to face challenges like maintaining applications over time as services evolve. There is plenty of innovation possible in the utility computing space.
Category : New Generation Programming Models