Title: Migration of JOnAS EJB Session, Entity, Home and Remote, with ProActive Interposition objects
1Migration of JOnAS EJB Session, Entity, Home and
Remote, with ProActive Interposition objects
2Plan of the Talk
- 1. Introduction to ProActive
- 2. Migration of JOnAS EJB Session, Entity, Home
and Remote - 3. Conclusion and Future Work
3- Introduction to ProActive
4ProActive Model
- The application is structured in subsystems.
- Each subsystem is composed of one active object
and some passive objects - All objects (both active and passive) may have
references onto active objects - If an object o1 has a reference onto a passive
object 02, then o1 and o2 are part of the same
subsystem. - Only the active object is known to objects
outside of the subsystem
5ProActive Active Objects
- An active object is composed of several objects
- The object itself (a standard Java object )
- The body receiving calls on the active object,
storing these calls in a queue of pending calls - The queue of pending requests
6ProActiveCreating Active Object
- Class-based
- class pA extends A implements Active
- A a (A)ProActive.newActive(pA,params, node)
- Instantiation-based
- A a (A)ProActive.newActive(A,params,
node) - Object-based
- A a new A (obj, 7)
- a (A)ProActive.turnActive (a, node)
7- Migration of JOnAS EJB Session, Entity, Home and
Remote
8Past Work
- The work about how to migrate a JOnAS EB
was done by Laurent Vaills, Alexandre Guyot, and
Nicolas Guillier. - The approach adopted by them is to
modify the EB source code directly.
9Goal Of My Research
- Implementing the migration of both a JOnAS EB and
its Home and Remote - Minimizing the direct modification to EB source
code
10Approach to Migration of JOnAS EB and Its Home
and Remote
- Turning the standard Object into an Active
Object - Implementing the migration
11Approach to Turn the EJB Objects into Active
Objects
Modification of the JOnAS source code -
GenIC tool - Other sources
12Why Do We Need to Modify the GenIC Tool
- It generates the container classes for a given
EB - It generates source code for a given EB s Home
and Remote interface - It generates stubs and skeletons for a given
EBs Home and Remote interface - .
-
13Why the Modification Will Be Done?
- Restrictions on reifiable objects in ProActive
- - Classes without a no-argument
constructor cannot be - reified.
- - Final classes cannot give birth to active
object - - Same thing for non-public classes
- Giving the standard EJB objects migrable
properties , namely turning them into migrable
active objects -
14The Details of Modification to GenIC Tool(1)
- File name GenICEntityHome
- Modifications turn JOnAS objects into active
objects, import ProActive Library, add
non-argument constructor, add serializable
interface. - Lines 50
- Typical clauses(Turning an EB into an active
object) - void genCreate(Method method) throws
GenICException - ...
- src.indentPlus()
- src.println("ProActive.turnActive(eb,Ser
ver.node)") - ...
- src.indentMinus()
- src.println(" ")
-
15The Details of Modification to GenIC Tool(2)
- File name GenICEntityRemote
- Modifications import ProActive Library, add
non-argument constructor, add serializable
interface - Lines 20
- Typical clauses(add non-argument constructor
for EB s Remote) - void genVoidConstructor () throws
GenICException - src.println("public "
wrpRemoteBaseName - "() throws RemoteException")
- src.indentPlus()
- src.indentMinus()
- src.println("")
- ...
-
-
16The Details of Modification to GenIC Tool(3)
- Files GenICSessionHome, GenICSessionRemote
- Do the same work as GenICEntityHome,GenICEnti
tyRemote respectively - Files GenICHome, GenICRemote(5 lines
respectively) - add abstract function declaration , function
call clauses, and modify class declaration. For
example(GenICRemote) - src.println("public class
"wrpRemoteBaseName - " extends
"getSuperClass() - " implements "
- ejbRemoteName",
Active,Serializable")
17The Details of Modification to Other Sources of
JOnAS
- File names JBeanSession, JBeanSessionSf,
JBeanSessionSl, JSessionHome, JContextSession,
JContainerImple, JEntityHome, . - Modifications add non-argument constructor,
add serializable interface - Lines 5 respectively
- Typical clauses
- private void writeobject(java.io.objectoutStream
out) throws java.io.IOException - out.defaultWriteObject()
-
18Migration of JOnAS EB(1)
VM 1
Server
Container
EJBHome Skeleton
EJBHome
EJBHomeStub
Client
EB
EJBObjectStub
EJBObject Skeleton
EJBObject
19Migration of JOnAS EB(2)
VM 1
Server
VM 2
EJBHome Skeleton
Container
EJBHome
EJBHomeStub
EB
Client
EJBObjectStub
EJBObject Skeleton
EJBObject
20Migration of JOnAS EB(3)
VM 1
Server
VM 2
EJBHome Skeleton
Container
EJBHome
EJBHomeStub
EB
Client
EJBObjectStub
EJBObject Skeleton
EJBObject
21Migration of JOnAS Remote
VM 1
VM 2
Server
Container
EB
EJBHome Skeleton
EJBHome
EJBHomeStub
Client
EJBObject
EJBObjectStub
EJBObject Skeleton
22Migration of JOnAS Home
VM 1
VM 2
Server
Container
EJBHome
EJBHome Skeleton
EJBHomeStub
EB
Client
EJBObject Skeleton
EJBObjectStub
EJBObject
23Conclusion and Future Work
- ProActive provides a scheme to implement the
migration of JOnAS EB and its Home and Remote - ProActive provides a method to dynamic deploy
JOnAS EJB - ProActive provides an approach to give JOnAS
activity. - Implementing the migration of Message-driven Bean