什么时候重新工程是分布式的,程序员们总是不得不决定应用程序多少分布式的部分应该被划分,并且写许多的一个整体的应用程序与 partwill 在哪儿并且怎么被放在网络节点上有关编码这些部分通过网络与对方一起交流。这些代码通常与企业没关系应用程序工作,并且他们是勤劳的写。另外,当应用程序的分发体系结构预先被使结束,它不能适应很好千变万化执行环境。在这篇论文,我们建议 DPartner,一个自动划分系统,没有明确地写分发相关的代码,到帮助,程序员们创造一个分布式的 Java 应用程序。不同于另外的划分系统, DPartner 不直接把一个应用程序划分成纹理粗糙的顾客和服务者。相反,它首先把应用程序划分成每个模块执行应用程序的一个相对独立的企业函数的几个模块。然后,它做这些模块通过自动字节码重写可分配。这些模块能在不同节点散布并且合作就作为原来的整体的应用程序工作。如此的一条基于模块的划分途径启用一一个应用程序的分发建筑学的相对容易的重塑,它便于应用程序没有手册,适应环境变化重新代码或关于分发的 repartitioning。这篇论文给 DPartner 的详细设计,并且用真实世界的应用程序评估它。评估结果表明 DPartner 的有效性和效率。
When reengineering a monolithic application to be a distributed one, programmers always have to decide how many distributed parts the application should be partitioned, and write many codes related to where a part will be placed on network nodes and how these parts communicate with each other through the network. These codes usually have nothing to do with the business functions of the application, and they are laborious to write. In addition, as the distribution architecture of the application is finalized beforehand, it may not adapt well to the everchanging execution environment. In this paper, we propose DPartner, an automatic partitioning system, to help programmers create a distributed Java application without explicitly writing the distribution-related codes. Unlike the other partitioning systems, DPartner does not partition an application directly into the coarse-grained client and server. Instead, it first partitions the application into several modules where each module performs a relatively independent business function of the application. Then it makes these modules be distributable through automatic bytecode rewriting. These modules can distribute in different nodes and cooperate to work just as the original monolithic application. Such a module-based partitioning approach enables a relatively easy reshaping of the distribution architecture of an application, which facilitates the application adapt to the environmental changes without manual recoding or repartitioning with regard to distribution. This paper gives the detailed design of DPartner, and evaluates it using real-world applications. The evaluation results demonstrate the effectiveness and efficiency of DPartner.