By Kris Gemborys
Over the last two decades, the Internet has evolved and as a result, consumer and business expectations have changed. Nowadays, consumers seek solutions with superior self-service capabilities that address their needs timely and efficiently. The arrival of smart phones has enabled users to conduct business from anywhere. The social networking revolution has reshaped how we interact and collaborate. A continuously growing number of users accessing Internet-enabled applications on an increasing number of devices has moved scalability and portability requirements to new levels.
Businesses’ perspectives on information technology have also transformed. Businesses are not as much interested in monolithic products as they are in a collection of services addressing their specific needs. The arrival of cloud computing has provided businesses with new alternatives for assembling and delivering these services. Support for standards, integration choices, openness, and service delivery options have become very important characteristics of software applications.
The information technology industry recognized the above trends several years ago. Solutions that provide such capabilities are being referred to as Web 2.0 applications. The commonly recognized Web 2.0 design patterns are as follows:
• Solution is a collection of services and not a pre-packaged product
• Presentation content is aggregated at runtime
• Users are active contributors with the ability to control content
• Solution is self-service centric
• User interface is lightweight
• Services are accessible from a range of devices
• Presentation supports cross-browser compatibility
•
Content Delivery Platforms for Presentation Components
The desired Web 2.0 architecture should leverage the same delivery infrastructure for both mobile and desktop applications as well as remain device-portable as much as possible. The architecture should also enable customization and support for componentization.
J2EE portals provide an excellent platform for implementing Web 2.0 presentation artifacts thanks to support for assembling solutions from discrete components (JSR 168/286 portlets) and look-and-feel customization (skins). The portal security provides granular access control to resources and allows both portal administrators and users to fully personalize content according to their needs and granted permissions. Administrators and users are in control of page layouts, can remove or add new portlets, and adjust preferences. Administrators and users have complete freedom to assemble content using third party portlets, as well as internally developed portlets.
Commercial Delivery Platform
The IBM WebShere portal is a rich-featured platform for third party content aggregation. Major enterprise vendors, such as SAP and Oracle, offer portlets that users can deploy as part of the comprehensive solutions. IBM WebSphere Portal comes with over 50 portlets that provide features, such as RSS/ATOM feed readers, a calendar, and IBM Sametime client. In addition, the IBM portal allows for aggregating iWidgets and gadgets imported as portlets. Portal users can also access
The IBM Mobile Portal Accelerator is a product for developing and running mobile portlets. The product includes an aggregation component that abstracts rendering implementation based on the repository containing the inventory of all mobile devices available on the market. The abstraction layer helps achieve the goal of consistent look and feel. The advances in JavaScript language and, particularly, the introduction of HTML 5 make it possible to access hardware resources without the need for native implementations. For devices that offer sufficient processing power, such as iPads, tablets, netbooks, and personal computers, usability and adoption of
IBM WebSphere portal, with the ability for hosting portlets, iWidgets, and gadgets, offers a very comprehensive platform for delivering self-service solutions. Users are becoming de facto co-developers of the solution which is one a fundamental principles of Web 2.0 applications.
Open Source Delivery Platform
One of the best platforms for deploying cost-effective portlet solutions are Liferay and JBoss portals. Both portals are open source and are offered at no cost under business-friendly LGPL license. The JBoss portal is well-integrated with Richfaces while Liferay portal supports integration with ICEfaces. Richfaces and ICEfaces are two competing implementations of JSF spec with proprietary
Apache Shinding is an open source container compatible with OpenSocial API and OpenAjax specification capable of hosting Google gadgets.
Cloud Delivery Platforms
There is a significant number of cloud delivery platforms and this number will continue to grow until cloud market starts to mature. Amazon has one of the most comprehensive cloud offerings for deploying existing solutions. Google App Engine (GAE) is the best cloud platform for hosting applications developed using Google Web Toolkit or python. Google gadgets deployed to GAE can be then aggregated using an open source Apache Shinding container, a commercial
Application Marketplaces
As discussed earlier, there is a major shift in the information industry from selling software as shrink-wrapped products to delivering solutions as a set of services (SaaS). As a result of this shift, a new software delivery channel, Application Marketplace, has been established. Application marketplaces complement very well SaaS (Software as a service) and cloud computing principles. Small and medium size software companies can leverage application marketplaces
As of the time of this writing, there are two primary application marketplaces: Apple App Store and Google Apps Marketplace Both marketplaces target primarily smart phones. However, the current trend suggests that software distributed via market places will target higher-end devices such as tablets, netbooks, notebooks, and desktops. Google has already created a Chrome Web Store which allows developers to distribute and sell desktop web applications.
Mobile Content
Increasing capabilities of mobile devices, especially higher-end SmartPhones, iPads, and netbooks, resulted in the mobile channel becoming a preferred choice for conducting business especially by technology savvy users. Since cell phone users can readily access their devices anywhere they go, businesses gain access to their customers almost instantaneously regardless of where their customers are or what they are doing. A growing number of affluent customers expect businesses to provide self-service features accessible via their mobile devices. Fragmentation of the mobile market and significant differences in features and capabilities of mobile devices present challenges in delivering content in a consistent and cost-effective manner.
Some examples of physical device differences are:
• Screen sizes
• Orientation landscape (high-end SmartPhones, such iPhone and Android, support accelerometer to detect the change in orientation)
• Protocol support XHTML/WML
• JavaScrtipt support (or lack of)
• Screen resolution and color support
• Keyboard capabilities
• Support for camera
• CPU and memory capacity
As a result of the above differences, developers are presented with challenges to design mobile solutions with a consistent look and feel across all devices which also take advantage of unique capabilities available in the high-end devices. The IBM Mobile Portal Accelerator addresses this issue elegantly by separating rendering logic from business logic. The product follows a “write once, render many” approach. The UI components are packaged and delivered as portlets so developers and users can leverage the administrative capabilities of the IBM WebSphere portal to aggregate and manage content.
Mobile Portal Accelerator allows administrators to configure mobile pages using the WebSphere Portal administration interface. Portal administrators and privileged users can define how mobile users access and navigate portal services from mobile devices. The mobile pages navigation tree is stored in the navigation model of WebSphere and can be customized based on user privileges. At runtime, the XDIME/XDIME 2 aggregator renders content based on the policies and specific hardware characteristics of a given device.
The IBM Mobile Portal Accelerator multi-channel server content-adaptation is a key component of this delivery platform. The content-adaptation renders personalized content across a broad range of devices without changing business logic. The Mobile Image Conversion Server (ICS) transforms images so they can be properly rendered on each device.
The IBM Mobile Portal Accelerator Device Update subscription service ensures that the device repository remains current and new devices are added as they become available.
The mobile content is developed as XDIME-enabled portlets. The portlets are then deployed to portal pages and the application flow is defined using administrative capabilities of the portal. An additional benefit of this approach is access to the IBM mobile portlets that provide support for Web 2.0 technologies, such as RSS and ATOM feeds.
To help developers create XDIME/XDIME 2-enabled mobile portlets, the Mobile Portal Accelerator software includes the Mobile Portal Toolkit, an Eclipse plug-in. The toolkit provides wizards for creating the mobile XDIME portlets which are compliant with JSR 168/286 specifications.
One of the disadvantages of the purely browser-based solution, such as the IBM Mobile Portal Accelerator, is limited access to hardware and support for native widgets. Adoption of HTML 5 standards by leading mobile vendors to access hardware directly from the browser provides new avenues for implementing features that could have been previously only natively implemented.
Rich UI Ajax Content
IBM delivery platform is very comprehensive with support for J2EE applications, JSR186/286 portlets, and OpenAjax Hub compliant components. IBM server products are well integrated which allows developers and users to assemble componentized solutions using a variety of technologies (i.e. JSF portlets, Ajax-enabled portlets, iWidgets, and gadgets). With so many choices, a decision to select the most suitable approach can become overwhelming and only a systematic evaluation process will yield desirable results.
Ajax Web 2.0 Frameworks
Several years ago,
All modern Web 2.0 Ajax libraries and frameworks support storage and manipulation of application data entirely within a browser. Separation of data from rendering and layout definitions is a key differentiation factor between traditional Web 1.0 and Ajax Web 2.0 technologies. The ability to manipulate user data entirely on a browser eliminates the need for screen refreshes. Traditionally developed applications using JSF or similar technologies require application servers to process each HTTP request and render a new HTTP response passed as HTML. The generated HTTP response is then transmitted to the browser which refreshes a particular iFrame or entire page. The
• Initial page construction from a combination of
• Data refreshes implemented as RESTful services that transmit JSON objects
With Ajax Web 2.0 becoming part of mainstream development, technology leaders continue to introduce new frameworks and libraries with the objective of streamlining development of Web 2.0 solutions. The frameworks could be categorized as follows:
• Downloadable rich UI browser plugins (i.e. Microsoft Silverlight, Adobe Flash and Flex)
• JavaScript frameworks and libraries (i.e. Dojo, jQuery, Prototype, Yahoo UI)
• Traditional Application Server Frameworks with added
• Others (i.e. Google Web Toolkit, Groovy & Grails)
Framework openness and cross-browser support should be considered top priorities when choosing an
Cross-browser support is only one aspect of portability; another one is support for application containers. The portability across a wide range of containers becomes a major issue for frameworks implemented as Ajax JSF extensions. Such frameworks rely on containers to properly process both
Figure. Web 2.0 Ajax Technology comparison
Web 2.0 Rich UI Technology | JSF | Dojo | jQuery | GWT |
Components Type | JSR 168/286 portlets | iWidgets Portlet widgets JSR 168/286 portlets OpenAjax Hub | Portlet Widgets JSR 168/286 portlets OpenAjax Hub | gadgets OpenAjax Hub |
Technology Type | J2EE standard Requires server state to render responses | Browser-based | Browser-based | JAVA to JavaScript compiler |
Distribution | Open Source, | Open Source | Open Source | Open Source |
Major Supporter | Oracle (previously SUN) | IBM | Microsoft | Google |
Tooling | - Eclispe WTP (Free) - Tooling also available from various J2EE container and Portal vendors: IBM, Oracle, RedHat | IBM Portlet Factory IBM Lotus Widget Factory RAD 7.5 with Portlet Toolkit | Limited tooling for developing J2EE/Java compatible components | Google Web Toolkit (Free) |
| - JSF 2.0 specification is not fully adopted by all J2EE vendors - - There are state management issues when using standard | - Modular Core - Comprehensive library of | - Small Core - Comprehensive library of - Good integration with HTML controls and layout editors | Widgets implemented as Java classes and converted to JavaScript by the Toolkit compiler |
Services | Traditional HTTP | REStful/JSON | RESTful/JSON or traditional HTTP | RESTful/JSON or RPC |
Cost | Framework is free, Additional fees for vendor services and tooling licensing can be applicable | Framework is free Additional licensing costs for IBM Tooling | Framework is free Limited J2EE Tooling | Framework and Tooling is free SmartGWT is a well defined set of third party GWT components derived from the SmartClient JavaScript libraries. |
After comparing various approaches, Dojo and jQuery
IBM provides very comprehensive tooling for developing solutions using Dojo widgets. One drawback of using IBM tooling is a need to design UI pages exclusively using Dojo widgets.
Figure. IBM Tooling for Developing Web 2.0 Rich UI Components
Tooling | IBM Portlet Factory | IBM Lotus Widget Factory | RAD 7 Portal Toolkit |
Components Type | JSR 168/286 portlets | iWdgets | JSR 168/286 portlets and iWidgets |
Language | IBM Eclipse WYSIWYG | IBM Eclipse WYSIWYG | JSP, JSF, Dojo |
Technology Type | Collection of builders abstracting JSP and Dojo code generation | Collection of builders abstracting Dojo libraries | Wizards for creating portlets and iWidgets Environment for unit testing iWidgets and Portlets |
| Dojo builders | Dojo builders | Dojo Wizards Any |
Container | IBM Portlet Server | | IBM Portlet Server |
Usability | - Appropriate for developers accustom to WYSIWYG tooling - Significant learning curve for J2EE and | - Appropriate for developers accustom to WYSIWYG tooling - Significant learning curve for J2EE and | Moderate learning for developers familiar with J2EE and |
Interfaces | SOAP and RESTful builders | RESTful builders | SOAP and RESTful builders Support for JAX-WS and JAX-RS |
Openness | Targets IBM WebSphere Portal | | Wizards generate code for IBM WebSphere Portal and |
Other | Prepackaged builders supporting integration with | | |
Costs | Tooling license | Tooling license | RAD 7.5 license Tooling available as optional download |
Community interest in a particular framework is also an important factor for solution vendors. According to Google Trends, interest in the jQuery framework increased dramatically over the last few years. Current trends may indicate wider community adoption of jQuery framework in the coming years.
Figure. Google Trends Comparing Worldwide Traffic for jQery, Dojo, and Yahoo UI Frameworks.

