A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document of the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The invention relates generally to integration of computer systems, and particularly to the integration of servers, applications, and resources within those systems.
The Java™ 2 Platform, Enterprise Edition (J2EE), from Sun Microsystems, Inc. of Palo Alto, Calif., defines a standard for developing multi-tier enterprise applications. A J2EE connector architecture is useful for the integration of J2EE-compliant application servers with at least one enterprise information system (EIS). There are typically two parts to this architecture: an EIS vendor-provided resource adapter and an application server to which the resource adapter plugs-in, such as a WebLogic Server available from BEA Systems in San Jose, Calif. This architecture defines a set of contracts that a resource adapter has to support to plug-in to an application server. These contracts can include such functions as transactions, security, and connection management. The J2EE connector architecture also defines a common client interface (CCI) that can be used to access an EIS. A CCI defines a client API for interacting with heterogeneous EIS systems, which enables application components and Enterprise Application Integration (EAI) frameworks to drive interactions across heterogeneous EIS systems using a common client API.
Containers
J2EE organizes business logic into reusable components. A J2EE server can provide underlying services for these components in the form of a container for every component type. Containers are the interface between the components and the platform-specific functionality that supports these components. Before a component can be executed, it is assembled into a J2EE application and deployed into the appropriate container.
Resource Adapters
A resource adapter is a system-level software driver used by an application server to connect to an EIS. A resource adapter, which can contain a library specific to an EIS, can serve as a J2EE connector. A J2EE connector architecture can support resource adapters that are developed by EIS developers, vendors, and/or third-party application developers. These resource adapters can be deployed in any application server supporting the appropriate J2EE specification. Resource adapters contain the Java, and if necessary, the native components required to interact with the EIS.
A J2EE connector architecture can provide packaging and deployment interfaces, so that various resources adapters can easily plug into compliant J2EE application servers in a modular manner. A J2EE connector architecture can be implemented in an application server and an EIS-specific resource adapter.
Architecture Components
A J2EE connector architecture typically has three main components:
The J2EE connector architecture can provide a Java-based solution to the problem of connectivity between a multitude of application servers and EIS systems. By using the connector architecture, an EIS vendor does not need to customize a product for each application server. By conforming to the J2EE connector architecture, custom code is not required in order to extend support connectivity to a new EIS. The connector architecture enables an EIS vendor to provide a standard resource adapter for its EIS. This resource adapter plugs into an application, such as WebLogic Server, and provides the underlying infrastructure for the integration between an EIS and the application.
A resource adapter provider can develop a set of Java interfaces and classes as part of the adapter implementation. These Java classes implement J2EE Connector Architecture-specified contracts and EIS-specific functionality provided by the resource adapter. The Java interfaces and classes are then packaged together with a deployment descriptor to create a resource adapter module. This module can include any required native libraries, help files, documentation, and other resources. A deployment descriptor defines the contract between a resource adapter provider and a deployer for the deployment of a resource adapter.
J2EE connectors can be used to access legacy systems in accordance with J2EE guidelines. A J2EE connector can be used to access the legacy system in order to implement business logic. This business logic can be implemented either by using J2EE server-side components, such as may include an Enterprise JavaBean (EJB) or Java servlet, or by using J2EE client-side components, such as JavaRMI clients. Some examples of legacy systems include Oracle DB2 databases from Oracle Corporation of Redwood Shores, Calif.; IBM mainframe systems from International Business Machines Corporation of Armonk, N.Y.; Enterprise Resource Planning (ERP) systems such as SAP from SAP of Walldorf, Germany and PeopleSoft from PeopleSoft of Pleasanton, Calif.; and Customer Relation Management (CRM) solutions such as Siebel from Siebel Systems, Inc. of San Mateo, Calif. and Oracle's CRM solution from Oracle Corporation of Redwood Shores, Calif.
J2EE Components
A J2EE component itself is typically one of three types: (1) a code file, such as a Java class file; (2) a configuration file, such as an XML configuration file; or (3) a resource file, such as an image file, video file, or audio file that can be used by any appropriate Java classes.
Supporting Additional Systems
If it becomes necessary for an application to access a second legacy system, or another portion of the legacy system, it is necessary to create a second J2EE connector component using existing methods. This leads to not only the need for redundant coding, but also leads to the need to add any updates to both components as well as the need to allocate twice as much memory to store both components.
Systems and methods in accordance with embodiments of the present invention overcome these and other deficiencies by providing an application with access to multiple locations or systems without having to create additional J2EE connector components.
Systems and methods in accordance with one such embodiment extend connector components by building on a base connector component. A base connector, such as a J2EE connector, allows an application to communicate with a first system. An extended connector can be used to allow the application to communicate with a second system. The extended connector can contain configuration information for the second system, but is otherwise adapted to use information in the base connector to communicate with the second system.
The use of information in the base connector eliminates the duplication of information between connectors. The use of base connector information also allows the base connector and extended connector to share files such as class files and resource files. A container, such as a J2EE container, can be used to provide underlying services for the base connector and extended connector. The container can also allow for the monitoring and management of the base connector and extended connector.
Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.
One solution to the problem of reusing and modifying an existing J2EE component applies the concept of inheritance, as is used in object-oriented design methodology. Systems and methods in accordance with one embodiment of the present invention can utilize such a solution by allowing a J2EE component to inherit an existing J2EE component, or base component. This can be done in one embodiment by specifying a custom-defined tag in the appropriate deployment descriptor. Such a system can allow for the modifying and extending of any inherited attributes of the base connector. Such a system can also reduce the footprint of J2EE components, can reduce the deployment time as there is less information to be parsed, and can reduce maintenance overhead as bug-fixes and changes need be done only in a base component. The system can make efficient use of disk resources by eliminating the duplication of bulk resource files otherwise required with multiple base components. Further, if code files are being shared between components, a common class loader can be shared which can lead to faster access of runtime resources.
A transaction contract can exist between a transaction manager 104 and an EIS 112 supporting transaction access to EIS resource managers. This contract can allow an application server 100 to use a transaction manager 104 to manage transactions across multiple resource managers. A security contract can provide secure access to an EIS 112 and can protect information resources that are managed by the EIS.
A resource adapter 110 can be used that is specific to the EIS 112. The resource adapter 110 can be a system library that is specific to the EIS and that can provide connectivity to the EIS 112. An interface between the resource adapter 110 and the EIS 112 can also be specific to the EIS, and can be a native interface.
The architecture utilizes system contracts between the resource adapter 110 and the application server 100. An application contract or common client interface (CCI) can provide a client API for a Java application, application component 108, or development tools to access the resource adapter 110. An EIS-specific interface, which can comprise a packaging and deployment interface, can provide the ability for a resource adapter 110 to connect an EIS 112 and a J2EE application in a modular manner. A container-component contract can also exist between the application server 100, hosting the relevant container, and the application component 108.
A J2EE/JCA container 300 can allow the monitoring and management of supported components, as well as the service(s) that monitor and manage the components. Containers useful with embodiments of the present invention can include connector containers that host resource adapters; web containers that host JS P, servlets, and static HTML pages; EJB containers that host EJB components; and application client containers that host standalone application clients.
The foregoing description of preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to one of ordinary skill in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.
This application claims priority to U.S. Provisional Patent Application No. 60/354,738, filed Feb. 6, 2002, entitled “J2EE COMPONENT EXTENSION ARCHITECTURE,” as well as Application No. 60/397,916, filed Jul. 23, 2002, entitled “SYSTEM AND METHOD FOR IMPLEMENTING J2EE CONNECTOR ARCHITECTURE,” and Application No. 60/406,745, filed Aug. 29, 2002 entitled “IMPROVED J2EE CONNECTOR ARCHITECTURE,” each of which is hereby incorporated herein by reference.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4714996 | Gladney | Dec 1987 | A |
| 5163148 | Walls | Nov 1992 | A |
| 5212793 | Donica et al. | May 1993 | A |
| 5249290 | Heizer | Sep 1993 | A |
| 5586260 | Hu | Dec 1996 | A |
| 5613060 | Britton | Mar 1997 | A |
| 5751967 | Raab et al. | May 1998 | A |
| 5761507 | Govett | Jun 1998 | A |
| 5765171 | Gehani | Jun 1998 | A |
| 5768504 | Kells et al. | Jun 1998 | A |
| 5774689 | Curtis et al. | Jun 1998 | A |
| 5802291 | Balick et al. | Sep 1998 | A |
| 5805798 | Kearns | Sep 1998 | A |
| 5819107 | Lichtman et al. | Oct 1998 | A |
| 5909689 | Van Ryzin | Jun 1999 | A |
| 5910180 | Flory et al. | Jun 1999 | A |
| 5926775 | Brumley et al. | Jul 1999 | A |
| 6018805 | Ma | Jan 2000 | A |
| 6055243 | Vincent et al. | Apr 2000 | A |
| 6122629 | Walker | Sep 2000 | A |
| 6134673 | Chrabaszcz | Oct 2000 | A |
| 6173327 | De Borst et al. | Jan 2001 | B1 |
| 6189046 | Moore et al. | Feb 2001 | B1 |
| 6212521 | Minami | Apr 2001 | B1 |
| 6212556 | Arunachalam | Apr 2001 | B1 |
| 6243753 | Machin et al. | Jun 2001 | B1 |
| 6269373 | Apte et al. | Jul 2001 | B1 |
| 6304879 | Sobeski | Oct 2001 | B1 |
| 6338089 | Quinlan | Jan 2002 | B1 |
| 6343287 | Kumar et al. | Jan 2002 | B1 |
| 6389462 | Cohen | May 2002 | B1 |
| 6411956 | Ng | Jun 2002 | B1 |
| 6425005 | Dugan | Jul 2002 | B1 |
| 6430564 | Judge | Aug 2002 | B1 |
| 6438705 | Chao | Aug 2002 | B1 |
| 6453321 | Hill | Sep 2002 | B1 |
| 6453356 | Sheard et al. | Sep 2002 | B1 |
| 6466972 | Paul et al. | Oct 2002 | B1 |
| 6505200 | Ims et al. | Jan 2003 | B1 |
| 6505241 | Pitts | Jan 2003 | B2 |
| 6523130 | Hickman | Feb 2003 | B1 |
| 6539381 | Prasad et al. | Mar 2003 | B1 |
| 6542845 | Grucci et al. | Apr 2003 | B1 |
| 6651140 | Kumar | Nov 2003 | B1 |
| 6687848 | Najmi | Feb 2004 | B1 |
| 6721777 | Sharma | Apr 2004 | B1 |
| 6757708 | Craig et al. | Jun 2004 | B1 |
| 6766324 | Carlson | Jul 2004 | B2 |
| 6775703 | Burns | Aug 2004 | B1 |
| 6779017 | Lamberton | Aug 2004 | B1 |
| 6826601 | Jacobs | Nov 2004 | B2 |
| 6832238 | Sharma | Dec 2004 | B1 |
| 6836889 | Chan | Dec 2004 | B1 |
| 6854120 | Lo et al. | Feb 2005 | B1 |
| 6898587 | Messinger | May 2005 | B2 |
| 6944785 | Gadir | Sep 2005 | B2 |
| 6963857 | Johnson | Nov 2005 | B1 |
| 7089584 | Sharma | Aug 2006 | B1 |
| 7100195 | Underwood | Aug 2006 | B1 |
| 7171692 | DeMello | Jan 2007 | B1 |
| 7203756 | Tapperson | Apr 2007 | B2 |
| 7240101 | Rich | Jul 2007 | B2 |
| 7454492 | Bauer et al. | Nov 2008 | B2 |
| 7484224 | Potter et al. | Jan 2009 | B2 |
| 7506342 | Mousseau et al. | Mar 2009 | B2 |
| 7546606 | Upton | Jun 2009 | B2 |
| 20010042073 | Saether et al. | Nov 2001 | A1 |
| 20010054062 | Ismael et al. | Dec 2001 | A1 |
| 20020073188 | Rawson | Jun 2002 | A1 |
| 20020107934 | Lowery | Aug 2002 | A1 |
| 20020147961 | Charters | Oct 2002 | A1 |
| 20020161839 | Colasurdo | Oct 2002 | A1 |
| 20020161860 | Godlin et al. | Oct 2002 | A1 |
| 20020184444 | Shandony | Dec 2002 | A1 |
| 20020188591 | Santosuosso | Dec 2002 | A1 |
| 20030018732 | Jacobs | Jan 2003 | A1 |
| 20030037181 | Freed | Feb 2003 | A1 |
| 20030041135 | Keyes et al. | Feb 2003 | A1 |
| 20030060214 | Hendrey et al. | Mar 2003 | A1 |
| 20030065826 | Skufca | Apr 2003 | A1 |
| 20030088713 | Mandal et al. | May 2003 | A1 |
| 20030105837 | Kamen | Jun 2003 | A1 |
| 20030110467 | Balakrishnan | Jun 2003 | A1 |
| 20030233433 | Halpern | Dec 2003 | A1 |
| 20030236923 | Jeyaraman | Dec 2003 | A1 |
| 20040059735 | Gold et al. | Mar 2004 | A1 |
| 20040153558 | Gunduc et al. | Aug 2004 | A1 |
| 20040230747 | Ims et al. | Nov 2004 | A1 |
| 20060080435 | Tankov et al. | Apr 2006 | A1 |
| 20060168118 | Godlin et al. | Jul 2006 | A1 |
| 20060212453 | Eshel et al. | Sep 2006 | A1 |
| 20080270600 | Tankov et al. | Oct 2008 | A1 |
| Number | Date | Country | |
|---|---|---|---|
| 20030225944 A1 | Dec 2003 | US |
| Number | Date | Country | |
|---|---|---|---|
| 60354738 | Feb 2002 | US | |
| 60397916 | Jul 2002 | US | |
| 60406745 | Aug 2002 | US |