Methods and apparatus for enterprise application integration

Information

  • Patent Grant
  • 7831604
  • Patent Number
    7,831,604
  • Date Filed
    Monday, October 29, 2007
    16 years ago
  • Date Issued
    Tuesday, November 9, 2010
    13 years ago
Abstract
A method for enterprise application integration that uses “connectors” that can be instantiated via downloading (e.g., using Java® or other such technologies) to provide interfaces to respective disparate database systems. The databases systems may comprise any variety of now or heretofore known systems, e.g. SAP, Oracle, and so forth. The connectors can, for example, translate between a native language (or API) of the respective database systems and an internal language/protocol of the enterprise application integration system. To this end, the connectors can utilize a scripting language to access the respective database systems. Data retrieved from the database systems can be stored in a central data store in the form of RDF triplets, from which directed graphs can be generated for to generate presentations consolidated from the multiple database systems.
Description
BACKGROUND OF THE INVENTION

The invention pertains to digital data processing and, more particularly, to methods and apparatus for enterprise application integration. It has application in the dynamic consolidation of disparate databases, e.g., of marketing, e-commerce or other transactional data, over a network, such as the Internet.


It is not uncommon for a single company to have several database systems—separate systems not interfaced—to track internal and external planning and transaction data. Such systems might of been developed at different times throughout the history of the company and are therefore of differing generations of computer technology. For example, a marketing database system tracking customers may be ten years old, while an enterprise resource planning (ERP) system tracking inventory might be two or three years old. Integration between these systems is difficult at best, consuming specialized programming skill and constant maintenance expenses.


A major impediment to enterprise application integration (EAI) is the consolidation of these disparate legacy databases with one another and with newer e-commerce databases. For instance, inventory on-hand data gleaned from a legacy ERP system may be difficult to combine with customer order data gleaned from web servers that support e-commerce (and other web-based) transactions. This is not to mention difficulties, for example, in consolidating resource scheduling data from the ERP system with the forecasting data from the marketing database system.


An object of this invention is to provide improved methods and apparatus for digital data processing and, more particularly, for enterprise application integration.


A further object of the invention is to provide such methods and apparatus as can be readily and inexpensively integrated with legacy, current and future database management systems.


A still further object of the invention is to provide such methods and apparatus as can be implemented incrementally or otherwise without interruption of enterprise operation.


Yet a still further object of the invention is to provide such methods and apparatus as to facilitate ready access to up-to-date enterprise data, regardless of its underlying source.


Yet still a further object of the invention is to provide such methods and apparatus as permit flexible presentation of enterprise data in an easily understood manner.


SUMMARY OF THE INVENTION

The aforementioned are among the objects attained by the invention, one aspect of which provides a method for enterprise application integration that uses software (“connectors”) that can be instantiated via downloading (e.g., using Java® or other such technologies) to provide interfaces to respective disparate database systems. The databases systems may comprise any variety of now or heretofore known systems, e.g. SAP, Oracle, and so forth.


The connectors can, for example, translate between a native language (or API) of the respective database systems and an internal language/protocol of the enterprise application integration system. To this end, the connectors can utilize a scripting language to access the respective database systems.


Another aspect of the invention provides methods as described above that store data accessed from the database systems in a central data store, referred to below as a “holographic” data store. That data can be stored, for example, as resource definition framework (RDF) triplets.


The connectors, according to further aspects of the invention, can query the respective database systems based on requests received from the holographic data store and/or from a framework server, a user or otherwise. In related aspects, the data store is periodically updated via application of queries to the database systems.


Further aspects of the invention provide methods as described above in which a graph generator generates directed graphs from the RDF triplets in the holographic store. The graphs can be “walked” in order to discern answers to queries for information reflected by triplets originating from data in one or more of the databases.


Another aspect of the invention provides methods as described above in which a framework server accepts queries, e.g., from a user, and formats them for application to the holographic data store.


Further aspects of the invention provide enterprise application integration systems that operate in accord with the foregoing.


These and other aspects of the invention are evident in the drawings and in the description that follows.





BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing features of this invention, as well as the invention itself, may be more fully understood from the following detailed description of the drawings in which:



