在 Java EE 容器中扩展云特性毕业论文外文资料翻译

上传人:1777****777 文档编号:37150236 上传时间:2021-11-02 格式:DOC 页数:25 大小:243.03KB
收藏 版权申诉 举报 下载
在 Java EE 容器中扩展云特性毕业论文外文资料翻译_第1页
第1页 / 共25页
在 Java EE 容器中扩展云特性毕业论文外文资料翻译_第2页
第2页 / 共25页
在 Java EE 容器中扩展云特性毕业论文外文资料翻译_第3页
第3页 / 共25页
资源描述:

《在 Java EE 容器中扩展云特性毕业论文外文资料翻译》由会员分享,可在线阅读,更多相关《在 Java EE 容器中扩展云特性毕业论文外文资料翻译(25页珍藏版)》请在装配图网上搜索。

1、 毕业设计(论文)外文资料翻译学生姓名: 学 号: 所在学院: 电子与信息工程学院 专 业: 计算机科学与技术 指导教师: 2011年 12月 25 日English Data Original TextTranslates the foreign materials: Author: Jayakrishnan Ramdas(jkramdas), Senior Technology Architect, Infosys LTD J. Srinivas(jsrinivas), Principal Architect, Infosys LTD Book title (or paper topic)

2、: Extend Java EE containers with cloud characteristics Publishing house (or publication name): Publication time (or registration number): august 2011Extend Java EE containers with cloud characteristicsStrategies and patterns to extend JEE containers/apps with parallelism, elasticity, multi-tenancy,

3、and securityThe Java Enterprise Edition (JEE) architecture is based on components with features that effectively manage application transactions and statefulness, multi-threading, and resource pooling. A JEE application is easier to write even with complex requirements since the business logic is or

4、ganized in reusable components and the server provides the underlying services in the form of a container for each component type.We thought it would be a novel idea to add even more power to the concept of container services in JEE by adding support for some of the powerful ideas of cloud computing

5、 namely parallelism, elasticity, multi-tenancy, and security. This article describes the strategies and patterns to extend JEE containers and applications with cloud computing characteristics. It includes: An outline of each cloud characteristic we integrated. A layout of the existing characteristic

6、s of JEE applications. A description of our approach to extend the JEE container to the cloud. A design strategy for this type of migration, one that includes the concepts of parallelism, synchronization, storage, elasticity, multi-tenancy, and security.Cloud characteristicsFigure 1 explains what cl

7、oud is and the different cloud deployment models.Figure 1. A birds eye view of cloud service models and their componentsAt the bottom of the cloud stack is the Infrastructure as a Service (IaaS) level. Here the infrastructure has moved to cloud and the cloud now facilitates the deployment of softwar

8、e including business applications. However the IaaS does not have an application-development environment or any testing services. As the figure shows, the top level of abstraction is elasticity, automated deployment, and utility computing.The Platform as a Service (PaaS) level provides an environmen

9、t for application software to be created, deployed, and maintained. The PaaS provider has to give the basic life cycle services like build, deploy, testing and building block services like state management, transaction, and security, as well as resource management services through the runtime.The So

10、ftware as a Service (SaaS) level provides an environment for the end-user to access an application and use it.The basic cloud characteristics that an application needs to support are elasticity and multi-tenancy. Other characteristics, like provisioning and automation, are supported through the depl

11、oyment features of the application server and do not have much of an impact on the code. Parallelism, distributed storage needs, and security enhancements act as supporting characteristics that need to be addressed to achieve elasticity and multi-tenancy.Lets look at each in more detail.ElasticityEl

12、asticity is the ability to scale up and down the infrastructure based on need. During peak load times, more instances are added to the cluster and when the load comes down, the number of instances comes down. This should be done dynamically. This function is enabled by features of the application se

13、rver to support dynamic clustering techniques.Elasticity is not just an application server solution; the application itself should be able to support elasticity. This means the application needs to be designed to handle the resources that it uses to support concurrency. By designing or customizing a

