System, method, and computer readable medium for integrating an original application with a remote application

Information

  • Patent Grant
  • 7861212
  • Patent Number
    7,861,212
  • Date Filed
    Tuesday, March 22, 2005
    21 years ago
  • Date Issued
    Tuesday, December 28, 2010
    15 years ago
Abstract
A method, system, and computer readable medium for integrating an original application with a remote application comprises generating adapter classes related to the original application, generating proxy classes related to the remote application, wherein the proxy classes are adapted to communicate with the adapter classes, generating data types related to the remote application, wherein the data types related to the remote application are equivalent to data types related to the original application, and generating streamers related to the remote application, wherein the streamers related to the remote application are adapted to be utilized by the proxy classes.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is related to U.S. patent application Ser. No. 11/086,101, entitled SYSTEM, METHOD, AND COMPUTER READABLE MEDIUM FOR INTEGRATING AN ORIGINAL APPLICATION WITH A REMOTE APPLICATION, U.S. patent application Ser. No. 11/086,211, entitled SYSTEM, METHOD, AND COMPUTER READABLE MEDIUM FOR INTEGRATING APPLICATIONS IN MULTIPLE LANGUAGES, U.S. patent application Ser. No. 11/086,120, entitled SYSTEM, METHOD, AND COMPUTER READABLE MEDIUM FOR INTEGRATING AN ORIGINAL LANGUAGE APPLICATION WITH A TARGET LANGUAGE APPLICATION, and U.S. patent application Ser. No. 11/086,102, entitled SYSTEM, METHOD, AND COMPUTER READABLE MEDIUM FOR NORMALIZING SOURCE FILES IN MULTIPLE SOFTWARE LANGUAGES, the disclosures of which are incorporated in their entirety by reference herein.


BACKGROUND OF THE INVENTION

The present invention is related to integrating applications, and, more specifically to a system and method for integrating an original application with a remote application.


Various limitations are associated with integrating applications such as difficulty in sharing the structure of application data and application programming interfaces (classes). As such, it is cumbersome for an application written in one language or in an original application to access a functionality provided by an application written in a different language or a remote application. It is currently tedious to integrate these applications because a common structure must be defined in a third language (such as Extensible Markup Language, Common Object Request Broker Architecture Event Definition Language, etc.).


The present invention overcomes these problems and limitations by providing a system and method for integrating an original application with a remote application.


SUMMARY OF THE INVENTION

The present invention comprises a system, method, and computer readable medium for an original application with a remote application. In one embodiment, a method for integrating an original application with a remote application comprises generating adapter classes related to the original application, generating proxy classes related to the remote application, wherein the proxy classes are adapted to communicate with the adapter classes, generating data types related to the remote application, wherein the data types related to the remote application are equivalent to data types related to the original application, and generating streamers related to the remote application, wherein the streamers related to the remote application are adapted to be utilized by the proxy classes.


In another embodiment, a method for integrating an original application with a remote application comprises generating proxy classes related to the remote application, generating data types related to the remote application, wherein the data types related to the remote application are equivalent to data types related to an original application, and generating streamers related to the remote application, wherein the streamers related to the remote application are adapted to be utilized by the proxy classes.


In a further embodiment, a computer readable medium comprises instructions for: generating at least one proxy class related to a remote application, generating at least one data type related to the remote application, and generating at least one streamer related to the remote application, wherein the data type related to the remote application is equivalent to at least one data type related to an original application, and wherein the streamer is adapted to be utilized by the proxy class.


In yet another embodiment, a computer readable medium comprises instructions for: generating at least one of: a proxy class, a data type, and a streamer, each related to a remote application, wherein the data type related to the remote application is equivalent to at least one data type related to an original application.


In yet a further embodiment, a system for integrating an original application with a remote application comprises a first module adapted to generate adapter classes related to an original application, a second module adapted to generate proxy classes related to a remote application, wherein the first module and the second module are operably coupled, the second module adapted to generate data types related to the remote application, and the second module adapted to convert data communication between the proxy classes and the adapter classes.


In yet another embodiment, a module for integrating an original application with a remote application, wherein the module is adapted to: generate adapter classes related to an original application, wherein the adapter classes are adapted to provide access to functions of the original application, provide data from the adapter classes to a remote application, and receive converted data by the adapter class from the remote application, wherein the data is converted into a neutral data format.


