Evaluation and comparison of Ajax Frameworks regarding applicability, productivity and technical limitations
- Art: Magisterarbeit
- Autor: Lukas Ostermaier
- Abgabedatum: Februar 2008
- Umfang: 138 Seiten
- Dateigröße: 4,2 MB
- Note: 1,0
- Institution / Hochschule: Technische Universität Wien Österreich
- Bibliografie: ca. 45
- ISBN (eBook): 978-3-8366-1058-2
- Sprache: Englisch
- Prämierung:
- Arbeit zitieren: Ostermaier, Lukas Februar 2008: Evaluation and comparison of Ajax Frameworks regarding applicability, productivity and technical limitations, Hamburg: Diplomica Verlag
- Schlagworte: Ajax, Wirtschaftsinformatik, Web 2.0, Web application, Framework
48,00 €
PDF-eBook Download: 48,00 €
Magisterarbeit von Lukas Ostermaier
Abstract:
For some years the Internet has been dominated by phrases like Web 2.0 and Ajax. The catchword Web 2.0, which was originally established by O’Reilly at the first Web 2.0 conference in October 2004, not only describes a new way of perception and usage of the internet (e.g. social software like blogs, wikis, etc.), but also stands for more or less innovative techniques as for instance RSS or Ajax. The latter is a combination of techniques that have been available since the late 1990s, such as JavaScript, asynchronous requests and XML. However, the term Ajax only exists since Jesse James Garret introduced it in his article in February 2005. Since then Ajax has experienced a real hype. Google Mail, Google Maps or Flickr just serve as examples for the mass of applications that have to attribute their success substantially to Ajax.
When it comes to web application development there has also been a lot of progress in the field of Ajax: Ajax frameworks of all kinds massively gained popularity and flooded the development community. From the biggest companies through to small development teams, almost everyone has published his own Ajax framework or library in the last two years. In the meantime there are far more than 150 different frameworks for various programming languages and diverse aims. Because of this uncontrolled growth of frameworks it is quite difficult to say which of those is most suitable for a specific project.
There are two key questions that have to be considered in case of Ajax or Rich Internet Applications (RIAs) in general: How can Ajax significantly increase the business value of an application and how can it be applied productively? This thesis mainly focuses on the latter question by evaluating three Ajax frameworks of large companies with a strong background by means of an example application with respect to commercial applicability, productivity, performance as well as enhancement and adaptation possibilities. Furthermore this work discusses the technical limitations and problems of Ajax and provides an outlook on future developments in this area.
As example application for the evaluation a web-based tracking system for public transportation is implemented. Each single vehicle is visualized on a street map according to its current position. By the implementation of this application with each of the three chosen Ajax frameworks their applicability, productivity and performance is illustrated as well as their weaknesses and limitations.
In order to provide a short overview about this topic, the term Rich Internet Application will be defined and compared to conventional web applications and discusses its advantages and weaknesses. In the next Section a short overview about the different RIA technologies is given and the basic differences to Ajax are highlighted. The technical aspects of Ajax will then be described; the section then gives a critical view on the hype of Ajax and reveals the challenges developers have to face when introducing Ajax. Furthermore some categories of typical Ajax applications as well as different levels of Ajax adoption are defined in this part.
The next section defines the general requirements for an Ajax framework, gives an overview over a short selection of diverging frameworks and classifies them in two different ways. Moreover, the sample application is described in detail and the evaluation procedure as well as the criteria upon which the evaluation is based are specified.
The following chapter represents the core of this paper by presenting each of the three frameworks explicitly including the results of the evaluation. At the end of this part these results are compared to each other in order to highlight the differences between these frameworks. Finally, an outlook on current trends and future developments is given.
Table of Contents:
| 1. | Introduction | 6 |
| 2. | The Trend to Rich Internet Applications | 8 |
| 2.1 | What is a Rich Internet Application? | 9 |
| 2.2 | Architectural Overview of RIAs | 11 |
| 2.3 | Advantages and Disadvantages of RIAs | 12 |
| 3. | Technologies for Rich Internet Applications | 15 |
| 3.1 | Silverlight | 16 |
| 3.2 | ava/JavaFX | 16 |
| 3.2.1 | JavaFX | 17 |
| 3.3 | Flash/Flex | 18 |
| 3.4 | OpenLaszlo | 18 |
| 3.5 | AIR (Adobe Integrated Runtime) | 19 |
| 3.6 | XUL | 19 |
| 3.7 | Ajax | 20 |
| 4. | Ajax | 23 |
| 4.1 | Technical Overview | 23 |
| 4.2 | Pure Hype or real Business Value? | 25 |
| 4.2.1 | Creating Business Value | 26 |
| 4.2.2 | Time for Adoption | 26 |
| 4.3 | Challenges of Ajax Adoption | 27 |
| 4.4 | Types of Ajax Applications | 29 |
| 4.5 | Levels of Ajax Adoption | 29 |
| 5. | Ajax Frameworks | 32 |
| 5.1 | Requirements for Ajax Frameworks | 32 |
| 5.2 | Ajax Frameworks Overview | 35 |
| 5.2.1 | Ajax Toolkit Framework | 35 |
| 5.2.2 | TIBCO General Interface | 36 |
| 5.2.3 | eXtensible Ajax Platform | 37 |
| 5.2.4 | ASP.NET Ajax | 38 |
| 5.2.5 | Backbase Ajax 360 | 39 |
| 5.2.6 | Direct Web Remoting | 41 |
| 5.2.7 | Dojo | 42 |
| 5.2.8 | Google Web Toolkit | 43 |
| 5.2.9 | JMaki | 45 |
| 5.2.10 | Prototype | 45 |
| 5.2.11 | Rico | 46 |
| 5.2.12 | Script.aculo.us | 47 |
| 5.2.13 | Spry | 47 |
| 5.2.14 | Yahoo! User Interface Library | 48 |
| 5.3 | Popularity of Ajax Frameworks | 48 |
| 5.4 | Categorization of Frameworks | 50 |
| 5.4.1 | Classification according to the Level of Adoption | 51 |
| 5.5 | Conclusion | 53 |
| 6. | Evaluation Procedure and Sample Application | 54 |
| 6.1 | Description of the Sample Application | 54 |
| 6.1.1 | Detailed Description of the Tracking System | 54 |
| 6.1.2 | Application specific Requirements for the Ajax Frameworks | 57 |
| 6.2 | Evaluation Procedure | 57 |
| 6.2.1 | Selection Criteria for the Ajax Frameworks | 58 |
| 6.2.2 | Selected Frameworks | 58 |
| 6.2.3 | Evaluation Criteria | 58 |
| 6.2.4 | Detailed Test Specification | 64 |
| 7. | Framework Evaluation | 69 |
| 7.1 | Adobe Spry Evaluation | 69 |
| 7.1.1 | Implementation of the Sample Application | 69 |
| 7.1.2 | General Aspects of the Framework | 71 |
| 7.1.3 | Developing Company and Community | 74 |
| 7.1.4 | History, Maturity, Outlook of the Framework | 75 |
| 7.1.5 | Costs of the Framework and Terms of License | 77 |
| 7.1.6 | Available Documentation and Support | 78 |
| 7.1.7 | Productivity of Development | 78 |
| 7.1.8 | Generated Traffic | 78 |
| 7.1.9 | Client-side Workload | 80 |
| 7.1.10 | Load and Response Times of the Application | 81 |
| 7.1.11 | Maintainability of the Application | 82 |
| 7.2 | Google Web Toolkit Evaluation | 82 |
| 7.2.1 | Implementation of the Sample Application | 82 |
| 7.2.2 | General Aspects of the Framework | 83 |
| 7.2.3 | Developing Company and Community | 89 |
| 7.2.4 | History, Maturity, Outlook of the Framework | 90 |
| 7.2.5 | Costs of the Framework and Terms of License | 92 |
| 7.2.6 | Available Documentation and Support | 92 |
| 7.2.7 | Productivity of Development | 92 |
| 7.2.8 | Generated Traffic | 93 |
| 7.2.9 | Client-side Workload | 94 |
| 7.2.10 | Load and Response Times of the Application | 95 |
| 7.2.11 | Maintainability of the Application | 96 |
| 7.3 | ASP.NET Ajax Evaluation | 96 |
| 7.3.1 | Implementation of the Sample Application | 97 |
| 7.3.2 | General Aspects of the Framework | 98 |
| 7.3.3 | Developing Company and Community | 103 |
| 7.3.4 | History, Maturity, Outlook of the Framework | 103 |
| 7.3.5 | Costs of the Framework and Terms of License | 105 |
| 7.3.6 | Available Documentation and Support | 105 |
| 7.3.7 | Productivity of Development | 106 |
| 7.3.8 | Generated Traffic | 106 |
| 7.3.9 | Client-side Workload | 107 |
| 7.3.10 | Load and Response Times of the Application | 108 |
| 7.3.11 | Maintainability of the Application | 109 |
| 7.4 | Overall Comparison | 109 |
| 7.4.1 | Analysis of the Features and general Aspects | 109 |
| 7.4.2 | Developing Company and Community Analysis | 110 |
| 7.4.3 | History, Maturity and Outlook Analysis | 111 |
| 7.4.4 | Cost and License Analysis | 112 |
| 7.4.5 | Analysis of the available Documentation | 113 |
| 7.4.6 | Analysis of the Productivity of Development | 113 |
| 7.4.7 | Traffic Analysis | 114 |
| 7.4.8 | Client-side Workload Analysis | 115 |
| 7.4.9 | Load and Response Time Analysis | 116 |
| 7.4.10 | Analysis of Maintainability Aspects | 117 |
| 8. | Further Issues and Outlook | 118 |
| 8.1 | Standardisation | 118 |
| 8.2 | Reverse Ajax | 119 |
| 8.3 | Offline Ajax | 119 |
| 8.4 | Mobile Ajax | 120 |
| 9. | Conclusion | 121 |
| A. | Detailed PCTS Specification | 123 |
| A.1 | Use Case Description | 123 |
| A.2 | Design Overview | 126 |
| B. | Detailed Evaluation Results | 129 |
| References |
Text Sample:
Chapter 5, Ajax Frameworks:
The terms framework, library and toolkit are often used synonymously although their concepts are not exactly the same. Since there are different definitions of these terms and even the vendors do not really conform to them, there is no concrete differentiation between these concepts in this paper. Far more important than how they are called are the features and characteristics of the frameworks.
In the field of Ajax, a framework, library or toolkit has to assist the developer with those problems that arise from each Ajax-enabled application. These problems include sending asynchronous requests to the server, receiving and processing the server’s response, altering the page according to the new data, providing UI elements that support a rich user experience as well as providing all these features in a way that the application can be used with every major browser. Since these features are needed in every Ajax-enabled application and reinventing the wheel does not make that much sense an Ajax frameworks supports the reuse of this functionality.
According to Ray Valdes the Framework-level use of Ajax among Global 2000 companies is still very rare. Due to this, many of them will come to the issue of choosing an Ajax framework in the near future.
Requirements for Ajax Frameworks:
This section discusses the requirements an Ajax framework has to fulfill to be useful to the developer. Since there are many things we can expect from a framework, the list of requirements is divided into two parts: requirements that are essential to a framework and requirements that would be desirable.
The essential requirements are vital for the framework and make it useful for the developer. There are certainly frameworks that do not meet all of these requirements or meet a requirement only to some extent. In that case it depends on the project (or types of projects) the framework has to support. It does not automatically mean that the framework is absolutely useless since it may have its strengths elsewhere. The following list can be seen as a checklist when evaluating an Ajax framework:
- Managing asynchronous requests. The framework has to provide convenient solutions for recurring problems like sending asynchronous requests or receiving the server’s response. These pieces of code occur in every Ajax application and therefore handling these tasks should be done by the framework.
- Handling browser differences. Since there are some differences between the various browsers the framework has to provide means to guarantee the correct execution of the application in at least 99% of all clients. This includes, of course, managing the different XMLHttpRequest objects, different JavaScript and DOM implementations or other peculiarities.
- Efficient data processing. Furthermore, an Ajax framework has to provide methods for easily and efficiently processing data received from the server, including XML, JSON and plaintext responses. The data has to be easily accessible for further processing so that the developer does not have to spend much time on that and can focus on the application specific problems.
- Resource friendly. The framework has to use resources in an efficient way that enables even older devices to run the application in combination with others.
- Sufficient documentation. There has to be a good documentation for the framework and its public interfaces in order to become acquainted with it in a reasonable amount of time. This documentation has to provide a complete description of the API as well as examples including code samples.
- Useable as blackbox. On the other hand the developer should not be concerned with the inner details of the framework. Using the framework must not require to know how the various functions are implemented. Since this would mean an extra effort it should not be necessary.
- Set of rich UI elements. An Ajax framework does not only have to provide functions for sending and processing XMLHttpRequests but also has to provide a set of UI elements (so-called widgets) that enable a rich user experience. These widgets include for example sortable lists, modal dialogues or drag & drop features and should be adjustable for the developer. To put it briefly, an Ajax framework has to facilitate the development of Rich Internet Applications.
- Solid background. For the development team it is very important that the framework has a solid background. That means that it is developed by a company or organisation that is likely to exist for a considerable time and continues enhancing and maintaining the framework. Furthermore it is essential that the framework has already reached a certain degree of maturity. A good indicator for the maturity of a framework can be its version number, the date of the first public release as well as the intervals at which new versions are released.
- Little training required. The training period for a framework has to be comparative to its benefits. The costs for introducing a framework should amortize within the first or a few projects, depending on their size.
- Enhancement of exisiting applications. Depending on the project the framework should support the enhancement of existing applications in a more efficient way than without framework. If an application has to be completely re-implemented in order to add Ajax functionality to it, the selection of the framework should be reconsidered. This might not be a requirement if the framework is only used to build Rich Internet Applications from scratch but should be considered when choosing a framework.
If one would ask a few developers about desired features the list of requirements can get quite long. The following list is meant to give an overview of features that are quite desirable but not mandatory. These features are of course not present in every framework but they may serve as a hint for future enhancements. This list does not have a special order of priority since such an order would change case-by-case.
48,00 €
PDF-eBook Download: 48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783836610582
Arbeit zitieren:
Ostermaier, Lukas Februar 2008: Evaluation and comparison of Ajax Frameworks regarding applicability, productivity and technical limitations, Hamburg: Diplomica Verlag
Schlagworte:
Ajax, Wirtschaftsinformatik, Web 2.0, Web application, Framework



