US20080270986A1 - System and method for enterprise javabeans container - Google Patents

System and method for enterprise javabeans container Download PDF

Info

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
Application number
US12/111,127
Inventor
Ivo V. Simeonov
Hristo K. Sabev
Vladimir K. Pavlov
Krasimir I. Topchiyski
Vesselin P. Mitrov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US12/111,127 priority Critical patent/US20080270986A1/en
Assigned to SAP AG reassignment SAP AG ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SIMEONOV, IVO V., MITROV, VESSELIN P., PAVLOV, VLADIMIR K., SABEV, HRISTO K., TOPCHIYSKI, KRASIMIR I.
Publication of US20080270986A1 publication Critical patent/US20080270986A1/en
Assigned to SAP SE reassignment SAP SE CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: SAP AG
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6281Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing 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.
  • BACKGROUND
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION
  • 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 to FIG. 1, 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. 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 the EJB container 1000. Second, the architecture of the EJB container 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 EJB container 1000 to handle any number of use cases required by clients. For example, 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. 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 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.
  • 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 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.
    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 to FIG. 2, the enterprise bean context 210 manages a bean 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. The instance lifecycle manager 250 manages all lifecycle events associated with the bean instance 200 and its enterprise bean context 210. Depending on the request that has to be served in each case, 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.
  • In an embodiment of the invention, the runtime environment described in FIG. 2 is created and managed by a container as described in FIG. 1. Referring to FIGS. 1 and 2, 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. For example, if 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. Referring to FIG. 3, at process block 300 a set of interceptors is created. Each interceptor in the set encapsulates logic to provide certain functionality. At process 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, at process 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 in FIG. 1. Referring to FIGS. 1 and 3, the container 1000 creates interceptors at process block 300 to expose its functionality. At process block 310 the container 1000 groups interceptors in chains. At process block 320 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. 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).
  • 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.
US12/111,127 2007-04-30 2008-04-28 System and method for enterprise javabeans container Abandoned US20080270986A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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