In yet a further embodiment, a module for integrating an original application with a remote application, wherein the module is adapted to: generate proxy classes related to a remote application, generate data types related to the remote application, and convert data communication between the proxy classes and an original application, generate streamers related to the remote application, wherein the streamers are adapted to: convert data communicated by the proxy classes to the original application and convert data communicated by the original application to the proxy classes, wherein the data is converted into a neutral data format.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 depicts a flow chart describing connecting a source language application with a target language application in accordance with an embodiment of the present invention; and



FIG. 2 depicts a flow diagram describing messaging between a source application and a target application in accordance with an embodiment of the present invention.





DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 depicts a flow chart 10 that describes steps involved in connecting a source language application with a target language application. A software program implementing the current invention is started and at step 12, it is determined if application files are loaded. In one embodiment, it is determined if application files in an original (source) language are loaded into the program. This determination is preferably performed by software of the present invention but can be performed by a user. If the files are not loaded, the software and/or user are prompted to load the application files at step 14. In one embodiment, a prompt to load the original source files into the program is received. The software program normalizes the definitions in the original source files that are loaded. Definitions include classes, methods, structures and other software program constructs. If the files are loaded, it is determined if any classes and methods are selected at step 16. In one embodiment, the software program checks to see if the user has selected any classes and/or methods in the original source files. The selected methods and classes will be exported to target language applications.


If they are not selected, the software and/or user are prompted to select the classes, methods, and other constructs in the program at step 18. If they are selected, it is determined if mapping for all complex user defined types is provided at step 20. In one embodiment, the software program verifies the selected constructs against all target languages. The software program identifies the mapping of the constructs in the original source language to the target language. If the mapping is not provided, the software and/or user are prompted to perform the mapping for all complex user defined types used in parameters, return types, and exceptions in step 22. In one embodiment, if the construct is complex in nature and has no equivalent in a target language, the software program prompts the user to provide a mapping for the construct. If the mapping is provided, it is determined if any target languages are selected at step 24. If they are not selected, the software and/or user are prompted to select the target languages at step 26. If they are selected, software is generated to connect the source language application with the target language application(s) at step 28. The generated code consists of adapters on the source language side to export existing source language application objects. The generated code consists of proxies on the target language side to provide access to source language application objects.


In one embodiment, a method for integrating an original application with a remote application comprises generating adapter classes related to the original application, generating proxy classes related to the remote application, wherein the proxy classes are adapted to communicate with the adapter classes, generating data types related to the remote application, wherein the data types related to the remote application are equivalent to data types related to the original application, and generating streamers related to the remote application, wherein the streamers related to the remote application are adapted to be utilized by the proxy classes. The communication comprises sending input parameters, related to the original application, to the adapter classes, receiving at least one of: output parameters, return values, and exceptions, related to the original application, at the proxy classes, receiving at least one of: input parameters, related to the original application, at the adapter classes, and sending at least one of: output parameters, return values, and exceptions, related to the original application, to the proxy classes.


The method further comprises providing access to functions of the original application by the adapter classes, converting data communicated by the proxy classes to the adapter classes and by the adapter classes to the proxy classes, by the streamers related to the remote application, into a neutral data format, and receiving the data by the streamers in neutral data format and converting the data to corresponding data types.



FIG. 2 depicts a flow diagram 30 of the present invention. An input source file 32 in the original language, that includes a plurality of classes 33-36, is loaded into the software program implementing the current invention. Class 33 (or Class A) is a business class and classes 34 and 36 are data classes used by the business class. More specifically, Class A is an application class that is exported by the user. The application class consists of a method, for example, getB( ) and a member. Class B is a data class that is used as a result type by the method in the application Class A and Class C is a data class that is used as the type of a member in the application Class A. In this example, class 34 is used as a result of a method, class 36 is used as a public member, and class 33 is a class that is of interest to remote applications.


