Archive for the ‘RIA’ Category

Adobe Flex now Apache Flex

Posted: January 8, 2012 in Adobe, Flex, RIA, Technology
Tags: , , , , ,

End of the last year (Nov – 2011) Adobe planed to donate Flex to Apache foundation and now Flex is officially accepted by Apache Software Foundation(ASF). For more info on this check the mail thread conversation on voting at Apache – http://markmail.org/message/7q22pdviyxvkwbf5.

This year 2012 is the first year of Flex to live outside Adobe and managed by open source Apache Foundation. In the other side Adobe is also planning to renovate the Flex compiler and they are researching on making it possible to convert ActionScript code to JavaScript code. In this way we can develop HTML/HTML5 based application using ActionScript code. The open source movement is very popular and this is strengthen every year. Now onwards Apache is the the future for Flex. Apache Software Foundation was founded and is governed by the common people that really understand open source development model. It is one of the most respected software foundations in the world. To know more about how Apache Software Foundation (ASF) works then visit this link – http://www.apache.org/foundation/how-it-works.html.

For more info on this – http://wiki.apache.org/incubator/FlexProposal

Adobe Flex now Apache Flex

Flex SDK 4.6

Posted: December 17, 2011 in Adobe, Flex, Mobile, RIA, Technology
Tags: , , ,

You must be knowing that Adobe has released Flex SDK 4.6. Thanks to Adobe Flex SDK team to keep enhancing the SDK. This release of SDK is majorly focus on mobile and tablet apps development. Flex SDK 4.6 bundled with new mobile optimized Spark components. In mobile or tablet apps development major area of consideration is performance and SDK team done a good job and by using this SDK apps performance will be improve by 50%.

New Flex SDK 4.6 support for the latest Flash player 11 and AIR 3 runtime. Now this new SDK also brings support of iOS5 platform.

For more information on Flex SDK 4.6 features please visit Adobe Flex SDK 4.6 page and you can also check What’s new in Flex 4.6 SDK and Flash Builder 4.6 by Jacob Surber.


Adobe Flash Player

Adobe Flash Player

Flash is travelled very long distance in last decade, from Macromedia Flash to Adobe Flash. This Flash word is always in tech buzz. Initially it was popular in animator group then gradually attracted the attention of application developers and became a de-facto for RIA applications.

Flash is always preferable for developing richest content and deployed on browser. This enables consistent look and feel across different browser wherever Flash Player installed. Last year Flash was rejected by Apple’s for their devices and Apple started advocating open source technologies HTML5. This incident started a new thread in tech community over Flash existence.  Now again the same buzz started on Flash and its future after the Adobe’s recent announcement that they will no longer develop the Flash player for mobile browsers. In tech history there were several popular technology rolled out and rolled back depends on market movement, like JavaFX, SilverLight etc. Every technology has their lifecycle and this is manipulated by technology deviations.

Now we are entered in handheld device from desktop era. Here in this era everyone is looking for application migration for handheld devices. Here now if anything happens related to mobile or handheld devices then there is big news, but last year Adobe also stopped future development for Linux based AIR then there was silence.

Compare to Flash Player currently HTML5 is now supported on all major mobile devices. HTML5 is now a preferable technology for browser based application on mobile devices. With the latest release of Flash Player 11.1 for mobile browser Adobe will not support further for Flash player of mobile browser. This version of Flash player is still a very advance and powerful, there is still a scope of development Flash based application for mobile browser by taking advantage of new Flash Player 11.1 features.

As per market trends most of the customer want to port there application as a mobile devices apps, not as a browser based application. Here in this segment Flash is still a key player and we can port our Flash based application on Mobile device using AIR. Good news Adobe is still working on Flash Player 12 version so there is no point of worry.HTML5 is a very good technology but it still need time to fulfil the entire RIA requirement. Video/Media content delivery model is still not consistent in HTML5. Here Flash Player is best solution.

I am waiting for the day when Flash Player become an open source product and managed by some open source community. Then after we can say that we as Flash developers are using non-proprietary technology like HTML5. In this area Adobe has already taken initiative by planning to contribute the Flex SDK to an open source foundation.  This step will really give a high momentum in Flex SDK area.