14、n application to support elasticity, you imply that youve also implemented parallelism, statelessness, and transaction support in your application.The design strategy section describes how to implement elasticity that has all the resources support statelessness in execution and parallelism.Multi-ten

15、ancyMulti-tenancy means your application has the ability for a single application instance to cater to multiple customers; this means that if five customers are using a content management service, then all five customers can use the same application instance with adequate segregation of data and exe

16、cution parameters. To support multi-tenancy, your application needs to engage distributed storage, parallelism, security, and loose coupling.There are two approaches to support multi-tenancy: A single physical storage for all tenants. Multiple physical storage resources for tenants.Parallelism and t

17、ransaction supportIn the content of this article, parallelism is the ability to execute multiple requests in parallel or to split a large dataset task into multiple subtasks which are executed in parallel. This makes better use of available resources. Employing parallelism has a positive impact on t

18、hroughput and performance. Transaction support ensures reliability by guaranteeing that changes in state of any resource are synchronized. These two concepts sit on opposite ends of a spectrum - if you do more of one, you do less of the other.The right mixture of parallelism and transaction support

19、is essential to balance these opposing characteristics. The strategies section introduces four strategies, two each for parallelism and transaction support: A synchronous and asynchronous approach for parallelism. A thread-completion and a data-arrival synchronization approach for transaction suppor

20、t.The migration strategy described follows non-functional approaches to parallelism, but there are some that require functional changes. Like the Google framework MapReduce; MR describes a way of implementing parallelism using the Map function which splits a large data into multiple key-value pairs.

21、 (See Resources for articles on MapReduce and the cloud.)Loose coupling and statelessnessLoose coupling ensures that every call to a service is made through a standard interface; this enables the called component and caller component to be changed without one impacting the other. Loose coupling is i

22、ntroduced by a proxy which invokes the call. Statelessness is a property of loose coupling in which every call to a service does not depend on the previous call. It is achieved by managing state changes in a persistent storage.Both of these are complimentary characteristics that make system calls mo

23、re independent of dependencies.Distributed storageDistributed storage is a means to persist data so that the location of the data is not important. It also means that there are different places where the same data can be stored. This characteristic improves elasticity and statelessness, but can nega

24、tively impact transaction support, so it will require a balancing act.Four strategies for distributed storage include: Replicated nodes: Data is available at different nodes and is replicated immediately to other nodes. Replication on-demand: Triggers are defined that cause data replication manually

25、 or automatically. One-way replication with failover: The master-to-child node plan; during a master node fail, replication duties are assigned to a specific child. File system sharing: Used when replication is costly like with file system resources.SecurityCloud application security impacts certain

26、 characteristics strongly: Multi-tenancy, parallelism, and loose coupling introduce additional security needs. And if your application is deployed as a hybrid (for example, a cloud component and a local system component), you need to ensure a cross-domain, single sign-on capability which carries add

27、itional security implications.There are also security issues with distributed storage, parallelism, and transport.Now that you are familiar with cloud application characteristics, lets look at a Java EE container structure.Java EE container application characteristicsTraditional JEE applications dep

28、end on container services and use: Sticky sessions for connection state management RDBMS either directly through SQLs or stored procedures indirectly using ORM JMS objectsThey may also use message-driven Beans and Session Beans and web services implemented using the framework provided by the contain

29、er. The newly built applications might use asynchronous processing, as well as caching services or JavaMail services.Lets examine some attributes and functions of JEE container applications in detail.Data and operationEvery bit of programming logic can be abstracted into a data- (or memory-) related

30、 part and an operation- (or execution-) related part which interacts with each other so that the operation works on data and data is used by operation. The entire JEE package, container and application, can be abstracted in the same manner.ContainerThe quality of data aspect is measured by the abili

31、ty to ensure reliability of data accessed, availability of data accessed, being able to allow concurrency as well as security of the data in storage. The quality of operation aspect is measured by being able to ensure a listeners ability to listen to arrival of data, ability to invoke a remote call

