Building Desktop Applications For The Web With Adobe Integrated Runtime, Page 2
AIR Security Model
Adobe AIR is a cross-operating system runtime that allows developers to leverage their existing web development skills in HTML, Ajax, XML, Flash, and Flex to build and deploy rich Internet applications to the desktop. Although these applications may be based upon web technologies, it is important to keep in mind that the end result is a desktop application, and as such the primary security model for AIR is that of a desktop application, rather than a web application.
A desktop application has certain characteristics. On the one hand, desktop applications generally have a lot more privileges than a similar web application because they have been installed by the user to a specific desktop machine, implying a degree of trust that is greater than that of arbitrary web content. On the other hand, the privileges inherent in a desktop application require a greater degree of caution as certain coding practices and patterns that may be common in web applications may never be acceptable in a desktop application.
Being a desktop application runtime, the AIR security model is significantly different from the web browser security model. The application sandbox in AIR provides direct access to system APIs, but in return a number of APIs have been restricted or outright prohibited. Specifically, importing of non-application (that is, not loaded via app:/) content and dynamic generation of code within the application sandbox is heavily restricted.
The following links provide a good deal of additional information on AIR security, which is beyond the scope of this article.
- AIR Security I: download.macromedia.com/pub/labs/air/ air_security.pdf
- AIR Security II: www.adobe.com/devnet/air/articles/ introduction_to_air_security.html
- AIR Security III: www.adobe.com/devnet/air/articles/ signing_air_applications.html
AIR applications can be developed using one or a combination of the following technologies:
- PDF can be leveraged with any application
As a result, AIR applications can be:
- Based on Flash or Flex: Application whose root content is Flash/Flex (SWF)
- Based on Flash or Flex with HTML or PDF: Applications whose root content is Flash/Flex (SWF) with HTML (HTML, JS, CSS) or PDF content included
- HTML-based: Application whose root content is HTML, JS, CSS
- HTML-based with Flash/Flex or PDF: Applications whose root content is HTML with Flash/Flex (SWF) or PDF content included
Thus, AIR can helps developers use existing software development skills to create and distribute Internet-enabled desktop applications. Adobe currently provides three ways of developing AIR applications:
- Adobe Flash CS3
- Adobe Flex Builder 3
- HTML/AJAX, either via Adobe's own Dreamweaver CS3, another HTML editing program or a normal text editor in conjunction with the AIR SDK
Using Flash CS3 Professional for Adobe AIR development
Flash CS3 Professional does not ship with any AIR functionality out of the box, but Adobe recently released a free update to enable the development and compiling of AIR applications directly from within the Flash CS3 authoring environment. This update, officially called Adobe AIR Update for Flash CS3 Professional, is available on both Mac and Windows and is very easy to install.
When you download and install the update, you will notice that there is a new Adobe AIR option in the Create New section of the welcome screen, as shown in Figure 3. After creating a new Adobe AIR project, you will notice that the Flash authoring tool looks exactly like it normally does when creating Flash files. This is because you will be building your applications pretty much the same way that you do for web-based Flash projects.
Figure 3: New AIR option in the Create New section of the welcome screen of Flash
Using other tools for Adobe AIR development
The cross-platform nature of the runtime means any HTML editor, coupled with the AIR SDK, can create AIR applications. AIR itself uses the WebKit HTML rendering engine, which is wrapped around Flash and PDF technologies.
HTML and Ajax developers have the choice of working with the command line tools provided in the Adobe AIR SDK or using a full IDE, Flex Builder 3 (shown in Figures 4 and 5), with support for Adobe AIR.