<refentry id="webapps-service" revision="04 Feb 2011">
  <refmeta>
    <refentrytitle>Implementation Tour</refentrytitle>
    <manvolnum>3</manvolnum>
    <refmiscinfo>Implementation Tour</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>Implementation Tour</refname>
    <refpurpose>A high level overview of the Unity Webapps Service implementation</refpurpose>
  </refnamediv>
  

  <para>
    There are four primary components to the Unity Webapps Service implementation, found in the source directory.
    
    <itemizedlist>
      <listitem>
	DBus interface specifications, located in libunity-webapps/src these XML files describe the DBus protocols various components use to interact with eachother.
      </listitem>
      <listitem>
	The Webapps Service daemon, located in libunity-webapps/src/webapps-service. This daemon owns the name com.canonical.Unity.Webapps.Service and implements the interface of the same name (from webapps-service.xml).
      </listitem>
      <listitem>
	The Context Daemon, located in libunity-webapps/src/context-daemon. As discussed in "An introduction to the Unity Webapps Service", this is the heart of the implementation.
      </listitem>
      <listitem>
	libunity-webapps client bindings. These are both useful to application hosts (to integrate a new browser or web app container in to the service), or to observers of the Webapps Service, such as BAMF and the Unity Shell.
      </listitem>
    </itemizedlist>
  </para>
  
  <para>
    As the Unity Webapps Service is new technology. There are not many examples of the API in usage, however a few are available.
    <itemizedlist>
      <listitem>
	The Unity Firefox Extension, contained in lp:unity-firefox-extension.
      </listitem>
      <listitem>
	The libunity-webapps tests, in libunity-webapps/tests/traced, provide coverage of the C API.
      </listitem>
      <listitem>
	The service-tracker tool provides an example of using the service observer API, located in libunity-webapps/tools. A more thorough implementation can be found in the BamfUnityWebappsObserver class (located in lp:bamf).
      </listitem>
    </itemizedlist>
  </para>

</refentry>
