Symbian3/PDK/Source/GUID-34EF6527-14D0-5C8B-9E20-A3A3B3320054.dita
changeset 12 80ef3a206772
equal deleted inserted replaced
11:5072524fcc79 12:80ef3a206772
       
     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-34EF6527-14D0-5C8B-9E20-A3A3B3320054" xml:lang="en"><title>SIF Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    13 <section id="GUID-A3BAEDB1-D62E-4877-84E2-8C247FF9DDFF"><title>Purpose</title> <p>SIF provides uniform interfaces for installation of software
       
    14 and management of software Symbian platform devices regardless of
       
    15 the type of a package. The uniform interfaces provided by SIF enable: </p> <ul>
       
    16 <li id="GUID-3A207AF4-C957-566D-94A6-0EE9D4FC46A8"><p>Installation
       
    17 of software, for example SIS or JAR files. </p> </li>
       
    18 <li id="GUID-85E29288-459D-5FE2-8668-E32848B4AF19"><p>Management of
       
    19 software, for example removing an existing software component installed
       
    20 on a device. </p> </li>
       
    21 <li id="GUID-F8C01B68-14DF-5631-A0C5-C27BB1A005E7"><p>Extracting package
       
    22 information. </p> </li>
       
    23 </ul> </section>
       
    24 <section id="GUID-ED363D15-01A7-4D9D-A8DF-F4D9A0618788"><title>Architecture</title> <p>The following diagram illustrates the SIF interaction with SWI,
       
    25 AppArc and other components of the Universal Software Installation
       
    26 Framework : </p><fig id="GUID-2F4266C8-C5C7-44A3-A65A-4448919BBEDF">
       
    27 <title>SIF interaction diagram</title>
       
    28 <image href="GUID-9B97E076-22CB-434A-B16A-E4CE3A859F05_d0e41292_href.jpg" placement="inline"/>
       
    29 </fig><fig id="GUID-14AE4786-0AFB-4B5C-9306-1B112985FF7B">
       
    30 <image href="GUID-41CE73A7-4820-417D-8AD7-92F9DB9C552A_d0e41296_href.jpg" placement="inline"/>
       
    31 </fig> <p> <b>SIF Transport Library</b>  </p> <p>This is a client-server
       
    32 framework used to send and receive SIF requests across a process boundary.
       
    33 It significantly reduces the time needed to implement an installer
       
    34 client and a server for sending and receiving SIF requests. The SIF
       
    35 Transport Library consists of a SIF Transport Client and a Server. </p> <p>The SIF Transport Client sends software management requests (for
       
    36 example, installation, uninstallation, activation, deactivation and
       
    37 so on) across the process boundary to a specified SIF Transport Server.
       
    38 The SIF Transport Server processes the requests from the SIF Transport
       
    39 Client by instantiating a SIF Transport session object and hands over
       
    40 further processing to it. </p> <p> <b>SIF Utility library</b>  </p> <p>This library provides an API for uninstalling a software component
       
    41 from the system and is for simple installers. It removes the component
       
    42 from the System Component Registry (SCR) and deletes its files from
       
    43 the file system. </p> <p> <b>SIF Launcher</b>  </p> <p>SIF Launcher
       
    44 is a SIF component that handles installation requests from the AppArc
       
    45 APIs. Installation requests are issued by generic clients, such as
       
    46 file or web browsers. When the user clicks on a file or link, a browser
       
    47 may use <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita#GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA/GUID-FE6E7F9F-86AB-398E-A979-90F1DAC93E71"><apiname>RApaLsSession::StartDocument()</apiname></xref> to start
       
    48 the SIF Launcher automatically.</p> <p><b>Notifier Framework</b></p><p>There is a need to receive progress notifications during package
       
    49 management operations, such as installation, upgradation and uninstallion.
       
    50 The native and non-native installers follow legacy mechanisms to publish
       
    51 the installation context.  If each installer provides a different
       
    52 publication mechanism, the observers of the events need to make additional
       
    53 changes relevant to the installer. To overcome this redundancy, SIF
       
    54 provides a unified notification mechanism that makes receiving progress
       
    55 notifications simpler. </p><p>The Notifier framework delivers the
       
    56 start, progress and completion status of SIF operation (install or
       
    57 uninstall) to registered clients in a unified mechanism. The Publish
       
    58 and Subscribe Keys defined by the Universal Software Install Framework
       
    59 (USIF) can be used by all installers to <xref href="GUID-6A9E486A-6C1B-4E31-832A-FD39AF041817.dita">publish the progress
       
    60 of operations</xref>. The clients must <xref href="GUID-FDA575AB-F5A5-4244-B47C-F1B1794F09F6.dita">subscribe to receive
       
    61 the progress notifications</xref>.</p><p> A utility library is provided
       
    62 with APIs that set and publish the SIF operation progress. Installers
       
    63 and client applications can use these APIs to publish and subscribe
       
    64 for install, upgrade and uninstall status notifications.</p></section>
       
    65 <section id="GUID-B0AD8013-8166-411C-BA70-E0FC494094B2"><title>Key
       
    66 Classes</title> <p>The following table summarizes the key classes
       
    67 of SIF: </p> <table id="GUID-95FAE876-4A42-5AFA-8D92-B14E4B3C3B8B">
       
    68 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    69 <thead>
       
    70 <row>
       
    71 <entry>Class Name</entry>
       
    72 <entry>Description</entry>
       
    73 </row>
       
    74 </thead>
       
    75 <tbody>
       
    76 <row>
       
    77 <entry><p> <xref href="GUID-1A295877-CBEF-3C5C-A72E-FFB5D2E57B22.dita"><apiname>RSoftwareInstall</apiname></xref>  </p> </entry>
       
    78 <entry><p>Provides an asynchronous interface to SIF. This class wraps
       
    79 all the details of client-server communication with the SIF server
       
    80 residing in a separate process. </p> </entry>
       
    81 </row>
       
    82 <row>
       
    83 <entry><p> <xref href="GUID-CD380D01-8649-36E4-8435-C6F600D5A5CF.dita"><apiname>CSifPlugin</apiname></xref>  </p> </entry>
       
    84 <entry><p>Is an abstract SIF plug-in
       
    85 interface. Derived classes must implement the functions of the interface
       
    86 for each particular software type. </p> </entry>
       
    87 </row>
       
    88 <row>
       
    89 <entry><p> <xref href="GUID-D526646E-45DB-3DC4-9384-CFF02C590F74.dita"><apiname>RSifTransportClient</apiname></xref>  </p> </entry>
       
    90 <entry><p>Is a client side of the SIF Transport. This class sends
       
    91 software management requests across the process boundary to a specified
       
    92 Transport Server. </p> </entry>
       
    93 </row>
       
    94 <row>
       
    95 <entry><p> <xref href="GUID-6C066A48-4889-302B-879B-4A07552C3AFC.dita"><apiname>CSifTransportTask</apiname></xref>  </p> </entry>
       
    96 <entry><p>Defines an abstract interface for SIF Transport tasks. It
       
    97 is the core class of the SIF Transport library. Transport tasks are
       
    98 instantiated and run to handle incoming software management requests. </p> </entry>
       
    99 </row>
       
   100 <row>
       
   101 <entry><p><xref href="GUID-F1D2CE7E-B5B9-3E35-B648-55F1B24E6272.dita"><apiname>CSifOperationStartData</apiname></xref></p></entry>
       
   102 <entry><p>Contains basic information
       
   103 about packages to be installed or uninstalled.</p></entry>
       
   104 </row>
       
   105 <row>
       
   106 <entry><p><xref href="GUID-4F0E57D3-CE4C-3A41-951B-F2BB43E7BA34.dita"><apiname>CSifOperationEndData</apiname></xref> </p></entry>
       
   107 <entry><p>Contains the error status
       
   108 information after an installation or uninstallation.</p></entry>
       
   109 </row>
       
   110 <row>
       
   111 <entry><p><xref href="GUID-DBEB6AEF-2128-3566-93AA-3CDB5D554B1E.dita"><apiname>CSifOperationProgressData</apiname></xref></p></entry>
       
   112 <entry><p>Provides the progress
       
   113 status.</p></entry>
       
   114 </row>
       
   115 <row>
       
   116 <entry><p><xref href="GUID-59E1372C-F4F8-3762-B6D9-B92BB5F53FC6.dita"><apiname>CPublishSifOperationInfo</apiname></xref></p></entry>
       
   117 <entry><p>Is used by installers
       
   118 to publish a single install, uninstall or update operation information.</p></entry>
       
   119 </row>
       
   120 <row>
       
   121 <entry><p><xref href="GUID-4683B704-D21C-3D42-82BB-2B4B88B4974C.dita"><apiname>MSifOperationsHandler</apiname></xref></p></entry>
       
   122 <entry><p>Is an interface class
       
   123 required to be implemented by the client class to receive notifications.
       
   124 This class has functions that notify about the SIF operation start,
       
   125 end and progress updates.</p></entry>
       
   126 </row>
       
   127 <row>
       
   128 <entry><p><xref href="GUID-33D234E5-2970-3521-BDB9-EE29C9165856.dita"><apiname>CSifOperationsNotifier</apiname></xref></p></entry>
       
   129 <entry><p> An object of the class
       
   130 is created for carrying out subscription to notification. </p></entry>
       
   131 </row>
       
   132 </tbody>
       
   133 </tgroup>
       
   134 </table> </section>
       
   135 <section id="GUID-7B431AC3-6B81-40A1-98E4-31CA7B20B5DE"><title>Typical
       
   136 uses</title> <p>You can use the APIs provided by SIF to <xref href="GUID-51EDBA17-41AF-58FB-A96F-D5A136F83977.dita">create an installer</xref> . When you use SIF with SCR you can perform <xref href="GUID-8EE40A1A-7905-522B-A1A1-3F4ED053B042.dita">application management
       
   137 functions</xref> such as listing software components on a device and
       
   138 extracting package information about a software component. </p> </section>
       
   139 </conbody><related-links>
       
   140 <link href="GUID-B2BD19A4-132E-5D5C-8870-04BADB6E7815.dita"><linktext>SIF
       
   141 Tutorial</linktext></link>
       
   142 <link href="GUID-2AB7F53A-5EDF-574D-866D-EF2592881559.dita"><linktext>Configuring
       
   143 the SIF Launcher</linktext></link>
       
   144 </related-links></concept>