Application - universAAL/tools.eclipse-plugins GitHub Wiki
This section describes the file structure and the formal descriptor of an AAL Application (uapp file).
The following section of this Wiki page are attempt to provide more extended description of the uapp file structure and descriptor. However it is possible that they do not reflect the last status of the XML Schema descriptor.
The <app_name></app_name>.uapp file is a zip-format package containing the following folders and files:
- config - directory, containing configuration files
- <app_name></app_name>.xml - descriptor
- other config files, if any
- license - directory, containing copies of the license agreements accompanying the application.
- license files in plain text format, so that they can be displayed to the user with request for acceptance. Referred in the descriptor
- doc - directory containing the application documentation
-
bin - directory, containing the binaries of the application
- <partn_name></partn_name> - directory, containing the binaries of a specific application part. One for each part as referred in the descriptor
- deployment and execution units (bundles, install packages, ...) of this application part. Individual files are referred in the descriptor
The descriptor is xml-based file providing information about the application and its parts. Complex structures are given at the end of the section
The descriptor should contain:
- uaal&amp;&#35;45&#59;app - General section, describing the application as whole
-
- uapp - Basic information about the application
- name - The name of the application, e.g. Nutritional Advisor
- version - Application version in version structure
- appId - Application ID, e.g. org.uaal.service.nutrition-advisor
- description - Free text describing the application
- multipart - defines if the application contains indicidual parts, that can be deployed on separate AAL Nodes (true/false)
- tags - Comma separated tags, e.g. nutrition, healthy eating, ...
-
applicationProvider - Information about the application vendor
- organizationName - Name of the application vendor
- certificate - URL to the security certificate, optional
- contactPerson -
- email - Email address of the contact person
- webAddress - URL to the website of the application vendor, optional
-
licenses - Application licenses
-
license for each license
- category - Category of the license. Possible values: ApplicationLicense (created by the developer with his own terms) or ExternalLicense (required by some parts of the application, to be used with licenses like GPL, AGPL ....)
- name - Name of the license, e.g. EULA, Runtime LA etc.
- link - Reference to location of the license text. Could be the name of the file in the licenses subdirectory in format file&amp;&#35;58&#59;//&amp;lt&#59;file_name&amp;gt&#59; or URL as HTTP link http&amp;&#35;58&#59;//&amp;lt&#59;URI&amp;gt&#59;
- sla - Reference to the location of the SLA text. Could be the name of the file in the licenses subdirectory in format file&amp;&#35;58&#59;&amp;lt&#59;file_name&amp;gt&#59; or URL as HTTP link http&amp;&#35;58&#59;&amp;lt&#59;URI&amp;gt&#59;
-
license for each license
- isFree - defines if the application is provided for free. Possible values true or false
- paymentModel - to be elaborated as part of this descriptor or as separate file in licenses folder
- chargingModel - to be elaborated as part of this descriptor or as separate file in licenses folder
- applicationProfile - link to the AALAppSubProfile ontology
- applicationCapabilities - Describes what the application offers as list of name/value pairs.
- capability - Describes each capability. Properies name and value.
- applicationRequirements - Describes the general application requirements (i.e. requirements to the AAL Space).
- requirement - Describes each requirement in reqirement structure.
- applicationPart - describes individual application parts
-
- part - for each part. Property name, e.g. part1
- partRequirements - Describes the requirements of this specific appPart (i.e. requirements to the target AAL Node).
-
deploymentUnit - descriptioin of the single units, only one of the subparts allowed
- id - identification of the unit
- containerUnit - container specific description. Available containers: "karaf" (operating, for OSGi-based apps), "android" (to be developed, for Android nodes), and others like "tomcat", "felix"... that need to be discussed
-
executionUnit - description of tools, scripts etc. needed to execute the given deployment unit, optional
- configFiles - list of configuration files
Used structures (complex types) and taxonomy
Description of Android container:
- name - (Symbolic)Name of the deplyment unit e.g. "Help-when-outdoor-servlet"
- description - free text description
- location - file/URL of the unit
- version
- major - number, e.g. 1
- minor - number, e.g. 0
- micro - number, e.g. 2
- string - string, e.g. SNAPSHOT (Is this relevant for official releases?)
- requirement
- name - name (or header) of the requirement, e.g. os, aalSpace.class, os.linux.kernel
- values - a list of values (define the separator), e.g. WindowsXP, Windows7
- relation - possible values eq (default), gt, ls, ge, le, ne for equal, greater than, less then, greater or equal, less or equal, not equal
- allValuesMatch - If all values should be matched. Default true
- optional - not critical for rejection, but useful for indicating better match. Possible values true or false (default).
- serializedManifest - to be checked with Saied if there will be one section with all dependencies, or individual subsection for each dependency
- serializedDependency
- paymentModel
- chargingModel
- Android deployment mechanism
The capabilities name/value pairs are a subset of the requirements name/value pair
!A taxonomy of basic requirements to be defined The requirements can be extended to meet specific needs. However we define a list of basic requirements that should be processable by each AAL platform.
- aal.target&amp;&#35;45&#59;space.category
- aal.target&amp;&#35;45&#59;space.version
- aal.mw.version
- aal.required&amp;&#35;45&#59;ontology
- aal.target.container.name
- aal.target.container.version
- aal.target.deployment&amp;&#35;45&#59;tool
- aal.os.name
- aal.platform.name
- aal.device.features.audio
- aal.device.features.visual