FIG. 1 depicts an improved enterprise application integration system according invention;



FIG. 2 depicts operation of a software interface “connector” according to the invention;



FIG. 3 depicts data flow within a connector according to the invention; and



FIG. 4 depicts a directed graph representing data triplets of the type maintained in a data store according to the invention.





DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT


FIG. 1 depicts a enterprise application integration system according to the invention. The illustrated system 100 includes connectors 108 that provide software interfaces to legacy, e-commerce and other databases 140 (hereinafter, collectively, “legacy databases”). A “holographic” database 114 (hereinafter, “data store” or “holographic data store”), which is coupled to the legacy databases 140 via the connectors 108, stores data from those databases 140. A framework server 116 accesses the data store 114, presenting selected data to (and permitting queries from) a user browser 118. The server 116 can also permit updates to data in the data store 114 and, thereby, in the legacy databases 140.


Legacy databases 140 represent existing (and future) databases and other sources of information in a company, organization or other entity (hereinafter “enterprise”). In the illustration, these include a retail e-commerce database (e.g., as indicated by the cloud and server icons 180, 182 adjacent database 140c) maintained with a Sybase® database management system, an inventory database maintained with an Oracle® database management system and an ERP database maintained with an SAP® database management system. Of course, these are merely examples of the variety of databases or other sources of information with which methods and apparatus as described herein can be used. Common features of illustrated databases 140 are that they maintain information of interest to an enterprise and that they can be accessed via respective software applications program interfaces (API) or other mechanisms known in the art.


Connectors 108 serve as an interface to legacy database systems 140. Each connector applies requests to, and receives information from, a respective legacy database, using that database's API or other interface mechanism. Thus, for example, connector 109a applies requests to legacy database 140a using the corresponding SAP API; connector 108b, to legacy database 140b using Oracle API; and connector 108c, to legacy database 140c using the corresponding Sybase API.


In the illustrated embodiment, these requests are for purposes of accessing data stored in the respective databases 140. The requests typically originate in the holographic data store 114 or the framework server 116, wherefrom they are routed to the connectors via the store 114. Alternatively or in addition, the requests can originate, in the first instance, from the connectors 108 themselves, e.g., by way of pre-programming or otherwise. Regardless of their origin, the requests can be stored in the connectors 108 for application and/or reapplication to the respective legacy databases 108.


Data and other information (collectively, “messages”) generated by the databases 140 in response to the requests are routed by connectors to the holographic data store 114. Those messages can be cached by the connectors 108, though, they are preferably immediately routed to the store 114.


The software connectors 108 may reside on any digital data processing system(s) that is (are) in communications coupling—e.g., via a dial-up connection, bus, cable, network and/or Internet (as indicated by cloud icons 160, 162), or otherwise—with the respective legacy databases 140 and with the holographic data store 114. Typically, the connectors reside on computers within the firewall (or other security barrier) of the enterprise, though, they may reside elsewhere (e.g., local to the holographic store 114 and/or the framework server 116).


In a preferred embodiment, the connectors are implemented as Java® servlets, or the like, though they can be implemented in any programming language. Indeed, the connectors fabricated as special purpose hardware devices, though, such hardware lacks one of the immediate advantages of Java (or other software) implemnentations—to with, the ability to download and/or remotely implement, upgrade and maintain it.


In embodiments, such as that illustrated here, wherein the connectors 108 are implemented as Java® servlets, or the like, those connectors preferably execute with a suitable environment, e.g., utilizing Java virtual machines running scripted Extensible Markup Language (“XML”) operating according Extensible Stylesheet Language Transformation (“XSLT”) scripts. A suitable environment for accomplishing this is Tomcat running under Cocoon 2, both available from Apache Software Foundation or in the alternative, WebSphere available from IBM Corporation. As such, the use of XSLT scripts allow the connector to communicate with a variety of database systems by merely downloading the XSLT using any computer readable medium, e.g. disk, electronic download, or CD-ROM.


