WO2004023297A1 - Systeme et procede de securisation dynamique de java beans d'entreprise persistants multisources dynamiques - Google Patents
Systeme et procede de securisation dynamique de java beans d'entreprise persistants multisources dynamiques Download PDFInfo
- Publication number
- WO2004023297A1 WO2004023297A1 PCT/US2002/028495 US0228495W WO2004023297A1 WO 2004023297 A1 WO2004023297 A1 WO 2004023297A1 US 0228495 W US0228495 W US 0228495W WO 2004023297 A1 WO2004023297 A1 WO 2004023297A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- ejb
- attribute
- dynamic multi
- context definition
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 93
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 230000002085 persistent effect Effects 0.000 claims description 30
- 238000013475 authorization Methods 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 230000002688 persistence Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 2
- 230000004931 aggregating effect Effects 0.000 abstract description 3
- 230000003068 static effect Effects 0.000 abstract description 2
- 230000007246 mechanism Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 3
- 244000046052 Phaseolus vulgaris Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Definitions
- the invention relates generally to electronic business transaction processing, and more particularly to systems for accessing back-end enterprise applications and data from the Internet by providing an intelligent, real-time data and logic cache that is synchronized with back-office systems.
- the platform must provide synchronization with back office systems to manage performance and enhance security of the online business environment. It must be easily and rapidly applied to a wide range of business environments while minimizing the burden of installing, operating, enhancing and maintaining the system.
- the system must be capable of providing high performing, reliable, fault tolerant, load balanced and scalable operation.
- the present invention provides a real-time transaction-processing platform that connects online web-based applications to back office enterprise systems while providing control over enterprise data and business rules. It provides synchronization with back office systems, enhances security of online transaction processing, and is readily applied to a wide range of business environments. By minimizing the need for customized development through use of reliable, standard, reusable components, the costs associated with installing, operating, enhancing and maintaining the system are minimized.
- the system provides a high performance, reliable, fault tolerant load balanced scalable platform. The system enables consolidation of information from disparate back office systems into one easily manageable, real-time data cache and management services layer to enable complex online transactions across multiple channels.
- the present invention relies on the Java 2 Enterprise Edition (J2EETM) standard defined by Sun Microsystems as a software architecture for use in constructing multi-tiered transaction systems.
- J2EETM systems generally run on an application server that has been certified to be compliant with the J2EETM standard specification.
- the J2EETM standard is incorporated herein by reference.
- Several major manufacturers produce J2EETM compliant application servers.
- the present invention also makes use of Enterprise JavaBeansTM (EJBTM) as a component architecture for the development and deployment of component-based business applications.
- EJBTM Enterprise JavaBeansTM
- the Enterprise JavaBeansTM specification was created under the Java Community Process to provide full public participation in the definition and development. This specification is incorporated herein by reference.
- the present invention is a unique and novel application of EJBTM in the form of a Dynamic Multi-sourced Persisted EJB.
- the Dynamic Multi-sourced Persisted EJB executes on a J2EETM compliant web application server and uses a context definition that is read at runtime to map each EJBTM attribute to specific data in source systems.
- the Dynamic Multi- sourced Persisted EJB can be invoked from Session EJBs that in turn provide data to JavaServer Pages (JSPTM) and or servlets for creating a client interface.
- JSPTM JavaServer Pages
- the Dynamic Multi- sourced Persisted EJB can also be invoked directly from client JavaTM applications.
- the Dynamic Multi-sourced Persisted EJB uses Bean-Managed Persistence (BMP) supported by the J2EETM architecture to optionally cache data accessed in source systems. The data is synchronized between the cache and source systems. This cache is persisted to disk to allow the application server to respect the standard J2EETM EJBTM lifecycle.
- BMP Bean-Managed Persistence
- the Dynamic Multi- sourced Persisted EJB also provides a consistent attribute security model to limit unrestricted access to data.
- a method for dynamically securing Dynamic Multi-sourced Persisted EJB attributes comprises creating a context definition containing attributes representing collections of source system data, specifying in an attribute securing element access security requirements for each attribute in the context definition, storing the context definition in a persistent data cache, creating an instance of a Dynamic Multi-sourced Persisted EJB, applying the attributes in the context definition to the created instance of the Dynamic Multi-sourced Persisted EJB, accessing secured data by the Dynamic Multi-sourced Persisted EJB instance without requiring EJB compilation and deployment, and sending attribute data from source systems to clients and from clients to source systems in response to client queries that meet the access requirements of respective attribute securing elements.
- the method may further comprise specifying whether each attribute in the context definition is mapped to a field in a data source, identifying a data source system table where the attribute value is located if the attribute is mapped, and specifying in an attribute caching element whether each attribute in the context definition is to be cached in a persistent data cache.
- the step of storing the context definition may comprise dynamically creating a persistent cache table containing attribute securing elements in the persistent data cache for managing context attributes during EJB Bean Managed Persistence lifecycle.
- the step of storing the context definition may comprise dynamically creating a persistent Map/Cache/Secure Table in the persistent data cache.
- the method may further comprise reloading a context definition for updating attribute securing requirements during execution and keeping cache data synchronized and updated with client and back-end data.
- the reloading of the context definition may be performed during execution on demand.
- the reloading of the context definition may be performed during execution on a schedule.
- the step of reloading the context definition may comprise verifying the user requesting reloading has security authorization for executing a reload, detecting differences between the stored context definition and the reloaded context definition for identifying changes in the context definitions, and rebuilding persistent cache database tables containing context definitions for incorporating changes in the context definition.
- the method may further comprise authorizing loading attributes of a new context definition based on the attribute securing elements, creating and loading a new context definition containing new attributes, applying the new attributes to the Dynamic Multi-sourced Persisted EJB instance for mapping the new attributes to source system data fields during runtime, recreating the persistent data cache, and immediately sending new attribute data to clients.
- the method may further comprise representing the context definition as an XML document.
- the step of creating an instance of a Dynamic Multi-sourced Persisted EJB may comprise creating and accessing an instance of a Dynamic Multi-sourced Persisted EJB from an external application using generic method calls of an application programming interface selected from the group consisting of create(), find(), getAttr(), getAttrs(), getGuid(), setAttr(), setAttrs() and retrieveNewAndDeletedContexts().
- the method may further comprise performing runtime checks prior to executing a method call including querying a security engine to determine if the method call is authorized and querying back-end adapters to determine if there are pending back-end mapped data updates for keeping cache data synchronized and updated with back-end mapped data.
- the step of creating an instance of a Dynamic Multi-sourced Persisted EJB may comprise creating and accessing an instance of a Dynamic Multi-sourced Persisted EJB from an external application through a Session EJB Wrapper using traditional method calls of an application programming interface selected from the group consisting of create(), getAttributeName() and setAttributeName().
- the method may further comprise performing runtime checks prior to executing a method call including querying a security engine to determine if the method call is authorized and querying back-end adapters to determine if there are pending back-end mapped data updates for keeping cache data synchronized and updated with back-end mapped data.
- the method may further comprise defining a key attribute element to enable accessing source system data through adapters.
- An alternative embodiment of the present invention is a system for dynamically securing Dynamic Multi-sourced Persisted EJB attributes that comprises means for creating a context definition containing attributes representing collections of source system data, an attribute securing element for specifying access security requirements for each attribute in a context definition, means for storing the context definition in a persistent data cache, means for creating an instance of a Dynamic Multi-sourced Persisted EJB, means for applying the attributes in the context definition to the created instance of the Dynamic Multi-sourced Persisted EJB, means for accessing secured data by the Dynamic Multi-sourced Persisted EJB instance without requiring EJB compilation and deployment, and means for sending attribute data from source systems to clients and from clients to source systems in response to client queries that meet the access requirements of respective attribute securing elements.
- each attribute may comprise an element specifying whether each attribute in the context definition is mapped to a field in a data source, an element identifying a data source system table where the attribute value is located if the attribute is mapped, and an element specifying caching requirements for each attribute in the context definition.
- the means for storing the context definition may comprise dynamically creating a persistent cache table containing attribute securing elements in the persistent data cache for managing context attributes during EJB Bean Managed Persistence lifecycle.
- the persistent cache table may comprise a Map/Cache/Secure Table.
- the system may further comprise means for reloading a context definition for updating attribute caching requirements during execution and means for keeping cache data synchronized and updated with client and back-end data.
- the system wherein the context definition may be reloaded during execution on demand.
- the system wherein the context definition may be reloaded during execution on a schedule.
- the system wherein the context definition may be an XML document.
- the means for creating an instance of a Dynamic Multi-sourced Persisted EJB may comprise means for creating and accessing an instance of a Dynamic Multi-sourced Persisted EJB from an external application using generic method calls of an application programming interface selected from the group consisting of create(), findf), getAttr(), getAttrs(), getGuid(), setAttr(), setAttrs() and retrieveNewAndDeletedContexts().
- the system may further comprise means for performing runtime checks prior to executing a method call including means for querying a security engine to determine if the method call is authorized and means for querying back-end adapters to determine if there are pending back-end mapped data updates for keeping cache data synchronized and updated with back-end mapped data.
- the means for creating an instance of a Dynamic Multi-sourced Persisted EJB may comprise means for creating and accessing an instance of a Dynamic Multi-sourced Persisted EJB from an external application through a Session EJB Wrapper using traditional method calls of an application programming interface selected from the group consisting of createf), getAttributeName() and setAttributeName().
- the method may further comprise means for performing runtime checks prior to executing a method call including querying a security engine to determine if the method call is authorized and means for querying back-end adapters to determine if there are pending back-end mapped data updates for keeping cache data synchronized and updated with back-end mapped data.
- the system may further comprise a key attribute element to enable accessing source system data through adapters.
- Yet another embodiment of the present invention is a system for dynamically securing Dynamic Multi-sourced Persisted EJB attributes to source system resources that comprises an application server including contexts connected to JMS adapters, a data cache connected to the contexts in the application server for providing BMP data for mapping Dynamic Multi- sourced Persisted EJB attributes to back-end system data fields, system adapters for connecting JMS adapters to back-end systems, an XML data storage device for providing context definition documents to the contexts and JMS adapters in the application server and to the system adapters, and a security engine for applying system access authorization requirements.
- the contexts may include Dynamic Multi-sourced Persisted EJB instances and Session EJB Wrappers.
- Yet another alternative embodiment of the present invention is a system for dynamically securing Dynamic Multi-sourced Persisted EJB attributes that comprises a context definition containing attributes representing collections of source system data, an attribute securing element for specifying access security requirements for each attribute in the context definition, a persistent data cache for storing the context definition, an instance of a Dynamic Multi-sourced Persisted EJB, the attributes in the context definition applied to the created instance of the Dynamic Multi-sourced Persisted EJB, the Dynamic Multi-sourced Persisted EJB instance accessing secured data without requiring EJB compilation and deployment, and attribute securing elements for enabling sending attribute data from source systems to clients and from clients to source systems in response to client queries that meet the access requirements of respective attribute securing elements.
- Figure 1 shows a three-tiered client-server architecture for Internet applications
- Figure 2 shows a functional diagram of an application server
- Figure 3 shows a typical development cycle with compile-time tools
- Figure 4 shows the context definition of a Dynamic Multi-sourced Persisted EJB
- Figure 5 depicts generic methods for accessing instances of Dynamic Multi-sourced Persisted EJBs
- Figure 6A illustrates checks that are conducted before a method call request is executed
- Figure 6B shows an embodiment of Dynamic Multi-sourced Persisted EJB code for the getAttr() method
- Figure 7A show a traditional Session EJB Wrapper in the method execution process
- Figure 7B is an example of Session EJB code for invoking methods in a Dynamic
- Figure 8 shows a functional diagram of a system implementation of the present invention
- Figure 9 depicts an example of an XML document to define a Map/Cache/Secure Table
- Figure 10 shows an embodiment of the present invention in a system environment.
- FIG. 1 shows a three-tiered client-server architecture 100 for Internet applications.
- This architecture 100 is known to those skilled in the relevant art.
- Web application servers typically provide the middle tier 120 of a three-tiered architecture for Internet applications.
- Tier 1, 110 provides the presentation to the end-user of the application. Typically this consists of a web browser such as Netscape, or Internet Explorer interpreting HTML forwarded by a web server in Tier 2, 120 via a Local Area Network (LAN) 140.
- Tier 2, 120 provides the business logic. This business logic typically is written in Enterprise Java Beans (EJBs), Java Server Pages (JSPs), and servlets. Usually this tier can be broken down into a Web server and an Application server.
- EJBs Enterprise Java Beans
- JSPs Java Server Pages
- servlets Usually this tier can be broken down into a Web server and an Application server.
- Tier 3 130 provides data and resources to Tier 2, 120 via a LAN 150 in the form of databases like DB2, CICS, conventional business applications (legacy/non-web), and possibly large processing power provided by mainframes.
- FIG. 2 shows a functional flow diagram 200 of an application server 210.
- This functional flow 200 is known to those skilled in the relevant art.
- a session EJB 230 is typically created to communicate with a Java Server Page (JSP) or servlet process 240.
- the JSP or servlet 240 is responsible for creating the presentation layout on the clients 250.
- the session EJB 230 usually has the life cycle equal to the client session (user visiting a web page on a browser).
- the session EJB 230 also communicates with an Entity EJB 220.
- the Entity EJB 220 encapsulates permanent data and methods to manipulate that data.
- the life of an Entity EJB 220 is much longer than a session EJB 230.
- the Application Server will persist the Entity EJB and its data to a database or file in case of system failure/resource constraints.
- the Entity EJB 220 can be accessed directly from a client Java application 260. This simplifies programming by removing several layers of code in JSPs and servlets 240.
- the disadvantage is Java applications 260 do not execute in browsers over the world wide web.
- Entity EJBs 220 may also access resources 270 outside of the Application Server (Tier 2) 210 through JDBC calls or other connector interfaces. It is important to note that each resource 270 may be accessed by very different Application Programming Interfaces (APIs), and that the complexity and maintenance costs of the Entity EJBs 220 can be very high.
- APIs Application Programming Interfaces
- Figure 3 shows a typical development cycle 300 with compile- time tools.
- This process 300 is known to those skilled in the relevant art.
- Entity Beans are complex JavaTM programs, and powerful tools are available to lead the developer through graphical user interfaces to help map EJB data elements 310, or attributes, to similar individual records in back-end databases.
- the tool will generate the Entity EJB code 310, compile it in a JavaTM compiler 320, and in some cases deploy the tool 330 on an Application Server 340.
- CMP Container Managed Persistence
- FIG. 4 shows an example of a context definition 400 of a Dynamic Multi-sourced Persisted EJB 420.
- Dynamic Multi-sourced Persisted EJBs are the subject of the present invention and are dynamically created on a J2EE compliant Web Application Server to access data contained in multiple back-end systems.
- the Dynamic Multi-sourced Persisted EJB is a general class that is responsible for mapping, caching, and securing data.
- the example context definition 410 is a customer instance, although it could reflect any data or data structure that may be mapped to a back-end system or stored in a cache.
- the attributes of the Dynamic Multi-sourced Persisted EJBs are defined and mapped to resources in data source systems without requiring compilation. This mapping results in synchronization of Dynamic Multi-sourced Persisted EJB data with data in the source systems.
- the Dynamic Mapping Context invention comprises a Context definition 410 that can be dynamically loaded during runtime.
- the Dynamic Multi-sourced Persisted EJB makes use of an external context definition that is read at runtime.
- Each Dynamic Multi- sourced Persisted EJB attribute can be:
- Figure 4 illustrates a Dynamic Multi-sourced Persisted EJB Customer instance 420 having attributes of name 422, address 424, and salary 426, and its associated Context definition 410 for mapping name 412, address 414, and salary 416.
- Figure 4 represents an example of a Customer Context definition 410 for specifying mapping, caching, and security for a
- Dynamic Multi-sourced Persisted EJBs 420 represent entities, or collections of data. Whenever a request is made to create an Dynamic Multi-sourced Persisted EJB instance of a specific entity, its context definition is applied.
- This definition table gives the Dynamic Multi-sourced Persisted EJB its dynamic quality by creating an EJB capable of handling data of the type specified in the Context definition. Without the disclosed Dynamic Multi-sourced Persisted EJB, it would have been to difficult to code a sub-class of the Entity EJB for each data type, and then hard code the mapping, security, and cache mechanisms for that data type.
- the present invention provides a mechanism to reload the context definition at anytime during execution, either on demand or on a schedule.
- Context definitions may be represented as Extensible Markup Language (XML) documents.
- each attribute When a context definition is initially loaded, each attribute is individually mapped to a field in a data source.
- a persistent cache table is dynamically created to maintain the context attribute states during the EJB Bean Managed Persistence (BMP) lifecycle.
- BMP EJB Bean Managed Persistence
- Each Context attribute is persisted in the cache, which is implemented on a relational database.
- the 'key' In the case where a 'key' value is required for an adapter, the 'key' is defined as an attribute of the context with a 'key' designation. This allows the context to pass to the data source adapters all keys necessary to obtain data from the source system.
- Each attribute is typically mapped to a single field in a data source, but the invention allows for attributes to be multiply mapped, where one field is designated as primary.
- Each data source adapter i.e. JDBC, CORBA, etc.
- Each data source adapter i.e. JDBC, CORBA, etc.
- CORBA CORBA
- Delete otherwise known as 'CRUD'
- Some adapters may only have a limited subset of functions (e.g., read-only, or create only).
- Dynamic Multi-sourced Persisted EJBs immediately adapt (if necessary) the mapping of attributes to data source fields and recreates the persistent cache.
- an application server service is used to detect differences in the Context definition and rebuild the cache database if necessary. To rebuild the cache database, 5 the system must perform the following operations:
- the present invention is a system that is capable of dynamically aggregating source system information and managing it based on a Context definition without long tooling, 5 compile, deploy development cycle that is typical of custom coded methods.
- Most Context definition changes can be dynamically adapted at runtime for mapping all the data in an enterprise.
- Definition of attributes of Dynamic Multi-sourced Persisted EJBs for mapping, caching, and securing, as illustrated in Figure 4 are stored as XML documents. Table 1 addresses some of the changes to the context XML definition that may be encountered. 0 Certain XML changes may need the cache to be rebuilt, and running applications may be impacted.
- FIG. 5 depicts generic methods 500 for accessing instances of Dynamic Multi-sourced Persisted EJBs 520.
- Dynamic Multi-sourced Persisted EJB instances 520 are created and accessed using an Application Programming Interface (API) 510.
- API Application Programming Interface
- a create() method is exposed 512.
- the Dynamic Multi-sourced Persisted EJB exposes find() methods 514 for retrieving lists of contexts for this purpose.
- the application may use the list as a collection of Dynamic Multi-sourced Persisted EJB instances, or may use a single element to reference a specific instance of a Dynamic Multi-sourced Persisted EJB.
- the Dynamic Multi-sourced Persisted EJB is table driven and "coded only once". Instead of writing unique EJB methods for each data type, the Dynamic Multi-sourced Persisted EJB presents a generic API to access the attributes. Attributes of Dynamic Multi- sourced Persisted EJB instances are not accessed with traditional coding patterns of getXxx() and setXxx(), where "Xxx" represents the name of specific attributes.
- the present invention uses generic methods getAttr() 516 and setAttr() 518 instead of getXxx() and setXxx(). Table 2 lists the generic method calls used by a generic API to access Dynamic Multi-sourced Persisted EJB attributes.
- Figure 6A illustrates checks that are conducted before a method call request is executed 600 via an API involving a Dynamic Multi-sourced Persisted EJB instance 620.
- a Dynamic Multi-sourced Persisted EJB instance is created or accessed by an API 610.
- two additional runtime checks are made before a method call may be executed.
- a Security Engine 630 is queried to determine if the method call request is authorized, and Back-end Adapters 640 are queried to determine if there are back-end updates.
- the authorization check validates that the caller has authorization to access the data of particular attributes. If authorization is not validated, an exception is returned.
- the back- end update check applies or clears any pending back-end data updates to the cache before executing a getAttr() or setAttr() request.
- Figure 6B shows an embodiment of Dynamic Multi-sourced Persisted EJB code for the getAt tr() method, and illustrates the use of Authorization and Back-end Updates.
- Figure 7A shows a traditional Session EJB Wrapper 730 in the method execution process 700. If an application desires to access a Dynamic Multi- sourced Persisted EJB 720 with a traditional Session EJB Wrapper 730, then the generic getAttr() and setAttr() methods accessed via an API 710 are exposed to the applications with the traditional getXxx() and setXxx() method patterns, where "Xxx" is the attribute name.
- Figure 7B is an example of Session EJB code for invoking methods in a Dynamic Multi- sourced Persisted EJB, as shown in Figure 7A.
- Figure 8 shows a functional diagram 800 of a system implementation of the present invention. It depicts a system capable of dynamically aggregating back-end system information and managing it, without the long tooling, compile, deploy development cycle of other methods. Other benefits include low maintenance of mapping, performance improvements by caching hard to reach data, and a uniform security policy for all the data in an enterprise.
- Figure 8 illustrates Dynamic Multi-sourced Persisted EJB instances 830 executing on a J2EETM compliant Web Application Server 810 and uses a Map/Cache/Secure Table 820 that is read in at runtime to control access to each Dynamic Multi-sourced Persisted EJB attribute.
- the Dynamic Multi-sourced Persisted EJB instances 830 can be invoked from Session EJBs 880 that in turn provide data to JSPs and/or servlets 870 for creating a client interface to a web Browser 892. Alternatively, Dynamic Multi- sourced Persisted EJB instances 830 may be invoked directly from client JavaTM applications 894.
- the Dynamic Multi-sourced Persisted EJB uses Bean Managed Persistence (BMP) supported by the J2EETM architecture to optionally cache source system data in a Cache 850 accessed in Back-end Systems 896 via Back-end Adapters 840. Data is synchronized between the Cache 850 and Back-end Systems 896.
- BMP Bean Managed Persistence
- the Cache 850 is persisted to disk to allow the Application Server 810 to respect the EJB life cycle.
- the Dynamic Multi-sourced Persisted EJBs provide a consistent attribute Security Engine 860 to protect unrestricted access to the data.
- Figure 9 depicts an example of an XML document to define a Map/Cache/Secure Table 820 for defining the attributes of a Dynamic Multi-sourced Persisted EJB instance 830 shown in Figure 8.
- Map/Cache/Secure Table 820 have been designated as cached 850, the system 810 synchronizes the cache data 850 with updates from Client Applications 892, 894 or updates from the Back-end Resources 896.
- Communication between the Context runtime and the Back-end Adapters 840 ensures that any creates, updates or deletes of data from the Context clients 892, 894 are sent to the Back-end Adapters 840 to keep the data source systems 896 in synchronization with the Cache 850.
- the Back-end Adapters 840 also notify the Contexts 830 when create, updates, or deletes occur originate in the data source system 896.
- FIG. 10 shows an embodiment 1000 of the present invention in a system environment.
- the "Contexts" Dynamic Multi-sourced Persisted EJBs and
- Adapters (back-end adapters) 1024 are at the heart of the present invention. The following terms are useful in the understanding the system model 1000.
- Object model the abstract representation of a set of java classes that together represent an entity such as customer, product, part, or agent. Object models are the beginning point for the creation of Contexts 1022.
- Context Instance - a specific instance of a Context 1022; e.g., the instance of the customer class pertaining to customer #12345.
- SMARTcache the collective term for the persistent store of Contexts 1022 as BMP data
- Control Center 1054 the console within the system 1000 from which the SMARTcache administrator configures, maps, and monitors Contexts 1022.
- Adapter - a piece of java code that enables the interchange of data between the system 1000 and other applications (including EAI 1040).
- JMS Adapter 1024 - a connector between the Context EJBs 1022 and a Java Messaging
- System Adapter 1042 - a connector between the EAI messaging layer and an element of the existing IT infrastructure 1084.
- Accelerator - the term for the components of the system that expedite development and refinements of contexts, mappings, and deployments.
- a calling application initiates a system transaction, which may be in the form of a Trusted Java Application 1012 in a Client Machine 1010, or a Client Application 1052 in a Web Browser 1050 via a Client Web Application Servlet 1032 within a Web Server 1030.
- a Control Center 1054 within a Web Browser 1050 contains tools for administering the Context attribute mappings and security roles via a Context Administration Servlet 1034 in a Web Server 1030.
- Firewalls 1060 maintain security between Web Browsers 1050 and a Web Server 1030, between the Web Server 1030 and a Web Application Server 1020, and between Client Machines 1010 and the Web Application Server 1020.
- the Web Application Server 1020 is a runtime server in which a set of Context objects 1022 synchronize with Back-end Systems 1084 via JMS Adapters 1024 and System Adapters 1042.
- a J2EE EJB client application 1012 invokes an EJB method to communicate with Contexts 1022 via RMI over HOP protocol.
- RMI/IIOP is one J2EE standard way of allowing an application developer to code to an RMI interface.
- the Control Center 1054 is the development and management environment for the system platform 1000.
- the Control Center 1054 provides the following capabilities: view a list of defined Contexts; define, change, or delete mappings between data in Back-end systems and Context attributes; designate Context attributes as cached or non-cached; define, change or delete security authorizations for Context attributes; and view the runtime log.
- the Control Center 1054 also includes toolsets containing log configuration and analysis capabilities, system performance analysis tools, and control over automated features.
- the Control Center 1054 is a J2EE application comprising JSP, servlets, EJBs, and XML files.
- the Control Center 1054 is a J2EE browser client application, which enables remote administration of the system 1000.
- the Control Center 1054 communicates with an Administrative Service EJB 1026 via JSPs and a Context administrative Servlet 1034.
- the Administrative Service EJB 1026 reads and writes Context configuration data from a set of XML files 1086.
- the runtime server 1020 uses these same XML files 1086. If necessary, the XML files 1086 can be file system protected so that access is limited to selected applications.
- the Administrative Service 1026 retrieves roles that map into an LDAP (Lightweight
- the Web Application Server 1020 is the component of the system 1000 shown in
- the runtime server 1020 responds to requests from calling applications, serving up Context instances 1022 on request, according to the security rules that have been established. It coordinates with the EAI solution 1040 to ensure that changes made through Contexts 1022 are coordinated with Back-end Systems 1084, and that changes made to Back-end System data are carried into the Context instance 1022. It stores the data that have been designated for caching in a disk cache 1082 that provides rapid access. It also logs activity data for diagnostic and monitoring purposes 1080.
- the Context Session EJB 1022 validates the authority of the user to read or write each Dynamic Multi-sourced Persisted EJB attribute based on the LDAP roles defined in XML files 1086. • If authorized, the attribute data is read from or written to the Back-end Systems 1084 that were mapped in the XML files 1086. This is accomplished via JMS messages.
- the Application Server 1020 communicates with the EAI system 1040 via JMS Adapters 1024, and the EAI system 1040 communicates via System Adapters 1042 with each Back-end System 1084.
- the attribute data is cached by the Context EJB 1022 and persisted locally by the Application Server's Bean Managed Persistence (BMP) mechanism 1082.
- BMP Application Server's Bean Managed Persistence
- authentication when the application server security is enabled, authentication of system components is supported by a basic authentication challenge mechanism, i.e., user identification and password against an LDAP service.
- the application server supports various LDAP products.
- Global security can be enabled either though an administration console or through scripts executed from the command line using a configuration utility. When launching the administration console with global security enabled, a user will be prompted for the user identification and password designated when installing the application server.
- an LDAP service there are several site-specific parameters that need to be configured by an administrator including:
- Base DN the base distinguished name to use when searching group or principal information, typically the top of the directory tree that is site specific;
- Group Filter the filter to use when searching for groups.
- the configuration of these parameters can be done from the administration console.
- the J2EETM specification allows the application developer and the application assembler to define role-based access on a method-by-method basis for EJBs and servlets. Since these are logical roles, there is some vendor-specific way to map the logical role into the principals and groups in the deployment environment. The system administrator is responsible for mapping the logical roles into groups and principals in the target environment. Some systems deviate from the J2EETM specification when it comes to defining access control or authorization of servlets and EJBs. Role based authorization is enabled by creating an enterprise application that includes all web resources to be protected.
- each method of a resource can be associated with a method group.
- Each method group is then given a set of principals (groups, roles, or principals) that have the authority to execute the associated methods.
- principals groups, roles, or principals
- An embodiment of the present invention provides a mechanism for mapping logical roles to LDAP groups via a configuration file in the root system install directory.
- a user must configure the entries in this file to match the LDAP configuration.
- the "edit security" context tool will present the system logical roles.
- delegation at a minimum, the J2EETM specification says that the client's identity used to connect to the EJB server should be delegated to other EJBs in the same EJB server environment. Some servers allow method requests to be delegated as the client, a system identity, or some other specific identity. The system delegates client credentials across method calls.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2002332913A AU2002332913A1 (en) | 2002-09-05 | 2002-09-06 | System and method for dynamically securing dynamic multi-sourced persisted ejbs |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/064,975 US6922695B2 (en) | 2001-09-06 | 2002-09-05 | System and method for dynamically securing dynamic-multi-sourced persisted EJBS |
US10/064,975 | 2002-09-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004023297A1 true WO2004023297A1 (fr) | 2004-03-18 |
Family
ID=31975650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2002/028495 WO2004023297A1 (fr) | 2002-09-05 | 2002-09-06 | Systeme et procede de securisation dynamique de java beans d'entreprise persistants multisources dynamiques |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2002332913A1 (fr) |
WO (1) | WO2004023297A1 (fr) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990636B2 (en) * | 1997-09-30 | 2006-01-24 | Initiate Systems, Inc. | Enterprise workflow screen based navigational process tool system and method |
US8321383B2 (en) | 2006-06-02 | 2012-11-27 | International Business Machines Corporation | System and method for automatic weight generation for probabilistic matching |
US8321393B2 (en) | 2007-03-29 | 2012-11-27 | International Business Machines Corporation | Parsing information in data records and in different languages |
US8356009B2 (en) | 2006-09-15 | 2013-01-15 | International Business Machines Corporation | Implementation defined segments for relational database systems |
US8359339B2 (en) | 2007-02-05 | 2013-01-22 | International Business Machines Corporation | Graphical user interface for configuration of an algorithm for the matching of data records |
US8370366B2 (en) | 2006-09-15 | 2013-02-05 | International Business Machines Corporation | Method and system for comparing attributes such as business names |
US8370355B2 (en) | 2007-03-29 | 2013-02-05 | International Business Machines Corporation | Managing entities within a database |
US8417702B2 (en) | 2007-09-28 | 2013-04-09 | International Business Machines Corporation | Associating data records in multiple languages |
US8423514B2 (en) | 2007-03-29 | 2013-04-16 | International Business Machines Corporation | Service provisioning |
US8429220B2 (en) | 2007-03-29 | 2013-04-23 | International Business Machines Corporation | Data exchange among data sources |
US8510338B2 (en) | 2006-05-22 | 2013-08-13 | International Business Machines Corporation | Indexing information about entities with respect to hierarchies |
US8515926B2 (en) | 2007-03-22 | 2013-08-20 | International Business Machines Corporation | Processing related data from information sources |
US8589415B2 (en) | 2006-09-15 | 2013-11-19 | International Business Machines Corporation | Method and system for filtering false positives |
US8713434B2 (en) | 2007-09-28 | 2014-04-29 | International Business Machines Corporation | Indexing, relating and managing information about entities |
US8799282B2 (en) | 2007-09-28 | 2014-08-05 | International Business Machines Corporation | Analysis of a system for matching data records |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134581A (en) * | 1997-10-06 | 2000-10-17 | Sun Microsystems, Inc. | Method and system for remotely browsing objects |
US6269373B1 (en) * | 1999-02-26 | 2001-07-31 | International Business Machines Corporation | Method and system for persisting beans as container-managed fields |
US6298478B1 (en) * | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
-
2002
- 2002-09-06 WO PCT/US2002/028495 patent/WO2004023297A1/fr not_active Application Discontinuation
- 2002-09-06 AU AU2002332913A patent/AU2002332913A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134581A (en) * | 1997-10-06 | 2000-10-17 | Sun Microsystems, Inc. | Method and system for remotely browsing objects |
US6298478B1 (en) * | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
US6269373B1 (en) * | 1999-02-26 | 2001-07-31 | International Business Machines Corporation | Method and system for persisting beans as container-managed fields |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990636B2 (en) * | 1997-09-30 | 2006-01-24 | Initiate Systems, Inc. | Enterprise workflow screen based navigational process tool system and method |
US8510338B2 (en) | 2006-05-22 | 2013-08-13 | International Business Machines Corporation | Indexing information about entities with respect to hierarchies |
US8321383B2 (en) | 2006-06-02 | 2012-11-27 | International Business Machines Corporation | System and method for automatic weight generation for probabilistic matching |
US8332366B2 (en) | 2006-06-02 | 2012-12-11 | International Business Machines Corporation | System and method for automatic weight generation for probabilistic matching |
US8589415B2 (en) | 2006-09-15 | 2013-11-19 | International Business Machines Corporation | Method and system for filtering false positives |
US8356009B2 (en) | 2006-09-15 | 2013-01-15 | International Business Machines Corporation | Implementation defined segments for relational database systems |
US8370366B2 (en) | 2006-09-15 | 2013-02-05 | International Business Machines Corporation | Method and system for comparing attributes such as business names |
US8359339B2 (en) | 2007-02-05 | 2013-01-22 | International Business Machines Corporation | Graphical user interface for configuration of an algorithm for the matching of data records |
US8515926B2 (en) | 2007-03-22 | 2013-08-20 | International Business Machines Corporation | Processing related data from information sources |
US8423514B2 (en) | 2007-03-29 | 2013-04-16 | International Business Machines Corporation | Service provisioning |
US8429220B2 (en) | 2007-03-29 | 2013-04-23 | International Business Machines Corporation | Data exchange among data sources |
US8370355B2 (en) | 2007-03-29 | 2013-02-05 | International Business Machines Corporation | Managing entities within a database |
US8321393B2 (en) | 2007-03-29 | 2012-11-27 | International Business Machines Corporation | Parsing information in data records and in different languages |
US8417702B2 (en) | 2007-09-28 | 2013-04-09 | International Business Machines Corporation | Associating data records in multiple languages |
US8713434B2 (en) | 2007-09-28 | 2014-04-29 | International Business Machines Corporation | Indexing, relating and managing information about entities |
US8799282B2 (en) | 2007-09-28 | 2014-08-05 | International Business Machines Corporation | Analysis of a system for matching data records |
US9286374B2 (en) | 2007-09-28 | 2016-03-15 | International Business Machines Corporation | Method and system for indexing, relating and managing information about entities |
US9600563B2 (en) | 2007-09-28 | 2017-03-21 | International Business Machines Corporation | Method and system for indexing, relating and managing information about entities |
US10698755B2 (en) | 2007-09-28 | 2020-06-30 | International Business Machines Corporation | Analysis of a system for matching data records |
Also Published As
Publication number | Publication date |
---|---|
AU2002332913A1 (en) | 2004-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6922695B2 (en) | System and method for dynamically securing dynamic-multi-sourced persisted EJBS | |
US7249131B2 (en) | System and method for dynamically caching dynamic multi-sourced persisted EJBs | |
US6996565B2 (en) | System and method for dynamically mapping dynamic multi-sourced persisted EJBs | |
US7213049B2 (en) | System and method for transaction processing with transaction property feature | |
US7506342B2 (en) | System and method for implementing J2EE connector architecture | |
US6976262B1 (en) | Web-based enterprise management with multiple repository capability | |
US7340714B2 (en) | System and method for using web services with an enterprise system | |
US6978461B2 (en) | System and method for accessing functionality of a backend system from an application server | |
WO2004023311A1 (fr) | Systeme et procede d'antememorisation dynamique d'ejb persistants multisource dynamiques | |
AU2002318249A1 (en) | System and method for transaction processing with transaction property feature | |
WO2008018080A2 (fr) | Moteur d'intégration intelligent et architecture orientée métadonnées pour intégration d'informations d'entreprise (eii) automatique et intégration d'affaires | |
WO2004023345A1 (fr) | Systeme et procede de correlation dynamique de java beans d'entreprise persistants dynamiques multisources | |
WO2004023297A1 (fr) | Systeme et procede de securisation dynamique de java beans d'entreprise persistants multisources dynamiques | |
Varanasi et al. | LDAP Transactions | |
Fatoohi et al. | Middleware for Building Distributed Applications Infrastructure | |
Beitz et al. | Is DCE a Support Environment for ODP? | |
Loeser et al. | dLIMIT—A middleware framework for loosely-coupled database federations | |
Edition | Introduction to WebSphere Application Server | |
Beeharry et al. | Managing persistent objects in a distributed environment | |
Reverbel et al. | Dynamic support to transactional remote invocations over multiple transports | |
Benns et al. | What's in the Middle? | |
Aly et al. | Oracle Fusion Middleware Administrator's Guide for Oracle Internet Directory, 11g Release 1 (11.1. 1) E10029-01 | |
public class PrintingArgs | Exam A QUESTION | |
Petroutsos et al. | Visual Basic® .NET Developer's Handbook™ | |
Handbook | WebSphere Application Server V6 System Management and |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |