Just a few years ago, Web applications were mainly composed of a few simple and static HTML pages, which were used to share the information over the Internet. Today, however, many organizations manage their business activities by using Web-based systems, whether in business-to-business (B2B) or business-to-consumer (B2C) contexts. Traditionally, these so-called legacy Web systems were developed by utilizing obsolete architectures and technologies. In most cases, legacy Web applications cannot be simply discarded because they often encapsulate a great deal of business knowledge accumulated over the years, and constitute a significant investment for the organization that operates them. For this reason, the need to migrate existing legacy Web systems towards modern Web technologies has become an important objective. Modern Web systems refer to the software systems that are designed by multi-tier architectures and supported by open standards and new technologies. Particularly, J2EE is now one of the most widely accepted and prevalent technologies for design, development, and deployment of Web-enabled applications in enterprise environments [6]. In this paper, we present a transformation framework that aims at adopting existing Web systems into enterprise Java environments based on the MVC design pattern. Specifically, the database access functionality is extracted from source programs, and then encapsulated in JavaBeans objects. Consequently, the JSP pages translated from the legacy presentation components can reference these newly created JavaBeans objects. Moreover, we develop a transformation process for refactoring a JSP-based Web site to a controller-centric architecture by extracting the linkage information from the JSP application analysis. As a result, the target migrant system would be more scalable, portable, and maintainable than the original one [1,16,28,29]. The remainder of this paper is organized as follows. Section 2 provides pointers to the related work. Section 3 outlines the migration framework, including migration methodology and architectures, while experimental results and case studies are discussed in Section 4 and Section 5. Finally, Section 6 offers conclusions and directions for the future research.
2. Related Work and Discussion
Several works on migration of legacy applications into new Web-based platforms have been proposed in the literature. Aversano et. al. [18] present a tool to migrate COBOL systems into Web applications based on the methodologies described in MORPH project [19]. The tool decomposes the original system into its user interface and server (application and database). The user interface has been migrated into a Web browser using Active Server Pagesreg; and VBScriptreg;, while the server is wrapped by dynamic load libraries written in Microfocus Object COBOL. Bodhuin et. al. [25] present a strategy to incrementally migrate the COBOL program decompose into new architecture based on Model-View-Controller (MVC) design pattern. The system decomposition process includes static analysis, restructuring, and slicing techniques. A toolkit [2] is developed to translate the view into JSP pages, and the model and controller are wrapped into the Web environments. The main difference with our work is that the source program in [2,18,25] is not a Web-based system where the user interface has to be re-implemented from character-based screen to the HTML-oriented Web page. On the contrary, our source system is the existing Web application. Thus, the target system can reuse the same Web page design as the original one, as well as most of display elements from the source system, such as HTML and JavaScript without changing them. Another difference is that the database and business logic is kept untouched by applying wrapping technique in [2,18,25], whereas we encapsulate database access components (SQL statements) into JavaBeans objects by conforming to the data bean architecture. Ricca et. al. [8] sketch several possible Web application transforms with the aim of improving their qualities. They have classified HTML transformations into six categories: syntactic clean up, page restructuring, style renovation and grouping, improving accessibility, update to new standards, and design restructuring. A case study has been provided based on transforming original navigation structure into HTML frames by utilizing the DMSreg; Software Reengineering Toolkittrade;, an integrated tools infrastructure for automating customized source program analysis and modification of large scale software systems [22]. In another paper [7], Ricca and Tonella propose a migration process aimed at restructuring static Web sites into dynamic ones using the software clustering technique, where a common template is extracted from the HTML pages in the same cluster, and the variable information is isolated from the template and then moved into a database. They introduce a re-engineering tool, so called ReWeb, which is able to perform source code analysis and graph representation on Web sites. These works in [7,8] focus on the analysis and the representation of static Web sites in which the Web pages are not generated by the server-side scripting language. By contrast, our approach includes the analysis of dynamic and behavioral aspects of Web applications. We share with [7] the idea of using the clustering technique to restructure the Web sites in our proposed transformation framework. However, we aim to refactore the Web sites by adopting a controller-centric architecture instead of the frame-based one described in [7].
The work most related to ours is [12]. In this work, Cordy et. al. describe the Whole Website Understanding Project (WWSUP), a long-term project with design-level understanding of Web applications by analyzing their source codes. One subproject is to transform Perl to Java platforms, which consists of three major tasks: Perl to JSP/Java, Perl modules to EJB, and tr
全文共34946字,剩余内容已隐藏,支付完成后下载完整资料
就在几年前,Web应用程序主要由几个简单和静态的HTML页面组成,这些页面通过因特网共享信息。然而,今天,许多组织通过使用基于Web的系统管理他们的业务活动,无论是在企业对企业(B2B)还是企业对消费者(B2C)环境中。传统上,这些所谓的遗留Web系统是利用过时的架构和技术开发的。在大多数情况下,遗留的Web应用程序不能简单地被丢弃,因为它们经常封装了多年积累的大量业务知识,并且运营的他们的组织对它进行了重大投资。出于这个原因,将现有的遗留Web系统迁移到现代Web技术的需求已成为一个重要目标。现代Web系统是指由多层体系结构设计并由开放标准和新技术支持的软件系统。特别是,J2EE现在是在企业环境中用于设计,开发和部署Web应用程序的最广泛接受和普遍使用的技术之一。在本文中,我们提出了一个转换框架,旨在将现有的Web系统用于基于MVC设计模式的企业Java环境。具体来说,数据库访问功能是从源程序中提取的,然后封装在JavaBeans对象中。因此,从传统表示组件翻译的JSP页面可以引用这些新创建的JavaBeans对象。此外,我们开发了一个转换过程,通过从JSP应用程序分析中提取链接信息,将基于JSP的网站重构为以控制器为中心的体系结构。因此,目标移民系统的可扩展性,便携性和可维护性都比原来的更大。本文的其余部分安排如下。第2节提供了相关工作的指针。第3节概述了迁移框架,包括迁移方法和体系结构,而实验结果和案例研究将在第4节和第5节讨论。最后,第6节为未来的研究提供结论和方向。
2.相关工作和讨论
文献中已经提出了几项关于遗留应用程序迁移到新的基于Web的平台的工作。 Aversano 等人[18]提出了一个工具,用于将COBOL系统迁移到基于MORPH项目[19]中描述的方法论的Web应用程序中。该工具将原始系统分解为其用户界面和服务器(应用程序和数据库)。用户界面已使用Active ServerPagesreg;和VBScriptreg;迁移到Web浏览器,而服务器则由用Microfocus Object COBOL编写的动态加载库进行包装。 Bodhuin 等人[25]提出了一种基于模型 - 视图 - 控制器(MVC)设计模式逐步将COBOL程序分解为新架构的策略。系统分解过程包括静态分析,重构和切片技术。开发一个工具包[2]将视图翻译成JSP页面,并将模型和控制器包装到Web环境中。与我们的工作的主要区别在于[2,18,25]中的源程序不是基于Web的系统,用户界面必须从基于字符的屏幕重新实现到面向HTML的网页。相反,我们的源系统是现有的Web应用程序。因此,目标系统可以重复使用与原始系统相同的网页设计,以及来自源系统的大多数显示元素,例如HTML和JavaScript,而无需更改它们。另一个区别是数据库和业务逻辑在[2,18,25]中通过应用包装技术保持不变,而我们通过遵守数据bean体系结构将数据库访问组件(SQL语句)封装到JavaBeans对象中。 Ricca 等人[8]勾画出几个可能的Web应用程序转换,目的是提高它们的质量。他们将HTML转换分为六类:句法清理,页面重构,风格翻新和分组,改进可访问性,更新新标准和设计重组。通过利用DMSreg;Software Reengineering Toolkittrade;,一种用于自动化定制源程序分析和修改大规模软件系统的集成工具基础架构,将原始导航结构转换为HTML框架,从而提供了案例研究[22]。在另一篇论文[7]中,Ricca和Tonella提出了一个迁移过程,旨在使用软件集群技术将静态网站重构为动态网站,其中从同一集群中的HTML页面提取常见模板,并将可变信息分离从模板中移出,然后移入数据库。他们介绍了一种重新设计工具,即所谓的ReWeb,它可以在网站上执行源代码分析和图表表示。这些[7,8]的着作集中在静态网站的分析和表示上,其中网页不是由服务器端脚本语言生成的。相比之下,我们的方法包括分析Web应用程序的动态和行为方面。我们与[7]分享了在我们提出的转换框架中使用聚类技术来重构网站的想法。然而,我们的目标是通过采用以控制器为中心的体系结构而不是基于框架的体系结构来描述[7]中的Web站点。
与我们最相关的工作是[12]。在这项工作中,Cordy 等人描述整个网站理解项目(WWSUP),这是一个通过分析源代码对Web应用程序进行设计级理解的长期项目。一个子项目是将Perl转换为Java平台,它由三个主要任务组成:Perl到JSP / Java,Perl模块到EJB以及Perl模块导入的任何模块的翻译。但是,很少有文献或出版物可以详细讨论这个项目。在将IBM Net.Data [9,10]系统迁移到企业Java平台上也有相当多的活动和原型工具。通过使用Java技术来支持迁移工作,特别是关于SQL语句转换[13,14,21,23,24,26],已经开发了几种工具。大多数现有的IBM Net.Data迁移工具专注于数据库组件转换并忽略表示逻辑转换。此外,他们尝试基于分析或解析SQL语句本身来生成JavaBeans对象。它们只接受静态或准备好的动态SQL语句,其中列名是明确指定的,但不包括非准备动态SQL语句或列名隐含指定的任何语句[28]。有了这个限制,就无法从这些SQL语句中提取输出参数(列名),因此这些工具由于信息不足而无法生成JavaBeans对象。最后,在编程语言翻译方面进行了大量的研究工作,例如C到RPG [3]或PL / IX到C [17],Pascal到C,Cobol到OO-Cobol等等。与那些翻译单片系统的作品相比,我们翻译的源系统要复杂得多。 Web应用程序涉及几个处理系统不同方面的交织语言。这使解析过程变得困难。另外,我们的目标系统以多种语言堆叠在一起。它不仅需要对基础语言进行字面翻译,还需要对遗留Web应用程序中表示的功能进行分层。
3. Java企业应用程序的体系结构模式
除了将源代码从一种语言翻译到另一种语言之外,软件迁移过程还应该允许改善移民系统的质量特性。 对于这项工作,我们专注于移植系统的设计原则,这些原则与新应用程序的可移植性和可定制性的改进有关,因为这些由作为重新构建过程的一部分引入的开放Java标准和技术提供支持。 通过应用这些开放式体系结构,目标移民系统将比原始系统更具可扩展性和可维护性。 以下小节详细介绍了有关这种开放式体系结构优点的问题。
3.1模型视图控制器(MVC)
MVC [11]设计模式是J2EE应用程序中广泛使用的体系结构模式。它分为数据持久性,用户界面和应用程序控制。为此,应用程序被分解为三个核心组件:模型,视图和控制器(图1)。该模型包含应用程序组件的核心功能,如数据库访问和事务管理。它封装了应用程序的状态并在该状态下进行相关转换。通常,模型没有视图或控制器的具体知识。该视图提供了由该模型表示的状态的表示。它管理应用程序的可视化显示。特别是,视图内没有处理逻辑;它只是负责检索可能由控制器先前创建的对象(在模型中)。当模型发生状态变化时应该通知视图。另外,它对控制器不了解。控制器负责与模型的用户交互。它管理请求处理和创建视图使用的任何对象(在模型中)。此外,它根据用户的操作将用户请求转发到视图。在我们提出的重新设计方法中,新系统将在企业Java环境中采用MVC架构。因此,源应用程序被重构为JavaBean(Model),JavaServer Pages(View)和Java Servlet(Controller)。
3.2数据Bean兼容体系结构
数据bean是JavaBeans对象,主要用于在JSP页面中提供数据的逻辑集合。它们不是一组定义明确的Java类,而是一个架构结构。
在提出的迁移框架中,我们定义了一个由三种类型的JavaBeans对象组成的数据bean架构:查询命令bean,数据访问bean和数据bean(图2)。转换程序为从源应用程序中提取的每个SQL语句生成这三个Java对象。查询命令bean是从源程序中提取的SQL语句的实际执行。它是JDBCtrade;的一个实现。它还执行一些特定的操作,例如为SQL语句设置输入参数,构造完整的SQL语句以及将从SQL语句返回的结果集数据映射到数据访问bean(设置输出参数)。数据访问bean是一个可序列化的Java对象,主要包含一组getter和setter方法。它将一组数据从查询命令bean传送到数据bean。数据bean是一个对象包装器,用于将查询命令bean的调用封装在JSP页面中。它还执行一些操作,例如将输入参数设置为查询命令bean,并填充数据访问bean(获取输出参数),以便JSP页面可以使用数据bean显示其包含的数据。
通过利用数据bean架构,目标JSP页面最终从显示逻辑中删除SQL语句。另外,由于数据访问的Java实现封装在数据bean中,因此使用数据bean包装器可以显着减少包含在JSP页面中的Java代码。
3.3以控制器为中心的体系结构
如图3所示,以控制器为中心的体系结构是基于ModelView-Controller(MVC)设计模式的体系结构方法。 在这种方法中,控制器建立在Web系统的顶部,为客户请求处理和网页转发执行集中管理。 更具体地说,前端控制器提供了一个入口点来拦截来自最终用户的HTTP请求。它控制最初由单个网页管理的页面流。换句话说,每个网页不直接链接到另一个页面。而是将其连接到其关联的控制器,然后控制器将该请求转发到目标页面。页面控制流程通常存储在一个平面文件或数据库中,控制器可以访问该数据库以选择相应的Web页面将请求转发到[29]。
为此,页面管理变得更简单和容易。例如,当页面A更改为页面B时,页面A的所有链接都会中断,直到更新这些链接。在传统的Web站点上,如图4的第1部分所示,链接引用由各个Web页面维护,我们需要搜索所有页面(页面X到页面Z),这些页面具有对页面A的链接引用并将这些链接更新为B,但是,在一个以控制器为中心的Web站点上,如图4的第2部分所示,我们不需要找到并修改链接引用旧页面的所有页面(页面X到页面Z)(页面A )。相反,我们只需要更新控制器维护的页面控制流信息,并将相应的链接引用更改为新页面(页面B)。
与第1部分相比,第2部分明显简化了页面修改过程,并消除了断开的链接或缺失的链接,实际上在大型网站中。除了为页面流提供中央控制之外,将网站适用于以控制器为中心的体系结构允许我们从网页中删除潜在的重复代码。这可以通过在控制器中包含诸如页面访问认证等常用服务来实现。
4.转型框架
拟议的框架是双重的。 首先,它建立了一个关于实施移民工作的阶段性方法。 其次,它根据转换方法来定义转换程序的体系结构。 在本节中,我们将详细描述该框架。
4.1转型方法
为了确保转换过程以系统的方式组织,需要制定Web遗留应用程序迁移到企业Java环境的方法,如图5所示。转换方法中描述的活动以顺序方式执行,整个过程 过程分为三个实施阶段。
阶段1.将数据库访问(模型)与表示逻辑(视图)分开:Web遗留应用程序中的显示组件通常包含SQL语句以实现数据库访问。 因此,第一阶段着重于在传统程序中提取和分析SQL语句。 在这方面,SQL语句功能通过符合数据库兼容体系结构被封装到JavaBeans对象中,从而将模型从视图中分离出来。
阶段2.转换到JSP页面:Web遗留应用程序通常使用专有构造来定制显示页面。 JSP页面被J2EE应用程序用来处理表示逻辑。因此,在第二阶段中,遗留程序的显示元素需要由JSP页面替换,并且使用从阶段1生成的JavaBeans对象的组合。
阶段3.采用以控制器为中心的体系结构:目标是使迁移系统适应现代和可定制的架构模式,如MVC。在这种情况下,第三阶段着重于应用程序控制流的分析,该流程以HTML文件,生成的JSP页面和JavaBeans对象的集合呈现。控制流可以在前两个阶段从移民系统中提取,并最终提供一个生成控制器组件的路线图。
4.2转换架构
上一节概述的转换方法由三个子进程组成,即数据库访问封装(阶段1),表示逻辑转换(阶段2)和JSP页面重构(阶段3)。每个子流程都由一个共同的转换模型支持,该模型由五个不同的层组成,这些层基于再造活动。如图6所示,所提出的模型分别包括从顶层到最底层的源系统层,软件分析层,信息提取层,新代码生成层和目标系统层。源系统层(每个转换过程从其开始)代表将要重新设计的软件应用程序。软件分析层侧重于以适当的抽象级别来表示正在分析的系统的源,例如以抽象语法树(AST)的形式。信息提取层旨在通过应用于在软件分析层生成的源代码表示的一系列分析步骤来提取相关事实。新的代码生成层支持自动生成新的应用程序。每个转换过程结束的目标系统层代表基于迁移方法的新创建的平台。这种分层设计方法产生了图7所示的整体转换架构,并在以下各节中进行讨论。
4.2.1数据库访问封装和演示逻辑转换架构
数据库访问封装和表示逻辑转换关注迁移过程的不同方面。但是,两种转换都是通过在源系统层选择相同的旧Web应用程序来启动迁移任务,并使用相同的工具在软件分析层分析源系统。然后,它们可以在源代码表示的生成之后独立执行,并且独立于目标语言的选择。因此,我们将数据库访问封装和表示逻辑转换组合到一个单一架构中,以简化转换工作的实际实现(如图7的左侧部分所示)。在软件分析层中,语言分析器读取源系统层提供的源代码,并根据源语言语法识别其结构。它由两个子系统组成:一个将输入字符串分解为令牌的词法分析器和一个发现程序分层结构的语言分析器。分析器的输出是一个抽象语法树(AST),它存储输入程序的中间表示[27]。语言分析器还为AST提供了一个应用程序接口(API)。 SQL信息提取器和显示信息提取器使用此API来访问来自AST的信息。
信息提取层中有两个提取组件:作为数据库访问封装过程一部分的SQL信息提取器和作为演示逻辑转换过程一部分的显示信息提取器。 SQL信息提取器遍历软件分析层中源程序生成的AST,并收集基本信息,如SQL语句,输入参数和输出参数。因此,它会生成一个
全文共10659字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[14353],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。