The input file 32 is imported into an application 38 (which is a software program implementing the current invention) that generates files or classes 44-48 on an original or source application side 40 and files or classes 50-58 on a remote or target application side 42. The streamer class 44 is generated for Class B which is used as the return type for the getB( ) method in Class A, while the streamer class generated for Class C is used as the type of the member in Class A. The Adapter class 48 is generated for Class A that provides target language applications to invoke the getB( ) method and access the member of original source application objects. The input file 32, the application 38, the source application side 40 and the target application side 42 may fully and/or partially reside on a client, a server, and/or a client and a server.


A proxy class 50 (related to the target language) sends a request 60 to an adapter class 48 (related to the original language), and a response 62 and an exception 64 are received by the proxy class 50. The request 60, the response 62, and the exception 64 are sent generally based on data types 52 and 54 related to the target language, streamers 56 and 58 related to the target language, and streamers 44 and 46 related to the original language. More specifically, the proxy class 50 is generated for the Class A to be used in the target language applications as a proxy for the original source application objects. The proxy class 50 contains a getB( ) method, an access for a member and a mutator for the member.


The Class B 52, is an equivalent class for Class B 34 in the original source language that forms the return type of the getB( ) method in the proxy, while the Class C 54 is an equivalent class for Class C 36 in the original source language that is used in the accessor and mutator for the member. The streamer classes 56 and 58 are streamer classes generated for the generated Class B and Class C, respectively.


The target language application 42 communicates with the source language application by invoking the getB( ) method on the proxy class. The method invocation causes the generated code to create a data packet 60 containing the intent of the target language application 42 to invoke the getB( ) method on the source language application 40 object. The packet 60 is transferred to the source language application 40. The source language application adapter 48 receives the packet 60 and invokes the method on the original source language application object. The return data of the method is returned as a response packet 62 to the target language application 42. If an exception occurs during the invocation of the method on the original source language application object, the exception data of the method is returned as a exception packet 64 to the target language application 42.


In one embodiment, a system for integrating an original application with a remote application comprises a first module adapted to generate adapter classes related to an original application, a second module adapted to generate proxy classes related to a remote application, wherein the first module and the second module are operably coupled, the second module adapted to generate data types related to the remote application, and the second module adapted to convert data communication between the proxy classes and the adapter classes, wherein the adapter classes are adapted to provide access to functions of the original application, wherein the second module is adapted to generate streamers related to the remote application, wherein the streamers related to the remote application are adapted to: convert data communicated by the proxy classes to the adapter classes, and convert data communicated by the adapter classes to the proxy classes, wherein the data is converted into a neutral data format, and wherein the streamers are adapted to receive the data in the neutral data format and convert the data to corresponding data types.


The communication comprises sending input parameters, related to the original application, to the adapter classes, receiving at least one of: output parameters, return values, and exceptions, related to the original application, at the proxy classes, receiving at least one of: input parameters, related to the original application, at the adapter classes, and sending at least one of: output parameters, return values, and exceptions, related to the original application, to the proxy classes.


Although an exemplary embodiment of the system and method of the present invention has been illustrated in the accompanied drawings and described in the foregoing detailed description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims. For example, the functionality performed by the input file 32, the application 38, the source application side 40 and the target application side 42, can be performed by one or more of the input file 32, the application 38, the source application side 40 and the target application side 42 in a distributed architecture and on or via any electronic device. Further, such functionality may be performed by depicted and/or un-depicted contents of the input file 32, the application 38, the source application side 40 and the target application side 42.