Flash journey start from FutureWave to Macromedia and from Macromedia to Adobe, now Flash is ready to open source community in future. There is one thing for sure wherever Flash will go it will rock, it will not going to die soon like others.


In my last project assignment I found Spring BlazeDS Integration API is very fruitful. It really helps developer to focus on only business implementation of application and forget about backend server level configuration. Spring BlazeDS Integration is a top-level Spring project, and a component of the complete Spring Web stack. This project’s purpose is to make it easier to build Spring-powered Rich Internet Applications using Adobe Flex as the front-end client. It aims to achieve this purpose by providing first-class support for using the open source Adobe BlazeDS project and its powerful remoting and messaging facilities in combination with the familiar Spring programming model.

Spring FrameworkBlazeDS

By this article I am going to share the basic and essential part of this API that helps to understand the integration process. In this example I am going to use Spring+BlazeDS integration API for integrating backend Spring based J2EE layer into client layer Flex application.

What I am going to cover here:
#
Creating Spring based J2EE backend layer
# Implementing Spring BlazeDS Integration API
# Creating Flex application for client layer

List of software used for this implementation:
#
FlashBuilder 4.5
# Flex Framework SDK 4
# Apache Tomcat 7.0
# Spring BlazeDS Integration 1.5.0
# Spring framework library
# BlazeDS library
# Eclipse with WTP for creating dynamic web application
Note – we can use compatible preceding version of these software also.

Creating Spring based J2EE backend layer

In this step first create a dynamic web application using Eclipse IDE by File->New->Project->Web- Dynamic Web Project options and enter the basic project details and settings.

New Dynamic ProjectContext Root

In the above steps cross check the context root name for this application. This context root name will be use for client layer integration. After this steps this project will look like below in project explorer of Eclipse IDE.

Project Explorer

Now put all the jar files of downloaded library in WebContent->WEB-INF->lib folder. Total number of jar files in lib folder are 36.

List of library files

Tips : If you unable to find any of these listed jar files then you can manually download this from http://grepcode.com by entering the full name of zar file. Make sure you have all the respective library jar files of Spring Framework, BlazeDS and Spring+BlazeDS integration API.

Now after this initial project setup steps move to J2EE layer development. In this example I am fetching the list of country for Flex client layer.

Creating Spring based J2EE backend layer

