RIA Technology Study

33
SONATA 6507 Dumbarton Circle Fremont CA 94555 Phone: 510-742-7213 Fax: 510-791-7270 www.sonata-software.com RICH INTERNET APPLICATION DEVELOPMENT PLATFORMS CURL, FLEX AND AJAX A COMPARISON PREPARED BY

description

 

Transcript of RIA Technology Study

Page 1: RIA Technology Study

SONATA 6507 Dumbarton Circle Fremont CA 94555 Phone: 510-742-7213 Fax: 510-791-7270 www.sonata-software.com

RICH INTERNET APPLICATION

DEVELOPMENT PLATFORMS

CURL, FLEX AND AJAX A COMPARISON

PREPARED BY

Page 2: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 2 of 33

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 TUAPPENDIX UT A...................................................................................................................................................33

11 TUAPPENDIX UT B ...................................................................................................................................................33

12 TUAPPENDIX UT C...................................................................................................................................................33

Page 3: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 3 of 33

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

Page 4: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 4 of 33

this report, ASP.NET AJAX requires support from 3rd party tool vendors for

advanced analytical reports.

Parameters CURL Flex ASP.NET

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:

HEvaluation Criteria.

HApplication Implementation detailsH

HData comparisonH

HScores H

HCode Samples

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

No Plug-ins Run time Plug-In

required Run time Plug-In required

Appropriate choice for

B2C transaction

applications as there is

Appropriate choice for

solutions that require

Media content delivery.

Appropriate choice for

enriching Enterprise class

desktop applications with

Page 5: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 5 of 33

no Plug-in library to be

installed in the client

side.

e.g. Product

Configurators

RIA.

A person buying a

book online is not likely

waste time to install

plug-ins in order to

make the transaction.

The user can get

simulated experience of

the product through Rich

media content.

Quick download and fast

start up of the application

Good performance on

large volumes of data.

Excellent built-in data

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.

Page 6: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 6 of 33

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.

Page 7: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 7 of 33

3 Available Solutions Currently there are numerous RIA solutions available in the market. Few of the

solutions are:

Sl. No

Available RIA Solutions Links

1 Curl Hwww.curl.comH

2 Open Laszlo (AJAX based) Hwww.openlaszlo.orgH

3 Adobe Flex Hwww.flex.orgH

4 Nexaweb’s Enterprise Web 2.0 (AJAX based) Hwww.nexaweb.com H

5 AltioLive (Java based) Hwww.altio.com/et.cfm?eid=1264 H

6 UltraLightClient (Java based) Hwww.canoo.com/ulc/products/index.html H

7 JavaFX - Beta Hwww.sun.com/software/javafx/ H

8 Silverlight – beta Hsilverlight.net/ H

9 ASP.NET AJAX Hajax.asp.net/ H

10 DOJO (AJAX based) Hdojotoolkit.org H

11 Google web toolkit (AJAX based) Hcode.google.com/webtoolkitH

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

Page 8: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 8 of 33

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.

Page 9: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 9 of 33

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.

Page 10: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 10 of 33

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.

Page 11: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 11 of 33

• 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

Page 12: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 12 of 33

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

Page 13: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 13 of 33

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.

Page 14: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 14 of 33

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 X7 X.

Constraints: Time - The project to be done in 2 months

Page 15: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 15 of 33

Common Data Service - All the client side implementations to consume the

same data service.

Page 16: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 16 of 33

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

Page 17: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 17 of 33

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.

Page 18: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 18 of 33

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

Page 19: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 19 of 33

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

Page 20: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 20 of 33

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.

Page 21: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 21 of 33

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

Page 22: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 22 of 33

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

Page 23: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 23 of 33

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

Page 24: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 24 of 33

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.

Page 25: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 25 of 33

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

1170

1632

2465

0 500 1000 1500 2000 2500 3000

Curl

Flex

AJAX

Lines of Code

Comments: • With Object oriented design the size of code could reduce significantly

