Network Working Group T. Clarke
Internet-Draft BATC
Expires: February 1, 2009 July 31, 2008
Application Extension Bundle (AEB)
draft-tclarke-aeb-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on February 1, 2009.
Clarke Expires February 1, 2009 [Page 1]
Internet-Draft AEB July 2008
Abstract
This memo presents a file format for describing an application
extension bundle. An application extension bundle, otherwise know as
an add-on, extension, plug-in, suite, or package, is an encapsalation
of all the data needed to add functionality to a plug-in based
application.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Relationship to XPI . . . . . . . . . . . . . . . . . . . 3
2. File Format . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Required Files and Directories . . . . . . . . . . . . . . . . 5
3.1. /content . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. /platform . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. /icon . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.4. /license . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Multiple item AEB . . . . . . . . . . . . . . . . . . . . . . 6
5. Failure to Install . . . . . . . . . . . . . . . . . . . . . . 7
6. Shared Files . . . . . . . . . . . . . . . . . . . . . . . . . 8
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 10
Intellectual Property and Copyright Statements . . . . . . . . . . 11
Clarke Expires February 1, 2009 [Page 2]
Internet-Draft AEB July 2008
1. Introduction
An application extension bundle (AEB) encapsulates all the data
required to extend an application. Often refered to as a plug-in or
add-on, an AEB is a specific format designed to be application and
platform agnostic. AEB defines common file formats and directory
layouts. Extension and specification points are defined by a target
application.
1.1. Relationship to XPI
The AEB format is based on the XPI format used by the Mozilla
XPInstall [refs.XPInstall] addon system. XPI is a compelling format
containing much of the metadata and encapsulation information needed
for an AEB. However, the XPI format is tightly coupled to the
Mozilla project and the description documents often refer to specific
XPI engine implementation details. AEB standardizes XPI and removes
the Mozilla specific details. The original version of AEB is nearly
an exact copy of the XPI format with minor changes and
clarifications. AEB should, however, be considered a fork of XPI and
further changes to XPI may not be reflected in AEB.
Clarke Expires February 1, 2009 [Page 3]
Internet-Draft AEB July 2008
2. File Format
An AEB is a ZIP archive [refs.zip] containing AEB specific files and
target application files. The AEB specific files within the ZIP must
use commonly compatible ZIP options. Since ZIP is a defacto
standard, the features which are commonly compatible are not
explicitly stated here but can be determined by a survey of available
ZIP libraries. The version of the published ZIP specification at the
time this document was written is 6.3.2. Optional compression
algorithms and ZIP file extensions may be supported by a target
application for target application specific files. An AEB may also
exist as a directory hierarchy on a file system or file system-like
service. (such as an FTP site) This is intended for use while
devoloping an AEB. An AEB should be deployed as a ZIP archive. The
file extension of an AEB ZIP archive must be .aeb unless a particular
system does not support file extensions. When an AEB is associated
with a MIME type (such as when served by an HTTP server) the MIME
type should be application/x-aeb. The MIME type may be application/
zip or application/octet-stream. A target application may impose
additional file extension and MIME type restrictions. (for example,
.myapp.app and application/x-aeb+x-myapp) A target application
imposing additional restrictions may only require those restrictions
on AEBs targetting only the target application. An AEB with multiple
target applications must use only the restrictions in this document.
A target application should always accept files meeting only the
restrictions in this document.
Clarke Expires February 1, 2009 [Page 4]
Internet-Draft AEB July 2008
3. Required Files and Directories
Every AEB must contain an install manifest in /install.rdf. This
file contains a AEB metadata written in the application extension
bundle description language (AEBL) [refs.aebl]. This file shall be
serialized in RDF+XML format. The root directory may also contain
the following directories.
3.1. /content
This contains most of the AEBs extension files. The contents of this
directory are specific to a target application but generally contain
files which will be installed in the target application.
3.2. /platform
The /platform directory may contain sub-directories for each platform
declared in the install.rdf file. The contents of the sub-directory
corresponding to the current platform are unioned with the /content
directory. If both directories contain a specific file, the
/platform directory takes precedence. Not all platforms declared in
the install.rdf file require a /platform directory.
3.3. /icon
This directory generally contains icon files referenced in the
install.rdf file. These should not be installed by the target
application.
3.4. /license
This directory generally contains license files referenced in the
install.rdf file. There should not be installed by the target
application.
Clarke Expires February 1, 2009 [Page 5]
Internet-Draft AEB July 2008
4. Multiple item AEB
An AEB may contain multiple AEB archives if the multiple item AEB
type is specified in the install.rdf file. The /content and
/platform directories should contain only files with the .aeb
extension. These must be AEB ZIP archives. AEB archives in the
/content directory shall be installed on all platforms and AEB
archives in a sub-directory of /platform shall be installed on that
platform. The installation order may be arbitrary but a target
application may define a specific order. Failure to install any AEB
archive in a multiple item AEB shall result in failure to install the
entire multiple item AEB.
Clarke Expires February 1, 2009 [Page 6]
Internet-Draft AEB July 2008
5. Failure to Install
Installation of an AEB shall be an atomic operation. Failure to
install an AEB shall remove a partially installed AEB.
Clarke Expires February 1, 2009 [Page 7]
Internet-Draft AEB July 2008
6. Shared Files
If an AEB request installation of a resource which is already present
in the target application, the resource should be reference counted.
When an AEB with a shared resource (a resource with a reference count
greater than one) should only remove the resource if decrementing the
reference count yields a new reference count of zero.
Clarke Expires February 1, 2009 [Page 8]
Internet-Draft AEB July 2008
7. References
[refs.aebl]
Clarke, T., "Application Extension Bundle description
Language (AEBL)", I-D draft-tclarke-aebl-00, July 2008.
[refs.XPInstall]
"Mozilla XPInstall",
.
[refs.zip]
".ZIP File Format Specification",
.
Clarke Expires February 1, 2009 [Page 9]
Internet-Draft AEB July 2008
Author's Address
Trevor R H Clarke
Ball Aerospace & Technologies Corp.
2875 Presidential Dr.
Fairborn, OH 45324
US
Phone: +1 937 320 7087
Email: tclarke@ball.com
URI: http://www.ballforge.net/
Clarke Expires February 1, 2009 [Page 10]
Internet-Draft AEB July 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Clarke Expires February 1, 2009 [Page 11]