Claims
  • 1. One or more computer-readable storage media having instructions stored thereon that, in response to execution by a computing device, cause the computing device to perform operations comprising: causing a prompt to be presented that enables selection of one or more target languages;receiving an indication of a selected target language of the one or more target languages;determining whether one or more constructs in an original language are selected;in response to determining that the one or more constructs in the original language are not selected, causing a prompt to be presented that enables the one or more constructs in the original language to be selected;after receiving an indication of the prompt being presented that enables the one or more constructs in the original language to be selected, receiving an indication of a selection of the one or more constructs in the original language;determining whether a mapping of the one or more constructs in the original language to one or more constructs in the selected target language are provided;in response to determining that the mapping of the one or more constructs in the original language to one or more constructs in the selected target language are not provided, causing a prompt to be presented that enables the mapping to be provided;after receiving an indication of the prompt being presented that enables the mapping to be provided, receiving input of the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language;generating proxy classes related to the selected target language, wherein the proxy classes are adapted to communicate with one or more adapter classes of the original language, one or more of the proxy classes including an accessor method and a mutator method for a class member of the original language;generating, by one or more of the proxy classes, data types related to the selected target language, wherein the data types related to the selected target language are equivalent to data types related to the original language and one or more of the data types are based on the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language; andgenerating streamers related to the selected target language, wherein the streamers related to the selected target language are adapted to be utilized by the proxy classes to integrate an original language application written in the original language with a target language application written in the selected target language.
  • 2. The one or more computer-readable storage media of claim 1, wherein the operations further comprise providing access to functions of the original language application by the one or more adapter classes.
  • 3. The one or more computer-readable storage media of claim 1, wherein the operations further comprise: converting data communicated from the one or more adapter classes to the proxy classes, wherein the data is converted at least in part by the streamers related to the selected target language.
  • 4. The one or more computer-readable storage media of claim 3, wherein the operations further comprise converting the data communicated from the one or more adapter classes to the proxy classes into a neutral data format.
  • 5. The one or more computer-readable storage media of claim 4, wherein the operations further comprise receiving the data communicated from the one or more adapter classes to the proxy classes by the streamers in neutral data format and converting the data to corresponding data types.
  • 6. The one or more computer-readable storage media of claim 1, wherein the operations further comprise sending input parameters, related to the original language application, to the one or more adapter classes.
  • 7. The one or more computer-readable storage media of claim 1, wherein the operations further comprise receiving at least one of: output parameters, return values, or exceptions, related to the original language application, at the proxy classes.
  • 8. The one or more computer-readable storage media of claim 1, wherein the operations further comprise causing the target language application to invoke a method of the original language application.
  • 9. The one or more computer-readable storage media of claim 8, wherein the operations further comprise receiving return data that results from an invocation of the method of the original language application.
  • 10. A system embodied on one or more tangible computer-readable media and executable by a computing device, the system comprising at least one module configured to: cause a prompt to be presented enabling selection of one or more target languages;receive an indication of a selected target language from the one or more target languages;determine whether one or more constructs in an original language are selected;responsive to a determination that the one or more constructs in the original language are not selected, cause a prompt to be presented that enables the one or more constructs in the original language to be selected;after receiving an indication of the prompt being presented that enables the one or more constructs in the original language to be selected, receive an indication of a selection of the one or more constructs in the original language;determine whether a mapping of the one or more constructs in the original language to one or more constructs in the selected target language are provided;responsive to determining that the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language are not provided, cause a prompt to be presented that enables the mapping to be provided;after receiving an indication of the prompt being presented that enables the mapping to be provided, receive input of the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language;generate one or more proxy classes related to the selected target language, the one or more proxy classes including an accessor method and a mutator method for an original language;generate data types related to the selected target language, wherein the data types are generated based at least in part on the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language; andconvert data communication between the one or more proxy classes and one or more adapter classes of the original language to cause a target language application written in the selected target language to invoke a method of an original language application.
  • 11. The system of claim 10, wherein the adapter classes of the original language are configured to provide access to functions of the original language application.
  • 12. The system of claim 10, wherein the module is configured to generate streamers related to the selected target language.
  • 13. The system of claim 12, wherein the streamers related to the selected target language are configured to: convert data communicated by the one or more proxy classes to the one or more adapter classes; andconvert data communicated by the one or more adapter classes to the one or more proxy classes.
  • 14. The system of claim 13, wherein the module is further configured to convert one or more of the data communicated by the one or more proxy classes or the data communicated by the one or more adapter classes into a neutral data format.
  • 15. The system of claim 14, wherein the streamers are adapted to receive one or more of the data communicated by the one or more proxy classes or the data communicated by the one or more adapter classes in the neutral data format and convert the data to corresponding data types.
  • 16. The system of claim 10, wherein the module is further configured to send input parameters, related to the original language, to the one or more adapter classes.
  • 17. The system of claim 10, wherein the module is further configured to receive at least one of: output parameters, return values, or exceptions, related to the original language application, at the one or more proxy classes.
  • 18. The system of claim 10, wherein the module is further configured to receive a response packet generated by the original language application in response to an invocation of the method of the original language application.
  • 19. The system of claim 10, wherein the module is further configured to receive an exception packet generated by the original language application in response to the occurrence of an exception during an invocation of the method of the original language application.
  • 20. A module stored on one or more tangible computer-readable media and executable by a computing device to cause the computing device to perform a method comprising: causing a prompt to be presented enabling selection of one or more target languages;receiving an indication of a selected target language from among the one or more target languages;determining whether one or more constructs in an original language are selected;in response to determining that the one or more constructs in the original language are not selected, causing a prompt to be presented that enables the one or more constructs in the original language to be selected;after receiving an indication of the prompt being presented that enables the one or more constructs in the original language to be selected, receiving an indication of a selection of the one or more constructs in the original language;determining whether a mapping of the one or more constructs in the original language to one or more constructs in the selected target language are provided;in response to determining that the mapping of the one or more constructs in the original language to one or more constructs in the selected target language are not provided, causing a prompt to be presented that enables the mapping to be provided;after receiving an indication of the prompt being presented that enables the mapping to be provided, receiving input of the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language;generating proxy classes related to the selected target language, one or more of the proxy classes including an accessor method and a mutator method for a class member of one or more methods of an original language application written in the original language;generating data types related to the selected target language, wherein generating the data types is based on the mapping of the one or more constructs in the original language to the one or more constructs in the selected target language;converting data communication between the proxy classes and the original language application;generating streamers related to the selected target language, wherein the streamers are adapted to: convert data communicated by the proxy classes to the original language application and convert data communicated by the original language application to the proxy classes, wherein the data is converted into a neutral data format; andcausing a target language application written in the selected target language to invoke the one or more methods of the original language application utilizing one or more of the streamers.
