Field of the Invention
The present invention relates to a technique when a service is provided with use of a Web Intents mechanism or the like.
Description of the Related Art
Conventionally, when processing is delegated between websites, a function calling side has had to know how to call a function such as an Application Programming Interface (API) or a Representative State Transfer (REST) interface of a function provider side. Therefore, the function calling side has had to perform processing of the calling side according to each calling rule to realize cooperation with a different website. Further, authentication to the function provider side is often required to allow the function calling side to use the function. Therefore, the function user side has had to hold authentication information of the function provider side or use an authentication foundation such as Security Assertion Markup Language (SAML). However, holding the authentication information leads to the necessity of correctly and safely managing the authentication information, and use of the authentication foundation such as SAML requires establishment of an agreement in advance between the function provider and the function user. These requirements have imposed a burden on the function user.
There are also mechanisms that realize cooperation with an arbitrary web service (or a web application) without requiring using a special API. As one example thereof, there is proposed a mechanism called Web Intents that loosely couples a service receiver side and a service provider side by late runtime binding to realize cooperation there between.
As a conventional technique, Japanese Patent Application Laid-Open No. 2012-48457 discusses a technique according to which a web browser notifies a cooperation target website of information about a cooperation source website with use of a script such as a bookmarklet. The cooperation target acquires data from the cooperation source with use of the notified information.
The technique discussed in Japanese Patent Application Laid-Open No. 2012-48457 does not take a new cooperation mechanism such as Web Intents into consideration at all. If authentication information of the cooperation source website is required when the cooperation target website acquires data from the cooperation source website, the cooperation target has to know the authentication information of the cooperation source in advance, or a mechanism for sharing authentication such as SAML is required. Therefore, there is such a problem that the cooperation target cannot provide a service to an arbitrary cooperation source.
According to the new cooperation mechanism such as Web Intents, a user agent (UA) processes a Hyper Text Markup Language (HTML) document that contains a markup for registering a provided function to use the provided function offered by a service in this mechanism. The UA can request execution of the provided function by connecting to the service with use of a Web Intent corresponding to the provided function to be offered by the service, which is registered with the UA. However, even in the Web Intents mechanism, a user has to, for example, configure various kinds of settings and edit a service content via the UA when the provided function is requested. Therefore, various modifications to improve usability will be demanded from now on regarding a request to the service using this Web Intent and registration of the Web Intent.
The present invention is directed to an information processing terminal capable of improving usability for a new cooperation mechanism such as currently proposed Web Intents.
According to an aspect of the present invention, an information processing terminal, which has a relay function of relaying information/processing between a client configured to manage data and a service configured to provide a function with use of the data managed by the client, includes a registration unit configured to register function information for calling the function provided by the service with the relay function, a request unit configured to issue a request that contains the data managed by the client to the service when the function information is specified, and a specifying unit configured to specify a processing content of the function corresponding to the function information to the service. The registration unit registers function information in which at least a part of the content specified by the specifying unit is reflected with the relay function.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Various exemplary embodiments, features, and aspects of the invention will be described in detail below with reference to the drawings.
A Web Intents service (hereinafter referred to as a service) 103 provides a service or a function with use of an Intents technique. A Web Intents client (hereinafter referred to as a client) 101 uses the above-described service. A user agent (UA) 106 plays a role of transferring a request from the client 101 to the service 103 and transferring a result from the service 103 to the client 101. The UA 106 can be considered as a relay function for carrying out a request and transferring data between the client 101 and the service 103. Further, a Web Intent, which is function information for calling a provided function of the service 103, is registered in the UA 106.
In the present mechanism, for example, the client 101 is a website that manages data and has a button for calling the service 103 and the like disposed thereon, and the UA 106 is a web browser that displays this website. Further, the service 103 is a website serving as a cooperation destination of the client 101, which receives the data managed by the client 101 via the UA 106 and processes it. For example, if this mechanism is applied to a social networking service (SNS), the service 103 corresponds to a posting destination service that receives posting of a photograph and a comment managed by the client 101 to constitute a site where they are viewed. If user authentication or an operation by a user is required when the service 103 provides the function, the user carries out the operation on the UA 106.
The UA 106 can be realized not only by the browser but also by an operating system (OS), an arbitrary application, and the like that operate on an information processing terminal, as long as it has a function for cooperating with a service that will be described below. Examples of the information processing terminal include a personal computer, a smartphone, a tablet, and a car navigation system.
Further, as the Web Intents service 103, for example, a device such as a camera installed in the information processing terminal, an image forming apparatus, and a scanner can be also a service provider, besides a service provider in the Internet, like the above-described posting destination service. Further, as the service 103, a web service provided by a peripheral device such as an image forming apparatus, a scanner, and a network camera, a home appliance such as a refrigerator and a television, and the like connected with a network can be also a service provider.
Among the client 101, the UA 106, and the service 103, an arbitrary combination thereof may work in a same system. More specifically, one possible example thereof is such a case that a document edition application or the like having a function equivalent to a web browser operates as a configuration including the client 101 and the UA 106.
In step S401, the UA 106 accesses the service 103 in response to a user's operation. In step S402, the service 103 returns an HTML response that contains a registration markup for registering the function provided by the service 103 in the UA 106, to the UA 106.
The content of the HTML document returned from the service 103 to the UA 106 will be described with reference to an example illustrated in
In the example illustrated in
Upon receiving the reply in step S402, the UA 106 confirms to the user whether to register the provided function of the service 103 in the UA 106. For example, if the UA 106 is a web browser, the UA 106 displays a pop-up window, and prompts the user to select whether to register the function. If the user selects registration of this provided function as a Web Intent, the UA 106 stores the information received in step S402 therein. More specifically, the provided function is stored in a storage area of the information processing terminal on which the UA 106 operates, and is registered with the UA 106 as a Web Intent.
In step S403, the UA 106 accesses the client 101 in response to the user's operation. In step S404, the client 101 returns an HTML document in which use of the provided function (the Web Intent) of the service 103 is described, to the UA 106. For example, if an image and a “share” button are supposed to be displayed on the website as the client 101, this website returns an HTML document that contains an ECMA Script illustrated in
The content of the HTML document returned from the client 101 to the UA 106 will be described with reference to an example illustrated in
In step S404, the UA 106 receives the HTML document from the client 101, and displays the screen. In step S405, upon detecting that the “share” button on the display screen is pressed by the user, the UA 106 executes the ECMA Script for launching the Web Intents mechanism as described above. Then, in step S406, the UA 106 acquires the image data held by the client 101. Further, when detecting that the “share” button is pressed in step S405, the UA 106 displays a list of the Web Intents registered with the UA 106. Upon detecting the user's selection of the Web Intent indicating the provided function of the service 103 from the displayed list, in step S407, the UA 106 transmits a Hyper Text Transfer Protocol (HTTP) request to the selected service 103. At this time, the UA 106 adds the content of the Intent object generated in the ECMA Script illustrated in
In step S408, the service 103 extracts the Intent object from the HTTP request, and realizes use of the selected provided function (“share” of the image data of the client 101 in this example) while interacting with the user via the UA 106.
Upon completion of the processing, in step S409, the service 103 returns a reply that contains an ECMA script notifying the client 101 of a processing result. In step S410, the UA 106 executes the ECMA Script contained in the reply, and calls a callback function on Success( ) specified as an argument in the startActivity( ) function executed in step S405. In step S411, the UA 106 returns the processing result to the client 101 by the callback function onSuccess( ).
An example of using a web-based electronic mail function will be described according to the sequence illustrated in
This processing allows the client 101 to call the Web Intents function (“share” of an image in this example) provided by the service 103 via the UA 106.
Referring to
The UA 106 realized by the web browser or the like has functions of a registration unit that performs processing regarding Intent registration, a management unit that manages registered Intents, and a display control unit that provides a screen for receiving an instruction for registration, execution, or the like of an Intent from a user. Further, the UA 106 relays data, a processing result, and the like between the client 101 and the service 103 according to a predetermined protocol such as HTTP.
More specifically, the UA 106 registers an Intent via a user's operation by accessing the service 103 such as the image forming apparatus 104. Further, the UA 106 receives a request for execution of a Web Intent service by accessing the website that is the client 101, and is connected to the service 103 such as the image forming apparatus 104 according to a user's selection with use of the registered information. Further, the UA 106 receives a notification that indicates completion of processing of the Web Intent from the service 103, and notifies the client 101 of the processing result.
The image forming apparatus 104 provides a web printing function of realizing print settings and print processing for document data requested from the client 101 with use of a graphical user interface (GUI) of the web browser functioning as the UA 106. In exemplary embodiments that will be described below, the category of this function is specified by specifying “print (printing)” in “action” of an Intent. This is a hypothetical definition for simply explaining the exemplary embodiments, and the present invention can be employed even if an arbitrary category such as “share” or “view” is specified in “action” when the category is specified for the printing function provided by the image forming apparatus 104.
Referring to
Further, the overall control unit 310 mutually communicates with another information apparatus in the network 105 via the network I/F card 314, and provides and controls a web service such as the web printing function. The image forming apparatus 104 can be also designed to use another CPU or the like within the image forming apparatus 104 as a hardware configuration that provides the web service.
In step S701, the UA 106 transmits an HTTP request to the website of the web printing function of the image forming apparatus 104 in response to a user's operation. In step S702, the service 103 of the image forming apparatus 104 returns an HTML document that contains a markup (an intent tag) for Web Intent registration to the UA 106 in response to this HTTP request.
In the intent tag, “print (printing)” is specified as the category of the provided function, and “.pdf (Portable Document Format)” is specified as a processable data type (data format). Further, “href” in the intent tag indicates that a start of this provided function will be triggered by transmission of an HTTP request to a page “print.html” in the image forming apparatus 104.
In step S703, upon receiving the HTML document that contains this markup for registration, the UA 106 displays a dialog for confirming to the user whether to register this Intent if a same Intent is not registered within the UA 106 yet. Upon detecting an instruction for registration from the user via the dialog, the UA 106 registers the information contained in the markup for registration within the UA 106.
In step S801, the UA 106 transmits an HTTP request to the client 101 according to a user's instruction. In step S802, the client 101 returns an HTML document in response to the HTTP request from the UA 106.
An ECMA Script function 901 is a function for acquiring document data from a specified address (the internal processing of the function will not be described here). A function 902 is a function for instructing the UA 106 to call an Intent of the “print” category to print the document data acquired by a getDocFrom( ) function as the function 901. An HTML element 903 is an element for displaying a link to the document, and a button for launching a printUsingWI( ) function as the function 902 to print the document with use of the Web Intents mechanism, on the UA 106.
In step S803, upon detecting that the button corresponding to the HTML element 903 is pressed by the user via a display screen, the UA 106 executes the printUsingWI( ) function 902. This function calls the getDocFrom( ) function. In step S804, the UA 106 acquires the specified document data from the website that is the client 101 according to the execution of the function in step S803.
Next, the UA 106 generates an Intent object in the printUsingWI ( ) function with use of the acquired document data, and calls a navigator.startActivity( ) function with use of this object as an argument. By calling this function, the UA 106 displays a list of registered Intents that can process the generated Intent object to allow the user to select appropriate processing. At this time, the UA 106 displays the list according to the specified contents of the action and the type.
In step S805, the UA 106 transmits an HTTP request that contains the Intent object provided as the argument of the startActivity( ) function to the image forming apparatus 104 as the service 103, in response to the user's selection of the Web Intent via the selection screen illustrated in
In step S806, upon receiving the HTTP request that contains the Intent object, the image forming apparatus 104 returns an HTML document for displaying a screen for configuring print settings to the UA 106. After that, in step S806, the UA 106 configures the print settings for the document data contained in the Intent object according to the user's operation while communicating with the image forming apparatus 104.
In step S2801, the image forming apparatus 104 receives the HTTP request from the UA 106. In step S2802, the image forming apparatus 104 determines whether the received HTTP request contains an Intent object. As a result of the determination, if the received HTTP request contains an Intent object (YES in step S2802), the processing proceeds to step S2804. If the received HTTP request does not contain an Intent object (NO in step S2802), the processing proceeds to step S2803.
In step S2803, the image forming apparatus 104 generates an HTML document for error display, for displaying that this request is an invalid request on the UA 106. Subsequently, in step S2808, the image forming apparatus 104 transmits the generated HTML document for error display to the UA 106.
In step S2804, the image forming apparatus 104 extracts URI parameters in the HTTP request sequentially. The URI parameters are a group of character strings in the form of “key=value”. In step S2805, the image forming apparatus 104 determines whether a URI parameter could be extracted in step S2804. If a URI parameter could not be extracted, i.e., extraction of all URI parameters has been completed (NO in step S2805), the processing proceeds to step S2807. On the other hand, if a URI parameter could be extracted (YES in step S2805), in step S2806, the image forming apparatus 104 reflects a print setting according to the content of the extracted URI parameter. After that, the processing returns to step S2804, and the image forming apparatus 104 extracts a next URI parameter.
In step S2807, the image forming apparatus 104 generates an HTML document for the print settings, in which the contents of the URI parameters are reflected. After that, in step S2808, the image forming apparatus 104 transmits the generated HTML document to the UA 106.
The Intent “Print PDF using iR-AD C5035 on 172.24.50.35”, which is the Intent selected by the user, corresponds to the service that prints the document data desired by the user and configures the settings at the time of the printing.
Now, returning to the description of
Referring to
A description content 1201 is an intent tag for additionally registering a Web Intent for performing printing according to the setting contents contained in the HTTP request transmitted in step S807 with the UA 106. An “href” element in the tag has a content in which the setting contents selected by the user on the screen illustrated in
The setting items that should be described in the description content 1201 (the items illustrated in
In step S809, upon receiving the HTML document illustrated in
Upon receiving an HTML request according to the user's selection of this newly added Web Intent from the UA 106, the image forming apparatus 104, which is the service 103, performs the processing exemplified in
If additional registration of the Intent according to the above-described process of step S809 is repeated, this results in registration of a plurality of Web Intents having the same title with the UA 106 (the web browser).
Further, regarding overwriting registration, the present exemplary embodiment can be also designed in such a manner that the UA 106 presents a confirmation screen to the user to confirm whether to overwrite the Intent.
A second exemplary embodiment is an exemplary embodiment in which the service 103 returns an HTML document to confirm whether to transmit the HTML document that contains the intent tag to the UA 106, instead of returning the HTML document (
In the following description of the processing according to the second exemplary embodiment, because this processing is substantially similar to the above-described first exemplary embodiment, only a difference therefrom will be described below. More specifically, the processing from the registration of the Web Intent of the image forming apparatus 104 with the UA 106 to the execution of the Web Intent by the UA 106 in response to calling of the Web Intents function by the client 101 is similar to the first exemplary embodiment, whereby the description thereof will be omitted below.
In step S1501, the image forming apparatus 104 transmits an HTML document to the UA 106 as a reply to the request transmitted in step S807. The content thereof is a content indicating that printing according to the execution of the Web Intent has started.
In step S1502, upon detecting that the registration button 1602 is pressed, the UA 106 transmits an HTTP request that contains the content of the character string input in the text box 1601 to the image forming apparatus 104.
In step S1503, the image forming apparatus 104 transmits an HTML document containing an intent tag in which the character string of the title contained in the HTTP request transmitted in step S1502, and the print settings contained in the HTTP request transmitted in step S807 are reflected, to the browser 106.
Upon receiving the HTML document in step S1503, the UA 106 displays a confirmation screen (not illustrated) for confirming to the user whether to register the content of this intent tag in the UA 106 as a Web Intent if the content of the intent tag contained in this document is not registered yet. Upon detecting that registration of the Web Intent is selected by the user via the confirmation screen, the UA 106 registers it within the UA 106.
In the example illustrated in
As described above, in step S1503, the UA 106 receives the HTML document containing the intent tag in which the setting contents illustrated in
According to the present exemplary embodiment, registering an Intent in the UA 106 each time printing is performed with various kinds of print settings for a plurality of image forming apparatuses 104 results in a display of many candidates on the screen of the UA 106 for selecting a Web Intent. Therefore, hierarchal information can be also added to the description of the intent tag in the HTML document transmitted in step S1503 so that these candidates are displayed hierarchically on the selection screen of the UA 106. One example of the hierarchal information is adding a “parent” element to the intent tag, and specifying “href” of an Intent that will be a hierarchal parent.
A third exemplary embodiment will be described as an example in which the service 103 in the Web Intents mechanism provides the “share” function with use of an electronic mail. In the following description of the present exemplary embodiment, a difference from the above-described exemplary embodiments will be described specifically.
Further, upon detecting that the Web Intent illustrated in
In step S2101 illustrated in
A file name 2305 indicates that image data acquired by the UA 106 from the client 101 in step S409 illustrated in
A button 2306 is used to further add an attachment file to the electronic mail. A text area 2307 is used to input a body of the electronic mail. A button 2301 is used to transmit the electronic mail. Upon detecting that the button 2301 is pressed by the user, the UA 106 transmits the information input on the screen illustrated in
The service 103 receives the request for transmitting the electronic mail from the UA 106, and transmits the electronic mail with the specified content contained therein and the specified file attached thereto to the specified destinations. Then, in step S2102, the service 103 transmits an HTML document for displaying that the electronic mail has been transmitted, to the UA 106.
An “href” element in the intent tag illustrated in
After this registration processing, the UA 106 can display a selection screen on which the user can select the Web Intent corresponding to the intent tag illustrated in
A fourth exemplary embodiment will be described as an example of processing in which the intent tag is not contained in the HTML document transmitted from the service 103 in step S2102 according to the third exemplary embodiment, and information of a screen that allows the user to edit the content of the Intent that should be additionally registered is contained therein.
A text box 2601 is used to input the content of the “title” element in the intent tag. Check boxes 2602 and 2603 are used to select contents to be reflected in the Web Intent that should be additionally registered from the list of the destinations of the electronic mail, which are contained as the contents set in step S2101. According to the present exemplary embodiment, the contents selected via these check boxes will be contained as values of the “href” element in the intent tag of the Web Intent that should be additionally registered. If execution of the Web Intent is realized by the service 103 according to these selected contents, these selected contents may be specified by another description in the intent tag, or an instruction for execution according to these selected contents may be also transmitted to the service 103 when the Web Intent is executed.
In step S2501, upon detecting that a registration button 2604 is pressed, the UA 106 transmits an HTTP request that contains the setting contents selected via the screen illustrated in
Upon receiving the HTML document that contains the intent tag illustrated in
Other Embodiments
Embodiments of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions recorded on a storage medium (e.g., non-transitory computer-readable storage medium) to perform the functions of one or more of the above-described embodiment(s) of the present invention, and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more of a central processing unit (CPU), micro processing unit (MPU), or other circuitry, and may include a network of separate computers or separate computer processors. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2013-103329 filed May 15, 2013, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2013-103329 | May 2013 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
7047274 | Thomas | May 2006 | B2 |
7573878 | Fujimori | Aug 2009 | B2 |
20020015598 | Maeda | Feb 2002 | A1 |
20020104002 | Nishizawa | Aug 2002 | A1 |
20020136563 | Maeda | Sep 2002 | A1 |
20030061335 | Thomas | Mar 2003 | A1 |
20040034521 | Kawakura | Feb 2004 | A1 |
20070167162 | Kim | Jul 2007 | A1 |
20070169113 | Moore | Jul 2007 | A1 |
20080275945 | Tanimoto | Nov 2008 | A1 |
20090064279 | Ardolino | Mar 2009 | A1 |
20090300103 | Matsutsuka | Dec 2009 | A1 |
20090323110 | Shiimori | Dec 2009 | A1 |
20100290456 | Mutikainen | Nov 2010 | A1 |
20110202915 | Kuroyanagi | Aug 2011 | A1 |
20120110066 | Furuta | May 2012 | A1 |
20120218599 | Kashioka | Aug 2012 | A1 |
20130148155 | Kitagata | Jun 2013 | A1 |
Number | Date | Country |
---|---|---|
101299705 | Nov 2008 | CN |
101616234 | Dec 2009 | CN |
102195964 | Sep 2011 | CN |
102572175 | Jul 2012 | CN |
2002-169671 | Jun 2002 | JP |
P2012-048457 | Mar 2012 | JP |
Entry |
---|
Harry Brignull; “An Introduction to Web Intents—An interview with Glen Jones;” 90 Percent of Everything ; Jan. 20, 2012; pp. 1-5; XP055258555. |
Anonymous; “Web Intents in Chrome The Chromium Projects ;” Mar. 8, 2013; pp. 1-17; XP055258575. |
Greg Billock, James Hawkins, Paul Kinlan; “Web Intents—W3C Editor's Draft Sep. 11, 2012;” W3C Editor's Draft; Feb. 16, 2013; pp. 1-8; XP055258294. |
Number | Date | Country | |
---|---|---|---|
20140344377 A1 | Nov 2014 | US |