Está en la página 1de 5

2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications

The Web as an Application Platform: The Saga Continues


Antero Taivalsaari
Advanced Systems Engineering (ASE) Nokia Research Center Tampere, Finland antero.taivalsaari@nokia.com
Abstract The World Wide Web is the most powerful medium for information sharing and distribution in the history of humankind. In this paper we take a look at the evolution of the Web from a relatively simple document sharing system to a massively popular, general purpose application and content distribution environment. We focus especially on the rapidly increasing use of the Web as a software platform. So far, a number of obstacles have hindered the development and deployment of full-fledged, truly interactive web applications. However, emerging standards such as HTML5 and WebGL are removing the limitations, and transforming the Web into a real application platform. We believe that in the future the use of conventional binary programs will be limited to system software, whereas the vast majority of end user software will be developed using web technologies. Keywords-web programming; web-based development; web evolution; HTML5; WebGL software

Tommi Mikkonen
Department of Software Systems Tampere University of Technology Tampere, Finland tommi.mikkonen@tut.fi In this paper we take a look at the history and evolution of the World Wide Web from a relatively simple document sharing system to a massively popular, general purpose application and content distribution environment. We focus especially on the rapidly increasing use of the Web as a software application platform. As summarized in our earlier SEAA2008 paper [1], so far a number of obstacles have hindered the development and deployment of full-fledged, truly interactive web applications. However, emerging standards such as HTML5 and WebGL are removing those limitations, and transforming the Web into a real software platform. We believe that in the future the use of conventional binary programs will be confined to system software, whereas the vast majority of end user software will be developed using web technologies. The structure of this paper is as follows. In Section II, we provide a historical overview of the evolution of the Web, focusing especially on the transition from web pages towards web applications. Section III presents some of the key enabling technologies that are in the forefront of the emergence of real web applications. In Section IV, we discuss the pieces that are still missing, as well as revisit some of the observations in our previous SEAA paper [1]. Finally, Section V summarizes the paper and outlines ideas for future research. II. EVOLUTION OF THE WEB AS A SOFTWARE PLATFORM Over the years, the World Wide Web has evolved from a simple document sharing system to a massively popular, general purpose application and content distribution environment. This evolution has not taken place overnight. Rather, the history of the Web has undergone a number of evolutionary phases, reflecting the document-oriented as opposed to application-oriented origins of the Web. At the high level, we distinguish three different periods or eras in the evolution of the Web (Fig. 1). In the first era the Web as a document environment the programming capabilities of the Web were very limited, reflecting the origins of the Web as a document sharing and distribution environment. In the second era the Web as an application environment the software development capabilities of the Web started emerging, with different technologies competing vigorously. In the third era that is unfolding currently, we believe that the transition towards the Web as the application environment will fundamentally affect the landscape of the software industry, shifting the balance irrevocably from binary end user software to web-based software.

I.

INTRODUCTION

The World Wide Web is such an integral part of our lives today that it is very easy to forget that the Web did not even exist twenty five years ago. The original design documents related to the World Wide Web date back to the late 1980s. The first web browser prototype for the NeXT computer was completed by Tim Berners-Lee in December 1990. The first version of the Mosaic web browser was made available publicly in February 1993, and the first commercially successful browser Netscape Navigator was released in late 1994. Widespread commercial use of the Web did not take off until the late 1990s. In about twenty years, the Web has transformed our lives in numerous ways. These days, everyday artifacts and services such as documents, photos, music, videos and newspapers are widely available on the Web. Online banking and stock trading have become commonplace. Various documents that used to be difficult to access, such as municipal zoning documents, government budget documents or tax records, are now readily available on the Web. For most people the web browser has become the most commonly needed and often the only computer program that they use. Various industries such as banking, financial services, electronics retailing and music distribution have undergone dramatic transformations as a consequence. Webbased services such as Facebook and Twitter have altered the meaning of social life. The World Wide Web is even having a profound impact on politics and democracy, shaping the future of nations all over the planet.
978-0-7695-4488-5/11 $26.00 2011 IEEE DOI 10.1109/SEAA.2011.35 170

