| Rich Internet Applications |
Article Index for Rich |
Website Links For Rich |
Information AboutRich Internet Applications |
| CATEGORIES ABOUT RICH INTERNET APPLICATION | |
| software architecture | |
|
RIAs typically:
HISTORY OF RIAS The term "Rich Internet Application" was introduced in a Macromedia White Paper in March 2002 , though the concept had been around for a number of years before that under different names such as:
COMPARISON TO STANDARD WEB APPLICATIONS Traditional web applications centered all activity around a Client-server architecture with a Thin Client . Under this system all processing is done on the server, and the client is only used to display static (in this case HTML ) content. The biggest drawback with this system is that all interaction with the application must pass through the server, which requires data to be sent to the server, the server to respond, and the page to be reloaded on the client with the response. By using a client side technology which can execute instructions on the client's computer, RIAs can circumvent this slow and synchronous loop for many user interactions. This difference is somewhat analogous to the difference between " Terminal and Mainframe " and Client-server / Fat Client approaches. Internet standards have evolved slowly and continually over time to accommodate these techniques, so it is hard to draw a strict line between what constitutes an RIA and what does not. But all RIAs share one characteristic: they introduce an intermediate layer of code, often called a ''client engine'', between the user and the server. This client engine is usually downloaded at the beginning of the application, and may be supplemented by further code downloads as the application progresses. The client engine acts as an extension of the browser, and usually takes over responsibility for rendering the application's user interface and for server communication. What can be done in an RIA may be limited by the capabilities of the system used on the client. But in general, the client engine is programmed to perform application functions that its designer believes will enhance some aspect of the user interface, or improve its responsiveness when handling certain user interactions, compared to a standard Web browser implementation. Also, while simply adding a client engine does not force an application to depart from the normal synchronous pattern of interactions between browser and server, in most RIAs the client engine performs additional asynchronous communications with servers. Benefits Because RIAs employ a client engine to interact with the user, they are:
The most sophisticated examples of RIAs exhibit a Look And Feel approaching that of a Desktop Environment . Using a client engine can also produce other performance benefits:
Shortcomings and restrictions Shortcomings and restrictions associated with RIAs are:
Management complications The advent of RIA technologies has introduced considerable additional complexity into Web applications. Traditional Web applications built using only standard HTML, having a relatively simple Software Architecture and being constructed using a limited set of development options, are relatively easy to design and manage. For the person or organization using RIA technologies to deliver a Web application, their additional complexity makes them harder to design, test, measure, and support. Use of RIA technology poses several new Service Level Management ("SLM") challenges, not all of which are completely solved today. SLM concerns are not always the focus of application developers, and are rarely if ever perceived by application users, but they are vital to the successful delivery of an online application. Aspects of the RIA architecture that complicate management processesRich Internet Applications: Design, Measurement, and Management Challenges, Keynote Systems, 2006 (pdf) . are:
THE CURRENT STATUS OF RIA DEVELOPMENT AND ADOPTION RIAs are still in the early stages of development and user adoption. There are a number of restrictions and requirements that remain:
JUSTIFICATIONS Although developing applications to run in a web browser is a much more limiting, difficult, and intricate a process than developing a regular Desktop Application , the efforts are often justified because:
This last point is often true even if this alternative is slower or not as feature-rich. A good example of this phenomenon is Webmail . METHODS AND TECHNIQUES JavaScript The first major client side language and technology available with the ability to run code and installed on a majority of web clients was JavaScript . Although its uses were relatively limited at first, combined with layers and other developments in DHTML it has become possible to piece together an RIA system without the use of a unified client-side solution. Ajax is a new term coined to refer to this combination of techniques and has recently been used most prominently by Google for projects such as Gmail and Google Maps . However, creating a large application in this framework is very difficult, as many different technologies must interact to make it work, and browser compatibility requires a lot of effort. In order to make the process easier, several open source Ajax Frameworks have been developed, as well as commercial frameworks. Adobe Flash Adobe Flash is another way to build Rich Internet Applications. This technology is cross-platform and quite powerful to create application UI. Adobe Flex provides the option to create Flash user interface by compiling MXML, a XML based interface description language. Adobe is currently working on providing a more powerful platform with the product Adobe AIR , a technology combining HTMLs (including Ajax applications) Flash player based applications and PDFs. OpenLaszlo OpenLaszlo is an open source rich Internet application framework developed by Laszlo Systems Inc. . The OpenLaszlo server compiles programs written in the LZX language (a mixture of XML tags and JavaScript ) into either DHTML (commonly known as AJAX now) or Adobe Flash bytecode, currently supporting Flash7 and Flash8. The server - which originally was a proprietary software - was open sourced in October 2004 under the Common Public License . OpenLaszlo is the only rich Internet application platform which is capable of compiling into two different runtimes from the same code base. Windows Presentation Foundation and Silverlight With the .NET 3.0 Framework, Microsoft introduced Windows Presentation Foundation (WPF) which provides a way to build single-platform applications with some similarities to RIAs using XAML and languages like C# and Visual Basic. In addition, Microsoft has announced Silverlight , which may eventually provide a subset of WPF functionality on devices and other platforms. ActiveX Controls Embedding ActiveX controls into HTML is a very powerful way to develop rich Internet applications, however they are only guaranteed to run properly in Internet Explorer . Furthermore, since they can break the sandbox model, they are potential targets for Computer Virus es and Malware making them high security risks. At the time of this writing, the Adobe Flash Player for Internet Explorer is implemented as an ActiveX control for Microsoft environments, as well as in multi-platform Netscape Plugin wrappers for the wider world. Only if corporations have standardized on using Internet Explorer as the primary Web Browser , is ActiveX per se a good choice for building corporate applications. Curl 5.0, Rebol 2.6 and Seaside for Smalltalk Alternatives to Java and the JVM for RIA are not lacking: three alternative abstract machines are available in the form of the Curl , Rebol and Smalltalk . Curl facilitates Client-side persistent data, Rebol does not require a browser and Seaside for Smalltalk uses a minor extension to Smalltalk to provide a much richer web experience. All three alternatives are far more mature than more familiar options and as old or older than Java and the JVM. JavaFX Sun Microsystems has announced JavaFX , a family of products based on Java technology designed to provide a consistent experience across a wide variety of devices including desktops, (as applets and stand-alone clients) set-top boxes, mobile devices, and Blu-Ray players. The JavaFX platform will initially comprise JavaFX Script and JavaFX Mobile. Invented by Sun Software Engineer Chris Oliver as a Skunk Works project, JavaFX Script enables rapid development of rich 2D interfaces using a declarative syntax similar to SVG . Sun plans to release JavaFX Script as an open source project, but JavaFX Mobile will be a commercial product available through an OEM license to carriers and handset manufacturers. Java applets Java Applet s run in standard HTML pages and generally start automatically when their web page is opened with a modern web browser. Java applets have access to the screen (inside an area designated in its page's HTML), as well as the speakers, keyboard and mouse of any computer their web page is opened on, as well as access to the Internet, and provide a sophisticated environment capable of real time applications. Java applications Java based RIAs can be launched from within the browser or as free standing applications via Java Web Start . Java RIAs can take advantage of the full power of the Java platform to deliver rich functionality, 2D & 3D graphics, and off-line capabilities, but at the cost of delayed startup. Numerous frameworks for Java RIAs exist, including XUL-like XML-based frameworks such as XUI , Swixml , or Canoo's thin Swing-approach, UltraLightClient . User Interface languages As an alternative to HTML / XHTML new User Interface Markup Language s can be used in RIAs. For instance, the Mozilla Foundation 's XML-based User Interface Markup Language XUL - this could be used in RIAs though it would be restricted to Mozilla-based browsers, since it is not a '' De Facto '' or '' De Jure '' standard. The W3C 's Rich Web Clients Activity1 has initiated a ''Web Application Formats Working Group'' whose mission includes the development of such standards 2. The original DARPA project at MIT which resulted in the W3C also resulted in the the web content language Curl which is now in version 5.0. RIA's user interfaces can also become richer through the use of scriptable SVG (though not all browsers support native SVG rendering yet) as well as SMIL . Other techniques RIAs could use XForms to enhance their functionality. Using XML and XSLT along with some XHTML , CSS and JavaScript can also be used to generate richer client side UI components like data tables that can be resorted locally on the client without going back to the server. Mozilla and Internet Explorer browsers both support this. The Omnis Web Client is an ActiveX control or Netscape plug-in which can be embedded into an HTML page providing a rich application interface in the end-user's web browser. RIA with real-time push Traditionally, web pages have been delivered to the client only when the client requested for it. For every client request, the browser initiates an HTTP connection to the web server, which then returns the data and the connection is closed. The drawback of this approach was that the page displayed was updated only when the user explicitly refreshes the page or moves to a new page. Since transferring entire pages can take a long time, refreshing pages can introduce a long latency. Demand for localised usage of RIA With the increasing adoption and improvement in broadband technologies, fewer users experience poor performance caused by remote latency. Furthermore one of the critical reasons for using an RIA is that many developers are looking for a language to serve up desktop applications that is not only desktop OS neutral but also installation and system issue free. RIA running in the ubiquitous web browser is a potential candidate even when used standalone or over a LAN, with the required webserver functionalities hosted locally. Client-side functionalities and development tools for RIA needed With client-side functionalities like Javascript and DHTML, RIA can operate on top of a range of OS and webserver functionalities. REFERENCES SEE ALSO
EXTERNAL LINKS
|
|
|