improves the documentation
[src/app-framework-main.git] / doc / application-framework.html
index 3b62cb7..9c51b8e 100644 (file)
+<!DOCTYPE html>
 <html>
 <head>
-  <link rel="stylesheet" type="text/css" href="doc.css">
-  <meta charset="UTF-8">
+  <meta charset="utf-8">
+  <meta name="generator" content="pandoc">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
+  <meta name="author" content="José Bollo">
+  <meta name="author" content="Fulup Ar Foll">
+  <title>Application framework</title>
+  <style type="text/css">code{white-space: pre;}</style>
+  <!--[if lt IE 9]>
+    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+  <![endif]-->
+  <link rel="stylesheet" href="doc.css">
 </head>
 <body>
-<a name="Application.framework"></a>
-<h1>Application framework</h1>
-
+<header>
+<h1 class="title">Application framework</h1>
+<h2 class="author">José Bollo</h2>
+<h2 class="author">Fulup Ar Foll</h2>
+<h3 class="date">30 mai 2016</h3>
+</header>
+<nav id="TOC">
+<ul>
+<li><a href="#application-framework">Application framework</a><ul>
+<li><a href="#foreword">Foreword</a></li>
+<li><a href="#overview">Overview</a></li>
+<li><a href="#comparison-to-other-frameworks">Comparison to other frameworks</a><ul>
+<li><a href="#tizen-framework">Tizen framework</a></li>
+<li><a href="#xdg-app">xdg-app</a></li>
+<li><a href="#ostro">ostro</a></li>
+</ul></li>
+</ul></li>
+<li><a href="#organization-of-directory-of-applications">organization of directory of applications</a><ul>
+<li><a href="#identity-of-installed-files">Identity of installed files</a></li>
+<li><a href="#labeling-the-directories-of-applications">labeling the directories of applications</a></li>
+</ul></li>
+<li><a href="#organization-of-data">organization of data</a></li>
+<li><a href="#setting-smack-rules-for-the-application">Setting Smack rules for the application</a></li>
+<li><a href="#what-user-can-run-an-application">What user can run an application?</a></li>
+</ul>
+</nav>
+<h1 id="application-framework">Application framework</h1>
 <pre><code>version: 1
-Date:    15 March 2016
-Author:  José Bollo
-</code></pre>
-
-<a name="Foreword"></a>
-<h2>Foreword</h2>
-
-<p>This document describes what we intend to do. It may happen that our
-current implementation and the content of this document differ.</p>
-
-<p>In case of differences, it is assumed that this document is right
-and the implementation is wrong.</p>
-
-<a name="Overview"></a>
-<h2>Overview</h2>
-
-<p>The application framework on top of the security framework
-provides the components to install and uninstall applications
-and to run it in a secured environment.</p>
-
-<p>The goal is to manage applications and to hide the details of
-the security framework to the applications.</p>
-
-<p>For the reasons explained in introduction, we did not used the
-application framework of Tizen as is but used an adaptation of it.</p>
-
-<p>The basis is kept identical: the applications are distributed
-in a digitally signed container that must match the specifications
-of widgets (web applications). This is described by the technical
-recomendations <a href="http://www.w3.org/TR/widgets" title="Packaged Web Apps">widgets</a> and <a href="http://www.w3.org/TR/widgets-digsig" title="XML Digital Signatures for Widgets">widgets-digsig</a> of the W3 consortium.</p>
-
-<p>This model allows the distribution of HTML, QML and binary applications.</p>
-
-<p>The management of signatures of the widget packages
-This basis is not meant as being rigid and it can be extended in the
-futur to include for example incremental delivery.</p>
-
-<a name="Comparison.to.other.frameworks"></a>
-<h2>Comparison to other frameworks</h2>
-
-<a name="Tizen.framework"></a>
-<h3>Tizen framework</h3>
-
-<a name="xdg-app"></a>
-<h3>xdg-app</h3>
-
-<a name="ostro"></a>
-<h3>ostro</h3>
-
-<a name="Organisation.of.directory.of.applications"></a>
-<h1>Organisation of directory of applications</h1>
-
-<p>The main path for applivcations are: APPDIR/PKGID/VER.</p>
-
+Date:    30 mai 2016
+Author:  José Bollo</code></pre>
+<p>TABLE-OF-CONTENT-HERE</p>
+<h2 id="foreword">Foreword</h2>
+<p>This document describes application framework fundamentals. FCF (Fully Conform to Specification) implementation is still under development. It may happen that current implementation somehow diverges with specifications.</p>
+<h2 id="overview">Overview</h2>
+<p>The application framework on top of the security framework provides components to install and uninstall applications as well as to run them in a secured environment.</p>
+<p>The goal of the framework is to manage applications and hide security details to applications.</p>
+<p>For the reasons explained in introduction, it was choose not to reuse Tizen application framework directly, but to rework a new framework inspired from Tizen.</p>
+<p>fundamentals remain identical: the applications are distributed in a digitally signed container that should match widget specifications normalized by the W3C. This is described by the technical recommendations <a href="http://www.w3.org/TR/widgets" title="Packaged Web Apps">widgets</a> and <a href="http://www.w3.org/TR/widgets-digsig" title="XML Digital Signatures for Widgets">widgets-digsig</a> of the W3 consortium.</p>
+<p>As today this model allows the distribution of HTML, QML and binary applications but it could be extended to any other class of applications.</p>
+<p>The management of widget package signatures. Current model is only an initial step, it might be extended in the future to include new feature (ie: incremental delivery).</p>
+<h2 id="comparison-to-other-frameworks">Comparison to other frameworks</h2>
+<h3 id="tizen-framework">Tizen framework</h3>
+<h3 id="xdg-app">xdg-app</h3>
+<h3 id="ostro">ostro</h3>
+<h1 id="organization-of-directory-of-applications">organization of directory of applications</h1>
+<p>The main path for applications are: APPDIR/PKGID/VER.</p>
 <p>Where:</p>
