This patent application is related to the following patent applications, each of which are commonly assigned to assignee of this application, and hereby incorporated by reference:
U.S. patent application Ser. No. 09/574,165, titled “Postback Input Handling by Server-Side Control Objects”, filed on May 18, 2000, commonly assigned to the assignee hereof, and hereby incorporated by reference;
Japanese Patent Application no. 2001/129925, titled “Postback Input Handling by Server-Side Control Objects”, filed on Apr. 26, 2001, and commonly assigned to the assignee hereof; and
European Patent Application no. 01/111678.7, titled “Postback Input Handling by Server-Side Control Objects”, filed on May 14, 2001, and commonly assigned to the assignee hereof.
Systems and methods of the invention relates to server-based Web applications.
Creating Web applications that respond to user requests quickly, even when a large number of requests are being processed on the server, has been a challenge for developers and IT personnel since the Internet began. Response time is the amount of time that elapses from when a client request is communicated to a server, and when the response from the server becomes interactive at the client. When an application takes a long time to respond, the user may become impatient and go to another Web site. Ideally, the client experience should appear to be that of a continuously executing process. Unfortunately, most Web Form events require communicating a substantial amount of information to the server for processing, and communicating a substantial amount of information in a response back to the client (a round trip). Such round trips often result in long response times, causing unresponsive applications and distracting user experiences.
This amount of time that it takes to perform a round trip is exacerbated because events raised by server-based Web application server controls work somewhat differently than events in traditional client forms or in client-based applications. The difference arises primarily because of the separation of the event itself from where the event is handled. In client-based applications, events are raised and handled on the client. In server-based Web Forms pages, on the other hand, events associated with server controls are raised on the client but handled on a Web server.
For events raised on the client (typically click events), the Web Forms control event model requires that the Web Form and the event information be captured on the client, encapsulated in an event message, and sending the event message to the server via a full HTTP post of the page. The page framework on the server must interpret the post to determine what event occurred and then call the appropriate server method(s) to handle the event. Once the event has been processed, the server generates a completely new page with the server controls associated with the client-side user interface (UI) elements by rendering the HTML data for each of the client-side UI elements. The server then performs a full page postback of the newly rendered page—an entire new Web Form—to the client in an HTTP response. This means that for each action that requires processing, the entire form must be submitted to the server, the entire form must be recreated, processed, and returned in a full page postback to the client. This sequence of events is called a round trip.
For example, imagine a business scenario: A user enters an order on a Web Forms page (“page”). Responsive to order entry, and to confirm sufficient inventory for the order, an application posts the page to the server at an appropriate point in the user's order-entry process. The server receives the post, identifies resources of the page, generates a control object hierarchy for the identified resources, examines the order, performs an inventory lookup, perhaps takes some action defined in business logic (such as modifying the page to indicate an error), and based on the results of the order entry in view of the business logic, renders the resulting page HTML for client-side presentation. At this point, the server returns the page in a full page postback to the browser for the user to continue.
In view of the above, full Web page submittals and full Web page postbacks for a server to handle a client application event are substantially problematic in that they typically result in a non-responsive application, which in turn generally leads to a poor user experience. To make matters worse, each full page post to a Web server to handle a client-side event may add an extraneous step to an application's page navigation history. For example, consider that a full page post by a Web browser application to a Web server creates an irrelevant step in the page's navigation history. In this scenario, if a user selects the browser's “back” navigation button, the browser will present a previous rendering of the same page, which is not the “real” previous page. As can be appreciated, generating such an extraneous navigation step in a page's navigation history responsive to a full page post is a substantial waste of processing power, resources, time, and can be confusing and frustrating to a user of the application. Accordingly, systems and methods to facilitate the appearance of a continuously executing process to a user when processing Web page events that do not generate extraneous page navigation steps, would be welcomed.
Systems and methods for client-side callbacks to server events are described. In one aspect, a Web server receives a message indicating a client-side event. The client-side event is associated with a specific component of a client resource. The specific component is one of multiple static components of the client resource. A server-side component generates a response to the message. The server-side component implements at least a subset of logic of the specific component. Server-side logic corresponding to other ones of the static components that are different than the specific component is not used to generate the response.
In the figures, the left-most digit of a component reference number identifies the particular figure in which the component first appears.
Overview
The following systems and methods for client-side callbacks to server events provide a framework to facilitate the appearance of a continuously executing process to a user when processing Web Forms events. More particularly, the framework provides a mechanism by which Web page code (Web Form(s)) in a client device or browser can invoke server-side code in a Web site and handle the server returned result in a client-side callback method. This framework for raising and handling events does not require that the client submit the full page that corresponds to the event to the server. Rather, only an event and a set of targeted server-side controls for handling the event and generating a response are identified in the client request for the server to handle a client-side event—although, as described below, other information can be included in the request as well.
Responsive to receiving a client-side event handling request, the server executes—through a server-side event—only enough of the page's lifecycle to process the event. This means that the entire page is not pre-rendered and rendered in response to the client-side event request. Only the one or more server-side controls identified in the client-side event handle the request, and any other controls (e.g., children controls) specified by the one or more server-side controls, will respond to the event and communicate any data back to the client. The content and data format of the data generated in response to the client-side event is completely a function of the design of the server-side control(s) used to process the event at the server.
These techniques for processing a client-side event allow the server to more efficiently process Web Forms events, for example, as compared to conventional techniques that always execute full post-back page lifecycles, including pre-rendering and rendering operations for all page controls. Not only does this reduce the amount of time that the server needs to process an event message, but this approach also means that the page does not need to be fully refreshed on the client, allowing a user to continue to interact with other controls on a page that are not being updated responsive to the client-side event. Additionally, since a client-side event involving a client-side control does not result in a full post-back of a page, irrelevant steps in the corresponding page's navigation history are not generated. Each of these behaviors preserve a quality user experience on the client by providing the user with a less distracting and more responsive Web application experience.
These and other aspects of the systems and methods for client-side callbacks to server events are now described in greater detail.
An Exemplary System
Turning to the drawings, wherein like reference numerals refer to like elements, the systems and methods for client-side callbacks to server events are described and shown as being implemented in a suitable computing environment. Although not required, the invention is described in the general context of computer-executable instructions (program modules) being executed by a personal computer. Program modules generally include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. While the systems and methods are described in the foregoing context, acts and operations described hereinafter may also be implemented in hardware.
Web server 102 creates one or more server-side controls 108 providing server-side processing of client-side callback requests 110 (hereinafter often referred to simply as “request(s) 110”) from client computing device 106. Server-side control(s) 108 provide visual elements (e.g., HTML and static text) and program logic for one or more Web Form(s) presented at client 106. The visual elements logically correspond to client-side user interface (UI) elements 112. For instance, server-side control(s) 108 generate authoring language codes, or markup language, for use by a Web application 114 (e.g., a Web browser) executing on client 106 to display and process client-side UI elements 112, for example, as a Web page.
With respect to program logic provided by server-side control(s) 108, code behind class files for client-side user interface (UI) elements 112 is selectively executed at Web server 102 whenever a corresponding Web Forms page is requested by client 106. Moreover, in this implementation, server-side control(s) 108 capable of handling client-side events inject callback script 116 onto a persisted form for respective visual elements at the client 106. Callback script 116 acts as an intermediary between client-side generated events associated with client-side UI elements 112 and server-side events created at Web server 102 to process client-side events. Callback script 116 is injected/rendered to client 106 so that client-side event(s) to retrieve data from Web server 102 can be generated without causing an entire Web page to post back from Web server 102. Only a server-side control 108 designed to process client-side callback events implement callback script 116. For purposes of illustration, callback script 116 which has been rendered to client 106 logically corresponds to client-side callback script 118 at client 106.
Client-side callback script 118, responsive to a client-side event (e.g., a click or select event on a static or visual element presented by Web application 112 to a user), interfaces with callback manager module 120 to generate out-of band request 110. For purposes of discussion, an out-of-band request is one that does not result in a full page postback from Web server 102. Client-side callback request 110 identifies the client-side event and the control(s) (i.e., server-side control(s) 108) targeted to handle the client-side event. As described below, a control configured to handle a client-side event implements a RaiseCallbackEvent application programming interface (API). Request 110 may include additional information generated by client-side UI elements 112 associated with the client-side event and/or the Web application 114 responsive to the client-side callback event. In one implementation, request 120 is an HTTP request to a Universal resource Identifier (URI). In this implementation, Web server 102 provides callback manager 120 to client 106, for example, during an initial rendering of a page that is based on a server control 108 that handles client-based callback events.
As described below, Web server 102 will process the client-side callback event associated with request 120 by communicating encapsulated information to the server-side control(s) 108 identified by request 120 (e.g., see the GetCallBackEventReference “Control” parameter). The identified control(s) generate data to process the indicated event and respectively communicate the data back to callback manager 120 via a response 128. Callback manager 120, responsive to receiving response 128, parses the data (response data 126) in response 128 to generate parsed response data 130. Callback manager 120 passes parsed response data 130 to the specific client-side callback handler 122 that was specified by the Web application 114 with the GetCallbackEventReference method.
During rendering of a page, each server-side control 108 that handles a client-side callback event renders code (e.g., script) for execution at the client 106. The code includes a call to Page.GetCallbackEventReference( . . . ) to obtain a name of a client-side method to invoke a corresponding client-side callback event. The client-side method is implemented in the callback manager module 120 and provides both the functionality to package a callback request 110 to the server 102 and parse a callback response 128 from the server 102.
GetCallbackEventReference will return a string which when treated as script on the client initiates a client callback. In this implementation, the GetCallbackEventReference has the following parameter overloads, each of which is designed to hook up the events in a different respect: Tables 2, 3, and 4 provide exemplary overload implementations of the GetCallbackEventReference API.
The clientCallback parameter specifies the name of the client-side callback handler 122 which will receive the result of a successful server-side event. In this implementation, the client-side callback handler 122 has the following signature, wherein function name “MyCallback” is an arbitrary name:
In this implementation, a server-side control 108 (component) capable of handling callback events is invoked via an ICallBackEventHandler interface. This interface has a single RaiseCallbackEvent method. The RaiseCallbackEvent method may accept an optional argument that contains information relevant to processing the event.
The RaiseCallbackEvent method returns a string of data that is passed back by callback manager module 120, and from callback manager 120 to the previously specified client-side callback handler 122 (see, the GetCallbackEventReference API).
In view of the above APIs, Web server 102 responsive to receiving a request 110, raises a server-side event by invoking one or more corresponding RaiseCallbackEvent methods. To this end, Web server 102 resolves the URI of request 110 and invokes an appropriate page handler 124. For example, if the URI specifies a dynamic content resource, e.g., an Active Server Page+(ASP.NET) resource, page handler 124 accesses the dynamic content resource by instantiating the specified page/Web Forms along with the page's hierarchy of server-side control(s) 108. The page handler 124 execute only enough of the page's lifecycle events to handle/process the client-side event. Exemplary such page lifecycle events include page initialization, loading, and invocation of respective server-side control(s) 108 configured to manage the client-side event by invoking one or more corresponding RaiseCallbackEvent methods. As indicated, the respective server-side controls are specified by request 110. The invoked server-side control(s) 108 generate response data 126. Thus, response data 126 is generated only by select ones of the server-side control(s) 108 (and possibly children of these select ones or other server-side controls invoked by one or more of the select ones) that were specified in request 110.
For instance, a hierarchy of server-side control(s) 108 associated to a server-side control 108 specified in request 110 may cooperate in processing response data 126. Although response data 126 can include markup language for one or more UI elements corresponding to server-side control(s) 108 that implement logic of the page, response data 126 can be any type of data in any type of data format, the type of data and data format being a function of respective design of the server-side control(s) 108 that generated response data 126. For example, in one implementation, a server-side control 108 generates response data 126 for updating a text string in a dialog box.
Page handler 124 packages response data into response 128, which in one implementation is an HTTP request, and communicates response 128 back to callback manager 120. Each server-side control 108 can generate response data 126, which can be packaged by page handler module 124. Callback manager 120 can un-package the response data 126 and call the appropriate callback handlers 122. As indicated above, responsive to receiving response 128, callback manager 120 parses response data 126 encapsulated in response 128 to generate parsed response data 130. Callback manager 120 passes parsed response data 130 to the specific client-side callback handler 122 that was specified by the particular server-side controls 108 that generated the response data 126 with the GetCallbackEventReference method.
An Exemplary Procedure
At block 204, Web server 102, and more particularly a page handler module 124, identifies one or more specific server-side components 108 to process the client-side event specified by request 110. As indicated above, the one or more specific server-side components will be components logically corresponding to the specific component at client 106 responsible for firing the event. To facilitate identification of these corresponding components, request 110 identifies that targeted one or more specific server-side components 108. At block 206, page handle or 124 communicates information from request 110 to the one or more identified server-side controls 108—this communication is a server-side event. The communicated information corresponds to the client-side event.
At block 208, and responsive to receiving the information from page handler 124, respective ones of the identified server-side controls 108 process the client-side event to generate a set of response data 126. At block 210, respective ones of the identified server-side controls 108 communicate the response data 126 via response(s) 128 to a callback manager module 120 executing at client 106. The callback manager 120 is configured to parse response(s) 128 and forward resulting parsed response data 130 to respective client-side callback event handlers 122. The client-side callback event handlers were specified by the respective ones of the identified server-side controls 108 during an initial rendering of logically corresponding client-side user interface elements 112 for presentation at client 106.
At block 304, client device 106 receives a response 128 that includes response data 126 associated with processing of the client-side event. The response 128 was communicated to client 106 from Web server 102. In one implementation, the response is received by a callback manager module 120. At block 306, the callback manager module 120 parses response data 126 in the response 128 to generate parsed response data 130. At block 308, the callback manager module 120 forwards the parsed response data 130 to a client-side callback handler 122. Logic for specifying and hooking into the client-side callback handler 122 by the callback manager 120 was specified prior to the callback-event by the one or more components of the targeted subset of server-side logic.
An Exemplary Operating Environment
The methods and systems described herein are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, multiprocessor systems, microprocessor-based systems, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and so on. Compact or subset versions of the framework may also be implemented in clients of limited resources, such as handheld computers, or other computing devices. The invention is practiced in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
With reference to
A computer 410 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 410 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 410.
Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example and not limitation, communication media includes wired media such as a wired network or a direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
System memory 430 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 431 and random access memory (RAM) 432. A basic input/output system 433 (BIOS), containing the basic routines that help to transfer information between elements within computer 410, such as during start-up, is typically stored in ROM 431. RAM 432 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 420. By way of example and not limitation,
The computer 410 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 410 through input devices such as a keyboard 462 and pointing device 461, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 420 through a user input interface 460 that is coupled to the system bus 421, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
A monitor 491 or other type of display device is also connected to the system bus 421 via an interface, such as a video interface 490. In addition to the monitor, computers may also include other peripheral output devices such as speakers 497 and printer 496, which may be connected through an output peripheral interface 495. The computer 410 may also include an input peripheral interface 494.
The computer 410 operates in a networked environment using logical connections to one or more remote computers, such as a remote computer 480. The remote computer 480 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and as a function of its particular implementation, may include many or all of the elements described above relative to the computer 410, although only a memory storage device 481 has been illustrated in
When used in a LAN networking environment, the computer 410 is connected to the LAN 471 through a network interface or adapter 470. When used in a WAN networking environment, the computer 410 typically includes a modem 472 or other means for establishing communications over the WAN 473, such as the Internet. The modem 472, which may be internal or external, may be connected to the system bus 421 via the user input interface 460, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 410, or portions thereof, may be stored in the remote memory storage device. By way of example and not limitation,
Referring to
Although the systems and methods for client-side callbacks to server events have been described in language specific to structural features and/or methodological operations or actions, it is understood that the implementations defined in the appended claims are not necessarily limited to the specific features or actions described. Accordingly, the specific features and actions are disclosed as exemplary forms of implementing the claimed subject matter.
Number | Name | Date | Kind |
---|---|---|---|
3937925 | Boothroyd | Feb 1976 | A |
3956615 | Anderson et al. | May 1976 | A |
4186871 | Anderson et al. | Feb 1980 | A |
4807154 | Scully et al. | Feb 1989 | A |
4847785 | Stephens | Jul 1989 | A |
4949300 | Christenson et al. | Aug 1990 | A |
4979148 | Bush et al. | Dec 1990 | A |
5093778 | Favor et al. | Mar 1992 | A |
5299315 | Chin et al. | Mar 1994 | A |
5339424 | Fushimi | Aug 1994 | A |
5349657 | Lee | Sep 1994 | A |
5375242 | Kumar et al. | Dec 1994 | A |
5388156 | Blackledge, Jr. et al. | Feb 1995 | A |
5434992 | Mattson | Jul 1995 | A |
5465332 | Deloye et al. | Nov 1995 | A |
5471318 | Ahuja et al. | Nov 1995 | A |
5517655 | Collins et al. | May 1996 | A |
5548340 | Bertram | Aug 1996 | A |
5550560 | Kanada et al. | Aug 1996 | A |
5577253 | Blickstein | Nov 1996 | A |
5604908 | Mortson | Feb 1997 | A |
5608890 | Berger et al. | Mar 1997 | A |
5613117 | Davidson et al. | Mar 1997 | A |
5638176 | Hobbs et al. | Jun 1997 | A |
5640449 | Worley et al. | Jun 1997 | A |
5649131 | Ackerman et al. | Jul 1997 | A |
5659753 | Murphy et al. | Aug 1997 | A |
5664228 | Mital | Sep 1997 | A |
5675520 | Pitt, III et al. | Oct 1997 | A |
5689703 | Atkinson et al. | Nov 1997 | A |
5706505 | Fraley et al. | Jan 1998 | A |
5727159 | Kikinis | Mar 1998 | A |
5732256 | Smith | Mar 1998 | A |
5732267 | Smith | Mar 1998 | A |
5745103 | Smith | Apr 1998 | A |
5748890 | Goldberg et al. | May 1998 | A |
5754774 | Bittinger et al. | May 1998 | A |
5764235 | Hunt et al. | Jun 1998 | A |
5764236 | Tanaka | Jun 1998 | A |
5764873 | Magid et al. | Jun 1998 | A |
5774670 | Montulli | Jun 1998 | A |
5793982 | Shrader et al. | Aug 1998 | A |
5802600 | Smith et al. | Sep 1998 | A |
5812996 | Rubin et al. | Sep 1998 | A |
5835724 | Smith | Nov 1998 | A |
5855020 | Kirsch | Dec 1998 | A |
5873097 | Harris et al. | Feb 1999 | A |
5878141 | Daly et al. | Mar 1999 | A |
5878282 | Mital | Mar 1999 | A |
5889992 | Koerber | Mar 1999 | A |
5892937 | Caccavale | Apr 1999 | A |
5897622 | Blinn | Apr 1999 | A |
5897644 | Nielsen | Apr 1999 | A |
5911145 | Arora et al. | Jun 1999 | A |
5918007 | Blackledge, Jr. et al. | Jun 1999 | A |
5923882 | Abrams et al. | Jul 1999 | A |
5935207 | Logue et al. | Aug 1999 | A |
5937409 | Wetherbee | Aug 1999 | A |
5940075 | Mutschler, III | Aug 1999 | A |
5940847 | Fein et al. | Aug 1999 | A |
5953524 | Meng et al. | Sep 1999 | A |
5956489 | San Andres et al. | Sep 1999 | A |
5961601 | Iyengar | Oct 1999 | A |
5963952 | Smith | Oct 1999 | A |
5974430 | Mutschler, III et al. | Oct 1999 | A |
5983227 | Nazem et al. | Nov 1999 | A |
5987242 | Bentley et al. | Nov 1999 | A |
5987247 | Lau | Nov 1999 | A |
5991802 | Allard et al. | Nov 1999 | A |
5995753 | Walker | Nov 1999 | A |
6006230 | Ludwug et al. | Dec 1999 | A |
6014637 | Fell et al. | Jan 2000 | A |
6014666 | Helland et al. | Jan 2000 | A |
6023714 | Hill et al. | Feb 2000 | A |
6032207 | Wilson | Feb 2000 | A |
6038551 | Barlow et al. | Mar 2000 | A |
6058455 | Islam et al. | May 2000 | A |
6059913 | Martin et al. | May 2000 | A |
6061690 | Nori et al. | May 2000 | A |
6067413 | Gustafsson et al. | May 2000 | A |
6067578 | Zimmerman et al. | May 2000 | A |
6072664 | Aoyagi et al. | Jun 2000 | A |
6076108 | Courts et al. | Jun 2000 | A |
6101502 | Heubner et al. | Aug 2000 | A |
6101607 | Bachand et al. | Aug 2000 | A |
6108717 | Kimura | Aug 2000 | A |
6115744 | Robins | Sep 2000 | A |
6119078 | Kobayakawa et al. | Sep 2000 | A |
6119115 | Barr | Sep 2000 | A |
6119155 | Rossmann et al. | Sep 2000 | A |
6121968 | Arcuri et al. | Sep 2000 | A |
6121970 | Guedalia | Sep 2000 | A |
6122637 | Yohe et al. | Sep 2000 | A |
6128623 | Mattis et al. | Oct 2000 | A |
6138150 | Nichols et al. | Oct 2000 | A |
6138171 | Walker | Oct 2000 | A |
6151624 | Teare et al. | Nov 2000 | A |
6167438 | Yates et al. | Dec 2000 | A |
6167441 | Himmel | Dec 2000 | A |
6167524 | Goodnow et al. | Dec 2000 | A |
6173316 | De Boor et al. | Jan 2001 | B1 |
6178461 | Chan | Jan 2001 | B1 |
6185608 | Hon et al. | Feb 2001 | B1 |
6185625 | Tso et al. | Feb 2001 | B1 |
6202199 | Wydogny et al. | Mar 2001 | B1 |
6203220 | Takenoshita et al. | Mar 2001 | B1 |
6205480 | Broadhurst et al. | Mar 2001 | B1 |
6212192 | Mirashrafi et al. | Apr 2001 | B1 |
6218958 | Eichstaedt et al. | Apr 2001 | B1 |
6223217 | Pettus | Apr 2001 | B1 |
6230160 | Chan | May 2001 | B1 |
6230313 | Callahan et al. | May 2001 | B1 |
6246403 | Tomm | Jun 2001 | B1 |
6246422 | Emberling et al. | Jun 2001 | B1 |
6247044 | Gosling et al. | Jun 2001 | B1 |
6249844 | Schloss et al. | Jun 2001 | B1 |
6253228 | Ferris et al. | Jun 2001 | B1 |
6253234 | Hunt et al. | Jun 2001 | B1 |
6279151 | Breslau et al. | Aug 2001 | B1 |
6282670 | Rezaul Islam et al. | Aug 2001 | B1 |
6286133 | Hopkins | Sep 2001 | B1 |
6297819 | Furst | Oct 2001 | B1 |
6300947 | Kanevsky | Oct 2001 | B1 |
6311215 | Bakshi et al. | Oct 2001 | B1 |
6326957 | Nathan et al. | Dec 2001 | B1 |
6334126 | Nagatomo et al. | Dec 2001 | B1 |
6334157 | Oppermann et al. | Dec 2001 | B1 |
6336161 | Watts | Jan 2002 | B1 |
6343148 | Nagy | Jan 2002 | B2 |
6345279 | Li et al. | Feb 2002 | B1 |
6351767 | Batchelder et al. | Feb 2002 | B1 |
6353447 | Truluck et al. | Mar 2002 | B1 |
6353452 | Hamada et al. | Mar 2002 | B1 |
6354477 | Trummer | Mar 2002 | B1 |
6356283 | Guedalia | Mar 2002 | B1 |
6363352 | Dailey et al. | Mar 2002 | B1 |
6370561 | Allard et al. | Apr 2002 | B1 |
6370682 | Eckardt et al. | Apr 2002 | B1 |
6373841 | Goh et al. | Apr 2002 | B1 |
6381735 | Hunt | Apr 2002 | B1 |
6397253 | Quinlan et al. | May 2002 | B1 |
6401099 | Koppulu et al. | Jun 2002 | B1 |
6401132 | Bellwood et al. | Jun 2002 | B1 |
6405241 | Gosling et al. | Jun 2002 | B2 |
6412008 | Fields et al. | Jun 2002 | B1 |
6421717 | Kloba et al. | Jul 2002 | B1 |
6421733 | Tso et al. | Jul 2002 | B1 |
6424981 | Isaac et al. | Jul 2002 | B1 |
6426761 | Kanevsky et al. | Jul 2002 | B1 |
6430575 | Dourish et al. | Aug 2002 | B1 |
6438576 | Huang et al. | Aug 2002 | B1 |
6457030 | Adams et al. | Sep 2002 | B1 |
6457172 | Carmichael et al. | Sep 2002 | B1 |
6460071 | Hoffman | Oct 2002 | B1 |
6460141 | Olden | Oct 2002 | B1 |
6463442 | Bent et al. | Oct 2002 | B1 |
6466203 | Van Ee | Oct 2002 | B2 |
6470381 | De Boor et al. | Oct 2002 | B2 |
6473609 | Schwartz et al. | Oct 2002 | B1 |
6480894 | Courts et al. | Nov 2002 | B1 |
6487665 | Andrews et al. | Nov 2002 | B1 |
6496692 | Shanahan | Dec 2002 | B1 |
6505238 | Tran | Jan 2003 | B1 |
6509913 | Martin et al. | Jan 2003 | B2 |
6514408 | Smith et al. | Feb 2003 | B1 |
6523027 | Underwood | Feb 2003 | B1 |
6535896 | Britton et al. | Mar 2003 | B2 |
6539421 | Appelman et al. | Mar 2003 | B1 |
6539501 | Edwards | Mar 2003 | B1 |
6542908 | Ims | Apr 2003 | B1 |
6542967 | Major | Apr 2003 | B1 |
6546473 | Cherkasova et al. | Apr 2003 | B2 |
6546516 | Wright et al. | Apr 2003 | B1 |
6556217 | Makipaa et al. | Apr 2003 | B1 |
6557038 | Becker et al. | Apr 2003 | B1 |
6560598 | Delo et al. | May 2003 | B2 |
6560618 | Ims | May 2003 | B1 |
6560639 | Dan et al. | May 2003 | B1 |
6560699 | Konkle | May 2003 | B1 |
6563517 | Bhagwat et al. | May 2003 | B1 |
6563913 | Kaghazian | May 2003 | B1 |
6564251 | Katariya et al. | May 2003 | B2 |
6591272 | Williams | Jul 2003 | B1 |
6593944 | Nicolas et al. | Jul 2003 | B1 |
6601233 | Underwood | Jul 2003 | B1 |
6606418 | Mitchell et al. | Aug 2003 | B2 |
6609128 | Underwood | Aug 2003 | B1 |
6610105 | Martin et al. | Aug 2003 | B1 |
6622168 | Datta | Sep 2003 | B1 |
6622216 | Lin | Sep 2003 | B1 |
6633416 | Benson | Oct 2003 | B1 |
6643712 | Shaw et al. | Nov 2003 | B1 |
6678518 | Eerola | Jan 2004 | B2 |
6687735 | Logston et al. | Feb 2004 | B1 |
6697825 | Underwood et al. | Feb 2004 | B1 |
6704024 | Robotham et al. | Mar 2004 | B2 |
6704728 | Chang et al. | Mar 2004 | B1 |
6714794 | O'Carroll | Mar 2004 | B1 |
6725219 | Nelson et al. | Apr 2004 | B2 |
6728421 | Kokemohr | Apr 2004 | B2 |
6732364 | Bhaskaran et al. | May 2004 | B1 |
6738968 | Bosworth | May 2004 | B1 |
6757708 | Craig et al. | Jun 2004 | B1 |
6757899 | Zhdankin et al. | Jun 2004 | B2 |
6757900 | Burd et al. | Jun 2004 | B1 |
6772261 | D'Antonio et al. | Aug 2004 | B1 |
6772408 | Velonis et al. | Aug 2004 | B1 |
6782403 | Kino et al. | Aug 2004 | B1 |
6789105 | Ludwig et al. | Sep 2004 | B2 |
6792575 | Samaniego et al. | Sep 2004 | B1 |
6792605 | Roberts et al. | Sep 2004 | B1 |
6792607 | Burd et al. | Sep 2004 | B1 |
6826597 | Lonnroth et al. | Nov 2004 | B1 |
6832263 | Polizzi et al. | Dec 2004 | B2 |
6836883 | Abrams | Dec 2004 | B1 |
6847333 | Bokhour | Jan 2005 | B2 |
6886013 | Beranek | Apr 2005 | B1 |
6892226 | Tso et al. | May 2005 | B1 |
6901437 | Li | May 2005 | B1 |
6904600 | James et al. | Jun 2005 | B1 |
6915307 | Mattis et al. | Jul 2005 | B1 |
6915454 | Moore et al. | Jul 2005 | B1 |
6918107 | Lucas et al. | Jul 2005 | B2 |
6920480 | Mitchell et al. | Jul 2005 | B2 |
6922827 | Vasilik et al. | Jul 2005 | B2 |
6928488 | de Jong et al. | Aug 2005 | B1 |
6944797 | Guthrie et al. | Sep 2005 | B1 |
6948174 | Chiang et al. | Sep 2005 | B2 |
6950875 | Slaughter et al. | Sep 2005 | B1 |
6954751 | Christfort et al. | Oct 2005 | B2 |
6954854 | Miura et al. | Oct 2005 | B1 |
6961750 | Burd et al. | Nov 2005 | B1 |
6961754 | Christopoulos et al. | Nov 2005 | B2 |
6961776 | Buckingham et al. | Nov 2005 | B1 |
6964009 | Samaniego et al. | Nov 2005 | B2 |
6970935 | Maes | Nov 2005 | B1 |
6990653 | Burd et al. | Jan 2006 | B1 |
7013340 | Burd et al. | Mar 2006 | B1 |
7016963 | Judd et al. | Mar 2006 | B1 |
7028312 | Merrick et al. | Apr 2006 | B1 |
7076786 | Burd et al. | Jul 2006 | B2 |
7099870 | Hsu et al. | Aug 2006 | B2 |
7117504 | Smith et al. | Oct 2006 | B2 |
7151966 | Baier et al. | Dec 2006 | B1 |
7159007 | Stawikowski | Jan 2007 | B2 |
7162723 | Guthrie et al. | Jan 2007 | B2 |
7171443 | Tiemann et al. | Jan 2007 | B2 |
7171454 | Nguyen | Jan 2007 | B2 |
7181731 | Pace et al. | Feb 2007 | B2 |
7188112 | Lindquist et al. | Mar 2007 | B1 |
7188155 | Flurry et al. | Mar 2007 | B2 |
7216294 | Gibbs et al. | May 2007 | B2 |
7451352 | Moore et al. | Nov 2008 | B1 |
7493397 | Guthrie et al. | Feb 2009 | B1 |
7594001 | Ebbo et al. | Sep 2009 | B1 |
20010013070 | Sasaki | Aug 2001 | A1 |
20010027474 | Nachman et al. | Oct 2001 | A1 |
20010037404 | Hafsteinsson et al. | Nov 2001 | A1 |
20010047385 | Tuatini | Nov 2001 | A1 |
20010054020 | Barth et al. | Dec 2001 | A1 |
20020004815 | Muhlestein et al. | Jan 2002 | A1 |
20020008703 | Merrill et al. | Jan 2002 | A1 |
20020032701 | Gao et al. | Mar 2002 | A1 |
20020055878 | Burton et al. | May 2002 | A1 |
20020056085 | Fahraeus | May 2002 | A1 |
20020062396 | Kakei et al. | May 2002 | A1 |
20020073163 | Churchill et al. | Jun 2002 | A1 |
20020078101 | Chang et al. | Jun 2002 | A1 |
20020078144 | Lamkin et al. | Jun 2002 | A1 |
20020083171 | Hoogenboom et al. | Jun 2002 | A1 |
20020095445 | alSafadi et al. | Jul 2002 | A1 |
20020107891 | Leamon et al. | Aug 2002 | A1 |
20020108102 | Muhlestein et al. | Aug 2002 | A1 |
20020116534 | Teeple | Aug 2002 | A1 |
20020120677 | Goward et al. | Aug 2002 | A1 |
20020120753 | Levanon et al. | Aug 2002 | A1 |
20020129016 | Christfort et al. | Sep 2002 | A1 |
20020133635 | Schechter et al. | Sep 2002 | A1 |
20020138331 | Hosea et al. | Sep 2002 | A1 |
20020152244 | Dean et al. | Oct 2002 | A1 |
20020161923 | Ndili | Oct 2002 | A1 |
20020161928 | Ndili | Oct 2002 | A1 |
20020161938 | Bonomo et al. | Oct 2002 | A1 |
20020188890 | Shupps et al. | Dec 2002 | A1 |
20020194227 | Day et al. | Dec 2002 | A1 |
20030004998 | Datta | Jan 2003 | A1 |
20030009476 | Fomenko et al. | Jan 2003 | A1 |
20030009519 | Gosling et al. | Jan 2003 | A1 |
20030009567 | Farouk | Jan 2003 | A1 |
20030018827 | Guthrie et al. | Jan 2003 | A1 |
20030025728 | Ebbo et al. | Feb 2003 | A1 |
20030028565 | Landsman et al. | Feb 2003 | A1 |
20030028892 | Gewickey et al. | Feb 2003 | A1 |
20030066056 | Petersen et al. | Apr 2003 | A1 |
20030074634 | Emmelmann | Apr 2003 | A1 |
20030097639 | Niyogi et al. | May 2003 | A1 |
20030110234 | Egli et al. | Jun 2003 | A1 |
20030128235 | Chernow et al. | Jul 2003 | A1 |
20030187952 | Young et al. | Oct 2003 | A1 |
20030204622 | Blizniak et al. | Oct 2003 | A1 |
20030233477 | Ballinger et al. | Dec 2003 | A1 |
20040003112 | Alles et al. | Jan 2004 | A1 |
20040003117 | McCoy et al. | Jan 2004 | A1 |
20040003139 | Cottrille et al. | Jan 2004 | A1 |
20040003248 | Arkhipov | Jan 2004 | A1 |
20040012627 | Zakharia et al. | Jan 2004 | A1 |
20040015879 | Pauw et al. | Jan 2004 | A1 |
20040030740 | Stelting | Feb 2004 | A1 |
20040073873 | Croney et al. | Apr 2004 | A1 |
20040172484 | Hafsteinsson et al. | Sep 2004 | A1 |
20040189693 | Kenig | Sep 2004 | A1 |
20040218045 | Bodnar et al. | Nov 2004 | A1 |
20040230958 | Alaluf | Nov 2004 | A1 |
20050050164 | Burd et al. | Mar 2005 | A1 |
20050091230 | Ebbo et al. | Apr 2005 | A1 |
20050138560 | Lee et al. | Jun 2005 | A1 |
20050162439 | Bates et al. | Jul 2005 | A1 |
20050171967 | Yuknewicz | Aug 2005 | A1 |
20050193097 | Guthrie et al. | Sep 2005 | A1 |
20050203890 | Chen et al. | Sep 2005 | A1 |
20050229186 | Mitchell et al. | Oct 2005 | A1 |
20050251380 | Calvert et al. | Nov 2005 | A1 |
20050256834 | Millington et al. | Nov 2005 | A1 |
20050256924 | Chory et al. | Nov 2005 | A1 |
20050256933 | Millington et al. | Nov 2005 | A1 |
20050257138 | Chory et al. | Nov 2005 | A1 |
20050268292 | Ebbo et al. | Dec 2005 | A1 |
20050278351 | Niyogi et al. | Dec 2005 | A1 |
20060004901 | Burd et al. | Jan 2006 | A1 |
20060004910 | Burd et al. | Jan 2006 | A1 |
20060020883 | Kothari et al. | Jan 2006 | A1 |
20060095576 | Perry et al. | May 2006 | A1 |
20060112336 | Gewickey et al. | May 2006 | A1 |
20060130038 | Claussen et al. | Jun 2006 | A1 |
20070005795 | Gonzalez | Jan 2007 | A1 |
20070033533 | Sull | Feb 2007 | A1 |
20070174845 | Guthrie et al. | Jul 2007 | A1 |
20070214239 | Mechkov et al. | Sep 2007 | A1 |
Number | Date | Country |
---|---|---|
01 11 1679 | Dec 2000 | EP |
1 111 680 | Jun 2001 | EP |
1 156 427 | Nov 2001 | EP |
1 156 428 | Nov 2001 | EP |
1 156 429 | Nov 2001 | EP |
1156415 | Nov 2001 | EP |
1111678.7 | Apr 2002 | EP |
1111680.3 | Apr 2002 | EP |
1111681.1 | Apr 2002 | EP |
1111682.9 | Apr 2002 | EP |
1164473 | Apr 2002 | EP |
1 156 427 | May 2002 | EP |
1 241 593 | Sep 2002 | EP |
1 367 741 | Sep 1974 | GB |
2 339 374 | Jan 2000 | GB |
11-098134 | Apr 1999 | JP |
2002-24079 | Jan 2002 | JP |
2002-41299 | Feb 2002 | JP |
2002-49484 | Feb 2002 | JP |
2002-49585 | Feb 2002 | JP |
WO 9821651 | May 1998 | WO |
WO 9844695 | Oct 1998 | WO |
WO 9934288 | Jul 1999 | WO |
WO 0127783 | Apr 2001 | WO |
WO 0175667 | Oct 2001 | WO |
WO 0221343 | Mar 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20050256933 A1 | Nov 2005 | US |