The different eras are depicted in Fig. 1. We will discuss the eras and their characteristics in more detail in the following subsections. Note that the three eras presented here are by no means mutually exclusive. Rather, web pages and applications representing all three eras coexist on the Web today and will continue to coexist in the foreseeable future. A. The Web as a Document Environment Classic Web. In the early life of the World Wide Web, web pages were truly pages, i.e., page-structured documents that contained primarily text with interspersed images, without animation or any interactive content. Navigation between pages was based on simple hyperlinks, and a new web page was loaded from the web server each time the user clicked on a link. There was no need for asynchronous network communication between the browser and the web server. Some pages were presented as forms, with simple textual fields and the possibility to use basic widgets such as buttons and radio buttons. These types of classic web pages were characteristic of the early life of the Web in the early 1990s (see Fig. 1). Hybrid Web. Gradually, with the introduction of DHTML [2] the combination of HTML, Cascading Style Sheets (CSS), the JavaScript language [3], and the Document Object Model (DOM) it became possible to create interactive web pages with built-in support for more advanced graphics and animation. The JavaScript scripting language, introduced in Netscape Navigator version 2.0B in December 1995, made it possible to build animated, interactive content more easily. Towards the late 1990s, web pages became increasingly interactive, with animated graphics and plug-in components that allowed richer, more interactive content to be displayed. This phase coincided with the commercial takeoff of the Web during the dot-com boom of the late 1990s when companies realized that they could create commercially valuable web sites by displaying advertisements or by selling merchandise and services over the Web. Plug-in components such as Flash, RealPlayer, Quicktime and Shockwave were introduced to make it possible to construct web pages with visually enticing, interactive multimedia, allowing advanced animations, movie clips and audio tracks to be inserted in web pages. In this phase, the Web started moving in directions that were unforeseen by its original designer, with web sites behaving more like multimedia presentations rather than static pages. Content mashups and web site cross-linking became popular. Navigation was no longer based solely on links, and communication between the browser and the server became increasingly advanced. For a while in the late 1990s, it seemed that the Java programming language [4] and Java applets would become the dominant application development technology for the Web. Had the Java virtual machine been integrated in the core of the web browser, rather than being available only as a separately installed plug-in, application development for the Web would likely be very different and in many respects significantly better than it is today.