32、as well as access control and transport security.Table 1. Providing quality for the data and operation aspect of a JEE applicationQuality attributeImplementation attributeImplementationDataReliabilityTransactionTransactions provide synchronized access to the data.AvailabilityPersistenceThe type of p

33、ersistence determine availability of data.ConcurrencyState managementThe state management mechanism ensures how many concurrent requests can be processed.SecuritySecurityThe encryption in storage and transit.OperationAsynchronous communicationListenerThe trigger for asynchronous calls.Synchronous co

34、mmunicationRemote invocationThe synchronous call outside the current process.SecuritySecurityThe access control check as well as transport security.The responsibility of container is two-fold:1 To have a mechanism to ensure that the quality attributes of data and operation are maintained.2 To contro

35、l the usage of system resources like heap memory, number of execution threads, etc.This leads to two distinct patterns you should be concerned with the managed resource pattern and the managed task pattern.Managed resource patternA managed resource provides a data-related service and it implements s

36、ession management, transaction, persistence, and security. The caller uses the naming directory to locate the resource manager. The resource manager uses the object pool provided by the container to manage system resources. A typical managed resource has the pattern you see in Figure 2.Figure 2. The

37、 managed resource patternThe container or application can get a handle on the resource manager through JNDI. The resource manager implements the object pool and it gets the managed resource that implements persistence, security state management, and transaction.Managed task patternA managed task pro

38、vides operation-related services that implements remote invocation, listener, and security and it uses the thread pool and naming directory services provided by the container. In addition, a managed task most likely encapsulates one or more of the managed resources that it works on. The managed list

39、ener is triggered by the container based on data arrival the data can be in the form of time, message, or request. It also can be triggered by the application as well.Figure 3. The managed task patternEvery service that container provides can be decomposed into one of the patterns or into a combinat

40、ion of the two patterns. For example, Java Message Service (JMS) has a managed resource pattern for JMS Destinations and a managed task pattern for JMS MessageListener. Similarly JDBC Connection is a managed resource pattern.Now that we have covered how the JEE container application functions, lets

41、look at how to extend a container application to the cloud.Extending containers: The basic approachThe approach for extending container to cloud is to:1 Decompose the cloud characteristics into the implementation attributes and then2 Enhance the managed resource pattern and managed task pattern with

42、 the implementation attribute-related changes.The strategy section shows how the managed resource pattern is extended to the cloud resource pattern and the managed task pattern is extended to the cloud task pattern.The managed resource pattern employs the following extensions to create the cloud res

43、ource pattern (see Figure 4): CloudResource Isolator Replicator LockManager LockDataResource StateDataResourceSimilarly the managed task pattern is extended with Proxy and StateManager to create the cloud task pattern (see Figure 5).Lets discuss some of these components.Cloud resource patternThe clo

44、ud resource pattern includes the list of extensions just mentioned. Here is a description of each component and their interactions with each other.CloudResourceThe CloudResource extends the managed resource to include distributed transactions and state persistence logic, if needed.StateDataResourceT

45、he StateDataResource is an instance of CloudResource that represents a state change for the given cloud resource. The state persistence logic itself is executed in a stateless manner.IsolatorThe Isolator uses a control field in the input to identify the customer tenant and applies the relevant secur

46、ity and partition logic to store in the correct place. The Isolator ensures that the application code is not cluttered with the multi-tenant storage strategies and ensures that right multi-tenant strategy is applied. The Isolator in itself is a collection of CloudResources.ReplicatorThe Replicator i

47、s used only if replicated nodes and replication on demand storage strategies are used. The Replicator ensures that the data is persisted in all the replicated nodes as a single distributed transaction. The difference between Isolator and Replicator is that Isolator ensures data goes into correct sto

48、rage based on the tenant and Replicator ensures data goes into all the storages replicated for same tenant.LockManager and LockDataResourceThe functionality of LockManager is to lock a particular data for a thread in a process across all Replicators. The LockManager ensures the same view of status a