US Referenced Citations (208)
Number Name Date Kind
4714995 Materna et al. Dec 1987 A
5465111 Fukushima et al. Nov 1995 A
5495533 Linehan et al. Feb 1996 A
5524253 Pham et al. Jun 1996 A
5604800 Johnson et al. Feb 1997 A
5675711 Kephart et al. Oct 1997 A
5721912 Stepczyk et al. Feb 1998 A
5778395 Whiting et al. Jul 1998 A
5812997 Morimoto et al. Sep 1998 A
5859911 Angelo et al. Jan 1999 A
5930798 Lawler et al. Jul 1999 A
5982891 Ginter et al. Nov 1999 A
6038500 Weiss Mar 2000 A
6055562 Devarakonda et al. Apr 2000 A
6065040 Mima et al. May 2000 A
6088689 Kohn et al. Jul 2000 A
6113650 Sakai Sep 2000 A
6134580 Tahara et al. Oct 2000 A
6134660 Boneh et al. Oct 2000 A
6154777 Ebrahim Nov 2000 A
6172986 Watanuki et al. Jan 2001 B1
6199195 Goodwin et al. Mar 2001 B1
6202060 Tran Mar 2001 B1
6209124 Vermeire et al. Mar 2001 B1
6230309 Turner et al. May 2001 B1
6233601 Walsh May 2001 B1
6256773 Bowman-Amuah Jul 2001 B1
6272478 Obata et al. Aug 2001 B1
6282563 Yamamoto et al. Aug 2001 B1
6282697 Fables et al. Aug 2001 B1
6304556 Haas Oct 2001 B1
6330677 Madoukh Dec 2001 B1
6343265 Glebov et al. Jan 2002 B1
6349343 Foody et al. Feb 2002 B1
6389462 Cohen et al. May 2002 B1
6438744 Toutonghi et al. Aug 2002 B2
6442537 Karch Aug 2002 B1
6452910 Vij et al. Sep 2002 B1
6477372 Otting et al. Nov 2002 B1
6496871 Jagannathan et al. Dec 2002 B1
6600430 Minagawa et al. Jul 2003 B2
6600975 Moriguchi et al. Jul 2003 B2
6611516 Pirkola et al. Aug 2003 B1
6629032 Akiyama Sep 2003 B2
6629128 Glass Sep 2003 B1
6662642 Breed et al. Dec 2003 B2
6671680 Iwamoto et al. Dec 2003 B1
6687761 Collins et al. Feb 2004 B1
6701381 Hearne et al. Mar 2004 B2
6714844 Dauner et al. Mar 2004 B1
6738975 Yee et al. May 2004 B1
6744352 Lesesky et al. Jun 2004 B2
6744358 Bollinger Jun 2004 B1
6744820 Khairallah et al. Jun 2004 B1
6768417 Kuragaki et al. Jul 2004 B2
6816452 Maehata Nov 2004 B1
6831375 Currie et al. Dec 2004 B1
6851108 Syme Feb 2005 B1
6862443 Witte Mar 2005 B2
6876845 Tabata et al. Apr 2005 B1
6879570 Choi Apr 2005 B1
6895391 Kausik May 2005 B1
6901588 Krapf et al. May 2005 B1
6904593 Fong et al. Jun 2005 B1
6931455 Glass Aug 2005 B1
6931623 Vermeire et al. Aug 2005 B2
6947965 Glass Sep 2005 B2
6951021 Bodwell et al. Sep 2005 B1
6957439 Lewallen Oct 2005 B1
6963582 Xu Nov 2005 B1
6981150 Little et al. Dec 2005 B2
6985929 Wilson et al. Jan 2006 B1
6993774 Glass Jan 2006 B1
7010689 Matyas, Jr. et al. Mar 2006 B1
7043522 Olson et al. May 2006 B2
7047518 Little et al. May 2006 B2
7055153 Beck et al. May 2006 B2
7058645 Seto et al. Jun 2006 B2
7062708 Mani et al. Jun 2006 B2
7069551 Fong et al. Jun 2006 B2
7127259 Ueda et al. Oct 2006 B2
7127724 Lewallen Oct 2006 B2
7146614 Nikols et al. Dec 2006 B1
7146618 Mein et al. Dec 2006 B1
7172113 Olenick et al. Feb 2007 B2
7174533 Boucher Feb 2007 B2
7197742 Arita et al. Mar 2007 B2
7210132 Rivard et al. Apr 2007 B2
7213227 Kompalli et al. May 2007 B2
7225425 Kompalli et al. May 2007 B2
7228141 Sethi Jun 2007 B2
7231403 Howitt et al. Jun 2007 B1
7237225 Kompalli et al. Jun 2007 B2
7293261 Anderson et al. Nov 2007 B1
7376959 Warshavsky et al. May 2008 B2
7475107 Maconi et al. Jan 2009 B2
7477897 Bye Jan 2009 B2
7496637 Han et al. Feb 2009 B2
7499990 Tai et al. Mar 2009 B1
7502615 Wilhoite et al. Mar 2009 B2
7506309 Schaefer Mar 2009 B2
7519455 Weiss et al. Apr 2009 B2
7566002 Love et al. Jul 2009 B2
7643447 Watanuki et al. Jan 2010 B2
7660777 Hauser Feb 2010 B1
7660780 Patoskie Feb 2010 B1
7664721 Hauser Feb 2010 B1
7698243 Hauser Apr 2010 B1
7702602 Hauser Apr 2010 B1
7702603 Hauser Apr 2010 B1
7702604 Hauser Apr 2010 B1
7774789 Wheeler Aug 2010 B1
7810140 Lipari et al. Oct 2010 B1
7823169 Wheeler Oct 2010 B1
7840513 Hauser Nov 2010 B2
7844759 Cowin Nov 2010
20010029526 Yokoyama et al. Oct 2001 A1
20010051515 Rygaard Dec 2001 A1
20010056425 Richard Dec 2001 A1
20020032783 Tuatini Mar 2002 A1
20020035429 Banas Mar 2002 A1
20020091680 Hatzis et al. Jul 2002 A1
20020115445 Myllymaki Aug 2002 A1
20020116454 Dyla et al. Aug 2002 A1
20020159479 Watanuki et al. Oct 2002 A1
20020174222 Cox Nov 2002 A1
20020196771 Vij et al. Dec 2002 A1
20030009539 Hattori Jan 2003 A1
20030018950 Sparks et al. Jan 2003 A1
20030023573 Chan et al. Jan 2003 A1
20030033437 Fischer et al. Feb 2003 A1
20030046377 Daum et al. Mar 2003 A1
20030046432 Coleman et al. Mar 2003 A1
20030051172 Lordermann et al. Mar 2003 A1
20030055898 Yeager et al. Mar 2003 A1
20030070071 Riedel et al. Apr 2003 A1
20030101441 Harrison et al. May 2003 A1
20030177170 Glass Sep 2003 A1
20030191797 Gurevich et al. Oct 2003 A1
20030191969 Katsikas Oct 2003 A1
20030225789 Bussler et al. Dec 2003 A1
20030225935 Rivard et al. Dec 2003 A1
20040003243 Fehr et al. Jan 2004 A1
20040015539 Alegria et al. Jan 2004 A1
20040037315 Delautre et al. Feb 2004 A1
20040044985 Kompalli et al. Mar 2004 A1
20040044986 Kompalli et al. Mar 2004 A1
20040044987 Kompalli et al. Mar 2004 A1
20040064503 Karakashian et al. Apr 2004 A1
20040078423 Satyavolu et al. Apr 2004 A1
20040078687 Partamian et al. Apr 2004 A1
20040082350 Chen et al. Apr 2004 A1
20040088369 Yeager et al. May 2004 A1
20040111730 Apte Jun 2004 A1
20040133656 Butterworth et al. Jul 2004 A1
20040148073 Hawig et al. Jul 2004 A1
20040172614 Gallagher Sep 2004 A1
20040194072 Venter Sep 2004 A1
20040203731 Chen et al. Oct 2004 A1
20040220952 Cheenath Nov 2004 A1
20040221292 Chiang et al. Nov 2004 A1
20050004727 Remboski et al. Jan 2005 A1
20050030202 Tsuboi Feb 2005 A1
20050090279 Witkowski et al. Apr 2005 A9
20050114832 Manu May 2005 A1
20050141706 Regli et al. Jun 2005 A1
20050144218 Heintz Jun 2005 A1
20050163549 Shima et al. Jul 2005 A1
20050172123 Carpentier et al. Aug 2005 A1
20050246302 Lorenz et al. Nov 2005 A1
20050256614 Habermas Nov 2005 A1
20050256876 Eidson Nov 2005 A1
20050262155 Kress et al. Nov 2005 A1
20050281363 Qi et al. Dec 2005 A1
20060005177 Atkin et al. Jan 2006 A1
20060031850 Falter et al. Feb 2006 A1
20060040640 Thompson et al. Feb 2006 A1
20060041337 Augsburger et al. Feb 2006 A1
20060048145 Celli et al. Mar 2006 A1
20060080646 Aman Apr 2006 A1
20060090103 Armstrong et al. Apr 2006 A1
20060111089 Winter et al. May 2006 A1
20060112183 Corson et al. May 2006 A1
20060121916 Aborn et al. Jun 2006 A1
20060123396 Fox et al. Jun 2006 A1
20060143600 Cottrell et al. Jun 2006 A1
20060149746 Bansod et al. Jul 2006 A1
20060167981 Bansod et al. Jul 2006 A1
20060173857 Jackson Aug 2006 A1
20060190931 Scott et al. Aug 2006 A1
20060200494 Sparks Sep 2006 A1
20060206864 Shenfield et al. Sep 2006 A1
20060220900 Ceskutti et al. Oct 2006 A1
20060221901 Yaqub et al. Oct 2006 A1
20060245406 Shim Nov 2006 A1
20060256008 Rosenberg Nov 2006 A1
20060272002 Wightman et al. Nov 2006 A1
20070004432 Hwang et al. Jan 2007 A1
20070015495 Winter et al. Jan 2007 A1
20070026871 Wager Feb 2007 A1
20070103292 Burkley et al. May 2007 A1
20070112773 Joyce May 2007 A1
20070223432 Badarinath Sep 2007 A1
20070243880 Gits et al. Oct 2007 A1
20080077667 Hwang et al. Mar 2008 A1
20100161543 Hauser Jun 2010 A1
20100223210 Patoskie Sep 2010 A1
20100235459 Wheeler Sep 2010 A1
Foreign Referenced Citations (1)
Number Date Country
2005190103 Jul 2005 JP