Figure 1. Evolution of the Web as an Application Platform (higher quality image available at: http://lively.cs.tut.fi/WebEvolution.png)

B. The Web as an Application Environment Ajax. In the early 2000s, the first signs of using the web browser itself as an application platform started emerging. Interest in the use of the browser as an application platform was sparked by the introduction of asynchronous network communication support in the web browser, and the advent of the term Ajax (Asynchronous JavaScript and XML) [5]. The key idea in Ajax was to use asynchronous communication between the client and the server in order to separate the user interface updates from network requests. This makes it possible to build web sites that behave much like desktop applications, for example, by allowing web pages to be updated asynchronously one user interface element at a time, rather than requiring the entire page to be updated each time something changes. Although Ajax was primarily a specific technique than a complete development model or platform, the general ideas spread rapidly, sparking interest in building real applications that can run in a standard web browser. Companies such as Salesforce.com (http://www.salesforce.com/) built successful businesses offering applications as services over a web browser. Once people started writing significant applications using Ajax, the limitations of the web browser became obvious. More specifically, the lack of a comprehensive set of platform APIs in the web browser (to access the capabilities of the underlying computer or device) made it difficult to

171

build compelling applications that would have comprehensive functionality while being portable across different web browsers. Furthermore, the graphics capabilities of the web browser were not really designed for truly interactive applications based on direct manipulation of graphical objects. Rich Internet Applications (RIAs). The popularity of Ajax and the overall trend towards desktop-style web applications gave rise to the notion of Rich Internet Applications (RIAs). The basic idea in RIA platforms such as Adobe AIR, Google Web Toolkit, Microsoft Silverlight and Sun JavaFX was to re-introduce an existing desktop programming technology and make it available via a custom runtime or a web browser plug-in. For instance, Microsoft Silverlight [6] is a plug-in based environment built around the C# programming language and a rich set of APIs and tools, combined with the declarative user interface definition language XAML. Google Web Toolkit and Suns (now Oracles) JavaFX, in contrast, are built around the Java programming language. RIA technologies are not really web technologies in the literal sense. Rather, RIA systems are usually designed to hide the built-in programming capabilities of the Web (e.g., access to JavaScript, CSS and the DOM) and replace them with other languages, libraries and tools that are better suited to the development of highly interactive, desktop-style applications. In that sense, RIA systems represent the revenge of the earlier desktop application platforms. While RIA systems offer many benefits especially to application developers, the downside of these technologies is that they usually require additional plug-in components or browser modifications. Perhaps for this reason albeit RIA systems seemed to enjoy considerable success for a while the use of such systems seems to be on the wane today. Web Widgets. In the mid-2000s, the Web started attracting the interest of mobile software developers. However, given that mobile web usage suffers from various limitations, ranging from screen size issues, processing power limitations to unreliable network connections, the early history of the mobile Web is rife with missteps such as the Wireless Application Protocol (WAP) that we will gladly ignore in this paper. One particular technology area that received a lot of interest in the late 2000s was web widgets. A web widget is pre-packaged, purpose-built web application that can be installed and then executed in a mobile device. Web widgets differ from HTML5-style web applications in the sense that for web widgets, the installation formats and practices have been predefined specifically to resemble those of traditional (native) applications. For instance, each W3C web widget [7] is packaged into a separate WGT (ZIP) file that is installed explicitly in the same fashion as binary applications. This is different from HTML5 applications that run in a web browser without explicit installation. Web widget standards for mobile devices have been defined in many standards forums. Perhaps the best known early activities were OMTP Bondi (http://bondi.omtp.org/) and JIL (http://www.jil.org/) that were later combined to form the Wholesale Application Communitys (WAC) Widget

Runtime Technical Specification [8]. The best known activity in this area today is the W3C Web Widget Specification [7] defined by the W3C Web Applications Working Group. Note that in addition to specifying the application packaging conventions, these activities are also creating Device API standards to provide access to mobile specific functions such as SMS/MMS sending, telephony and sensors. Although people from the standards activities above would probably disagree with us, we claim that web widgets represent the worst of two worlds: they combine the use of conventional, rigid, explicit installation practices (familiar from binary applications) with languages and tools that usually result in applications that run slower and are often harder to maintain than their native counterparts. As of this writing, the trend towards web widgets seems to be waning, as HTML5 seems to be capturing the mindshare of mobile web developers as well. We will discuss HTML5 in more detail later in this paper. Native Web Client Applications (Apps). A recent article in the Wired Magazine by Chris Anderson and Michael Wolff claimed provocatively that the (World Wide) Web is Dead [9]. Their claim was based on two main arguments. The first argument was that the amount of network traffic generated by web page downloads has decreased dramatically over the years in proportion to the other traffic on the Internet, e.g., compared to the amount of network traffic generated by video and music downloads. We will ignore this first argument, since it has already been widely discussed and rebutted in the press. Andersons and Wolffs second argument was that surfing web pages with a web browser as we have known will come to an end, since for the vast majority of important web services (e-mail, Facebook, Twitter, Skype, etc.) there will be custom-built native applications (apps) that the users will prefer over open, unfettered web browser access. Anderson and Wolff argue that the trend towards such apps will be even more evident in the mobile device space in which the use of the web browser according to the authors has already lost the battle against custom-built native client apps. For instance, on Apples iPhone and iPad devices, the users typically access Facebook and Twitter using custombuilt apps rather than with the web browser. While it is tempting to think that the popularity of custom-built native applications for mobile devices would somehow confirm that the use of open, unfettered Web will eventually fail, we think that the trend towards such custom applications is only temporary. Such a trend reflects only the fact that it is easier to create a business model around conventional applications that customers will have to download and install from a dedicated app store. There are no fundamental technical reasons why pure web applications could not offer capabilities that would match those of the corresponding native apps. C. The Web as the Application Environment The 2010s will be a very exciting era in the software industry. As shown in Fig. 1, we anticipate that there will be a major battle between two types of technologies: (1) native web apps and (2) pure HTML5+ web applications that run in

172

a web browser or in some other standards-compliant web runtime environment. This battle of the decade will determine the future of the software industry. Although there is going to be considerable disagreement about the outcome of this battle in the near term, our belief is that the Web will eventually win. This is because the distribution model for pure web apps is so much more powerful: there is no installation required; applications and upgrades can be made available worldwide instantly; basically, anybody can develop and deploy such apps from their own site, regardless of their physical location. Our prediction is that towards the end of this decade, the Web will become the dominant platform for the majority of end user software. We have discussed the resulting death of binary software in more depth in another paper [10]. III. ENABLING TECHNOLOGIES AND TRENDS In this section we take a brief look at some important technologies and initiatives that are aimed at improving the use of the Web as the application platform. We will start the discussion by summarizing HTML5 [11] perhaps the best known forthcoming standard in the web browser area. We will also discuss WebGL [12] a cross-platform web standard for hardware accelerated 3D graphics. In our opinion, WebGL is one of the most exciting, but still mostly overlooked, new standard that will dramatically change the perception of the capabilities of the web browser and web applications more generally. A. HTML5 The forthcoming HTML5 standard [11] complements the capabilities of the existing HTML standards with numerous new features. Although HTML5 is a general-purpose web standard, many of the new features are aimed squarely at making the Web a better place for desktop-style web applications. The list below summarizes the new features in an order that reflects the usefulness of the features in supporting desktop-style applications: 1) Offline applications. The HTML5 will provide offline application capabilities that allow web applications to run even when an active network connection is not available (http://www.w3.org/TR/offlinewebapps/). 2) Local storage. HTML5 will offer a local storage mechanism that behaves like a simple key-value database, allowing textual data to be stored locally in the computer/device. 3) Canvas API. The Canvas API provides a 2D drawing canvas for procedural, interactive graphics, allowing graphical shapes, bitmaps and text to be rendered flexibly in the web browser. 4) Built-in audio and video support. HTML5 will support <audio> and <video> tags that allow media files to be played without external browser plug-in components. 5) Asynchronous script loading. HTML5 will support asynchronous loading of scripts using the new async attribute of the <script> tag. 6) Drag-and-drop support. Drag-and-drop support is essential in interactive applications.

7) Context menus. Programmatic control of browser menus is important in interactive applications. 8) Cross-document messaging. The new cross-document messaging feature allows web pages to communicate safely. 9) Editable web pages. The new contentEditable attribute allows client-side, in-browser, rich text page edits. In addition to the features listed above, the HTML5 Specification defines numerous smaller additions and enhancements related to, e.g., browser history management, new input types, MIME types and protocol handler registration and microdata. Note that there are many other W3C standards activities such as the Geolocation, Web Workers and Web Sockets APIs that are closely related to HTML5. Many of these specifications as well as the HTML5 Specification itself [11] are still under definition, so the final feature set and their details may still vary. B. WebGL WebGL (http://www.khronos.org/webgl/) [12] is a crossplatform web standard for hardware accelerated 3D graphics API developed by Mozilla (http://www.mozilla.org) and Khronos Group (http://www.khronos.org/), and a consortium of additional companies including Apple, Google and Opera. The main feature that WebGL brings to the Web is the ability to display 3D graphics natively in the web browser without any plug-in components. WebGL is based on OpenGL ES 2.0 (http://www.khronos.org/opengles), and it uses the OpenGL shading language GLSL. WebGL runs in the HTML5 canvas element, and WebGL data is generally accessible through the web browsers Document Object Model (DOM) interfaces. A comprehensive JavaScript API is provided to open up OpenGL programming capabilities to JavaScript programmers. The possibility to display 3D graphics natively in a web browser is one of the most exciting things happening on the Web for quite a while. Displaying 3D graphics content on the Web has been possible in the past with technologies such as Flash, O3D, VRML and X3D, but only with certain browsers or if the necessary browser plug-in components have been installed explicitly. However, with WebGL the 3D capabilities are integrated directly in the web browser, meaning that 3D content can run smoothly and fully portably in any standards-compliant browser without application installation or additional components. Viewed from distance, the most dramatic impact of WebGL is that it will effectively eliminate the last safe bastion of conventional binary applications. Although the majority of end user software has already started migrating towards the Web, so far it has been very difficult to convince game developers and players to take web-based software seriously. This is partly because suitable development APIs were not available, and partly because until recently the execution speed of web-based software was wholly inadequate for CPU-hungry gaming applications. However, with the recent introduction of high-performance JavaScript engines, the situation has changed dramatically. Note that since WebGL is available as a JavaScript API, the entire graphics environment is dynamic, meaning that

173

applications can be scripted and customized on the fly. This allows rapid prototyping with fast design and implementation iterations. As with web software more generally, the deployment and upgrades of WebGL applications do not require anything else than making the latest and greatest source code available on the web server. Such interactive editing features and capabilities have been investigated extensively in the Lively 3D research project (http://livelygoes3d.blogspot.com/). IV. MISSING PIECES BEYOND HTML5 While HTML5 and related W3C standard activities play a critical role in turning the Web into the application platform of the decade, it is important to note that the feature set offered by an HTML5-compliant web browser is still somewhat incomplete for real-world applications. For instance, the platform/device APIs that are under definition will still offer only a limited access to features that are available in personal computers and mobile devices today. Furthermore, given that the necessary standards are defined in multiple, separate activities, it is likely that the standardization work does not yet result in a consistent platform. For instance, at the moment Microsoft has no plans to support WebGL in their upcoming IE9 browser. In general, since many vendors have a vested interest to ensure that their native software development platforms remain competitive, it is very likely that web platform standards will stay one or two steps behind the native application platforms. As shown in Fig. 1, our prediction is that another major round of standardization will be necessary in mid-to-late 2010s to establish a more complete web application platform. We refer to such standard work informally as HTML5+ or HTML.Next, that is, the next major version/successor of the HTML5 Specification. A critical goal in the definition of HTML5+ will be to more comprehensively virtualize the underlying operating system capabilities, as well as ensure that the necessary security mechanisms are in place. The limitations of the web browser as an application platform have been analyzed extensively in our earlier SEAA2008 paper [1]. Although considerable progress has been made, e.g., with browser performance, many of the issues presented in the earlier paper remain valid today. For example, unless more comprehensive compatibility test suites are created, browser compatibility is still going to be a major issue. Many interesting research topics related to usability, security, deployment and testing also remain. V. CONCLUSIONS The massive popularity of the World Wide Web is turning the web browser from a document viewing tool into a general-purpose host platform for various types of services, including desktop-style web applications. Web applications require no installation or manual upgrades, and they can be deployed instantly worldwide. These capabilities allow application development and instant worldwide deployment without middlemen or distributors. Conventional binary

applications are at a major disadvantage compared to webbased software that can be deployed instantly worldwide. So far, a number of obstacles have hindered the development and deployment of full-fledged, truly interactive web applications. However, over the past years many of the obstacles, especially those related to performance, have started disappearing quickly. In this paper we have taken a look at the evolution of the Web, and argued that new emerging standards such as HTML5 and WebGL will further eliminate remaining limitations, and transform the Web into a full-fledged application platform. In summary, we remain as excited as ever about the emergence of the Web as an application platform. Webbased applications open up entirely new possibilities for software development, and they can combine the best of both worlds: the excellent usability of conventional desktop applications and the instant worldwide deployment potential of the World Wide Web. We believe that the transition towards web-based applications will mark the end of binary end user software. In the future, the use of conventional binary programs will be limited to system software, while the vast majority of end user software will be developed using web technologies. All this will imply significant changes in the development, deployment and use of software, and open up exciting future opportunities in software engineering research as well. REFERENCES
[1] A. Taivalsaari, T. Mikkonen, D. Ingalls, and K. Palacz, Web Browser as an Application Platform, Proc. 34th Euromicro Conference on Software Engineering and Advanced Applications (SEAA'2008, Parma, Italy, September 3-5, 2008), IEEE Computer Society, pp. 293-302. [2] D. Goodman, Dynamic HTML: The Definitive Reference. O'Reilly Media, 2006. [3] D. Flanagan, JavaScript: The Definitive Guide, 5th Edition. O'Reilly Media, 2006. [4] J. Gosling, B. Joy, G. Steele, and G. Bracha, Java Language Specification, 3rd edition. Addison-Wesley, June 2005. [5] D. Crane, E. Pascarello, and D. James, Ajax in Action. Manning Publications, 2005. [6] L. Moroney, Introducing Microsoft Silverlight 3. Microsoft Press, 2009. [7] World Wide Web Consortium, W3C Widget Packaging and Configuration Specification. W3C Working Draft, March 22, 2011. URL: http://www.w3.org/TR/widgets/ [8] Wholesale Application Community (WAC), WAC Device Specifications, version 2.0, January 28, 2011. URL: http://www.wacapps.net/web/portal/wac-2.0-spec [9] C. Anderson and M. Wolff, M., The Web is Dead: Long Live the Internet, Wired, September 2010, pp. 118-127 and 164-166. [10] A. Taivalsaari, T. Mikkonen, M. Anttonen, and A. Salminen, The Death of Binary Software: End User Software Moves to the Web, Proc. 9th Conference on Creating, Connecting and Collaborating through Computing (C5'2011, Kyoto, Japan, January 18-20, 2011), IEEE Computer Society. [11] World Wide Web Consortium, HTML5 Specification. W3C Working Draft, April 5, 2011. URL: http://www.w3.org/TR/html5/ [12] Khronos Group, WebGL Specification. Final Draft 1.0, February 18, 2011. URL: http://www.khronos.org/registry/webgl/specs/latest/

174

También podría gustarte