This invention relates to methods and systems for providing software via a network. More specifically, the invention pertains to Internet-based delivery of software.
Installation of traditional PC applications requires physical media, such as a disk or CD-ROM that must be physically inserted into a computer in order for software to be loaded onto a user's computer. Typically, this process requires the user to enter settings information that can be confusing to the user. Once the software is installed, it is typically fixed in terms of its location and functionality. When the software is updated, the user must typically purchase additional physical media and repeat the installation process so that they can use the updated software. In this model, the software is fixed in its association with the computer on which it was installed. If a user moves to another computer, they will not be able to use the specific software on their machine without repeating the installation process.
As computing continues to evolve into the environment of computer networks such as the Internet, it has become clear that the traditional software delivery model described above is inadequate to meet the demands of consumers who desire dynamic, flexible, and adaptable software on-demand. Network-based software delivery is becoming the subject of increasing focus by those who develop and deliver software. Unlocking the potential for network-based software delivery will require smart, innovative and streamlined solutions, especially in situations where bandwidth may be limited.
Accordingly, this invention arose out of concerns associated with providing new software delivery models that are particularly well-suited for network-based software delivery, e.g. delivery via the Internet.
Methods and systems for network-based software delivery are described. In one embodiment, an application program or software platform resides on a client. The program or platform is configured so that it is extensible based on software extensions that are deliverable over a network such as the Internet. Various extensions can be developed by third party developers for incorporation into the program or platform.
In one described embodiment, extension files that comprise a software extension are hosted on a network server such as an Internet server. These include descriptor files that describe aspects of the software extension. These descriptor files logically describe an extension to the program or platform and designate the location of other extension files. Extensions are incorporated on a client by navigating to a particular network or Internet site through which the extensions can be accessed. The files describing the extension files are downloaded on the client. These files tell the client where, when and how the particular extension can be plugged into the program or platform, as well as where to find the appropriate extension files and how to download them. The extension files are then downloaded and incorporated into the platform.
In one embodiment, an inventive software architecture is provided for handling and consolidating particular types of descriptive files associated with various extensions. A filtering mechanism called attachment points, is used to create handlers for the different descriptive types of files that define a software extension. Each of these handlers is known as an attachment manager. Attachment managers are provided for each extensible feature type. The attachment managers interpret data from extensions files which are supplied by attachment points. In addition to predefined attachment managers, custom attachment managers can be created using data from attachment points. When an extension extends a particular feature type, the attachment points ensure that only the appropriate attachment manager is notified so that the feature type can be incorporated into the program or platform efficiently.
The methods and systems described just below provide a mechanism by which functionality can be added dynamically to an application program or software platform. Functionalities or “extensions” as they will be referred to, can be advantageously added via a network such as the Internet. Extensions, that can implement new features or add to existing features, can be added using only a network address, such as a URL, as a basis for extension installation. That is, all of the files that comprise an extension can be maintained on the network and accessed via one or more network sites.
Extensions can be described in a variety of ways. One way utilizes a hierarchical tag-based language which facilitates handling and use of the various extensions. In one particular implementation, a software platform is provided that can incorporate various functionalities. The software platform and the inventive architecture described below enable third and fourth party developers to develop extensions for the platform that can be easily and seamlessly incorporated into the platform without having any knowledge of (or relationship with) a hosting service. A third party developer is a developer who develops an extension for the platform. A fourth party developer might be a developer who develops an extension to a third party developer's extension. Thus, the incorporation of third and fourth party extensions is essentially a transparent process, as far as developers are concerned.
Consider for example,
Extensions can be delivered from any number of different extension sources. The inventive methods and systems provide a streamlined and organized way to handle the provided extensions. The use of XML advantageously enables efficient handling of extensions from multiple different extension sources, without unduly taxing the software components that utilize specific portions of an extension or extensions.
In one particular implementation, the software platform on the user's machine provides various different integrated functionalities that enable a user to accomplish different document-centric tasks. An exemplary system is described in the U.S. Patent Application entitled “Single Window Navigation Methods and Systems”, incorporated by reference above.
Exemplary Computer Environment
The embodiment described just below can be employed in connection with various computer systems. A computer system, for purposes of this document, can be considered as any computing device that includes some type of processor, i.e. a microprocessor, and some type of operating system. Thus, a computer system can be construed to include, without limitation, traditional desktop computers, more powerful servers, various hand-held devices such as cell phones, pocket-held computer devices and the like.
Computer 130 further includes a hard disk drive 144 for reading from and writing to a hard disk (not shown), a magnetic disk drive 146 for reading from and writing to a removable magnetic disk 148, and an optical disk drive 150 for reading from or writing to a removable optical disk 152 such as a CD ROM or other optical media. The hard disk drive 144, magnetic disk drive 146, and optical disk drive 150 are connected to the bus 136 by an SCSI interface 154 or some other appropriate interface. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for computer 130. Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 148 and a removable optical disk 152, it should be appreciated by those skilled in the art that other types of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROMs), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk 144, magnetic disk 148, optical disk 152, ROM 138, or RAM 140, including an operating system 158, one or more application programs 160, other program modules 162, and program data 164. A user may enter commands and information into computer 130 through input devices such as a keyboard 166 and a pointing device 168. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are connected to the processing unit 132 through an interface 170 that is coupled to the bus 136. A monitor 172 or other type of display device is also connected to the bus 136 via an interface, such as a video adapter 174. In addition to the monitor, personal computers typically include other peripheral output devices (not shown) such as speakers and printers.
Computer 130 commonly operates in a networked environment using logical connections to one or more remote computers, such as a remote computer 176. The remote computer 176 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 130, although only a memory storage device 178 has been illustrated in
When used in a LAN networking environment, computer 130 is connected to the local network 180 through a network interface or adapter 184. When used in a WAN networking environment, computer 130 typically includes a modem 186 or other means for establishing communications over the wide area network 182, such as the Internet. The modem 186, which may be internal or external, is connected to the bus 136 via a serial port interface 156. In a networked environment, program modules depicted relative to the personal computer 130, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Generally, the data processors of computer 130 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor. The invention also includes the computer itself when programmed according to the methods and techniques described below.
For purposes of illustration, programs and other executable program components such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.
Extensions
An “extension”, as used in this document, will be considered to include, without limitation, software functionality and content that can be added to an application program or software platform. These additions typically provide some type of functionality that the application program may not have had before the extension was incorporated, or alter the behavior of at least one existing feature. The extension is incorporated or integrated directly into the application program in a way that changes, to some degree, the manner in which the application program behaves or operates. Extensions provide dynamically added content and can provide applications (such as an email application), plug-ins to extend existing applications (like a fax plug-in to an email application), or simply web pages, to name just a few.
In the described embodiment, extensions are described using XML, an industry-standard, text-based markup language. XML greatly facilitates the extensibility of software content. Specifically, various extensions can be authored by third parties and described in XML in a manner that enables the extensions to be readily integrated into application programs. It should be appreciated, however, the XML constitutes but one exemplary way of describing and using the extensions. Other ways can, of course, be used.
Exemplary Extension Organization
In the described embodiment, extensions are organized in three separate but related portions: an Extension Definition File (EDF), a Package Manifest (PKG), and the code, components, or “bits” that make up or define the extension. An EDF can be, but need not be associated with a URL (Universal Resource Locator) that provides a way for a client to access the EDF. By convention and choice, the PKG file is located at the same URL as the EDF. It will be appreciated that the described EDFs and PKG are each not required for the other to be used. It just so happens that, in the example that is given is this document, the two are employed together. To that end, each of these features can be separately and independently employed.
EDFs describe logical attachments to an application program or software platform, while PKGs specify the physical files and resources that are used in an extension. There can be a one to one correspondence between EDFs and PKGs.
Extension Definition File (EDF)
In the described example, an EDF is an XML file that logically describes an extension. For example, the EDF can describe HTML that makes up a user interface (UI), the objects that contain code for implementing various functions, and the like. The EDF can also contain all or part of the functionality that comprises an extension. For instance, the HTML that describes a toolbar could be incorporated directly into an EDF file, and a toolbar attachment manager could read it from the EDF file, instead of from a URL. The information contained in the EDF is processed and (together with the information contained in the PKG), the appropriate files are automatically installed on a user's computer. This is done unobtrusively without manipulating the computer's persisted settings, as might be found in the user's system registry.
An EDF, implemented in XML, contains various tags that are associated with various extensions. The various tags can correspond to:
EDFs advantageously have an “open schema” which means that third party developers can extend the extension mechanism and include their own extensions by creating their own tags. Additionally, extensions can themselves be extended by other developers. EDFs can also have one or more predefined tags. Exemplary predefined XML tags for user interface elements can include tags for feature types such as: tool bars, accelerators, menu items, and themes. These feature types are utilized in the single navigable window application incorporated by reference above and defined in the table immediately below:
Exemplary predefined XML tags for behaviors/components/objects include tags for Services. These feature types are utilized in the single navigable window application incorporated by reference above and defined in the table immediately below:
Exemplary predefined XML tags for store elements include tags for content classes and offline data sources. These feature types are utilized in the single navigable window application incorporated by reference above and defined in the table immediately below:
EDF Schema
In the described embodiment, the EDFs have a particular XML schema that is utilized. The schema comprises collections of XML tags that are arranged in a hierarchical organization to facilitate information dissemination to software components that need certain extensions. In the described embodiment, the outer (encompassing tag) for EDFs is an “extension” tag.
Within the “extension” outer tag are one or more child tags, also referred to as “top level tags”. These top level tags are each associated with a feature type that can be added by a particular extension. Exemplary feature types are discussed in connection with Tables 1-3 above. Underneath each top level tag there can be one or more child tags that are individually associated with a particular feature of the feature type that is to be added by a particular extension.
Package Manifest (PKG File)
The package manifests (PKGs) assist in organizing the downloading of software in the form of multiple files over a network such as the Internet. The PKGs are advantageously employed, in the example given in this document, with EDFs. As pointed out above, however, the techniques discussed in connection with the PKGs can be deployed independently of EDFs and in any suitable scenario where it is desirable to deliver software over a network such as the Internet. While the EDFs describe the logical attachment of extensions into an application program or platform, the package manifest's role is to assist in one or more of: organized delivery, validation and/or, updating of files associated with the various extensions that can be provided.
In designing a delivery mechanism for Web-assisted delivery of software content or files, several considerations are of interest.
Whenever possible, it is desirable to reduce the size of required downloads during update and installation operations. To address this consideration, software content is broken into multiple packages. Each package contains a group of one or more files that implement a common or well-defined functionality. By breaking the content into individual packages, the size of the required download during installation and update can be minimized. Each package is then described by a package manifest (PKG) that includes file information such as file locations and hash values that can be used for validation or security and versioning.
It is also desirable to give the end user a Web-like experience. To do this, extensions are loaded in a manner that feels to a user more like they are loading a web page, rather than traditional software packages where the user has to wait until the entire package is loaded before they can interact with it. In the described embodiment, users are given a web-like experience by streaming the extension files down to the client so that a user can begin to interact with an application program much sooner than if they had to wait for the entire software application program to load. For example, if there are user interface (UI) image files streaming down, the user can see the UI as the files stream in. Consider, for example, the single application program having the multiple different functionalities that is described in the patent application incorporated by reference above. A user might browse to an email functionality and download the files that are necessary to interact with the email functionality. Files that are associated with another different functionality would then be downloaded after the files associated with the email functionality. In this way, the user can begin to operate within a particular functionality without having to wait for all of the files associated with all of the other functionalities.
Another consideration of interest pertains to the efficiency with which the extension files or “bits” are delivered to the client. To address this consideration, the described embodiment utilizes a couple of different download approaches: a throttled download and a background download. Throttled downloading conducts download operations while taking into account the available bandwidth and type of media over which the files are being transferred. Any suitable throttled download process can be employed and will be understood by those of skill in the art. Background download is conducted while the user is working within the application program and is implemented by allocating a background thread so that the user can continue their work. One optimization that is utilized is that packages are prioritized and delivered in accordance with what a user might be working on.
Another consideration is associated with optimizing the user's computing experience. Here, the user's experience is optimized by making available the most common scenarios for the user. This is effectively directed to giving the user the functionality that they want first, and then, through the background download process, providing the code that implements functionalities that the user might use in the future. To determine which functionalities a user desires to have first, an automated scenario-based packaging process is provided that runs against file usage logs from scripted scenarios.
All of these considerations and the inventive solutions directed to addressing the considerations are discussed in detail in the sections that follow below.
Package Manifest Definition
In the described embodiment, a package manifest (PKG file) comprises a list of files that are utilized in a package. The list is advantageously compressed somewhat and digitally signed. Each package manifest can contain a list of one or more files each of which can include an associated hash, as well as download directives that control caching of the files. Once an extension is authored, a software tool can be used to generate the package manifest.
In addition, the package manifest can specify several other pieces of information:
File Group
All files in an extension can be labeled according to a number of predefined file groups. The file group of a particular file determines when the particular file gets downloaded, where it is stored on the client, and how it gets packaged. In the described embodiment, four predefined file groups are provided and are listed and described in the table immediately below:
File Download Priority
Files in each group are listed according to the order in which they should be downloaded. This download order is implicit in the ordering of the files in the package manifest, an example of which is shown in
Hash Value for Security/Versioning
Individual files in the package manifest can have an associated hash value. Each hash value is generated by running the file through an encryption algorithm. An exemplary encryption algorithm is Microsoft's CryptoAPI. In the illustrated example, each file can be listed with a base 64-encoded hash value, so that the file can be validated once the content arrives at the client. Specifically the package manifest is sent to the client in a secure manner (i.e. it is digitally signed). The package manifest contains the hash values for individual files. When the individual files are received by the client, each of the files can be run through the same Crypto API that was used to provide the hash values in the package manifest. If the hash values for a particular file compare favorably, then the file has not been altered and is secure.
When a file is updated, hash values can serve a useful purpose in identifying files that have not been changed between different versions of an extension. Consider
Using hash values for versioning has two important advantages over traditional versioning schemes. First, the update process is automatic. That is, with an explicit version number, it is possible to forget to update the version number when shipping a new release of a file. Using hash values avoids this problem. Second, versioning does not rely on file types. Specifically, traditional versioning schemes commonly embed version information within files; however, not all files (e.g. GIF files) support embedded version information. In the present example, using hash values for versioning does not depend on whether a particular file type supports or does not support embedded version information. In addition, the version information can be stored separately from the file itself. Thus, access to actual file to determine whether it is current is not needed.
Total Storage Size of Package
The total storage size of a package is useful at download time to verify that the user has sufficient disk space.
ClassID's for the DLLs
Listing ClassIDs for each DLL is necessary to enable script writers to create classes by scripting against the OM. Additionally, this enables a determination of which package contains the code for a particular class.
DLL Load Dependencies
The reason for the dependencies section is to allow for legacy code that relies on being loaded by virtue of being in the search path of some other dll. In this case we have to make sure that the dependency dll is in the package cache directory before the dependant dll is loaded.
Package Delivery
To optimize package delivery, two different delivery schemes are utilized. First, a throttled download approach is utilized using known throttling download techniques. Here, considerations such as available bandwidth and media over which the extensions are being provided are considered.
Second, a background download approach is utilized. Background downloads enable a user to continue to work within an application program while content is downloaded. Foreground downloads are used when the user has explicitly requested a file/extension by clicking, for example, on an extension link, or requested an action, for example, by clicking on the “Compose” mail button, that requires download of files which are not available locally.
Along with background downloads, a queue management feature is provided. Specifically, when an extension must be installed or updated, a package manager, which is essentially a software component that manages packages, is provided with the following information:
From this information, the package manager creates a package object and adds the package object to a download queue. The download queue is designed for easy rearrangement of a package download order. Consider, for example,
Step 900 receives one or more requests for an extension. The requests can be generated in any suitable way. Step 902 creates a package object that corresponds to each extension package that is to be downloaded. Step 904 arranges the package objects in a download queue. Step 906 then downloads files corresponding to the package objects in the download queue. This step can be implemented by, for example, starting at the head of the download queue and downloading files until all of the files for a package object have been downloaded, and then moving to the next package object. Step 908 ascertains whether a user action requires a file that is not described in the current package object. If the user's action does not require a file not described by the current package object, then the method branches back to step 906 and continues to download files associated with the current package object. If, on the other hand, the user's action requires a files that is not described in the current package object, then step 910 moves the package object associated with the required file to the head of the download queue and begins to download files associated with this newly-repositioned package object. This step can be implemented by ascertaining which package object is associated with the required file by ascertaining the URN associated with the file. This URN specifies the file's package so that its package object can be quickly located and moved to the front of the download queue.
Package Creation
One of the innovative features of the described embodiment is its extensibility. That is, a software platform is provided in the form of an application program that can be extended by various third-party user-defined extensions. These extensions are delivered via the Web and are integrated directly into the software platform. In order to provide an organized delivery process, packages should be created in a uniform manner so that they can be predictably handled and integrated into the software platform.
In accordance with the described embodiment, each package should correspond to an end-user feature. For example, in the patent application incorporated by reference above, separate packages are provided for each of the email, contacts, document authoring, and planner functionalities. If packages that do not depend on one another share a dependency, then this shared dependency should become its own package. For example, there is no reason why the email and document authoring functionalities should depend on one another, yet both of them require the ability to publish content. By separating the publishing functionality into its own package, a certain amount of download order flexibility is preserved. Depending on what the user starts to work on, the files corresponding to the email functionality or the document authoring can be downloaded first.
Step 1000 identifies end user features that are to be provided as extensions. Step 1002 identifies any shared dependencies among the end user features. Step 1004 creates individual packages for the end user features. Step 1006 creates individual packages for any shared dependencies among the end user features.
Automated Package Manifest Creation Tool
Advantageously, and in accordance with one implementation, an automated package manifest tool is provided and takes various input parameters and automatically creates a package manifest. The tool can be available to third parties to assist them in creating a package manifest.
The extension directory input parameter specifies the directory containing all of the files that will be described by the package manifest. If this is the only parameter, then tool 1100 will generate a manifest in which the EDF and DLLs in the directory are listed in the “Required” set, and all other content is “Offline”.
The file group information and load dependencies parameter is optional. If an extension author has an idea of the categories in which his or her files should be placed, the categories should be specified here. For example, the author of the template manifest shown below knows that he wants his error handling GIF to be included in the package's required set. His choices here will always be respected in the final manifest. Additionally, if the extension author knows of any DLL load dependencies, these should be specified here as well.
The file usage statistics from scenario runs parameter is an optional parameter. This parameter enables the file download priority to be determined based on scenario runs. A scenario is a script of tasks that the average user typically follows when using a product during a particular portion of product use. For example, one scenario might pertain to the tasks involved in sending an email message (i.e. click “new mail” button, type in “TO” well, type is “Subject” well, etc.). In the described embodiment, file usage statistics from scenario runs are collected from running IIS logs on various scenarios. The different scenarios are directed to ensuring, with some degree of probabilistic support, that the file download order reflects, in some way, the files that will likely be used by the user first.
It will be appreciated that the file usage statistics can be provided dynamically by building a knowledge base that describes the actual tasks that people typically accomplish. The information that is maintained in the knowledge base can then be used to generate and adapt download scenarios that actually conform to patterns that are established across a user base.
If extension writers want to pass the package manifest creation tool 1100 this information, they need to specify the log directory, as well as the start and end dates of the section of the log that the tool should analyze. For third parties, the download priority order within a group will be the order in which the group's files were requested in the logs across all scenarios.
In one implementation, the approach is somewhat more sophisticated. Additional information (in addition to the scripted steps) is stored in the IIS logs and includes scenario priority and checkpoints. The scenario priority is a priority that is assigned for each scenario. So, for example, if one scenario is ten times more important than another scenario, this information can be maintained. The priority (e.g. a rating from between 1 to 100, with 100 being the highest priority), should be equal to a best guess as to the percentage of the time that users will step through the scenario, assuming they use the extension at all. Checkpoints provide a way to separate one scenario from another. For example, checkpoints designated as “Offline” and “Shutdown” can be automatically added at the beginning and end of the scenarios, respectively, so there can be a differentiation between scenario runs in the log. Additionally, script authors can optionally use checkpoints mid-scenario to indicate a change in group priority, e.g. part of a scenario script could be labeled as an “On demand” feature and another part could be labeled as “Offline”.
Step 1200 provides a package manifest creation tool. This tool can be a software tool that resides on an extension author's machine. Step 1202 receives information pertaining to an extension directory as a first input parameter. Step determines whether there is any file group information or load dependency information provided by the extension author. If there is, step 1206 receives the information as an input parameter. Step 1208 determines whether there is any file usage statistic information. Such information can be provided, in one embodiment, through the use of scenario runs as described above. If such information is provided, then step 1210 receives the information as an input parameter. Step 1212 then uses all of the information provided as input parameters to generate a manifest automatically.
Exemplary File Ordering Heuristics Based on File Usage Statistics
Step 1300 sorts files by file group. Recall that in the illustrated example above, files can be grouped in one of four possible groups: Required, Offline, On Demand and Online Only. A file's group is determined first by the manifest, and, if it does not provide any group information, then by the highest priority group that it uses, according to checkpoint information in the log. Files in the “Required” set should not be considered because their order is already known. If no group information is included about a file, then an assumption is made that the EDF and all DLLs are “Required” files and all other files in the directory are “Offline”.
Consider, for example, the following initial file usage information for three different scenarios:
In this example, there are three scenarios that have files associated with them. Each of the scenarios has a priority with which it is associated. The files are first sorted by group (step 1300). Recall that in this ordering heuristic, DLLs are “Required” and all other files are considered “Offline”. This provides the following sorted files:
Required Files
Offline Files
Step 1302 sorts files based on scenario priorities (from highest to lowest). Higher priority files are ordered so that they are downloaded first. This step provides the following sorted files:
Required Files
Offline Files
Step 1304 then sorts the files by file usage order within a scenario run. For each priority grouping with more than one file, the files are sorted according to the average order in which they were downloaded within scenarios of their labeled priority. Scenarios with a smaller average usage order will be downloaded earlier. Ties are broken based on the order in which the scenarios appear in the input file. As an example, consider the following:
Here, file A got used first by scenario 1 and second by scenario 2 for an average of 1.5, and so one. File C has the smallest order number so, of the Offline files, it is sent first. The final file order is shown below:
Required Files
Offline Files
Code, Components and “Bits”
The following files and resources can be, but need not be included with an extension. This list is not exclusive, as other resources can certainly be incorporated into an extension.
Users install extensions by navigating to a network site for the extension. In an Internet implementation, the user navigates to an appropriate URL for the extension. Hosting administrators can also “push” extensions so that users can automatically receive them by adding an entry into the appropriate users' “Preference” settings.
Platform Set Up and Extension Installation
The flow diagram, in this example, is illustrated in connection with three separate “zones”, one of which represents a client, one of which represents a “platform” Internet server, and one of which represents a third party Internet server. The acts that are described in connection with the different zones are performed, in this example, by the entities assigned to the zone. In some configurations, one or more of these zones may overlap. For instance, the platform server may be the same device as the extension server.
Step 1400 navigates a user to a particular Internet site that is associated with the software platform that is to be utilized as the foundation for extension installation described below. In step 1402, the user clicks an “install” button that sends a message to the software platform server that indicates that a user wishes to install the software platform. This step can be an optional step. Steps 1404 and 1405 then download the software associated with the software platform to the client. In the illustrated example, step 1404 downloads the package file for the single navigable window application and based on that file's contents step 1405 downloads other components and files to the user's computer. Step 1406 installs the software code on the client machine and can create local directories for the application cache, a local store and preferences. It will be appreciated, however, that local directories or preferences are not necessarily needed. Step 1408 launches the software platform.
The steps described immediately above constitute steps associated with an initial set up in which the software code for the single navigable window application is delivered to and installed on a client machine. The steps described immediately below are associated with extension installation.
Step 1410 uses a link that is associated with an extension to access the extension. This step can be implemented by a user navigating their browser to a particular Internet site through which one or more extensions can be accessed. Alternately, a reference to the link can be placed in the user's preferences or the preferences of a computing group with which the user is associated (e.g. the system administrator can place a reference in a group's preferences). The link can advantageously be associated with a third party Internet server or Internet site. Step 1412 downloads extension files according to the PKG associated with an EDF. The files are delivered to the client and step 1414 places the extension files in a local store as specified by the PKG specification. At this point, an extension is installed and the user can utilize the functionality provided by the extension. Step 1416 determines whether extension updates are available. This can be done by periodically polling an extension catalog (discussed in an “Extension Catalog” section below) to ascertain whether there are any updates to various extensions. Alternately, notifications might be automatically sent to the client so that the client is aware of updates or any other method might be used to determine if updates are available. If there are updates available, step 1418 branches to step 1412 which downloads the extension files associated with the update and installs them on the client.
Developing Extensions
Developing extensions for the software platform is a fairly straight-forward process. A developer develops the extension content using a tool such as Notepad or other tools such as Visual Studio. The extension is then described in an EDF and PKG and the PKG is digitally-signed and then optionally compressed. The extension can then be hosted on a particular network server.
Specifically, step 1510 delivers the EDF and PKG files to a client. This step can be implemented by a user navigating to a particular Internet site where the appropriate files are hosted and then downloading the files. Step 1512 delivers the extension files that are associated with the EDF and PKG files to the client, whereupon they can be installed and used.
Extension Catalog
One optimization, discussed briefly in connection with
In the described embodiment, a catalog is an XML file that contains mappings from extension URNs to one or more package URNs based upon language, version or other attributes. Catalogs can, however, be defined using any suitable format. Catalogs can provide:
Like EDFs, catalogs can be compressed and digitally signed to prevent tampering. By subscribing to a catalog in order to detect changes for one or more hosted extensions, the number of server pings required from the client (or notifications to the client) in order to discover extension updates can be reduced.
In this particular example:
Architecture
In the described embodiment, one of the aspects that provide desirable utility is the extensibility of the software platform. That is, third and fourth party developers are free to develop their own extensions which can then be used within the framework of the software platform. The extensions are integrated directly into the software so that the platform's functionality is modified by the extensions. Recall that in order to provide an extension, the developer simply authors the extension, describes their extension in an EDF and PKG, and then hosts the EDF, PKG, and associated files on a network server.
The EDF, as pointed out above, can be defined in an XML schema that includes a root node (i.e. the “extension” tag) and one or more child nodes. In this particular example, the child nodes generally correspond to the individual extension feature types that are desired for incorporation into the software platform. For example, recall that Tables 1-3 above describe various exemplary predefined feature types that can be added through an extension using the predefined XML schema.
Consider now a developer who wants to add two menus and a toolbar to the software platform. The menus and toolbar might be associated with a retail store that maintains a Web site for its customers. The retail store might want a customer who visits its Web site to be presented with a UI that is unique to the retail store and provides services that are specifically tailored to the store. To do this, the developer develops two different menus, one of which might be associated with displaying the most recent specials, and other of which might be associated with providing a search mechanism through which the user can search for specific products. The toolbar might contain specific buttons that are unique to the retail store. A simplified EDF called “retail.edf” for the retail store's extension is shown directly below:
Here, the outer “extension” tag designates this XML file as an extension. The inner “menus” and “toolbars” tags are top level tags that designate that the information between these tags pertains respectively to menus and toolbars that correspond to the extensions that the developer has added. The boldface “menu” and “toolbar” tags describe data pertaining to the actual extension and contain a URL that is associated with each extension as described above. The EDF above logically describes the extensions that are being provided as including two menus and one tool bar.
Consider also that the above EDF can constitute but one of many EDFs that are loaded into the system. Each EDF can contain one or more top level tags, each of which is associated with one or more specific extensions that are to be added to the software platform.
Utility objects, herein referred to as attachment points, are used to process the information from the multiple EDFs. An attachment point is simply a collection of objects that fire events to registered listeners as objects are added to or removed from the collection. Many types of attachment points can be created, but all take data from a source (often another attachment point), process it (either dynamically or statically), and expose the results of their processing. Some of the simplest attachment points include:
In the illustrated example, the architecture includes a collection of one or more attachment points, including a funnel structure known as an EDFHub 1700, an attachment point manager 1702, and multiple attachment managers 1704. The EDFHub 1700 receives all of the EDFs and merges them together and exposes them as a single list. Other individual attachment points provide mechanisms that manipulate (including filter, merge and expand) the single list that is exposed by the EDFHub 1700. Whenever a new extension or EDF is added to or removed from the EDFHub, the various attachment points will see to it that the appropriate attachment manager(s) is notified. This is done by firing events to the appropriate attachment managers. The attachment point manager 1702 creates, destroys and manages the various attachment points in the system and allows easy reuse of identical attachment points.
For each top level tag (i.e. “menus” and “toolbars” tags), there is a corresponding attachment manager 1704 that uses data provided by the attachment points to incorporate a particular type of feature within the software platform. Each attachment manager requests a set of attachment points from the attachment point manager 1702. These manipulate the data exposed by the EDFHub 1700. In the illustrated example, the attachment points can be requested as a predicate chain that the attachment point manager uses to create and build a set of attachment points that operate on the data exposed by the EDFHub 1700.
Step 1800 receives multiple EDFs. These files can be received in any suitable way. For example, a user can specify in their preferences particular extensions that they desire to be loaded when they are online. Alternately, a user might navigate using a link to a particular Internet site that recognizes that the user is executing a software platform that is configured to dynamically add the extensions. The EDFs, in this example, are funneled into the EDFHub 1700 which uses attachment points to combine the EDFs (step 1802). In this example, the EDFs are defined as XML files and the nodes are combined into one single XML list. Step 1804 exposes the combined EDFs. In this particular example, the EDFs are combined into a single XML list that is exposed to other various attachment points which then further manipulate that data (step 1806). One goal of the attachment points is to avoid having the attachment managers 1704 re-query the whole system every time an extension gets added or removed from the system. Thus, if an extension gets added or removed, the attachment points ensure that only the appropriate attachment manager 1704 is notified of the specific additions or deletions of the extension. For example, if an EDF indicates the addition of a menu, then only the attachment manager associated with menus is notified. Accordingly, step 1808 notifies the appropriate attachment manager of any new data that matches the attachment managers requirements.
Attachment Points and the Attachment Point Manager
Attachment points are objects that expose collections of ordered objects and fire notifications when new objects are inserted or deleted. In the exemplary system, the objects are XML nodes, but they could be any type of object. Although there are many types of attachment points, they all follow a similar process:
Alone, each attachment point is quite simple, but when different types of attachment points are combined to form “chains”, where one attachment point processes data from a second attachment point, the processing can be quite powerful. This is especially true if the attachment points only process the changed data in step 2, since they only do a small amount of simple work at any one time. In the exemplary system, this incremental processing means that the whole system does not have to be re-queried when a new extension is installed or when an existing extension is removed. Additionally, each attachment manager in the exemplary system uses a specific chain of attachment points and so is only informed of changes that impact its area of extensibility.
The attachment point manager performs two important functions when building chains of attachment points. First, it allows the chains to be described as predicate strings. The attachment point manager interprets these strings and builds the required chain of attachment points. Second, it allows the reuse of identical attachment points, which makes the system more efficient. As the attachment point manager creates each chain of attachment points, it tracks which predicate string corresponds to which attachment point. If that predicate string is later requested again, it simply reuses the existing attachment point without creating a new one.
As an example, consider that the attachment manager associated with menus has requested the following predicate chain of attachment points that utilizes the retail.edf file above: (Note: this example does not assume the presence of an EDFHub attachment point).
This string represents all of the menus in the retail.edf file. The XML file located at retail.edf is loaded by the URL attachment point which exposes the root node of the XML file as the only object in its collection. The inner Explode attachment point uses the URL attachment point as its data source and exposes all of the children of the objects in that source collection. In this case, the children of the root node are the top level XML tags “menu” and “toolbars”. The Filter attachment point uses the Explode attachment point as its data source and filters the exposed objects looking only for the nodes that are “menus”. The outer Explode attachment point uses the Filter attachment point as its data source and exposes all of the children of the filtered menu nodes to provide a list containing the two menus that are added by the extension. Since this particular XML file contained menus that were identified by the attachment points associated with menu attachment manager, that attachment manager is then notified that two menus have been added by an extension.
This process is diagrammatically illustrated in
Consider additionally that the toolbar attachment manager would request a predicate chain of attachment points which would also use URL attachment point, an Explode attachment point and a filter attachment point 1904 that filters on “toolbars”. Thus, the corresponding explode attachment point 1906 would expose an XML list containing only the “<toolbar>” node. But, the attachment point manager would detect the commonality of the URL attachment point and the inner Explode attachment point, so it would reuse the same attachment points it created for the menu attachment manager. The Filter attachment points used by the toolbar attachment manager and the menu attachment manager would use the same Explode attachment point as their data sources but would expose different collections of nodes, because they were filtering based on different criteria.
Consider
The table below lists a number of different attachment points that can be utilized in accordance with this described embodiment but many more can easily be created.
The embodiments described above provide a platform solution that provides for customization and extensibility through a consistent and logical extensibility mechanism and object model that can be easily understood by third party developers. Internet-based downloads can be accomplished without a great deal of user intervention and without manipulating any user persisted settings. Extensions can be provided to a software platform or application program dynamically based upon the user's computing context.
Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.
This application is a continuation of and claims priority to U.S. patent application Ser. No. 09/599,048, the disclosure of which is incorporated by reference herein. The following patent applications are related to the present application, are assigned to the assignee of this patent application, and are expressly incorporated by reference herein: U.S. patent application Ser. No. 09/599,298, entitled “Single Window Navigation Methods and Systems”, filed on the same date as this patent application;U.S. patent application Ser. No. 09/599,806, entitled “Methods and Systems of Providing Information to Computer Users”, filed on the same date as this patent application;U.S. patent application Ser. No. 09/599,299, entitled “Methods, Systems, Architectures and Data Structures For Delivering Software via a Network”, filed on the same date as this patent application;U.S. patent application Ser. No. 09/599,813, entitled “Authoring Arbitrary XML Documents Using DHTML and XSLT”, filed on the same date as this patent application;U.S. patent application Ser. No. 09/599,812, entitled “Architectures For And Methods of Providing Network-based Software Extensions”, filed on the same date as this patent application;U.S. patent application Ser. No. 09/599,086, entitled “Task Sensitive Methods And Systems For Displaying Command Sets”, filed on the same date as this patent application.
Number | Name | Date | Kind |
---|---|---|---|
2804878 | Fishwood et al. | Sep 1957 | A |
3091077 | Erickson et al. | May 1963 | A |
3104520 | Cazier et al. | Sep 1963 | A |
3195805 | Cholvin et al. | Jul 1965 | A |
3196606 | Cholvin et al. | Jul 1965 | A |
3812942 | Espenschied et al. | May 1974 | A |
3874828 | Herschler et al. | Apr 1975 | A |
3961748 | McNabney | Jun 1976 | A |
4005578 | McNabney | Feb 1977 | A |
4005579 | Lloyd | Feb 1977 | A |
4060340 | Yanik et al. | Nov 1977 | A |
4089623 | Hofmann, Jr. | May 1978 | A |
4201978 | Nally | May 1980 | A |
4256019 | Braddick | Mar 1981 | A |
4362475 | Seitz | Dec 1982 | A |
4391184 | Yamane et al. | Jul 1983 | A |
4396345 | Hutchinson | Aug 1983 | A |
4498147 | Agnew et al. | Feb 1985 | A |
4514800 | Gruner et al. | Apr 1985 | A |
4514985 | Cadeddu | May 1985 | A |
4564752 | Lepic et al. | Jan 1986 | A |
4641274 | Swank | Feb 1987 | A |
4674040 | Barker et al. | Jun 1987 | A |
4723211 | Barker et al. | Feb 1988 | A |
4739477 | Barker et al. | Apr 1988 | A |
4815029 | Barker et al. | Mar 1989 | A |
4847749 | Collins et al. | Jul 1989 | A |
4910663 | Bailey | Mar 1990 | A |
4926476 | Covey | May 1990 | A |
4933880 | Borgendale et al. | Jun 1990 | A |
4962475 | Hernandez et al. | Oct 1990 | A |
5025484 | Yamanari et al. | Jun 1991 | A |
5072412 | Henderson, Jr. et al. | Dec 1991 | A |
5140563 | Thinesen | Aug 1992 | A |
5179703 | Evans | Jan 1993 | A |
5182709 | Makus | Jan 1993 | A |
5187786 | Densmore et al. | Feb 1993 | A |
5191645 | Carlucci et al. | Mar 1993 | A |
5195183 | Miller et al. | Mar 1993 | A |
5204947 | Bernstein et al. | Apr 1993 | A |
5206951 | Khoyi et al. | Apr 1993 | A |
5218672 | Morgan et al. | Jun 1993 | A |
5220649 | Forcier | Jun 1993 | A |
5222160 | Sakai et al. | Jun 1993 | A |
5228100 | Takeda et al. | Jul 1993 | A |
5237680 | Adams et al. | Aug 1993 | A |
5249275 | Srivastava | Sep 1993 | A |
5251273 | Betts et al. | Oct 1993 | A |
5257646 | Meyer | Nov 1993 | A |
5274803 | Dubin et al. | Dec 1993 | A |
5297249 | Bernstein et al. | Mar 1994 | A |
5297283 | Kelly, Jr. et al. | Mar 1994 | A |
5313631 | Kao | May 1994 | A |
5313646 | Hendricks et al. | May 1994 | A |
5317686 | Salas et al. | May 1994 | A |
5333317 | Dann | Jul 1994 | A |
5339423 | Beitel et al. | Aug 1994 | A |
5339424 | Fushimi | Aug 1994 | A |
5341478 | Travis, Jr. et al. | Aug 1994 | A |
5369766 | Nakano et al. | Nov 1994 | A |
5369778 | San Soucie et al. | Nov 1994 | A |
5371675 | Greif et al. | Dec 1994 | A |
5377323 | Vasudevan | Dec 1994 | A |
5379419 | Heffeman et al. | Jan 1995 | A |
5381547 | Flug et al. | Jan 1995 | A |
5388967 | Firnhaber et al. | Feb 1995 | A |
5388968 | Wood et al. | Feb 1995 | A |
5390325 | Miller | Feb 1995 | A |
5396623 | McCall et al. | Mar 1995 | A |
5408665 | Fitzgerald | Apr 1995 | A |
5410646 | Tondevold et al. | Apr 1995 | A |
5410688 | Williams et al. | Apr 1995 | A |
5412772 | Monson | May 1995 | A |
5428738 | Carter et al. | Jun 1995 | A |
5434975 | Allen | Jul 1995 | A |
5436637 | Gayraud et al. | Jul 1995 | A |
5438659 | Notess et al. | Aug 1995 | A |
5440744 | Jacobson et al. | Aug 1995 | A |
5446842 | Schaeffer et al. | Aug 1995 | A |
5455875 | Chevion et al. | Oct 1995 | A |
5456582 | Firnhaber et al. | Oct 1995 | A |
5459865 | Heninger et al. | Oct 1995 | A |
5481722 | Skinner | Jan 1996 | A |
5497489 | Menne | Mar 1996 | A |
5504898 | Klein | Apr 1996 | A |
5517655 | Collins et al. | May 1996 | A |
5535389 | Elder et al. | Jul 1996 | A |
5537596 | Yu et al. | Jul 1996 | A |
5540558 | Harden et al. | Jul 1996 | A |
5542070 | LeBlanc et al. | Jul 1996 | A |
5550976 | Henderson et al. | Aug 1996 | A |
5551035 | Arnold et al. | Aug 1996 | A |
5555325 | Burger | Sep 1996 | A |
5556271 | Zuercher et al. | Sep 1996 | A |
5566330 | Sheffield | Oct 1996 | A |
5572643 | Judson | Nov 1996 | A |
5572648 | Bibayan | Nov 1996 | A |
5577252 | Nelson et al. | Nov 1996 | A |
5581686 | Koppolu et al. | Dec 1996 | A |
5581760 | Atkinson et al. | Dec 1996 | A |
5600789 | Parker et al. | Feb 1997 | A |
5602996 | Powers, III et al. | Feb 1997 | A |
5608720 | Biegel et al. | Mar 1997 | A |
5613837 | Konishi et al. | Mar 1997 | A |
5625783 | Ezekiel et al. | Apr 1997 | A |
5627979 | Chang et al. | May 1997 | A |
5630126 | Redpath | May 1997 | A |
5630706 | Yang | May 1997 | A |
5634113 | Rusterholz | May 1997 | A |
5634121 | Tracz et al. | May 1997 | A |
5634124 | Khoyi et al. | May 1997 | A |
5640544 | Onodera et al. | Jun 1997 | A |
5644738 | Goldman et al. | Jul 1997 | A |
5649099 | Theimer et al. | Jul 1997 | A |
5655887 | Chou | Aug 1997 | A |
5659729 | Nielsen | Aug 1997 | A |
5664133 | Malamud et al. | Sep 1997 | A |
5664178 | Sinofsky | Sep 1997 | A |
5664938 | Yang | Sep 1997 | A |
5668966 | Ono et al. | Sep 1997 | A |
5669005 | Curbow et al. | Sep 1997 | A |
5681151 | Wood | Oct 1997 | A |
5682536 | Atkinson et al. | Oct 1997 | A |
5689667 | Kurtenbach | Nov 1997 | A |
5689703 | Atkinson et al. | Nov 1997 | A |
5692540 | Huang | Dec 1997 | A |
5704029 | Wright, Jr. | Dec 1997 | A |
5706501 | Horikiri et al. | Jan 1998 | A |
5717939 | Bricklin et al. | Feb 1998 | A |
5721824 | Taylor | Feb 1998 | A |
5740439 | Atkinson et al. | Apr 1998 | A |
5742504 | Meyer et al. | Apr 1998 | A |
5745683 | Lee et al. | Apr 1998 | A |
5745712 | Turpin et al. | Apr 1998 | A |
5748807 | Lopresti et al. | May 1998 | A |
5758184 | Lucovsky et al. | May 1998 | A |
5758358 | Ebbo | May 1998 | A |
5761408 | Kolawa et al. | Jun 1998 | A |
5761683 | Logan et al. | Jun 1998 | A |
5764984 | Loucks | Jun 1998 | A |
5764985 | Smale | Jun 1998 | A |
5778372 | Cordell et al. | Jul 1998 | A |
5778402 | Gipson | Jul 1998 | A |
5784555 | Stone | Jul 1998 | A |
5785081 | Krawczyk et al. | Jul 1998 | A |
5787274 | Agrawal et al. | Jul 1998 | A |
5790796 | Sadowsky | Aug 1998 | A |
5798757 | Smith | Aug 1998 | A |
5799311 | Agrawal et al. | Aug 1998 | A |
5801701 | Koppolu et al. | Sep 1998 | A |
5802304 | Stone | Sep 1998 | A |
5803715 | Kitchener | Sep 1998 | A |
5806079 | Rivette et al. | Sep 1998 | A |
5815830 | Anthony | Sep 1998 | A |
5819034 | Joseph et al. | Oct 1998 | A |
5826031 | Nielsen | Oct 1998 | A |
5826265 | Van Huben et al. | Oct 1998 | A |
5835777 | Staelin | Nov 1998 | A |
5838906 | Doyle et al. | Nov 1998 | A |
5842018 | Atkinson et al. | Nov 1998 | A |
5845077 | Fawcett | Dec 1998 | A |
5845090 | Collins, III et al. | Dec 1998 | A |
5845122 | Nielsen et al. | Dec 1998 | A |
5854630 | Nielsen | Dec 1998 | A |
5859973 | Carpenter et al. | Jan 1999 | A |
5862372 | Morris et al. | Jan 1999 | A |
5862379 | Rubin et al. | Jan 1999 | A |
5864819 | De Armas et al. | Jan 1999 | A |
5870735 | Agrawal et al. | Feb 1999 | A |
5873088 | Hayashi et al. | Feb 1999 | A |
5875815 | Ungerecht et al. | Mar 1999 | A |
5905492 | Straub et al. | May 1999 | A |
5907621 | Bachman et al. | May 1999 | A |
5907704 | Gudmundson et al. | May 1999 | A |
5910895 | Proskauer et al. | Jun 1999 | A |
5911776 | Guck | Jun 1999 | A |
5915112 | Boutcher | Jun 1999 | A |
5919247 | Van Hoff et al. | Jul 1999 | A |
5922072 | Hutchinson et al. | Jul 1999 | A |
5926796 | Walker et al. | Jul 1999 | A |
5928363 | Ruvolo | Jul 1999 | A |
5929858 | Shibata et al. | Jul 1999 | A |
RE36281 | Zuercher et al. | Aug 1999 | E |
5940075 | Mutschler, III et al. | Aug 1999 | A |
5947711 | Myers et al. | Sep 1999 | A |
5950010 | Hesse et al. | Sep 1999 | A |
5950221 | Draves et al. | Sep 1999 | A |
5953731 | Glaser | Sep 1999 | A |
5956481 | Walsh et al. | Sep 1999 | A |
5960199 | Brodsky et al. | Sep 1999 | A |
5960411 | Hartman et al. | Sep 1999 | A |
5963964 | Nielsen | Oct 1999 | A |
5973696 | Agranat et al. | Oct 1999 | A |
5974454 | Apfel et al. | Oct 1999 | A |
5982370 | Kamper | Nov 1999 | A |
5983348 | Ji | Nov 1999 | A |
5987480 | Donohue et al. | Nov 1999 | A |
5991710 | Papineni et al. | Nov 1999 | A |
5991731 | Colon et al. | Nov 1999 | A |
5991877 | Luckenbaugh | Nov 1999 | A |
5995103 | Ashe | Nov 1999 | A |
5999740 | Rowley | Dec 1999 | A |
6005570 | Gayraud et al. | Dec 1999 | A |
6006227 | Freeman et al. | Dec 1999 | A |
6006241 | Purnaveja et al. | Dec 1999 | A |
6012066 | Discount et al. | Jan 2000 | A |
6014135 | Fernandes | Jan 2000 | A |
6016520 | Facq et al. | Jan 2000 | A |
6018743 | Xu | Jan 2000 | A |
6021403 | Horvitz et al. | Feb 2000 | A |
6026379 | Haller et al. | Feb 2000 | A |
6026416 | Kanerva et al. | Feb 2000 | A |
6031989 | Cordell et al. | Feb 2000 | A |
6035297 | Van Huben et al. | Mar 2000 | A |
6035309 | Dauerer et al. | Mar 2000 | A |
6035336 | Lu et al. | Mar 2000 | A |
6044205 | Reed et al. | Mar 2000 | A |
6052531 | Waldin et al. | Apr 2000 | A |
6052710 | Saliba et al. | Apr 2000 | A |
6054987 | Richardson | Apr 2000 | A |
6057837 | Hatakeda et al. | May 2000 | A |
6058413 | Flores et al. | May 2000 | A |
6065043 | Domenikos et al. | May 2000 | A |
6069626 | Cline et al. | May 2000 | A |
6070184 | Blount et al. | May 2000 | A |
6072870 | Nguyen et al. | Jun 2000 | A |
6078326 | Kilmer et al. | Jun 2000 | A |
6078327 | Liman et al. | Jun 2000 | A |
6078924 | Ainsbury et al. | Jun 2000 | A |
6081610 | Dwork et al. | Jun 2000 | A |
6084585 | Kraft et al. | Jul 2000 | A |
6088679 | Barkley | Jul 2000 | A |
6088708 | Burch et al. | Jul 2000 | A |
6091417 | Lefkowitz | Jul 2000 | A |
6094657 | Hailpern et al. | Jul 2000 | A |
6096096 | Murphy et al. | Aug 2000 | A |
6097382 | Rosen et al. | Aug 2000 | A |
6098081 | Heidorn et al. | Aug 2000 | A |
6105012 | Chang et al. | Aug 2000 | A |
6106570 | Mizuhara | Aug 2000 | A |
6108637 | Blumenau | Aug 2000 | A |
6108783 | Kraweyzk et al. | Aug 2000 | A |
6115646 | Fiszman et al. | Sep 2000 | A |
6121965 | Kenney et al. | Sep 2000 | A |
6122647 | Horowitz et al. | Sep 2000 | A |
6144969 | Inokuchi et al. | Nov 2000 | A |
6151624 | Teare et al. | Nov 2000 | A |
6154128 | Wookey et al. | Nov 2000 | A |
6163772 | Kramer et al. | Dec 2000 | A |
6167521 | Smith et al. | Dec 2000 | A |
6167523 | Strong | Dec 2000 | A |
6178551 | Sana et al. | Jan 2001 | B1 |
6182094 | Humpleman et al. | Jan 2001 | B1 |
6182095 | Leymaster et al. | Jan 2001 | B1 |
6188401 | Peyer | Feb 2001 | B1 |
6191797 | Politis | Feb 2001 | B1 |
6192367 | Hawley et al. | Feb 2001 | B1 |
6195661 | Filepp et al. | Feb 2001 | B1 |
6199204 | Donohue | Mar 2001 | B1 |
6209128 | Gerard et al. | Mar 2001 | B1 |
6216152 | Wong et al. | Apr 2001 | B1 |
6219423 | Davis | Apr 2001 | B1 |
6219698 | Iannucci et al. | Apr 2001 | B1 |
6225996 | Gibb et al. | May 2001 | B1 |
6235027 | Herzon | May 2001 | B1 |
6243088 | McCormack et al. | Jun 2001 | B1 |
6247016 | Rastogi et al. | Jun 2001 | B1 |
6253366 | Mutschler, III | Jun 2001 | B1 |
6253374 | Drsevie et al. | Jun 2001 | B1 |
6263313 | Milsted et al. | Jul 2001 | B1 |
6266810 | Tanaka et al. | Jul 2001 | B1 |
6268852 | Lindhorst et al. | Jul 2001 | B1 |
6272506 | Bell | Aug 2001 | B1 |
6275227 | DeStefano | Aug 2001 | B1 |
6275599 | Adler et al. | Aug 2001 | B1 |
6279042 | Ouchi | Aug 2001 | B1 |
6281896 | Alimpich et al. | Aug 2001 | B1 |
6282709 | Reha et al. | Aug 2001 | B1 |
6282711 | Halpern et al. | Aug 2001 | B1 |
6286033 | Kishinsky et al. | Sep 2001 | B1 |
6286130 | Poulsen et al. | Sep 2001 | B1 |
6292897 | Gennaro et al. | Sep 2001 | B1 |
6292941 | Jollands | Sep 2001 | B1 |
6297819 | Furst | Oct 2001 | B1 |
6300948 | Geller et al. | Oct 2001 | B1 |
6307955 | Zank et al. | Oct 2001 | B1 |
6308179 | Petersen et al. | Oct 2001 | B1 |
6308273 | Goertzel et al. | Oct 2001 | B1 |
6311221 | Raz et al. | Oct 2001 | B1 |
6311271 | Gennaro et al. | Oct 2001 | B1 |
6314415 | Mukherjee | Nov 2001 | B1 |
6321259 | Ouellette et al. | Nov 2001 | B1 |
6321334 | Jerger et al. | Nov 2001 | B1 |
6327628 | Anuff et al. | Dec 2001 | B1 |
6331864 | Coco et al. | Dec 2001 | B1 |
6336214 | Sundaresan | Jan 2002 | B1 |
6336797 | Kazakis et al. | Jan 2002 | B1 |
6342907 | Petty et al. | Jan 2002 | B1 |
6343149 | Motoiwa | Jan 2002 | B1 |
6343302 | Graham | Jan 2002 | B1 |
6343377 | Gessner et al. | Jan 2002 | B1 |
6344862 | Williams et al. | Feb 2002 | B1 |
6345256 | Milsted et al. | Feb 2002 | B1 |
6345278 | Hitchcock et al. | Feb 2002 | B1 |
6345361 | Jerger et al. | Feb 2002 | B1 |
6347323 | Garber et al. | Feb 2002 | B1 |
6349408 | Smith | Feb 2002 | B1 |
6351574 | Yair et al. | Feb 2002 | B1 |
6353851 | Anupam et al. | Mar 2002 | B1 |
6353926 | Parthesarathy et al. | Mar 2002 | B1 |
6356906 | Lippert et al. | Mar 2002 | B1 |
6357038 | Scouten | Mar 2002 | B1 |
6366907 | Fanning et al. | Apr 2002 | B1 |
6366912 | Wallent et al. | Apr 2002 | B1 |
6367013 | Bisbee et al. | Apr 2002 | B1 |
6369840 | Barnett et al. | Apr 2002 | B1 |
6369841 | Salomon et al. | Apr 2002 | B1 |
6374402 | Schmeidler et al. | Apr 2002 | B1 |
6381742 | Forbes et al. | Apr 2002 | B2 |
6381743 | Mutschier, III | Apr 2002 | B1 |
6385767 | Ziebell | May 2002 | B1 |
6389434 | Rivette et al. | May 2002 | B1 |
6393456 | Ambler et al. | May 2002 | B1 |
6393469 | Dozier et al. | May 2002 | B1 |
6396488 | Simmons et al. | May 2002 | B1 |
6397264 | Stasnick et al. | May 2002 | B1 |
6401077 | Godden et al. | Jun 2002 | B1 |
6405221 | Levine et al. | Jun 2002 | B1 |
6405238 | Votipka | Jun 2002 | B1 |
6408311 | Baisley et al. | Jun 2002 | B1 |
6414700 | Kurtenbach et al. | Jul 2002 | B1 |
6421070 | Ramos et al. | Jul 2002 | B1 |
6421656 | Cheng et al. | Jul 2002 | B1 |
6421777 | Pierre-Louis | Jul 2002 | B1 |
6425125 | Fries et al. | Jul 2002 | B1 |
6427142 | Zachary et al. | Jul 2002 | B1 |
6429885 | Saib et al. | Aug 2002 | B1 |
6434563 | Pasquali et al. | Aug 2002 | B1 |
6434564 | Ebert | Aug 2002 | B2 |
6434743 | Click et al. | Aug 2002 | B1 |
6442563 | Bacon et al. | Aug 2002 | B1 |
6442755 | Lemmons et al. | Aug 2002 | B1 |
6446110 | Lection et al. | Sep 2002 | B1 |
6449617 | Quinn et al. | Sep 2002 | B1 |
6457009 | Bollay | Sep 2002 | B1 |
6460058 | Koppolu et al. | Oct 2002 | B2 |
6463419 | Kluss | Oct 2002 | B1 |
6470349 | Heninger et al. | Oct 2002 | B1 |
6473800 | Jerger et al. | Oct 2002 | B1 |
6476828 | Burkett et al. | Nov 2002 | B1 |
6476833 | Moshfeghi | Nov 2002 | B1 |
6477544 | Bolosky et al. | Nov 2002 | B1 |
6480860 | Monday | Nov 2002 | B1 |
6487566 | Sundaresan | Nov 2002 | B1 |
6490601 | Markus et al. | Dec 2002 | B1 |
6493006 | Gourdol et al. | Dec 2002 | B1 |
6493007 | Pang | Dec 2002 | B1 |
6493702 | Adar et al. | Dec 2002 | B1 |
6501864 | Eguchi et al. | Dec 2002 | B1 |
6502101 | Verprauskus et al. | Dec 2002 | B1 |
6502103 | Frey et al. | Dec 2002 | B1 |
6505200 | Ims et al. | Jan 2003 | B1 |
6505230 | Mohan et al. | Jan 2003 | B1 |
6505300 | Chan et al. | Jan 2003 | B2 |
6505344 | Blais et al. | Jan 2003 | B1 |
6507856 | Chen et al. | Jan 2003 | B1 |
6513154 | Porterfield | Jan 2003 | B1 |
6516322 | Meredith | Feb 2003 | B1 |
6519617 | Wanderski et al. | Feb 2003 | B1 |
6523027 | Underwood | Feb 2003 | B1 |
6529909 | Bowman-Amuah | Mar 2003 | B1 |
6535229 | Kraft | Mar 2003 | B1 |
6535883 | Lee et al. | Mar 2003 | B1 |
6539464 | Getov | Mar 2003 | B1 |
RE38070 | Spies et al. | Apr 2003 | E |
6546546 | Van Doorn | Apr 2003 | B1 |
6546554 | Schmidt et al. | Apr 2003 | B1 |
6549221 | Brown et al. | Apr 2003 | B1 |
6549878 | Lowry et al. | Apr 2003 | B1 |
6549922 | Srivastava et al. | Apr 2003 | B1 |
6553402 | Makarios et al. | Apr 2003 | B1 |
6560616 | Garber | May 2003 | B1 |
6560620 | Ching | May 2003 | B1 |
6560640 | Smethers | May 2003 | B2 |
6563514 | Samar | May 2003 | B1 |
6571253 | Thompson et al. | May 2003 | B1 |
6578144 | Gennaro et al. | Jun 2003 | B1 |
6581061 | Graham | Jun 2003 | B2 |
6584469 | Chiang et al. | Jun 2003 | B1 |
6584548 | Bourne et al. | Jun 2003 | B1 |
6585778 | Hind et al. | Jul 2003 | B1 |
6589290 | Maxwell et al. | Jul 2003 | B1 |
6594686 | Edwards et al. | Jul 2003 | B1 |
6598219 | Lau | Jul 2003 | B1 |
6603489 | Edlund et al. | Aug 2003 | B1 |
6604099 | Chung et al. | Aug 2003 | B1 |
6604238 | Lim et al. | Aug 2003 | B1 |
6606606 | Starr | Aug 2003 | B2 |
6609200 | Anderson et al. | Aug 2003 | B2 |
6611812 | Hurtado et al. | Aug 2003 | B2 |
6611822 | Beams et al. | Aug 2003 | B1 |
6611840 | Baer et al. | Aug 2003 | B1 |
6611843 | Jacobs | Aug 2003 | B1 |
6613098 | Sorge et al. | Sep 2003 | B1 |
6615276 | Mastrianni et al. | Sep 2003 | B1 |
6625622 | Henrickson et al. | Sep 2003 | B1 |
6629109 | Koshisaka | Sep 2003 | B1 |
6631357 | Perkowski | Oct 2003 | B1 |
6631379 | Cox | Oct 2003 | B2 |
6631497 | Jamshidi et al. | Oct 2003 | B1 |
6631519 | Nicholson et al. | Oct 2003 | B1 |
6632251 | Rutten et al. | Oct 2003 | B1 |
6633315 | Sobeski et al. | Oct 2003 | B1 |
6635089 | Burkett et al. | Oct 2003 | B1 |
6636845 | Chau et al. | Oct 2003 | B2 |
6640249 | Bowman-Amuah | Oct 2003 | B1 |
6643633 | Chau et al. | Nov 2003 | B2 |
6643652 | Helgeson et al. | Nov 2003 | B2 |
6643684 | Malkin et al. | Nov 2003 | B1 |
6651217 | Kennedy et al. | Nov 2003 | B1 |
6654737 | Nunez | Nov 2003 | B1 |
6654932 | Bahrs et al. | Nov 2003 | B1 |
6658417 | Stakutis et al. | Dec 2003 | B1 |
6658622 | Aiken et al. | Dec 2003 | B1 |
6658652 | Alexander et al. | Dec 2003 | B1 |
6661920 | Skinner | Dec 2003 | B1 |
6668369 | Krebs et al. | Dec 2003 | B1 |
6671805 | Brown et al. | Dec 2003 | B1 |
6675202 | Perttunen | Jan 2004 | B1 |
6678717 | Schneider | Jan 2004 | B1 |
6681370 | Gounares et al. | Jan 2004 | B2 |
6691230 | Bardon | Feb 2004 | B1 |
6691281 | Sorge et al. | Feb 2004 | B1 |
6697944 | Jones et al. | Feb 2004 | B1 |
6701434 | Rohatgi | Mar 2004 | B1 |
6701486 | Weber et al. | Mar 2004 | B1 |
6704906 | Yankovich et al. | Mar 2004 | B1 |
6708172 | Wong et al. | Mar 2004 | B1 |
6711679 | Guski et al. | Mar 2004 | B1 |
6720985 | Lapstun et al. | Apr 2004 | B1 |
6725426 | Pavlov | Apr 2004 | B1 |
6728755 | de Ment | Apr 2004 | B1 |
6732102 | Khandekar et al. | May 2004 | B1 |
6735721 | Morrow et al. | May 2004 | B1 |
6745367 | Bates et al. | Jun 2004 | B1 |
6748385 | Rodkin | Jun 2004 | B1 |
6748569 | Brooke et al. | Jun 2004 | B1 |
6751777 | Bates et al. | Jun 2004 | B2 |
6754874 | Richman | Jun 2004 | B1 |
6757826 | Paltenghe | Jun 2004 | B1 |
6757868 | Glaser et al. | Jun 2004 | B1 |
6760723 | Oshinsky et al. | Jul 2004 | B2 |
6763343 | Brooke et al. | Jul 2004 | B1 |
6766526 | Ellis | Jul 2004 | B1 |
6772139 | Smith, III | Aug 2004 | B1 |
6772165 | O'Carroll | Aug 2004 | B2 |
6774926 | Ellis et al. | Aug 2004 | B1 |
6779154 | Nussbaum et al. | Aug 2004 | B1 |
6781609 | Barker et al. | Aug 2004 | B1 |
6782144 | Bellavita et al. | Aug 2004 | B2 |
6799299 | Li et al. | Sep 2004 | B1 |
6801929 | Donoho et al. | Oct 2004 | B1 |
6816849 | Halt, Jr. | Nov 2004 | B1 |
6823478 | Prologo et al. | Nov 2004 | B1 |
6828992 | Freeman et al. | Dec 2004 | B1 |
6829745 | Yassin et al. | Dec 2004 | B2 |
6845380 | Su et al. | Jan 2005 | B2 |
6845499 | Srivastava et al. | Jan 2005 | B2 |
6847387 | Roth | Jan 2005 | B2 |
6848078 | Birsan et al. | Jan 2005 | B1 |
6850895 | Brodersen et al. | Feb 2005 | B2 |
6862689 | Bergsten et al. | Mar 2005 | B2 |
6871220 | Rajan et al. | Mar 2005 | B1 |
6871345 | Crow et al. | Mar 2005 | B1 |
6874084 | Dobner et al. | Mar 2005 | B1 |
6874130 | Baweja et al. | Mar 2005 | B1 |
6874143 | Murray | Mar 2005 | B1 |
6876996 | Czajkowski et al. | Apr 2005 | B2 |
6883168 | James et al. | Apr 2005 | B1 |
6885748 | Wang | Apr 2005 | B1 |
6889359 | Conner et al. | May 2005 | B1 |
6901403 | Bata et al. | May 2005 | B1 |
6915454 | Moore et al. | Jul 2005 | B1 |
6925609 | Lucke | Aug 2005 | B1 |
6931532 | Davis et al. | Aug 2005 | B1 |
6941129 | Marce et al. | Sep 2005 | B2 |
6941510 | Ozzie et al. | Sep 2005 | B1 |
6941511 | Hind et al. | Sep 2005 | B1 |
6941521 | Lin et al. | Sep 2005 | B2 |
6948129 | Loghmani | Sep 2005 | B1 |
6948133 | Haley | Sep 2005 | B2 |
6948135 | Ruthfield et al. | Sep 2005 | B1 |
6950980 | Malcolm | Sep 2005 | B1 |
6950987 | Hargraves et al. | Sep 2005 | B1 |
6957395 | Jobs et al. | Oct 2005 | B1 |
6961897 | Peel, Jr. et al. | Nov 2005 | B1 |
6963875 | Moore et al. | Nov 2005 | B2 |
6968503 | Chang et al. | Nov 2005 | B1 |
6968505 | Stoll et al. | Nov 2005 | B2 |
6993714 | Kaler et al. | Jan 2006 | B2 |
6993722 | Greer et al. | Jan 2006 | B1 |
6996776 | Makely et al. | Feb 2006 | B1 |
6996781 | Myers et al. | Feb 2006 | B1 |
7000179 | Yankovich et al. | Feb 2006 | B2 |
7002560 | Graham | Feb 2006 | B2 |
7003548 | Barck et al. | Feb 2006 | B1 |
7003722 | Rothchiller et al. | Feb 2006 | B2 |
7010580 | Fu et al. | Mar 2006 | B1 |
7013340 | Burd et al. | Mar 2006 | B1 |
7020869 | Abriari et al. | Mar 2006 | B2 |
7024417 | Russakovsky et al. | Apr 2006 | B1 |
7032170 | Poulose | Apr 2006 | B2 |
7036072 | Sulistio et al. | Apr 2006 | B1 |
7039875 | Khalfay et al. | May 2006 | B2 |
7043687 | Knauss et al. | May 2006 | B2 |
7051273 | Holt et al. | May 2006 | B1 |
7058645 | Seto et al. | Jun 2006 | B2 |
7058663 | Johnston et al. | Jun 2006 | B2 |
7062764 | Cohen et al. | Jun 2006 | B2 |
7065493 | Homsi | Jun 2006 | B1 |
7076728 | Davis et al. | Jul 2006 | B2 |
7080083 | Kim et al. | Jul 2006 | B2 |
7080325 | Treibach-Heck et al. | Jul 2006 | B2 |
7081882 | Sowden et al. | Jul 2006 | B2 |
7086009 | Resnick et al. | Aug 2006 | B2 |
7086042 | Abe et al. | Aug 2006 | B2 |
7088374 | David et al. | Aug 2006 | B2 |
7092992 | Yu | Aug 2006 | B1 |
7100147 | Miller et al. | Aug 2006 | B2 |
7103611 | Murthy et al. | Sep 2006 | B2 |
7106888 | Silverbrook et al. | Sep 2006 | B1 |
7107282 | Yalmanchi | Sep 2006 | B1 |
7107521 | Santos | Sep 2006 | B2 |
7107522 | Morgan et al. | Sep 2006 | B1 |
7107539 | Abbott et al. | Sep 2006 | B2 |
7120863 | Wang | Oct 2006 | B1 |
7124167 | Bellotti et al. | Oct 2006 | B1 |
7124251 | Clark et al. | Oct 2006 | B2 |
7130885 | Chandra et al. | Oct 2006 | B2 |
7143341 | Kohli | Nov 2006 | B1 |
7146564 | Kim et al. | Dec 2006 | B2 |
7152027 | Andrade et al. | Dec 2006 | B2 |
7152205 | Day et al. | Dec 2006 | B2 |
7159011 | Knight et al. | Jan 2007 | B1 |
7168035 | Bell et al. | Jan 2007 | B1 |
7178166 | Taylor et al. | Feb 2007 | B1 |
7190376 | Tonisson | Mar 2007 | B1 |
7191394 | Ardeleanu et al. | Mar 2007 | B1 |
7197515 | Rivers-Moore et al. | Mar 2007 | B2 |
7200665 | Eshghi et al. | Apr 2007 | B2 |
7200816 | Falk et al. | Apr 2007 | B2 |
7213200 | Abe et al. | May 2007 | B2 |
7228541 | Gupton et al. | Jun 2007 | B2 |
7234105 | Bezrukov et al. | Jun 2007 | B2 |
7236982 | Zlatanov et al. | Jun 2007 | B2 |
7237114 | Rosenberg | Jun 2007 | B1 |
7249328 | Davis | Jul 2007 | B1 |
7251777 | Valtchev et al. | Jul 2007 | B1 |
7269664 | Hutsch et al. | Sep 2007 | B2 |
7269788 | Gharavy | Sep 2007 | B2 |
7272789 | O'Brien | Sep 2007 | B2 |
7272815 | Eldridge | Sep 2007 | B1 |
7275216 | Paoli et al. | Sep 2007 | B2 |
7281018 | Begun et al. | Oct 2007 | B1 |
7281206 | Schnelle et al. | Oct 2007 | B2 |
7281245 | Reynar et al. | Oct 2007 | B2 |
7284208 | Matthews | Oct 2007 | B2 |
7287218 | Knotz et al. | Oct 2007 | B1 |
7293268 | Masuda et al. | Nov 2007 | B2 |
7296017 | Larcheveque et al. | Nov 2007 | B2 |
7308646 | Cohen et al. | Dec 2007 | B1 |
7313757 | Bradley et al. | Dec 2007 | B2 |
7313758 | Kozlov | Dec 2007 | B2 |
7316003 | Dulepet et al. | Jan 2008 | B1 |
7318237 | Moriconi et al. | Jan 2008 | B2 |
7334187 | Stanciu et al. | Feb 2008 | B1 |
7337391 | Clarke et al. | Feb 2008 | B2 |
7337392 | Lue | Feb 2008 | B2 |
7346610 | Ruthfield et al. | Mar 2008 | B2 |
7346840 | Ravishankar et al. | Mar 2008 | B1 |
7346848 | Ruthfield et al. | Mar 2008 | B1 |
7350141 | Kotler et al. | Mar 2008 | B2 |
7370066 | Sikchi et al. | May 2008 | B1 |
7373595 | Jones et al. | May 2008 | B2 |
7376673 | Chalecki et al. | May 2008 | B1 |
7406660 | Sikchi et al. | Jul 2008 | B1 |
7412649 | Emek et al. | Aug 2008 | B2 |
7424671 | Elza et al. | Sep 2008 | B2 |
7428699 | Kane et al. | Sep 2008 | B1 |
7430711 | Rivers-Moore et al. | Sep 2008 | B2 |
7441200 | Savage | Oct 2008 | B2 |
7451392 | Chalecki et al. | Nov 2008 | B1 |
7490109 | Sikchi et al. | Feb 2009 | B1 |
7490167 | Pena et al. | Feb 2009 | B2 |
7496632 | Chapman et al. | Feb 2009 | B2 |
7496837 | Larcheveque et al. | Feb 2009 | B1 |
7512896 | Rockey et al. | Mar 2009 | B2 |
7516399 | Hsu et al. | Apr 2009 | B2 |
7533268 | Catorcini | May 2009 | B1 |
7543228 | Kelkar | Jun 2009 | B2 |
7549115 | Kotler | Jun 2009 | B2 |
7562215 | Cummins | Jul 2009 | B2 |
7568101 | Catorcini | Jul 2009 | B1 |
7581177 | Mollicone et al. | Aug 2009 | B1 |
7584417 | Friend | Sep 2009 | B2 |
7610562 | Rockey et al. | Oct 2009 | B2 |
7613996 | Dallett et al. | Nov 2009 | B2 |
7624356 | Rockey et al. | Nov 2009 | B1 |
7653687 | Resiman | Jan 2010 | B2 |
7669116 | Lopata et al. | Feb 2010 | B2 |
7673227 | Kotler | Mar 2010 | B2 |
7673228 | Kelkar | Mar 2010 | B2 |
7676843 | Stott | Mar 2010 | B1 |
7689929 | Ruthfield | Mar 2010 | B2 |
7692636 | Kim | Apr 2010 | B2 |
7712022 | Smuga | May 2010 | B2 |
7712048 | Rockey et al. | May 2010 | B2 |
7721190 | Sikchi | May 2010 | B2 |
7725834 | Bell | May 2010 | B2 |
7739602 | Feng et al. | Jun 2010 | B2 |
7743063 | James et al. | Jun 2010 | B2 |
7774620 | Stott | Aug 2010 | B1 |
7779027 | James | Aug 2010 | B2 |
7809698 | Salz et al. | Oct 2010 | B1 |
7818677 | Ruthfield | Oct 2010 | B2 |
7865477 | Larcheveque | Jan 2011 | B2 |
7900134 | Ardeleanu | Mar 2011 | B2 |
7904801 | Catorcini et al. | Mar 2011 | B2 |
7913159 | Larcheveque | Mar 2011 | B2 |
7925621 | Sikchi | Apr 2011 | B2 |
7937651 | Kelkar | May 2011 | B2 |
20010003828 | Peterson et al. | Jun 2001 | A1 |
20010007109 | Lange | Jul 2001 | A1 |
20010016880 | Cai et al. | Aug 2001 | A1 |
20010022592 | Alimpich et al. | Sep 2001 | A1 |
20010024195 | Hayakawa | Sep 2001 | A1 |
20010027472 | Guan | Oct 2001 | A1 |
20010037345 | Kiernan et al. | Nov 2001 | A1 |
20010044850 | Raz et al. | Nov 2001 | A1 |
20010051907 | Kumar et al. | Dec 2001 | A1 |
20010051928 | Brody | Dec 2001 | A1 |
20010052121 | Masuda et al. | Dec 2001 | A1 |
20010054004 | Powers | Dec 2001 | A1 |
20010056411 | Lindskog et al. | Dec 2001 | A1 |
20010056429 | Moore et al. | Dec 2001 | A1 |
20010056460 | Sahota et al. | Dec 2001 | A1 |
20020010700 | Wotring | Jan 2002 | A1 |
20020010743 | Ryan et al. | Jan 2002 | A1 |
20020010746 | Jilk et al. | Jan 2002 | A1 |
20020010855 | Reshef et al. | Jan 2002 | A1 |
20020013788 | Pennell et al. | Jan 2002 | A1 |
20020019812 | Board et al. | Feb 2002 | A1 |
20020019941 | Chan et al. | Feb 2002 | A1 |
20020023111 | Arora et al. | Feb 2002 | A1 |
20020023113 | Hsing et al. | Feb 2002 | A1 |
20020026441 | Kutay et al. | Feb 2002 | A1 |
20020026461 | Kutay et al. | Feb 2002 | A1 |
20020026462 | Shotton et al. | Feb 2002 | A1 |
20020032590 | Anand et al. | Mar 2002 | A1 |
20020032692 | Suzuki et al. | Mar 2002 | A1 |
20020032706 | Perla et al. | Mar 2002 | A1 |
20020032768 | Voskuil | Mar 2002 | A1 |
20020035579 | Wang et al. | Mar 2002 | A1 |
20020035581 | Reynar et al. | Mar 2002 | A1 |
20020035617 | Lynch et al. | Mar 2002 | A1 |
20020040469 | Pramberger | Apr 2002 | A1 |
20020049790 | Ricker et al. | Apr 2002 | A1 |
20020052769 | Navani et al. | May 2002 | A1 |
20020053021 | Rice et al. | May 2002 | A1 |
20020054115 | Mack et al. | May 2002 | A1 |
20020054126 | Gamon | May 2002 | A1 |
20020054128 | Lau et al. | May 2002 | A1 |
20020057297 | Grimes et al. | May 2002 | A1 |
20020065798 | Bostleman et al. | May 2002 | A1 |
20020065847 | Furukawa et al. | May 2002 | A1 |
20020070973 | Croley | Jun 2002 | A1 |
20020072951 | Lee et al. | Jun 2002 | A1 |
20020078074 | Cho et al. | Jun 2002 | A1 |
20020078103 | Gorman et al. | Jun 2002 | A1 |
20020083145 | Perinpanathan | Jun 2002 | A1 |
20020083148 | Shaw et al. | Jun 2002 | A1 |
20020083318 | Larose | Jun 2002 | A1 |
20020091738 | Rohrabaugh et al. | Jul 2002 | A1 |
20020099952 | Lambert et al. | Jul 2002 | A1 |
20020100027 | Binding et al. | Jul 2002 | A1 |
20020107885 | Brooks et al. | Aug 2002 | A1 |
20020111699 | Melli et al. | Aug 2002 | A1 |
20020111932 | Roberge et al. | Aug 2002 | A1 |
20020112224 | Cox | Aug 2002 | A1 |
20020124172 | Manahan | Sep 2002 | A1 |
20020129056 | Conant | Sep 2002 | A1 |
20020133484 | Chau et al. | Sep 2002 | A1 |
20020147726 | Yehia et al. | Oct 2002 | A1 |
20020147748 | Huang | Oct 2002 | A1 |
20020152222 | Holbrook | Oct 2002 | A1 |
20020152244 | Dean et al. | Oct 2002 | A1 |
20020156772 | Chau et al. | Oct 2002 | A1 |
20020156846 | Rawat et al. | Oct 2002 | A1 |
20020156905 | Weissman | Oct 2002 | A1 |
20020156929 | Hekmatpour | Oct 2002 | A1 |
20020169752 | Kusama et al. | Nov 2002 | A1 |
20020169789 | Kutay et al. | Nov 2002 | A1 |
20020174147 | Wang et al. | Nov 2002 | A1 |
20020174417 | Sijacic et al. | Nov 2002 | A1 |
20020178187 | Rasmussen et al. | Nov 2002 | A1 |
20020178380 | Wolf et al. | Nov 2002 | A1 |
20020184188 | Mandyam et al. | Dec 2002 | A1 |
20020184213 | Lau et al. | Dec 2002 | A1 |
20020184219 | Preisig et al. | Dec 2002 | A1 |
20020184401 | Kadel, Jr. et al. | Dec 2002 | A1 |
20020184485 | Dray et al. | Dec 2002 | A1 |
20020184491 | Morgan et al. | Dec 2002 | A1 |
20020188597 | Kern et al. | Dec 2002 | A1 |
20020188613 | Chakraborty et al. | Dec 2002 | A1 |
20020194219 | Bradley et al. | Dec 2002 | A1 |
20020196281 | Audleman et al. | Dec 2002 | A1 |
20020196288 | Emrani | Dec 2002 | A1 |
20020198891 | Li et al. | Dec 2002 | A1 |
20020198935 | Crandall, Sr. et al. | Dec 2002 | A1 |
20030004951 | Chokshi | Jan 2003 | A1 |
20030007000 | Carlson et al. | Jan 2003 | A1 |
20030014397 | Chau et al. | Jan 2003 | A1 |
20030014406 | Faieta et al. | Jan 2003 | A1 |
20030018668 | Britton et al. | Jan 2003 | A1 |
20030020746 | Chen et al. | Jan 2003 | A1 |
20030023641 | Gorman et al. | Jan 2003 | A1 |
20030025693 | Haley | Feb 2003 | A1 |
20030025732 | Prichard | Feb 2003 | A1 |
20030026507 | Zlotnick | Feb 2003 | A1 |
20030028550 | Lee et al. | Feb 2003 | A1 |
20030028762 | Trilli et al. | Feb 2003 | A1 |
20030029911 | Kitayama | Feb 2003 | A1 |
20030033037 | Yuen et al. | Feb 2003 | A1 |
20030033179 | Katz et al. | Feb 2003 | A1 |
20030033606 | Puente et al. | Feb 2003 | A1 |
20030037021 | Krothappalli et al. | Feb 2003 | A1 |
20030037303 | Bodlaender et al. | Feb 2003 | A1 |
20030038788 | Demartines et al. | Feb 2003 | A1 |
20030038846 | Hori et al. | Feb 2003 | A1 |
20030043986 | Creamer et al. | Mar 2003 | A1 |
20030046665 | Ilin | Mar 2003 | A1 |
20030048301 | Menninger | Mar 2003 | A1 |
20030051243 | Lemmons et al. | Mar 2003 | A1 |
20030055811 | Stork et al. | Mar 2003 | A1 |
20030055828 | Koch et al. | Mar 2003 | A1 |
20030056198 | Al-Azzawe et al. | Mar 2003 | A1 |
20030058286 | Dano | Mar 2003 | A1 |
20030061386 | Brown et al. | Mar 2003 | A1 |
20030061567 | Brown et al. | Mar 2003 | A1 |
20030069881 | Huttunen | Apr 2003 | A1 |
20030074279 | Viswanath et al. | Apr 2003 | A1 |
20030084424 | Reddy et al. | May 2003 | A1 |
20030093755 | O'Carroll | May 2003 | A1 |
20030110443 | Yankovich et al. | Jun 2003 | A1 |
20030120578 | Newman | Jun 2003 | A1 |
20030120651 | Bernstein et al. | Jun 2003 | A1 |
20030120659 | Sridhar | Jun 2003 | A1 |
20030120671 | Kim et al. | Jun 2003 | A1 |
20030120686 | Kim et al. | Jun 2003 | A1 |
20030126555 | Aggarwal et al. | Jul 2003 | A1 |
20030128196 | Lapstun et al. | Jul 2003 | A1 |
20030135553 | Pendakur | Jul 2003 | A1 |
20030135825 | Gertner et al. | Jul 2003 | A1 |
20030140132 | Champagne et al. | Jul 2003 | A1 |
20030140160 | Raz et al. | Jul 2003 | A1 |
20030142072 | Lapstun et al. | Jul 2003 | A1 |
20030149737 | Lambert et al. | Aug 2003 | A1 |
20030149934 | Worden | Aug 2003 | A1 |
20030154464 | Ullmann et al. | Aug 2003 | A1 |
20030158897 | Ben-Natan et al. | Aug 2003 | A1 |
20030163285 | Nakamura et al. | Aug 2003 | A1 |
20030167277 | Hejlsberg et al. | Sep 2003 | A1 |
20030172113 | Cameron et al. | Sep 2003 | A1 |
20030182268 | Lal | Sep 2003 | A1 |
20030182327 | Ramanujam et al. | Sep 2003 | A1 |
20030187756 | Klivington et al. | Oct 2003 | A1 |
20030187930 | Ghaffar et al. | Oct 2003 | A1 |
20030188260 | Jensen et al. | Oct 2003 | A1 |
20030189593 | Yarvin | Oct 2003 | A1 |
20030192008 | Lee | Oct 2003 | A1 |
20030200506 | Abe et al. | Oct 2003 | A1 |
20030204481 | Lau | Oct 2003 | A1 |
20030204511 | Brundage et al. | Oct 2003 | A1 |
20030204814 | Elo et al. | Oct 2003 | A1 |
20030205615 | Marappan | Nov 2003 | A1 |
20030210428 | Bevlin et al. | Nov 2003 | A1 |
20030212664 | Breining et al. | Nov 2003 | A1 |
20030212902 | van der Made | Nov 2003 | A1 |
20030212988 | Tsai et al. | Nov 2003 | A1 |
20030217053 | Bachman et al. | Nov 2003 | A1 |
20030218620 | Lai et al. | Nov 2003 | A1 |
20030220930 | Milleker et al. | Nov 2003 | A1 |
20030225469 | DeRemer et al. | Dec 2003 | A1 |
20030225768 | Chaudhuri et al. | Dec 2003 | A1 |
20030225829 | Pena et al. | Dec 2003 | A1 |
20030226111 | Wirts et al. | Dec 2003 | A1 |
20030226132 | Tondreau et al. | Dec 2003 | A1 |
20030229716 | Holland | Dec 2003 | A1 |
20030233374 | Spinola et al. | Dec 2003 | A1 |
20030233644 | Cohen et al. | Dec 2003 | A1 |
20030236859 | Vaschillo et al. | Dec 2003 | A1 |
20030236903 | Piotrowski | Dec 2003 | A1 |
20030237046 | Parker et al. | Dec 2003 | A1 |
20030237047 | Borson | Dec 2003 | A1 |
20040002939 | Arora et al. | Jan 2004 | A1 |
20040002950 | Brennan et al. | Jan 2004 | A1 |
20040003031 | Brown et al. | Jan 2004 | A1 |
20040003341 | alSafadi et al. | Jan 2004 | A1 |
20040003353 | Rivera et al. | Jan 2004 | A1 |
20040003389 | Reynar et al. | Jan 2004 | A1 |
20040006744 | Jones et al. | Jan 2004 | A1 |
20040010752 | Chan et al. | Jan 2004 | A1 |
20040010753 | Salter | Jan 2004 | A1 |
20040015778 | Britton et al. | Jan 2004 | A1 |
20040015783 | Lennon et al. | Jan 2004 | A1 |
20040024720 | Fairweather | Feb 2004 | A1 |
20040024842 | Witt | Feb 2004 | A1 |
20040030991 | Hepworth et al. | Feb 2004 | A1 |
20040031052 | Wannamaker et al. | Feb 2004 | A1 |
20040039881 | Shoebridge et al. | Feb 2004 | A1 |
20040039990 | Bakar et al. | Feb 2004 | A1 |
20040039993 | Kougiouris et al. | Feb 2004 | A1 |
20040044961 | Pesenson | Mar 2004 | A1 |
20040044965 | Toyama et al. | Mar 2004 | A1 |
20040046787 | Henry et al. | Mar 2004 | A1 |
20040046789 | Inanoria | Mar 2004 | A1 |
20040054966 | Busch et al. | Mar 2004 | A1 |
20040059754 | Barghout et al. | Mar 2004 | A1 |
20040073565 | Kaufman et al. | Apr 2004 | A1 |
20040073868 | Easter et al. | Apr 2004 | A1 |
20040073924 | Pendakur | Apr 2004 | A1 |
20040078756 | Napper et al. | Apr 2004 | A1 |
20040083426 | Sahu | Apr 2004 | A1 |
20040088647 | Miller et al. | May 2004 | A1 |
20040088652 | Abe et al. | May 2004 | A1 |
20040093296 | Phelan et al. | May 2004 | A1 |
20040093596 | Koyano | May 2004 | A1 |
20040107367 | Kisters | Jun 2004 | A1 |
20040117439 | Levett et al. | Jun 2004 | A1 |
20040117769 | Lauzon et al. | Jun 2004 | A1 |
20040123277 | Schrader et al. | Jun 2004 | A1 |
20040128296 | Krishnamurthy et al. | Jul 2004 | A1 |
20040139400 | Allam et al. | Jul 2004 | A1 |
20040146199 | Berkner et al. | Jul 2004 | A1 |
20040148178 | Brain | Jul 2004 | A1 |
20040148514 | Fee et al. | Jul 2004 | A1 |
20040148571 | Lue | Jul 2004 | A1 |
20040162741 | Flaxer et al. | Aug 2004 | A1 |
20040163041 | Engel | Aug 2004 | A1 |
20040163046 | Chu et al. | Aug 2004 | A1 |
20040172442 | Ripley | Sep 2004 | A1 |
20040181543 | Wu et al. | Sep 2004 | A1 |
20040181711 | Johnson et al. | Sep 2004 | A1 |
20040186762 | Beaven et al. | Sep 2004 | A1 |
20040189708 | Larcheveque et al. | Sep 2004 | A1 |
20040189716 | Paoli et al. | Sep 2004 | A1 |
20040194035 | Chakraborty | Sep 2004 | A1 |
20040196266 | Matsuura et al. | Oct 2004 | A1 |
20040199572 | Hunt et al. | Oct 2004 | A1 |
20040205473 | Fisher et al. | Oct 2004 | A1 |
20040205525 | Murren et al. | Oct 2004 | A1 |
20040205534 | Koelle | Oct 2004 | A1 |
20040205571 | Adler et al. | Oct 2004 | A1 |
20040205592 | Huang | Oct 2004 | A1 |
20040205605 | Adler et al. | Oct 2004 | A1 |
20040205644 | Shaughnessy et al. | Oct 2004 | A1 |
20040205653 | Hadfield et al. | Oct 2004 | A1 |
20040205671 | Sukehiro et al. | Oct 2004 | A1 |
20040210599 | Friedman et al. | Oct 2004 | A1 |
20040210645 | Kouznetsov et al. | Oct 2004 | A1 |
20040216084 | Brown et al. | Oct 2004 | A1 |
20040221238 | Cifra et al. | Nov 2004 | A1 |
20040221245 | Chickles et al. | Nov 2004 | A1 |
20040225749 | Pavlik et al. | Nov 2004 | A1 |
20040230676 | Spivack et al. | Nov 2004 | A1 |
20040237030 | Malkin | Nov 2004 | A1 |
20040237120 | Lewin et al. | Nov 2004 | A1 |
20040260593 | Abraham-Fuchs et al. | Dec 2004 | A1 |
20040261019 | Imamura et al. | Dec 2004 | A1 |
20040261032 | Olander et al. | Dec 2004 | A1 |
20040268229 | Paoli et al. | Dec 2004 | A1 |
20040268259 | Rockey et al. | Dec 2004 | A1 |
20040268260 | Rockey et al. | Dec 2004 | A1 |
20050004893 | Sangroniz | Jan 2005 | A1 |
20050005248 | Rockey et al. | Jan 2005 | A1 |
20050015279 | Rucker | Jan 2005 | A1 |
20050015732 | Vedula et al. | Jan 2005 | A1 |
20050022115 | Baumgartner et al. | Jan 2005 | A1 |
20050027676 | Eichstaedt | Feb 2005 | A1 |
20050027757 | Kiessig et al. | Feb 2005 | A1 |
20050028073 | Henry et al. | Feb 2005 | A1 |
20050033626 | Kruse et al. | Feb 2005 | A1 |
20050033657 | Herrington et al. | Feb 2005 | A1 |
20050033728 | James | Feb 2005 | A1 |
20050038711 | Marlelo | Feb 2005 | A1 |
20050050066 | Hughes | Mar 2005 | A1 |
20050055627 | Lloyd et al. | Mar 2005 | A1 |
20050060324 | Johnson et al. | Mar 2005 | A1 |
20050060647 | Doan et al. | Mar 2005 | A1 |
20050060721 | Choudhary et al. | Mar 2005 | A1 |
20050065933 | Goering | Mar 2005 | A1 |
20050065936 | Goering | Mar 2005 | A1 |
20050066287 | Tattrie et al. | Mar 2005 | A1 |
20050071752 | Marlatt | Mar 2005 | A1 |
20050076022 | Wu et al. | Apr 2005 | A1 |
20050076049 | Qubti et al. | Apr 2005 | A1 |
20050080801 | Kothandaraman et al. | Apr 2005 | A1 |
20050091285 | Krishnan et al. | Apr 2005 | A1 |
20050091305 | Lange et al. | Apr 2005 | A1 |
20050097536 | Bernstein et al. | May 2005 | A1 |
20050102370 | Lin et al. | May 2005 | A1 |
20050102612 | Allan et al. | May 2005 | A1 |
20050108104 | Woo | May 2005 | A1 |
20050108262 | Fawcett, Jr. et al. | May 2005 | A1 |
20050108624 | Carrier | May 2005 | A1 |
20050108633 | Sahota et al. | May 2005 | A1 |
20050114757 | Sahota et al. | May 2005 | A1 |
20050114764 | Gudenkauf et al. | May 2005 | A1 |
20050119910 | Schneider | Jun 2005 | A1 |
20050132043 | Wang et al. | Jun 2005 | A1 |
20050132196 | Dietl | Jun 2005 | A1 |
20050138031 | Wefers | Jun 2005 | A1 |
20050138086 | Pecht-Seibert | Jun 2005 | A1 |
20050138539 | Bravery et al. | Jun 2005 | A1 |
20050149375 | Wefers | Jul 2005 | A1 |
20050149726 | Joshi et al. | Jul 2005 | A1 |
20050159136 | Rouse et al. | Jul 2005 | A1 |
20050160398 | Bjornson et al. | Jul 2005 | A1 |
20050165615 | Minar | Jul 2005 | A1 |
20050171746 | Thalhammer-Reyero | Aug 2005 | A1 |
20050182645 | Ehlis et al. | Aug 2005 | A1 |
20050183006 | Rivers-Moore et al. | Aug 2005 | A1 |
20050198086 | Moore et al. | Sep 2005 | A1 |
20050198125 | Macleod Beck et al. | Sep 2005 | A1 |
20050198247 | Perry et al. | Sep 2005 | A1 |
20050210263 | Levas et al. | Sep 2005 | A1 |
20050216439 | Kawakita | Sep 2005 | A1 |
20050216452 | Teague | Sep 2005 | A1 |
20050216837 | Washburn | Sep 2005 | A1 |
20050223063 | Chang et al. | Oct 2005 | A1 |
20050223320 | Brintzenhofe et al. | Oct 2005 | A1 |
20050228887 | Wang | Oct 2005 | A1 |
20050234890 | Enzler et al. | Oct 2005 | A1 |
20050240620 | Danner et al. | Oct 2005 | A1 |
20050240876 | Myers et al. | Oct 2005 | A1 |
20050246304 | Knight et al. | Nov 2005 | A1 |
20050256933 | Millington et al. | Nov 2005 | A1 |
20050257148 | Goodman et al. | Nov 2005 | A1 |
20050262112 | Moore | Nov 2005 | A1 |
20050268100 | Gasparini et al. | Dec 2005 | A1 |
20050268217 | Garrison | Dec 2005 | A1 |
20050268222 | Cheng | Dec 2005 | A1 |
20050289147 | Khan et al. | Dec 2005 | A1 |
20050289468 | Kahn et al. | Dec 2005 | A1 |
20060004703 | Spivack et al. | Jan 2006 | A1 |
20060004910 | Burd et al. | Jan 2006 | A1 |
20060010386 | Khan | Jan 2006 | A1 |
20060020586 | Prompt et al. | Jan 2006 | A1 |
20060020883 | Kothari et al. | Jan 2006 | A1 |
20060026500 | Qa 'Im-maqami' | Feb 2006 | A1 |
20060026534 | Ruthfield et al. | Feb 2006 | A1 |
20060031757 | Vincent, III | Feb 2006 | A9 |
20060036995 | Chickles et al. | Feb 2006 | A1 |
20060041593 | Borthakur et al. | Feb 2006 | A1 |
20060041838 | Khan | Feb 2006 | A1 |
20060053293 | Zager et al. | Mar 2006 | A1 |
20060059107 | Elmore et al. | Mar 2006 | A1 |
20060059434 | Boss et al. | Mar 2006 | A1 |
20060069605 | Hatoun | Mar 2006 | A1 |
20060069985 | Friedman et al. | Mar 2006 | A1 |
20060074981 | Mauceri | Apr 2006 | A1 |
20060075245 | Meier | Apr 2006 | A1 |
20060080657 | Goodman | Apr 2006 | A1 |
20060085409 | Rys et al. | Apr 2006 | A1 |
20060095507 | Watson | May 2006 | A1 |
20060101037 | Brill et al. | May 2006 | A1 |
20060101051 | Carr et al. | May 2006 | A1 |
20060107206 | Koskimies | May 2006 | A1 |
20060129583 | Catorcini et al. | Jun 2006 | A1 |
20060129917 | Volk et al. | Jun 2006 | A1 |
20060129978 | Abriani et al. | Jun 2006 | A1 |
20060136422 | Matveief et al. | Jun 2006 | A1 |
20060143220 | Spencer, Jr. | Jun 2006 | A1 |
20060155857 | Feenan et al. | Jul 2006 | A1 |
20060161559 | Bordawekar et al. | Jul 2006 | A1 |
20060161837 | Kelkar et al. | Jul 2006 | A1 |
20060161845 | Kahn et al. | Jul 2006 | A1 |
20060173865 | Fong | Aug 2006 | A1 |
20060173985 | Moore | Aug 2006 | A1 |
20060184393 | Ewin et al. | Aug 2006 | A1 |
20060191662 | Deibl et al. | Aug 2006 | A1 |
20060195413 | Davis et al. | Aug 2006 | A1 |
20060200443 | Kahn et al. | Sep 2006 | A1 |
20060200740 | Kahn et al. | Sep 2006 | A1 |
20060200754 | Kablesh et al. | Sep 2006 | A1 |
20060203081 | Pulitzer | Sep 2006 | A1 |
20060206803 | Smith | Sep 2006 | A1 |
20060218403 | Sauve et al. | Sep 2006 | A1 |
20060230363 | Rapp | Oct 2006 | A1 |
20060242663 | Gogerty | Oct 2006 | A1 |
20060248468 | Constantine et al. | Nov 2006 | A1 |
20060253459 | Kahn et al. | Nov 2006 | A1 |
20060253489 | Kahn et al. | Nov 2006 | A1 |
20060265518 | Owens et al. | Nov 2006 | A1 |
20060271839 | Gottlieb et al. | Nov 2006 | A1 |
20060288011 | Gandhi et al. | Dec 2006 | A1 |
20060288329 | Gandhi | Dec 2006 | A1 |
20070005611 | Takasugi et al. | Jan 2007 | A1 |
20070011156 | Maron | Jan 2007 | A1 |
20070011665 | Gandhi et al. | Jan 2007 | A1 |
20070036433 | Teutsch | Feb 2007 | A1 |
20070050446 | Moore | Mar 2007 | A1 |
20070050719 | Lui et al. | Mar 2007 | A1 |
20070061467 | Essey | Mar 2007 | A1 |
20070061706 | Cupala | Mar 2007 | A1 |
20070074106 | Ardeleanu | Mar 2007 | A1 |
20070088554 | Harb et al. | Apr 2007 | A1 |
20070094589 | Paoli | Apr 2007 | A1 |
20070100836 | Eichstaedt et al. | May 2007 | A1 |
20070100877 | Paoli | May 2007 | A1 |
20070100967 | Smith et al. | May 2007 | A1 |
20070101280 | Paoli | May 2007 | A1 |
20070101313 | Bodin et al. | May 2007 | A1 |
20070118538 | Ahern et al. | May 2007 | A1 |
20070118803 | Walker et al. | May 2007 | A1 |
20070130500 | Rivers-Moore et al. | Jun 2007 | A1 |
20070130504 | Betancourt et al. | Jun 2007 | A1 |
20070186157 | Walker et al. | Aug 2007 | A1 |
20070208606 | MacKay et al. | Sep 2007 | A1 |
20070208759 | von Koch | Sep 2007 | A1 |
20070208769 | Boehm et al. | Sep 2007 | A1 |
20070245251 | Kim | Oct 2007 | A1 |
20070276768 | Pallante | Nov 2007 | A1 |
20080021916 | Schnelle et al. | Jan 2008 | A1 |
20080027896 | Anjur | Jan 2008 | A1 |
20080028340 | Davis | Jan 2008 | A1 |
20080040635 | Larcheveque | Feb 2008 | A1 |
20080052287 | Stanciu | Feb 2008 | A1 |
20080126402 | Sitchi et al. | May 2008 | A1 |
20080134162 | James | Jun 2008 | A1 |
20080162498 | Omoigui | Jul 2008 | A1 |
20080189335 | Sikchi | Aug 2008 | A1 |
20080195483 | Moora | Aug 2008 | A1 |
20080222514 | Rivers-Moore | Sep 2008 | A1 |
20090013266 | Gandhi | Jan 2009 | A1 |
20090019063 | Gandhi | Jan 2009 | A1 |
20090044103 | Chalecki et al. | Feb 2009 | A1 |
20090070411 | Chang et al. | Mar 2009 | A1 |
20090119580 | Rohrabaugh et al. | May 2009 | A1 |
20090138389 | Barthel | May 2009 | A1 |
20090177961 | Fortini | Jul 2009 | A1 |
20100125778 | Kelkar et al. | May 2010 | A1 |
20100229110 | Rockey et al. | Sep 2010 | A1 |
Number | Date | Country |
---|---|---|
1536483 | Oct 2004 | CN |
0841615 | May 1998 | EP |
0841615 | Nov 1999 | EP |
0961197 | Dec 1999 | EP |
1076290 | Feb 2001 | EP |
1221661 | Jul 2002 | EP |
1997023 | Dec 2008 | EP |
63085960 | Apr 1988 | JP |
401173140 | Jul 1989 | JP |
401173140 | Jul 1989 | JP |
3191429 | Aug 1991 | JP |
4225466 | Aug 1992 | JP |
05314152 | Nov 1993 | JP |
5314152 | Nov 1993 | JP |
406014105 | Jan 1994 | JP |
6139241 | May 1994 | JP |
6180697 | Jun 1994 | JP |
6180698 | Jun 1994 | JP |
08263246 | Oct 1996 | JP |
08263247 | Oct 1996 | JP |
09016801 | Jan 1997 | JP |
09134273 | May 1997 | JP |
09190327 | Jul 1997 | JP |
09251370 | Sep 1997 | JP |
09292967 | Nov 1997 | JP |
10011255 | Jan 1998 | JP |
10097559 | Apr 1998 | JP |
10171662 | Jun 1998 | JP |
10-2207805 | Aug 1998 | JP |
10207805 | Aug 1998 | JP |
10232754 | Sep 1998 | JP |
10240434 | Sep 1998 | JP |
10260765 | Sep 1998 | JP |
3191429 | Jan 2000 | JP |
2000132436 | May 2000 | JP |
2002183652 | Jun 2002 | JP |
2003173288 | Jun 2003 | JP |
200329635 | Oct 2003 | JP |
2008547117 | Dec 2008 | JP |
2413987 | Mar 2011 | RU |
WO 9924945 | May 1999 | WO |
WO-9924945 | May 1999 | WO |
WO 9956207 | Nov 1999 | WO |
WO-9956207 | Nov 1999 | WO |
WO-0126018 | Apr 2001 | WO |
WO 0144934 | Jun 2001 | WO |
WO-0144934 | Jun 2001 | WO |
WO-2005089336 | Sep 2005 | WO |
WO0157720 | Sep 2006 | WO |
Number | Date | Country | |
---|---|---|---|
20050289535 A1 | Dec 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09599048 | Jun 2000 | US |
Child | 11218149 | US |