Performance
Framework performance is another important factor. As depicted below, the jQuery library performance noticeably improved in recent releases. The published performance results in February 2010 indicate that Dojo and jQuery are currently the best performing JavaScript libraries.
Figure. JavaScript Frameworks Performance Comparison.
Benefits of RESTful Services
Ajax Web 2.0 frameworks not only offer appealing widgets, improve usability and productivity, but also provide a foundation for building extremely scalable solutions that can support thousands, or even millions, of concurrent users. Google pioneered the adoption of
Services reusability is another benefit. Since the RESTful services exclusively pass data without formatting or layout details, the same services can be reused by a large pool of diverse devices. A SmartPhone rendering implementation can call the same RESTful service as a desktop application and extract only the applicable subset of returned JSON data. Other important benefits include simplified performance and load testing.
Mashups
By selecting the IBM delivery platform, developers benefit from
Cloud Deployment
Implementation and administration of complex distributed solutions are time consuming and require skillful engineers. Administrators of clustered solutions have to administer and monitor a great variety of disperse hardware devices and software components, such as network appliances, load balancers, web servers, application servers, deployment managers, databases, and storage area networks (SAN). Adding a new node to a cluster necessitates provisioning of new hardware, installing software, and configuration changes to load balancer.
One of the goals of cloud computing is to eliminate or streamline administration, monitoring, and deployment tasks. For example, the Amazon cloud leverages virtualization to offer utilities for provisioning new instances in minutes rather than days. Amazon elastic cloud infrastructure supports the commissioning of hundreds or even thousands of virtual servers while elastic load balancing significantly simplifies the configuration and monitoring of these virtual clusters. Amazon cloud customers benefit from using proven infrastructure to deliver their services without the need to administer network infrastructure. As Amazon continues to grow and add new data centers, cloud customers benefit from infrastructure redundancy by spreading virtual instances across these globally dispersed datacenters.
Read all the related Posts:
ReplyDeleteSoftware Testing FAQ and Interview Questions and Answers
When to use a Test Automation Tool?
What is a Test Case Template?
What is a Test Scenario Template?
What is the structure of a software test plan?
Beginner's Guide to web testing
What is Manual Testing?
How to avoid missing defect in Software Testing?
Overview of Software Testing Risk Management
What is cloud testing - the future of software testing?
What are Entry and Exit Criteria in the Software testing life cycle?