First modify ‘web.xml’ in the ‘WEB-INF’ directory. Go to the WebContent->WEB-INF->web.xml directory. Here I define a DispatcherServlet (also known as a ‘Front Controller’. It is going to control all the requests. This servlet definition also has an attendant <servlet-mapping/> entry that maps to the URL patterns that will be used for making request. Here I am defining url pattern as /messageBroker/*, that means all request url containing this pattern will be routed to the ‘blazeds’ servlet (the DispatcherServlet).

Modifying the Deployment Descriptor web.xml file

Now I have created blazeds-servlet.xml file in WebContent->WEB-INF-> directory. This file contains the bean definitions used by the DispatcherServlet. It is the WebApplicationContext where all web-related components go. The name of this file is determined by the value of the <servlet-name/> element from the 'web.xml', with '-servlet' appended to it (hence 'blazeds-servlet.xml'). In this I am configuring spring annotation framework and providing a base package location of J2EE interface layer classes for Flex communication. And most important thing is configuring message-broker of Spring+BlazeDS integration API for object serialization.

Configuring WebApplicationContext

After this we have to define blazeDS communication channel in services-config.xml file at WebContent->WEB-INF->flex-> (this is a default location of services config file).

Configuring services config file

Now all the configuration lavel part is done and move to Class lavel coding. Just have a look on this class.

J2EE layer service class MapManager

The best part of Spring+BlazeDS Integration API is we now we don’t need to configure remote-config file for every java class. We just have to write a one single Spring annotation tag in class and need to provide a remoting communication channel information. In the above class I have used these three basic Spring annotation tag:

  • @Service(“mapManagerService”) – for giving a destination name of this class for Flex layer remoting.
  • @RemotingDestination(channels={“my-amf”}) – for providing a remoting communication channel name.
  • @RemotingInclude – using this tag we can include the method of the class for remoting.

Now we are ready to deploy this application on server.

Creating Flex application for client layer

In Flex layer we don’t have to do anything extra just need to create a Remote Object and call the exposed service destination from J2EE layer. For testing we don’t need to deploy this Flex application on server.

Client layer Flex Application

Output screen of Flex application

Output screen of client layer Flex application

Reference link:

Source files of example projet : http://uploading.com/files/f22164bb/GeekTest_01.zip/

 


I am currently looking into a Flex application framework for my upcoming Flex Enterprise project. In Flex application development Cairngorm and PureMVC framework is a de facto standards. For my project we are looking into a possibility to introduced Swiz framework for application architecture.

Swiz official website stated this as “The brutally simple micro-architecture for Enterprise ActionScript development”. This tagline is very catchy and promise to cater key requirement of any application i.e. simple framework for enterprise level application. While judging this statement I have migrated some of the small apps into Swiz framework and reduced 30-40% of codebase, it is interesting.

Here I am giving you simple steps to give a start Swiz based application:
Create a context file for configuring Swiz framework. In this configuration we are providing the Beans and configure the Swiz framework.

  1. Create a Bean factory as repository for Bean classes.
  2. Injecting the bean where it needed using [Inject] tag. After injecting the bean you are able access the bean object.
  3. Register handle for flash event using [Eventhandler(event=”EventClass.EVENT_NAME”)] for event handling.
Swiz Context Configuration

swiz_part1

Swiz Bean factory

swiz_part2

Injecting Bean and register event handler

swiz_part3

Dispatching event

swiz_part4

Now after this simple step we can give a start to Swiz based application development. This is really a very simple as stated in Swiz website. One key point here is all metadata tag related function and properties should marked as public. Swiz framework developer’s team are also ready with Swiz AOP version (Aspect Oriented Programming). Swiz AOP gives you the powerful ability to easily configure new functionality into existing code, instead of muddying up your fundamental business logic. It is an extremely powerful methodology that Swiz makes very easy to work with.


FluidHTML is a new markup language that greatly expands the application of rich media on the web. Rich Internet Applications are growing rapidly and globally. Yet the most common rich media languages are hard to learn and use and are not search engine indexable.

FHTML, Inc., was founded in March of 2009 to tackle this problem and to significantly simplify and empower development of rich media websites, content and applications for the web. FluidHtml, The Company’s product, is a new markup language that dynamically generates Flash content. Structured like HTML, FluidHtml allows any web developer to dynamically generate Rich Media sites and applications and is compatible with all major browsers. FluidHtml solves the Flash search problem by exposing the markup text to search engines. Now web publishers can combine the human appeal of rich media with all the business benefits of the web.

fluidHTML

FluidHtml has several additional important benefits. It runs in Flash, which is ubiquitous and which is consistent across all browsers. FluidHtml integrates seamlessly with server-side web technologies such as Java, .NET and PHP. And it includes a liquid layout engine with significantly more flexibility than CSS. FluidHtml markup is interpreted client-side using FHTML rendering engine. FHTML markup language is easily combined with HTML page and render on Flash based FHTML rendering engine.

flow

Benefits of FluidHTML

The use of rich media, interactive web applications, and web animations are growing dramatically, and consumer expectations of their web experience with your company are rising as a result. Historically, committing to rich website development meant using Flash, but this has significant problems for CIOs that FluidHtml solves. The main ones are these:

  • Learning curve for HTML web developer is very low
    FluidHtml is a markup language that is rendered in Flash dynamically with HTML-equivalent syntax. So, if we know HTML then we know FluidHtml. FluidHtml puts the power of Flash into the hands of your existing web developers because it follows HTML paradigms can easily be learned in a few weeks. By using our additional tags and properties, we can make applications, widgets and websites and we can mix FluidHtml and HTML on the same web page.
  • CSS3 Style Sheet Support
    Support for stylesheets in Flash is extremely limited. Typically, all style changes have to be done in ActionScript and cannot be shared with the styles on our website. FluidHtml has comprehensive stylesheet support, so now our dynamically-generated Flash applications can be styled and restyled easily. In version 2.0 of FluidHtml, our stylesheets are CSS3 compatible. So, the styles we use for HTML pages can also be used in FluidHtml to create Flash animations and layouts.
  • Liquid Layout and Data Binding
    FluidHtml supports liquid layout. This means objects can be positioned and resized relative to each other in various ways, rather than just in absolute position. Your application can easily adapt to different screens like desktop or mobile. And also support extensive Data Binding feature for components.
  • Developer friendly development approach
    No one today would code a large website in Flash because it was never built for this purpose. Flash is compiled, so each page of your site is essentially a compiled application. This isn’t true of HTML which can be dynamically generated on the server. Since FluidHtml is just markup on the page, it works like HTML. With FluidHtml you can generate Flash pages dynamically just as you do HTML.
  • Inherently Search Engine Compatible
    Flash has a difficult time with SEO. Because Flash is compiled, the search engines can’t index these binary objects. Adobe is working on making this better, but there is a natural limit to what can be done. However, FluidHtml is just markup, so it can be indexed by the search engines just like HTML. This means you can develop in FluidHtml and get all the benefits of Flash without sacrificing search engine indexability.

The upshot of all this is that with FluidHtml, your enterprise can enjoy all of the benefits of rich web deployment while dramatically reducing the total cost of development and maintenance over conventional rich media tools like Flash and Flex. And while Html5 is promising, it isn’t ready. And even when it is ready, it won’t necessarily be the right solution for multiple categories of applications

Technical specification

Programming Language: Tag based markup language FHTML+HTML. For interactivity we can use javascript and actionscript that is interpreted in Flash based FHTML interpreter.
Styling: For styling CSS2.0 and CSS3.0 (in FluidHTML v2.0)
Runtime: Flash Player 10 and above

FluidHTML Technical and Commercial Advantage
Sr. No. Advantage Parameter FHTML Advantages over HTML/FLASH
1 Technical Easy to create rich media websites, content and applications (RIAs, for short). Everyone that can code HTML should be able to build RIAs.
2 Technical Search engine optimization is available in FHTML.
3 Technical FHTML code does not need to be compiled like Flex, Silverlight and Flash.
4 Technical Learning curve for HTML developers is quick and easy.
5 Technical Text/colors/layout cans easily changes without compilation.
6 Technical FHTML content also renders on Apple product through HTML5 with inbuilt fallback mechanism after device and environment detection.
7 Commercial Reduces total cost of ownership for a business i.e. not require purchasing Flash IDE license.

 

References

Official Web page: http://www.fluidhtml.com/
About FHTML Inc.: http://www.crunchbase.com/company/fluidhtml
FAQ Page: http://www.fluidhtml.com/help/
Sotheby’s eCatalogue tool: http://www.sothebys.com/app/ecatalogue/fhtml


As a RIA specialist I have been doing client side development professionally over the last six years or so, in a variety of UI toolkits and libraries that spanned Ajax, Adobe Flex, HTML5, Swing, Applet and Silverlight. During this period I have been in touch with different RIA technology, JavaFX being one of them. Before continuing the discussion further first I would like to tell you little bit about JavaFX. The JavaFX is a rich client platform for building cross-device applications and content. Designed to enable easy development and deployment of rich internet applications (RIAs) with immersive media and content, the JavaFX platform ensures that RIAs look and behave equivalently across diverse form factors and devices. This is an innovative technology built on top of Java that allows the creation of next generation RIAs.

javafx_logo_color_1

Client side developers are always seeking for most efficient way of creating expressive RIAs. They need to build high fidelity GUIs that operates seamlessly on multiple web browsers, operating systems and devices, without having to rewrite their applications for varied environment. JavaFX promised to provide this kind of technology for end user developer, with the power of most preferable web and device technology- Java. With the advent of JavaFX it was thought that java would be one stop shop for developers.

It’s been three years since JavaFX was introduced to the world, but alas it didn’t gain a lot of momentum, though being launched at the right nick of time when the web community was moving towards RIA. It introduced a new scripting language called JavaFX Script, a very powerful language. In fact, it’s a DSL (Domain Specific Language) for creating rich user interfaces where the resulting application runs inside the Java virtual machine on the client. To my surprise when I first loaded the demos on their sites it took lot of time to load as compared to Adobe flash based application. I was hoping that being developed on Java as base technology it should have outperformed the flash based application. The benchmark on different site shows that JavaFX is by far the slowest. JavaFX APIs are not stable yet, it is not an industry standard and not many vendors are committed to it. Further, competing technology such as Adobe Flash is very popular and almost dominates the RIA domain. The key mantra of JavaFX is deployment and performance. Unfortunately, this is where JavaFX has failed miserably. The original Java applets and swing application failed miserably in deployment and JavaFX (which was supposed to be the next applet technology or applets 2.0) has inherited the failed deployment with it. In other words, nothing has really changed since 1995. This is what happens most of the time – you click on a link to launch a JavaFX application inside the browser. The browser freezes for about 5 seconds. To my woes, yesterday night while discussing about the JavaFX deployment process with one of my friend, I tried to show him the demo on JavaFX site, and the browser crashed twice. Should I blame him for this, for he was trying to click here and there while the demo was trying to load itself? I think JavaFX failed to gain any significant momentum mainly because of deployment problems which I described here. Deployment was never simple. Running an applet could freeze the browser for a few seconds, present you with a number of scary securities dialogs, and maybe even launch. If you were not that lucky, you would see the Java logo as an animated GIF. What I described above is the main reason JavaFX has failed so far. Deployment is still a disaster. If Oracle needs to know how deployment should work, it’s very easy. Just look at Adobe Flash. Make it as simple and transparent as running a Flash application. That’s it.

Some people say they don’t like JavaFX because they need to learn a new language. Well that’s just a bunch of hot air. First of all, any decent Java developer can pick up JavaFX Script in about 2 days. If you are developer (any kind) today, you have to learn new stuff all the time.

After acquisition of Sun Microsystem by Oracle, the roadmap or vision of JavaFX is changed. As everyone knows by now, Oracle is making significant changes to JavaFX. Oracle is stopping any further development of JavaFX Script. Instead, it will develop Java APIs which will become a part of JavaFX 2.0 to be released in the second half of 2011. So, instead of using JavaFX Script to develop rich Java applications, you will use the new Java API. There is still time to make JavaFX successful, but the time is running out. First, fix the deployment issue need to be addressed. Just start from scratch, don’t try to fix the current deployment system. Second, if Oracle doesn’t want or need JavaFX, then open source it and let the community drive its future. I think Oracle has 6-12 months at the most to try and revive JavaFX. If nothing happens by then (which would be about 4 years since the technology was announced), we just might as well close the door on JavaFX. Now market trends driven towards open ended technology like HTML5, people are not ready to depend on any third party proprietary technology. As the history suggests Java popularised for being cross-device technology. So for me JavaFX still have a market in device development segment. If they fix the performance and deployment issue ASAP.

Flash on iOS devices

Posted: March 15, 2011 in RIA, Technology

Adobe has finally release a new tool called Wallaby, that will convert Flash files to HTML5 so they can run on Apple devices like the iPad and iPhone. This tool is basically help online advertisers and websites who have alreaduy made a big investment in Flash and don’t want to loose the iOS market.

Wallaby is essentially a Flash to HTML5 converter. This software runs on top of Adobe AIR, and will convert Flash(FLA) files into HTML5 format through a drag and drop action. Wallaby outputs HTML5 content compatible with Webkit based browsers e.g. Google Chrome, Safari and the iOS browser.

Interested in Wallaby :-)… get connected and downloded from http://labs.adobe.com/technologies/wallaby/


Today with Web2.0, success of Facebook, Gmail, Google Docs and other promising web applications prove that the without Rich Internet Application can’t be achievable this success. RIA is one of the core driving part of Web2.0 experience. Rich user interface developer today are more focused on creating appealing applications that hypnotize the end users and engage them for longer period of time in the website. Richness in Web2.0 applications requires not only that the user interface be intuitive, smooth and dynamic, but also that it be functionally rich. With consider to the enterprise level application, the rapid implementation of SOA at the back end should have been a strong driver for the adoption of RIAs since technologies such as Ajax and Flex are natural complements for services.