5 Steps to Next-Generation Web Applications

eWeek.com - August 26, 2007
Jim Rapoza

From eweek.com

New Web applications are bringing the world closer to the Web as operating system.

As the Web was born and grew in importance in the early 1990s, it immediately changed the way the world connected, communicated and gained knowledge. And while the Web has had a major impact on all aspects of society, it has had an especially big effect on businesses.

From the get-go, the Web has been a moving target when it comes to a company's ability to stay on top of changing technologies and dynamics.

At first, the Web was mainly a static place, consisting of basic HTML pages. But as the first-mover companies got up to speed, it quickly changed into a place that used CGI (Common Gateway Interface)- and Perl-based applications, along with new security technologies, to enable a whole host of new capabilities—most notably, e-commerce.

And again, just as companies were getting comfortable, XML, SOAP (Simple Object Access Protocol) and other new technologies opened up the world of SOA (service-oriented architecture), completely changing how applications, systems and businesses connected. This was followed by the whole 2.0 phenomenon of blogs, wikis and social networking.

Now, just as your company is finally feeling at ease with 2.0 technologies, the Web is set to move on again.

The next generation of the Web is marked by dynamic, interactive, open and highly flexible applications that not only go beyond the capabilities of classic Web applications but also exceed the features of desktop applications.

In short, this next generation of Web applications is bringing us much closer to a future of the Web as an operating system. And now is the time for businesses to get ready for the latest change in Web technology.

In this IT Planner, eWEEK looks at the five key attributes of these cutting-edge Web technologies and offers some tips on ways that companies can prepare for and even begin building and deploying some of these innovative Web applications.

After all, when it comes to Web technology, standing still is not an option.

Step 1: Build Rich Web Applications

When a Web or Internet application is referred to as "rich," it generally means that it is highly interactive, has an intuitive user interface as good as or better than a desktop application, and has a wealth of features and capabilities.

On the Web, a rich application interface will include things such as drag-and-drop capabilities in the places where a user would expect it, contextual drop-down and right-mouse menus, and interactive and real-time data responsiveness when it comes to things such as graphs and reports.

An important thing to understand about a rich Web interface is that it doesn't necessarily entail lots of flashy animations and flashing icons. A simple and plain administrative interface for a server or service application can be extremely rich in the ways it provides information to users and allows them to define settings and parameters.

One of the main technologies in this area is AJAX (Asynchronous JavaScript and XML), a standards-based language that makes it possible to write a rich, browser-based interface that works identically in any standards-based Web browser.

The funny thing about AJAX is that it isn't really a new technology. Most of AJAX is based on established technologies such as JavaScript, but it is used in unique ways to create interactive Web applications.

One of the great things about AJAX is that it doesn't require learning new things. AJAX applications can be built in almost any editing and authoring environment, and tools from Microsoft's Visual Studio to Adobe's Dreamweaver include lots of tools and aids to get up and running with AJAX.

Other products to consider include Adobe's Flex and Microsoft's Windows Presentation Foundation, both of which are designed for developing rich Web applications that can run outside of a Web browser. However, keep in mind that both platforms rely on non-Web technologies, with Flex requiring Flash to run on a system and WPF needing Microsoft technologies such as WPF/Everywhere.

Finally, they say you can never be too rich, but that's not the case when it comes to Web apps: Too much interactivity can ruin a Web application. Just because you can add lots of menus, windows and cool animated graphics doesn't mean that you should.

Step 2: Remain 'Open'-Minded

One of the most amazing technological revolutions of the last 10 years has to be Web services and SOA. If you want proof, think back to the state of application and data integration before XML and Web services came on the scene in the late 1990s.

Back then, doing application and system integration meant dealing with a messy hodgepodge of custom data wrappers, APIs and proprietary connection systems. In many cases, it was nearly impossible for businesses and partners to connect their disparate business systems.

But in a short few years, Web services changed all this. Now, every modern enterprise application, database and framework uses standards-based technologies to easily enable complex and robust data and application integrations.

How did this happen? In a word, openness. Right from the beginning, the world of SOA decreed that if a business, developer or software vendor wanted to play, it had to be based on open standards. Even vendors that had traditionally been inclined to go the proprietary route embraced standards in SOA, clearly understanding that not being able to integrate with standards would leave them on the outside looking in.

In the world of next-generation Web applications, this kind of adherence to openness is just as crucial. Gone are the days when sites and applications could work on just one Web browser and just one operating system.

For the most part, the core technologies of next-generation Web applications make it very easy to stick to both long-standing and emerging Web standards. As noted earlier, AJAX itself is based on common Web standards, and most good AJAX applications should work identically across browsers and platforms.

In addition, standards bodies such as the World Wide Web Consortium and OASIS are currently working on several new formats and standards specifications, such as Compound Document Format, that will add new capabilities for next-generation Web applications.