Referring to FIG. 2, the connectors translate between the API (or other interface mechanisms) of the legacy databases 140 and a language/protocol common to the connectors 108, the holographic data store 114 and the framework server 116. In the illustrated embodiment, that common language/protocol is referred to Intelligent Connector Query Language (ICQL), though, it will be appreciated that other embodiments may use other languages/protocols and, indeed, may not utilize a common language/protocol at all. Thus, for example, requests generated by holographic data store 114 and routed to connector 108a in ICQL (or other language/protocol) are converted (or translated or transformed) by that connector into an appropriate API call to legacy database 140a. Likewise, messages generated by that database 140a in response to such a request are converted by the connector 108a back into ICQL (or other language/protocol).


A more complete understanding of the operation of the connectors 108 may be attained by reference to FIG. 3, which shows data flow within a connector 300 according to one embodiment of the invention.


Illustrated is a connector 300 utilizing Hypertext Transfer Protocol (“HTTP”) as a vehicle to transfer messages (e.g., requests and responses thereto) with holographic data store 114, such as the one illustrated in FIG. 1. Each message 302 (e.g., request) originating from the data store 115 is processed by request, match and action modules 304-308, as shown. The message is sent to the connected legacy database, e.g., 140a, using the appropriate API or other interface mechanism. It will be apparent to those of ordinary skill in the art that the actual transformation sequence is dependent on the type of legacy database system being accessed and the method of communication between the holographic data store and the connector framework.


Messages received by the connector 300 from the legacy database are likewise processed for return to the holographic data store 114. In the illustrated example, a message 318 is received and routed to a generator module 314 which performs a transformation according to a XSP script, and then routes the message to a transformer module 312. The transformer module 302 transforms the data field contained within the message into RDF triplet form suitable for the holographic data store 114 to catalog, and assigns a unique Universal Identification Number (“UID”) for later conversion into a Universal Resource Locator (“URL”) by the data store 114. Finally, the message is routed to a serializer module 310 and transformed for HTTP transfer to the holographic data store 320.


Through use a connector framework comprised of selectable modules, the connectors may be electronically downloaded or otherwise remotely updated as required. Moreover, multiple engines/modules can be inserted in the internal data pipeline of connector 300. Each such module transforms the data and passes it along the stream.


Referring back to FIG. 1, the holographic data store 114 stores data from the legacy databases 140 and from the framework server 116 as RDF triplets. The data store 114 can be embodied on any digital data processing system or systems that are in communications coupling (e.g., as defined above) with the connectors 108 and the framework server 116 capable of supporting Java® running XML/XSLT as defined above. Typically, the data store 114 is embodied in a workstation or other high-end computing device with high capacity storage devices or arrays, though, this may not be required for any given implementation.


Though the holographic data store 114 may be contained on an optical storage device, this is not the sense in which the term “holographic” is used. Rather, it refers to its storage of data from multiple sources (e.g., the legacy databases 140) in a form which permits that data to be queried and coalesced from a variety of perspectives, depending on the needs of the user and the capabilities of the framework server 116. To this end, a preferred data store 114 stores the data from the legacy databases 140 in object-predicate-subject form, e.g., RDF triplets, though those of ordinary skill in the art will appreciate that other forms may be used as well, or instead.


Referring to FIG. 4, the data store can store—by way of non-limiting example—RDF triplets representing data from marketing and/or e-commerce “legacy” databases. The figure particularly illustrates triplets representing hotel reservation transactions. Each triplet comprises a predicate 402, subject 406 and object 408 such that the object 408 is “linked” to its subject(s) 406 via predicate(s) 402.


In the illustrated example, each predicate 402 is assigned a Uniform Resource Indicator (“URI”) 410 such that related data is located via URI's in a hierarchical ordering, represented for example by the directed arrow 402. If the triplet is high-level 408 its URI 404 points to a lower set of triplets 412, each of which has a URI 414 that may point to data or to further triplets 416.


Each subject 406 contains transactional information pertaining to an enterprise resource item, e.g. credit card type, type of product bought or date. For example, as illustrated in FIG. 4, a typical subject 420 shows a value of “data of departure” related to a hotel booking transaction. It can be appreciated from one in the art that many different types of data may be contained within the subject, e.g. literal values, referenced values or additional URI's.


