随着标准和技术、主要行业支持,和最佳实践 —— 所有这些都将 SOA 定位为一个可以帮助公司增加业务灵活性并在全球市场中领先的模型 —— 的发展,面向服务的体系架构(Service-Oriented Architecture,SOA)的概念更加普及。虽然有许多好处,但是许多公司面临着利用当前的开发员工(其中许多人可能缺乏完成该任务所需的知识和专业技术)将当前的应用程序快速且节省成本地重新设计为可复用的服务的挑战。
作为 2006 年 4 月 Rational Edge 中的文章中所介绍的概念的延伸,"Enterprise Generation Language:在当今的现代应用程序中利用现有的 IT 技术和资源",本文概括了 IBM Enterprise Generation Language (EGL) 能够帮助开发团队减少与开发和部署基于 SOA 的服务相关的时间、精力,和金钱的一些方法。在本文的最后,您将会找到一个到示范此新技术的 viewlet 的链接。
迁移到 SOA
现今的大多数 IT 环境是一些不能用透明的方法互相通信的分离的应用程序和平台的混合。面向服务的体系架构帮助公司克服这些分离,并通过让开发团队将这些应用程序作为能够与计算平台无关的可复用服务来设计、装配、部署,并进行管理,以更好地利用当前和未来的应用程序。
不幸的是,SOA 的实现可能是极其复杂的,开发人员想用来作为 Web 服务的许多关键业务应用程序是用传统语言写成的,例如 COBOL、RPG,和 PL/I。复杂性的增加是由于当今许多经验最丰富的开发人员不熟悉 Java/J2EE 和 Web 服务技术。
IBM 的 Enterprise Generation Language (EGL) 是一个高级程序设计语言,它能够让使用 COBOL、RPG、PL/I,和其他第四代语言的开发人员在不作为 Java、J2EE,或 Web 服务技术专家的情况下完整地撰写基于 Java 和 SOA 的功能应用程序。有了 EGL,开发人员将他们的业务逻辑撰写为 EGL 源代码,然后 EGL 工具生成 Java 或 COBOL 代码及需要部署到应用程序上的相应运行时工件。
EGL 隐藏了 Java 平台和相关的中间件程序设计机制的细节,这意味着具有很少的或不具有 Java 和 Web 技术经验的开发人员可以使用 EGL 很容易地创建基于 SOA 的应用程序。“EGL 使得对于那些熟悉传统语言,例如 COBOL 或 RPG 的程序设计人员能够很简单地将他们的应用程序做成 Web 服务,”Sanjay Chandru(北卡罗莱纳州 Research Triangle Park 的 IBM EGL 生态系统团队中的软件工程师)说。“例如,如果程序设计人员拥有一个希望调用的用 COBOL 写的现有应用程序,那么他们可以用 EGL 很容易地开发代码,并且让 EGL 生成调用此应用程序的服务。同样重要的是,EGL 本身具有传统程序设计语言的根源,像 COBOL。因此,许多结构将对 COBOL 程序设计人员是非常熟悉的,可以使他们快速学会并且利用 EGL 语法和概念。”
设立程序设计标准
EGL 提供特性完备的业务语言,抽象出了目标技术的细节。它还通过向各种目标数据源提供一致的规范来简化程序设计模型。
“EGL 提供去掉了了解用于访问底层代码的所有应用程序程序设计接口(API)复杂性的高层次抽象”,Chandru 说。“例如,在过去,想要执行数据访问功能,例如访问消息队列里的消息或 SQL 表中的数据,的程序设计人员,不得不去了解所需要的特殊语言的,将要用于访问消息队列或数据库的所有 API。有了 EGL,我们已经将用于访问消息的各种语句标准化了。因此,不论您想要检索消息队列中的消息,还是检索 SQL 表中的一行数据,您所需要知道的全部内容是 I/O 动词的标准集,例如‘get、add,或delete’,这些是 EGL 中用于访问这些 I/O 类型的。这样,开发人员可以专注于业务逻辑,而不是进行数据访问所需的底层 API。”
简化开发过程
EGL 中所撰写的代码是跨多应用程序和平台可伸缩和可复用的。用 EGL 编写的服务可以从内部或外部调用,并且 EGL 开发的 Web 服务可以在 .NET 领域和 Java 领域内进行访问。
EGL 还简化了开发过程,它提供了易于使用的向导、结构(construct)—— 例如包含 EGL 代码的库 —— 页面处理器、报告处理器,和将创建和消费 SOA 环境中的许多服务所需要的所有步骤自动化的代码构造。
例如,希望在 EGL/JSP(Java Server Pages)中调用 Web 服务的开发人员使用一个简化的过程,该过程需要菜单驱动地创建针对 EGL 服务的 Service Binding Library、一个表示要访问的方法签名的接口,和表示包含信息的数据结构的记录工件。强大的拖拽功能用于创建 EGL/JSP 页,并且用于定制该页中的字段和控件。该拖拽功能还用于将调用 Web 服务的 EGL 方法绑定到页面中的 Submit 按钮上。通过 IBM Rational 工具集所提供的 IBM Websphere Application Server 可以快速地测试并调试完成了的页面。
此功能不仅帮助减少开发时间,而且还能够使没学过 Java 和 Web 服务技术的开发人员很容易地完成手边的任务。“当您将用 Java 或 .NET 所写的服务加入一个 EGL 工程中时,您可以简单地单击右键,并在菜单中选择 'Create an EGL Service Binding Library'”。Chandru 解释说。“EGL 理解导入的 WSDL(Web Services Description Language)文件中的方法签名和数据结构签名,并且创建了用于访问服务的所有相应的 EGL 工件。所以您不需要了解 WSDL 并且不用从头开始创建所有这些数据结构。EGL 通过为您做所有这些事情来减小复杂性。”
确保编码质量
EGL 还有一个内嵌的解释调试器,它能够让用抽象语言层撰写代码的开发人员执行源代码层的调试。调试器让开发人员在应用程序部署之前使用真实数据单步调试抽象程序代码。这意味着实际的代码生成可以推迟到开发人员对测试结果满意时。
另外,开发人员可以简单地通过 IBM Rational Application Developer 或 IBM Rational Software Architect 产品中的 Web services Explorer 功能来测试他们的 Web 服务。或者如果他们愿意,可以使用 EGL 中的拖拽功能将 Web 服务放到 JSP 页面中,并通过一个页面进行访问。
结束语
SOA 的好处是很明显的:它们令企业将它们的应用程序都作为服务,这提高了投资收益。从开发的观点,SOA 复用了现有的 IT 资产,这减少了开发成本并提高了生产率。因此有了 EGL,公司和它们的开发团队可以通过快速并简单地集成并在企业内扩展业务应用程序的方式利用 SOA 的功能。
EGL 技术紧密地集成到包含 IBM Rational Application Developer、IBM Rational Software Architect、IBM WebSphere Developer for zSeries,和 IBM WebSphere Development Studio Client for iSeries® 产品所提供的一组设计和构造工具集上。当结合了 EGL 技术,这些工具就简化了创建、测试、部署,及维护使用 Java、J2EE、Web 服务、SOA,和门户技术的业务应用程序的过程。
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073