1、附录 1 翻译原文 Infrastructure for Automatic Dynamic Deploymentof J2EE Application in Distributed Environments Anatoly Akkerman, Alexander Totok, and Vijay Karamcheti Abstract: in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an envi
2、ronment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application components. Key words: j2ee; component; Distributed; Dynamic Depl
3、oyment; 1 Introduction In recent years, we have seen a significant growth in component-based enterprise application development. These applications are typically deployed on company Intranets or on the Internet and are characterized by high transaction volume, large numbers of users and wide area ac
4、cess. Traditionally they are deployed in a central location, using server clustering with load balancing (horizontal partitioning) to sustain user load. However, horizontal partitioning has been shown very efficient only in reducing application-related overheads of user-perceived response times, wit
5、hout having much effect on network-induced latencies. Vertical partitioning (e.g., running web tier and business tier in separate VMs) has been used for fault isolation and load balancing but it is sometimes impractical due to significant run-time overheads (even if one would keep the tiers on a fas
6、t local-area network) related to heavy use of remote invocations. Recent work 14 in the context of J2EE component based applications has shown viability of vertical partitioning in wide-area networks without incurring the aforementioned overheads. The key conclusions from that study can be summarize
7、d as follows: Using properly designed applications, vertical distribution across wide-area networks improves user-perceived latencies. Wide-area vertical layering requires replication of application components and maintaining consistency between replicas. Additional replicas may be deployed dynamica
8、lly to handle new requests. Different replicas may, in fact, be different implementations of the same component based on usage (read-only, read-write). New request paths may reuse components from previously deployed paths. Applying intelligent monitoring 6 and AI planning 2, 12 techniques in conjunc
9、tion with the conclusions of that study, we see a potential for dynamic adaptation in industry-standard J2EE component-based applications in wide area networks Through deployment of additional application components dynamically based on active monitoring. However, in order to achieve such dynamic ad
10、aptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the sys
11、tem services and application components. For example one has to set up JDBC data sources, messaging destinations and other resource adapters before application components can be configured and deployed. In a wide area deployment that spans multiple server nodes, this proves even more complex, since
12、more system services that facilitate inter-node communications need to be configured and started and a variety of configuration data, like IP addresses, port numbers, JNDI names and others have to be consistently maintained in various configuration files on multiple nodes. This distributed deploymen
13、t infrastructure must be able to: address inter-component connectivity specification and define its effects on component configuration and deployment, address application component dependencies on application server services, their configuration and deployment, provide simple but expressive abstract
14、ions to control adaptation through dynamic deployment and undeployment of components, enable reuse of services and components to maintain efficient use of network nodes resources, provide these facilities without incurring significant additional design effort on behalf of application programmers. In
15、 this paper we propose the infrastructure for automatic dynamic deployment of J2EE applications, which addresses all of the aforementioned issues. The infrastructure defines architecture description languages (ADL) for component and link description and assembly. The Component Description Language i
16、s used to describe application components and links. It provides clear separation of application components from system components. A flexible type system is used to define compatibility of component ports and links. A declaration and expression language for configurable component properties allows
17、for specification of inter-component dependencies and propagation of properties between components. The Component (Replica) Assembly Language allows for assembly of replicas of previously defined components into application paths by Connecting appropriate ports via link replicas and specifying the m
18、apping of these component replicas onto target application server nodes. The Component Configuration Process evaluates an application paths correctness, identifies the dependencies of application components on system components, and configures component replicas for deployment. An attempt is made to
19、 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 TPC-W-NYU *32+. The infrastr
20、ucture implementation utilizes the JBosss extendable micro-kernel 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 server
21、s through dynamic deployment and undeployment of system services is essential to building a resource-efficient 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 component technology which are relevant to this study. Section 3 gives a general description of the infrastructure architecture, while section 4 goes deeper in