The present invention relates generally to server-hosted application software, and more particularly to altering display properties of objects in a server-hosted application environment.
Many Internet-capable devices are available to consumers. Specifically, the number of mobile Internet-capable devices is increasing rapidly. Some Internet-capable devices integrate several functions. For example, a personal digital assistant (PDA), or a cellular telephone may be used for Internet access in addition to other shared functions. A PDA or a cell phone usually has a very different Internet capability than a desktop computer, based upon limitations of screen size, connectivity and system resources. For example, a PDA display may not display very large fonts, pictures, movies, or tables of data or long text strings that would be viewable on a full-size display. It is desirable to accommodate as many devices as possible for Internet content to maximize the benefit of web-based services.
Accompanying the increase in mobile devices accessing the Internet is the number of services that provide active content to the user. For example, a mobile device user-interface (UI), such as an ASP.NET page, may be constructed of a hierarchy of server-side controls. When a page is executed, the objects in the page hierarchy are processed to render the content that is transmitted to the client device. During the rendering process, formatting and layout information specified for the controls is transformed into markup tags interpreted by the client device to produce the desired appearance on the display. When specifying web-application UI for mobile devices, the application author often needs to tailor elements of the UI for different devices or browsers. For example, a label identifying a mail message may be long and descriptive on a device with a larger screen, and short on a device with a smaller screen. Generally, device-specific markup requires the developer to utilize conditional constructs or to use stylesheets or includes. However, since such device customizations are relatively minor, they have high maintainability costs for tasks such as interspersing code or managing multiple files for small visual element differences.
Briefly stated, a server-based application includes at least one page file that identifies one or more server objects. The page file describes the particular layout and interaction of the server objects, such as controls, in such a way that content may be transmitted to a device requesting the page file. When designing the page file, a developer may use a declarative statement so that certain properties of the specified controls may be altered based on characteristics of the target device.
In an aspect of the invention, a server receives an instruction to transmit content to a target device (e.g., a PDA, cellphone, other mobile device, personal computer, internet-enabled television, or the like). The instruction may be a request generated externally, such as from the device itself, or it may be an instruction generated locally, such as from an application on the server (e.g., time-based content generation software). The content may be a web page, for example. The instruction to transmit the content may include data identifying the target device. A runtime process provides a response to the request for content based upon characteristics of or the type of target device.
In another aspect of the invention, a server contains a page file describing the layout and properties of the content. Controls in the page file define the size, shape and textual properties of the content. A runtime process renders content for a specific target device based upon the page file. When compiled in a runtime process to create a class, the declarative statements in the page file generate code to set control properties for the content based upon the destination device type. Once a page file is compiled for a specific target device, an instance of the compiled class may be instantiated without further compiles for every request from a device of the requesting type. The present invention provides a system and method for inserting device-specific content into a server application for improved runtime device-specific content delivery.
The present invention now will be described more fully with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific exemplary embodiments by which the invention may be practiced. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout. As will be appreciated by one of skill in the art, the present invention may be embodied as methods or devices. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
Computer storage media may include 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. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical 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 a computing device.
Briefly stated, the present invention is directed towards providing a system and method for optimizing markup in a just-in-time compiling environment for such devices as mobile devices. Among other things, disclosed is a system that employs a declarative construct to provide control overrides for device-specific content rendering. First, an illustrative operating environment and computing server will be described. Next, components used to implement declarative constructs for device-specific content rendering are described. Finally, methods for implementing declarative constructs will be disclosed.
Illustrative Operating Environment
Mobile devices 116A-C, are products such as cellular telephones, pagers, hand-held electronic devices, programmable and non-programmable consumer electronics, personal computers, PDAs, and watches, for example. Although described here in the context of mobile devices, it will be appreciated that the teachings of the invention have equal applicability to many other types of target devices, such as personal computers, internet-enabled television sets, and the like. The focus on mobile devices in this disclosure is for simplicity of discussion only.
Mobile devices 116A-C, may have a variety of capabilities and features. For example, a cell phone may have a numeric keypad and a few lines of monochrome LCD display on which only text may be displayed. A POCKET PC may have a touch sensitive screen, a stylus, and several lines of color LCD display in which both text and graphics may be displayed. A computer may have a keyboard, mouse, speakers, microphone, and a relatively large area on which to display forms.
Network 110 connects mobile Internet component 302 with mobile devices 116A-C. Communication between mobile Internet component 302 and mobile devices 116A-C through network 110 generally includes a request, which happens to be an HTTP request 120 in this instance, and a response, which happens to be an HTTP response 121 in this instance. Generally, the HTTP request 120 includes device identification data that identifies properties of the particular type of target device. For example, if mobile device 116C issues the HTTP request 120, the device identification data may identify mobile device 116C as a WAP-enabled cellular phone. As discussed more fully later, this information may be utilized to provide specific content to the target device. Alternatively, the request 120 may take the form of an instruction generated locally by an application on the server 102 programmed to transmit information to a device without a request having been issued by the device. In one example, an application on the server 102 may be configured to cause content to be delivered to a paging unit periodically without a request issued by the paging unit.
Network 110 may employ any form of computer readable media for communicating information from one electronic device to another. Also, network 110 can include the Internet in addition to local area networks (LANs), wide area networks (WANs), direct connections, such as through a universal serial bus (USB) port, other forms of computer-readable media, or any combination thereof. On an interconnected set of LANs, including those based on differing architectures and protocols, a router acts as a link between LANs, enabling messages to be sent from one to another. Also, communication links within LANs typically include twisted wire pair or coaxial cable, while communication links between networks may utilize analog telephone lines, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links, or other communications links known to those skilled in the art. Furthermore, remote computers and other related electronic devices may be remotely connected to either LANs or WANs via a modem and temporary telephone link. In essence, network 110 includes any communication method by which information may travel from any of mobile devices 116A-C to server 102.
Server 102 is an example of a computing device, and is described in more detail in conjunction with
Software development environment 103 provides a software developer the tools for developing server-based applications, such as server-based application 107, for server 102. Software development environment 103 may be as simple as a text editor used with a file transport protocol (FTP) application for transmitting and receiving programs to and from server 102, or it may include a suite of software development tools such as one or more compilers, debuggers, source code control applications, and team development tools, for example. Such software development tools typically make the software applications easier to develop, debug, and maintain.
Mobile Internet component 302 provides device identification data regarding the capabilities of the target device, such as mobile devices 116A-C. Identification data may be extracted from the HTTP request 120 or may be supplied by a local application. Mobile Internet component 302 utilizes server objects 106 and page file 108 created by a software development environment 103 to build the server-based application 107 and provide optimized content, according to one embodiment of the invention. Mobile Internet component 302 executes processes based on the capabilities of a target device that transform pages, forms, controls, and the like into content suitable for viewing on mobile devices 116A-C.
The server-based application 107, such as may be created by the software development environment 103, typically includes pages (e.g., page file 108) and other server objects 106, such as forms and active controls. The pages and server objects operate in cooperation to execute as an application on the server 102 and provide feedback and an interface to the target device over the network 110.
Server objects 106 include active controls, forms, and other objects (collectively referred to sometimes as “controls”) for performing specialized tasks on behalf of the server-based application 107, such as displaying information to and receiving input from users. Controls encapsulate data that dictates how a control should be rendered for use by a mobile device. Controls are employed to display text and images on a mobile device 116A-C. A control may be used, for example, for collecting address information. The control may display address fields, prompt a user for address and name information, and validate inputted information. Other examples of server objects 106 may be a radio button control for receiving a selection, a free text control for receiving textual input, or an OK or CANCEL button. Another type of server object is a form control. Form controls may be considered as container controls with no visible representation, employed to call render methods of each of the controls contained in the form. Although controls like Form may not have a visible representation, they may (and often do) emit their own markup.
Importantly, each server object 106 has properties that affect how the server object 106 is displayed on a target device 116A-C. For instance, a free text control will likely have a property that defines the font size of the text displayed by the control. Likewise, a button control may have a property that defines the text displayed within the button. It will be appreciated that different mobile devices may have different display characteristics, which may impact how the server objects 106 should be rendered on those different devices. For instance, a cellular phone is likely to have a smaller display screen than a handheld personal computer.
The page file 108 includes information, such as a set of tags that correspond to server controls that govern the information that is presented to the target device. More particularly, the page file 108 includes many instructions that define which server objects 106 are used when rendering the response to the incoming request 120. In addition, and in accordance with the invention, the page file 108 includes additional declarative statements that may set the properties of those server objects 106 in accordance with the particular type of mobile device that issued the request. For instance, the page file 108 may include the following sample pseudo-code to identify which server objects 106 are used to construct the web page being requested, and to alter properties of those server objects 106 based on the type of target device:
In the above pseudo-code, the statement “mobile:Image” identifies the particular server object as an Image control, which is used to display a particular image on the target device. The statement “runat=server” indicates that the control will execute at the server 102. The statement “ImageUrl=‘myimage.gif’” indicates that an ImageUrl property of the Image control is set to “myimage.gif” (the particular image to be displayed). In accordance with the invention, a DeviceSpecific tag is included within the Image tag to indicate that properties of the Image control may be overridden when the page is compiled by the mobile Internet component 302. In the above example, two Choice statements alternatively override the “ImageUrl” property based on whether the target device supports grayscale images or only black and white images. The “Device=” condition specifies a filter against which the target devices are evaluated. Another Choice statement sets the “Text” property of the control to “My Image” independent of the type of target device. Note that a Choice statement without a Device= condition operates as a choice that matches any device (essentially the default choice).
In short, the server-based application 107 includes at least one page file 108 that identifies one or more server objects 106. The page file 108 describes the particular layout and interaction of the server objects 106 in such a way that a page of information may be transmitted to a target device. When designing the page file 108, a developer may use the inventive DeviceSpecific construct, introduced above and detailed below, so that certain properties of the specified controls may be altered based on the particular type of target device. Details of this operation are provided below.
Illustrative Server Environment
Mass memory also stores WWW server 230 and the mobile Internet component 302. WWW server 230 is a web server application that hosts network connections between users of a network and the server 102. Mobile Internet component 302 and WWW server 230 include computer executable instructions which, when executed, generate displays and perform the logical functions. Mass memory may also include additional application programs 250.
As illustrated in
When a device such as mobile device 116A, shown in
Mobile runtime process 312 receives requests, responses, and/or information from network interface 210. In essence, the mobile runtime process 312, in response to a request for a particular page, builds the control hierarchy 304 for a target device from the requested page (e.g., page file 108) in conjunction with the server objects 106. To facilitate that end, the mobile runtime process 312 includes device capabilities component 303 and rendering component 308.
The device capabilities component 303 is programmed to receive information from an incoming page request (HTTP request 120 in
The rendering component 308 is used to create actual response content for transmission to the target device. In other words, once the server-based application has been compiled and content for the requested page has been constructed, the actual content returned is prepared by the rendering component 308 for transmission to the target device.
Network interface 210 transmits and receives bidirectional communication 211. Such communication may be transmitted and received using protocols including hypertext transport protocol (HTTP), transmission control protocol/Internet protocol (TCP/IP), ftp, email, direct file transfer, combinations thereof, and the like. In essence, any transmission protocol capable for transmitting information over a network may be used in conjunction with network interface 210 to send information to and receive information from devices.
Some embodiments of mobile Internet component 302, its subcomponents, and other components have been described above. In light of this disclosure, it will be understood that components and interactions of the components within server 102 could be changed, added, or removed without departing from the spirit and scope of this invention.
In one embodiment, the control hierarchy 304 is created based on a declarative construct used when developing the page file 108. The declarative construct was introduced above in conjunction with
In this embodiment, the DeviceSpecific tag is nested within a tag that identifies a particular control. The existence of the DeviceSpecific tag indicates to the process compiling the requested page that the particular control has properties that may be overridden based on different types of devices. The Choice tag includes a condition that identifies the particular type of device (e.g., the Device=“______” statement) and the value to apply to a particular property if that condition is true (e.g., the “Property=argument” statement).
In operation, the compiling process (e.g., mobile runtime process 312) may walk the requested page file and create an object within the control hierarchy 304 for each identified control. A nested tag may indicate to the compiling process to create a child object. Thus, in accordance with the disclosed embodiment, the DeviceSpecific tag causes a child object to be created in the control hierarchy 304 under the particular control within which the DeviceSpecific tag exists. It is possible for a control to have multiple DeviceSpecific tags where each DeviceSpecific tag would be applied to the control independently. Each set of property overrides may be based on different device decisions than another set, further easing management of control property overrides. To illustrate the point more clearly, consider once again the sample pseudo-code introduced above in conjunction with the page file 108 of
In this case, the control hierarchy 304 includes an Image control 401, which has a DeviceSpecific child control 403. In addition, the DeviceSpecific control 403 includes child objects 406-407 that each represents one of the alternative Choice tags above. Thus, the result of interpreting the page file 108 and building the control hierarchy 304 is a structure that identifies each of the controls (including their properties) that are used to create the display to be returned to the target device. Where appropriate, objects within the control hierarchy 304 include DeviceSpecific children that, when implemented, override certain properties of the parent control. The certain properties and their override values are individually stored within Choice objects, which are children of the DeviceSpecific object.
Operation of the Described Embodiments
If the determination at step 602 is negative, then, at step 603, the requested page is read. In accordance with this embodiment, the page has been developed using the DeviceSpecific construct described above for those controls or server objects for which device-specific properties may be appropriate. At step 604, a run-time process, such as mobile runtime process 312, compiles and builds an object class that describes the particular controls described within the requested page. In accordance with the invention, the object class may be a control hierarchy, such as that described above in conjunction with
When the compiled class is stored, or if the determination at step 602 was yes, then, at step 607, the object class is instantiated to service the incoming page request. Step 607 occurs for each new request for a page from a device matching the target device.
At step 608, execution of the requested page is begun. During page initialization, each control in the corresponding control hierarchy has an initialize method called on it. The initialize method determines if a “DeviceSpecific” object has been added to the control. If so, the initialize method requests the “DeviceSpecific” object to apply applicable property overrides for the control. The “DeviceSpecific” object goes through each Choice object in order, and requests the Choice object to evaluate itself against the device capabilities information (supplied by device capabilities component 303).
At step 610, the Choice objects are evaluated and, where appropriate, modify the corresponding properties of the parent control. The “Choice” object may use a “Device” property to evaluate itself. If a Choice object evaluates successfully, it then applies the corresponding property overrides. The Choice object would iterate over each property in its particular “property bag” and set the corresponding properties on the parent control accordingly. For instance, referring briefly to the control hierarchy 304 illustrated in
At step 612, the device-specific page markup is rendered by a rendering subcomponent, such as rendering component 308 (
In another embodiment, alternative code may be created to set the properties of the containing control directly by evaluating a series of conditions rather than creating child objects associated with each of the DeviceSpecific tags and Choice tags described in the page file.
For instance, at step 604 above, an object class may be constructed that includes a conditional construct representing each of the choices described in the page. One example of such alternative code may take the form:
and that code may be included in the object class generated when the page file is compiled. In this way, when the compiled page is instantiated, at step 607 above, the alternative code is executed, which evaluates the device and sets device-specific properties appropriately.
Each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These program instructions may be provided to a processor to produce a machine, such that the instructions, which execute on the processor, create means for implementing the functions specified in the flowchart block or blocks. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer implemented process such that the instructions which execute on the processor provide steps for implementing the functions specified in the flowchart block or blocks.
Accordingly, blocks of the flowchart illustration support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
The above specification, examples, and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
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 |
5349657 | Lee | Sep 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 |
5604908 | Mortson | Feb 1997 | A |
5608890 | Berger 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 |
5664228 | Mital | Sep 1997 | A |
5675520 | Pitt, III et al. | Oct 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 |
5878141 | Daly et al. | Mar 1999 | A |
5878282 | Mital | Mar 1999 | A |
5892937 | Caccavale | Apr 1999 | A |
5897622 | Blinn | Apr 1999 | A |
5897644 | Nielsen | Apr 1999 | A |
5911068 | Zimmerman et al. | Jun 1999 | A |
5911145 | Arora et al. | Jun 1999 | A |
5918007 | Blackledge, Jr. et al. | Jun 1999 | A |
5935207 | Logue et al. | 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 |
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 |
6067578 | Zimmerman et al. | May 2000 | A |
6072664 | Aoyagi et al. | Jun 2000 | A |
6076108 | Courts et al. | Jun 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 |
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 | DeBoor 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 |
6230160 | Chan | May 2001 | B1 |
6230313 | Callahan et al. | May 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 |
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 |
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 |
6354477 | Trummer | Mar 2002 | B1 |
6363352 | Dailey et al. | Mar 2002 | B1 |
6370561 | Allard et al. | Apr 2002 | B1 |
6373841 | Goh et al. | Apr 2002 | B1 |
6384846 | Hiroi | May 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 | 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 |
6460071 | Hoffman | Oct 2002 | B1 |
6460141 | Olden | Oct 2002 | B1 |
6463442 | Bent et al. | Oct 2002 | B1 |
6466203 | Van Ee | Oct 2002 | B2 |
6470381 | DeBoor 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 |
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 |
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 |
6606418 | Mitchell et al. | Aug 2003 | B2 |
6610105 | Martin et al. | Aug 2003 | B1 |
6622168 | Datta | 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 |
6757708 | Craig et al. | Jun 2004 | B1 |
6757899 | Zhdankin et al. | Jun 2004 | B2 |
6757900 | Burd et al. | Jun 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 |
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 |
6990653 | Burd et al. | Jan 2006 | B1 |
7013340 | Burd et al. | Mar 2006 | B1 |
7016963 | Judd et al. | Mar 2006 | B1 |
7076786 | Burd et al. | Jul 2006 | B2 |
7099870 | Hsu et al. | Aug 2006 | B2 |
7117504 | Smith et al. | Oct 2006 | B2 |
7159007 | Stawikoski | 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 |
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 |
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 | Chrisfort 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 |
20020161928 | Ndili | Oct 2002 | A1 |
20020161938 | Ndili | 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 |
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 |
20040218045 | Bodnar et al. | Nov 2004 | A1 |
20040230958 | Alaluf | Nov 2004 | A1 |
20050091230 | Ebbo et al. | Apr 2005 | A1 |
20050138560 | Lee et al. | Jun 2005 | A1 |
20050171967 | Yuknewicz | Aug 2005 | A1 |
20050193097 | Guthrie 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 |
20060004910 | Burd et al. | Jan 2006 | A1 |
20060020883 | Kothari et al. | Jan 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 |
Number | Date | Country |
---|---|---|
01 11 1679 | Dec 2000 | EP |
01111679 | Dec 2000 | EP |
1156415 | Nov 2001 | EP |
1156415 | Nov 2001 | EP |
1156427 | Nov 2001 | EP |
1156428 | Nov 2001 | EP |
1156429 | Nov 2001 | EP |
1164473 | Dec 2001 | EP |
1241593 | Mar 2002 | EP |
01111680.3-2201 | Apr 2002 | EP |
01111681.1-2201 | Apr 2002 | EP |
2339374 | Jan 2000 | GB |
11-98134 | 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 9934288 | Jul 1999 | WO |
WO 0127783 | Apr 2001 | WO |
WO 0175667 | Oct 2001 | WO |
WO 0221343 | Mar 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20030097639 A1 | May 2003 | US |