An object 408 contains information pertaining to the “who” of the transaction, such as the person or enterprise initiating the transaction. The object, similar to the subject, may be a literal, e.g. “Smith”, or a unique identifier such as a locator address 422 such that each related predicate and subject can be referenced through the object.


It can be appreciated that any given transaction (or other event that gives rise to triplets of the type stored in the data store 114) may be reflected in multiple legacy database systems 140. When those systems are queried by the connectors, this may result in multiple triplets causing redundant or related information to be stored within the holographic store 114. The illustrated data store 114 includes a relationalizer that periodically passes through the retained triplets to combine these related triplets into “bags,” at the same time removing any redundancies as determined by a calculated confidence level or other similar technique. This can be performed by comparing sequential levels of objects and merging triplets and bags of similar objects. For example, two people at the same address and same last name may be merged into a “family” bag, and so on. In this way, data storage is both minimized and related such that queries can be executed using the minimal execution time. The data store 114 can also remove redundant information from the legacy databases 140 in a similar manner dependent on the capabilities of the specific database.


The data store 114 includes a graph generator (not shown) that uses the stored triplets to generate directed graphs in response to queries (e.g., in ICQL form) from the framework server 116. These may be queries for information reflected by triplets originating from data in one or more of the legacy databases 140 (one example might be a request for the residence cities of hotel guests who booked reservations on account over Independence Day weekend, as reflected by data from an e-Commerce database and an Accounts Receivable database). Such generation of directed graphs from triplets can be accomplished in any conventional manner known the art (e.g., as appropriate to RDF triples or other manner in which the information is stored). Directed graphs generated by the data store are passed back to the server 116 for presentation to the user.


In the event that the data store 114 does not include sufficient information (e.g., triplets) necessary to respond to a query from the framework server 116, it can pass the query directly to the connectors 108 for application to the legacy databases 140. Alternatively or in addition, the data store 114 can construct further queries necessary to “fill out” the triplet store with legacy database information necessary to respond to the query.


In a preferred embodiment, illustrated data store 114 polls the legacy database systems 140 (via connectors 108) to obtain current information at pre-determined intervals, times or otherwise. This can be accomplished using the queries stored within the data store 114 or the connectors 108 themselves.


Referring back to FIG. 1, the framework server 116 generates requests to the data store 114 (and/or indirectly to the legacy databases via connectors 108, as discussed above) and presents information therefrom to the user via browser 118. The requests can be based on ICQL requests entered directly by the user though, preferably, they are generated by the server 116 based on user selections/responses to questions, dialog boxes or other user-input controls. In a preferred embodiment, the framework server includes one or more user interface modules, plug-ins, or the like, each for generating queries of a particular nature. One such module, for example, generates queries pertaining to marketing information, another such module generates queries pertaining to financial information, and so forth.


In addition to generating queries, the framework server (and/or the aforementioned modules) “walks” directed graphs generated by the data store 114 to present to the user (via browser 118) any specific items of requested information. Such walking of the directed graphs can be accomplished via any conventional technique known in the art. Presentation of questions, dialog boxes or other user-input controls to the user and, likewise, presentation of responses thereto based on the directed graph can be accomplished via conventional server/browser or other user interface technology.


In some embodiments, the framework server 116 permits a user to update data stored in the data store 114 and, thereby, that stored in the legacy databases 140. To this end, changes made to data displayed by the browser 118 are transmitted by server 116 to data store 114. There, any triplets implicated by the change are updated and forwarded to the respective legacy databases 140, which utilize the corresponding API (or other interface mechanisms) to update their respective stores.


In some embodiments, the server 116 can present to the user not only data from the data store 114, but also data gleaned by the server directly from other sources. Thus, for example, the server 116 can directly query an enterprise website for statistics regarding web page usage, or otherwise.


A further understanding of the operation of the framework server 116 and of the illustrated embodiment may be attained by reference to the appendix filed herewith.


Described herein are methods and apparatus meeting the above-mentioned objects. It will be appreciated that the illustrated embodiment is merely an example of the invention and that other embodiments, incorporating changes to those described herein, fall within the scope of the invention.