-
 <ul>
 <li>APPDIR is as defined above</li>
 <li>PKGID is a directory whose name is the package identifier</li>
 <li>VER is the version of the package MAJOR.MINOR</li>
 </ul>
-
-
-<p>This organisation has the advantage to allow several versions to leave together.
-This is needed for some good reasons (rolling back) and also for less good reasons (user habits).</p>
-
-<a name="Identity.of.installed.files"></a>
-<h2>Identity of installed files</h2>
-
-<p>All the files are installed as the user &ldquo;userapp&rdquo; and group &ldquo;userapp&rdquo;.
-All files have rw(x) for user and r-(x) for group and others.</p>
-
-<p>This allows any user to read the files.</p>
-
-<a name="Labelling.the.directories.of.applications"></a>
-<h2>Labelling the directories of applications</h2>
-
-<a name="Organisation.of.data"></a>
-<h1>Organisation of data</h1>
-
-<p>The data of a user are in its directory and are labelled using the labels of the application</p>
-
-<a name="Setting.Smack.rules.for.the.application"></a>
-<h1>Setting Smack rules for the application</h1>
-
+<p>The advantage of such an organization is to allow several versions to live together. This is required for multiple reasons (ie: roll back) and to comply with developers habits.</p>
+<h2 id="identity-of-installed-files">Identity of installed files</h2>
+<p>All the files are installed as user &quot;userapp&quot; and group &quot;userapp&quot;. All files have rw(x) for user and r-(x) for group and others.</p>
+<p>This allows any user to read files.</p>
+<h2 id="labeling-the-directories-of-applications">labeling the directories of applications</h2>
+<h1 id="organization-of-data">organization of data</h1>
+<p>The data of a user are contain within its directory and are labeled using the application labels</p>
+<h1 id="setting-smack-rules-for-the-application">Setting Smack rules for the application</h1>
 <p>For Tizen, the following rules are set by the security manager for each application.</p>
-
 <pre><code>System ~APP~             rwx
 System ~PKG~             rwxat
 System ~PKG~::RO         rwxat
@@ -110,15 +90,9 @@ User   ~PKG~::RO         rwxat
 ~APP~  User::Home        rxl
 ~APP~  User::App::Shared rwxat
 ~APP~  ~PKG~             rwxat
-~APP~  ~PKG~::RO         rxl
-</code></pre>
-
-<p>Here, ~PKG~ is the identifier of the package and ~APP~ is the identifier of the application.</p>
-
-<a name="What.user.can.run.an.application."></a>
-<h1>What user can run an application?</h1>
-
-<p>Not all user are able to run all applications.
-How to manage that?</p>
+~APP~  ~PKG~::RO         rxl</code></pre>
+<p>Here, <sub>PKG</sub> is the identifier of the package and <sub>APP</sub> is the identifier of the application.</p>
+<h1 id="what-user-can-run-an-application">What user can run an application?</h1>
+<p>Not all user are able to run all applications. How to manage that?</p>
 </body>
 </html>