Patricia Seybold Group

Trusted Advisors to Customer-Centric Executives

Macromedia’s Flash Platform Bringing Rich Experiences to the Masses

By Brenda M. Michelson Sr. VP and Sr. Consultant, Patricia Seybold Group

UNAUTHORIZED REDISTRIBUTION OF THIS REPORT IS A VIOLATION OF COPYRIGHT LAW Direct link: http://dx.doi.org/10.1571/PSGP6-16-05CC This report is a reprint from the June 16, 2005 Patricia Seybold Group’s Advisory Service. It has been reproduced here as originally published.

Patricia Seybold Group / Perspective ’s Flash Platform Bringing Rich Experiences to the Masses

By Brenda M. Michelson, Sr. VP and Sr. Consultant, Patricia Seybold Group June 16, 2005

INTRODUCTION the enterprise. As always, we share our perspec- tive—what we like, Macromedia’s challenges, and On June 6, 2005, Macromedia unveiled its Flash its strengths. Platform for delivering rich user experiences (con- tent, applications, and communications) across browsers, operating systems and devices. The Flash FLASH PLATFORM Platform is a cohesive product roadmap, demonstrat- Illustration 1 shows the Flash Platform architec- ing how the various Macromedia offerings fit to- ture. The architecture supports the delivery of con- gether, and provides some previews of future plans. tent, rich applications, and communications to a user Macromedia’s announcement signifies that the time interacting through a variety of touchpoints (browser, for rich interfaces (and interactions) on the Web, on mobile device, desktop client, set-top box, etc.) that mobile phones, and in the enterprise is upon us. represent a wide range of operating systems, form We are interested in Macromedia’s plans because factors, and providers. user experience is a significant aspect of delivery a As shown in the architecture drawing, the Flash high-quality customer experience. Our most innova- Platform is not just a client-side plug-in, but a com- tive clients (Pioneers and Visionaries) have been prehensive system with dedicated server-side tech- pushing the user experience envelope using early nology, back-end integration capability, a releases of Flash, as well as retreating to the desktop programming model, development tooling, prebuilt with thin Swing implementations. solutions, and, of course, the universal runtime. Reviewing Macromedia’s roadmap, it is apparent that the company is ready to make a concerted push Client Runtime: Flash Player into the enterprise, with an enterprise-developer- friendly (and infrastructure-friendly) offering. At the At the heart of the Flash Platform architecture is same time, Macromedia continues make advances the client runtime. Most of us are familiar with the important to its loyal design community. In many Flash Player that runs as a plug-in to our browsers. ways, Macromedia’s push to the enterprise provides In our daily Internet experiences,2 Flash brings us a new opportunity for those designers to use their news clips, sports highlights, movie previews and skills on new initiatives and to develop rich enter- shorts, real-time baseball, advertisements, product prise-class applications as part of larger development teams. architecture. RIA combines the best of both worlds: rich In this report, we describe the Flash Platform at a interface and distributed . high level, paying particular attention to the compo- 2 1 For some Flash-enabled experiences, try product nents enabling rich Internet applications (RIAs) in configurators for the Mini Cooper (http://www.mini.com/ mini_worldwide/mini_worldwide.html) and NikeId 1 A rich Internet application combines a rich interface (http://nikeid.nike.com/nikeid/index.jhtml), see a short that is useful, usable, and desirable with the performance, movie (www.amazon.com/screeningroom), and view scalability, and reach of an enterprise-class Web applica- live—in season—baseball (http://mlb.mlb.com/NASApp/ tion built on an n-tier architecture and/or service-oriented mlb/mlb/video/mlb_tv.jsp).

Customer Scenario and Customers.com are registered trademarks and Customer Flight Deck and Quality of Customer Experience (QCE) are service marks of the Patricia Seybold Group Inc. • 210 Commercial Street, Boston, MA 02109 USA • www.psgroup.com • Unauthorized redistribution of this report is a violation of copyright law. 2 • Macromedia’s Flash Platform

Flash Platform Architecture

© 2005 Macromedia

Illustration 1. Macromedia’s Flash Platform architecture supports the delivery of content, rich applications, and communications to a user interacting through a variety of touchpoints (browser, mobile device, desktop client, set-top box, etc.) that represent a wide range of operating systems, form factors, and providers.

configurators, and streamlined check-out processes. Central supports an occasionally connected work Now that we have bandwidth, it is hard to imagine model. Its features include local cache, data syn- the Internet without Flash-enabled content. chronization, and presence detection.4 Central is cur- rently a developer release offering only, billed as a NOT JUST FOR BROWSERS. In addition to the next-generation solution. browser-destined Flash Player, 3 there are runtime versions for mobile phones (Flash Lite) and for the NOT JUST MEDIA. In addition to media capability, desktop (Central). Flash Lite is a lightweight version the Flash runtime has a variety of data service capa- of Flash Player. Flash Lite delivers content and ap- bilities, including Web Service (SOAP/HTTP) and plications to the phone and sometimes serves as the XML/HTTP (REST) requests and XML parsing. For actual phone interface. a detailed feature list for each platform layer, please refer to Table A.

3 Flash Player has also been embedded into set-top 4 For more information on Central, see boxes, home control systems, PDAs, and educational toys. http://www.macromedia.com/software/central.

A Customers.com® Research Service © 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. Perspective • 3

Flash Platform Capabilities

Platform Aspect Capabilities Component

Client Media • Vector graphics • JPEG/GIF/PNG • Two-way MP3 audio Runtimes • Two-way video • Text rendering

Data Services • HTTP/S • XML/SOAP • AMF

• RTMP • Sockets • Local persistence

• Data sync • Local connection • External API

• Security sandbox

System • Accessibility • Printing • Debugging Services • Auto update • Presence

Programming Language • ECMAScript 262 • E4X • Declarative XML Model Edition 4 abstraction

• CSS

Class Library • UI controls • Navigators/layout • Data components managers

• Skinning/styling • Extensibility

Experience Develop/Deploy • Compilation • Caching • Shared library Servers management

• Client detection • Versioning • Search integration

• Administration • History management • Analytics integration

Data Services • Data sync/page/push • Enterprise connec- • SOAP proxy tors

• AMF gateway • RTMP gateway • HTTP services

• Security • LDAP integration

Collaboration • SMS • MMS • XMPP

• SIP/SIMPLE • Video chat • Text chat

• Screen sharing • Application sharing • Permissioning

Media Delivery • Video on demand • Live A/V broadcast • SVG transcoding

• A/V transcoding • CDN/edge services

Table A. This table lists Flash Platform capabilities in the Maelstrom release of Flash Player, the Deuce release of Flash Lite, the Mistral release of Flex Server, and the Edison release of .

© 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. A Customers.com® Research Service 4 • Macromedia’s Flash Platform

ASYNCHRONOUS AND EVENT DRIVEN. The and developers of enterprise-class, rich Internet ap- Flash runtime follows a common interaction model plications. Underpinning both models is the Action- of asynchronous server interaction coupled with Script programming language and the compiled event processing. This allows the user to continue output format of SWF. interacting with the client application while the ACTIONSCRIPT. ActionScript is the scripting lan- server fulfills the request. The client runtime re- guage used to control Flash movies and applications. ceives the data as an event and then processes it ap- There are two ActionScript versions. The first, Ac- propriately. tionScript 1.0, is a simple target- PERVASIVE. The Flash client runtime has been ing interactions, such as a user clicking a button. The enormously successful. Flash is installed in 98 per- second, ActionScript 2.0, is an object-oriented pro- cent of all Internet-connected PCs. The success can gramming language developed for complex pro- be attributed to the small footprint (less than 1 MB), gramming tasks, such as content and data the ease of deployment and updates, Macromedia’s manipulation. continued investment in performance, the security ActionScript is an ECMAScript6 language; it is sandbox model,5 the published SWF file format that therefore a close relative of JavaScript, with many allows third parties to output Flash format, and the syntax similarities. However, the ActionScript client quality of experience delivered. model is based on movie clips, text fields, and sounds; and the JavaScript client model is based on MAELSTROM. The current version of the Flash cli- windows, documents, and forms. While the Action- ent runtime is 7. The next version of Flash, code- Script client model is natural for designers, it is for- named Maelstrom, has significant advances in per- eign to enterprise developers. formance (graphics rendering, text scrolling, com- ponent rendering, ActionScript execution, and ActionScript Integration with JavaScript. Mac- memory management), graphical expressiveness romedia has released a Flash/JavaScript Integration (drop shadows, blurs, glows, beveled highlights, kit 7 that allows seamless communication between color transformation and convolution, and new Flash and JavaScript. With the kit, you can now call blending modes), font readability, enhanced video, JavaScript functions from Flash and ActionScript privacy controls, IME context switching for large functions from JavaScript. This mixed client-side character sets, and file upload/download capabilities. model is becoming more popular. An often-cited example implementer of Flash and JavaScript is Programming Models: Flash and Flex Flickr.8 Macromedia supports two programming models FLASH CLIENT-SIDE MODEL. Designers and de- with common underpinnings. The first programming velopers can use Macromedia Flash MX 2004, as model is the traditional Flash client-side model, tar- well as third-party tools, to develop content and ap- geting designers and developers of content and small plications for the Flash runtime. As mentioned applications. The second is the newer Flex presenta- above, the programming language is ActionScript, tion-tier programming model, targeting designers using the movie client metaphor, and the executable is a SWF.

5 In a security sandbox all resources—including appli- FLEX. Flex is Macromedia’s solution to bring rich cations, data, URLs, and others—known to the Flash cli- clients to enterprise-class applications and to the en- ent runtime are associated with a specific sandbox. terprise development community. Flex addresses Applications may interact freely with resources within the specific user experience challenges: multistep proc- same sandbox, but access to all other resources and other sandboxes is controlled. This is similar to the model used 6 For more information, see http://www.ecma- for Java and JavaScript. For more information, please see international.org/publications/standards/Ecma-262.htm. http://www.macromedia.com/devnet/flashplayer/ 7 http://weblogs.macromedia.com/flashjavascript/ articles/client_security.html. 8 http://www.flickr.com/

A Customers.com® Research Service © 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. Perspective • 5

Flex Architecture

© 2005 Macromedia

Illustration 2. Flex brings the power of rich interfaces to enterprise-scale applications, thus providing an infra- structure for rich Internet applications (RIAs). esses, client-side validation, direct manipulation, and Macromedia shares that after T.J. Maxx9 replaced its data visualization. HTML-based check-out process with one based on Macromedia sees these challenges appear consis- Flash, the company increased its conversion rate tently in applications for guided selling (product (buying after placing items in cart) by 50 percent. configurators, comparison engines, product selectors, Flex is comprised of a programming model, pres- shopping carts/check-out, etc.), self-service (hotel entation server (Flex Server), development tooling, reservations, order entry, online banking, etc.), and and (of course) the Flash client runtime. See Illustra- dashboards (business intelligence applications such tion 2 for Macromedia’s depiction of Flex. as sales reporting, requiring sorts, filters, and drill down). Macromedia (rightly) contends that provid- ing rich client experiences improves user focus, speed, and absorption, which lead to business benefit.

9 http://www.tjmaxx.com/

© 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. A Customers.com® Research Service 6 • Macromedia’s Flash Platform

Macromedia designed Flex to fit into existing The Flex server compiles and caches the inter- development practices and enterprise infrastructures. face, serves it to the client runtime, responds to Development practices include: data requests, and integrates with back-end components (the model layer) to fulfill those re- • Programming Model. The Flex programming quests. In addition to standard data requests, model adds the MXML interface language and a Flex embeds Flash Platform capabilities, such as Flex class library to the ActionScript scripting Flash Remoting gateway and a media language. MXML is an XML-based markup transcoder, to serve content requests as SWF. language that allows the developer to lay out the user interface and perform data binding and ma- • Flex Server Is a Java Application. Since the nipulation. The Flex class library has prebuilt Flex presentation server runs as a Java applica- components for UI and data binding (SOAP, tion in a standard application server, it can ex- XML/HTTP, J2EE). ploit existing application logic (Java, Web Services, XML/HTTP) and J2EE services (au- • Deployment. Similar to Java Server Pages (JSP) thentication, session management) using Java development, Flex code assets deploy as files to constructs. the presentation server, and the code compiles into an application upon the first user request. • Mistral. The next release of the Flex Presenta- The difference in Flex is that the code compiles tion Server, code-named Mistral, adds transpar- into an executable (SWF) to run on the Flash ent data persistence across tiers to support client runtime. occasionally connected clients, data synchroni- zation, a data-push infrastructure, and large data • Enterprise Application Practices. Flex is de- set paging. signed for shops that use n-tier or service- oriented approaches to application architecture, For more information on Flex, see Macromedia’s specifically using the Model/View/Controller Flex Technology white paper.11 design pattern, separating presentation logic from business logic. In the Flex model, there is Communications and Flash Cast Experience essentially a client-side view controller and a Servers server-side business-logic controller. In addition to the Flex presentation server, the • Development Tooling. Currently, Macromedia Flash Platform includes a server for collaboration offers Flex Builder for tooling. As well, MXML (Flash Communication Server) and a server for wire- is schema based, so developers can use other less operators to deliver rich content to mobile de- XML-schema-aware editors. To meet the enter- vices (FlashCast). Accompanying both servers are prise developer’s experience expectations, Mac- client solutions: Breeze for collaboration and Flash- romedia has joined the Eclipse Foundation10 and Cast for mobile devices. will develop tooling based on Eclipse (code- FLASH COMMUNICATION SERVER. The Flash named Zorn), which will allow developers to Communication Server integrates streaming audio, work in an environment and development meta- video, and data into a collaborative multiuser Flash phor (projects) that they are familiar with. application. Application examples are chat, shared whiteboards, Webcasts, and . Enterprise infrastructures include: These applications are client/server applications, • Flex Presentation Server. The Flex server is with a Flash client interacting with the communica- the presentation tier in an enterprise application. tion server using real-time message protocol

10 http://www.macromedia.com/macromedia/proom/ 11 http://www.macromedia.com/software/flex/ pr/2005/eclipse_flashplatform.html whitepapers//flex15_tech_wp.pdf.

A Customers.com® Research Service © 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. Perspective • 7

(RTMP), which enables a persistent connection be- aggregates and delivers channel content, and logs tween client and server. usage for billing. The FlashCast client is a device- The communication server provides two commu- resident application that manages local channel con- nication models: streams and shared objects. tent and user preferences. The FlashCast client runs Streams enable two-way audio/video communication. on Flash Lite and communicates with the FlashCast Shared objects allow multiple users to view data, server. make updates, and receive all other changes to the object in real time. An example of a shared object is PATRICIA SEYBOLD GROUP TAKE a text field that is used for a multiuser chat display. All users can chat in the text field and see the chat of all other users. What We Like Breeze Is a Communications Server Application. Macromedia and its Flash Platform impress us Macromedia Breeze, the collaborative meeting, for the following reasons: presentation, and training solution, is built using the Flash Communication Server. We reviewed Breeze • With the Flash Platform announcement, Macro- 4.0 in May 200412 and were impressed with the qual- media shows a cohesive strategy for delivering ity of online meeting experience for collaboration rich experiences (content, communication, ap- and presentation. Since our review, Macromedia has plications) across touchpoints. The strategy is released Breeze 5.0, which has new features for tele- based on a common architecture (Flash Runtime, conferencing and improved capabilities for meeting Programming Model, J2EE), and the Macrome- convocation. dia end-user solutions (Breeze, FlashCast) lever- age the infrastructure offerings. Edison. The next major release of Flash Communi- cation Server, code-named Edison, will support new • Macromedia continues to invest in performance high-fidelity video capabilities and provide integra- improvements. Performance, or lack thereof, is a tion with the Flex programming model. The Flex top reason why end users abandon transactions integration will facilitate adding communication and/or sites. elements to rich Internet applications; this will be particularly powerful for contact center applications • Macromedia is bringing rich Internet applica- and corporate intranet environments. tions to the enterprise in a way that makes sense for enterprise IT. The Flex model fits into exist- MOBILE STRATEGY. Macromedia’s mobile strat- ing runtime architectures, leverages back-end re- egy targets three audiences: content providers, hand- sources, and can provide a rich front end for set/device manufacturers, and wireless operators. n-tier applications and service-oriented solu- The content providers and handset/device manufac- tions. turers use the Flash Lite client runtime and Flash Authoring tools to develop rich applications for the • Macromedia recognizes that its way isn’t the device and, in some cases, the handset/device inter- only way. Macromedia allows for development face. in other tool sets (publishing SWF, XML FlashCast. For wireless operators, Macromedia of- schema for MXML) and integrates Flash Ac- fers FlashCast, an end-to-end solution comprised of tionScript with JavaScript. a client, a server, and a programming content framework. The FlashCast server is a carrier-grade • Macromedia gets how people work and live. The J2EE application that manages subscriber accounts, Flash Platform enables intuitive interactions, mobility, occasional connectedness, and collabo- ration. 12 See “Macromedia Breeze Live” by David S. Mar- shak, May 27, 2004, http://dx.doi.org/10.1571/pr5-27- 04cc.

© 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. A Customers.com® Research Service 8 • Macromedia’s Flash Platform

Macromedia’s Challenges organizations and communities have been developing tools and XAML applications We see several challenges for Macromedia, in- using the early release information from Mi- cluding: crosoft.

• There are competing, standards-based, technolo- • While opening up the SWF format is smart to gies to solve the RIA problem: gain community and browser penetration, it opens up competition in tooling (de- – AJAX.13 AJAX is the acronym recently ap- sign/developer) and in the presentation tier. plied to the combined use of XHTML and OpenLaszlo and XAMLON offer solutions for CSS for presentation, document object creating SWF files using tools and scripting lan- model for dynamic display and interaction, guages (JavaScript, .Net) that are in the enter- XML and XSLT for data interchange and prise developer’s wheelhouse. Since manipulation, XMLHttpRequest for asyn- Macromedia’s revenue stream is from tooling, chronous data retrieval, and JavaScript to not the Flash Player, this could become an issue bind everything together. Google Maps14 is over time. an example of a rich client application de- veloped using AJAX. While AJAX does • An initial reaction in the Flash designer and de- leverage existing industry standards and is velopment community is that Flex has a high gaining popularity (and/or press), it is a price tag. While this group is not the intended complex endeavor and bumps up against audience of Flex, this community contains influ- browser compatibility issues. encers who would love to bring Flash into the enterprise. – Java.15 Java offers Java Swing (an easier-to- use Swing abstraction), Java Desktop Net- work Components (JDNCs), and Java Server Macromedia’s Strengths Faces. Java Swing targets the desktop but Macromedia’s strengths include: can be deployed in a browser. Java Server Faces is a server-side, browser-intended in- • Flash Player has widespread penetration (98 terface technology. percent of Internet-connected PCs) and has a quick upgrade period. (A new release of Flash – XAML. 16 Extensible application markup Player achieves an 80 percent reach in about 12 language (XAML) is the new interface defi- months.) nition language in Microsoft’s Longhorn re- lease. While Longhorn is not available, • More than 1 million designers and developers are working with the Flash Platform today. As 13 The term “AJAX” (for asynchronous JavaScript and the demand for rich Internet applications in- XML) was coined by Jesse James Garrett of Adaptive creases, this group will be tapped to provide user Path. See http://www.adaptivepath.com/publications/ interface design and development in the enter- essays/archives/000385.php for Jesse’s essay on AJAX. prise. This group will be able to influence the 14 http://maps.google.com choices made by enterprise IT. 15 Java Swing: http://java.sun.com/products/jfc/ • Macromedia has strong partnerships with such index.jsp, JDNC: https://jdnc.dev.java.net/, Java Server companies as SAP, HP, NTT Docomo, Yahoo!, Faces: http://www.jcp.org/en/jsr/detail?id=252. AOL, Comcast, Samsung, NEC, and Nokia. 16 SAP has adopted Flex to provide the user inter- http://winfx.msdn.microsoft.com/library/default.asp?url=/ library/en- us/wcp_conceptual/winfx/core/overviews/about%20xaml. asp

A Customers.com® Research Service © 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. Perspective • 9

face framework for its next release of SAP Net- SUMMARY Weaver Visual Composer.17 With the Flash Platform announcement, Macro- • There are 300 Flex customers in its first year of media demonstrates a cohesive strategy—built availability, in a variety of industries (platform around proven, highly penetrated products—to con- vendors, telecommunications, government and tinue on its mission to “provide the solutions that defense, education, financial services, retail, make great digital experiences possible.” software, and pharmaceutical). To be successful, Macromedia needs to keep per- formance and the experience of its different designer • The resulting experiences, delivered using Mac- and developer communities in the forefront. With romedia’s solutions and design guidance, are the release of its roadmap, it appears Macromedia is truly powerful. heading in the right direction. We can’t wait to see the next wave of rich appli- cations that our customers come up with!

17 http://www.sap.com/company/press/press.epx? PressID=4519.

© 2005 Patricia Seybold Group • Unauthorized redistribution of this report is a violation of copyright law. A Customers.com® Research Service