【正文】
e specification, in fact, places no requirements even on life cycle properties of these services, nor does it address the issue of explicit specification of application ponent dependencies on the underlying system services. Instead it defines a role of human deploy who is responsible for ensuring that the required services are running based on his/her understanding of dependencies of application ponents on system services as implied by the nature of ponents and their deployment descriptors. For example, an EJB with container managed transactions that declares at least one method that supports/requires/starts a new transaction would require presence of a TransactionManager service in the application server. Similarly, a messagedriven bean implicitly requires an instance of a messaging service running somewhere in the work that hosts the messaging destination for the MDB and a Java Connector based hookup from within its hosting application server to this messaging service. Given that applications would typically use only a subset of services provided by an application server, ponentized application servers that allow incremental service deployments depending on the needs of the application allow for most efficient utilization of server resources. There are several J2EE application servers that are already fully or partially ponentized, including open source application servers JBoss [11] and JOnAS [19]. We feel 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. Therefore we advocate and will use as a model a microkernel application server design used by the JBoss application server [8]. In this model a minimal server consists of a service invocation bus, a robust classloading subsystem, some naming subsystem and a dynamic deployment subsystem. All other services are hotdeployable and municate through a mon invocation bus. For example, JBoss utilizes a Java Management Extensions (JMX) [27] server that provides basic naming and invocation facilities. In addition JBoss implements an advanced classloading subsystem and a deployment service. All other JBoss services are dynamically deployable and expose themselves as JMX MBeans with well defined (un)deployment mechanism and lifecycle. Such an application server design facilitates explicit handling of application ponent dependencies on system services and proper configuration and deployment of only required system services. References [1] Apache Software Foundation. Apache Geronimo Application Server. [2] N. Arshad, D. Heimbigner, and A. L. Wolf. Deployment and dynamic reconfiguration planning for distributed software systems. In Proceedings of the 15th International Conference on Tools with Artificial Intelligence (ICTAI’03), November 2020. [3] T. Batista and N. Rodriguez. Dynamic reconfiguration of ponentbased applications. In Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems, June 2020. [4] BEA Systems Inc. WebLogic Application Server. [5] G. Candea, E. Kiciman, S. Zhang, P. Keyani, and A. Fox. JAGR: An autonomous selfrecovering application server. In Proceedings of the 5th International Workshop on Active Middleware Services, June 2020. [6] M. Chen, E. Kiciman, E. Fratkin, E. Brewer, and A. Fox. Pinpoint: Problem determination in large, dynamic, Inter services. In Proceedings of the International Conference on Dependable Systems and Networks, June 2020. [7] J. E. Cook and J. A. Dage. Highly reliable upgrading of ponents. In Proceedings of the 21st International Conference on Software Engineering (ICSE’99), May 1999. [8] M. Fleury and F. Reverbel. The JBoss extensible server. In Proceedings of the ACM/IFIP/USENIX International Middleware Conference (Middleware’2020), June 2020. [9] IBM Corporation. WebSphere Application Server. [10] Java Community Process. Java Specification Request 88 (JSR88). [11] JBoss Group. JBoss Application Server. [12] T. Kichkaylo, A. Ivan, and V. Karamcheti. Constrained ponent deployment in widearea works using AI planning techniques. In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS), April 2020. [13] F. Kon and R. H. Campbell. Dependence management in ponentbased distributed systems. IEEE Concurrency, 8(1):26–36, 2020. [14] D. Llambiri, A. Totok, and V. Karamcheti. Efficiently distributing ponentbased applications across widearea environments. In Proceedings of the International Conference on Distributed Computing Systems (ICDCS), pages 412–421, May 2020. [15] , A. Tseng, and J. Kramer. Composing distributed objects in CORBA. In Proceedings of the Third International Symposium on Autonomous Decentralized Systems (ISADS’97), pages 257–263, 1997. [16] V. Marangozova and D. Hagimont. An infrastructure for CORBA ponent replication. In Proceedings of the IFIP/ACM Working Conference on Component Deployment, pages 257–263, 2020. [17] Microsoft Corporation. Microsoft .NET. [18] Object Management Group. CORBA Component Model (CCM) Specification. [19] ObjectWeb Consortium. JOnAS Application Server. [20] ObjectWeb Consortium. RUBiS: Rice University Bidding System. [21] Oracle Corporation. Oracle Application Server. [22] M. Rutherford, K. Anderson, A. Carzaniga, D. Heimbigner, and A. . Reconfiguration in the Enterprise JavaBean ponent model. In Proceedings of the IFIP/ACM Working Conference on Component Deployment, pages 67–81, 2020. [23] Sun Microsystems Inc. Java Pet Store Sample Application. [24] Sun Microsystems Inc. Enterprise JavaBeans (EJB) Specification. [25] Sun Microsystems Inc. Java 2 Enterprise Edition. [26] Sun Microsystems Inc. Java Co