Interacting with software applications displayed in a web page
Claim Score by NHIP
Abstract
The invention enables the display of application-output data within application-output windows embedded in a web browser window. The application-output windows can be dynamically moved, resized and otherwise manipulated within the web browser window even when the application program providing the source of the application-output data is non-web enabled (e.g., legacy applications). The invention receives window attribute information associated with the application-output windows via a first virtual channel and displays application-output data received via a second virtual channel within the application-output windows, which are formed and/or modified using the window attribute information.

Term
Term ended
Projected expiry passed 9 April 2017, 9.5 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
18 claims: 2 independent, 16 dependent
- 1A method of displaying application-output data in a web browser, the method comprising the steps of:providing a web browser window;providing at least one application-output window positioned within the web browser window;receiving window attribute information corresponding to the application-output window via a first virtual channel coupled to the application-output window, the window attribute information being modifiable independently of the web browser;receiving the application-output data via a second virtual channel coupled to the application-output window;displaying the application-output window in accordance with the window attribute information;and displaying the application-output data in the application-output window.
- 10Broadest claimClaim Score 75, broad(NHIP)A system for displaying application-output data in a web browser, the system comprising:a web browser window;at least one application-output window displaying the application-output data and positioned within the web browser window;a first virtual channel receiving window attribute information corresponding to the application-output window, the window attribute information being modifiable independently of the web browser;and a second virtual channel receiving the application-output data, wherein the application-output data is displayed in the application-output window in accordance with the window attribute information.
Independent claims2
52 paragraphs in 6 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This claims priority to co-pending U.S. patent application Ser. No. 09/086,898, filed May 29, 1998; co-pending U.S. patent application Ser. No. 08/855,977, filed May 14, 1997; and co-pending U.S. patent application Ser. No. 09/247,220, filed Feb. 10, 1999, the entirety of which are incorporated herein by reference.
TECHNICAL FIELD
[0002] The present invention relates to the display of information in a communications network and more specifically to displaying the output of executing application programs in a web page.
BACKGROUND
[0003] Businesses in today's fast-paced global marketplace strive to improve their productivity and profitability by providing their employees with access to business-critical applications and data at fixed locations within the workplace as well as at mobile locations. The popularity of web-based computing, combined with the need to expedite information access for mobile users, has spurred adoption of enterprise portals. Enterprise portals are company web sites that aggregate, personalize and serve applications, data and content to users, while offering management tools for organizing and using information more efficiently. In some companies, portals have replaced traditional desktop software with browser-based access to a virtual workplace that is easy to use, convenient and ubiquitous. Companies that implement portals also benefit from a fast return on investment due to increased worker productivity and greater efficiency in their information technology infrastructure.
[0004] True desktop software replacement requires that a portal offer a full complement of information resources. Business applications are, arguably, the most vital information resource that workers need to access. Business applications also typically represent a major investment, and often a competitive advantage, which must not be lost when moving to web-based systems. From the standpoint of productivity, application access via the portal is needed so that users are not forced to switch back and forth between the browser and the desktop to do their work. With a split browser/desktop system, it is more difficult to locate and coordinate material from various sources. Users are also typically tied to the desktop device because it provides key applications that may not be accessible via the browser.
[0005] These business drivers provide compelling motivation to include existing and upcoming applications in portal implementations. However, few applications have been developed specifically for web-based delivery and those that have often provide reduced functionality as compared to their equivalent desktop applications. Although it is possible to use existing applications in a portal by re-engineering them for web publication using HTML, scripting, Java™ and other proprietary means, this approach is time-consuming and expensive and may delay portal implementation. Likewise, such implementations may experience reduced functionality and/or may not be feasible because the “download and run” model of application execution is too resource-intensive.
[0006] Accordingly, methods and systems are desired that enable efficient deployment of legacy applications in enterprise portals without undertaking expensive development efforts that may be marginally effective and which dilute the return on investment of the portal.
SUMMARY OF THE INVENTION
[0007] The present invention overcomes these shortcomings by applying web-enablement technology to legacy applications so that these applications remain in their original form, with the same user interface and full functionality to which their users are already accustomed, while allowing such viewers to interact with the applications via application-output windows displayed within a web page.
[0008] In one embodiment, the invention provides a method of displaying application-output data within one or more application-output windows positioned within a web browser window. The application-output data can be generated by a web enabled application program and/or a non-web enabled application program that is unmodified (e.g., so called “legacy applications”). The application programs that provide the source of the application-output data can reside on different application servers and the application-output data from these different application servers is displayed within one or more application-output windows in the same web browser window. In one aspect, the application-output windows are child windows of the web browser window. In one embodiment, the application-output windows are relocatable beyond the boundaries of the web browser window. In another aspect, window attribute information associated with the application-output windows is received via a first virtual channel and application-output data (e.g., graphical data) is received via a second virtual channel. In yet another aspect, the window attribute information of the application-output windows displayed within the web browser window is modifiable independently of the web browser that formed the web browser window. The invention displays the application-output data in the application-output window in accordance with the window attribute information.
[0009] In one embodiment, the invention provides a client agent that monitors and responds to events associated with the application-output windows, such as detecting a resize event input by a viewer of the web browser window and in response resizing an affected application-output window. The client agent performs these functions independently of the web browser. In one embodiment, the client agent is executed/instantiated in response to an application object (e.g., an ActiveX control) embedded in the web page displayed in the web browser window. In this embodiment, the client agent uses the window attribute information of the application-output windows received via the second virtual channel to modify at least one property of the application object, where the modified property triggers a corresponding change in the associated application-output windows. In a further aspect, the client agent establishes the first and second virtual channels independently of the web browser.
[0010] In this manner, the invention avoids expensive development and user training costs, and provides access to the full functionality of the original legacy application at mobile locations that have web access.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The invention is pointed out with particularity in the appended claims. The advantages of this invention described above, and further advantages, may be better understood by reference to the following description taken in conjunction with the accompanying drawings, in which:
[0012]FIG. 1 schematically illustrates a client device, a web server, and a server farm connected via a data communications network, where a client agent on the client device and one or more server agents in the server farm operate in accordance with an embodiment of the invention;
[0013]FIG. 2 provides a high-level flow diagram illustrating steps performed by the client agent and web server in accordance with an embodiment of the invention;
[0014]FIG. 3 is an illustrative screen representation of the client desktop, where the application-output windows displayed within the web browser window of the client desktop are formed in accordance with an embodiment of the invention;
[0015]FIG. 4 is a screen representation of the application-output windows of FIG. 3, illustrating that application-output windows can be moved and/or resized within the web browser window in accordance with an embodiment of the invention;
[0016]FIG. 5 is a screen representation of the application-output windows of FIG.3, illustrating that the application-output windows can be displayed within and/or beyond the boundaries of the web browser window and can exhibit varying z-orders, in accordance with an embodiment of the invention; and
[0017]FIG. 6 schematically illustrates the processes of the client agent and the type of data that is transferred between the client agent and the server agents, in accordance with an embodiment of the invention.
DETAILED DESCRIPTION
[0018] Portals and other web-based implementations capable of displaying application-output data to remote users are, preferably, implemented using a server-based computing model. Server-based computing is analogous to enterprise portals, which improve user productivity through single-point access to information resources (e.g., application programs), in that server-based computing enhances the overall efficiency of the portal via single-point application administration.
[0019] In server-based computing models, application processing, administration, support and deployment are typically based on one or more central servers, which may be geographically distant from a user's display device. Remote users interact with particular applications hosted on these application servers by sending keystrokes, mouse movements, and other input/output actions to the application servers via data communication networks (e.g., LAN, MAN, WAN, Internet, Intranet, etc.) and receive screen/window updates, files and other data therefrom. Because much, if not all, of the application processing takes place on the server, the user's display device operates essentially as a thin client and thus requires few resources (e.g., processing power, nonvolatile memory, volatile memory, etc.) to display the application-output data of what may be a compute-intensive application. Further, by reducing the overall quantity of data that travels across the network, significant improvements can be realized in application performance and security.
[0020] Coupling this server-based computing model with web-based implementations of application programs (e.g., portals) enables users to access business critical applications on virtually any device connected to the web, including home computers, laptop computers, computer workstations, wireless and handheld communication devices, and information appliances running on a wide array of platforms. Device and platform flexibility allows mobile workers to move seamlessly from one device to another and receive a consistent, personalized information set, which includes access to the full functionality of business-critical, legacy applications.
[0021] In brief overview, a user of a device connected to the web requests access to one or more application programs from a web server. After authenticating the user's credentials, the web server accesses user-specific and application-specific parameters from a memory coupled to the web server. The web server subsequently communicates these parameters to one or more application execution servers hosting the requested application programs, and software processes operating on the application execution servers execute and initialize the requested application programs using the communicated parameters. In this manner, each instance of the application programs is personalized for a particular requesting user. The particular network addresses of the application execution servers hosting these personalized application programs are then forwarded to the user's device, which establishes a communications link and client-server session therewith.
[0022] Commands, events, graphical data, and window attribute information associated with the executing application programs are communicated between the user device and the application execution servers during the client-server session to ensure that the application-output data is displayed seamlessly on the desktop of the user device. Seamless display of the application-output data refers to the presentation of the data on the user desktop in a manner that is consistent with how locally-executing applications are presented and manipulated in the local desktop of the user device. In other words, a user views and interacts with the application-output data generated by the remote application programs as if the application programs were being executed locally.
[0023] In one embodiment, the output of the application programs is displayed in one or more application-output windows positioned within a web page displayed by a web browser of the user's device. In a further embodiment, the attributes of the application-output windows can be modified so that the application-output windows are moveable and resizeable within the boundaries of the web page. In another embodiment, the application-output windows initially appear within the boundaries of the web page and are subsequently moveable so that they are positioned outside the boundaries of the web page and thus give the appearance that the application-output windows correspond to locally-executing applications rather than to remotely-executing applications. In yet another embodiment, the application-output windows initially appear outside the boundaries of the web page and thus also appear to correspond to locally-executing applications. In one embodiment, the application output displayed in the application-output windows and the attributes of the application-output windows themselves are communicated and manipulated by software processes on the user's device and on the application execution servers, without involvement of the web server or web browser that initially provided access to the application programs.
[0024] In more detail and with reference to FIG. 1, a server-based computing architecture <b>100</b>, capable of providing remote users with web-access to the full functionality of web and legacy applications (e.g., unmodified application programs that are not designed for web-based delivery), includes a client device <b>110</b> (e.g., any digital data processing device), a web server <b>112</b>, one or more application execution servers <b>114</b> that are either standalone or clustered within a server farm <b>116</b> and which are preferably protected by a firewall <b>118</b>, and a data communications network <b>120</b> (e.g., Internet, Intranet, etc.) that provides the necessary connectivity to enable each of these elements to communicate with each other.
[0025] In operation and also with reference to FIG. 2, a user of the client device <b>110</b> directs a browser <b>122</b> executing on the client device <b>110</b> to submit a request for access to particular web page content <b>124</b> accessible via the web server <b>112</b> (step <b>210</b>). In one embodiment, the user enters a universal resource locator (“URL”) address into the browser <b>122</b>. The URL is associated with the web page content <b>124</b> hosted by the web server <b>112</b> and the browser <b>122</b> responds by transmitting the request for access to the appropriate URL address. The web server <b>112</b> receives the request for access, which typically includes user credential information (e.g., user ID, password, group/project membership identifier, etc.), and authenticates the user to the server farm <b>116</b> or to the individual servers <b>114</b> that provide at least some of the web page content <b>124</b> (step <b>212</b>).
[0026] The web server <b>112</b> authenticates the user by accessing an authentication process that compares the credentials entered by the user with previously-assigned credentials. In one embodiment, the authentication process and database of previously-assigned credentials are stored and maintained on the web server <b>112</b>. In other embodiments, the previously-assigned credentials can be stored in the server farm <b>116</b>, on individual application execution servers <b>114</b>, and/or on an administrative server (not shown) that is coupled to the web server <b>112</b> via the Internet or other data communication network.
[0027] In the scenario where the web page content <b>124</b> corresponds to an enterprise portal, which provides access to an application set <b>126</b> (e.g., the set of application programs that have been personalized for the user by a portal administrator), the web server <b>112</b> accesses one or more application objects <b>128</b> (e.g., COM-compliant Java objects, ActiveX objects, HTML tags, etc.) that call web server-side scripts to authenticate the user (step <b>212</b>) and/or to obtain the application set <b>126</b> information associated with the portal and user from the server farm <b>116</b> (step <b>214</b>). The application objects <b>128</b> also include properties that are associated with the user and/or the particular applications <b>130</b> in the application set <b>126</b> that are provided via the portal. The user properties include, for example, group/project information that identifies the particular applications <b>130</b> and data that the user needs to access in order to allow the user to collaborate with other members of the group/project. The application properties include, for example, the user's preferences for each of the applications <b>130</b> in the application set <b>126</b>.
[0028] The scripts called by the application objects <b>128</b> establish a network session between the web server <b>112</b> and the server farm <b>116</b> via, for example, a central administrative process (not shown), which monitors and controls each server <b>114</b> in the server farm <b>116</b>. The administrative process selects one or more servers, which host the application programs <b>130</b> in the application set <b>126</b> specified by the application objects <b>128</b>, based, for example, on a server and/or network performance basis. The desired application set <b>126</b> can be provided entirely by a single server <b>114</b> by selecting/allocating each application <b>130</b> in the application set <b>126</b> from a plurality of applications <b>130</b>, <b>132</b> hosted on the server <b>114</b>. Alternatively, the application set <b>126</b>′ can be provided by a plurality of servers <b>114</b> with each of the plurality of servers <b>114</b> hosting at least one of the application programs in the application set <b>126</b>′. A more detailed description of server farms and their administration/operation can be found in International Patent Application No. PCT/US01/14314, which is incorporated herein by reference in its entirety.
[0029] The administrative process launches one or more server agents <b>134</b> on the selected/allocated servers <b>114</b> in response to the scripts called by the application objects <b>128</b>. Server agents <b>134</b> are software processes that execute, initialize, and interact with each of the application programs <b>130</b> in the application set <b>126</b> in accordance with the properties specified by the application objects <b>128</b>. In one embodiment, there is a server agent <b>134</b> for each application program <b>130</b> in the application set <b>126</b>. In other embodiments, there is a single server agent <b>134</b> for the application set <b>130</b>, to the extent that all of the application programs <b>130</b> are hosted on the same server <b>114</b>. In yet another embodiment, there is a single server agent <b>134</b> for each server <b>114</b>. The server agents <b>134</b> then provide the output of the application programs <b>130</b> in the application set <b>126</b> as well as any other information relating to the application set <b>126</b> to the web server <b>112</b>, which subsequently formats the application set information into the web page content <b>124</b> (step <b>216</b>). The web page content <b>124</b> can include application icons corresponding to one or more of the application programs <b>130</b> in the application set <b>126</b> as well as application-output data from one or more of the application programs <b>130</b>. In one embodiment, the application-output data provided by the application programs <b>130</b> corresponds to graphical data that is formatted to fit into a window, which exhibits attributes (e.g., window position on the web page, size, style, z-order, etc.) as initially specified by the properties of the application objects <b>128</b>.
[0030] In one illustrative embodiment and with reference to FIG. 3, the browser <b>122</b> receives and displays the web page content <b>124</b> within a browser window <b>320</b>, which includes many possible graphical user interface (“GUI”) elements (e.g., menu <b>312</b>, local window <b>314</b>, etc.) that form the client desktop <b>310</b> displayed on a display device coupled to the client device <b>110</b> (step <b>218</b>). In this particular embodiment, the web page content <b>124</b> is displayed within a web page <b>322</b> displayed by the browser <b>320</b> and includes one or more application icons <b>324</b> and/or one or more application-output windows <b>326</b>, which are associated with the application set <b>126</b>. In one embodiment, one or more of the application objects <b>128</b> also form part of the web page content <b>124</b> of the web page <b>322</b> and can therefore set the initial attributes (size, z-order, position) of the application-output windows <b>326</b>. The initial orientation, size, position, and z-order of each of the application-output windows <b>326</b> displayed on the web page <b>322</b> can be modified, as described below, so that the application-output windows <b>326</b> exhibit different orientations, sizes, positions, and z-orders relative to the web page <b>322</b> and/or relative to the client desktop <b>310</b>.
[0031] The application objects <b>128</b> can be any data constructs which indicate to the browser <b>122</b> displaying the web page content <b>124</b> that an application-output window <b>326</b> should be displayed at a particular location in the web page <b>322</b>. The application objects <b>128</b> may include additional information, such as the height, width, border style, background color or pattern in the application-output window <b>326</b>, along with indicia of which applications <b>130</b> may be displayed in the window <b>326</b>, how often the output display should be updated, or any other additional information that is useful to enhance the display of the application output.
[0032] In one illustrative embodiment, the application objects <b>128</b> are window tags that are embedded in an HTML file, examples of such tags are delineated below. <tables id="TABLE-US-00001" num="1"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217PT" align="left" /><thead><row><entry /></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>ActiveX tag</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="203PT" align="left" /><tbody valign="top"><row><entry /><entry><object classid=“clsid:238f6f83-b8b4-11cf-8771-00a024541ee3”</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="28PT" align="left" /><colspec colname="1" colwidth="189PT" align="left" /><tbody valign="top"><row><entry /><entry>data=“/ica/direct.ica” CODEBASE=“/cab/wfica.cab”</entry></row><row><entry /><entry>width=436 height=295></entry></row><row><entry /><entry><param name=“Start” value=“Auto”></entry></row><row><entry /><entry><param name=“Border” value=“On”></entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="203PT" align="left" /><tbody valign="top"><row><entry /><entry></object></entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217PT" align="left" /><tbody valign="top"><row><entry>Netscape Plugin tag</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="203PT" align="left" /><tbody valign="top"><row><entry /><entry><embed src=“http://www.citrix.com/ica/direct.ica”</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="28PT" align="left" /><colspec colname="1" colwidth="189PT" align="left" /><tbody valign="top"><row><entry /><entry>pluginspage=“http://www.citrix.com/plugin.html”</entry></row><row><entry /><entry>height=295 width=436 Start=Auto Border=On></entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="203PT" align="left" /><tbody valign="top"><row><entry /><entry><embed></entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217PT" align="left" /><tbody valign="top"><row><entry>JAVA tag</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="203PT" align="left" /><tbody valign="top"><row><entry /><entry><applet code=JICA.class width=436 height=295></entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="105PT" align="left" /><colspec colname="2" colwidth="98PT" align="left" /><tbody valign="top"><row><entry /><entry><param name=Address</entry><entry>value=“128.4.1.64”></entry></row><row><entry /><entry> <param name=InitialProgram</entry><entry>value=Microsoft Word 7.0></entry></row><row><entry /><entry> <param name=Start</entry><entry>value=Auto></entry></row><row><entry /><entry> <param name=Border</entry><entry>value=On></entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="203PT" align="left" /><tbody valign="top"><row><entry /><entry></applet></entry></row><row><entry /><entry namest="OFFSET" nameend="1" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
[0033] In each case above, the tag indicates that an application-output window <b>326</b> having a height of 295 pixels and a width of 436 pixels should be drawn to receive output data from the application program <b>130</b>. Each tag also specifies that the application program <b>130</b> should automatically start execution and that the application-output window <b>326</b> in which the application output is displayed should be drawn with a border. The ActiveX and Netscape Plugin tags have the properties of the remote application <b>130</b> specified in the file “directica” located in the directory “/ica.” The JAVA tag specifies the properties of the remote application <b>130</b> directly. In the example above, the address of the server <b>114</b> hosting the application program <b>130</b> is specified as well as the name of the application program <b>130</b> to be executed.
[0034] In one embodiment, the application program <b>130</b> executes substantially at the same time as the display of the web page <b>322</b>. In another embodiment, the application program <b>130</b> executes when instructed to do so by the server agent <b>114</b>, as part of providing web page content <b>124</b> to the web server <b>112</b>. In yet another embodiment, the application program executes in response to a signal, such as a user-specified input (e.g., selecting an application icon <b>324</b> on the web page <b>322</b>. Once execution of the application program <b>130</b> is commenced, the browser <b>122</b> instantiates a client agent <b>136</b> on the client device <b>110</b> (step <b>220</b>). Alternatively, the client agent <b>136</b> is instantiated substantially at the same time as the display of the web page <b>322</b> or in response to user-specified inputs.
[0035] The client agent <b>136</b> comprises one or more software processes, which execute on the client device <b>110</b> and which are configured to interact with the server agent <b>134</b>, browser <b>122</b>, application-output window <b>326</b>, and/or web server <b>112</b>. In one embodiment, the client agent <b>136</b> is spawned as a child process of the browser <b>122</b>. In other embodiments, the client agent <b>136</b> is a peer process of the browser <b>122</b> or a dynamically linked library associated with the browser <b>122</b>. In one embodiment, a client agent <b>136</b> is instantiated for each application-output window <b>326</b> displayed in the web page <b>322</b>. In another embodiment, a single client agent <b>136</b> is instantiated for one or more application-output windows <b>326</b> associated with a particular one of the application programs <b>130</b> in the application set <b>126</b>. In yet another embodiment, a single client agent <b>136</b> is instantiated for each server agent <b>134</b>, which contributed to the web page content <b>124</b>. In yet another embodiment, a single client agent <b>136</b> is instantiated for the entire application set <b>126</b>.
[0036] The browser <b>122</b> passes the properties of the application objects <b>128</b> relating to particular application programs <b>130</b> in the application set <b>126</b> to the client agent <b>136</b> associated with those same application programs <b>126</b>. Additionally, the browser <b>122</b> may pass a handle for an application-output window <b>326</b> to the client agent <b>136</b> or the client agent <b>136</b> may query the browser <b>122</b> to retrieve the handle for the application-output window <b>326</b>. Application properties, which are not specified by either the browser <b>122</b> or the application objects <b>128</b>, may be set to default values. The client agent <b>136</b> may also have certain property defaults hard-coded, or the client agent <b>136</b> may access a file which contains property defaults.
[0037] The client agent <b>136</b> uses the name of the application program <b>130</b> and the address of the application execution server <b>114</b>, which are both provided as part of the properties of the application objects <b>128</b>, to establish a communications link and initiate a client-server session with the server agent <b>134</b> associated with the server <b>114</b> and application program <b>130</b> (step <b>222</b>). The client agent <b>136</b> passes some or all of the properties of the application objects <b>128</b> to the server agent <b>134</b> along with any necessary default values. Alternatively, the server agent <b>134</b> may have already received some or all of the properties of the application objects <b>128</b> from the web server <b>112</b> prior to contributing to the web page content <b>124</b>, which was subsequently displayed in the web page <b>322</b>. If a particular property is not passed to the server agent <b>134</b>, the server agent <b>134</b> may request it from the client agent <b>136</b> if it is a necessary property to which it has no default value (e.g., user ID) or the server agent <b>134</b> may provide its own default value for the property (e.g., execution priority).
[0038] The server agent <b>134</b> uses the properties received from the client agent <b>136</b> to authenticate the client agent <b>136</b> and to execute the desired application program <b>130</b> if it has not previously been started. Once the application program <b>130</b> is executing and the client agent <b>136</b> has been authenticated, the application program <b>130</b> communicates through the server agent <b>130</b> directly with the client agent <b>136</b>, without intervention of the browser <b>122</b> or web server <b>112</b>. The client agent <b>136</b> receives output data from the application program <b>130</b> and displays the output data in the appropriate application-output window <b>326</b> in the web page <b>322</b>. The client agent <b>136</b> also detects input events, such as mouse clicks and keyboard inputs, associated with the application-output window <b>130</b> and forwards any such input events to the application program <b>130</b> via the server agent <b>134</b>. This type of client-server session is repeated for each application program <b>130</b> in the application set <b>126</b> that is selected by the user and thus enables the user to interact with all of the resources in the application set <b>126</b> (step <b>224</b>).
[0039] The data exchanged between the client agent <b>136</b> and server agent <b>134</b> during the client-server session includes not only input events and the graphical output data of the application program <b>130</b>, but also window attribute information (e.g., window position, z-order, size, style, color, etc.). The window attribute information of the application-output windows <b>326</b> is initially specified by the application objects <b>128</b> embedded in the web page <b>322</b>. For example, the application objects <b>128</b> can include an ActiveX control, which specifies and controls the window attributes of the application-output windows <b>326</b> during the client-server session. In one embodiment, the application-output windows <b>326</b> exhibit the same dimensions as the corresponding ActiveX controls.
[0040] The client agent <b>136</b> communicates the initial window attributes of the local application-output windows <b>130</b> to the server agent <b>134</b> along with information relating to the client desktop <b>310</b> (e.g., size, resolution, etc.). The server agent <b>134</b> responds by conforming the size of its server desktop to that of the client desktop <b>310</b> and by conforming the window attributes of local server windows to those of the application-output windows <b>326</b> on the client desktop <b>310</b>. The application-output windows <b>326</b> on the client desktop <b>310</b> and the server windows on the server desktop thus exhibit the same window attributes and display the same graphical output data that is generated by the application <b>130</b>. Note that the server desktop can correspond to either an offscreen surface contained within the server's video memory or to an onscreen surface displayed on a display device coupled to the server <b>114</b>.
[0041] The user of the client device <b>110</b> can move, resize, and/or alter the z-order or other initial window attributes of the application-output windows <b>326</b> during the client-server session, by entering an input event that is detected by the client agent <b>136</b> and then communicated to the server agent <b>134</b>. The server agent <b>134</b> conforms its desktop and/or windows to be consistent with the input event and then transmits updated graphical output data and window attribute information, corresponding to the input event, to the client agent <b>136</b> with instructions to update the application-output windows <b>326</b> so that they match the windows on the server <b>114</b>.
[0042] For example, if the user of the client device <b>110</b> resizes one of the application-output windows <b>326</b> from that originally specified by the application objects <b>128</b> (such as by clicking with the mouse and dragging the border of the application-output window <b>326</b> to the desired location/size), the client agent <b>136</b> detects the input event generated by the mouse action and communicates it to the server agent <b>134</b>, which effects the same resize event in the on or offscreen surfaces of the server <b>114</b>. The server agent <b>134</b> then sends repaint and resize command messages to the client agent <b>136</b> along with updated graphical output data and window attribute information. In response, the client agent <b>136</b> modifies the appropriate application object <b>128</b> affected by the resize event (e.g., the ActiveX control discussed above) so that the corresponding application-output window <b>326</b> is resized and the updated graphical output data is painted within the borders of the application-output window <b>326</b>.
[0043] The invention thus enables the window attributes of the application-output window <b>326</b> to be modified so that the application-output window <b>326</b> can be moved, resized, etc., within the boundaries of the browser window <b>320</b>. With reference to FIG. 4 and by way of nonlimiting example, application-output window B′ <b>410</b> can be resized using the methodology described above to form application-output window B″ <b>420</b>, which overlaps (thus exhibiting a different z-order from) application-output window F <b>430</b>. Alternatively, the application-output window <b>326</b> can be moved or resized to extend beyond or be entirely outside of the browser window <b>320</b>. By way of nonlimiting example and with reference to FIG. 5, application-output window J <b>510</b> lies within the boundaries of the browser window <b>320</b>, while application-output window K <b>520</b> extends beyond the boundaries of the browser window <b>320</b> and application-output window L <b>530</b> is entirely outside the browser window <b>320</b>. Note that the application-output windows can exhibit varying z-orders with respect to other elements in the client desktop <b>310</b>. For example, local window <b>540</b> exhibits a z-order between that of the browser window <b>320</b> and application-output window L <b>530</b>. In this embodiment, the client agent <b>136</b> instructs the operating system of the client device <b>110</b> to draw the desired application-output window <b>326</b> in response to command messages received from the server agent <b>134</b>, without having to first modify the properties of the application objects <b>128</b> embedded in the web page <b>322</b>, which initially established the window attributes of the application-output window <b>326</b>.
[0044] In one embodiment, each input event affecting the application-output window <b>326</b> is transferred to and processed by the server agent <b>114</b>, which then instructs the client agent <b>136</b> to effect corresponding changes in the application-output window <b>326</b>. In another embodiment, one or more input event types (e.g., click and drag mouse actions directed at moving the application-output window <b>326</b> to another grid location on the web page <b>322</b>) are processed entirely by the client agent <b>136</b> and not reported to the server agent <b>134</b>, where the graphical output data displayed within the application-output window <b>326</b> remains unchanged.
[0045] In more detail and with reference to FIG. 6, the client agent <b>136</b> comprises a monitor process <b>610</b>, a command process <b>620</b>, a message receiving process <b>630</b>, and a message transmission process <b>640</b>. In one embodiment, each process <b>610</b>, <b>620</b>, <b>630</b>, <b>640</b> is a separately functioning code segment that operates independently of the other processes. For example, the message receiving process <b>630</b> and the command process <b>620</b> can be implemented as separate threads, which communicate with each other via a named pipe or shared memory. Use of a common data set allows the message receiving process <b>630</b> and the message transmission process <b>640</b> to be synchronized.
[0046] The message receiving process <b>630</b> receives graphical data, window attribute information, and commands from the server agent <b>134</b> via the communications link that provides the connectivity between the client agent <b>136</b> and server agent <b>134</b> during the client-server session. The communications link preferably includes a first virtual channel <b>660</b> and a second virtual channel <b>670</b>. Command, event, and window attribute information is passed between the client agent <b>136</b> and the server agent <b>134</b> via the first virtual channel <b>660</b>, while graphical data corresponding to the graphical contents of the application-output windows <b>326</b> is passed via the second virtual channel <b>670</b>. The message receiving process <b>630</b> informs the command process <b>620</b> of the commands, window attributes, and graphical data received from the server agent <b>134</b> and the command process <b>620</b> further processes this data.
[0047] In one embodiment, the command process <b>620</b> processes the commands received from the server agent <b>134</b> by instructing the client operating system <b>650</b> to form and/or modify affected application-output windows <b>326</b> in accordance with the window attributes specified by the server agent <b>134</b>. The command process <b>620</b> also instructs the client operating system <b>650</b> to display the graphical data provided by the server agent <b>134</b> in the appropriate application-output windows <b>326</b>. In one embodiment, the command process <b>620</b> implements changes to the application-output windows <b>326</b> in the client desktop <b>310</b> by issuing GDI commands. In other embodiments, the command process <b>620</b> issues commands directly to an associated graphics subsystem or via graphics API commands.
[0048] The command process <b>620</b> also instructs the monitor process <b>610</b> to periodically monitor the client desktop <b>310</b> in order to detect changes affecting the application-output windows <b>326</b>. In one embodiment, the monitor process <b>610</b> instructs the client operating system <b>650</b> to return information relating to the client desktop <b>310</b> at predetermined polling intervals. In other embodiments, the monitor process <b>610</b> monitors the message queue maintained by the client operating system <b>650</b> in order to detect changes affecting the application-output windows. The monitor process <b>610</b> communicates some or all of the detected desktop changes to the command process <b>620</b> for further processing.
[0049] In one embodiment, the command process <b>620</b> instructs the message transmission process <b>640</b> to transmit all of the changes detected by the monitor process <b>610</b> to the server agent <b>134</b> via the first virtual channel. In another embodiment, the command process <b>620</b> instructs the message transmission process <b>640</b> to transmit a subset of the detected changes, such as changes which only affect the graphical data and/or window attributes of the application-output windows <b>326</b>. The server agent <b>134</b> receives the detected changes along with any commands from the command process <b>620</b> and any input events made by the user of the client device <b>110</b> that triggered the detected changes. The server agent <b>134</b> then modifies its local desktop to accommodate the detected changes and transmits associated commands, window attributes, and graphical data back to the client's message receiving process <b>630</b>. In this manner, the present invention ensures that desktop elements, such as the application-output windows <b>326</b>, that are common in the client and server desktops remain in lock step.
[0050] The command process <b>620</b> of the client agent <b>136</b> ensures that analogous/common elements in the client and server desktops remain in lock step by maintaining a common window list. The common window list includes the window attribute information for each window in the client desktop <b>310</b> and for each corresponding window in the server desktop. In embodiments, in which a plurality of client agents are executing on the client device <b>110</b>, the command process <b>620</b> of a single client agent <b>136</b> has primary responsibility for maintaining the common window list. If the single client agent <b>136</b> terminates, while other client agents remain in operation, the remaining client agents will elect another primary client agent to maintain the common window list.
[0051] The present invention also enhances the performance of the client-server session by preferably using the techniques described in co-owned, International Patent Publication No. WO 01/92973, which is incorporated herein by reference, to reduce the amount of graphical data transmitted between the client and server agents. In one embodiment, the invention encodes the data into relatively small representations that repeat within the protocol stream transmitted between the client agent <b>136</b> and the server agent <b>134</b>. In this manner, the invention minimizes the size of each discrete data element that must be transmitted and increases the repeatability of the data within the protocol stream so that compression algorithms that operate more efficiently on repetitive encoded data can realize a greater degree of compression efficiency. The invention uses a number of techniques to realize this enhanced compression, including the following: scanning a command queue for later-issued commands which supercede earlier-issued commands; disk-caching techniques that improve compression of data that has been previously encountered during a client-server session; transmission of relative coordinates using quantized regions to avoid sending both endpoints and/or the angle of an associated strip (i.e., series of consecutive pixels exhibiting a common angle); and manipulation of off-screen surfaces to enhance performance during the client-server session. The invention also reduces the frequency of overscroll problems encountered when there is a performance mismatch between a fast server and a relatively slow network or client device.
[0052] Having described certain embodiments of the invention, it will now become apparent to one of skill in the art that other embodiments incorporating the concepts of the invention may be used. Therefore, the invention should not be limited to certain embodiments, but rather should be limited only by the spirit and scope of the following claims.
Contents6
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO2009001221A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP2224337A2 | Cited by | European Patent Office (EPO) | Examiner |
| EP2188714A2 | Cited by | European Patent Office (EPO) | Examiner |
| WO2011061390A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP1986096A1 | Cited by | European Patent Office (EPO) | Search report |
| US9614790B2 | Cited by | United States of America | Applicant |
| US8185581B2 | Cited by | United States of America | Applicant |
| US2008163076A1 | Cited by | United States of America | Pre-grant |
| US9843665B2 | Cited by | United States of America | Search report |
| US2006074880A1 | Cited by | United States of America | Pre-grant |
| US8478817B2 | Cited by | United States of America | Applicant |
| US2012005269A1 | Cited by | United States of America | Pre-grant |
| US2010241669A1 | Cited by | United States of America | Pre-grant |
| US2016041748A1 | Cited by | United States of America | Pre-grant |
| US2011237329A1 | Cited by | United States of America | Pre-grant |
| US10417018B2 | Cited by | United States of America | Applicant |
| US2008034408A1 | Cited by | United States of America | Pre-grant |
| CN103488674A | Cited by | China | Search report |
| US2006136847A1 | Cited by | United States of America | Pre-grant |
| US9032325B2 | Cited by | United States of America | Search report |
| US8780122B2 | Cited by | United States of America | Applicant |
| US9547725B2 | Cited by | United States of America | Search report |
| WO2009001221A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9111325B2 | Cited by | United States of America | Applicant |
| CN104038657A | Cited by | China | Search report |
| US2010131623A1 | Cited by | United States of America | Pre-grant |
| US2005229104A1 | Cited by | United States of America | Pre-grant |
| CN106406999A | Cited by | China | Search report |
| US8046695B2 | Cited by | United States of America | Search report |
| US8465370B2 | Cited by | United States of America | Applicant |
| EP1986096A1 | Cited by | European Patent Office (EPO) | Search report |
| US8756293B2 | Cited by | United States of America | Applicant |
| US2008256451A1 | Cited by | United States of America | Pre-grant |
| US8171172B2 | Cited by | United States of America | Search report |
| CN109189633A | Cited by | China | Search report |
| US8782291B2 | Cited by | United States of America | Applicant |
| US2007239920A1 | Cited by | United States of America | Pre-grant |
| WO2012033677A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9195428B2 | Cited by | United States of America | Applicant |
| US9219579B2 | Cited by | United States of America | Search report |
| US9610498B2 | Cited by | United States of America | Applicant |
| US2004192440A1 | Cited by | United States of America | Pre-grant |
| US2010299187A1 | Cited by | United States of America | Pre-grant |
| US8475281B2 | Cited by | United States of America | Applicant |
| CN103959246A | Cited by | China | Search report |
| US7188315B2 | Cited by | United States of America | Search report |
| US8734259B2 | Cited by | United States of America | Applicant |
| US2011029605A1 | Cited by | United States of America | Pre-grant |
| WO2009001221A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9277000B2 | Cited by | United States of America | Applicant |
| US8245534B2 | Cited by | United States of America | Applicant |
| US9307009B2 | Cited by | United States of America | Search report |
| US2010026692A1 | Cited by | United States of America | Pre-grant |
| US2009006977A1 | Cited by | United States of America | Pre-grant |
| US8775704B2 | Cited by | United States of America | Applicant |
| US2007239921A1 | Cited by | United States of America | Pre-grant |
| WO2014029091A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2011157189A1 | Cited by | United States of America | Pre-grant |
| US2013346992A1 | Cited by | United States of America | Pre-grant |
| US2008261689A1 | Cited by | United States of America | Pre-grant |
| US2003048286A1 | Cited by | United States of America | Pre-grant |
| US7846023B2 | Cited by | United States of America | Applicant |
| US11385775B2 | Cited by | United States of America | Search report |
| US10549191B2 | Cited by | United States of America | Applicant |
| US2013212484A1 | Cited by | United States of America | Pre-grant |
| US9032026B2 | Cited by | United States of America | Applicant |
| US2011237328A1 | Cited by | United States of America | Pre-grant |
| US8423673B2 | Cited by | United States of America | Search report |
| US9036798B2 | Cited by | United States of America | Applicant |
| US7840710B2 | Cited by | United States of America | Search report |
| CN102033745A | Cited by | China | Search report |
| US2011119601A1 | Cited by | United States of America | Pre-grant |
| US2007050502A1 | Cited by | United States of America | Pre-grant |
| CN104965832A | Cited by | China | Search report |
| US2009106662A1 | Cited by | United States of America | Pre-grant |
| US8135000B2 | Cited by | United States of America | Search report |
| US2008013699A1 | Cited by | United States of America | Pre-grant |
| US9253536B2 | Cited by | United States of America | Search report |
| US2012304103A1 | Cited by | United States of America | Pre-grant |
| US8732696B2 | Cited by | United States of America | Search report |
| US8743019B1 | Cited by | United States of America | Applicant |
| US9842532B2 | Cited by | United States of America | Applicant |
| WO2011061390A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US8736617B2 | Cited by | United States of America | Applicant |
| US2004104929A1 | Cited by | United States of America | Pre-grant |
| US7972215B2 | Cited by | United States of America | Applicant |
| US9135091B2 | Cited by | United States of America | Applicant |
| WO2012033677A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2008046969A1 | Cited by | United States of America | Pre-grant |
| US2011210976A1 | Cited by | United States of America | Pre-grant |
| EP2224337A2 | Cited by | European Patent Office (EPO) | Examiner |
| US10460003B2 | Cited by | United States of America | Search report |
| US2006039354A1 | Cited by | United States of America | Pre-grant |
| US2011302274A1 | Cited by | United States of America | Pre-grant |
| CN100407141C | Cited by | China | Search report |
| EP2224338A2 | Cited by | European Patent Office (EPO) | Examiner |
| US2003063119A1 | Cites | United States of America | Pre-grant |
| US4387425A | Cites | United States of America | Pre-grant |
| US4499499A | Cites | United States of America | Pre-grant |
| US4779189A | Cites | United States of America | Pre-grant |
116 members in 22 offices
Priority claims17
| Document | Office | Kind | Date |
|---|---|---|---|
| 55662395 | United States of America | A | |
| 55662395 | United States of America | A | |
| 85597797 | United States of America | A | |
| 85597797 | United States of America | A | |
| 8689898 | United States of America | A | |
| 8689898 | United States of America | A | |
| 24722099 | United States of America | A | |
| 24722099 | United States of America | A | |
| 6846102 | United States of America | A | |
| 08855977 | – | – | – |
| 09086898 | – | – | – |
| 09247220 | – | – | – |
| US19950556623 | – | – | – |
| US19970855977 | – | – | – |
| US19980086898 | – | – | – |
| US19990247220 | – | – | – |
| US20020068461 | – | – | – |
Members116
| Document | Office | Kind | |
|---|---|---|---|
| CA2237333A1 | Canada | A1 | |
| WO9718518A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU7673496A | Australia | A | |
| IS4736A | Iceland | A | |
| NO982153D0 | Norway | D0 | |
| NO982153L | Norway | L | |
| EP0862765A1 | European Patent Office (EPO) | A1 | |
| MX9803769A | Mexico | A | |
| PL326625A1 | Poland | A1 | |
| CA2290433A1 | Canada | A1 | |
| CA2495413A1 | Canada | A1 | |
| WO9852320A2 | World Intellectual Property Organization (WIPO) | A2 | |
| IL124414D0 | Israel | D0 | |
| AU7572498A | Australia | A | |
| WO9852320A3 | World Intellectual Property Organization (WIPO) | A3 | |
| CZ146698A3 | Czechia | A3 | |
| US5941949A | United States of America | A | |
| KR19990067537A | Republic of Korea | A | |
| AU709436B2 | Australia | B2 | |
| US5961586A | United States of America | A | |
| NZ322760A | New Zealand | A | |
| CA2333279A1 | Canada | A1 | |
| WO9963430A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU4312899A | Australia | A | |
| GB9926972D0 | United Kingdom | D0 | |
| JP2000500596A | Japan | A | |
| EP0981884A2 | European Patent Office (EPO) | A2 | |
| GB2341065A | United Kingdom | A | |
| EP1011236A2 | European Patent Office (EPO) | A2 | |
| EP1017202A2 | European Patent Office (EPO) | A2 | |
| US6088515A | United States of America | A | |
| EP1011236A3 | European Patent Office (EPO) | A3 | |
| EP1017202A3 | European Patent Office (EPO) | A3 | |
| HK1025700A1 | Hong Kong, China | A1 | |
| US6157944A | United States of America | A | |
| KR20010012553A | Republic of Korea | A | |
| EP1082653A1 | European Patent Office (EPO) | A1 | |
| IL132873D0 | Israel | D0 | |
| IL132874D0 | Israel | D0 | |
| IL132875D0 | Israel | D0 | |
| KR20010052420A | Republic of Korea | A | |
| HK1032454A1 | Hong Kong, China | A1 | |
| PL181472B1 | Poland | B1 | |
| JP2002502521A | Japan | A | |
| IL124414A | Israel | A | |
| IL139929D0 | Israel | D0 | |
| AU744486B2 | Australia | B2 | |
| US6370552B1 | United States of America | B1 | |
| US6370570B1 | United States of America | B1 | |
| GB2341065B | United Kingdom | B | |
| TR199800884T2 | Türkiye | T2 | |
| US2002057295A1 | United States of America | A1 | |
| JP2002517814A | Japan | A | |
| US2002095478A1 | United States of America | A1 | |
| US6437803B1 | United States of America | B1 | |
| US6438598B1 | United States of America | B1 | |
| RU2188450C2 | Russian Federation | C2 | |
| US2002196279A1 | United States of America | A1 | |
| EP0862765B1 | European Patent Office (EPO) | B1 | |
| AT232320T | Austria | T | |
| ATE232320T1 | Austria | T1 | |
| US2003037148A1 | United States of America | A1 | |
| DE69626129D1 | Germany | D1 | |
| US2003063119A1 | United States of America | A1 | |
| CA2237333C | Canada | C | |
| DK0862765T3 | Denmark | T3 | |
| ES2187682T3 | Spain | T3 | |
| US6581124B1 | United States of America | B1 | |
| EP1324231A2 | European Patent Office (EPO) | A2 | |
| CA2475366A1 | Canada | A1 | |
| WO03067568A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU764767B2 | Australia | B2 | |
| AU2003212953A1 | Australia | A1 | |
| IL132873A | Israel | A | |
| IL132874A | Israel | A | |
| DE69626129T2 | Germany | T2 | |
| KR20040004436A | Republic of Korea | A | |
| US6691157B2 | United States of America | B2 | |
| RU2225027C2 | Russian Federation | C2 | |
| US2004139117A1 | United States of America | A1 | |
| KR20040089600A | Republic of Korea | A | |
| EP1479064A1 | European Patent Office (EPO) | A1 | |
| EP1324231A3 | European Patent Office (EPO) | A3 | |
| KR100481064B1 | Republic of Korea | B1 | |
| JP2005517254A | Japan | A | |
| US6950991B2 | United States of America | B2 | |
| CA2333279C | Canada | C | |
| EP0981884B1 | European Patent Office (EPO) | B1 | |
| DE69832168D1 | Germany | D1 | |
| JP2005339536A | Japan | A | |
| KR100569469B1 | Republic of Korea | B1 | |
| DE69832168T2 | Germany | T2 | |
| KR100534816B1 | Republic of Korea | B1 | |
| ES2252837T3 | Spain | T3 | |
| KR100612565B1 | Republic of Korea | B1 | |
| EP1479064A4 | European Patent Office (EPO) | A4 | |
| JP2006318499A | Japan | A | |
| JP3866768B2 | Japan | B2 | |
| CA2290433C | Canada | C | |
| EP1017202B1 | European Patent Office (EPO) | B1 |
57 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | |
|---|---|
| Correspondence Address Change | |
| Change in Power of Attorney (May Include Associate POA) | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Change in Power of Attorney (May Include Associate POA) | |
| Recordation of Patent Grant Mailed | |
| Patent Issue Date Used in PTA CalculationAllowed | |
| Issue Notification MailedAllowed | |
| Receipt into Pubs | |
| Dispatch to FDC | |
| Application Is Considered Ready for Issue | |
| Receipt into Pubs | |
| Issue Fee Payment Verified | |
| Issue Fee Payment Received | |
| Workflow - File Sent to Contractor | |
| Mail Notice of AllowanceAllowed | |
| Mail Examiner's Amendment | |
| Change in Power of Attorney (May Include Associate POA) | |
| Notice of Allowance Data Verification CompletedAllowed | |
| Case Docketed to Examiner in GAU | |
| Examiner's Amendment Communication | |
| Correspondence Address Change | |
| Date Forwarded to Examiner | |
| Reference capture on IDS | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Response after Non-Final Action | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| IFW TSS Processing by Tech Center Complete | |
| Correspondence Address Change | |
| Correspondence Address Change | |
| Change in Power of Attorney (May Include Associate POA) | |
| Mail-Record Petition Decision of Granted Related to Attorney | |
| Petition Entered | |
| Reference capture on IDS | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Case Docketed to Examiner in GAU | |
| Transfer Inquiry to GAU | |
| Application Dispatched from OIPE | |
| Application Is Now Complete | |
| Reference capture on IDS | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Payment of additional filing fee/Preexam | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the Applic | |
| Notice Mailed--Application Incomplete--Filing Date Assigned | |
| IFW Scan & PACR Auto Security Review | |
| Initial Exam Team nn |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Fee paymentFPAY | FPAY | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedureFEPP | FEPP | |
| Fee payment procedureFEPP | FEPP | |
| Fee payment procedureFEPP | FEPP | |
| Fee payment procedureFEPP | FEPP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedSTCF | STCF | |
| Information on status: patent grantGrantedSTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2002196279
- Publication, EPODOC
- US2002196279
- Application
- 10068461
- Application, DOCDB
- 6846102
- Application, EPODOC
- US20020068461
Titles
- English
- Interacting with software applications displayed in a web page
Patent term adjustment
- A delay
- +564 daysthe office missed an examination deadline
- Applicant delay
- −51 days
- Net adjustment
- 513 days
Classification
- CPC, 12
- H04L69/16
- G06F9/541
- G06F9/542
- G09G5/14
- H04L61/35
- H04L69/161
- H04L69/165
- G06F9/452
- H04L61/00
- H04L69/08
- H04L9/40
- H04L67/01
- IPC, 6
- G06F9 44
- G06F9 46
- G06F9 50
- G09G5 14
- H04L29 06
- H04L29 12
- USPC, 2
- 715749000
- 709203000