RIA Technology Study

  • 834 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
834
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
23
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. R I ICH NTERNET A PPLICATION DEVELOPMENT PLATFORMS CURL, FLEX AND AJAX A COMPARISON PREPARED BY SONATA 6507 Dumbarton Circle Fremont CA 94555 Phone: 510-742-7213 Fax: 510-791-7270 www.sonata-software.com
  • 2. RIA Development Platforms: Curl, Flex and AJAX – A Comparison TABLE OF CONTENTS 1 EXECUTIVE SUMMARY................................................................................................................................3 2 RICH INTERNET APPLICATION (RIA) .....................................................................................................5 3 AVAILABLE SOLUTIONS..............................................................................................................................7 4 EVALUATION CRITERIA............................................................................................................................11 5 COMPARISON METHODOLOGY..............................................................................................................13 6 ANALYSIS OF IMPLEMENTATION EXPERIENCE...............................................................................16 7 DATA COMPARISON ...................................................................................................................................25 8 SCORES & RESULTS ....................................................................................................................................31 9 SUMMARY ......................................................................................................................................................32 10 APPENDIX A...................................................................................................................................................33 TU UT 11 APPENDIX B ...................................................................................................................................................33 TU UT 12 APPENDIX C...................................................................................................................................................33 TU UT Copyright Sonata Software Page 2 of 33
  • 3. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 1 Executive Summary Triggered by AJAX based popular websites like Google Map, YouTube and Flickr there is now a high demand for next generation Internet applications called RIAs. Surveys by leading research firms indicate that enterprises are taking a closer look at implementing RIAs as they foresee a direct or an indirect influence on their businesses. Enterprises that embark on RIA have a challenging task at hand – choosing the right RIA development platform. The decision is critical as there are many options, vendors and technologies in the market with varying degrees of support for RIA. The objective of this research study is to evaluate three prevalent technologies, CURL, Flex and ASP.NET AJAX (formerly ATLAS framework) by building an RIA for Enterprises through actual development and deployment of a typical transactional read/write Order Entry application. Order Entry applications are widely deployed as client-server systems in numerous enterprises and hence the results of this study will be of relevance to enterprises embarking on RIA initiatives. In order to compare technologies, we have directed our attention to a set of common functional parameters from a development and implementation perspective. The application was developed in two months by three separate resources and was based on the information provided in the evaluation pack. The design of a typical Order Entry application was enriched to include RIA features. We collected data on factors contributing to ease of learning, design, development and the run time performance characteristics of the applications under different data volume levels. This report is targeted at decision makers and developers involved in absorption of RIA technologies. The code samples will be handy for developers evaluating the technologies through pilot implementation projects. The data comparisons will be useful for decision makers while considering technologies to include in pilot projects. The results of the study show that CURL, Flex and ASP.NET AJAX supported most of the RIA features required for the sample application. While CURL had all the features required, Flex and Ajax had some limitations. At the time of writing Copyright Sonata Software Page 3 of 33
  • 4. RIA Development Platforms: Curl, Flex and AJAX – A Comparison this report, ASP.NET AJAX requires support from 3rd party tool vendors for advanced analytical reports. ASP.NET Parameters CURL Flex AJAX Ease of Learning 7.9 8.3 8.6 Ease of Design 8.6 8.2 8.4 Ease of Development 8.8 8.1 7.6 Runtime performance 9.1 8.1 7.3 Note: The above scores are an aggregation and summary of individual scores on multiple factors. The detailed scores on all factors are presented in Appendix A. For detailed analysis of the study, please refer to the following sections: Evaluation Criteria. H Application Implementation details H H H Data comparison H H Scores H Code Samples H It was interesting to note that CURL required 34% less code than AJAX and 31% less than Flex. CURL and Flex came close on run time performance with CURL scoring a little better because of its light foot print and optimum memory utilization. Since the study was conducted in a limited timeframe, it may be possible to improve the technical solutions by using advance techniques appropriate for each platform. Each of these technologies has their unique advantages when they are positioned in the Enterprise IT environment. ASP.NET AJAX Flex CURL Run time Plug-In No Plug-ins Run time Plug-In required required Appropriate choice for Appropriate choice for Appropriate choice for B2C transaction solutions that require enriching Enterprise class applications as there is Media content delivery. desktop applications with Copyright Sonata Software Page 4 of 33
  • 5. RIA Development Platforms: Curl, Flex and AJAX – A Comparison no Plug-in library to be e.g. Product RIA. installed in the client Configurators side. Quick download and fast A person buying a The user can get start up of the application book online is not likely simulated experience of Good performance on waste time to install the product through Rich large volumes of data. plug-ins in order to media content. Excellent built-in data make the transaction. analysis tools. 2 Rich Internet Application (RIA) How is a RIA different and better than a traditional web application? In a traditional web application all the activity is wrapped around client/server architecture with a thin client. As the name suggests, all the processing is done at the server while the client is only used to display static content. The biggest drawback as experienced over the years with this system is that all the interaction with the application must pass through the server, which requires data to be sent to the server, the server to respond and then the page to reload at the client end with the response. RIAs on the other hand have an enhanced client side technology which can execute instructions on the client’s computer, thereby circumventing the slow and synchronous communication loop between the server and the client. This client side processing technology is generally termed as client engine. Benefits of RIA: As RIAs deploy a client engine to execute instructions at the client machine, they are: Richer: RIA applications provide improved UI behaviors normally not obtainable with standard browser based web-applications. More responsive: The interface behaviors are typically much more responsive than those of a standard Web browser that must always interact with a remote server. Client/ Server Balanced: The demand for client and server computing resources is better balanced, so that the Web server need not be the workhorse that it is with a traditional Web application. Copyright Sonata Software Page 5 of 33
  • 6. RIA Development Platforms: Curl, Flex and AJAX – A Comparison Asynchronous: The client engine can interact with the server asynchronously -- that is, without waiting for the user to perform an interface action like clicking on a button or link. This option allows RIA designers to move data between the client and the server without making the user wait. Network Efficient: The network traffic is significantly reduced because an application-specific client engine is more intelligent than a standard Web browser and has the capability to decide what/which data needs to be exchanged with servers. Copyright Sonata Software Page 6 of 33
  • 7. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 3 Available Solutions Currently there are numerous RIA solutions available in the market. Few of the solutions are: Sl. Available RIA Solutions Links No 1 Curl www.curl.com H H Open Laszlo (AJAX 2 www.openlaszlo.org based) H H 3 Adobe Flex www.flex.org H H Nexaweb’s Enterprise 4 www.nexaweb.com Web 2.0 (AJAX based) H H 5 AltioLive (Java based) www.altio.com/et.cfm?eid=1264 H H UltraLightClient (Java 6 www.canoo.com/ulc/products/index.html based) H H 7 JavaFX - Beta www.sun.com/software/javafx/ H H 8 Silverlight – beta silverlight.net/ H H 9 ASP.NET AJAX ajax.asp.net/ H H 10 DOJO (AJAX based) dojotoolkit.org H H Google web toolkit (AJAX 11 code.google.com/webtoolkit based) H H Among the RIA solutions listed above, we have narrowed down the field for comparison to Curl Adobe Flex AJAX (implemented with ASP.NET) As enterprises expect excellent after-sales support from the solution provider, the criterion for selecting the above platforms is entirely based on the availability of support services around them. Hence, the solutions in beta and open-source versions without organized support have been excluded from this study. 3.1 Curl Curl is a RIA platform, providing a powerful and effective environment for developing complex, industrial-strength Web applications. Using Curl, organizations can create a new class of Web-based offerings that provide all the Copyright Sonata Software Page 7 of 33
  • 8. RIA Development Platforms: Curl, Flex and AJAX – A Comparison rich interactivity, functionality and performance of client-server applications. Curl enables companies to implement innovative SOA and Web 2.0 strategies. It combines program logic, graphics and text processing into one language/platform. The Curl product set includes three elements: The Curl® Language, the Curl® Run Time Environment and the Curl® Integrated Development Environment. • Curl Language Designed specifically for use on the Web, the Curl programming language supports rich text formatting and GUI layouts much like HTML, but also offers the fast and easy presentation scripting of JavaScript and the full-featured object- oriented programming of C++, C# and Java. Curl language supports declarative style, scripting style, and the object-oriented style allowing developers to rapidly prototype using scripting and also build maintainable enterprise-scale applications using object-oriented programming. • Curl Run Time Environment(RTE) The execution platform for Curl applications provides an extensive collection of built-in APIs thus reducing the size and complexity of the Curl applications. The Curl RTE provides the following capabilities – a) 2D and 3D graphics libraries provide access to sophisticated, hardware-accelerated rendering capabilities; immediate mode (low- level rendering operations) and retained mode (“scene”) operation. b) Supports event-based interactions. c) Built-in timers and animation features produce dynamic behaviors and displays d) Audio data may be created and played, e) Access web services using HTTP or custom TCP/IP socket based protocols. • Curl Integrated Development Environment The Curl IDE provides a full set of tools for developing and debugging Curl applications, enabling rapid development via a Visual Layout Editor (VLE) that delivers advanced visual (“WYSIWYG”) functionality with application debugging, testing & profiling features. Copyright Sonata Software Page 8 of 33
  • 9. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 3.2 Flex The Adobe Flex product line is another solution for delivering RIAs across the enterprise and over the web. The Flex product line provides a programming model (Flex framework), integrated Eclipse-based development tools (Flex Builder™), and data integration services (Flex Data Services) that enable organizations to deliver solutions by integrating with existing applications and websites. • Flex framework Applications delivered with Flex execute with the help of the browser and Flash Player runtime. Flash Player provides a consistent, cross-platform runtime that contains virtual machine with integrated support for multilingual text display, printing, data manipulation, motion, and multimedia. Flex provides client-side service components that enable applications to interact with any remote server via SOAP web services, REST services, or raw HTTP or custom socket-based protocols. • Flex Builder The Flex development model uses MXML for user interface design and layout and ActionScript (an implementation of ECMAScript) for client logic. The Flex Builder integrated development environment (IDE) provides tools for coding, debugging, and visual user interface layout design can integrate with existing source code management systems. In addition to this, Flex provides integrated support for unit testing tool. • Flex Data Services Flex Data Services extends the capabilities of the Flex client framework by providing additional services for managing data transfer and integrating with existing applications and infrastructure. Flex Data Services is implemented as a Java web application and can be deployed on standard Java application servers. The services provided by Flex Data Services integrate with the existing security profiles defined within the Java application server. Flex Data Services can be deployed using standard deployment tools provided with the server and can integrate with application server clustering features. In addition, applications built with Flex Data Services can access existing server-side session data and application logic using standard Java APIs. Copyright Sonata Software Page 9 of 33
  • 10. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 3.3 AJAX The AJAX (Asynchronous JavaScript and XML) framework is a collection of technologies – XHTML, CSS, DOM, JavaScript, XML & XMLHttpRequest objects – which are collectively used to create interactive web applications. There are various types of AJAX frameworks - ranging from simple frameworks (which require extensive HTML/CSS/AJAX experience) to Component-based (which are complex and provide out-of-the-box ready to use components and enable rapid application development) frameworks. The Microsoft ASP.NET AJAX framework was selected for the study since it supports visual programming and provides built- in components thus enabling rapid application development. Microsoft ASP.NET AJAX (previous known as ATLAS framework) enables developers to create Web pages with familiar user interface (UI) elements. It also provides client-script libraries that incorporate cross-browser ECMAScript (JavaScript) and dynamic HTML (DHTML) technologies, and integrates them with the ASP.NET 2.0 server-based development platform. The ASP.NET AJAX client-script libraries consist of JavaScript (.js) files that provide features for object-oriented development enabling a high level of consistency and modularity in client scripting. ASP.NET AJAX script libraries include the following layers:- • A browser compatibility layer that provides compatibility across the most frequently used browsers (including Microsoft Internet Explorer, Mozilla Firefox, and Apple Safari) for ASP.NET AJAX scripts. • ASP.NET AJAX core services, which include extensions to JavaScript, such as classes, namespaces, event handling, inheritance, data types, and object serialization. • An ASP.NET AJAX base class library, which includes components such as string builders and extended error handling. • A networking layer that handles communication with Web-based services and applications, and that manages asynchronous remote method calls. • Support for JavaScript libraries that are either embedded in an assembly or are provided as standalone JavaScript (.js) files. Embedding JavaScript libraries in an assembly can make it easier to deploy applications and can solve versioning issues. Copyright Sonata Software Page 10 of 33
  • 11. RIA Development Platforms: Curl, Flex and AJAX – A Comparison • Support for accessing server-based forms authentication and profile information in client script. This support is also available to Web applications that are not created by using ASP.NET, as long as the application has access to the Microsoft AJAX Library. • Support for release and debug modes and localization support for both assembly-embedded and standalone JavaScript files The ASP.NET AJAX uses Microsoft’s Visual Studio.NET IDE that enables developers to edit, build, debug and test applications. 4 Evaluation Criteria The various factors considered while evaluating the RIA platforms have been listed below: Criteria Factors Ease of Learning Availability of Self learning tools Availability of Code Samples Availability of Sample Applications Vendor support for evaluation Online developer groups /Forums Reuse of Object Orientated Programming skills Time to learn the language Ease of Design Availability of IDE Library of Smart UI widgets Drag & Drop design capability Customer / User defined UI Widgets Declarative style design to reduce coding Ease of Development Availability of IDE for Rapid Prototyping and development IDE supports Intellisense Online feedback to developers Support for debugging Object Orientation Support for profiling the application Effort for development Lines of code for implementation Copyright Sonata Software Page 11 of 33
  • 12. RIA Development Platforms: Curl, Flex and AJAX – A Comparison Runtime support Ease of installation Small footprint / Application download size Initial application start up time Restart time Cross Browser Support Server Round trips Memory Utilization Copyright Sonata Software Page 12 of 33
  • 13. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 5 Comparison methodology Common Application In order to capture “Developers Experience”, a common application for “Online Purchase” was implemented using each of these technologies and gain first hand information on development and usage experience. The application was designed to include RIA features and several processing scenarios common in enterprise applications. It includes following features: - Obtain data, transform, present, operate and submit - Consume data services - Change propagation and coordination - Assembly of standard UI components (grid, form, tree, chart ...) - Incorporate application logic (summary, aggregation) - Specialized presentation (tabular report) - Extension beyond standard components (min-max display pane) Data Service Rich client applications are enabled by and are subordinate to the data services they consume. Different platforms have different recommendations and tradeoffs regarding data services. While in "green field" developments it may be possible and desirable to mandate specific protocols and formats well suited to the business requirements and selected platforms, many (if not most) enterprise application development scenarios must work within preexisting architectures and conventions. Therefore, the data service selected for this study was REST (XML over HTTP) - a "least common denominator" for web centric applications. We recognize that different alternatives would be applicable for different circumstances. e.g. for large data volumes, more compact formats are appropriate; for specialized applications, specifically tailored web services are often desirable. Copyright Sonata Software Page 13 of 33
  • 14. RIA Development Platforms: Curl, Flex and AJAX – A Comparison Key RIA features in the Application Rich UI • Smart UI Controls a) Tree control b) Data grid with filter & Sort options c) Column Chart d) Concentric Pie Charts with tool tips Responsiveness • Data caching and data processing at client side with quick response • Dynamic content display on Mouse over Client/ Server Balance • Cache the data at client and data processed at client side • Access to server only for consuming Web Services Network Efficient • CRUD operations done on client side data with minimal network round trips • Web service accessed only on initial application loading and final order confirmation. Selection of Resources and Learning plan Resources with development experience in Web technologies but not on the specific platforms were selected. The time for learning these tools & technologies was compared Code Review As the resources developed the application, the code was simultaneously reviewed by other experienced resources so as to provide inputs on appropriate use of the platform. Metrics The specific metrics mentioned in the evaluation criteria were gathered during the period common application was developed, deployed and tested in similar hardware environments. This data is presented in 7.X X Constraints: Time - The project to be done in 2 months Copyright Sonata Software Page 14 of 33
  • 15. RIA Development Platforms: Curl, Flex and AJAX – A Comparison Common Data Service - All the client side implementations to consume the same data service. Copyright Sonata Software Page 15 of 33
  • 16. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6 Analysis of Implementation Experience In this section the implementation of certain features of the Order entry application in the Curl, Flex & AJAX technologies are compared. 6.1 Grid 6.1.1 Purpose The purpose is to specify a grid for the order detail, and populate it with relevant items from already downloaded item records. The Grid control displays the order lines of an order selected in the Order Treeview or Order dropdown box. 6.1.2 Curl 6.1.2.1 Screen Shot 6.1.2.2 Source Code Please refer to Appendix A - section 10.1 for the sources 6.1.3 Flex 6.1.3.1 Screen Shot 6.1.3.2 Source Code Please refer to Appendix section 10.1 for the sources Copyright Sonata Software Page 16 of 33
  • 17. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.1.4 AJAX 6.1.4.1 Screen Shot 6.1.4.2 Source Code Please refer to Appendix section 10.1 for the sources 6.1.5 Comparison Curl o Uses Recordset to store records o Filters data using columns defined in the recordset o Recordsets can be assigned to the RecordGrid Flex o Uses ArrayCollection to store records o Filters using user-provided filter function o ArrayCollection can be assigned to the DataGrid AJAX o Uses DataSet to store records o Filters using a query like syntax o DataSet can be assigned (and bound) to the Grid but the container of the Grid has to be placed in an UpdatePanel to update the Grid without affecting the rest of the page (partial updates) 6.2 Bar Chart 6.2.1 Purpose The purpose is to derive summary data by aggregation from orders in a date range, and present it in a chart. The bar chart displays the summary of all prices per ordered item per day between the date range is displayed. Copyright Sonata Software Page 17 of 33
  • 18. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.2.2 Curl 6.2.2.1 Screen Shot 6.2.2.2 Source Code Please refer to Appendix section 10.2 for the sources Copyright Sonata Software Page 18 of 33
  • 19. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.2.3 Flex 6.2.3.1 Screen Shot 6.2.3.2 Source Code Please refer to Appendix section 10.2 for the sources 6.2.4 AJAX 6.2.4.1 Screen Shot 6.2.4.2 Source Code Please refer to Appendix section 10.2 for the sources Copyright Sonata Software Page 19 of 33
  • 20. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.2.5 Comparison Curl o Uses Recordset to store data for Barchart o Creates recordset dynamically – with date & product name as fields o Uses RecordView to filter orders within required date range Flex o Uses XMLListCollection to store data for Barchart o Generates XML data for the records within the date range to be added to the Barchart’s XMLListCollection o Uses an ArrayCollection to store total prices of order-lines of those orders that are within a date range on per-product & per- date basis AJAX o Uses DataTable to store data for Bar chart o Queries on Orderlines DataSet to obtain order-lines relevant for the Bar chart o The result of aggregation is also stored in a DataTable. 6.3 Tabular report 6.3.1 Purpose The purpose is to display a specialized report of an order with aggregation of all the prices of the order-lines. Copyright Sonata Software Page 20 of 33
  • 21. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.3.2 Curl 6.3.2.1 Screen Shot 6.3.2.2 Source Code Please refer to Appendix section 10.3 for the sources 6.3.3 Flex 6.3.3.1 Screen Shot 6.3.3.2 Source Code Please refer to Appendix section 10.3 for the sources Copyright Sonata Software Page 21 of 33
  • 22. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.3.4 AJAX 6.3.4.1 Screen Shot 6.3.4.2 Source Code Please refer to Appendix section 10.3 for the sources 6.3.5 Comparison Curl o Uses Table to display Report o Uses array of Records to store order-lines of the report Flex o Uses read-only DataGrid to display Report o Uses an ArrayCollection to store order-lines of the report AJAX o Uses asp:Table to display Report o Uses array of DataRow to store order-lines of the report 6.4 Access Web service 6.4.1 Purpose The purpose is to query the web service to obtain the complete set of order-lines. 6.4.2 Curl 6.4.2.1 Source Code Please refer to Appendix section 10.4 for the sources Copyright Sonata Software Page 22 of 33
  • 23. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 6.4.3 Flex 6.4.3.1 Source Code Please refer to Appendix section 10.4 for the sources 6.4.4 AJAX 6.4.4.1 Source Code Please refer to Appendix section 10.4 for the sources 6.4.5 Comparison Curl o Retrieves XML data and stores in Recordset Flex o Retrieves XML data and stores in ArrayCollection AJAX o Retrieves XML data and stores in DataSet 6.5 Generate XML and issue HTTP POST request 6.5.1 Purpose The purpose is to generate XML data containing the order-lines that were modified at the client and issue a HTTP POST request to the web service to update the Database. 6.5.2 Curl 6.5.2.1 Source Code Please refer to Appendix section 10.5 for the sources 6.5.3 Flex 6.5.3.1 Source Code Please refer to Appendix section 10.5 for the sources 6.5.4 AJAX 6.5.4.1 Source Code Please refer to Appendix section 10.5 for the sources 6.5.5 Comparison Curl Copyright Sonata Software Page 23 of 33
  • 24. RIA Development Platforms: Curl, Flex and AJAX – A Comparison o Uses XDMDocument to construct & store the XML data. The XDMDocument is converted to string to generate the records in XML format Flex o Each node has to be manually created in the string format with the right XML syntax and added to Flex XML object AJAX o Each node has to be manually created in the string format and sent as byte stream. Copyright Sonata Software Page 24 of 33
  • 25. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 7 Data Comparison During the course of the implementation, various observations were made and development and runtime metrics were measured. These have been presented below – 7.1 Lines of Code for the complete application AJAX 2465 Flex 1632 Curl 1170 0 500 1000 1500 2000 2500 3000 Lines of Code Comments: • With Object oriented design the size of code could reduce significantly when developing large enterprise applications. 7.2 Learning effort AJAX 2.6 Flex 18.6 Curl 14.6 0.0 5.0 10.0 15.0 20.0 Learning Effort (person-days) Comments: • The learning effort measures the effort that was required for getting to know the concepts of the language that were required for implementing the application and the usage of the tools • Since the AJAX application was implemented in the familiar ASP.NET the learning time was significantly less. Copyright Sonata Software Page 25 of 33
  • 26. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 7.3 Directly supported features Sl. Supported by Features no. Curl Flex AJAX Tree control to display all 1 orders grouped by customer Y Y Y and order status Data grid to display order 2 Y Y Y lines 3 Filtering columns in grid Y Y Y 4 Sorting columns in grid Y Y Y Yes - with 3rd 5 Bar Chart Y Y party controls Y Y Insufficient [Concentric [Single Pie 6 Popup window pie chart time to pie chart chart implement displayed] displayed] Yes - with 3rd 7 Concentric Pie Chart Y N party controls Could not find 8 Tool tip with Order report Y N 3rd party tools to implement. Possible 9 Tabular Reports Y using data Y grid only Insufficient 10 Elasticity Y Y time to implement Enlargement/minimization Insufficient 11 of Charts, Tables and grids Y Y time to in Data tab implement 12 Access REST web service Y Y Y 7.4 Application Download size AJAX 1246 Flex 417 Curl 16 0 200 400 600 800 1000 1200 1400 Application download size(KB) Comments: • The measurements for Curl application have been taken after packaging it. Copyright Sonata Software Page 26 of 33
  • 27. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 7.5 Initial application start up time Start-up time for various Data sizes(No. of records) 140 124 120 Time(seconds) 95 100 86 80 72 60 44 35 40 27 28 17 20 22 15 20 7 8 11 2 3 4 2 4 0 Curl Flex AJAX 1000 2000 5000 10000 20000 50000 100000 Comments: • The AJAX application stopped responding when tested for 100,000 records. Thus the data for 100,000 is not available • Refer to Section 12.2 for the environment used for testing. Copyright Sonata Software Page 27 of 33
  • 28. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 7.6 Application re-start time Restart time for various Data sizes (No. of records) 140 120 120 Time(seconds) 100 80 70 70 60 60 40 34 27 28 14 20 7 13 8 14 5 9 2 3 4 2 4 3 0 Curl Flex AJAX 1000 2000 5000 10000 20000 50000 100000 Comments: • The AJAX application stopped responding when tested for 100,000 records. Thus the data for 100,000 is not available • Refer to Section 12.2 for the environment used for testing. Copyright Sonata Software Page 28 of 33
  • 29. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 7.7 Memory Utilization of IE 7 (including plug-in, if applicable) Memory Utilization for various Data sizes(No. of records) 800 713 Memory Utilization (MB) 700 600 500 436 400 300 203 182 200 118 124 150 80 84 83 100 53 55 60 66 55 60 51 60 25 44 0 Curl Flex AJAX 1000 2000 5000 10000 20000 50000 100000 Comments: • The AJAX application stopped responding when tested for 100,000 records. Thus the data for 100,000 is not available • For Curl, the memory utilization includes memory consumed by the Curl RTE & IE together. The memory utilization of IE 7 varied between 23- 24 MB for 1,000 -100,000 records. • Refer to 12.2 for the environment used for testing. 7.8 Server Roundtrips This section compares the amount of web-service access required in each technology to implement the Order entry application. Technology # of Roundtrips One server roundtrip per order/order-line for each type AJAX of action – add, delete, read, update One server roundtrip for each type of action – add, Flex delete, read, update One server roundtrip for each type of action – add, Curl delete, read, update Copyright Sonata Software Page 29 of 33
  • 30. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 7.9 Application development effort AJAX 19.2 Flex 25.9 Curl 17.9 0.0 5.0 10.0 15.0 20.0 25.0 30.0 Application development effort (person days) Comments: • Due to insufficient time some of the features such as filtering & sorting in the grid, minimizing/maximizing chart, grid & tabular report panes, displaying popup window were not implemented in AJAX. • Other features such as tooltips with order repots were not implemented in AJAX due to insufficient information on the issue Copyright Sonata Software Page 30 of 33
  • 31. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 8 Scores & Results The scores based on the metrics and the data collected have been displayed in the chart below. For detailed scores refer to the Appendix B 8.0 Overall Scores 8.2 8.6 7.3 Runtime 8.1 performance 9.1 7.6 Ease of 8.1 Development 8.8 8.4 Ease of Design 8.2 8.6 8.6 Ease of learning 8.3 7.9 0.0 2.0 4.0 6.0 8.0 10.0 Curl Flex ASP.NET AJAX Copyright Sonata Software Page 31 of 33
  • 32. RIA Development Platforms: Curl, Flex and AJAX – A Comparison 9 Summary All the three contenders are exciting tools & technologies and present rich choices for implementing RIA. The results of the study were pleasantly surprising. For one, the scope of the application was aggressively high and the objective was to complete as much as possible in the given time frame. These tools were easy to learn and came with lot of powerful libraries enabling quick implementation of the solutions much faster than solutions based on traditional Web development paradigm. If one has to choose any of these platforms, one should consider the nature of the application. Each platform has its sweet spot in terms where they fit well in the Enterprise environment. The following table gives an idea. ASP.NET AJAX Flex CURL No Plug-ins Run time Plug-In required Run time Plug-In required Appropriate choice for Appropriate choice for Appropriate choice for B2C transaction solutions that require enriching Enterprise class applications as there is no Media content delivery. desktop applications with Plug-in library to be e.g. Product RIA. installed in the client side. Configurators Quick download and fast A person buying a book The user can get start up of the application online is not likely waste simulated experience of Good performance on time to install plug-ins in the product through Rich large volumes of data. order to make the media content. Excellent built-in data transaction. analysis tools. We would recommend that an evaluation of chosen platforms is carried out before finalizing. Copyright Sonata Software Page 32 of 33
  • 33. RIA Development Platforms: Curl, Flex and AJAX – A Comparison The Appendices have not been included in this version of the report. If you would like a copy of the full report including the appendices please send your request to info@curl.com H H 10 Appendix A 11 Appendix B 12 Appendix C Copyright Sonata Software Page 33 of 33