Symbian3/SDK/Source/GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB.dita
changeset 0 89d6a7a84779
equal deleted inserted replaced
-1:000000000000 0:89d6a7a84779
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-940F3F6E-BA9C-5E19-9AC5-D848B5E175FB" xml:lang="en"><title>Application
       
    13 Architecture Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>APPARC provides access to a cached list of applications, and their properties,
       
    15 on the device. APPARC also provides a mechanism for launching applications
       
    16 and switching between tasks. </p>
       
    17 <section><title>Purpose</title> <p>The main purpose of APPARC is to </p> <ul>
       
    18 <li id="GUID-869A9DDC-5BCE-58FE-A404-8B10B00ED539"><p>manage and register
       
    19 applications with the device </p> </li>
       
    20 <li id="GUID-C4C659F3-027E-5216-A0FD-DEA4A135081F"><p>scan the device for
       
    21 installed applications and associate data types to the applications based
       
    22 on the information in the registration file </p> </li>
       
    23 <li id="GUID-37BADDBF-EFFF-56C6-9348-9CB8D162B8CF"><p>load applications and
       
    24 manage the creation and destruction of application objects and document objects </p> </li>
       
    25 <li id="GUID-4FBABF6C-D3E5-5086-A45B-90A5927185CF"><p>support the registration
       
    26 of non-native applications </p> </li>
       
    27 <li id="GUID-5A799FDF-A676-5538-BDE0-FCDAB7857631"><p>define a Server Application
       
    28 Framework, which allows applications to communicate through the client-server
       
    29 architecture </p> </li>
       
    30 <li id="GUID-907A3B8B-EF8B-5280-B825-7C8D15038E50"><p>support multiple service
       
    31 types over the client-server link and establish a client-server connection
       
    32 to an already running server application </p> </li>
       
    33 <li id="GUID-F4DCD71D-2713-5C7E-83AC-DE976DCD6ECD"><p>monitor the lifetime
       
    34 of the server application </p> </li>
       
    35 <li id="GUID-B11E42C5-4326-5A59-A07C-95AE266AEAE3"><p>define the basic polymorphic
       
    36 interfaces that applications must conform to, such as, <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> and <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref>  </p> </li>
       
    37 <li id="GUID-AED566ED-D731-5A2D-956A-41A5AD0B0943"><p>provide a list of available
       
    38 control panel applications present on the device. </p> </li>
       
    39 </ul> </section>
       
    40 <section><title>Key concepts and terms</title> <dl>
       
    41 <dlentry>
       
    42 <dt>Server Application Framework</dt>
       
    43 <dd><p>The Server Application Framework provides generic service support over
       
    44 a client-server link, on which real services can be created. A service typically
       
    45 provides a client-side interface that clients can use directly, and a server-side
       
    46 interface that server applications have to implement. </p> </dd>
       
    47 </dlentry>
       
    48 </dl> </section>
       
    49 <section><title>Architecture</title> <p>The following diagram shows the interaction
       
    50 of APPARC with other components. </p> <fig id="GUID-B597764E-2919-55D3-848B-D8579A4E0A98">
       
    51 <image href="GUID-940AF1CE-3C33-54BF-B339-B8CF79C5FC9C_d0e114928_href.jpg" placement="inline"/>
       
    52 </fig> <p>The following list describes the interaction between APPARC and
       
    53 each of the components depicted in the APPARC architectural diagram: </p> <ul>
       
    54 <li id="GUID-BAA2F511-151F-5B24-9B31-B6203C8905C4"><p>APPARC provides the
       
    55 basic behavior for GUI-based applications. APPARC also provides basic behavior
       
    56 for documents in a document-view based application. Uikon builds on the basic
       
    57 behavior that APPARC provides for GUI applications. PIM application components
       
    58 (Contacts and Calendar) derive the basic behavior for GUI-based applications
       
    59 from APPARC. </p> </li>
       
    60 <li id="GUID-6E250526-6427-5D7C-BED6-AA903C27E342"><p>APPARC maintains a list
       
    61 of installed applications on the device. APPARC supports rule-based application
       
    62 launching which is implemented as ECOM plug-ins. These plug-ins define rules
       
    63 that enable APPARC to either deny or accept the application launch requests. </p> </li>
       
    64 <li id="GUID-EF948E8F-3540-5346-BC63-FCEAD9AA80A7"><p>Software Install (SWI)
       
    65 allows installing, uninstalling and upgrading of native software on the device.
       
    66 When an application needs to be installed, SWI uses APPARC for launching applications
       
    67 if run-on-install or run-on-uninstall is specified. </p> </li>
       
    68 <li id="GUID-30282950-6E98-5988-A05B-2B5D8E86848C"><p>When an application
       
    69 is launched APPARC interacts with the GDI and BIT GDI components to associate
       
    70 the application with the appropriate application icon, caption and display
       
    71 screen. </p> </li>
       
    72 </ul> </section>
       
    73 <section><title>API summary</title> <table id="GUID-8AE3BE8D-64A7-5356-B7C8-9C399A2C09D7">
       
    74 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    75 <thead>
       
    76 <row>
       
    77 <entry><p><b>API</b></p></entry>
       
    78 <entry><p><b>Description</b></p></entry>
       
    79 </row>
       
    80 </thead>
       
    81 <tbody>
       
    82 <row>
       
    83 <entry><p> <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref>  </p> </entry>
       
    84 <entry><p>A class that defines the basic twin roles of an application class: </p> <ul>
       
    85 <li id="GUID-D25C2518-DEAB-54F1-AD7D-64D5C98C230E"><p>as a factory that creates
       
    86 concrete document objects </p> </li>
       
    87 <li id="GUID-5807892A-1432-5CD9-BF89-B9FF1DE369B5"><p>as a supplier of utility
       
    88 functions not specific to any particular instance of a document. </p> </li>
       
    89 </ul> </entry>
       
    90 </row>
       
    91 <row>
       
    92 <entry><p> <xref href="GUID-A7C7B19A-66D8-38A7-B5D6-03B81D2F2C93.dita"><apiname>CApaAppListNotifier</apiname></xref>  </p> </entry>
       
    93 <entry><p>An application list change notifier that provides a notification
       
    94 whenever an application is added or deleted. </p> </entry>
       
    95 </row>
       
    96 <row>
       
    97 <entry><p> <xref href="GUID-0510F0C4-2D81-3C4A-A3FC-95B9F624FF14.dita"><apiname>CApaCommandLine</apiname></xref>  </p> </entry>
       
    98 <entry><p>A class that provides information for launching an application.
       
    99 This class is often referred to as a command line and it contains </p> <ul>
       
   100 <li id="GUID-41D2C6FB-1E60-5BCB-B478-0DC4D0ECCCD6"><p>the name of the application
       
   101 EXE to be launched </p> </li>
       
   102 <li id="GUID-4D1DB1CC-8D6A-5A8C-921B-A6885F1B0336"><p>the document name </p> </li>
       
   103 <li id="GUID-A7E91EAD-7C40-56F6-83E2-106FA9E98F1D"><p>a command code that
       
   104 defines the way an application is launched (the structure of this depends
       
   105 on the application to be launched). </p> </li>
       
   106 </ul> </entry>
       
   107 </row>
       
   108 <row>
       
   109 <entry><p> <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref>  </p> </entry>
       
   110 <entry><p>The base class for all documents. A document contains the data associated
       
   111 with the content of the application. </p> </entry>
       
   112 </row>
       
   113 <row>
       
   114 <entry><p> <xref href="GUID-4FB064FC-210C-384A-BE92-35CA399B34C3.dita"><apiname>CApaSystemControlList</apiname></xref>  </p> </entry>
       
   115 <entry><p>A class that provides a list of all available control panel applications
       
   116 present on the device. This class is implemented as a linked list of <xref href="GUID-460DE2A7-6E12-3B0D-9026-63119F093EB6.dita"><apiname>CApaSystemControl</apiname></xref>. </p> </entry>
       
   117 </row>
       
   118 <row>
       
   119 <entry><p> <xref href="GUID-C4F91485-6386-36EC-982B-DC2B7AAE7B7A.dita"><apiname>CServiceRegistry</apiname></xref>  </p> </entry>
       
   120 <entry><p>The Service Registry stores associations between service-datatype
       
   121 pairs and applications. The service-datatype pair is the primary key for the
       
   122 registry. </p> </entry>
       
   123 </row>
       
   124 <row>
       
   125 <entry><p> <xref href="GUID-2E824A1A-078A-3D43-8B49-DF6328330B51.dita"><apiname>RApaAppServiceBase</apiname></xref>  </p> </entry>
       
   126 <entry><p>The base class that provides a client-side interface for accessing
       
   127 server applications. </p> </entry>
       
   128 </row>
       
   129 <row>
       
   130 <entry><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>  </p> </entry>
       
   131 <entry><p>A session with the APPARC server providing access to a cached list
       
   132 of applications on the device. </p> </entry>
       
   133 </row>
       
   134 </tbody>
       
   135 </tgroup>
       
   136 </table> </section>
       
   137 <section><title>Typical uses</title> <p><b>Developing a GUI-based application</b> </p> <p>A
       
   138 GUI-based application can be developed using the <xref href="GUID-C0297A58-2E39-3211-A2B4-C334192CE2A7.dita"><apiname>CApaApplication</apiname></xref> and <xref href="GUID-D7041709-1EBE-3E42-8E16-C7F62081AFB7.dita"><apiname>CApaDocument</apiname></xref> interfaces.
       
   139 For more information, see <xref href="GUID-1D7BD70F-40A3-53FF-8150-A9CAFA4D01D8.dita"> A
       
   140 Minimal UI Application</xref>. </p> <p><b>Enumerating applications</b> </p> <p>APPARC
       
   141 provides a set of APIs that can enumerate the list of applications on the
       
   142 device. For more information, see <xref href="GUID-4E1B057E-5291-54FC-A0C0-37234CBFBD8E.dita">Enumerating
       
   143 applications</xref>. </p> <p><b>Accessing running applications</b> </p> <p>Applications
       
   144 running on a device are known as tasks. The <xref href="GUID-E1A1806C-8757-35DF-A4FB-AE3C63DED364.dita"><apiname>TApaTaskList</apiname></xref> class
       
   145 is used to access applications running on a device, where each task can be
       
   146 an instance of the <xref href="GUID-851055CF-D5E6-34EA-8D4B-53FC50D90C24.dita"><apiname>TApaTask</apiname></xref> class, which is used to manipulate
       
   147 or query tasks. For more information, see <xref href="GUID-0F1CB874-391F-5D44-B960-517E447DC712.dita">Accessing
       
   148 and manipulating running applications</xref>. </p> <p><b>Creating a control
       
   149 panel application</b> </p> <p>APPARC provides an API to create a control panel
       
   150 application. For more information, see <xref href="GUID-86AB2626-27F1-5761-85F7-5644C5D0A675.dita">Creating
       
   151 control panel applications</xref>. </p> <p><b>Creating a new service</b> </p> <p>The
       
   152 server application framework supports platform-level services between client
       
   153 and server applications. These services must be defined for client and server
       
   154 applications to communicate. For more information, see <xref href="GUID-5862F14F-5BB7-584B-A8B1-447975C42D49.dita">Creating
       
   155 a new service</xref>. </p> <p><b>Using a service in a client</b> </p> <p>Clients
       
   156 and server applications interact through a common service, which adheres to
       
   157 a protocol defining the communication channel between the two. This inter-process
       
   158 communication channel also provides a security checkpoint for application
       
   159 capability checking and so on. Services provide useful functionality to clients.
       
   160 For more information, see <xref href="GUID-B12A3024-44BF-51FF-9B84-14DB99ADC907.dita">Using
       
   161 a service in a client</xref>. </p> <p><b>Implementing services in a server
       
   162 application</b> </p> <p>Server applications can have one or many services.
       
   163 Each service type has a unique identification (UID). For more information,
       
   164 see <xref href="GUID-A5E4A8AD-8A40-5567-AE97-8CC6B496093E.dita">Implementing services
       
   165 in a server application</xref>. </p> </section>
       
   166 </conbody><related-links>
       
   167 <link href="GUID-58035B49-2EAE-5144-B226-28AF2EDD62E7.dita"><linktext>Generic Application
       
   168 Support</linktext></link>
       
   169 <link href="GUID-827AFAA3-75A4-5F08-8F83-1E36DAD8533D.dita"><linktext>Secure Software
       
   170 Install</linktext></link>
       
   171 <link href="GUID-FC2F5CDE-D140-5893-894D-D9B93AF6BDC2.dita"><linktext>Using Uikon</linktext>
       
   172 </link>
       
   173 <link href="GUID-E89F034F-C807-5FF9-B06B-F7CCD2441041.dita"><linktext>Graphics
       
   174 Device Interface (GDI)</linktext></link>
       
   175 <link href="GUID-638C061E-49BE-4297-8C02-E3EE261C7F26.dita"><linktext>Calendar
       
   176 Guide</linktext></link>
       
   177 </related-links></concept>