This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Rob Chapman, an analyst at We Are Cloud, presents an interesting perspective on the importance of RIAs in his article - The RIA Revolution in Business Intelligence. He says, "Rich Internet Application (RIA) Technology has allowed a new breed of business data analysis and visualization software to be delivered directly over the internet. This has led to the generation of powerful yet easy to use business intelligence (BI) applications that come without the complex installation and large price tag of traditional BI software". He also makes another interesting statement, "RIA technology is cloud computing ready."
With Cloud Computing and Rich Internet Applications seen as the way forward in computing, it is important for us to be aware of various technologies present in this domain and the pros and cons that each has to offer.
As AJAX dominated the RIA Space - Java seemed to be left out. But it was not long before Java would make its presence felt. Java joined the RIA space by releasing JavaFX. It may seem that they are a little late in presenting their RIA platform, but they claim that JavaFX will quickly have a significant hold onto the market because Java is already installed in billions of computing devices worldwide. With Java entering the RIA space, the war has just got bigger and better. However, there is some stiff competition that JavaFX will have to face from competitors like AJAX and Adobe's Flex that are already well established.
In this hot paper assignment, the objective is to provide an insight on the journey of Java in the RIA world. To compare and contrast JavaFX with other big players like Adobe Flex and Microsoft Silverlight in the RIA Space and also focus on the problems that need to be addressed, the benefits it holds and what's in store for the future (e.g Explosion of SmartPhones and the need for RIA)
B: Introduction to RIA
RIAs attempt to combine the strengths of desktop and Web applications without falling prey to their weaknesses.
--Martin Heller, InfoWorld, 8/2007
The next generation of the Web is marked by dynamic, interactive, open and highly flexible applications that not only go beyond the capabilities of classic Web applications but also exceed the features of desktop applications.
--Jim Rapoza, eWeek, 8/2007
RIA platforms and technologies span a range of approaches that, from a runtime perspective, fall into three basic categories:
--Ray Valdes, Gartner Group, July 2007
Rich Internet Application (RIA) platforms enable organizations and software vendors to build applications that provide a richer, more-responsive user experience compared to older generation, "plain browser" Web platforms.
In general, A Rich Internet Application is where desktop applications meet web applications. RIAs provide a deep level of interactivity that allows websites to communicate with data in real-time. There are a large number of applications involving media (photos, videos, audio, etc.) that RIAs can work well with. RIAs provide greater interactivity on the web and better user experiences.
No one can predict where the web will be years from now, but you can be sure that RIAs will continue to play a larger role. They've been around for a little while now, and are only beginning to be used more widely.
C: RIA Technology Options:
Let us take a quick look at the 3 major competitors in the RIA Space.
Adobe Flex is a software development kit (SDK) released by Adobe Systems for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform. The release in March 2004 by Macromedia included an SDK, an integrated development environment (IDE), and a Java EE integration application known as Flex Data Services. After the purchase of Macromedia in 2005, subsequent releases of Flex no longer require a license for Flex Data Services, which has become a separate product rebranded as LiveCycle Data Services. An alternative to Adobe LiveCycle Data Services is BlazeDS, an open-source project that started with code contributed in 2007 by Adobe.
In February 2008, Adobe released the Flex 3 SDK under the open source Mozilla Public License and so Flex applications can be developed using any standard IDE, for example Eclipse.
Macromedia Flex Server 1.0 and 1.5
Macromedia targeted the enterprise application development market with its initial releases of Flex 1.0 and 1.5
Adobe Flex 2
The Flex 2 SDK was consisting of the command-line compilers and the complete class library of user interface components and utilities. It was made available as a free download. The Flex 2 SDK contains no limitations or restrictions compared to the same SDK included with the Flex Builder IDE. This new was based on the Eclipse platform which is open source. The server component provides data synchronization; data push, publish-subscribe and automated testing. Unlike Flex 1.0 and 1.5, Flex Data Services is not required for the deployment of Flex applications.
Adobe Flex 3
On April 26, 2007 Adobe announced their intent to release the Flex 3 SDK. Adobe released the first beta of Flex 3, codenamed Moxie, in June 2007. Major enhancements include in this release were:
Integration with the new versions of Adobe's Creative Suite products
Support for AIR (Adobe's new desktop application runtime)
The addition of profiling and refactoring tools to the Flex Builder IDE.
In October 2007, Adobe released the second beta of Flex 3.
On December 12, 2007, Adobe released the third beta of Flex 3.
On February 25, 2008, Adobe released Flex 3 and Adobe AIR 1.0.
Adobe Flex 4
Adobe released Flex 4.0, code named Gumbo on March 22nd 2010. The Flex 4 development environment is called Adobe Flash Builder formerly known as Adobe Flex Builder.
Some features that have been incorporated into Flex 4 are as follows:
Design in Mind: The framework has been designed for continuous collaboration between designers and developers.
Accelerated Development: Be able to take application development from conception to reality quickly.
Horizontal Platform Improvements: Compiler performance, language enhancements, bidirectional components, enhanced text.
Full Support for Adobe Flash Player 10 and above.
Broadening Horizons: Finding ways to make a framework lighter, supporting more deployment runtimes, runtime MXML.
Integration with Adobe Flash Catalyst.
Silverlight integrates multimedia, graphics, animations and interactivity into a single runtime environment. The user interfaces are declared in Extensible Application Markup Language (XAML) and programmed using a subset of the .NET Framework. Silverlight can also be used to create Windows Sidebar gadgets for Windows Vista.
Silverlight supports multiple media content across all supported browsers without requiring Windows Media Player, the Windows Media Player ActiveX control or Windows Media browser plug-ins. Silverlight makes it possible to dynamically load Extensible Markup Language (XML) content that can be manipulated through a Document Object Model (DOM) interface, a technique that is consistent with conventional Ajax techniques.
Silverlight 1.0, which was developed under the codename Windows Presentation Foundation/Everywhere (WPF/E) and released in 2007. It is made up of the following components:
Input: Handling input from devices like keyboard, mouse, stylus etc.
UI core: Managing rendering of bitmap images and animation.
Media: playback of MP3 and other compatible media formats.
XAML: to allow the UI layout to be created using XAML markup language.
Silverlight 2 includes a version of the .NET Framework, implementing the same full Common Language Runtime (CLR) version as .NET Framework 3.0; so it can execute programs written in any .NET language.
Silverlight 3 was announced at the International Broadcasting Convention (IBC) 2008 show in Amsterdam on September 12, 2008. It was unveiled at MIX09 in Las Vegas on March 18, 2009. The final version was released July 9, 2009.
Silverlight 3 includes an increased number of controls like DataGrid, TreeView, various layout panels, DataForm for forms-driven applications and DataPager for viewing paginated data. Some of these controls are from the Silverlight Toolkit. In addition, Silverlight 3 includes a navigation framework to let Silverlight applications use the hyperlinked navigation model as well as enabling deep-linking (linking directly to specific pages) within Silverlight applications.
On November 18, 2009, at the Professional Developers Conference in Los Angeles, Microsoft Corporation unveiled a Beta version of Silverlight 4. The final version was released on April 15, 2010 along with Silverlight 4 tools for developers. An update to Silverlight was released on 3 June 2010. New features in Silverlight 4 include:
Support for Google's Chrome browser.
Web cam and microphone support.
Improved mouse support including right button support and mouse wheel support.
New notification support to display messages to end users.
New and enhanced controls such as a RichTextBox and an enhanced DataGrid control.
New support for implicit theming of controls.
New hosted browser support for rendering HTML inside Silverlight.
WCF data layer enhancements.
Localization enhancements with bi-directional text.
Support for Managed Extensibility Framework.
Enhanced data binding support.
Enhanced animation effects.
Clipboard and drag and drop support.
Deep Zoom performance enhancements.
WCF Rich Internet application (RIA) Services.
Content protection for H.264 and support for playing offline DRM protected media.
Additionally, the following features are provided to out-of-browser (locally installed) Silverlight applications that have been explicitly granted "trusted" status:
Full keyboard access while running in full screen mode.
Programmatic access to a user's local document folder.
Support for local Component Object Model (COM) objects.
Sun Microsystems first announced JavaFX at the JavaOne Worldwide Java Developer conference on May 2007.
In May 2008 Sun Microsystems announced plans to deliver JavaFX for the browser and desktop by the third quarter of 2008, and JavaFX for mobile devices in the second quarter of 2009. Sun also announced a multi-year agreement with On2 Technologies to bring comprehensive video capabilities to the JavaFX product family using the company's TrueMotion Video codec.
JavaFX for mobile development was made available as part of the JavaFX 1.1 release announced officially on February 12, 2009.
JavaFX 1.2 was announced at JavaOne conference on June 2, 2009. This release introduced:
Beta support for Linux and Solaris
Built-in controls and layouts
Skinnable CSS controls
Built-in chart widgets
JavaFX I/O management, masking differences between desktop and mobile devices
Windows Mobile Runtime with Sun Java Wireless Client
JavaFX 1.3 was released on April 22, 2010. This release introduces:
Support of additional platforms
Improved support for user interface controls
This version is updated version of JavaFX released on 21 Aug 2010. It is the current release. Its features include:
Quick startup time of JavaFX application.
Custom progress bar for application startup.
JavaFX 2.0- Future Release
JavaFX 2.0 has been scheduled for release in the second half of 2011. A notable change in this release is that the JavaFX scripting language will be discontinued and its functionality moved to regular Java APIs.
D: Java FX
An Introduction: The current state of art and state of practice
Sun Microsystems announced a new product family named JavaFX at the annual JavaOne conference in May 2007. JavaFX is a rich client platform for building cross-device applications and content. The vision of the JavaFX is to deliver "the ability to create interactive content, applications and services from desktop to mobile devices to the living room." JavaFX has been designed to enable easy creation and deployment of rich internet applications (RIAs) with immersive media and content and ensure that RIAs look and behave consistently across diverse form factors and devices. It currently consists of two technologies: JavaFX Script and JavaFX Mobile.
JavaFX Script is a language using simple, declarative scripts. Content authors can create very rich user interfaces. As well as having declarative scripting, JavaFX is a fully supports object-oriented programming.
JavaFX Mobile is essentially a layered software system for mobile devices on which JavaFX Script code can execute. With JavaFX Mobile the application has access to the file system, GPS, Bluetooth, camera on the phone. JavaFX Mobile is capable of running on multiple mobile operating systems, including Android, Windows Mobile and other proprietary realâ€time operating systems.
The JavaFX platform combines a straightforward declarative language called JavaFX Script, a set of development tools and support libraries. This ensures that applications can provide a consistent look and feel across devices with diverse form factors and capabilities.
Application Framework provides the building blocks for development of applications. Desktop, Mobile and TV Elements are APIs and specific runtime elements.
There are Common Components which are compatible across all 3 platforms: Desktop, Mobile and TV. The JavaFX Runtime is provided with the JRE. Specific Designer and Developer tools like Net beans IDE and JavaFX Production suite are also provided.
At the bottom is of course the JVM- Java Virtual Machine.
Fig: JavaFX Platform Components [SUN]
Fig: JavaFX Development tools [SUN]
From a Developer's Perspective
Sun has developed a new scripting language, JavaFX Script whereas Flex and Silverlight which use XML as their declarative language (MXML and XAML respectively). This was done in order to targets two distinct user groups:
Java developers who are already familiar with Swing and are looking for a way of building feature rich interfaces in a faster, more productive way.
JavaFX has adopted a number of features from Java itself. One worthy of attention is the Javadoc equivalent JavaFXDoc which produces an XML format document instead of an HTML document.
JavaFX Script has access to all the existing Java packages but also includes new APIs. The two key ones are:
The Media APIs.
The Scene Graph API.
Since Flash and Silverlight are entirely closed source proprietary tools, it might prove a significant barrier to their adoption. Sun has committed to making JavaFX available as open source software which may well boost its adoption, but it still has significant work to do to become a strong contender.
Minimum system requirements:
Operating System: Windows or Mac Operating System. There is support for Linux and OpenSolaris but it is still in the beta version.
Memory: 512 MB of RAM (1 GB recommended)
Disk space: 778 MB of free disk space(1 GB recommended)
Web browser: Internet Explorer 6 minimum or FireFox 3.0 minimum
Java SE Development Kit (JDK)
Windows, Linux, OpenSolaris: JDK 6 Update 13 minimum (Update 14 recommended)
Mac: JDK 5 Update 16 minimum
Only for Linux and OpenSolaris: GStreamer
Only for Windows: Apple QuickTime Player and DirectShow Filters
IDE and Software Development Tools
The developer bundle contains the following tools.
NetBeans IDE for JavaFX: NetBeans IDE is a mature and powerful development environment that makes it easy to build, preview, and debug JavaFX applications. The NetBeans IDE for JavaFX is easy to learn. It comes bundled with the JavaFX SDK and lots of sample applications. The NetBeans editor features an easy-to-use drag and drop palette to quickly add JavaFX statements, including transformations, effects and animation.
JavaFX Plugâ€in for NetBeans: If you are already using the NetBeans IDE, you can add the JavaFX plugâ€in to include support for developing JavaFX applications.
The designer bundle consists of JavaFX Production Suite, a single download that contains the following tools to enable designers to exchange visual assets with developers. The designer bundle is NOT available for Linux or OpenSolaris.
JavaFX Plugâ€in for Adobe Photoshop and JavaFX Plugâ€in for Adobe Illustrator: Developers can start building their applications based on mockups that the designer creates. As the visual design evolves, it is easy for developer to incorporate changes in the artwork for the final version of their application. When designers save their graphic to the JavaFX format they can compare how the graphic will look in desktop and mobile applications, and they can view metrics that enable them to minimize resource demands on mobile devices.
JavaFX Media Factory: JavaFX Media Factory contains two separate tools:
SVG Converter: Convert SVG graphics into the JavaFX format
JavaFX Graphics Viewer: View graphic assets that were converted to the JavaFX format. JavaFX Graphics Viewer allows you to preview each graphic as it will appear in either desktop or mobile applications.
If you prefer using other tools, or developing directly via the command line, you can download the standâ€alone SDK.
JavaFX SDK: The SDK includes the following components:
JavaFX Desktop Runtime
JavaFX Mobile Emulator (for Windows)
JavaFX API documentation
JavaFX 1.2 Plugâ€in for Eclipse: With this plugâ€in you can start developing JavaFX application in Eclipse IDE 3.4 or newer. It requires the JavaFX 1.2 SDK
ReportMill JFXBuilder - Visual JavaFX Script Designer: JFXBuilder is a visual design tool that generates JavaFX Script.
On2 Flix Encoder: Flix encodes any type of video, audio and image files for seamless playback in JavaFX.
Pros and Cons
Here is a list of some key Advantages of JavaFX.
JavaFX is based on the concept of a "Common profile" spanned across all the devices that are supported by JavaFX. This approach allows developers to use common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications for the needs of specific class of devices, the JavaFX platform includes API's that are desktop or mobileâ€specific. For example the JavaFX Desktop profile includes SWING and advanced visual effects.
The "Dragâ€toâ€Install" feature allows the user to drag a JavaFX widget or application residing in a website within the browser window and drop it onto their machine desktop. The application will not lose its state or context even when the browser has been closed. Application can also be reâ€launched by clicking on a shortcut that gets automatically created on the users' desktop. This particular behavior has been enabled outâ€ofâ€theâ€box by the Java applet mechanism and is leveraged by JavaFX from the underlying Java layer. Sun claims this "Dragâ€toâ€Install" feature to be an opening up of a new distribution model that will allow developers to "break away from the browser".
Integrating graphics created using third party tools
JavaFX includes a set of plugâ€ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plugâ€ins generate JavaFX Script code that preserves layers and structure of the graphics. Developers can easily add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (the Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.
Full integration into Webpages
JavaFX Script Benefits:
JavaFX Script is simple, declarative syntax used to express user interfaces, including a very rich set of layout widgets that make easy work of laying out a user interface in a platformâ€independent way. Content developers can create great looking, functional user interfaces without being expert programmers.
It has an innate ability to support the modelâ€viewâ€controller pattern because of its very powerful binding capability. This complements and enables the declarative programming syntax because attributes of objects, including user interface objects, can be bound to values contained in model classes in bidirectional way.
JavaFX Script supports the concept of triggers. We can invoke a specific action when certain conditions take place, such as when the value of an attribute changes etc.. This enables the declarative syntax as well, and makes UI development relatively easy, because setters and getters are replaced by triggers that are automatically invoked when the value of an attribute changes.
JavaFX Script has a very powerful syntax for defining, modifying, and querying sequences it is very similar to SQL syntax.
It is enables fast development of application prototypes and would be a great language to use in schools to teach programming concepts.
Below is a list of key disadvantages of JavaFX:
Java FX has a weak Performance because the applications run on JVM, which in turn runs on the native hardware.
Its dependence on competitors from the design stand point is risky. SUN doesn't bring anything new to the table in terms of design tools, which could lead to companies favoring more integrated IDE's.
Not all the promised platforms are supported yet
It takes a long time to load an application.
JavaFX, Flex or SilverLight: A Comparison
The comparison of JavaFX, Flex and Silverlight is documented in a tabular form below:
Adobe Flex Microsoft Silverlight Sun's JavaFX
Current - 1.3, Future - 2.0
Built-in UI Controls
Very limited to none
Flex Builder 3.0
Visual Studio 2008
.NET Platform 3.5
Silverlight 1.1 Alpha Visual
Studio 2008 Template
NetBean 6.01 JavaFX plugin
IDE Visual Design
IDE Toolbar for Controls
Adobe Flash Player 9
Silverlight 4.0, out of browser support
Java Plugin with JavaFX extension
(C#, VB.Net, ASP.Net)
Richness of UI
Look and Feel
(Out of the Box)
Cost for Developers
Simplicity of programming language
On comparing the 3 big players in the RIA Space, it is quite evident that Java has a long way to go.
Fig: Job Trends for JavaFX, Silverlight and Adobe Flex
E: Future of JavaFX
The RIA technology landscape change over the next 5 years could be determined by addressing the questions:
What technology will win? Adobe Flex , Silverlight, JavaFX or some other 4th party?
How will companies leverage RIA technologies?
What evolutions and revolutions on the technology front are coming?
Adobe is at the top. But that does not mean they will stay there forever. Microsoft and Java know how to compete. They are seeing RIAs as significant contributor to their business in the future. There is a war brewing between big players in the RIA space.
JavaFX 2.0 is on its wayâ€¦
JavaFX 2.0 roadmap has a couple of interesting prospects. Firstly, the JavaFX Script language is to be discontinued as an official Oracle project. Secondly, the key language features and API such as scene graph, binding, sequences, etc. are to be re-engineered into regular Java APIs making them accessible to languages other than JavaFX Script.
Some of the other interesting highlights are:
Grid Layout Container + CSS - making the Grid layout container accessible from CSS.
HD Media - improvements in full screen capabilities, media markers, animation synchronization, and low latency audio.
HTML5 WebView -JavaFX is great for dynamic application development, but is not well suited for content presentation.Â The combination of JavaFX + HTML5 will greatly expand the range of applications that can be developed.
File (and other) Dialogs - important for building real applications.
The world of internet computing is experiencing a dramatic change with the invention of multiple technologies including RIA, SOA and Cloud Computing. As Java enters the race, it only adds up to the multiple options available in the RIA Space, thereby offering a wider range of choices for the developer. It is believed that the more options you have at your exposure, the better it is.
As broadband penetration increases, the richer user interaction models of RIAs will inevitably take hold. Customers expect Web sites to keep up with the prevailing user interface models, and penalize those that fall behind. To stay current, we must not underestimate the effort needed to use the newest technologies effectively. So, it may require huge amount of effort to get started with a technology like JavaFX, but facing the initial difficulty may prove to be worthwhile in gaining the first mover advantage.
F: Recommendations and Conclusion
It may seem that Sun are a little late in presenting their RIA platform, but they claim that JavaFX will quickly have a hold onto the market because Java is already installed in billions of computing devices worldwide.
Developers familiar with Swing and scripting languages will find it easier to adopt JavaFX. In the JavaFX 2.0, scripting language will be discontinued and its functionality will be moved to regular Java APIs.
Flex and Silverlight are entirely closed source proprietary tools. Sun (now Oracle+Sun) has committed to making JavaFX available as open source software.
It may require huge amount of effort to get started with a technology like JavaFX, but facing the initial difficulty may prove to be worthwhile in gaining the first mover advantage.
On the final note, Adobe Flex and Microsoft Silverlight are more seasoned and stable options for development of RIA. JavaFX will take some time to mature and get up to par with the existing competition.