when developing large enterprise applications.

7.2 Learning effort

14.6

18.6

2.6

0.0 5.0 10.0 15.0 20.0

Curl

Flex

AJAX

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.

Page 26: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 26 of 33

7.3 Directly supported features

Supported by Sl. no. Features Curl Flex AJAX

1 Tree control to display all orders grouped by customer and order status

Y Y Y

2 Data grid to display order lines Y Y Y

3 Filtering columns in grid Y Y Y 4 Sorting columns in grid Y Y Y

5 Bar Chart Y Y Yes - with 3rd party controls

6 Popup window pie chart

Y [Concentric

pie chart displayed]

Y [Single Pie

chart displayed]

Insufficient time to

implement

7 Concentric Pie Chart Y N Yes - with 3rd party controls

8 Tool tip with Order report Y N Could not find 3rd party tools to implement.

9 Tabular Reports Y Possible

using data grid only

Y

10 Elasticity Y Y Insufficient

time to implement

11 Enlargement/minimization of Charts, Tables and grids in Data tab

Y Y Insufficient

time to implement

12 Access REST web service Y Y Y

7.4 Application Download size

16

417

1246

0 200 400 600 800 1000 1200 1400

Curl

Flex

AJAX

Application download size(KB)

Comments: • The measurements for Curl application have been taken after packaging

it.

Page 27: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 27 of 33

7.5 Initial application start up time

Start-up time for various Data sizes(No. of records)

2 211

3 4

20

4 8

22

715

2817

27

4435

72

86

124

95

020406080

100120140

Curl Flex AJAX

Tim

e(se

cond

s)

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.

Page 28: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 28 of 33

7.6 Application re-start time

Restart time for various Data sizes (No. of records)

2 23 4 54 8 971413

27 2834

7060

70

120

3

14

020406080

100120140

Curl Flex AJAX

Tim

e(se

cond

s)

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.

Page 29: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 29 of 33

7.7 Memory Utilization of IE 7 (including plug-in, if applicable)

Memory Utilization for various Data sizes(No. of records)

53 2555 4460 84

5166124

6080

203

83118

436

150182

713

55 60

0100200300400500600700800

Curl Flex AJAX

Mem

ory

Util

izat

ion

(MB

)

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

AJAX One server roundtrip per order/order-line for each type

of action – add, delete, read, update

Flex One server roundtrip for each type of action – add,

delete, read, update

Curl One server roundtrip for each type of action – add,

delete, read, update

Page 30: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 30 of 33

7.9 Application development effort

17.9

25.9

19.2

0.0 5.0 10.0 15.0 20.0 25.0 30.0

Curl

Flex

AJAX

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

Page 31: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 31 of 33

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

7.9

8.6

8.8

9.1

8.6

8.2

8.1

8.1

8.2

8.6

8.4

7.6

7.3

8.0

8.3

0.0 2.0 4.0 6.0 8.0 10.0

Ease of learning

Ease of Design

Ease ofDevelopment

Runtimeperformance

Overall Scores

Curl Flex ASP.NET AJAX

Page 32: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 32 of 33

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

B2C transaction

applications as there is no

Plug-in library to be

installed in the client side.

Appropriate choice for

solutions that require

Media content delivery.

e.g. Product

Configurators

Appropriate choice for

enriching Enterprise class

desktop applications with

RIA.

A person buying a book

online is not likely waste

time to install plug-ins in

order to make the

transaction.

The user can get

simulated experience of

the product through Rich

media content.

Quick download and fast

start up of the application

Good performance on

large volumes of data.

Excellent built-in data

analysis tools.

We would recommend that an evaluation of chosen platforms is carried out before

finalizing.

Page 33: RIA Technology Study

RIA Development Platforms: Curl, Flex and AJAX – A Comparison

Copyright Sonata Software Page 33 of 33

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 [email protected]

10 Appendix A

11 Appendix B

12 Appendix C