Claims
  • 1. A digital data processing method for enterprise application integration comprising: A. electronically downloading to one or more digital data processors functionality that effects information transfers between a first database and a second database and between the first database and a third database,B. executing the functionality on the one or more digital data processors to effect transferring information between the first database and the second database, the transferring step including at least: (i) receiving information from the second database using an application program interface (“API”) associated therewith,(ii) transforming at least some of the information received from the second database into resource definition format (“RDF”) triplets, and(iii) transmitting those RDF triplets to the first database;C. executing the functionality on the one or more digital data processors to effect transferring information between the first database and the third database, the transferring step including at least: (i) receiving the information from the third database using an application program interface (“API”) different than the API associated with the second database,(ii) transforming at least some of the information received from the third database into resource definition format (“RDF”) triplets, and(iii) transmitting those RDF triplets to the first database;D. wherein the first database stores the RDF triplets from the second and third databases for query, for coalescence, or for use in generating directed graphs that can be analyzed to discern answers to queries for information reflected by the RDF triplets and originating from any of the second and third databases.
  • 2. A method according to claim 1, wherein the information transferred between the first database and the second database comprises requests for data and responses thereto.
  • 3. A method according to claim 2, wherein the step of transferring information between the first database and the second database includes at least: (i) transmitting one or more requests for data to the second database,(ii) receiving one or more responses from the second database using an application program interface (“API”),(iii) transforming the one or more responses from the second database into resource definition format (“RDF”) triplets, and(iv) transmitting those RDF triplets to the first database.
  • 4. A method according to claim 3, wherein the information transferred between the first database and the third database comprises requests for data and responses thereto.
  • 5. A method according to claim 4, wherein the step of transferring information between the first database and the third database includes at least: (i) transmitting one or more requests for data to the third database,(ii) receiving one or more responses from the third database using an application program interface (“API”) different than the API used by the second database,(iii) transforming the one or more responses from the third database into resource definition format (“RDF”) triplets, and(iv) transmitting those RDF triplets to the first database.
  • 6. A method according to claim 1, wherein the RDF triplets have objects through which related predicates and subjects can be referenced.
  • 7. A method according to claim 1, wherein the RDF triplets have objects that comprise any of a literal or an identifier.
  • 8. A method according to claim 1, wherein the RDF triplets represent any of marketing information or an e-commerce or other transaction.
  • 9. A method according to claim 1, wherein the functionality comprises a servlet executing within a virtual machine environment in the digital data processor.
  • 10. A digital data processing method for enterprise application integration comprising: A. electronically downloading to one or more digital data processors functionality that effects information transfers between a first database and a second database and between the first database and a third database,B. storing a query for application to at least one of the second database and third database,C. executing the functionality on the one or more digital data processors to effect transferring information between the first database and the second database, the transferring step including: (i) applying a query to the second database using an application program interface (“API”) associated therewith,(ii) receiving information from the second database using the API in response to the query,(iii) transforming at least some of the information received from the second database into resource definition format (“RDF”) triplets,(iv) caching said RDF triplets for subsequent transfer to the first database,(v) transmitting the RDF triplets to the first database;D. executing the functionality on the one or more digital data processors to effect transferring information between the first database and the third database, the transferring step including: (i) applying a query to the third database using an application program interface(“API”) associated therewith and different than the API used by the second database,(ii) receiving information from the third database using the API of the third database in response to the query,(iii) transforming at least some of the information received from the third database into resource definition format (“RDF”) triplets,(iv) caching the RDF triplets for subsequent transfer to the first database,(v) transmitting the RDF triplets to the first database,E. wherein the first database stores the RDF triplets from the second and third databases for query, coalescence, or for use in generating directed graphs that can be analyzed to discern answers to queries for information reflected by the RDF triplets and originating from any of the second and third databases.
  • 11. A method according to claim 10, wherein the RDF triplets include at least one of: a subject that comprises any of a literal value, reference value and uniform identification number (“URI”),a predicate that comprises a URI such that related data being transferred between the first and second databases is represented by URI's in a hierarchical ordering,an object that relates a predicate and subject comprising any of a literal or identifier.
  • 12. A digital data processing method for enterprise application integration comprising: A. electronically downloading to one or more digital data processors functionality that effects information transfers between a first database and a second database,B. executing the functionality on the one or more digital data processors to effect transferring information between the first database and the second database, the transferring step including at least: (i) originating, with the one or more digital data processors, one or more requests for data,(ii) storing, with the one or more digital data processors, one or more requests for data,(iii) applying to the second database, using the one or more digital data processors and an application program interface (“API”) associated with the second database, the one or more requests originated by the one or more digital data processors and/or the one or more requests stored by the one or more digital data processors, and(iv) re-applying to the second database, using the one or more digital data processors and the API associated with the second database, the one or more requests originated by the one or more digital data processors and/or the one or more requests stored by the one or more digital data processors,(v) receiving one or more responses from the second database to the one or more requests from any of steps (iii) and (iv),(vi) transforming the one or more responses received from the second database into resource definition format (“RDF”) triplets, and(vii) transmitting the RDF triplets to the first database,
  • 13. The method of claim 12, wherein the one or more stored requests for data are received by the one or more digital data processors from the first database.
  • 14. The method of claim 12, wherein the transferring step further includes translating the one or more responses from the API of the second database to a protocol associated with the first database.
  • 15. The method of claim 12, wherein the RDF triplets have subjects that comprise any of a literal value, reference value and uniform resource identifier (“URI”).
  • 16. The method of claim 12, wherein the RDF triplets have predicates that comprise a URI, such that related data being transferred between the first and second databases and/or between the first and third databases is represented by URIs in a hierarchical ordering.