49、cross all replicated nodes. It means that if data is locked for a thread in a server process in server 1, the server 2 process will see the status as locked even if it looks at a replica of storage. This feature is needed only for replicated nodes and replication on demand storage strategies.The ove

50、rall changes to the pattern can be summarized as follows (Figure 4): The resource manager now provider Isolators which in turn provides a CloudResource directly or a Replicator depending on storage strategy. The cloud resource now supports distributed transactions and state management now handles st

51、ate persistence as well.Figure 4. The cloud resource pattern now supports distributed transactionsCloud task patternThe cloud task pattern extends the managed task pattern with the Proxy and StateManager extensions. The Proxy determines the parallelism strategy and instructs the StateManager to cont

52、rol the persistence of state for the execution.ProxyThe Proxy is the wrapper around the managed task with pre-process and post-process logic. The pre-process logic includes the message security, followed by formatting the input based on protocol and performing the task. Subsequent to the task execut

53、ion, the post-process logic decides what to do with the output.StateManagerThe stateless execution of a task is to ensure that input to the task is the initial state and all final state related information is present in the output. Therefore, the StateManager takes care of input and output and movin

54、g them as a CloudResource.Figure 5. The cloud task patterns StateManager moves I/O as a CloudResourceTable 2 shows the details of how each cloud characteristics and its corresponding design strategy impacts which JEE implementation attribute and what patterns are referenced.Table 2. Cloud characteri

55、stics and their impact on design and implementation strategyCloud characteristicsDesign strategyImplementation attributePatternPattern extensionsStatelessnessStatelessness through state persistenceListener, remote invocatorCloud taskStateManagerStatelessnessStatelessness through state persistenceSta

56、te managementCloud resourceStateDataResourceDistributed storageReplicated nodes, Replication on demandPersistenceCloud resourceReplicator, LockManager, LockDataResourceDistributed storageReplicated nodes, Replication on demandTransactionCloud resourceCloudResourceParallelism and synchronizationAll t

57、he strategiesListener, remote invocatorCloud taskProxyLoose couplingAll the strategiesListener, remote invocatorCloud taskProxyMulti-tenancyAll the strategiesPersistenceCloud resourceIsolatorSecurityEncryptionPersistenceCloud resourceIsolatorSecurityEncryptionListener, remote invocatorCloud taskProx

58、yExtending containers: Approach for common container servicesModify the existing container services to match the cloud resource and cloud task patterns and attach them to the application in as non-intrusive manner as possible. In a nutshell, we converted all services to cloud resource pattern; when

59、the application interacts with the cloud resource pattern, it converts that pattern to the cloud task pattern and is ready for the cloud. The following list shows the service, the original method, and the approach we used. Service:JDBC Database ConnectionsLegacy method:Managed resources.Approach: Go

60、 for the higher versions that support distributed transactions (two-phase commit), shareable connection that support thread pool and stateless invocation. Based on the higher versions that exist, the remaining functionality can be provided using a cloud resource pattern. Service:JMS objectsLegacy me

61、thod:The JMS Senders and Receivers are tasks and JMS messages and destinations are objects.Approach:Same approach as for JDBC Database Connections. The configuration can be changed to ensure that the JMS Server is also present on all the nodes where JMS client is also present to help elasticity. Ser

62、vice:Cache objectsLegacy method:Currently support in-memory or distributed cache services.Approach:All caches need to be converted to a distributed cache to take advantage of effective sharing. The cache services can be optionally wrapped by a cloud resource adapter. Service:SessionLegacy method:Mos

63、t of the applications use sticky sessions.Approach:The code can be changed in a non-intrusive manner by having a filter for all the requests and let the filter create a custom HttpServletRequestWrapper which can override getSession() to give it as a cloud resource. Eliminate sticky session as well.

64、Service:Persistence strategiesLegacy method:The ORM-based container-managed persistence will be beneficial.Approach:The Object-Relational-Mapping-based container managed persistence does not clutter the application code with the relational nature of storage. This enables ease of changing the persistence layer to a non-relational DB as well. Hibernate Shards allows for distributed storage

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!