US20080270986A1 - System and method for enterprise javabeans container - Google Patents
System and method for enterprise javabeans container Download PDFInfo
- Publication number
- US20080270986A1 US20080270986A1 US12/111,127 US11112708A US2008270986A1 US 20080270986 A1 US20080270986 A1 US 20080270986A1 US 11112708 A US11112708 A US 11112708A US 2008270986 A1 US2008270986 A1 US 2008270986A1
- Authority
- US
- United States
- Prior art keywords
- request
- bean
- invocation
- manager
- interceptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Definitions
- the invention relates generally to enterprise application servers, and, more specifically, to implementing an Enterprise JavaBeans container within an enterprise application server.
- Application servers are platforms that host and provide services to applications. Application servers manage the life cycles of applications and ensure that the logic implemented in applications is accessible to clients in a centralized fashion.
- Application servers based on the JavaTM Platform, Enterprise Edition 5 (hereinafter “Java EE”) host and provide services to Java enterprise applications (also referred to as “Java EE applications”) and are referred to as JavaTM application servers.
- Java EE applications are written in the JavaTM language and conform to a set of specifications so that they can run on a JavaTM application server.
- Application server vendors develop application servers in accordance with the rules and requirements set forth in the JavaTM EE 5 specification.
- a JavaTM EE application has application code and configuration information packed into an Enterprise Application Archive (hereinafter “EAR”).
- EAR Enterprise Application Archive
- the EAR contains one or more modules of a specific type, for example, web modules, web services modules, Enterprise JavaBeansTM (hereinafter “EJB”) modules, and deployment descriptors.
- Each module is hosted and serviced by a dedicated container on the server.
- web modules are serviced by a web container
- EJB modules are serviced by an EJB container
- web services modules are serviced by a web services container, and so on.
- Each container is implemented according to a dedicated specification part of the JavaTM family of enterprise technologies.
- JavaTM EE 5 provides a number of new features as compared to previous versions of the platform.
- JavaTM EE 5 includes a new version of the EJB specification, that is, EJB 3.0.
- the EJB 3.0 specification provides new features and sets forth new requirements for EJB containers.
- the specification does not prescribe how such requirements should be implemented by application server vendors. It is up to the application server vendor to decide how to implement all the requirements set forth in the specification so that the application server complies with the specification.
- a system to run Enterprise JavaBeans is described.
- the system is implemented as a set of components.
- Each component provides certain functionality to run Enterprise JavaBeans.
- the components include a life cycle manager, a client views manager, a proxy invocation handler, an invocation chain manager, and an invocation context.
- FIG. 1 is a block diagram of an Enterprise JavaBeansTM container implemented according to an embodiment of the invention
- FIG. 2 is a block diagram of an Enterprise JavaBeansTM runtime environment implemented according to an embodiment of the invention
- FIG. 3 is a flowchart of a process performed by an embodiment of the invention.
- a system and method to implement an Enterprise JavaBeansTM container and runtime environment is described.
- FIG. 1 is a block diagram of a system of an embodiment of the invention for implementing an Enterprise JavaBeansTM (EJB) container.
- the EJB Container 1000 is implemented as a set of components. Each component defines a set of interfaces to communicate with the other components. As used herein component generically refers to managers, applications, services, and Application Programming Interfaces (“APIs”).
- APIs Application Programming Interfaces
- the EJB container 1000 includes a client views manager 1100 , a proxy invocation handler 1200 , an invocation chains manager 1300 , a lifecycle manager 1400 , and a timeout manager 1500 .
- the client views manager 1100 uses client view factory instances 1 ⁇ n to create and destroy client view instances.
- Each client view factory instance is connected to the proxy invocation handler 1200 .
- the proxy invocation handler 1200 passes client requests from clients such as the client 1050 to bean instances. For example, the client 1050 sends a request for a particular bean instance. The request is received at client view factory instance 1 and sent to the proxy invocation handler 1200 .
- the proxy invocation handler 1200 sends the request to the invocation chains manager 1300 .
- the invocation chains manager 1300 identifies an interceptor chain to service the request and associates it with an invocation context.
- the invocation context manages the lifecycle of the interceptor chain.
- An interceptor chain is a set of interceptors. Each interceptor is a class that implements specific functionality. In each chain, interceptors are grouped in a specific order and executed in that order so that the request is processed.
- the lifecycle manager 1400 is responsible for managing the lifecycle of bean instances.
- the timeout manager 1500 is responsible for managing timeout invocations.
- Implementing the EJB container 1000 as a set of independent components has a number of benefits.
- the EJB container 1000 can have a number of client view implementations and each client view can serve a distinct task, such as aggregation, caching, performance optimizations, interoperability, isolation, and so on.
- the functionality provided by the EJB container 1000 is implemented using interceptors.
- An interceptor is a class which implements specific functionality and contains source code corresponding to concrete EJB specification requirements.
- a sequence of concrete instances of interceptors is called an interceptor chain.
- the invocation chains manager 1300 monitors constructed chains. After an EJB application is initialized, each event that is received at the EJB container 1000 is assigned a chain of interceptors.
- the invocation chains manager 1300 assigns the chain of interceptors to perform the necessary task and associates the chain with an invocation context, as mentioned above.
- the invocation context controls the behavior of the interceptor chain.
- Each interceptor has the knowledge that it participates in a concrete chain and has access to its invocation context.
- an interceptor associated with an invocation context can stop the execution, raise an error, or change the execution arguments. Also, an interceptor can introduce custom values to the invocation context and propagate them to application code or other interceptors.
- Using interceptors to provide the required functionality for the EJB container 1000 follows good development practices in terms of separating functionality into functional blocks (i.e. interceptors). Consequently, interceptors can be developed independently and the development and maintenance of an interceptor does not influence the work and performance of the EJB container 1000 . Also, interceptor chains are not hard coded. This means that interceptor chains can be constructed dynamically to serve a specific scenario. Finally, to add or remove functionality to the EJB container 1000 the container provider simply implements a new interceptor or removes an existing interceptor, thus saving time and effort.
- the EJB container 1000 provides some or all of the following interceptors outlined in the table below:
- Interceptor Functionality Provided by Interceptor ExceptionTracerInterceptor Traces an exception raised during the invocation of an interceptor chain.
- RemoteExceptionConverterInterceptor Converts exceptions with local type to their remote equivalent.
- SecurityCheckInterceptor Performs security access checks.
- RunAsInterceptor Switches a current principal to a principal supplied in metadata. A principal is an entity with certain security permissions.
- TransactionInterceptor, TimeoutTransactionInterceptor Associates the transaction context the and UnspecifiedTransactionAttribute current thread.
- StatefulSessionInstanceCreatorInterceptor Requests the Lifecycle Manager 1400 to create a new session bean and associate it with the current execution.
- StatefulSessionInstanceGetterInterceptor Requests the Lifecycle Manager 1400 to locate a requested session bean either in the current transaction context or in the session management.
- StatefulSessionInstanceDestroyerInterceptor Requests the Lifecycle Manager 1400 to locate a requested session bean either in the current transaction context or in the session management.
- the session instance is removed or passivated, depending or the status of the execution, either at commit time of the associated transaction, or after the interceptor chain continues execution.
- StatefulSessionInstanceOldStyleDestroyerInterceptor Requests the Lifecycle Manager 1400 to locate a requested session bean only in the session management. The session instance is removed after the interceptor chain continues execution. This interceptor is used for backward compatibility purposes.
- StatelessInstanceGetterInterceptor Requests lifecycle manager for a bean instance. If a bean instance does not exist the lifecycle manager is responsible for its creation.
- StatelessProxyInstanceCreationInterceptor Creates a client view for a stateless bean using the client view factories of the bean. The interceptor is initialized with the name of the client view interface and the access type of the factory.
- StatefulProxyInstanceCreationInterceptor Creates a client view for a stateful bean using the client view factories of the bean.
- the interceptor is initialized with the name of the client view interface and the access type of the factory.
- StatefulTransactionAssociationInterceptor Associates the bean instance with the transaction context. AfterBeginInterceptor Invokes a SessionSynchronizartion.afterBegin( ) method on the bean instance if the thread has transaction context and the bean is not associated with it, that is, it is the first time the bean is requested in the current transaction.
- StatesTransitionInterseptor Assigns a state to a bean instance currently associated with the execution to represent the collection of operations allowed to be performed in the subsequent bean method invocations.
- ApplicationInterceptor These interceptors perform application BeanClassApplicationInterceptor, interceptor method invocations.
- CallbackApplicationInterceptor BeanClassCallbackApplicationInterceptor and Callback2xStyleInvocationInterceptor WSInterceptor Performs web services handlers preInvoke and posInvoke operations.
- MessageEndpointLockInterceptor Locks a client view to serialize method calls.
- MessageListenerTypeInterceptor Initializes a transaction context if the invocation requires a transaction context and the transaction context is not already initialized.
- MessageEndpointReleaseInterceptor Handles the MessageEndpoint.release( ) method by denoting an instance as released.
- ActivateStatefulContextInterceptor Locates a session bean instance within the session management and assigns it to the current invocation context.
- PassivateStatefulContextInterceptor Stores a session bean instance, currently located in the invocation context, in the session management.
- NewStatefulContextInterceptor Create an instance of the NewStatelessContextInterceptor and corresponding bean context successor NewMessageDrivenBeanContextInterceptor for the corresponding bean type and assigns the instance to the current invocation context
- ApplicationInstancesCreatorInterceptor Creates new instances of the bean class and all concrete application interceptor classes and assigns them to the bean context instance in the current invocation context.
- Session2xDependencyInjectionInterceptor Perform injection on all injection MessageDriven2xDependencyInjectionInterceptor and targets in the application classes.
- EJBContext30DependencyInjectionInterceptor DestroyStatefulContextInterceptor and Destroy the corresponding concrete DestroyStatelessContextInterceptor bean context instance by destroying all resources associated to it.
- FIG. 2 is a block diagram of an EJB runtime environment provided by an embodiment of the invention.
- the enterprise bean context 210 manages a bean instance 200 and all resources associated with the bean instance.
- resources are understood to mean any number of system resources needed to service client requests, such as memory space, database connections, transactions, threads, and so on.
- the instance lifecycle manager 250 manages all lifecycle events associated with the bean instance 200 and its enterprise bean context 210 .
- the invocation chains manager 220 invokes an invocation chain 230 to serve business requests from clients or a callback invocation chain 240 to serve a lifecycle event for the bean instance 200 .
- the invocation chain 230 invokes interceptor chains to service business requests and the callback invocation chain invokes interceptor chains to service lifecycle events, respectively.
- the component interface manager 260 manages factory objects associated with the enterprise bean context 210 .
- the factory objects are local factory objects and remote factory objects. Local factory objects create instances of local interfaces and remote factory objects create instances of remote interfaces.
- the access type of the factory defines how the instance implementing the interface is accessed. Local access represents accessing components on the same Java Virtual Machine (“JVM”). Local access results in a direct Java invocation. Remote access represents accessing components on a different JVM. Remote access between two JVMs requires an underlying transport protocol to transport the requests and responses between the two JVMs.
- the runtime environment described in FIG. 2 is created and managed by a container as described in FIG. 1 .
- the EJB container 1000 receives a request form the client 1050 or detects that a bean lifecycle event for the bean instance 200 should be processed.
- the EJB container 1000 requests the concrete invocation chains manager 220 associated with the enterprise bean context 210 to provide the corresponding chain of interceptors, either 230 or 240 .
- the invocation chains manager 220 has to execute a business method from the client 1050 on client view instance 1
- the client view instance 1 passes the call to the proxy invocation handler 1200 .
- the proxy invocation handler 1200 passes the client request to the invocation chains manager 220 .
- the invocation chains manager 220 identifies a chain to process the request from the invocation chains 230 and executes the chain to process the request.
- FIG. 3 is a flowchart of a process performed by an embodiment of the invention.
- a set of interceptors is created. Each interceptor in the set encapsulates logic to provide certain functionality.
- the interceptors are grouped in chains. In each chain, interceptors are grouped in a specific order and executed in that order so that a request can be processed.
- a request is received.
- a proxy invocation handler is invoked to receive the request.
- the proxy invocation handler passes the request to an invocation chains manager.
- the invocation chains manager identifies the correct chain to service the request.
- the invocation chains manager estimates if the request is for a bean life cycle event or a business request.
- the chain is associated with an invocation context.
- a reference to the client view of the bean is obtained. Using this reference, at process block 380 the client request is processed via the execution of the identified interceptor chain.
- the process described in FIG. 3 is performed by a container as described in FIG. 1 .
- the container 1000 creates interceptors at process block 300 to expose its functionality.
- the container 1000 groups interceptors in chains.
- the client 1050 sends a request to the container 1000 .
- the request is received at a client view instance and passed to the proxy invocation handler 1200 .
- the proxy invocation handler 1200 passes the request to the invocation chains manager 1300 at process block 340 .
- the invocation chains manager 1300 analyzes the request to estimate if the request is for a bean life cycle event or a business request.
- the invocation chains manager 1300 Based on the estimation, at process block 350 the invocation chains manager 1300 identifies the correct chain to service the request. The invocation chains manager 1300 associates the request with an invocation context at process block 360 . At process block 370 the client views manager 1100 creates a client view factory instance to obtain a reference to the client view of the bean. The invocation chains manager 1300 executes the identified chain to process the request using the reference to the client view of the bean.
- Elements of embodiments may also be provided as a machine-readable medium for storing the machine-executable instructions.
- the machine-readable medium may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cares, or other type of machine-readable media suitable for storing electronic instructions.
- Some embodiments of the invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A system to implement functionality for running Enterprise JavaBeans. The functionality is provided by a set of components. The components include a life cycle manager, a client views manager, a proxy invocation handler, an invocation chain manager, and an invocation context.
Description
- This application claims the priority of U.S. Provisional Patent Application No. 60/926,989, filed Apr. 30, 2007.
- 1. Field of Invention
- The invention relates generally to enterprise application servers, and, more specifically, to implementing an Enterprise JavaBeans container within an enterprise application server.
- 2. Background
- Application servers are platforms that host and provide services to applications. Application servers manage the life cycles of applications and ensure that the logic implemented in applications is accessible to clients in a centralized fashion. Application servers based on the Java™ Platform, Enterprise Edition 5 (hereinafter “Java EE”) host and provide services to Java enterprise applications (also referred to as “Java EE applications”) and are referred to as Java™ application servers. Java EE applications are written in the Java™ language and conform to a set of specifications so that they can run on a Java™ application server. Application server vendors develop application servers in accordance with the rules and requirements set forth in the Java™ EE 5 specification. A Java™ EE application has application code and configuration information packed into an Enterprise Application Archive (hereinafter “EAR”). The EAR contains one or more modules of a specific type, for example, web modules, web services modules, Enterprise JavaBeans™ (hereinafter “EJB”) modules, and deployment descriptors. Each module is hosted and serviced by a dedicated container on the server. For example, web modules are serviced by a web container, EJB modules are serviced by an EJB container, web services modules are serviced by a web services container, and so on. Each container is implemented according to a dedicated specification part of the Java™ family of enterprise technologies.
- Java™ EE 5 provides a number of new features as compared to previous versions of the platform. For example, Java™ EE 5 includes a new version of the EJB specification, that is, EJB 3.0. The EJB 3.0 specification provides new features and sets forth new requirements for EJB containers. However, the specification does not prescribe how such requirements should be implemented by application server vendors. It is up to the application server vendor to decide how to implement all the requirements set forth in the specification so that the application server complies with the specification.
- A system to run Enterprise JavaBeans is described. The system is implemented as a set of components. Each component provides certain functionality to run Enterprise JavaBeans. The components include a life cycle manager, a client views manager, a proxy invocation handler, an invocation chain manager, and an invocation context.
- The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
-
FIG. 1 is a block diagram of an Enterprise JavaBeans™ container implemented according to an embodiment of the invention; -
FIG. 2 is a block diagram of an Enterprise JavaBeans™ runtime environment implemented according to an embodiment of the invention; -
FIG. 3 is a flowchart of a process performed by an embodiment of the invention. - A system and method to implement an Enterprise JavaBeans™ container and runtime environment is described.
-
FIG. 1 is a block diagram of a system of an embodiment of the invention for implementing an Enterprise JavaBeans™ (EJB) container. The EJB Container 1000 is implemented as a set of components. Each component defines a set of interfaces to communicate with the other components. As used herein component generically refers to managers, applications, services, and Application Programming Interfaces (“APIs”). Referring toFIG. 1 , the EJBcontainer 1000 includes aclient views manager 1100, aproxy invocation handler 1200, aninvocation chains manager 1300, alifecycle manager 1400, and atimeout manager 1500. Theclient views manager 1100 uses clientview factory instances 1−n to create and destroy client view instances. Each client view factory instance is connected to theproxy invocation handler 1200. The proxy invocation handler 1200 passes client requests from clients such as theclient 1050 to bean instances. For example, theclient 1050 sends a request for a particular bean instance. The request is received at clientview factory instance 1 and sent to theproxy invocation handler 1200. Theproxy invocation handler 1200 sends the request to theinvocation chains manager 1300. Theinvocation chains manager 1300 identifies an interceptor chain to service the request and associates it with an invocation context. The invocation context manages the lifecycle of the interceptor chain. An interceptor chain is a set of interceptors. Each interceptor is a class that implements specific functionality. In each chain, interceptors are grouped in a specific order and executed in that order so that the request is processed. Thelifecycle manager 1400 is responsible for managing the lifecycle of bean instances. Thetimeout manager 1500 is responsible for managing timeout invocations. - Implementing the EJB
container 1000 as a set of independent components has a number of benefits. First, having each component as an independent unit reduces maintenance time and effort. Each component is maintained separately and the maintenance of a single component does not affect the performance of theEJB container 1000. Second, the architecture of the EJBcontainer 1000 facilitates extensibility because new implementations of components can be provided on top of existing ones. Also, new implementations can be switched on transparently, that is, without affecting the work of other components. Third, because components are independent and communicate only through interfaces, it is possible to provide several different implementations of a concrete component. These implementations can co-exist and service requests thus enabling the EJBcontainer 1000 to handle any number of use cases required by clients. For example, the EJBcontainer 1000 can have a number of client view implementations and each client view can serve a distinct task, such as aggregation, caching, performance optimizations, interoperability, isolation, and so on. - The functionality provided by the EJB
container 1000 is implemented using interceptors. An interceptor is a class which implements specific functionality and contains source code corresponding to concrete EJB specification requirements. A sequence of concrete instances of interceptors is called an interceptor chain. Theinvocation chains manager 1300 monitors constructed chains. After an EJB application is initialized, each event that is received at theEJB container 1000 is assigned a chain of interceptors. Theinvocation chains manager 1300 assigns the chain of interceptors to perform the necessary task and associates the chain with an invocation context, as mentioned above. The invocation context controls the behavior of the interceptor chain. Each interceptor has the knowledge that it participates in a concrete chain and has access to its invocation context. At the time when the chain is executed to service a request or event, an interceptor associated with an invocation context can stop the execution, raise an error, or change the execution arguments. Also, an interceptor can introduce custom values to the invocation context and propagate them to application code or other interceptors. Using interceptors to provide the required functionality for theEJB container 1000 follows good development practices in terms of separating functionality into functional blocks (i.e. interceptors). Consequently, interceptors can be developed independently and the development and maintenance of an interceptor does not influence the work and performance of theEJB container 1000. Also, interceptor chains are not hard coded. This means that interceptor chains can be constructed dynamically to serve a specific scenario. Finally, to add or remove functionality to theEJB container 1000 the container provider simply implements a new interceptor or removes an existing interceptor, thus saving time and effort. - In some embodiments, to implement the required functionality, the
EJB container 1000 provides some or all of the following interceptors outlined in the table below: -
Interceptor Functionality Provided by Interceptor ExceptionTracerInterceptor Traces an exception raised during the invocation of an interceptor chain. RemoteExceptionConverterInterceptor Converts exceptions with local type to their remote equivalent. SecurityCheckInterceptor Performs security access checks. RunAsInterceptor Switches a current principal to a principal supplied in metadata. A principal is an entity with certain security permissions. ResourceInterceptor, CallbackResourceInterceptor and Apply the resource context to the RestrictedResourceInterceptor current context. TransactionInterceptor, TimeoutTransactionInterceptor Associates the transaction context the and UnspecifiedTransactionAttribute current thread. StatefulSessionInstanceCreatorInterceptor Requests the Lifecycle Manager 1400 tocreate a new session bean and associate it with the current execution. StatefulSessionInstanceGetterInterceptor Requests the Lifecycle Manager 1400 tolocate a requested session bean either in the current transaction context or in the session management. StatefulSessionInstanceDestroyerInterceptor Requests the Lifecycle Manager 1400 tolocate a requested session bean either in the current transaction context or in the session management. The session instance is removed or passivated, depending or the status of the execution, either at commit time of the associated transaction, or after the interceptor chain continues execution. StatefulSessionInstanceOldStyleDestroyerInterceptor Requests the Lifecycle Manager 1400 tolocate a requested session bean only in the session management. The session instance is removed after the interceptor chain continues execution. This interceptor is used for backward compatibility purposes. StatelessInstanceGetterInterceptor Requests lifecycle manager for a bean instance. If a bean instance does not exist the lifecycle manager is responsible for its creation. StatelessProxyInstanceCreationInterceptor Creates a client view for a stateless bean using the client view factories of the bean. The interceptor is initialized with the name of the client view interface and the access type of the factory. StatefulProxyInstanceCreationInterceptor Creates a client view for a stateful bean using the client view factories of the bean. The interceptor is initialized with the name of the client view interface and the access type of the factory. StatefulTransactionAssociationInterceptor Associates the bean instance with the transaction context. AfterBeginInterceptor Invokes a SessionSynchronizartion.afterBegin( ) method on the bean instance if the thread has transaction context and the bean is not associated with it, that is, it is the first time the bean is requested in the current transaction. StatesTransitionInterseptor Assigns a state to a bean instance currently associated with the execution to represent the collection of operations allowed to be performed in the subsequent bean method invocations. ApplicationInterceptor, These interceptors perform application BeanClassApplicationInterceptor, interceptor method invocations. CallbackApplicationInterceptor, BeanClassCallbackApplicationInterceptor and Callback2xStyleInvocationInterceptor WSInterceptor Performs web services handlers preInvoke and posInvoke operations. MessageEndpointLockInterceptor Locks a client view to serialize method calls. MessageListenerTypeInterceptor Initializes a transaction context if the invocation requires a transaction context and the transaction context is not already initialized. MessageEndpointReleaseInterceptor Handles the MessageEndpoint.release( ) method by denoting an instance as released. BeforeDeliveryInterceptor Handles the MessageEndpoint.beforeDelivery( ) method in the same way as the MessageListenerTypeInterceptor without restoring the transaction context after completing execution. AfterDeliveryInterceptor Handles the MessageEndpoint.afterDelivery( ) method in the same way as the MessageListenerTypeInterceptor without assigning the transaction context before proceeding with execution. SessionEJBHomeInterceptor, Handle methods implementing SessionEJBLocalHomeInterceptor, functionality from previous SessionEJBObjectInterceptor and specification versions for backward SessionEJBLocalObjectInterceptor compatibility purposes. ActivateStatefulContextInterceptor Locates a session bean instance within the session management and assigns it to the current invocation context. PassivateStatefulContextInterceptor Stores a session bean instance, currently located in the invocation context, in the session management. NewStatefulContextInterceptor, Create an instance of the NewStatelessContextInterceptor and corresponding bean context successor NewMessageDrivenBeanContextInterceptor for the corresponding bean type and assigns the instance to the current invocation context ApplicationInstancesCreatorInterceptor Creates new instances of the bean class and all concrete application interceptor classes and assigns them to the bean context instance in the current invocation context. Session2xDependencyInjectionInterceptor, Perform injection on all injection MessageDriven2xDependencyInjectionInterceptor and targets in the application classes. EJBContext30DependencyInjectionInterceptor DestroyStatefulContextInterceptor and Destroy the corresponding concrete DestroyStatelessContextInterceptor bean context instance by destroying all resources associated to it. -
FIG. 2 is a block diagram of an EJB runtime environment provided by an embodiment of the invention. Referring toFIG. 2 , theenterprise bean context 210 manages abean instance 200 and all resources associated with the bean instance. As used herein, resources are understood to mean any number of system resources needed to service client requests, such as memory space, database connections, transactions, threads, and so on. Theinstance lifecycle manager 250 manages all lifecycle events associated with thebean instance 200 and itsenterprise bean context 210. Depending on the request that has to be served in each case, theinvocation chains manager 220 invokes aninvocation chain 230 to serve business requests from clients or acallback invocation chain 240 to serve a lifecycle event for thebean instance 200. Theinvocation chain 230 invokes interceptor chains to service business requests and the callback invocation chain invokes interceptor chains to service lifecycle events, respectively. Thecomponent interface manager 260 manages factory objects associated with theenterprise bean context 210. The factory objects are local factory objects and remote factory objects. Local factory objects create instances of local interfaces and remote factory objects create instances of remote interfaces. The access type of the factory defines how the instance implementing the interface is accessed. Local access represents accessing components on the same Java Virtual Machine (“JVM”). Local access results in a direct Java invocation. Remote access represents accessing components on a different JVM. Remote access between two JVMs requires an underlying transport protocol to transport the requests and responses between the two JVMs. - In an embodiment of the invention, the runtime environment described in
FIG. 2 is created and managed by a container as described inFIG. 1 . Referring toFIGS. 1 and 2 , theEJB container 1000 receives a request form theclient 1050 or detects that a bean lifecycle event for thebean instance 200 should be processed. TheEJB container 1000 requests the concreteinvocation chains manager 220 associated with theenterprise bean context 210 to provide the corresponding chain of interceptors, either 230 or 240. For example, if theinvocation chains manager 220 has to execute a business method from theclient 1050 onclient view instance 1, theclient view instance 1 passes the call to theproxy invocation handler 1200. Theproxy invocation handler 1200 passes the client request to theinvocation chains manager 220. Theinvocation chains manager 220 identifies a chain to process the request from theinvocation chains 230 and executes the chain to process the request. -
FIG. 3 is a flowchart of a process performed by an embodiment of the invention. Referring toFIG. 3 , at process block 300 a set of interceptors is created. Each interceptor in the set encapsulates logic to provide certain functionality. Atprocess block 310, the interceptors are grouped in chains. In each chain, interceptors are grouped in a specific order and executed in that order so that a request can be processed. At process block 320 a request is received. At process block 330 a proxy invocation handler is invoked to receive the request. At process block 340 the proxy invocation handler passes the request to an invocation chains manager. At process block 350 the invocation chains manager identifies the correct chain to service the request. To identify an invocation chain to service the request, the invocation chains manager estimates if the request is for a bean life cycle event or a business request. At process block 360 the chain is associated with an invocation context. As the request involves performing an operation on a bean, such as business functionality or bean lifecycle event, atprocess block 370, a reference to the client view of the bean is obtained. Using this reference, at process block 380 the client request is processed via the execution of the identified interceptor chain. - In an embodiment of the invention, the process described in
FIG. 3 is performed by a container as described inFIG. 1 . Referring toFIGS. 1 and 3 , thecontainer 1000 creates interceptors at process block 300 to expose its functionality. At process block 310 thecontainer 1000 groups interceptors in chains. At process block 320 theclient 1050 sends a request to thecontainer 1000. The request is received at a client view instance and passed to theproxy invocation handler 1200. Theproxy invocation handler 1200 passes the request to theinvocation chains manager 1300 atprocess block 340. Theinvocation chains manager 1300 analyzes the request to estimate if the request is for a bean life cycle event or a business request. Based on the estimation, at process block 350 theinvocation chains manager 1300 identifies the correct chain to service the request. Theinvocation chains manager 1300 associates the request with an invocation context atprocess block 360. At process block 370 the client viewsmanager 1100 creates a client view factory instance to obtain a reference to the client view of the bean. Theinvocation chains manager 1300 executes the identified chain to process the request using the reference to the client view of the bean. - Elements of embodiments may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cares, or other type of machine-readable media suitable for storing electronic instructions. Some embodiments of the invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention.
- In the foregoing specification, the invention has been described with reference to the specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (11)
1. A system to run Enterprise JavaBeans (“EJB”), comprising:
a life cycle manager to manage the lifecycle of bean instances;
a client views manager to manage the life cycle of client views provided to bean clients;
a proxy invocation handler coupled to a client view factory to propagate a client request from a client view to a bean instance;
an invocation chains manager to execute the client request responsive to receiving the client request from the proxy invocation handler; and
an invocation context to manage the lifecycle of an interceptor chain responsive to the interceptor chain being executed by the invocation chains manager.
2. The system of claim 1 , wherein the client views manager comprises:
a set of client view factory instances to create and destroy client view instances.
3. The system of claim 1 , further comprising:
a timeout manager to manage timeout invocations.
4. An apparatus to provide a runtime environment for an Enterprise JavaBean (“EJB”), the apparatus comprising:
an invocation chains manager to invoke an invocation chain responsive to a request;
an enterprise bean context to maintain a set of resources associated with the EJB;
an instance life cycle manager coupled to the enterprise bean context to manage an instance of the EJB and resources associated with the instance of the EJB; and
a component interface manager to manage factory objects associated with the instance of the EJB.
5. The apparatus of claim 4 , wherein the factory objects comprise:
a remote access factory object; and
a local access factory object.
6. A method to run Enterprise Java Beans (“EJB”) applications, comprising:
creating a set of interceptors, each interceptor encapsulating logic to service a request for a bean or a bean life cycle event;
grouping interceptors in interceptor chains;
requesting an interceptor chain responsive to receiving a request for the bean;
associating the interceptor chain with an invocation context; and
executing the interceptor chain to service the request.
7. The method of claim 6 , further comprising obtaining a reference to a client view of the bean.
8. The method of claim 6 , wherein requesting the interceptor chain comprises:
invoking a proxy invocation handler to pass the request to an invocation chain manager;
estimating if the received request is for a business logic operation or a lifecycle operation; and
identifying an interceptor chain to service the request based on the estimation of the type of the request.
9. A machine readable medium having instructions therein that when executed by the machine, cause the machine to:
create a set of interceptors, each interceptor encapsulating logic to service a request for a bean or a bean life cycle event;
group interceptors in interceptor chains;
request an interceptor chain responsive to receiving a request for the bean; and
execute the interceptor chain to service the request.
10. The machine readable medium of claim 9 , further comprising instructions that cause the machine to obtain a reference to a client view of the bean.
11. The machine readable medium of claim 9 , wherein instructions causing the machine to request an interceptor chain, cause the machine to:
invoke a proxy invocation handler to pass the request to an invocation chain manager;
estimate if the received request is for a business logic operation or a lifecycle operation; and
identify an interceptor chain to service the request based on the estimation of the type of the request.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/111,127 US20080270986A1 (en) | 2007-04-30 | 2008-04-28 | System and method for enterprise javabeans container |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92698907P | 2007-04-30 | 2007-04-30 | |
US12/111,127 US20080270986A1 (en) | 2007-04-30 | 2008-04-28 | System and method for enterprise javabeans container |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080270986A1 true US20080270986A1 (en) | 2008-10-30 |
Family
ID=39888336
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/966,849 Abandoned US20080270974A1 (en) | 2007-04-30 | 2007-12-28 | Enterprise JavaBeans Metadata Model |
US12/022,429 Active 2030-11-20 US8261272B2 (en) | 2007-04-30 | 2008-01-30 | Method and system for multithreaded request dispatching |
US12/029,677 Active 2031-07-14 US9065843B2 (en) | 2007-04-30 | 2008-02-12 | Method, system and article of manufacture for providing connections and connection aliases descriptors by services and libraries archives |
US12/111,127 Abandoned US20080270986A1 (en) | 2007-04-30 | 2008-04-28 | System and method for enterprise javabeans container |
US12/113,025 Active 2029-07-31 US7962612B2 (en) | 2007-04-30 | 2008-04-30 | Method for connection leak detection and prevention |
US12/112,881 Active 2030-02-08 US8082508B2 (en) | 2007-04-30 | 2008-04-30 | Method and system for obtaining and modifying portlets via an application programming interface |
US12/112,888 Active 2031-06-04 US8510717B2 (en) | 2007-04-30 | 2008-04-30 | Method and system for testing application modules using static tests from a test suite |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/966,849 Abandoned US20080270974A1 (en) | 2007-04-30 | 2007-12-28 | Enterprise JavaBeans Metadata Model |
US12/022,429 Active 2030-11-20 US8261272B2 (en) | 2007-04-30 | 2008-01-30 | Method and system for multithreaded request dispatching |
US12/029,677 Active 2031-07-14 US9065843B2 (en) | 2007-04-30 | 2008-02-12 | Method, system and article of manufacture for providing connections and connection aliases descriptors by services and libraries archives |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/113,025 Active 2029-07-31 US7962612B2 (en) | 2007-04-30 | 2008-04-30 | Method for connection leak detection and prevention |
US12/112,881 Active 2030-02-08 US8082508B2 (en) | 2007-04-30 | 2008-04-30 | Method and system for obtaining and modifying portlets via an application programming interface |
US12/112,888 Active 2031-06-04 US8510717B2 (en) | 2007-04-30 | 2008-04-30 | Method and system for testing application modules using static tests from a test suite |
Country Status (1)
Country | Link |
---|---|
US (7) | US20080270974A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138893A1 (en) * | 2007-11-23 | 2009-05-28 | Ketera Technologies Inc. | Interceptor Framework Using Java Dynamic Proxies |
US20130219359A1 (en) * | 2011-09-19 | 2013-08-22 | Nec Corporation | Process evaluation device, program and method |
US20130268913A1 (en) * | 2012-04-04 | 2013-10-10 | International Business Machines Corporation | Managing application template artifacts in a networked computing environment |
US10452372B2 (en) * | 2014-12-15 | 2019-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and deployment module for managing a container to be deployed on a software platform |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930704B2 (en) | 2002-02-06 | 2011-04-19 | Oracle International Corporation | J2EE component extension architecture |
US7698434B2 (en) | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
US7730478B2 (en) | 2006-10-04 | 2010-06-01 | Salesforce.Com, Inc. | Method and system for allowing access to developed applications via a multi-tenant on-demand database service |
US20080270974A1 (en) * | 2007-04-30 | 2008-10-30 | Krasimir Topchiyski | Enterprise JavaBeans Metadata Model |
US8191002B2 (en) | 2007-10-15 | 2012-05-29 | International Business Machines Corporation | Summarizing portlet usage in a portal page |
US7904818B2 (en) * | 2007-10-15 | 2011-03-08 | International Business Machines Corporation | Summarizing portlet usage captured responsive to trigger events in a portal page |
US8527965B2 (en) * | 2008-04-14 | 2013-09-03 | Oracle America, Inc. | Layered static program analysis framework for software testing |
US20100017385A1 (en) | 2008-07-16 | 2010-01-21 | International Business Machines | Creating and managing reference elements of deployable web archive files |
CN101686245B (en) * | 2008-09-28 | 2014-06-11 | 国际商业机器公司 | Method and system for isolating hypertext transfer protocol session |
US20100131710A1 (en) * | 2008-11-24 | 2010-05-27 | Sap Portals Israel Ltd | Method and apparatus for sharing content between portals |
US8479161B2 (en) * | 2009-03-18 | 2013-07-02 | Oracle International Corporation | System and method for performing software due diligence using a binary scan engine and parallel pattern matching |
US8949421B2 (en) * | 2009-07-29 | 2015-02-03 | Teradata Us, Inc. | Techniques for discovering database connectivity leaks |
US8495048B2 (en) * | 2009-08-26 | 2013-07-23 | International Business Machines | Applying user-generated deployment events to a grouping of deployable portlets |
US8782676B2 (en) * | 2009-09-30 | 2014-07-15 | Sap Ag | System and method for communication between portal applications and portlet containers |
US8078922B2 (en) * | 2009-09-30 | 2011-12-13 | Sap Ag | Internal server error analysis |
US8527992B2 (en) * | 2009-09-30 | 2013-09-03 | Sap Ag | HTTP request preservation |
US20110106835A1 (en) * | 2009-10-29 | 2011-05-05 | International Business Machines Corporation | User-Defined Profile Tags, Rules, and Recommendations for Portal |
US8650540B2 (en) * | 2009-12-31 | 2014-02-11 | International Business Machines Corporation | Melding of mediation flow service component architecture (SCA) components |
US20110246294A1 (en) * | 2010-03-30 | 2011-10-06 | Beet, Inc. | System and method for content management and distribution |
US8707263B2 (en) * | 2010-04-19 | 2014-04-22 | Microsoft Corporation | Using a DSL for calling APIS to test software |
US9374437B2 (en) * | 2010-12-30 | 2016-06-21 | Sap Se | Schema validation proxy |
US10678602B2 (en) * | 2011-02-09 | 2020-06-09 | Cisco Technology, Inc. | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures |
AU2012203333A1 (en) | 2011-06-15 | 2013-01-10 | Agile Software Pty Limited | Method and apparatus for testing data warehouses |
US9063672B2 (en) * | 2011-07-11 | 2015-06-23 | Honeywell International Inc. | Systems and methods for verifying model equivalence |
US8903702B2 (en) | 2011-08-31 | 2014-12-02 | International Business Machines Corporation | Generating specifications for expression language expressions and tag libraries |
US8949774B2 (en) | 2011-09-06 | 2015-02-03 | Microsoft Corporation | Generated object model for test automation |
US8539439B2 (en) * | 2011-10-13 | 2013-09-17 | Microsoft Corporation | Asynchronous programming model mapping |
GB2503920A (en) * | 2012-07-12 | 2014-01-15 | Ibm | Using a tag to identify the application context for a program object |
US9658945B2 (en) | 2012-07-31 | 2017-05-23 | Hewlett Packard Enterprise Development Lp | Constructing test-centric model of application |
US8856745B2 (en) | 2012-08-01 | 2014-10-07 | Oracle International Corporation | System and method for using a shared standard expectation computation library to implement compliance tests with annotation based standard |
EP2885698B1 (en) * | 2012-08-15 | 2021-10-06 | Saturn Licensing LLC | Broadband delivery of personalization information for advanced tv services |
CN103164273A (en) * | 2012-09-06 | 2013-06-19 | 佳都新太科技股份有限公司 | Method for changing synchronous service call to asynchronous parallel call with self-expanding choking algorithm |
US9760361B2 (en) | 2012-11-26 | 2017-09-12 | International Business Machines Corporation | Optimized installation of received patches for application programs already running on computer systems |
US20140229619A1 (en) * | 2013-02-11 | 2014-08-14 | Liferay, Inc. | Resilient Portals Through Sandboxing |
US9092292B2 (en) | 2013-05-16 | 2015-07-28 | Sap Se | Shared application binary storage |
US9965380B2 (en) * | 2013-10-02 | 2018-05-08 | International Business Machines Corporation | Automated test runs in an integrated development environment system and method |
US9792203B2 (en) | 2013-11-14 | 2017-10-17 | Sap Se | Isolated testing of distributed development projects |
US10289713B2 (en) | 2014-03-24 | 2019-05-14 | Ca, Inc. | Logical validation for metadata builder |
US10289430B2 (en) | 2014-03-24 | 2019-05-14 | Ca, Inc. | Interactive user interface for metadata builder |
US9501556B2 (en) | 2014-03-24 | 2016-11-22 | Ca, Inc. | Importing metadata into metadata builder |
US9934216B2 (en) * | 2014-03-24 | 2018-04-03 | Ca, Inc. | Schema validation for metadata builder |
US10013430B2 (en) * | 2014-08-18 | 2018-07-03 | Vmware, Inc. | Remotely stored application files |
US20160224525A1 (en) * | 2015-02-04 | 2016-08-04 | International Business Machines Corporation | Modification of a portlet |
US10110683B2 (en) * | 2015-08-11 | 2018-10-23 | Unisys Corporation | Systems and methods for maintaining ownership of and avoiding orphaning of communication sessions |
US9569335B1 (en) * | 2015-10-07 | 2017-02-14 | Sap Se | Exploiting software compiler outputs for release-independent remote code vulnerability analysis |
US9916155B2 (en) * | 2015-12-01 | 2018-03-13 | International Business Machines Corporation | Projects browser for development environments |
US9838505B2 (en) * | 2015-12-11 | 2017-12-05 | Sap Se | Application based context pooling |
US9870314B1 (en) * | 2016-12-12 | 2018-01-16 | Red Hat, Inc. | Update testing by build introspection |
US10346294B2 (en) * | 2017-04-11 | 2019-07-09 | Semmle Limited | Comparing software projects having been analyzed using different criteria |
US20190056930A1 (en) * | 2017-08-16 | 2019-02-21 | Singareddy Information Technologies, Inc. | System, method, and program product for implementing and co-locating java server faces servlet and sling server servlet in a single webserver |
US11089079B2 (en) | 2017-11-22 | 2021-08-10 | International Business Machines Corporation | Asynchronously reading HTTP responses in separate process |
US10771564B2 (en) * | 2017-11-22 | 2020-09-08 | International Business Machines Corporation | Sharing system managed HTTP client sessions across processes |
US11100009B2 (en) | 2020-01-03 | 2021-08-24 | Bank Of America Corporation | Intelligent detection and ejection of unused application components |
US10936468B1 (en) | 2020-05-01 | 2021-03-02 | Boomi, Inc. | System and method of automatic software release termination based on customized reporting static code analysis |
US11314503B2 (en) * | 2020-06-08 | 2022-04-26 | Bank Of America Corporation | Software development documentation using machine learning |
US11768759B2 (en) | 2020-09-29 | 2023-09-26 | Tata Consultancy Services Limited | Method and system for automated testing of web service APIs |
US11558452B2 (en) | 2021-05-20 | 2023-01-17 | Sap Se | Transparent multiple availability zones in a cloud platform |
US11907364B2 (en) | 2021-06-02 | 2024-02-20 | Sap Se | Managing incompliances identified at instances of cloud applications |
US11693641B1 (en) * | 2022-03-22 | 2023-07-04 | Accenture Global Solutions Limited | Machine learning (ML) powered programming code transformations |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182550A1 (en) * | 2002-02-21 | 2003-09-25 | Michael Chen | System and method for dynamic activation of enterprise Java beans |
US6751797B1 (en) * | 1999-10-26 | 2004-06-15 | Bull S.A. | System and method for managing the persistence of EJB components in a directory accessed via LDAP |
US20040172618A1 (en) * | 2003-02-28 | 2004-09-02 | Bea Systems, Inc. | Systems and methods for a common runtime container framework |
US6886041B2 (en) * | 2001-10-05 | 2005-04-26 | Bea Systems, Inc. | System for application server messaging with multiple dispatch pools |
US20050262091A1 (en) * | 2004-05-21 | 2005-11-24 | Bea Systems, Inc. | System and method for controls |
US20050267856A1 (en) * | 2004-05-19 | 2005-12-01 | Bea Systems, Inc. | System and method for application container architecture |
US20070288555A1 (en) * | 2001-07-17 | 2007-12-13 | Bea Systems, Inc. | System and method for transaction processing with delegated commit feature |
US7395526B2 (en) * | 2002-12-23 | 2008-07-01 | Sun Microsystems, Inc. | Method and system for managing application server lifecycle |
US7769825B2 (en) * | 2002-02-22 | 2010-08-03 | Bea Systems, Inc. | System and method for web services Java API-based invocation |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584507B1 (en) * | 1999-03-02 | 2003-06-24 | Cisco Technology, Inc. | Linking external applications to a network management system |
US6704806B1 (en) * | 1999-05-27 | 2004-03-09 | Computer Associates Think, Inc. | Method and device for monitoring the creation and destruction of child processes within an application executing in a computer system |
US6684387B1 (en) * | 1999-09-23 | 2004-01-27 | International Business Machines Corporation | Method and apparatus for verifying Enterprise Java Beans |
US6976061B1 (en) * | 2000-05-24 | 2005-12-13 | Sun Microsystems, Inc. | Resource adapter and XML descriptor for use in a client server environment utilizing an enterprise information system |
US7089584B1 (en) * | 2000-05-24 | 2006-08-08 | Sun Microsystems, Inc. | Security architecture for integration of enterprise information system with J2EE platform |
US6721777B1 (en) * | 2000-05-24 | 2004-04-13 | Sun Microsystems, Inc. | Modular and portable deployment of a resource adapter in an application server |
GB0017336D0 (en) * | 2000-07-15 | 2000-08-30 | Ibm | Preferable modes of software package deployment |
US7065568B2 (en) * | 2000-11-30 | 2006-06-20 | Microsoft Corporation | System and method for managing states and user context over stateless protocols |
US7120902B2 (en) * | 2000-12-04 | 2006-10-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for automatically inferring annotations |
US7246351B2 (en) * | 2001-02-20 | 2007-07-17 | Jargon Software | System and method for deploying and implementing software applications over a distributed network |
US7502833B2 (en) * | 2001-05-11 | 2009-03-10 | International Business Machines Corporation | Method for dynamically integrating remote portlets into portals |
US6745208B2 (en) * | 2001-05-31 | 2004-06-01 | International Business Machines Corporation | Method and apparatus for synchronizing an XML document with its object model |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
EP2309384A1 (en) * | 2001-10-29 | 2011-04-13 | Accenture Global Services GmbH | A generic connector between vitria and an EJB compliant API for an application |
WO2003073209A2 (en) * | 2002-02-22 | 2003-09-04 | Bea Systems, Inc. | System and method for software application scoping |
US7856631B2 (en) * | 2002-05-08 | 2010-12-21 | Sap Aktiengesellschaft | Software delivery manager |
US7506342B2 (en) * | 2002-07-23 | 2009-03-17 | Bea Systems, Inc. | System and method for implementing J2EE connector architecture |
US20040039728A1 (en) * | 2002-08-23 | 2004-02-26 | Diring Software | Method and system for monitoring distributed systems |
US7698434B2 (en) * | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
US20040111702A1 (en) * | 2002-12-10 | 2004-06-10 | Chan Kin Ming | Method and apparatus for visual programming |
US7069553B2 (en) * | 2003-03-03 | 2006-06-27 | Computer Associates Think, Inc. | Universal deployment tool |
US7302609B2 (en) * | 2003-03-12 | 2007-11-27 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US20050009467A1 (en) * | 2003-07-11 | 2005-01-13 | Nuber Raymond Mark | System and method for satellite communication with a hybrid payload and DAMA support |
US7340726B1 (en) * | 2003-08-08 | 2008-03-04 | Coverity, Inc. | Systems and methods for performing static analysis on source code |
US20050091535A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Application identity for software products |
CA2449534A1 (en) * | 2003-11-14 | 2005-05-14 | Ibm Canada Limited - Ibm Canada Limitee | On-demand software module deployment |
US7627671B1 (en) * | 2004-05-22 | 2009-12-01 | ClearApp, Inc. | Monitoring and performance management of component-based applications |
US20050267918A1 (en) * | 2004-05-28 | 2005-12-01 | Gatev Andrei A | System and method for bundling deployment descriptor files within an enterprise archive for fast reliable resource setup at deployment time |
US7562342B2 (en) * | 2004-12-02 | 2009-07-14 | International Business Machines Corporation | Method and apparatus for incrementally processing program annotations |
US7603378B2 (en) * | 2004-12-27 | 2009-10-13 | Sap (Ag) | System and method for common object/relational mapping |
US7536409B2 (en) * | 2005-02-15 | 2009-05-19 | International Business Machines Corporation | Having a single set of object relational mappings across different instances of the same schemas |
GB0507801D0 (en) * | 2005-04-19 | 2005-05-25 | Ibm | A system for processing a request to a portlet |
US8413134B2 (en) * | 2005-05-10 | 2013-04-02 | International Business Machines Corporation | Method, system and computer program for installing software products based on package introspection |
CN100580670C (en) * | 2005-06-03 | 2010-01-13 | 国际商业机器公司 | Method and computer system for content recovery due to user triggering |
US7711551B2 (en) * | 2005-06-13 | 2010-05-04 | Microsoft Corporation | Static analysis to identify defects in grammars |
US7840944B2 (en) * | 2005-06-30 | 2010-11-23 | Sap Ag | Analytical regression testing on a software build |
US7707552B2 (en) * | 2005-10-17 | 2010-04-27 | International Business Machines Corporation | Method and system for autonomically prioritizing software defects |
US8001477B2 (en) * | 2005-11-11 | 2011-08-16 | International Business Machines Corporation | Method for exchanging portlet configuration data |
US7761478B2 (en) * | 2005-11-23 | 2010-07-20 | International Business Machines Corporation | Semantic business model management |
WO2007084700A2 (en) * | 2006-01-19 | 2007-07-26 | University Of Maryland Office Of Technology Commercialization | System and method for thread handling in multithreaded parallel computing of nested threads |
US7853882B2 (en) * | 2006-04-11 | 2010-12-14 | International Business Machines Corporation | Portlets having different portlet specific enablement states |
WO2007120731A2 (en) * | 2006-04-13 | 2007-10-25 | Fischer International | Cross domain provisioning methodology and apparatus |
US20070294371A1 (en) * | 2006-06-15 | 2007-12-20 | Petri John E | Method for determining input focus for web pages having aggregated content |
US8214811B2 (en) * | 2006-10-23 | 2012-07-03 | International Business Machines Corporation | Instantiating an interface or abstract class in application code |
US20080270974A1 (en) * | 2007-04-30 | 2008-10-30 | Krasimir Topchiyski | Enterprise JavaBeans Metadata Model |
-
2007
- 2007-12-28 US US11/966,849 patent/US20080270974A1/en not_active Abandoned
-
2008
- 2008-01-30 US US12/022,429 patent/US8261272B2/en active Active
- 2008-02-12 US US12/029,677 patent/US9065843B2/en active Active
- 2008-04-28 US US12/111,127 patent/US20080270986A1/en not_active Abandoned
- 2008-04-30 US US12/113,025 patent/US7962612B2/en active Active
- 2008-04-30 US US12/112,881 patent/US8082508B2/en active Active
- 2008-04-30 US US12/112,888 patent/US8510717B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6751797B1 (en) * | 1999-10-26 | 2004-06-15 | Bull S.A. | System and method for managing the persistence of EJB components in a directory accessed via LDAP |
US20070288555A1 (en) * | 2001-07-17 | 2007-12-13 | Bea Systems, Inc. | System and method for transaction processing with delegated commit feature |
US6886041B2 (en) * | 2001-10-05 | 2005-04-26 | Bea Systems, Inc. | System for application server messaging with multiple dispatch pools |
US20030182550A1 (en) * | 2002-02-21 | 2003-09-25 | Michael Chen | System and method for dynamic activation of enterprise Java beans |
US7769825B2 (en) * | 2002-02-22 | 2010-08-03 | Bea Systems, Inc. | System and method for web services Java API-based invocation |
US7395526B2 (en) * | 2002-12-23 | 2008-07-01 | Sun Microsystems, Inc. | Method and system for managing application server lifecycle |
US20040172618A1 (en) * | 2003-02-28 | 2004-09-02 | Bea Systems, Inc. | Systems and methods for a common runtime container framework |
US20050267856A1 (en) * | 2004-05-19 | 2005-12-01 | Bea Systems, Inc. | System and method for application container architecture |
US20050262091A1 (en) * | 2004-05-21 | 2005-11-24 | Bea Systems, Inc. | System and method for controls |
Non-Patent Citations (5)
Title |
---|
"EJB 3.0", Patel, November 10, 2005 * |
"Enterprise JavaBeans 3.0, Fifth Edition", Monson-Haefel et al., Publisher: O'Reilly Media, Released: May 2006 * |
"JBoss® 4.0 The Official Guide", Fleury et al., Publisher: Sams, Pub. Date: April 20, 2005 * |
http://docs.jboss.org/jbossas/admindevel326/html, JBoss Admin Development Guide, 2004 * |
http://web.archive.org/web/20060418012544/http:/docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html, JBoss EJB 3.0 Reference Documentation, July 7, 2006 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138893A1 (en) * | 2007-11-23 | 2009-05-28 | Ketera Technologies Inc. | Interceptor Framework Using Java Dynamic Proxies |
US7984456B2 (en) * | 2007-11-23 | 2011-07-19 | Ketera Technologies Inc. | Interceptor framework using java dynamic proxies |
US20130219359A1 (en) * | 2011-09-19 | 2013-08-22 | Nec Corporation | Process evaluation device, program and method |
US8752012B2 (en) * | 2011-09-19 | 2014-06-10 | Nec Corporation | Process evaluation device, program and method |
US20130268913A1 (en) * | 2012-04-04 | 2013-10-10 | International Business Machines Corporation | Managing application template artifacts in a networked computing environment |
US8843889B2 (en) * | 2012-04-04 | 2014-09-23 | International Business Machines Corporation | Managing application template artifacts in a networked computing environment |
US10452372B2 (en) * | 2014-12-15 | 2019-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and deployment module for managing a container to be deployed on a software platform |
Also Published As
Publication number | Publication date |
---|---|
US7962612B2 (en) | 2011-06-14 |
US9065843B2 (en) | 2015-06-23 |
US20080270600A1 (en) | 2008-10-30 |
US20080271044A1 (en) | 2008-10-30 |
US8082508B2 (en) | 2011-12-20 |
US20080270924A1 (en) | 2008-10-30 |
US20080270617A1 (en) | 2008-10-30 |
US20080270992A1 (en) | 2008-10-30 |
US20080270974A1 (en) | 2008-10-30 |
US8261272B2 (en) | 2012-09-04 |
US8510717B2 (en) | 2013-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080270986A1 (en) | System and method for enterprise javabeans container | |
US7587425B2 (en) | Method and system for generating and employing a dynamic web services invocation model | |
US8099709B2 (en) | Method and system for generating and employing a dynamic web services interface model | |
US6832238B1 (en) | Local transaction management | |
US9389927B2 (en) | Method and apparatus for composite user interface generation | |
US9176772B2 (en) | Suspending and resuming of sessions | |
US6871223B2 (en) | System and method for agent reporting in to server | |
US9760583B2 (en) | Method for native program to inherit same transaction context when invoked by primary program running in separate environment | |
US20040044656A1 (en) | System for web service generation and brokering | |
US7051341B2 (en) | Method, system, and program for implementing a remote method call | |
CN111782340B (en) | Data processing method, device, equipment and system based on byte codes | |
US20090125366A1 (en) | Method and system for dynamic adaptation of workflows | |
US20020004848A1 (en) | System and method of providing an asynchronous interface between a client system and an enterprise javabeans-enabled server | |
US7055147B2 (en) | Supporting interactions between different versions of software for accessing remote objects | |
US20030105644A1 (en) | Application-independent api for distributed component collaboration | |
US20040230973A1 (en) | Mechanism to provide adminstrative control in a multi-process application server | |
US20080288622A1 (en) | Managing Server Farms | |
US20070255719A1 (en) | Method and system for generating and employing a generic object access model | |
US7472400B2 (en) | Method for dynamically generating a wrapper class | |
US20050022208A1 (en) | Corba gateway | |
CN108475220B (en) | System and method for integrating a transactional middleware platform with a centralized audit framework | |
US7562369B1 (en) | Method and system for dynamic configuration of activators in a client-server environment | |
US20040172640A1 (en) | Dynamically generated wrapper | |
US7353514B1 (en) | Computer software method for administering batch jobs | |
EP1351142A2 (en) | Apparatus and method of lazy connection transaction enlistment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAP AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SIMEONOV, IVO V.;SABEV, HRISTO K.;PAVLOV, VLADIMIR K.;AND OTHERS;REEL/FRAME:020968/0001;SIGNING DATES FROM 20080430 TO 20080519 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: SAP SE, GERMANY Free format text: CHANGE OF NAME;ASSIGNOR:SAP AG;REEL/FRAME:033625/0223 Effective date: 20140707 |