Web 2.doc
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Web 2.doc

on

  • 954 views

 

Statistics

Views

Total Views
954
Views on SlideShare
954
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Web 2.doc Document Transcript

  • 1. Web 2.0: AJAX implementation technologies assessment G. Taskasaplidis, Ch. Z. Patrikakis Automation Depth, TEI Piraeus, Thivon 250, Aigaleo, Athens, Greece E-mail: bpatr@telecom.ntua.gr, taskasaplidis@gmail.com The transition from Web 1.0 to Web 2.0 and the introduction of new technologies on the Web have created a field of dispute, consideration and scepticism. Rich Internet applications (RIA) are promising more reactive user interfaces, with enhanced interactivity and have recently become very popular. The call for more Rich Internet Applications forced the creation of new technologies and solutions on the Web. New technologies like AJAX (Asynchronous Web Pages) and new APIs (Application Programming Interfaces) are providing new rich experiences on the Web. One of the most promising Web 2.0 and RIA technology is AJAX, known also as Asynchronous Java XML. There are two different schools that guide the evolution engines of Ajax technology. Although they have a lot in common and are closely relates as regards the supportive technologies, the two parties: Microsoft Ajax and Open Ajax follow differed ways for the implementation of basically the same technology. Different approaches, mentality and philosophy, resulted to a variety of frameworks, tools and APIs for easier and more effective development of AJAX enabled Web applications. A review of these frameworks and an assessment of these implementations is attempted in this paper. 1 Introduction The first version of web, which was based on plain text and numbers, has been long outdated; we cannot compare the current or the future web with the first web. Web 2.0 is the next generation web, which will try to succeed and fulfil all the existing or possible new needs. The web is no longer static, but dynamic and human involvement gives the impression that it is a live organization with spiritual dimension. Web 2.0 consists with plenty of technologies, which are promising a more interactive and “attractive” Internet. An overview of Web 2.0, RIAs, is presented in the following paragraphs. Additionally, a review and evaluation of Open Source Ajax and Microsoft AJAX frameworks is additionally attempted. 2 Web 2.0 Overview 2.1 Introduction There are many similarities and differences among all web 2.0 definitions [5.3]. Trying to find a statement that summarizes the ideas behind web 2.0 we could state that: “Web 2.0 is a network technology based on services and not just on sharing of information, featuring a platform that will provide and emphasize in online collaboration, interaction and communication
  • 2. and trying to reduce the anarchy of information that Web 1.0 produced, while it will provide the ability to collect and remix data from multiple sources and web sites. It is promising to bring richer user experiences through Rich Internet Applications (RIA) and transform most of desktop applications to web applications, increased mobility and convergence of allocated personal information.” The following table indicates some of the differences of Web 1.0 and Web 2.0. Positions Web WEB 1.0 WEB 2.0 generation Interaction Philosophy One to many Many to many User Position Mostly pathetic Energetic King of the System Web Site is the king Web user is the king Information Appearance Generalization Customization Philosophy Information Anarchy of Information Structured Information Way of life (entertainment, Search of information, Web Visiting Purposes leisure, live communication, advertisement. virtual communities etc) TABLE 1: Web 1.0 & Web 2.0 Positions 2.2 Rich Internet Applications RIA is the shortcut for Rich Internet Applications [5.3]. When we are talking about Web 2.0, references to RIA are unavoidable. Rich is what RIAs are mainly promising: rich experiences, graphics, media and capabilities in general. RIAs are also promising more interactive environments, customisation, personalization and easiness, at least for end users of the web. The most important technologies of RIAs, are Ajax [5.3] and Adobe Flash [5.3]. Ajax and Flash are not direct competitors since combination- collaboration of Ajax with Flash techniques at the same webpage or website is feasible, leading to enhanced user experience. RIAs in general belong to the Web 2.0 generation and some times RIAs and Web 2.0 referenced as the same thing. 2.3 Asynchronous Java XML - AJAX The term of AJAX [5.3] first appeared in 2005. James Garrett, founder of information architect and Adaptive Path, used this abbreviation to describe and represent this new technology to his clients. Elements of this technology were used by Microsoft in remote scripting development, when it first appeared in 1995. This technology of loading the contents of a web page asynchronously, without full reload of a web page, was used later on Microsoft Outlook [5.3] web access, supplied with the Microsoft Exchange Server 2000 [5.3] release. Techniques like IFrame (hidden frame [5.3]) and Layer element [5.3] in Internet Explorer and Netscape 4 in correspondence was also AJAX style techniques.
  • 3. 3 AJAX Functionality Ajax is working asynchronously instead of other web applications that work synchronously [5.3]. This means that Ajax is working on the background of an application, while it has the ability for partial updating of a web page. A traditional web page works synchronously; the user makes a request, known as HttpRequest, from the client computer, then this request is transferred through the http protocol to the web server. The web server examines the request and perfroms all the appropriate actions to fulfill the request. Once the data are collected, the server creates a new web page and sends it back to client as a response to his request. When the new page arrives to the client computer the new page replaces the old page totally. That is why it is considered that transition from one page to another is synchronous. The exchange of the old page from the new one from the browser introduces a flicker and a sense of delay. Ajax web pages are working differently. If the user makes a request for data then a JavaScript call is triggered and Ajax virtual machine is enabled. Ajax virtual machine works between server and client’s browser (on the client). This machine makes an XMLHttp request, which means that this request is transferred thought http protocol to the server, with the difference that a new web page is not requested in this case, but only data (probably XML data or pain text) instead. The server collects the requested data before transmitting it to the client, and the latterreceives data, instead of a whole web page. The data through Ajax virtual machine, JavaScript and the DOM, are pasted to the existing (on the client) web page and the page is rendered. Partial update of the web page introduces less flickering, and gives the sense of faster response. 4 AJAX Evaluation 4.1 Introduction The selection of the right AJAX framework is one of the main considerations for a website development. There are many, different and sometimes contradictory parameters that we have to overcame before the selection. One thing is sure, that there is no absolute solution. Sometimes is better to choose first between Open Source [5.3] and Commercial frameworks. If this separation is done, then things are less complicated. In this chapter we will search the criteria of selection between an Open Source Ajax and Commercial Ajax. In fact we will try to compare Open Source and Microsoft Ajax.NET. Because there are many Open Source frameworks, it is necessary to make an overview of the most popular and most powerful frameworks. Some of the criteria for finding the best Open Ajax are popularity, the plethora of controls, the volume of JavaScript libraries that has to be loaded to the client computer, known as Ajax Footprint and of course how cross platform and server agnostic the frameworks are. 4.2 Frameworks that represent Open Source Ajax and MS Ajax. Prototype Prototype [5.3] is a JavaScript based framework, which extents JavaScript classes and offers more advanced functionalities. Prototype is a
  • 4. fully cross browser framework and disappears almost every cross browser problem in JavaScript [5.3]. Many developers have expressed their opinion that Prototype is using one of the best models for writing JavaScript classes and libraries. Prototype combined with script.aculo.us [5.3], which provides a very powerful User Interface (UI) with JavaScript libraries, are making a good teem for an Open Ajax website creation. It is a cross browser and web server agnostic framework that works with all the well known web servers and browsers. It has a small Ajax Footprint (Ajax code volume) and a plethora of controls and widgets and a large development community.Unfortunately, though it is very easy to use Prototype has poor documentation and therefore extra effort needed from thedevelopers to read JavaScript libraries and classes and to determinehow they work. They also have to search around the web for information Dojo Toolkit Dojo Toolkit [5.3] Dojo is an Open Source DHTML toolkit written in JavaScript supported by IBM, AOL, Open Laszlo and Sun Microsystems. It uses JavaScript to create dynamic web pages and asynchronous communication with web servers (Ajax). It has some bugs and cross browser problems, but it offers a good functionality. Dojo also allows the creation of cross browser vector graphics. It is easy of use. It consists of a cross browser and web server agnostic framework that works with almost all the well known web servers and browsers. It has medium Ajax Footprint. Dojo widgets have been updated recently, with the new release Dojo 0.9 update and are very promising. Additionally a lot of bugs fixes, new modules and code tuning have been made up to now. There are enough controls and widgets to create fast powerful Ajax applications. Direct Web Remoting (DRW) DWR [5.3] known as Direct Web Remoting is an open source java library that is using JavaScript on browser (client) and java on the server side. It constitutes a framework for Ajax based websites creation. The interaction of Java and JavaScript makes Ajax or and asynchronous communication or and partial webpage update possible. The general operation procedure of DWR relies on the following two “actors”: • A Java Servlet (a java mechanism) running on the server that accepts requests from the client browser and responses back to the browser (client). • The triggering machine which is using JavaScript, running on the client (browser) that posts requests and takes responses from the server and can dynamically partial update the webpage. DWR has good documentation and instructions for an open source framework. It is not as cross browser and web server agnostic, like other open source frameworks, especially because web servers are needed to support java servlets. It also introduces some extra effort and knowledge of java programming, which is more difficult than JavaScript. It has low footprint
  • 5. (depending to the application) and has more server functionality and server side programming (servlets). Open Source comparison matrix The following table presents a summery of Open Ajax features Matrix: FeaturesFramework Dojo Prototype DWR License BSD MIT BSD Ease of use Good Excellent Medium Widgets/Controls Many Few Few Web Server with Cross Platform Yes Yes Java Servlets Community adoption Very Limited Very High Limited Documentation Medium Insufficient Good Popularity Medium High Medium 90Kb + 130 for Depending to the Footprint 230Kb + script.aculo.us application Client/Server side Client side Client side Client and Server programming TABLE 2: Open Ajax comparison Matrix The framework that is widely used is Prototype with script.aculo.us, mostly because it is easy, popular and has high community adoption [5.3]. We can now observe the features of Microsoft Ajax, to figure out what are the differences, advantages and disadvantages of Open and Microsoft Ajax. Microsoft Visual Studio and Ajax.NET Framework The visual studio of Microsoft [5.3] is the vehicle, which integrates most of the IDEs for Microsoft related programming languages that allow developers to create desktop and network or web applications and services. The visual environment, fast and easy development, trace and debagging, good integrated documentation are some of the benefits that this studio offers. MSDN known as well as Microsoft Developer Network provides documentation, examples and online support for developers is accompanied with the studio. The studio cooperates harmonically with Microsoft SQL server, has a database explorer, visual development of a database (tables, columns, rows, variables) and insert, preview of data for testing is possible. Visual Studio has individual development IDEs for the following software languages and implementations: ASP.NET, Visual Basic (.NET), Visual C++, Visual C#, Visual J#. The Microsoft Visual Studio Express is a free and lightweight edition that is freely accessible to be downloaded. Especially Visual Web Developer is related only with web development and mostly with ASP.NET applications and services. Microsoft Ajax enabled WebPages can be developed with Visual Web Developer Express Edition as long as the Ajax plug-in is installed
  • 6. and embedded to the studio. Some of the features and capabilities of Visual studio express are the following: • Drag-and-drop user interface designer. • Intelligence support for syntax and code correction, suggestions to class names. • Connection with database almost with no code (wizard). • Enhanced HTML, ASP, XML, CSS, JavaScript and VBScript editors. • MSDN support for developers. • Instant standalone web server, for website testing-debugging and validation. • Enhanced website debagging and tracing. • Web Server Deployment tools (FTP, HTTP). • Database explorer and visual database design. Microsoft Ajax has low to medium java libraries code volume (footprint), works harmonically with ASP WebPages and controls. It is less server and client agnostic, it requires .NET 2.0 framework and IIS 6.0 or later web server. 4.3 Advantages and Disadvantages The following table represents the Open Ajax and Ajax.Net Comparison Matrix with widely accepted criteria. Features / Category Open Ajax Ajax.NET All in one solution, platform and framework - + (compact) Framework-Platform Dependency + - Server agnostic + - Cross Browser + - Easy Ajax migration - + Ajax code volume – Footprint + - Documentation - Examples & Videos - + Development community + - Visual environment – Less coding - + Debugging – Tracing - + Popularity + - TABLE 3: Open Ajax & Ajax.NET features All in one solution Microsoft Ajax.Net offers a complete solution. A free Software Development Kit (SDK), known as Visual Express Studio 2005, with all the necessary tools for Web Development of ASP pages. Ajax.Net is something
  • 7. like a plug-in to the SDK, which allows the creation of Ajax enabled web pages, and this way all libraries, controls and Ajax functionalities are available. Open Source Ajax development usually is independent from the platform of the web application that is based on. Framework-Platform Dependency Commercial software and Microsoft Ajax, although is free of use, are trying to lock in developers to their platform and frameworks. Open Source software and Open Ajax can be used on multiple platforms and are more platforms independent. Server agnostic Open source Ajax is server agnostic and compatible with almost all of the web servers and operating systems. Ajax.NET is dependent to the .NET framework and not all web servers or operating systems can support Microsoft Ajax. Cross Browser Ajax.NET has some compatibility problems with some Web Browsers, while only internet explorer and Mozzila Firefox [5.3] are compatible. In contrary Open Ajax is windily compatible from almost all java enabled browsers. Ajax migration With Ajax.NET, migration from non Ajax to Ajax powered pages and sites is easier than Open Source Ajax. Microsoft AJAX update panel works like an IFRAME, the only thing that developers have to do is to include inside the panel the partial updated object. They don’t have to alter, set or create any functions, parameters or variables and the only thing that they have to do is to define the trigger events for Ajax. This makes Ajax code obvious and clear, shows, which are Ajax enabled areas, and code separation can be achieved (modular) easily, reducing complexity and increasing developer’s control over the situation. Ajax code volume The code volume of AJAX libraries that has to be loaded - transferred to the client (remote) computer, might be crucial, especially if the code volume, is more than 1 MB. All the frameworks have acceptable code volume (less that 1MB). Documentation Microsoft MSDN libraries offer a very good documentation and not only this. MSDN documentation is highly appreciated from the majority of developers’ community. Additionally examples – tutorials and videos are free for everyone and are easy to find. Documentation for Open Ajax is usually incomplete, it is rather off-handed and it studded. It is very hard to find good, detailed, mature and complete documentation for Open Ajax and Open Source Software in general. But there are plenty of websites that allow someone to collect information from multiple sources, examples, tutorials and finally can assemble them and work with.
  • 8. Development community Open Source [5.3] and open Ajax are the leaders of software evolution and testing, because they have the largest developing community. New ideas, controls and solutions appear almost every day. Open source community gives a sense of superiority that commercial software is not possible to deal with. This community is the barometer of evolution, especially when new technologies appear, the acceptance and the response of a technology to this community will affect the whole market (internet). Visual environment Visual Development environment of Microsoft Visual Studio is one of the most sophisticated development environments. There is no need to remember exact classes, attributes and methods. With auto-completion and auto suggestion techniques users get all possible suggestions alphabetically. Visual environment offers additionally less coding, because drag and drop of controls or chunks of software visually is possible. Through properties window someone can configure controls without any coding. This way, code complexity is reduced and development environment is easier to use, learn and understand. Open Source software development platforms don’t use the visual environment enhancements used by Microsoft products; coding is always important and absolutely necessary. Open-Ajax frameworks are using only essential and plain features; auto-completion techniques are rather a luxury. Debugging – Tracing Visual Studio 2005 offers many useful tools like software debugging and tracing. Custom error pages can be easily displayed. Furthermore, it is easy for someone to insert break lines and check software by peaces, like common desktop development applications and get visual syndication were errors have occurred. Statistics, web page responses time and many more utilities are also available. Popularity Open Ajax is far more popular than Ajax.NET. More developers and web sites are using Open Ajax; popularity is an indication of success. Figure 1: Ajax Platform and Framework Popularity [5.3]
  • 9. 5 Conclusions and selection 5.1 MS Ajax and ASP.NET ASP.NET Ajax is offering a rich graphical user interface, plenty of high sophisticated tools for easier development. It reduces complexity on development and developers’ effort. MS Ajax inherits all the benefits and drawbacks of .NET 2.0 and it is all in one solution for webpage development. Open Source Ajax is more customisable and it has less user-friendly environment for developers. Webpage development sometimes can be a combination of more than one framework (prototype combined with Script.aculo.us [5.3] and PHP gives excellent results). It has lower code volume and low level complexity, but is more complicate and experience demanding for developers than the Commercial software and MS Ajax. 5.2 Open source is advanced Open source Ajax and generally open source web development is ideal for professional developers and for enhanced websites with advanced functionality and uniqueness. It is intended for some developers, which require absolute control over the code, that every webpage must have its one signature and for them intervention to the low level coding is essential and crucial. On the other side Ajax.NET Ajax is mostly targeting to less experienced, faster and “lazy” developers, for everyday websites (e.g. personal sites), rather than professional-unique websites. 5.3 The Selection Selecting between Open Ajax and ASP.NET Ajax is not an easy task; in fact there is no absolute answer to the question: “which of the two?” or “which framework is the best?” The decision of which framework is the best, depends to the above comparison combined with other factors like legacy systems, personnel skills, purpose of the website and how advanced or pioneer the website will be. The answer is not absolute and it is depending to the each individual occasion factors and parameters. All the above considerations and observations are helpful and worth to be concerned, before someone decides what is best for each occasion, developer(s) and situation. So the decision is ours and failure sometimes is not only caused by a wrong decision, but also of how faithful and supportive we are to our decisions. References 1. Prototype: What is prototype?, URL: http://ajaxmatters.com/archive/2007/01/09/what- is-prototype.aspx, last accessed on July 5, 2007. 2. Web 2.0 JavaScript, URL: http://script.aculo.us/, last accessed on July 7, 2007. 3. DWR: “Easy AJAX for JAVA”, URL: http://getahead.org/dwr/overview/dwr, last accessed June 22, 2007. 4. Ajax Web survey, URL: http://ajaxian.com/, last accessed on July 9, 2007. 5. Prototype: JavaScript Framework, URL: http://www.prototypejs.org/, last accessed on June 12, 2007. 6. Dojo the JavaScript toolkit, URL: http://dojotoolkit.org , last accessed on June 3, 2007.
  • 10. 7. Explore Web Development with ASP.NET 2.0, URL: http://www.microsoft.com/events/series/msdnwebdev.mspx, last accessed on June 19, 2007. 8. Christian Wenz, "Programming Atlas", O'Reilly Media Inc. (September 2006), ISBN: 0-596-52672-5. 9. Wikipedia, online encyclopedia, URL: http://en.wikipedia.org/wiki/AJAX_ %28programming%29, Ajax (programming), last accessed on June 12, 2007. 10. Mozilla Firefox, URL: www.mozilla.com/firefox/, Web Browser, last accessed on September 18, 2007. 11. HTML IFRAME TAG, URL: www.w3schools.com/tags/tag_iframe.asp, Definition and Usage, last accessed on September 18, 2007. 12. Microsoft Outlook, URL: www.microsoft.com/outlook/, Microsoft Office Outlook, last accessed on September 3, 2007. 13. Microsoft Exchange Server, URL: www.microsoft.com/exchange/default.mspx, Product information, last accessed on September 5, 2007. 14. Layer Element, URL: http://webdesign.about.com/od/htmltags/p/bltags_layer.htm, HTML Layer Tag, last accessed on September 1, 2007. 15. Wikipedia encyclopedia, URL: http://en.wikipedia.org/wiki/Macromedia_Flash, Adobe Flash, HTML Layer Tag, last accessed on September 2, 2007. 16. Wikipedia encyclopedia, URL: http://en.wikipedia.org/wiki/Ajax_(programming), AJAX Programming, last accessed on September 2, 2007. 17. Wikipedia encyclopedia, URL: http://en.wikipedia.org/wiki/Rich_Internet_application, Rich Internet Application, last accessed on August 17, 2007. 18. Wikipedia encyclopedia, URL: http://en.wikipedia.org/wiki/WEB_2.0, Web 2.0, last accessed on August 7, 2007. 19. Open Source, URL: www.jgroups.org/javagroupsnew/docs/papers/OpenSource.pdf, a new paradigm for software development, last accessed on August 9, 2007.