WO2009073368A1 - Method and apparatus to facilitate asynchronously invoking a browser application in a client platform - Google Patents

Method and apparatus to facilitate asynchronously invoking a browser application in a client platform Download PDF

Info

Publication number
WO2009073368A1
WO2009073368A1 PCT/US2008/084060 US2008084060W WO2009073368A1 WO 2009073368 A1 WO2009073368 A1 WO 2009073368A1 US 2008084060 W US2008084060 W US 2008084060W WO 2009073368 A1 WO2009073368 A1 WO 2009073368A1
Authority
WO
WIPO (PCT)
Prior art keywords
browser application
browser
client platform
location information
asynchronous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2008/084060
Other languages
French (fr)
Inventor
Anuraj Kunnummel Ennai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of WO2009073368A1 publication Critical patent/WO2009073368A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46—Multiprogramming arrangements
    • G06F9/48—Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806—Task transfer initiation or dispatching
    • G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46—Multiprogramming arrangements
    • G06F9/54—Interprogram communication
    • G06F9/546—Message passing systems or structures, e.g. queues
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00—Indexing scheme relating to G06F9/00
    • G06F2209/48—Indexing scheme relating to G06F9/48
    • G06F2209/482—Application

Definitions

  • This invention relates generally to browser-based functionality and more particularly to browser applications.
  • Browsers are known in the art.
  • a browser will be understood to refer to a software component capable of rendering Hypertext Markup content (including Hypertext Markup Language (HTML) pages) including content that can support at least one client side scripting technology such as JavaScript, and which can further allow for navigation of corresponding links such as HTML links.
  • HTML Hypertext Markup Language
  • Explorer and Firefox are two current well known browser examples that many end users employ to navigate the World Wide Web. Browser capabilities have grown to permit increased functionality to meet growing end user demand for greater capabilities and flexibility when browsing. This includes, for example, the provision and use of browser applications.
  • a browser application is a computer software application that is coded in a browser-supported language (such as HTML, Active Server Pages (ASP), PHP Hypertext Preprocessor (PHP), Practical Extraction and Reporting Language (Perl), and so forth) and that is reliant on a browser to render the application executable.
  • a browser-supported language such as HTML, Active Server Pages (ASP), PHP Hypertext Preprocessor (PHP), Practical Extraction and Reporting Language (Perl), and so forth.
  • AJAX Javascript and extensible Markup Language
  • COMET comprises another relevant example in this regard.
  • COMET comprises an AJAX extension that permits server applications to asynchronously push information to a client platform using a long-lived already-established connection between the server and the client platform.
  • FIG. 1 comprises a flow diagram as configured in accordance with various embodiments of the invention
  • FIG. 2 comprises a block diagram as configured in accordance with various embodiments of the invention.
  • FIG. 3 comprises a flow diagram as configured in accordance with various embodiments of the invention.
  • Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention.
  • a network element can access a directory sendee to obtain location information (i.e., access information) for a particular client platform browser for which the network element does not have an already-established connection. That network element can then asynchronous Iy issue a browser application request using that location information to thereby facilitate asynchronous Iy invoking a browser application in that client platform.
  • location information i.e., access information
  • That network element can then asynchronous Iy issue a browser application request using that location information to thereby facilitate asynchronous Iy invoking a browser application in that client platform.
  • asynchronously refers to the client browser (and the application running on it) not listening for application requests/information from a network, but rather where these components are awoken by a callback whenever a remote network entity delivers an application invocation request.
  • This location information can comprise, for example, location information for the browser application in the client platform itself.
  • this location information can comprise location information for a push proxy that receives messages on behalf of this particular client platform browser.
  • this browser application request can comprise, at least in part, a network address that is intended for use by the client platform browser.
  • the network address may comprise a non-translatable Internet Protocol (IP) address
  • this browser application request can additionally comprise relevant port information (such as a port pair or a Uniform Resource Identifier that is routable to an IP address:port pair as is known in the art).
  • This usage can comprise, for example, downloading content at this network address that is necessary to running the invoked browser application.
  • Illustrative content in this regard might comprise, for example, an application library, authorization credentials, and so forth. These teachings will also support, subsequent to the issuance of such a browser application request, again using the aforementioned location information to asynchronous Iy issue additional content to be delivered to the browser application.
  • This teachings will also accommodate corresponding behaviors and functionality on the part of the client platform.
  • This can comprise, for example, receiving such an asynchronous browser application request as was initially sourced from a remote network element and responsively providing that request to a native client platform browser.
  • the client platform can then further respond to the asynchronous browser application request by invoking a particular browser application via that native client platform browser.
  • Such a client platform can also be configured and arranged to access a directory service to provide the aforementioned location to thereby facilitate the aforementioned network element activities.
  • these teachings will also accommodate use of a mailbox mechanism that can receive all or part of the aforementioned browser application request and/or subsequent messages. This can comprise, for example, placing content from such requests/messages that is intended for use by the intended browser application into a mailbox that is accessible (exclusively or as shared with other applications) by the browser application. So configured, the browser application can then access that mailbox, obtain that content, and use that content as appropriate. [0016] So configured and arranged, those skilled in the art will recognize and appreciate that these teachings readily and efficiently facilitate the remote asynchronous invocation of a browser, and particularly a browser application, that is resident to a given client platform with which the invoking network element does not otherwise have an already established connection. Accordingly, it will be appreciated that these teachings permit a degree of control and effect that is presently lacking in the art. In both form and substance, these teachings will also be understood to considerably advance the technological basis for establishing a Web-based operating system.
  • This process 100 can be implemented, for example, by a network element of choice.
  • this network element can comprise a server application/agent.
  • the network element can optionally access 101 a directory service to obtain location information for a particular client platform browser for which the network element does not have an already-established connection.
  • This directory service can comprise, for example, a presence server with which the client platform browser (or a surrogate or proxy on the browser's behalf) registers its actual and/or scheduled location on some regular and/or event-driven basis.
  • the location information itself can vary in accordance with the needs and/or opportunities as tend to characterize a given application setting.
  • this location information can comprise location information for the browser application itself in the client platform.
  • the location information might comprise an IP address-port pair such as 10.168.1.1: 1234 or a globally routable Uniform Resource Locator (URL) such as sip:name@domain.com.
  • this location information can comprise location information for a push proxy that receives messages on behalf of the particular client platform browser.
  • the location information might comprise, for example, a Uniform Resource Locator (URL) such as a World Wide Web address.
  • URL Uniform Resource Locator
  • this location information can comprise location information for a publish-subscribe message queue to which the particular client platform browser subscribes (such queues being known in the art and requiring no further elaboration here).
  • the location information itself might comprise a URL.
  • this process 100 then provides for asynchronous Iy issuing 102 a browser application request using the location information.
  • this browser application request is transmitted in a message using that location information to form the address of the intended message recipient.
  • a network such as the Internet will often serve well in this regard.
  • this browser application request comprises a message that will be understood, upon eventual receipt by the client platform, to comprise a request/instruction that the client platform browser enable at least one identified browser application.
  • the purpose of such a request/instruction can of course vary. In many cases, however, the purpose of this request/instruction will be to thereby cause the client platform to asynchronously and automatically display, deliver, and/or process some information for the benefit of the client platform end user.
  • the specific client platform browser application that comprises the subject of the browser application request is essentially unlimited. Examples include, but are not limited to, word processing applications, spreadsheet applications, slide presentation applications, graphic image processing applications, animation playback applications, audio and/or video streaming content playback applications, and so forth. Those skilled in the art will recognize that many other examples are possible and that others will likely become available in the future.
  • this browser application request can comprise, at least in part, a network address that is intended for use by the particular client platform browser to download content that is necessary (or useful) to running the browser application to be invoked.
  • This content can of course vary with the needs and/or opportunities as characterize a given application setting. Content examples range from the complete browser application itself (as may be available, for example, via an application library) to application components to such items as authorization credentials as may be useful or necessary to acquiring and/or using the content, the application, or the like.
  • the browser application request may also comprise, at least in part, content to be delivered to the browser application upon invoking the browser application.
  • content to be delivered to the browser application upon invoking the browser application.
  • This might comprise, for the sake of illustration and not by way of limitation, programming to be executed by the browser application, a network address (such as a corresponding Web URL) for streaming content to be rendered by the browser application, data (such as, for example, a word processing document) to be displayed at the client platform by the browser application, and so forth are all relevant examples in this regard.
  • this process 100 will also optionally, if desired, accommodate also asynchronous Iy issuing 103 additional content to be delivered to the browser application while again using the aforementioned location information.
  • additional content can of course vary with the specifics of a given application setting. Non-limiting examples would include further data to be processed by the browser application, an additional network address (or addresses) at which the browser application can access or receive additional data or functionality, and so forth.
  • the client platform 201 comprises a processor 202 having the aforementioned native browser 203.
  • Various browsers are known in the art and the selection of a particular browser will depend in a given instance upon the needs and/or requirements as characterize that given instance. It will also be understood that this client platform 201 may comprise a plurality of differing browsers if desired.
  • a processor can comprise a fixed-purpose hard-wired platform or can comprise a partially or wholly programmable platform. All of these architectural options are well known and understood in the art and require no further description here.
  • the processor 202 operably couples to a receiver 204 (which may comprise, if desired, a wireless receiver of choice).
  • This receiver 204 can be configured and arranged, for example, to receive the aforementioned asynchronous browser application request as was initially sourced from a remote network element 209 as per the description provided above.
  • This can comprise, for example, an ability to interact compatibly with one or more external networks 207 such as, but not limited to, the Internet.
  • this may involve eventual reception of such a request via a push proxy 210 or a message queue 212 via, for example, an intervening network (or networks) 207 such as, but not limited to, the Internet.
  • This client platform 201 may also optionally comprise, if desired, a mailbox memory 205 that is operably coupled to the receiver 204 and the processor 202. This may comprise, for example and as illustrated, coupling to the receiver 204 via that processor 202 though other possibilities of course exist.
  • This mailbox memory 205 comprises an area of memory that is specifically (and, in many cases, largely or fully exclusively) accessible by the aforementioned browser 203 and/or a particular browser application. Such partitioning and access control is known in the art and need not be explained here in more detail.
  • Event listener shall be invoked if specified, attribute EventListener onreadystatechange;
  • Credentials are optional XMLHTTPMailBox(in DOMString user, in DOMString password, in DOMString appld)
  • the processor 202 can be configured and arranged (via, for example, corresponding programming as will be well understood by those skilled in the art) to place, for example, received information that is intended for use by the particular browser application in this mailbox memory 205 to thereby make such received information available to the invoked browser application.
  • This can comprise information as was received in an original asynchronous browser application request as described above and/or can comprise information as was received in a subsequent transmission by the corresponding network element.
  • this client platform 201 can comprise a transmitter 206.
  • This transmitter 206 can also comprise a wireless and/or wireline transmitter of choice and can serve to facilitate, for example, transmitting location information to a directory service 208 (as described below).
  • this transmitter 206 can be configured and arranged to interact compatibly with, for example, the aforementioned network(s) 207 to facilitate such functionality.
  • the specifics of this compatible interaction will of course vary with the specifics of a given application setting as will be well understood by those skilled in the art.
  • the client platform 201 can receive an asynchronous browser application request as sourced by a given network element such as the depicted server application/agent 209. This request may be directed specifically to the client platform 201 or may be conveyed via a push proxy 201, a message queue 212, or the like as determined by the location information as may have been obtained by the serve application/agent 209 from the directory service 208.
  • This asynchronous browser application request in turn, can be employed by the processor 202 to invoke its native browser 203 and, more particularly, a particular browser application.
  • all of part of the enabling code for the browser application may, in turn, be downloaded by the processor 202 from one or more application sources 211 (such as application servers configured and arranged to provide this service and functionality) using, for example, network address information as may have been received with the initial asynchronous browser application request and then retrieved by the browser 203 from the mailbox memory 205.
  • application sources 211 such as application servers configured and arranged to provide this service and functionality
  • a client platform 201 may be comprised of a plurality of physically distinct elements as is suggested by the illustration shown in FIG. 2. It is also possible, however, to view this illustration as comprising a logical view, in which case one or more of these elements can be enabled and realized via a shared platform. It will also be understood that such a shared platform may comprise a wholly or at least partially programmable platform as are known in the art.
  • the aforementioned processor can be configured and arranged (via, for example, corresponding software and/or firmware programming) to carry out some or all of the now described steps, actions, and functionality.
  • the client platform can optionally, if desired, access 301 a directory service (such as the directory service described above) to provide the aforementioned location information for the native client platform browser to thereby facilitate the remote network element being able to source the aforementioned asynchronous browser application request.
  • This step can occur on a regular or an irregular schedule if desired.
  • a step can be triggered as a function of time (such as a time of day, an amount of time as may have passed since a last location information update, and so forth).
  • this step can be event driven.
  • the directory service can be updated with fresh location information when a given event of interest occurs.
  • events might include, but are certainly not limited to, the client platform sensing a new location, receiving a location update probe from the directory service, first becoming attached to a mobile network, and so forth.
  • this process 300 then provides for receiving 302 an asynchronous browser application request as was initially sourced from a remote network element as described above.
  • this can comprise receiving the request directly from the network element or via some intermediary such as the aforementioned push proxy, message queue, or the like.
  • this asynchronous browser application request can include content intended for use by the particular browser application (which may comprise executable code, data, and/or one or more network addresses where executable code and/or data can be acquired by the browser application).
  • This process 300 then provides 303 this asynchronous browser application request to the native client platform browser such that the latter can now respond 304 to the asynchronous browser application request by invoking a particular corresponding browser application.
  • This may or may not comprise literally passing the request in its received form to the browser; in some cases it may be useful or necessary to first translate that request into a format that is compatible with and usable by the browser.
  • the aforementioned processor can be programmed to carry out this translation in a direct or indirect manner.
  • the network element may have additional content to provide to the invoked browser application subsequent to the above actions having been undertaken.
  • this process 300 will also optionally accommodate placing 305 such subsequently received content in the aforementioned mailbox.
  • this process 300 can then optionally provide for using 305 this particular browser application to access the mailbox, obtain its contents and hence the aforementioned message (in substance if not in form), and use that message as appropriate.
  • this might comprise, for example, accessing a network resource to download additional executable code and/or data.
  • the message contents themselves might comprise executable code and/or data to be used by the browser application.
  • an invoked application can, for example, poll the aforementioned mailbox for further data or can receive callbacks by registering a handler function to the mailbox that would be invoked by the mailbox when a subsequent item of content becomes available.
  • these teachings permit a browser application in a client platform to be asynchronous Iy invoked notwithstanding an absence of an already- established connection between that client platform and a remote application-invoking network element. This, in turn, opens the door to numerous opportunities to better facilitate a more traditional and/or seamless end user experience.
  • these teachings will readily accommodate invoking, partially or fully simultaneously, a plurality of browser applications as per the dictates of one or more request-sourcing network elements.
  • these teachings can be readily applied in a manner designed to support specific security measures. For example, one could restrict access to the aforementioned directory services by client and/or server (using, for example, mechanisms similar to the authentication and authorization techniques of Secure Sockets Layer (SSL) processing), push information securely to thereby avoid at least some spamming and unsecure content, and/or restrict access the aforementioned mailbox using security credentials so that only authorized applications can access content retained therein.
  • SSL Secure Sockets Layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A network element (209) can access (101) a directory service to obtain location information for a particular client platform browser (203) for which the network element does not have an already-established connection. That network element can then asynchronously issue (102) a browser application request using that location information to thereby facilitate asynchronously invoking a browser application in that client platform (201). That client platform, upon receiving (302) such an asynchronous browser application request, can responsively provide (303) that request to a native client platform browser. The client platform can then further respond to the asynchronous browser application request by invoking (304) a particular browser application via that native client platform browser.

Description

METHOD AND APPARATUS TO FACILITATE ASYNCHRONOUSLY INVOKING A BROWSER APPLICATION IN A CLIENT PLATFORM
Technical Field
[0001] This invention relates generally to browser-based functionality and more particularly to browser applications.
Background
[0002] Browsers are known in the art. As used herein, a browser will be understood to refer to a software component capable of rendering Hypertext Markup content (including Hypertext Markup Language (HTML) pages) including content that can support at least one client side scripting technology such as JavaScript, and which can further allow for navigation of corresponding links such as HTML links. Explorer and Firefox are two current well known browser examples that many end users employ to navigate the World Wide Web. Browser capabilities have grown to permit increased functionality to meet growing end user demand for greater capabilities and flexibility when browsing. This includes, for example, the provision and use of browser applications. A browser application is a computer software application that is coded in a browser-supported language (such as HTML, Active Server Pages (ASP), PHP Hypertext Preprocessor (PHP), Practical Extraction and Reporting Language (Perl), and so forth) and that is reliant on a browser to render the application executable. The use of browser applications holds the potential for permitting access to a wide variety of processing capabilities without also requiring a priori native provisioning of such capabilities at the client platform.
[0003] To a large extent, however, the browser paradigm is a pull-based approach that presumes the browser to be a central and initiating component. To more fully realize the potential of browser applications, however, such may not always be the case. Asynchronous Javascript and extensible Markup Language (XML) (AJAX) represents one approach to addressing such needs. AJAX provides a mechanism to support asynchronous client requests to be made to a server without also blocking the client platform user interface. This, in turn, enables richer applications that can be updated asynchronously to thereby provide a user experience somewhat closer to that which is more usually associated with native platform applications. COMET comprises another relevant example in this regard. COMET comprises an AJAX extension that permits server applications to asynchronously push information to a client platform using a long-lived already-established connection between the server and the client platform.
[0004] As helpful and useful as these various methodologies and approaches are, there nevertheless remain application settings that are insufficiently served by the prior art. As a general observation, for example, existing approaches rely upon a number of significant preliminary requirements before a desired level of asynchronous server-to-client functionality becomes possible. In the case of COMET, for example, an already-established connection must exist between such network elements before a server can effectively asynchronously push content towards a browser-based client. Problems such as these, in turn, can be viewed as obstructing the deployment of an effective and robust Web operating system as envisioned by some industry participants.
Brief Description of the Drawings
[0005] The above needs are at least partially met through provision of the method and apparatus to facilitate asynchronously invoking a browser application in a client platform described in the following detailed description, particularly when studied in conjunction with the drawings, wherein:
[0006] FIG. 1 comprises a flow diagram as configured in accordance with various embodiments of the invention;
[0007] FIG. 2 comprises a block diagram as configured in accordance with various embodiments of the invention; and
[0008] FIG. 3 comprises a flow diagram as configured in accordance with various embodiments of the invention. [0009] Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention. It will further be appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.
Detailed Description
[0010] Generally speaking, pursuant to these various embodiments, a network element can access a directory sendee to obtain location information (i.e., access information) for a particular client platform browser for which the network element does not have an already-established connection. That network element can then asynchronous Iy issue a browser application request using that location information to thereby facilitate asynchronous Iy invoking a browser application in that client platform. As used herein, those skilled in the art will recognize and understand that the expression "asynchronously" refers to the client browser (and the application running on it) not listening for application requests/information from a network, but rather where these components are awoken by a callback whenever a remote network entity delivers an application invocation request.
[0011] This location information can comprise, for example, location information for the browser application in the client platform itself. By another approach, this location information can comprise location information for a push proxy that receives messages on behalf of this particular client platform browser. [0012] By one approach, this browser application request can comprise, at least in part, a network address that is intended for use by the client platform browser. In some cases, as where the network address may comprise a non-translatable Internet Protocol (IP) address, this browser application request can additionally comprise relevant port information (such as a port pair or a Uniform Resource Identifier that is routable to an IP address:port pair as is known in the art). This usage can comprise, for example, downloading content at this network address that is necessary to running the invoked browser application. Illustrative content in this regard might comprise, for example, an application library, authorization credentials, and so forth. These teachings will also support, subsequent to the issuance of such a browser application request, again using the aforementioned location information to asynchronous Iy issue additional content to be delivered to the browser application.
[0013] These teachings will also accommodate corresponding behaviors and functionality on the part of the client platform. This can comprise, for example, receiving such an asynchronous browser application request as was initially sourced from a remote network element and responsively providing that request to a native client platform browser. The client platform can then further respond to the asynchronous browser application request by invoking a particular browser application via that native client platform browser.
[0014] Such a client platform can also be configured and arranged to access a directory service to provide the aforementioned location to thereby facilitate the aforementioned network element activities.
[0015] By one approach, these teachings will also accommodate use of a mailbox mechanism that can receive all or part of the aforementioned browser application request and/or subsequent messages. This can comprise, for example, placing content from such requests/messages that is intended for use by the intended browser application into a mailbox that is accessible (exclusively or as shared with other applications) by the browser application. So configured, the browser application can then access that mailbox, obtain that content, and use that content as appropriate. [0016] So configured and arranged, those skilled in the art will recognize and appreciate that these teachings readily and efficiently facilitate the remote asynchronous invocation of a browser, and particularly a browser application, that is resident to a given client platform with which the invoking network element does not otherwise have an already established connection. Accordingly, it will be appreciated that these teachings permit a degree of control and effect that is presently lacking in the art. In both form and substance, these teachings will also be understood to considerably advance the technological basis for establishing a Web-based operating system.
[0017] These and other benefits may become clearer upon making a thorough review and study of the following detailed description. Referring now to the drawings, and in particular to FIG. 1, an illustrative process that is compatible with many of these teachings will now be presented. This process 100 can be implemented, for example, by a network element of choice. As one example in this regard, this network element can comprise a server application/agent.
[0018] Pursuant to this process 100, the network element can optionally access 101 a directory service to obtain location information for a particular client platform browser for which the network element does not have an already-established connection. This directory service can comprise, for example, a presence server with which the client platform browser (or a surrogate or proxy on the browser's behalf) registers its actual and/or scheduled location on some regular and/or event-driven basis.
[0019] The location information itself can vary in accordance with the needs and/or opportunities as tend to characterize a given application setting. By one approach, for example, this location information can comprise location information for the browser application itself in the client platform. As an illustrative, non-limiting example in this regard, the location information might comprise an IP address-port pair such as 10.168.1.1: 1234 or a globally routable Uniform Resource Locator (URL) such as sip:name@domain.com. By another approach, this location information can comprise location information for a push proxy that receives messages on behalf of the particular client platform browser. In this case, the location information might comprise, for example, a Uniform Resource Locator (URL) such as a World Wide Web address. By yet another approach, this location information can comprise location information for a publish-subscribe message queue to which the particular client platform browser subscribes (such queues being known in the art and requiring no further elaboration here). In this case, and again, the location information itself might comprise a URL.
[0020] The specific way by which the network element accesses the directory service can also vary with the specifics of a given application setting. Those skilled in the art will recognize that, in many cases, such access can be achieved using an extranet such as the Internet. Various methodologies and technologies exist in this regard and others are likely to be promulgated in the future. Various approaches are known in the art in this regard. As these teachings are not overly sensitive to any particular selection in this regard, for the sake of brevity and the preservation of clarity, further elaboration in this regard will not be presented here.
[0021] In any event, and regardless of how the network element acquires the aforementioned location information, this process 100 then provides for asynchronous Iy issuing 102 a browser application request using the location information. In particular, this browser application request is transmitted in a message using that location information to form the address of the intended message recipient. There are various ways by which such a message can be transmitted and it will again be recognized that a network such as the Internet will often serve well in this regard.
[0022] At a minimum, this browser application request comprises a message that will be understood, upon eventual receipt by the client platform, to comprise a request/instruction that the client platform browser enable at least one identified browser application. The purpose of such a request/instruction can of course vary. In many cases, however, the purpose of this request/instruction will be to thereby cause the client platform to asynchronously and automatically display, deliver, and/or process some information for the benefit of the client platform end user.
[0023] The specific client platform browser application that comprises the subject of the browser application request is essentially unlimited. Examples include, but are not limited to, word processing applications, spreadsheet applications, slide presentation applications, graphic image processing applications, animation playback applications, audio and/or video streaming content playback applications, and so forth. Those skilled in the art will recognize that many other examples are possible and that others will likely become available in the future.
[0024] In some cases, the specific application will be fully native to the recipient client platform. In other cases, however, the specific application, or particular modules, functionality, or capabilities of that specific application will not be presently available at the client platform (as may be the case when implementing these teachings in a Web operating system context). In such cases, this browser application request can comprise, at least in part, a network address that is intended for use by the particular client platform browser to download content that is necessary (or useful) to running the browser application to be invoked. This content can of course vary with the needs and/or opportunities as characterize a given application setting. Content examples range from the complete browser application itself (as may be available, for example, via an application library) to application components to such items as authorization credentials as may be useful or necessary to acquiring and/or using the content, the application, or the like.
[0025] In some cases, the browser application request may also comprise, at least in part, content to be delivered to the browser application upon invoking the browser application. This might comprise, for the sake of illustration and not by way of limitation, programming to be executed by the browser application, a network address (such as a corresponding Web URL) for streaming content to be rendered by the browser application, data (such as, for example, a word processing document) to be displayed at the client platform by the browser application, and so forth are all relevant examples in this regard.
[0026] For some purposes, the foregoing steps may be sufficient to meet present needs. In other instances, however, it may be useful or necessary for the network element to transmit additional content for the application browser subsequent to the foregoing steps having been accomplished. To meet such a need, this process 100 will also optionally, if desired, accommodate also asynchronous Iy issuing 103 additional content to be delivered to the browser application while again using the aforementioned location information. Such content can of course vary with the specifics of a given application setting. Non-limiting examples would include further data to be processed by the browser application, an additional network address (or addresses) at which the browser application can access or receive additional data or functionality, and so forth.
[0027] Those skilled in the art will appreciate that the above-described processes are readily enabled using any of a wide variety of available and/or readily configured platforms, including partially or wholly programmable platforms as are known in the art or dedicated purpose platforms as may be desired for some applications. Referring now to FIG. 2, an illustrative approach to such a platform will now be provided.
[0028] In this illustrative example, the client platform 201 comprises a processor 202 having the aforementioned native browser 203. Various browsers are known in the art and the selection of a particular browser will depend in a given instance upon the needs and/or requirements as characterize that given instance. It will also be understood that this client platform 201 may comprise a plurality of differing browsers if desired. Those skilled in the art will recognize and appreciate that such a processor can comprise a fixed-purpose hard-wired platform or can comprise a partially or wholly programmable platform. All of these architectural options are well known and understood in the art and require no further description here.
[0029] In this illustrative embodiment the processor 202 operably couples to a receiver 204 (which may comprise, if desired, a wireless receiver of choice). This receiver 204 can be configured and arranged, for example, to receive the aforementioned asynchronous browser application request as was initially sourced from a remote network element 209 as per the description provided above. This can comprise, for example, an ability to interact compatibly with one or more external networks 207 such as, but not limited to, the Internet. As also was noted above, this may involve eventual reception of such a request via a push proxy 210 or a message queue 212 via, for example, an intervening network (or networks) 207 such as, but not limited to, the Internet.
[0030] This client platform 201 may also optionally comprise, if desired, a mailbox memory 205 that is operably coupled to the receiver 204 and the processor 202. This may comprise, for example and as illustrated, coupling to the receiver 204 via that processor 202 though other possibilities of course exist. This mailbox memory 205 comprises an area of memory that is specifically (and, in many cases, largely or fully exclusively) accessible by the aforementioned browser 203 and/or a particular browser application. Such partitioning and access control is known in the art and need not be explained here in more detail.
[0031] Shown below is an illustrative embodiment of the mailbox as rendered in pseudo JavaScript style and which is easily implementable as a JavaScript Object by persons versed in the art:
interface XMLHTTPMailBox {
//If a new message is received, event listener shall be invoked if specified, attribute EventListener onreadystatechange;
//state of the object. One of Uninitialized, receiving, received, completed, readonly attribute unsigned short readyState;
//Create new MailBox for this app. Credentials are optional XMLHTTPMailBox(in DOMString user, in DOMString password, in DOMString appld)
//Check for any messages destined for the app. int checkForMessagesO;
//Get content type of message
DOMString getContentType(int messageld); //Retrieve message
DOMString getMessage(int messageld);
//Get all message headers DOMString getAHMessageHeadersO;
//Get a message header
DOMString getMessageHeader(DOMString headerLabel);
//Gets URL of server application which invoked current application. DOMString getInvokerURL();
}
The following now represents how such a mailbox can be used to read content by an invoked application.
//Obtain a Mailbox instance var mBox = new XMLHTTPMailBox("userl","passwordl", "appOOl");
//Check if one or more messages are waiting var n = mBox.checkForMessages(); if(n>=l)
{ for(i=0;i<n;i++)
{ //read each message var msg = mBox.getMessage(n); //Do some thing with message....
} } //Listen for further messages mBox.onreadyStateChange = processMessage();
//Listener implementation function processMessageQ
var msg = mBox.getMessage(l); //Do something with message
}
[0032] So configured, and as will also be described below, the processor 202 can be configured and arranged (via, for example, corresponding programming as will be well understood by those skilled in the art) to place, for example, received information that is intended for use by the particular browser application in this mailbox memory 205 to thereby make such received information available to the invoked browser application. This can comprise information as was received in an original asynchronous browser application request as described above and/or can comprise information as was received in a subsequent transmission by the corresponding network element.
[0033] Also optionally and if desired, this client platform 201 can comprise a transmitter 206. This transmitter 206 can also comprise a wireless and/or wireline transmitter of choice and can serve to facilitate, for example, transmitting location information to a directory service 208 (as described below). Like the receiver 204, this transmitter 206 can be configured and arranged to interact compatibly with, for example, the aforementioned network(s) 207 to facilitate such functionality. The specifics of this compatible interaction will of course vary with the specifics of a given application setting as will be well understood by those skilled in the art.
[0034] So configured, the client platform 201 can receive an asynchronous browser application request as sourced by a given network element such as the depicted server application/agent 209. This request may be directed specifically to the client platform 201 or may be conveyed via a push proxy 201, a message queue 212, or the like as determined by the location information as may have been obtained by the serve application/agent 209 from the directory service 208. This asynchronous browser application request, in turn, can be employed by the processor 202 to invoke its native browser 203 and, more particularly, a particular browser application. By one approach, all of part of the enabling code for the browser application may, in turn, be downloaded by the processor 202 from one or more application sources 211 (such as application servers configured and arranged to provide this service and functionality) using, for example, network address information as may have been received with the initial asynchronous browser application request and then retrieved by the browser 203 from the mailbox memory 205.
[0035] Those skilled in the art will recognize and understand that the system configuration described comprises an illustrative example and that other architectural configurations are possible. Those skilled in the art will also recognize and understand that such a client platform 201 may be comprised of a plurality of physically distinct elements as is suggested by the illustration shown in FIG. 2. It is also possible, however, to view this illustration as comprising a logical view, in which case one or more of these elements can be enabled and realized via a shared platform. It will also be understood that such a shared platform may comprise a wholly or at least partially programmable platform as are known in the art.
[0036] Referring now to FIG. 3, a corresponding process 300 for such a client platform will be described. For the purposes of this illustrative example, the aforementioned processor can be configured and arranged (via, for example, corresponding software and/or firmware programming) to carry out some or all of the now described steps, actions, and functionality.
[0037] Pursuant to this client platform process 300, the client platform can optionally, if desired, access 301 a directory service (such as the directory service described above) to provide the aforementioned location information for the native client platform browser to thereby facilitate the remote network element being able to source the aforementioned asynchronous browser application request. This step can occur on a regular or an irregular schedule if desired. By one approach such a step can be triggered as a function of time (such as a time of day, an amount of time as may have passed since a last location information update, and so forth). By another approach, in addition to or in lieu of the time-based approach just mentioned, this step can be event driven. By this approach, for example, the directory service can be updated with fresh location information when a given event of interest occurs. Examples of such events might include, but are certainly not limited to, the client platform sensing a new location, receiving a location update probe from the directory service, first becoming attached to a mobile network, and so forth.
[0038] In any event, this process 300 then provides for receiving 302 an asynchronous browser application request as was initially sourced from a remote network element as described above. As noted, this can comprise receiving the request directly from the network element or via some intermediary such as the aforementioned push proxy, message queue, or the like. As is also noted above, this asynchronous browser application request can include content intended for use by the particular browser application (which may comprise executable code, data, and/or one or more network addresses where executable code and/or data can be acquired by the browser application).
[0039] This process 300 then provides 303 this asynchronous browser application request to the native client platform browser such that the latter can now respond 304 to the asynchronous browser application request by invoking a particular corresponding browser application. This may or may not comprise literally passing the request in its received form to the browser; in some cases it may be useful or necessary to first translate that request into a format that is compatible with and usable by the browser. In such a case, the aforementioned processor can be programmed to carry out this translation in a direct or indirect manner.
[0040] So configured and arranged, those skilled in the art will recognize and appreciate that these teachings indeed permit a browser application to be asynchronous Iy invoked by a remote network element with which the client platform does not presently have an already-established connection. This, in turn, opens a wide variety of possibilities that are simply not otherwise readily available via a browser application-based capability using prior techniques and technologies in this regard.
[0041] As noted above, the network element may have additional content to provide to the invoked browser application subsequent to the above actions having been undertaken. In such a case, if desired, this process 300 will also optionally accommodate placing 305 such subsequently received content in the aforementioned mailbox. As the contents of that mailbox are accessible to this particular browser application, this process 300 can then optionally provide for using 305 this particular browser application to access the mailbox, obtain its contents and hence the aforementioned message (in substance if not in form), and use that message as appropriate. Depending upon the message contents itself, this might comprise, for example, accessing a network resource to download additional executable code and/or data. As another example, the message contents themselves might comprise executable code and/or data to be used by the browser application. (Those skilled in the art will appreciate that an invoked application can, for example, poll the aforementioned mailbox for further data or can receive callbacks by registering a handler function to the mailbox that would be invoked by the mailbox when a subsequent item of content becomes available.)
[0042] So configured, these teachings permit a browser application in a client platform to be asynchronous Iy invoked notwithstanding an absence of an already- established connection between that client platform and a remote application-invoking network element. This, in turn, opens the door to numerous opportunities to better facilitate a more traditional and/or seamless end user experience.
[0043] Those skilled in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the spirit and scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the ambit of the inventive concept. As one example in this regard, those skilled in the art will recognize and appreciate that these teachings can be employed to permit a given browser (which may be remote or native) to invoke a given client application instance and to pass some content thereto. As a further example, these teachings can also be employed to permit a given client application to invoke a browser application and to pass content to that invoked browser application as desired. And as yet a further example in this regard, it will be clearly understood that these teachings will readily accommodate invoking, partially or fully simultaneously, a plurality of browser applications as per the dictates of one or more request-sourcing network elements. Those skilled in the art will further appreciate that these teachings can be readily applied in a manner designed to support specific security measures. For example, one could restrict access to the aforementioned directory services by client and/or server (using, for example, mechanisms similar to the authentication and authorization techniques of Secure Sockets Layer (SSL) processing), push information securely to thereby avoid at least some spamming and unsecure content, and/or restrict access the aforementioned mailbox using security credentials so that only authorized applications can access content retained therein.

Claims

1. A method to facilitate asynchronously invoking a browser application in a client platform comprising: at a network element: accessing a directory sendee to obtain location information for a particular client platform browser for which the network element does not have an already- established connection; asynchronously issuing a browser application request using the location information.
2. The method of claim 1 wherein the location information comprises location information for at least one of: the browser application in the client platform; a push proxy that receives messages on behalf of the particular client platform browser.
3. The method of claim 1 wherein the browser application request comprises, at least in part, a network address that is intended for use by the particular client platform browser to download content necessary to running the browser application to be invoked.
4. The method of claim 3 wherein the content comprises, at least in part, at least one of: an application library; authorization credentials; application data.
5. The method of claim 1 wherein the browser application request comprises, at least in part, content to be delivered to the browser application upon invoking the browser application.
6. The method of claim 1 further comprising: subsequent to issuing the browser application request, asynchronous Iy issuing additional content to be delivered to the browser application using the location information.
7. The method of claim 1 wherein the location information comprises location for a publish-subscribe message queue to which the particular client platform browser subscribes.
8. A client platform comprising: a receiver configured and arranged to receive an asynchronous browser application request as was initially sourced from a remote network element; a processor operably coupled to the receiver and having a browser configured and arranged to run at least one browser application, wherein the processor is further configured and arranged to respond to the asynchronous browser application request by invoking a particular browser application via the browser.
9. The client platform of claim 8 wherein the processor is further configured and arranged to access a directory service to provide location information for the browser to thereby facilitate the remote network element sourcing the asynchronous browser application request.
10. The client platform of claim 8 further comprising: mailbox memory operably coupled to the receiver and the processor; and wherein the processor is further configured and arranged to place additional received information intended for use by the particular browser application in the mailbox memory to thereby make such received information available to the particular browser application.
PCT/US2008/084060 2007-11-29 2008-11-19 Method and apparatus to facilitate asynchronously invoking a browser application in a client platform Ceased WO2009073368A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2493/DEL/2007 2007-11-29
IN2493DE2007 2007-11-29

Publications (1)

Publication Number Publication Date
WO2009073368A1 true WO2009073368A1 (en) 2009-06-11

Family

ID=40352381

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/084060 Ceased WO2009073368A1 (en) 2007-11-29 2008-11-19 Method and apparatus to facilitate asynchronously invoking a browser application in a client platform

Country Status (1)

Country Link
WO (1) WO2009073368A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883086A (en) * 2010-03-15 2010-11-10 浪潮集团山东通用软件有限公司 Method for realizing Comet function under ASP.NET environment
RU2759330C2 (en) * 2017-01-30 2021-11-11 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Postponing call requests for remote objects

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1308858A2 (en) * 2001-10-31 2003-05-07 Openwave Systems Inc. Provisioning of a mobile station over a wireless network
US7092703B1 (en) * 2003-03-24 2006-08-15 Sprint Spectrum L.P. Method and system for accessing a universal message handler on a mobile device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1308858A2 (en) * 2001-10-31 2003-05-07 Openwave Systems Inc. Provisioning of a mobile station over a wireless network
US7092703B1 (en) * 2003-03-24 2006-08-15 Sprint Spectrum L.P. Method and system for accessing a universal message handler on a mobile device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"WAP PUSH ARCHITECTURAL OVERVIEW", WAP PUSH ARCHITECTURAL OVERVIEW, XX, XX, 8 November 1999 (1999-11-08), pages 1 - 26, XP002942202 *
SANJAY: "J2ME MIDP apps launching wap browser", TECHIESABODE TIPS, 21 December 2005 (2005-12-21), XP002516950, Retrieved from the Internet <URL:http://www.techiesabode.com/show/show_tips_w.php?tip_id=131> [retrieved on 20090227] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883086A (en) * 2010-03-15 2010-11-10 浪潮集团山东通用软件有限公司 Method for realizing Comet function under ASP.NET environment
CN101883086B (en) * 2010-03-15 2013-01-02 浪潮集团山东通用软件有限公司 Method for realizing Comet function under ASP.NET environment
RU2759330C2 (en) * 2017-01-30 2021-11-11 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Postponing call requests for remote objects

Similar Documents

Publication Publication Date Title
US10244058B2 (en) Extending functionality of applications
JP5870471B2 (en) Method, apparatus, and system for sharing software between terminals
US20130144974A1 (en) Method and system for facilitating push notification
CN107390994B (en) Interface presentation method and device
US20140047322A1 (en) Method and system for browsing things of internet of things on ip using web platform
CN107463453B (en) Method, device, device and storage medium for communication between different applications of the same terminal
US20110137986A1 (en) Accessing content hosted on a peer device in a peer-to-peer network using a uniform resource locator (URL)
US10705690B1 (en) Sending virtual desktop information to multiple devices
US10623699B2 (en) Device, system and method for embedded video chat
JP2015520436A (en) Enabling web clients to provide web services
CN103001926A (en) Method, device and system for subscription notification
WO2006110994A1 (en) System and method for enabling asynchronous push-based applications on a wireless device
WO2008086899A1 (en) Methods for accessing a phone-based web server with a private ip address and related electronic devices and computer program products
US20020046304A1 (en) Dynamic class loading
EP3388938A1 (en) A method and system for pairing at least two electronical devices
Fysarakis et al. XSACd—Cross-domain resource sharing & access control for smart environments
US9986057B2 (en) UI framework support for portal systems
US20130204935A1 (en) Dynamic sharing of a webservice
US8861503B2 (en) Method and system for synchronizing data between mobile terminal and internet phone
US10044788B2 (en) Native client multimedia redirection
KR101699066B1 (en) Message based on html5 sending method
US20130226984A1 (en) Method and apparatus of providing optimized web browser communications
CN113824625B (en) Information interaction method and device
JP4341071B2 (en) Application time-out time adjusting system and method, server apparatus and program thereof
Niemirepo et al. Service platform for automated IoT service provisioning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08856348

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08856348

Country of ref document: EP

Kind code of ref document: A1