Application - universAAL/tools.eclipse-plugins GitHub Wiki

Table of Contents

Introduction

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.

File Structure

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

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:

  1. uaal&amp;amp&#59;&amp;&#35;35&#59;45&amp;&#35;59&#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;amp&#59;&amp;&#35;35&#59;58&amp;&#35;59&#59;//&amp;amp&#59;lt&amp;&#35;59&#59;file_name&amp;amp&#59;gt&amp;&#35;59&#59; or URL as HTTP link http&amp;amp&#59;&amp;&#35;35&#59;58&amp;&#35;59&#59;//&amp;amp&#59;lt&amp;&#35;59&#59;URI&amp;amp&#59;gt&amp;&#35;59&#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;amp&#59;&amp;&#35;35&#59;58&amp;&#35;59&#59;&amp;amp&#59;lt&amp;&#35;59&#59;file_name&amp;amp&#59;gt&amp;&#35;59&#59; or URL as HTTP link http&amp;amp&#59;&amp;&#35;35&#59;58&amp;&#35;59&#59;&amp;amp&#59;lt&amp;&#35;59&#59;URI&amp;amp&#59;gt&amp;&#35;59&#59;
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.
  1. 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

End of the descriptor

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).

to be elaborated

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

Capabilities

The capabilities name/value pairs are a subset of the requirements name/value pair

Requirements

!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;amp&#59;&amp;&#35;35&#59;45&amp;&#35;59&#59;space.category
HomeSpace, HospitalSpace, MarketSpace, CarSpace
aal.target&amp;amp&#59;&amp;&#35;35&#59;45&amp;&#35;59&#59;space.version
major.minor.micor-build formated
aal.mw.version
aal.required&amp;amp&#59;&amp;&#35;35&#59;45&amp;&#35;59&#59;ontology
comma separated list of ontologies e.g. "ont.profile, ont.phWorld"
aal.target.container.name
Container for which the application is designed, e.g. OSGi, .NET, Android, Tomcat...
aal.target.container.version
Version of the container specification e.g. 4.2. for OSGi
aal.target.deployment&amp;amp&#59;&amp;&#35;35&#59;45&amp;&#35;59&#59;tool
Tool/schema used for deployment. Possible options for the moment: "karaf" for OSGi container; and "uCC" for (pure)Android container. The last is just a project
aal.os.name
Name of the required OS: Android, iOS, Linux, Windows2k, Windows7, WindowsXP...
aal.platform.name
name of the required application platform: Java, .Net
aal.device.features.audio
describes a device with audio capabilities
aal.device.features.visual
describes a device with video capabilities ...
⚠️ **GitHub.com Fallback** ⚠️