1、本科毕业设计外文文献及译文文献、资料题目:Infrastructure for Automatic Dynamic DeploymentOf J2EE Application in Distributed Environments 文献、资料来源:网络文献、资料发表(出版)日期:2007.9院 (部): 专 业: 班 级: 姓 名: 学 号: 指导教师: 翻译日期: 19外文文献:Infrastructure for Automatic Dynamic DeploymentOf J2EE Application in Distributed EnvironmentsAnatoly Akkerm
2、an, Alexander Totok, and Vijay KaramchetiAbstract: in order to achieve such dynamic adaptation, 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 applicati
3、on 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 Deployment; 1 IntroductionIn recent years, we have seen a significant growth in component-based enterprise application develo
4、pment. 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 access. Traditionally they are deployed in a central location, using server clustering with load balancing (horizontal parti
5、tioning) to sustain user load. However, horizontal partitioning has been shown very efficient only in reducing application-related overheads of user-perceived response times, without having much effect on network-induced latencies. Vertical partitioning (e.g., running web tier and business tier in s
6、eparate 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 fast local-area network) related to heavy use of remote invocations. Recent work 14 in the context of J2EE component based ap
7、plications has shown viability of vertical partitioning in wide-area networks without incurring the aforementioned overheads. The key conclusions from that study can be summarized as follows: Using properly designed applications, vertical distribution across wide-area networks improves user-perceive
8、d latencies. Wide-area vertical layering requires replication of application components and maintaining consistency between replicas. Additional replicas may be deployed dynamically to handle new requests. Different replicas may, in fact, be different implementations of the same component based on u
9、sage (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 conjunction with the conclusions of that study, we see a potential for dynamic adaptation in industry-standard J2EE component-base
10、d applications in wide area networksThrough deployment of additional application components dynamically based on active monitoring. However, in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite ev
11、ident 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. For example one has to set up JDBC data sources, messaging destinations and other r
12、esource 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 more system services that facilitate inter-node communications need to be configured and started and a variety of configurat
13、ion data, like IP addresses, port numbers, JNDI names and others have to be consistently maintained in various configuration files on multiple nodes.This distributed deployment infrastructure must be able to: address inter-component connectivity specification and define its effects on component conf
14、iguration and deployment, address application component dependencies on application server services, their configuration and deployment, provide simple but expressive abstractions to control adaptation through dynamic deployment and undeployment of components, enable reuse of services and components
15、 to maintain efficient use of network nodes resources, provide these facilities without incurring significant additional design effort on behalf of application programmers.In this paper we propose the infrastructure for automatic dynamic deployment of J2EE applications, which addresses all of the af
16、orementioned issues. The infrastructure defines architecture description languages (ADL) for component and link description and assembly. The Component Description Language is used to describe application components and links. It provides clear separation of application components from system compon
17、ents. A flexible type system is used to define compatibility of component ports and links. A declaration and expression language for configurable component properties allows for specification of inter-component dependencies and propagation of properties between components. The Component (Replica) As
18、sembly Language allows for assembly of replicas of previously defined components into application paths byConnecting appropriate ports via link replicas and specifying the mapping of these component replicas onto target application server nodes. The Component Configuration Process evaluates an appli
19、cation paths correctness, identifies the dependenciesof application components on system components, and configures component 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
20、 as a part of the JBoss open source Java application server 11 and test it on severalSample J2EE applications Java Pets tore 23, Rubies 20 and TPC-W-NYU 32. The infrastructure implementation utilizes the JBosss extendable micro-kernel architecture, based on the JMX 27 specification. Componentized ar
21、chitecture 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 resource-efficient framework for dynami
22、c 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 archite
23、cture, 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 Background2.1 IntroductionComponent frameworks. A component fr
24、amework is a middleware system that supports applications consisting of components conforming to certain standards. Application components are “plugged” into the component framework, which establishes their environmental conditions and regulates the interactions between them. This is usually done th
25、rough containers, component holders, which also provide commonly required support for naming, security, transactions, and persistence. Component frameworks provide an integrated environment for component execution, as a result significantly reduce the effort .it takes to design, implement, deploy, a
26、nd maintain applications. Current day industry component framework standards are represented by Object Management Groups CORBA Component Model 18, Sun Microsystems Java 2 Platform Enterprise Edition (J2EE) 25 and Microsofts .NET 17, with J2EE being currently the most popular and widely used componen
27、t framework in the enterprise arena.J2EE. Java 2 Platform Enterprise Edition (J2EE) 25 is a comprehensive standard for developing multi-tier enterprise Java applications. The J2EE specification among other things defines the following: Component programming model, Component contracts with the hostin
28、g server, Services that the platform provides to these components, Various human roles, Compatibility test suites and compliance testing procedures.Among the list of services that a compliant application server must provide are messaging, transactions, naming and others that can be used by the appli
29、cation components. Application developed using J2EE adhere to the classical 3-Tier architectures Presentation Tier, Business Tier, and Enterprise Information System (EIS) Tier (see Fig. 1). J2EE components belonging to each tier are developed adhering to theSpecific J2EE standards.1. Presentation or
30、 Web tier.This tier is actually subdivided into client and server sides. The client side hosts a web browser, applets and Java applications that communicate with the server side of presentation tier or the business tier. The server side hosts Java Servlet components 30, Java Server Pages (JSPs) 29 a
31、nd static web content. These components 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 throu
32、gh 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 components provide persistence mechanisms and transactional support. The components in the EJB tier are invoked through remote invocati
33、ons (RMI), in-JVM invocations or asynchronous message delivery, depending on the type of EJB component. The EJB specification defines several types of components. They differ in invocation style (synchronous vs. asynchronous, local vs. remote) and statefulness: completely stateless (e.g., Message-Dr
34、iven Bean), stateful non-persistent(e.g., Stateful Session Bean), stateful persistent (e.g., Entity Bean). Synchronously invocable EJB components 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 d
35、eployer of the EJB. The EJB Home object allows creation or location of an EJBObject, 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 sys
36、tems and the like. Business and presentation tier component communicate 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 components would run in J2EE s
37、ervers and communicate 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 computing model towards local interactions 2. There were very legitimate performanc
38、e-related reasons behind this shift, however theDistributed features are still available. The J2EE specification has seen several revisions, the latest stable being version 1.3, while version 1.4 is going through last review phases 3. We shall focus our attention on the former, while actually learni
39、ng from the latter. Compliant commercial J2EE implementations are widely available from BEA Systems 4, IBM 9, Oracle 21 and other vendors. Several open source implementations, including JBoss 11 and JOnAS 19 claim compatibility as well. ARecent addition to the list is a new Apache project Geronimo 1
40、.2.2 J2EE Component Programming ModelBefore we describe basic J2EE components, lets first address the issue of defining what a component is a software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deploy
41、ed independently and is subject to composition by third parties 31.According to this definition the following entities which make up a typical J2EE application would be considered application components (some exceptions given below): EJBs (session, entity, message-driven), Web components (servlets,
42、JSPs), messaging destinations, Data sources,EJB and Web components are deployed into their corresponding containers provided by the application server vendor. They have well-defined contracts with their containers that govern lifecycle, threading, persistence and other concerns. Both Web and EJB com
43、ponents use JNDI lookups to locate resources or other EJB components they want to communicate with. The JNDI context in which these lookups are performed is maintained separately for each component by its container. Bindings messaging destinations, such as topics and queues, are resources provided b
44、y a messaging service implementation. Data sources are resources provided by the application server for data access by business components into the enterprise information services (data) tier, and most commonly are exemplified by JDBC connection pools managed by the applicationServer. A J2EE program
45、mer explicitly programs only EJBs and Web components. These custom-written components interact with each other and system services both implicitly and explicitly. For example, an EJB developer may choose explicit transaction demarcation (i.e., Bean-Managed Transactions) which means that the develope
46、r assumes the burden of writing explicit programmatic interaction with the platforms Transaction Manager Service through well-defined interfaces. Alternatively, the developer may choose Container-Managed transaction demarcation, where transactional behavior of a component is defined through its desc
47、riptors and handled completely by the EJB container, thus acting as an implicit dependency of the EJB on the underlying Transaction Manager service.2.3 Links Between Components2.3.1 Remote InteractionsJ2EE defines only three basic inter-component connection types that can cross application server bo
48、undaries, in all three cases; communication is accomplished through special Java objects. Remote EJB invocation: synchronous EJB invocations through EJB Home and EJB Object interfaces. Java Connector outbound connection: synchronous message receipt, synchronous and asynchronous message sending,Database query using Connection Factory and Connection interfaces. Java Connector inbound connection: asynchronous message delivery into Message-Driven Beans (MDBs) only, utilizing Activation Spec objects. In the first two cases, an application component developer writes the code that performs lookup