using applications built in Adobe Flex and Microsoft Silverlight. ..... Weblogs (
commonly known as Blogs), RSS news feeds, Wikipedia, YouTube, or other ser-.
}w !"#$%&'()+,-./012345
The url element must be pointing to application binary file to be downloaded. Purpose of other elements is fairly self explanatory. Each time we create an update, we will update this file as well and auto update framework will take care of the rest for us. Implementation of this example application showed that there are many features that can be handled very easily. However, there are also complications that are not obvious at the first sight. One of the biggest problems was poor support of XMPP in Flash, only usable library is XIFF and even this library does not fully support core XMPP functionality[40], thus some changes were needed to achieve desired functionality. In this case modification of the internal structure of library and replacement of class that represents XMPP user in ActionScript. Except that carious minor issues appeared, for example in connection with peerto-peer and XMPP integration, but these were solved, either by help of online resources, or by redesigning faulty code. 5.2.2
Deployment
Final application can be distributed in two ways. Either via download web page with install badge, which can resolve problems, if AIR is not installed, or via distribution of AIR installer file. The second option requires AIR to be installed otherwise installation will not be possible. Installation process itself is very easy and does not usually require any further adjustments made by the user. If applications are distributed in form of a native installer, installation process resembles native installation process of respective platform. Worth noting is fact that only a single instance of an application can run on host computer at a time, it is not possible to run two instances of one application by default. This is a drawback of security model, which Adobe AIR uses. However, if applications have different application identifiers they are able to run simultaneously. This is the case of test application that is included in data appendix, it uses different application identifier thus two same applications can be installed and run on one host operating system. 57
5.2. DEVELOPMENT AND DEPLOYMENT Deployment diagram of working solution can be seen in Figure 5.3. If we would like to deploy the whole system ourselves, except installation of client application, it is required to have XMPP and RTMFP servers deployed, or otherwise available and properly reconfigured application releases.
Figure 5.3: AIR runtime architecture
58
Chapter 6
Conclusion This work described and compared selected important rich Internet application platforms, namely Adobe AIR and Microsoft Silverlight. The comparison was aimed at offered technology features, portability, development support and usability of applications created on top of these platforms. As compared features posed various requirements that needed to be assessed, a complex comparison and benchmark method was needed. Unluckily rich Internet applications deployed on desktop present young area and there are no methods that would cover comparison and evaluation of required features. As a result comparison and benchmarking method, covering these areas, was proposed. This method is based on common requirements of users and developers. Method covers before mentioned features of compared platforms, with respect to specific roles that users and developers can have. According to proposed method, comparison and benchmark was divided into two parts, comparison of offered features and refinement of these results based on user specific requirements. Obtained results show that Adobe AIR platform presents a better solution for desktop deployment, if any role is considered. AIR applications are in general more usable and offer better integration and customization options. Silverlight’s worse overall score is caused by its core design and designation. Microsoft prefers .NET platform to Silverlight as a in case of desktop application development and thus Silverlight’s out-of-browser support is rather limited. However, we must not forget the comparison will always introduce an aspect of subjective judgement, and thus these results must be considered as an approximate evaluation. Proposed method in fact serves as a framework for complex comparisons. It describes areas and roles that need to be covered, but not exact list of features that must be assessed. Users can adjust this method according to their needs and based on them obtain results that will be specific to their use case. The secondary aim of work was practical demonstration of capabilities of rich Internet application built in Adobe Flex and deployed on Adobe AIR runtime. The video chat application demonstrates capabilities such as offline storage, multimedia device access and streaming. The Adobe AIR provides a powerful platform for rich Internet application development. Applications can be developed by combination of HTML and JavaScript, as well as use of Flash or Flex. AIR applications developed with use of JavaScript and HTML do not offer as many capabilities, as their Flash or Flex rivals. HTML-based AIR applications cannot handle multimedia content by themselves, as well as they cannot access devices like microphone 59
6. C ONCLUSION or web camera and streaming is not supported either. Flex based application, provide rich multimedia capabilities, like video or music playback, provide predefined visual building blocks and built in streaming support. Generally Flex applications have better multimedia capabilities and provide more advanced functionality. Nevertheless, when we compare AIR applications to traditional desktop applications based on .NET or Java, we must say they provide usually less capabilities, and in some special cases worse performance. Despite these disadvantages, rich Internet applications provide following advantages: easy to learn framework, very good support of visual customization and shorter development process.
60
Bibliography
[1] Allaire, J.: Macromedia Flash MX—A next-generation rich client [online], Macromedia, Inc., March 2002 - [ret. 13.12.2010], Available online: . 1.2 [2] JavaFX | Rich Internet Applications Development | RIAs Java FX [online], Oracle Corporation, 2010 - [ret. 13.12.2010], Available online: . 1.4.2 [3] Canoo UltraLightClient: Technical Concepts, Background Info [online], Canoo Engineering AG, 2010 - [ret. 17.05.2010], Available online: . 1.4.3 [4] Fette, I.: Gears API Blog: Hello HTML5, Google Inc., 2/19/2010 04:13:00 PM [ret. 20.10.2010], Available online: . 1.4.4 [5] Gears API - Google Code, Google Inc., 2010 - [ret. 18.5.2010], Available online: . 1.4.4 [6] Prism [online], Mozilla Labs, 2010 - [ret. 01.12.2010], Available online: . 1.4.5 [7] Fluidium - Open Source, Mac-Only Rich Internet Application Framework - Turn your web app into a Mac Desktop App. [online], Ditchendorf. Todd, 2010 - [ret. 17.05.2010], Available online: . 1.4.6 [8] rich Internet applications | Adobe AIR system requirements [online], Adobe Systems Incorporated, 2010 - [ret. 07.12.2010], Available online: . 2.1.1 [9] Adobe - AIR : Release Notes [online], Adobe Systems Incorporated, [ret. 5.1.2011], Available online: . 2.1.2, 4.2.1, 4.2.1 TM For Dummies , R R Wiley Publishing, Inc., 2009, ISBN 978-0[10] Wagner, R.: Adobe AIR 470-39044-3. 2.1.3, 2.1.3, 4.3.7 TM Release History [online], Microsoft R [11] Download details: Microsoft Silverlight Corporation, [ret. 5.1.2011], Available online: . 2.2.2
61
[12] Silverlight for Windows Phone : The Official Microsoft Silverlight Site [online], Microsoft Corporation, 2011 - [ret. 6.1.2011], Available online: . 2.2.2, 4.1.3, 4.2.1 [13] Silverlight Architecture [online], Microsoft Corporation, June 10, 2010 - [ret. 18.11.2010], Available online: . 2.2.3 [14] Security [online], Microsoft Corporation, 2010 - [ret. 20.10.2010], Available online: . 2.2.3, 3.2 [15] Christmann, S.: GUIMark 2: The rise of HTML5 [online], [ret. 4.4.2011], Available online: . [16] Digital Rights Management (DRM) [online], Microsoft Corporation, 2010 - [ret. 17.10.2010], Available online: . 4.1.1 [17] content protection | Adobe Flash Access [online], Adobe Systems Incorporated, 2010 - [ret. 17.11.2010], Available online: . 4.1.1 R [18] Gorton, B. and Taylor, R. and Yamada, J.: Adobe AIR Bible, Wiley Publishing, Inc., 2008, ISBN 978-0-470-28468-1. 4.1.1, 4.3.7
[19] Ghoda, A.: Introducing Silverlight 4, Apress Media LLC, 2010, ISBN 978-1-4302-29919. 4.1.1 [20] Brown, P.: Silverlight 4 in Action, Manning Publications Co., 2010, ISBN 978-1-93518237-5. 4.1.2, 4.2.2 [21] Adobe Flash Platform * Communicating with native processes in AIR [online], Adobe Systems Incorporated, 2010 - [ret. 18.12.2010], Available online: . 4.1.2 [22] Stage3D APIs for Adobe Flash Player and Adobe AIR - Adobe Labs [online], Adobe Systems Incorporated, 2010 - [ret. 18.12.2010], Available online: . 4.1.3 [23] Get Silverlight | Microsoft Silverlight [online], Microsoft Corporation, 2010 - [ret. 16.11.2010], Available online: . 4.2.1 62
[24] Start - Mono [online], Novell, 2010 - [ret. 8.12.2010], Available online: . 4.2.2, 4.3.1.2 [25] Silverlight Tools [online], Microsoft Corporation, 2010 - [ret. 10.12.2010], Available online: . [26] Aptana | Adobe AIR Plug-In for Aptana Studio, Aptana, Inc., 2010 - [ret. 10.12.2010], Available online: . R R R [27] Visual Studio 2010 Editions | Microsoft Visual Studio [online], Microsoft Corporation, 2010 - [ret. 11.11.2010], Available online: . 4.3.4
[28] Silverlight Toolkit - Home, Microsoft Corporation, 2010 - [ret. 19.11.2010], Available online: . 4.3.5 [29] Alchemy - Adobe Labs, Adobe Systems Incorporated, 2010 - [ret. 25.11.2010], Available online: . 4.3.7, 4.4.1 [30] Out-of-Browser Support [online], Microsoft Corporation, 2010 - [ret. 20.10.2010], Available online: . 4.4.1 [31] Trusted Applications [online], Microsoft Corporation, 2010 - [ret. 20.10.2010], Available online: . [32] Adobe Flash Platform * Installing and updating desktop applications [online], Adobe Systems Incorporated, June 10, 2010 - [ret. 15.11.2010], Available online: . 4.4.1 [33] Adobe - Accessibility : Accessibility Best Practices for Flex [online], Adobe Systems Incorporated, 2010 - [ret. 18.10.2010], Available online: . 4.4.2 [34] Adobe AIR 2.0 - Section 508 [online], Adobe Systems Incorporated, 2010 [ret. 18.10.2010], Available online: . 4.4.2 [35] Silverlight Accessibility Overview [online], Microsoft Corporation, 2010 - [ret. 20.10.2010], Available online: . 4.4.2 63
[36] Managed Threading [online], Microsoft Corporation, June 10, 2010 - [ret. 18.11.2010], Available online: . 4.4.2 [37] XMPP Technologies Overview - The XMPP Standards Foundation [online], The XMPP Standards Foundation, [ret. 3.1.2011], Available online: . 5.1 [38] XMPP Technologies: Jingle - The XMPP Standards Foundation [online], The XMPP Standards Foundation, [ret. 3.1.2011], Available online: . 5.1 [39] Cirrus | Real Time Media Flow Protocol (RTMFP) - Adobe Labs [online], Adobe Systems Incorporated, [ret. 12.5.2010], Available online: . 5.1 [40] Ignite Realtime: XIFF API [online], Jive Software, [ret. 22.12.2010], Available online: . 5.2.1
64
Appendix A
Content of attached CD Attached CD contains configured Flex Builder project folder with all assets and source code required to successfully build the final release of video chat client application. Except that it contains binary release files of main and tester application, as well as README file containing additional information on applications. The project file structure is following: •
bin-release folder contains binary releases of installers
•
bin-debug folder contains debug binary files that can be used for debugging purposes
•
libs folder contains additional required libraries
•
src folder contains full source code and assets required for release builds
•
.settings, .project folders and additional dot-prefixed files contain Flex project settings
65