There is some concern over certain next-generation technologies, such as Flex and WPF. Since these are based on vendor technologies, there is the possibility that they won't be as open as options such as AJAX.

We recommend that businesses choose the open and standards-based path wherever and whenever possible. An application that is written in a proprietary way that makes it difficult to integrate with is one that will not be participating on the cutting edge of Web technologies. If the customers of an application find that it is dictating to them how they can use it, they will most likely stop using it. Sticking to open standards and systems ensures that an application can grow and adapt to emerging trends.

Step 3: Keep Data Dynamic

With old-school Web applications, data is treated in much the same way that a faucet treats water: The application can access the data but doesn't have much control over the data once it arrives.

Next-generation Web applications, in contrast, increasingly are able to handle data on the fly, allowing users to interact with data in real time rather than having to constantly reload the Web application to get new data.

Using technologies such as JSON (JavaScript Object Notation), next-generation Web applications give users more control over the data that is delivered to their applications. They also provide a much more robust level of fault tolerance, making it possible for data to be resident on client systems. This contrasts with the classic client/server-style Web application, where all access to the application and data is lost if the connection is lost. Another important change when it comes to data is the emerging Semantic Web and its related standards and technologies.

Semantic Web technologies will enable Web applications to query and interact with data held in sites and applications across the entire Web, making possible a whole new generation of data-aware applications.

The ability for next-generation Web applications to more robustly handle data also has greatly improved the ability to create and test applications. Many standard Web application development environments make it possible to use small XML and other data files to prototype, debug and test new Web apps.

This improved data management makes it possible to include in Web applications many of the things that are more common in standard desktop apps, such as local data stores, a high level of responsiveness and, of course, offline capabilities.

Step 4: Make It Available Offline

It's kind of funny to talk about offline as a next-generation feature. After all, isn't offline access a hallmark of old-school desktop applications? And isn't the future vision of the Web one in which people are always on and always connected, no matter where they are?

Well, that may be the vision, but it isn't the reality—and may not be, especially in the United States, for some time.

For next-generation Web applications to truly step to the forefront as alternatives to traditional desktop applications—and even as potential Web-based operating systems—they have to embrace the seemingly old-fashioned notion of offline access.

Think about it: Your company may have created a great new SAAS (software as a service) product that provides lots of value to customers. But if your customer's employees can't use the product during a 6-hour flight, a desktop-bound app might just start to look much more attractive.

The reality of the need to provide offline capabilities hasn't gone unnoticed by major players. Google, one of the biggest proponents of next-generation Web applications, has released a product called Gears, currently in beta, that makes it possible to provide offline access to Google applications.

In addition, Adobe's AIR (Adobe Integrated Runtime), set to ship by the end of the summer, makes it possible to build rich Internet applications that run outside of a browser and can use offline data (yes, this does sound much like a normal desktop application). Further, the Mozilla Foundation is planning on adding offline support in the next version of its Firefox browser.

Step 5: Be Flexible

Right now, many of the tools for offline access are still immature or yet to be released. And there hasn't been much activity related to standardizing offline access to Web applications, meaning that there will be competing and distinct tools for creating offline access for some time. However, businesses should begin evaluating these technologies now. As you build your next-generation applications, don't forget that your users and customers will be asking, "Is there a way to use this application when I'm not connected to the Web?"

Imagine you're a chef in a popular restaurant. You've put together your special dishes for the evening. Hopefully, customers will like them, but if they don't, there's not much that can be done to change the specials—at least not immediately. This is basically the same model for classic Web and desktop application development.

However, now imagine that many of your restaurant customers decide that they want to go into the kitchen and change and adapt your dishes themselves. They like your pasta, but they think they have a better recipe for shrimp. Or they want to use your burger, but add it to a pizza from another restaurant.

This is the model of next-generation Web applications: Users expect to be able to tweak, adapt and change the applications in unique ways to meet their own specific needs. This is often called a mashup.

In this model, your cool new application might find itself combined with an internal business application or mashed up with a popular free application from a big Web portal or search engine. It may even end up being combined with another application from a vendor you see as a competitor.

Especially for software vendors, this can be a scary proposition. In traditional models, these companies try to maintain strict controls over how their applications are used, upgraded and integrated.

But when it comes to next-generation Web applications, locking down your application is a mistake. To many users, a Web application that can't be easily customized or mashed up with other programs is a broken application—and one that won't be used or purchased. Letting users create mashups and allowing them to plug in functionality and integrate your application with other systems is the way to gain user loyalty.

Probably more than anything else, this is the key lesson about next-generation Web applications. The ability of these applications to constantly change and adapt to new technologies, standards and end-user desires will radically change not only Web application delivery but also how people look at all the software that they use.