【正文】
Configuration Process evaluates an application path’s correctness, identifies the dependencies of application ponents on system ponents, and configures ponent replicas for deployment. An attempt is made to match and reuse any previously deployed replicas in the new path based on their configurations. We implement the infrastructure as a part of the JBoss open source Java application server [11] and test it on several Sample J2EE applications – Java Pets tore [23], Rubies [20] and TPCWNYU *32+. The infrastructure implementation utilizes the JBoss’s extendable microkernel architecture, based on the JMX [27] specification. Componentized architecture of JBoss allows incremental service deployments depending on the needs of deployed applications. We believe that dynamic reconfiguration of application servers through dynamic deployment and undeployment of system services is essential to building a resourceefficient framework for dynamic distributed deployment of J2EE applications. The rest of the paper is organized as follows. Section 2 provides necessary background for understanding the specifics of the J2EE ponent technology which are relevant to this study. Section 3 gives a general description of the infrastructure architecture, while section 4 goes deeper in describing particularly important and interesting internal mechanisms of the infrastructure. Section 5 describes the implementation of the framework, and related work is discussed in section 6. 2 J2EE Background Introduction Component frameworks. A ponent framework is a middleware system that supports applications consisting of ponents conforming to certain standards. Application ponents are “plugged” into the ponent framework, which establishes their environmental conditions and regulates the interactions between them. This is usually done through containers, ponent holders, which also provide monly required support for naming, security, transactions, and persistence. Figure 1:J2EE 3Tier architecture Component frameworks provide an integrated environment for ponent execution, as a result significantly reduce the effort .it takes to design, implement, deploy, and maintain applications. Current day industry ponent framework standards are represented by Object Management Group’s CORBA Component Model *18+, Sun Microsystems’ Java 2 Platform Enterprise Edition (J2EE) *25+ and Microsoft’s .NET *17+, with J2EE being currently the most popular and widely used ponent framework in the enterprise arena. J2EE. Java 2 Platform Enterprise Edition (J2EE) [25] is a prehensive standard for developing multitier enterprise Java applications. The J2EE specification among other things defines the following: ? Component programming model, ? Component contracts with the hosting server, ? Services that the platform provides to these ponents, ? Various human roles, ? Compatibility test suites and pliance testing procedures. Among the list of services that a pliant application server must provide are messaging, transactions, naming and others that can be used by the application ponents. Application developed using J2EE adhere to the classical 3Tier architectures – Presentation Tier, Business Tier, and Enterprise Information System (EIS) Tier (see Fig. 1). J2EE ponents belonging to each tier are developed adhering to the Specific J2EE standards. 1. Presentation or Web tier. This tier is actually subdivided into client and server sides. The client side hosts a web browser, applets and Java applications that municate with the server side of presentation tier or the business tier. The server side hosts Java Servlet ponents [30], Java Server Pages (JSPs) [29] and static web content. These ponents are responsible for presenting business data to the end users. The data itself is typically acquired from the business tier and sometimes directly from the Enterprise Information System tier. The server side of the presentation tier is typically accessed through HTTP(S) protocol. 2. Business or EJB tier. This tier consists of Enterprise Java Beans (EJBs) [24] that model the business logic of the enterprise application. These ponents provide persistence mechanisms and transactional support. The ponents in the EJB tier are invoked through remote invocations (RMI), inJVM invocations or asynchronous message delivery, depending on the type of EJB ponent. The EJB specification defines several types of ponents. They differ in invocation style (synchronous vs. asynchronous, local vs. remote) and statefulness: pletely stateless (., MessageDriven Bean), stateful nonpersistent (., Stateful Session Bean), stateful persistent (., Entity Bean). Synchronously invocable EJB ponents expose themselves through a special factory proxy object (an EJB Home object, which is specific to a given EJB), which is typically bound in JNDI by the deployer of the EJB. The EJB Home object allows creation or location of an EJB Object, which is a proxy to a particular instance of an EJB 1. 3. Enterprise Information System (EIS) or Data tier. This tier refers to the enterprise information systems, like relational databases, ERP systems, messaging systems and the like. Business and presentation tier ponent municate with this tier with the help of resource adapters as defined by the Java Connector Architecture [26].The J2EE programming model has been conceived as a distributed programming model where application ponents would run in J2EE servers and municate with each other. After the initial introduction and first server implementations, the technology, most notably, the EJB technology has seen some a significant shift away from purely distributed puting model towards local interactions 2. There were very legitimate performancerelated reasons behind this shift, however the Distributed features are still available. The J2EE s