Parent Case Info

This application is a continuation of U.S. patent application Ser. No. 11/430,258, filed May 8, 2006, entitled “Methods and Apparatus for Enterprise Application Integration” (now published as US 2006/0277227, the teachings of which are incorporated herein by reference), which is a continuation of U.S. patent application Ser. No. 09/917,264, filed Jul. 27, 2001, entitled “Methods and Apparatus for Enterprise Application Integration” (now issued as U.S. Pat. No. 7,058,637, the teachings of which are incorporated herein by reference), which claims the benefit of priority of U.S. provisional patent application Ser. No. 60/291,185, filed on May 15, 2001, entitled “Methods and Apparatus for Enterprise Application Integration,” the teaching of which are incorporated by reference. The teachings of all of the foregoing applications are incorporated herein by reference.

US Referenced Citations (186)
Number Name Date Kind
4701130 Whitney et al. Oct 1987 A
4895518 Arnold et al. Jan 1990 A
4953106 Gansner et al. Aug 1990 A
5119465 Jack et al. Jun 1992 A
5129043 Yue Jul 1992 A
5199068 Cox Mar 1993 A
5259766 Sack et al. Nov 1993 A
5267865 Lee et al. Dec 1993 A
5270920 Pearse et al. Dec 1993 A
5301270 Steinberg et al. Apr 1994 A
5310349 Daniels et al. May 1994 A
5311422 Loftin et al. May 1994 A
5326270 Ostby et al. Jul 1994 A
5333254 Robertson Jul 1994 A
5339390 Robertson et al. Aug 1994 A
5374932 Wyschogrod et al. Dec 1994 A
5379387 Carlstedt Jan 1995 A
5381332 Wood Jan 1995 A
5395243 Lubin et al. Mar 1995 A
5421730 Lasker, III et al. Jun 1995 A
5450480 Man et al. Sep 1995 A
5463682 Fisher et al. Oct 1995 A
5499293 Behram et al. Mar 1996 A
5519618 Kastner et al. May 1996 A
5548506 Srinivasan Aug 1996 A
5579486 Oprescu et al. Nov 1996 A
5597312 Bloom et al. Jan 1997 A
5608789 Fisher et al. Mar 1997 A
5634053 Noble et al. May 1997 A
5655118 Heindel et al. Aug 1997 A
5732192 Malin et al. Mar 1998 A
5745753 Mosher, Jr. Apr 1998 A
5761063 Jannette et al. Jun 1998 A
5765140 Knudson et al. Jun 1998 A
5788504 Rice et al. Aug 1998 A
5795155 Morrel-Samuels Aug 1998 A
5809212 Shasha Sep 1998 A
5822780 Schutzman Oct 1998 A
5826077 Blakeley et al. Oct 1998 A
5826252 Wolters, Jr. et al. Oct 1998 A
5829983 Koyama et al. Nov 1998 A
5832483 Barker Nov 1998 A
5841673 Kobayashi et al. Nov 1998 A
5873076 Barr et al. Feb 1999 A
5875441 Nakatsuyama et al. Feb 1999 A
5881269 Dobbelstein Mar 1999 A
5907837 Ferrel et al. May 1999 A
5935249 Stern et al. Aug 1999 A
5974441 Rogers et al. Oct 1999 A
5974443 Jeske Oct 1999 A
5983267 Shklar et al. Nov 1999 A
5987415 Breese et al. Nov 1999 A
5995958 Xu Nov 1999 A
6012098 Bayeh et al. Jan 2000 A
6035412 Tamer et al. Mar 2000 A
6044373 Gladney et al. Mar 2000 A
6044466 Anand et al. Mar 2000 A
6078982 Du et al. Jun 2000 A
6085188 Bachmann et al. Jul 2000 A
6094652 Faisal Jul 2000 A
6122632 Botts et al. Sep 2000 A
6125363 Buzzeo et al. Sep 2000 A
6130679 Chen et al. Oct 2000 A
6137797 Bass et al. Oct 2000 A
6144997 Lamming et al. Nov 2000 A
6151595 Pirolli et al. Nov 2000 A
6151624 Teare et al. Nov 2000 A
6154738 Call Nov 2000 A
6177932 Galdes et al. Jan 2001 B1
6182085 Eichstaedt et al. Jan 2001 B1
6185516 Hardin et al. Feb 2001 B1
6185534 Breese et al. Feb 2001 B1
6212502 Ball et al. Apr 2001 B1
6240417 Eastwick et al. May 2001 B1
6243713 Nelson et al. Jun 2001 B1
6246320 Monroe Jun 2001 B1
6266668 Vanderveldt et al. Jul 2001 B1
6308163 Du et al. Oct 2001 B1
6330554 Altschuler et al. Dec 2001 B1
6341277 Coden et al. Jan 2002 B1
6360330 Mutalik et al. Mar 2002 B1
6369819 Pitkow et al. Apr 2002 B1
6380910 Moustakas et al. Apr 2002 B1
6381738 Choi et al. Apr 2002 B1
6389429 Kane et al. May 2002 B1
6389460 Stewart et al. May 2002 B1
6393423 Goedken May 2002 B1
6396885 Ding et al. May 2002 B1
6405211 Sokol et al. Jun 2002 B1
6405251 Bullard et al. Jun 2002 B1
6415283 Conklin Jul 2002 B1
6418413 DeMarcken et al. Jul 2002 B2
6418448 Sarkar Jul 2002 B1
6426723 Smith et al. Jul 2002 B1
6427151 Chan et al. Jul 2002 B1
6429870 Chen et al. Aug 2002 B1
6437799 Shinomi et al. Aug 2002 B1
6446200 Ball et al. Sep 2002 B1
6446256 Hyman et al. Sep 2002 B1
6463440 Hind et al. Oct 2002 B1
6473467 Wallace et al. Oct 2002 B1
6493331 Walton et al. Dec 2002 B1
6493399 Xia et al. Dec 2002 B1
6496833 Goldberg et al. Dec 2002 B1
6509898 Chi et al. Jan 2003 B2
6529899 Kraft et al. Mar 2003 B1
6530079 Choi et al. Mar 2003 B1
6539374 Jung Mar 2003 B2
6542912 Meltzer et al. Apr 2003 B2
6546406 DeRose et al. Apr 2003 B1
6556983 Altschuler et al. Apr 2003 B1
6571222 Matsumoto et al. May 2003 B1
6577769 Kenyon et al. Jun 2003 B1
6583800 Ridgley et al. Jun 2003 B1
6594662 Sieffert et al. Jul 2003 B1
6598043 Baclawski Jul 2003 B1
6606613 Altschuler et al. Aug 2003 B1
6625657 Bullard Sep 2003 B1
6636848 Aridor et al. Oct 2003 B1
6640284 Shaw et al. Oct 2003 B1
6643638 Xu Nov 2003 B1
6643652 Helgeson et al. Nov 2003 B2
6678679 Bradford Jan 2004 B1
6701314 Conover et al. Mar 2004 B1
6721747 Lipkin Apr 2004 B2
6725227 Li Apr 2004 B1
6751663 Farrell et al. Jun 2004 B1
6754475 Harrison et al. Jun 2004 B1
6757708 Craig et al. Jun 2004 B1
6771706 Ling et al. Aug 2004 B2
6772148 Baclawski Aug 2004 B2
6778971 Altschuler et al. Aug 2004 B1
6785341 Walton et al. Aug 2004 B2
6792420 Chen et al. Sep 2004 B2
6804688 Kobayashi et al. Oct 2004 B2
6856992 Britton et al. Feb 2005 B2
6901438 Davis et al. May 2005 B1
6925457 Britton et al. Aug 2005 B2
6927728 Vook et al. Aug 2005 B2
6934702 Faybishenko et al. Aug 2005 B2
6940917 Menon et al. Sep 2005 B2
6963875 Moore et al. Nov 2005 B2
7047411 DeMello et al. May 2006 B1
7058367 Luo et al. Jun 2006 B1
7058637 Britton et al. Jun 2006 B2
7117260 Bimson et al. Oct 2006 B2
7171145 Takeuchi et al. Jan 2007 B2
7171415 Kan et al. Jan 2007 B2
7289793 Norwood et al. Oct 2007 B2
7313588 Shotton, Jr. et al. Dec 2007 B1
20010047355 Anwar Nov 2001 A1
20020042831 Capone et al. Apr 2002 A1
20020049603 Mehra et al. Apr 2002 A1
20020049788 Lipkin et al. Apr 2002 A1
20020059566 Delcambre et al. May 2002 A1
20020069134 Solomon Jun 2002 A1
20020078030 Iwayama et al. Jun 2002 A1
20020091678 Miller et al. Jul 2002 A1
20020091710 Dunham et al. Jul 2002 A1
20020091835 Lentini et al. Jul 2002 A1
20020118688 Jagannathan Aug 2002 A1
20020120598 Shadmon et al. Aug 2002 A1
20020133502 Rosenthal et al. Sep 2002 A1
20020143759 Yu Oct 2002 A1
20020177232 Melker et al. Nov 2002 A1
20020178232 Ferguson Nov 2002 A1
20030004934 Qian Jan 2003 A1
20030009239 Lombardo et al. Jan 2003 A1
20030014399 Hansen et al. Jan 2003 A1
20030037145 Fagan Feb 2003 A1
20030050834 Caplan Mar 2003 A1
20030050927 Hussam Mar 2003 A1
20030050929 Bookman et al. Mar 2003 A1
20030061209 Raboczi et al. Mar 2003 A1
20030074352 Raboczi et al. Apr 2003 A1
20030074369 Schuetze et al. Apr 2003 A1
20030088639 Lentini et al. May 2003 A1
20030109951 Hsiung et al. Jun 2003 A1
20030229529 Mui et al. Dec 2003 A1
20040034651 Gupta et al. Feb 2004 A1
20040054690 Hillerbrand et al. Mar 2004 A1
20050027563 Fackler et al. Feb 2005 A1
20050055330 Britton et al. Mar 2005 A1
20050060372 DeBettencourt et al. Mar 2005 A1
20050125683 Matsuyama et al. Jun 2005 A1
20060271563 Angelo et al. Nov 2006 A1
Foreign Referenced Citations (7)
Number Date Country
1132847 Sep 2001 EP
2343763 May 2000 GB
WO-9722096 Jun 1997 WO
WO-9805018 Feb 1998 WO
WO-9810399 Mar 1998 WO
WO-9824020 Jun 1998 WO
WO-9927460 Jun 1999 WO
Related Publications (1)
Number Date Country
20080109485 A1 May 2008 US
Provisional Applications (1)
Number Date Country
60291185 May 2001 US
Continuations (2)
Number Date Country
Parent 11430258 May 2006 US
Child 11927195 US
Parent 09917264 Jul 2001 US
Child 11430258 US