This blog piece is intended for business users in the main but I hope will also serve as a good information point for pulling together ever expanding array of Flash based technologies. For some time there has been an evolving need to break through the strictures of HTML development to bring desktop like functionality to essentially web-browser-based application development and to allow efficient interactions between desktop and web based applications.
HTML base elements such as forms, tables etc. have been stretched way beyond their limits and constructs such as iFrames, DHTML and even Ajax are all examples of attempts to break through the HTML barrier. They can all suffer to one extent or another from three ongoing flaws, if not used carefully:
- Browser Compatability They are all very browser specific and this can and often does introduce unpredictable behavior in different browsers. Typically this is mitigated by mandating a single browser type or family; in the open Internet this is not practical. Here is an excellent article on some of the problems encountered by applications developed which rely heavily on the use of JavaScript, such as Ajax – http://blogs.zdnet.com/Stewart/?p=101
- Application Scalibility Those of us who have used JavaScript for formatting large resultsets will no doubt have noticed how JavaScript slows down perceptibly as the recordsets get larger. Ajax, for instance, introduces interactions with XML or JSON in the browser moving part of the server-side operation to the browser client. This can significantly impact application performance as the size of the XML passed becomes larger. Here is a good article detailing this http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1162641,00.html
- Application Security This is a very good article detailing some of the security implications affecting sophisticated JavaScript applications such as Ajax http://www.securityfocus.com/news/11456
Flash Based Options
The Flash family of options brings us a complete suite of possibilities not only to produce sophisticated GUI’s in a Web Browser but also on the computer desktop and in devices such as PDA’s, phones etc. With the potential release of “AIR” (currently still in beta) we will get the capability to allow full real-time interaction between the web browser and the desktop. Here is an overview of the Flash family of products.
Flex
Outside of the Flash Player itself Flex is the most relevant development in the evolution of Flash. Flex is a way of dynamically creating Flash SWF files at run-time. Initially Flex (I.0, 1.5) was an expensive server-side paradigm that created dynamic Flash objects, aka SWF files, using MXML, a version of XML. With the advent of Flex 2.0 (the current released version) there was a decoupling of some of the parts of Flex into the following constituent parts and the addition of other elements.
Flex Framework
This is a series of classes programmed using ActionSript 3.0. ActionScript is the programming language for Flash based applications. It is very similar syntactically to JavaScript or ECMAscript. MXML is used to describe screen layout and produces ActionScript at runtime.
Flex Builder
Flex Builder is an IDE based on the Eclipse IDE and affords an easier way to get up and running with Flex. Flex Builder 2 makes developing Flex applications much simpler with features like an integrated compiler, code hinting, debugging, design view, source control system integration, and many other features. Flex 3.0 is currently still in beta and there are some significant enhancements from Flex 2.0, more details here.
Livecycle (Formerly) Flex Data Services – Enterprise Services 2
Deployed as a standard J2EE application, LiveCycle Data Services enhances the client-side Flex framework by providing high-performance connectivity with existing server-side data and business logic. Based on a robust messaging architecture, LiveCycle Data Services integrates with existing common middleware and provides services that automatically synchronize data between client and server, adding support for real-time data push and publish/subscribe messaging, and enabling collaborative and occasionally disconnected applications.
Flex Charting
Flex Charting software provides a rich library of interactive charts and graphs that enable rich data dashboards and interactive data analysis. Dynamically rendered on the client and with full support for the Flex data-binding and event model, the charting components make it easy to add drill-down, rollover, and other interactivity that makes your charts even more insightful than before. All of the charts can be extended to provide additional functionality, or developers can use the base classes to create customized chart types. Simple Flex client-server diagram…
Flash Lite
Flash Lite is the Flash technology designed for mobile phones and consumer electronics devices. Flash Lite dramatically accelerates the delivery of rich content and browsing, and customized user interfaces. There have been two major versions released so far; Flash Lite 1.x and Flash Lite 2.x. At the time this paper was created both versions were still being shipped by phone-device vendors*. Flash Lite 2 distributions will play Flash Lite 1 content but not vice-versa. Adobe recently announced the imminent launch of Flash Lite 3. Here is another simple diagram showing how-where Flash Lite might be used…
Here is a table showing the differences between Flash Lite version 1.x and 2.x
*There is a list of supported devices here with which version is supported: http://www.adobe.com/mobile/supported_devices/handsets.html
Flash Video
It is astounding how quickly Flash Video has come to dominate video on the Internet. There are estimates that as much as 70% of video delivered via the Internet uses the Flash Video format (.flv) and that has happened largely during the past two years. From Flash Payer 9 update 3 the Flash Player will support the MPEG-4 standards based high definition format.
Flash Cast
Flash Cast is a complete offline portal solution that enables the delivery of interactive content and branded data services to devices such as cell phones that are highly personalized, as well as easy to promote, discover, and use. Flash Cast enables consumers to subscribe to the “channels” of their choice, such as news, sports, music, and more. Content is delivered proactively so it is always available on the device regardless of network coverage. Here is another simple diagram showing how-where Flash Cast might be used…
Air – Adobe Integrated Runtime (Formerly Apollo)
The Adobe Integrated Runtime (AIR) is a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, AJAX) to build and deploy rich Internet applications (Rich Internet Applications – RIAs) to the desktop. The runtime also enables interoperability between desktop and web based applications. Adobe AIR beta introduces support for the open source, cross-platform SQLite database, local file system dialog boxes, drag-and-drop support, major performance enhancements to the HTML component, and more. There are a growing number of sample AIR applications which can be seen here.
Connect – Formerly Breeze
Adobe Connect, derived from the product formerly known as Macromedia Breeze, is a secure, flexible web communication system that enables IT professionals to support and extend the functionality of Adobe Acrobat Connect Professional to provide enterprise web communication solutions for training, marketing, enterprise web conferencing, and online collaboration. It has features such a desktop sharing and remote control and runs without needed additional software downloads using the Flash Player as the client. This new version of Adobe Connect has an extensive range of API’s which are now industry standard; using web services to interconnect. This means that integration with ColdFusion or LiveCycle-Enterprise Services is possible with theoretically minimal pain. Here is another simple diagram showing how-where Connect and AIR might be integrated…
New Flash Based Adobe Offerings
I apologize if this sections is somewhat lacking in details, most of these technologies are evolving as I write this.
CoCoMo
CoCoMo will be the next-generation framework for the Adobe Connect Web conferencing service, which will enable developers to take certain parts of Connect$#39;s functionality and integrate them into other applications.
Kuler
Kuler is the first web-hosted application from Adobe Labs designed both to stand alone and to complement Adobe Creative Suite software. Built using Adobe Flash and ActionScript 3.0, kuler is all about color: color for exploration, inspiration, experimentation and sharing. More information about kuler can be found here.
Pacifica
Pacifica is a service that will allow developers to integrate voice, messaging and user presence information into applications built using Adobe Flex, Adobe Integrated Runtime (AIR) or Flash technologies.
Share
http://labs.adobe.com/technologies/share/
- Send documents without email attachments.
- Access your documents from anywhere.
- View all the documents you have shared or received in one place.
- Post a link to your document on a wiki or blog.
- Embed a Flash preview of your document on any website.
- Limit access to a document to a list of recipients.
There is a lot going on with the Flash Family at present and we will be keeping an eye on how this will affect our clients and also help them to fully realize all potential benefits.