Abstract:
A system, method and apparatus are described for delivering software to a terminal  1.  Before software is delivered, an emulator  51  is invoked to validate the operation of the new software in conjunction with the existing terminal configuration. The invention is particular suitable to the delivery of so-called thin terminal implementations by manufacturers to which users subsequently adds their desired software.

Description:
[0001]    This application claims the benefit of priority of Provisional Application Serial No. 60/267,468, filed Feb. 9, 2001, the contents of which are incorporated herein by reference. 
     
    
     
       BACKGROUND OF THE INVENTION  
         [0002]    The present invention relates to communication terminals and the provision of software thereto, particularly, although not exclusively, operating system and application software.  
           [0003]    Conventionally, communication terminals and in particular mobile terminals such as those telephony devices intended for connection to a Public Land Mobile Network (PLMN) have been delivered to an end user with a fully functioning operating system and applications such as calendar, calculator and the like already installed. The installation of such software on a terminal requires the manufacturer to perform exhaustive, expensive and often time consuming checks into the licensing conditions and copyright and other digital rights applicable to the software. Without such licensing and clearance activity the manufacturer is open to severe liability risks. Such risks will also arise where such activity is not properly or incompletely executed.  
         SUMMARY OF THE INVENTION  
         [0004]    Accordingly, one aspect of the invention provides a software delivery apparatus, comprising a controller connectable to a terminal and responsive to a request therefrom for software, and a terminal emulator operable in accordance with a configuration of said terminal to validate said software prior to delivery to said terminal.  
           [0005]    Thus, a terminal may be supplied to a user in a so-called thin implementation, that is with a set of software sufficient to permit the user to connect to the apparatus and carry out basic operations including the ability to request additional software. Advantageously, this permits a terminal manufacturer to restrict the implementation of software on his terminal to that which has been checked and determined to have no potential liability to the manufacturer. It is thus the responsibility of the terminal user to enter into appropriate agreements to obtain any additional software he requires for his terminal. Clearly, the enhancement of a terminal from a thin implementation to a so-called thick implementation by the addition of further elements to that terminal is applicable to many forms of terminal and network topographies. Thus, a mobile communication handset could be enhanced in this manner via a PLMN acting as the access network for an ASP capable of delivering the desired elements. Equally, a Set Top Box (STB) intended for viewing television could be supplied in a thin implementation to a user who could then elect to enhance its capabilities such as to allow interaction with particular content. In this case the access network could be provided by a Public Switched Telephone Network (PSTN) providing the return channel between the STB and the content provider working in tandem with a digital video broadcast (DVB) network over which content is delivered to the STB.  
           [0006]    To reduce the possibility of newly acquired software causing operational difficulties to the terminal, the apparatus is capable of emulating a particular software configuration of the terminal. Advantageously, the terminal provides configuration information in tandem with the request for software. Such information may be utilised by the apparatus to generate an emulation specific to that particular terminal. The network connection to the apparatus also permits the derivation from a manufacturer of information relevant to a particular terminal which information could effect the operation of the terminal. Such information could relate to known problems or upgrades to the terminal not otherwise available from the terminal itself.  
           [0007]    According to another aspect of the present invention, there is provided a method of delivering software to a terminal, comprising receiving a request for software from said terminal, sourcing said software, emulating said terminal and validating said software against said emulation prior to delivering said software to said terminal.  
           [0008]    The method may be executed by an application service provider (ASP) independent of the terminal manufacturer or indeed the network operator of the terminal making the request. However, where terminal configuration information is available to a network operator, perhaps because the terminal is newly delivered to the user, a default ASP having details of initial terminal configurations may be set by the operator to which all such initial requests for software are directed. This would avoid the need for the terminal or more particularly the presence of software on the terminal necessary to provide configuration information to the ASP. Subsequently, if permitted by the operator and assuming the relevant software was present on the terminal the user could contact any ASP for further software. It will also be apparent that the method could be employed by the network operator itself.  
           [0009]    In addition, the method may include carrying out an initial assessment of the software request to determine whether the software is appropriate for delivery with regard to the present configuration of the terminal making the request. Depending on the outcome it may be possible to suggest to the user of the terminal what additional software, if any, should be requested to allow his original request to be met. Such a step would provide a useful initial filter to avoid unnecessary failures during the subsequent terminal emulation step. As such it adds to the confidence of a user of the terminal that the software he is requesting will function correctly and perhaps more importantly not damage or otherwise adversely effect the existing operation of his terminal.  
           [0010]    Finally, in respect of a still further aspect of the invention, there is provided a system for delivering software to a terminal comprises a controller having a connection to an access network through which a terminal issues a request for delivery of software, at least one software provider from whom said software is sourced by said controller and terminal emulation means operable in accordance with a configuration of said terminal to validate said software prior to delivery to said terminal.  
           [0011]    The software provider may be co-located with the controller in the sense that the software required by the user is sourced locally or from specified providers. This could be the case where the terminal forms part of a network in which its uses will be tightly constrained by the provider. For example, an operator of a Digital Video Broadcast (DVB) network may wish to restrict the delivery of enhanced interactivity components for its STBs to its own products for compatibility and/or commercial reasons. Alternatively, the user of a mobile terminal may wish to be free to install whatever software he chooses in which case the software provider could be selected on the basis of cost, for example, from a database of providers kept updated by the operator of the controller. Thus, the user is provided with a valuable opportunity to personalise his terminal. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]    In order to understand the present invention more fully, an embodiment thereof will now be described by way of example and with reference to the accompanying drawings, in which:  
         [0013]    [0013]FIG. 1 is a schematic view of a communication terminal architecture for use with the invention;  
         [0014]    [0014]FIG. 2 is a schematic view of software delivery system according to the invention; and  
         [0015]    [0015]FIG. 3 is detail schematic view of a terminal emulation portion of the system of FIG. 2. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]    Referring to FIG. 1, a communication terminal architecture  1  is shown in which elements of a so-called thin implementation are bounded with a solid line and further optional elements of a so-called thick implementation are bounded with a chain line. A first hardware layer  3 , device driver layer  5 , basic operating system  7  and native browser  9  form the thin implementation of the terminal. Included within the hardware layer are the entities required for a user to interact with the terminal and for the terminal to establish and maintain a connection with a network. The entities include those appropriate to a mobile and/or fixed terminal. As such entities are well known to those skilled in the art they will not be described further here except to the extent that they assist in understanding the present invention.  
         [0017]    In addition to the elements making up the thin implementation of the terminal  1 , sufficient additional memory and processing capacity exists to permit further elements to be added to the terminal  1  in a manner which will be described below, thereby enhancing the functionality of the terminal. Such elements may include an additional operating system  11 , middle layer software  13  such as a modem application programming interface (API), Java (trade mark) native interface  15  and graphics  17 , a Java (trade mark) virtual machine  19  within a Java (trade mark) implementation  21 . A further API  23  provides a foundation for further applications  25 . A Java (trade mark) browser  27  may also be included.  
         [0018]    A terminal  1  is manufactured and supplied to a user in a thin implementation. Thus, the user is provided with the basic functionality necessary to allow him to establish a connection  29  to a network  31  with which he has a service agreement. Once connected to the network  31 , the native browser  9  permits the user to access an Application Service Provider (ASP)  33  capable of supplying additional elements of the terminal architecture to the connected terminal  1 . The terminal manufacturer or network operator may predefine the selection of the ASP. Alternatively or perhaps additionally, the user may be free to select a desired ASP.  
         [0019]    Once the terminal  1  has accessed the ASP  33 , a request  35  from a user for an element of the terminal architecture is transmitted over the network  31 . In addition to identifying the desired element or elements, the request contains information setting out the current configuration of the terminal architecture. The ASP receives the request and either creates or updates a user profile  37  for that terminal  1  which may be supplemented by information provided by a manufacturer and/or network operator of the terminal  1 . Such additional information could, in the case of the manufacturer relate to software versions relevant to particular terminals which data may be too lengthy or sensitive to store in the terminal  1  itself. The additional information provided by the operator could identify the services the user subscribes to which might have a bearing on the desirability or otherwise of certain elements of the terminal architecture. Such services might, for example, require the presence of a particular browser or application to access interactive content over a broadband digital broadcast network. In order that the ASP  33  may correctly correlate such additional information with a request  35  from a particular terminal  1  to which it is relevant, some form of identifier common to both the terminal  1  and the additional information would be required. This might take the form of a serial number or IPv6 address range, for example.  
         [0020]    The ASP  33  may also analyse the profile  37  and determine from that analysis whether the selected element is appropriate in view of the existing configuration of that terminal. For example, the ASP  33  could recognise that the delivery of a Java (trade mark) browser  27  is inappropriate where the terminal  1  is in a thin condition due to the absence of the intermediate software layers. A database  45  holding details of software elements corresponding to the different requirements of various terminals provides the ASP  33  with the ability to identify what elements are required to achieve certain terminal configurations. The database also maintains a list of provider addresses where such elements may be sourced. Such a list will be updated regularly to reflect changes in availability and cost to the ASP  33 . A response could then be made by the ASP  33  to the terminal  1  indicating that the request cannot be validated and suggesting the delivery of the appropriate additional elements of the layers necessary to support the desired element.  
         [0021]    Once the request has  35  has been received, the user profile  37  determined and the request validated against the profile, the ASP  33  commences sourcing of the desired element or elements subject to any restriction in place from the user profile  37  and in accordance with provider address provided by the database  45 . Thus, the ASP  33  contacts via the Internet  39  one or more software providers  41 , 43 . In the event that the desired element is open source or otherwise free of royalty constraints an appropriate provider  41  should deliver the element to the ASP  33 . On the other hand, where a payment is required for supply of the desired element, this will be negotiated between the ASP  33  and the provider  43  with the ASP  33  eventually remitting the cost to the terminal user through a suitable mechanism, credit card payment, billing to the user&#39;s network operator are some examples.  
         [0022]    The new element supplied to the ASP  33  by the provider  41 , 43  is not immediately delivered to the terminal  1  but is placed  47  into a cache  49  forming part of a terminal emulation environment  51 . The element is held within the cache  49  whilst an emulation controller  53  requests  55  the user profile  37  appropriate to the terminal  1  for which the element is destined. Details of the profile  37  are returned  57  to the controller  53 . Whereupon, the controller  53  generates a request  59  which is received by a store  61  holding a plurality of software blocks at least some of which, in response to the request  59 , may be built up into an emulation of the terminal  1  as defined by the profile  37 . These blocks are delivered  63  from the store  61  to a emulation space  65  where the emulation is built following which the new element is copied  67  from the cache  49  to the emulation space  65  in a manner analogous to the delivery method by which the element should eventually reach the terminal  1 . The controller  53  is then able to carry out diagnostic checks on the emulation within the space  65  with a view to validating the proposed terminal configuration. Assuming the tests are successful the new element may be delivered via the access network to the terminal where its is installed. Otherwise, the ASP  33  will, in response to a failure during validation, indicate to the terminal that the new element has not been validated with the present terminal configuration together with an indication of the reason for non-validation. Where appropriate, the ASP  33  may suggest possible options which could be carried out in relation to the present terminal configuration to allow validated delivery of the element.