1.4 面向构件的发展趋势

发表于:2007-06-12来源:作者:点击数: 标签:
这一切都在发生急剧的变化。 ——尼葛洛庞帝,《数字化生存》 随着技术和时间的发展,面向构件也有了一些新的发展趋势,这些趋势受到来自软件产业内部、客户以及市场等多方面因素的影响。我们重点研究面向构件 开发 领域的三个趋势:模型驱动的软件开发趋势

这一切都在发生急剧的变化。

——尼葛洛庞帝,《数字化生存》

随着技术和时间的发展,面向构件也有了一些新的发展趋势,这些趋势受到来自软件产业内部、客户以及市场等多方面因素的影响。我们重点研究面向构件开发领域的三个趋势:模型驱动的软件开发趋势、构件服务化趋势,以及构件业务化趋势。

模型驱动的软件开发趋势

面向对象的分析与设计(OOA&D)方法的发展在20世纪90年代中期出现了一个高潮,UML是这个高潮的产物。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融和了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划——就像建筑工人使用的建筑设计图一样。

目前UML已经发展到UML 2.0版本,这标志着模型驱动开发时代的到来。UML 2.0增强了建模语言的可扩展性。在2.0版本中,各种图的描述功能更强(例如形式化表示算法行为的“状态机”)。在新版本中,过程和数据的各种形式化表示之间的关系也被定义得更加清晰。

MDA是“模型驱动构架(Model Driven Architecture)”的缩写,它是由OMG定义的一个软件开发框架。其关键之处在于,模型在软件开发过程中扮演了非常重要的角色。在MDA中,软件开发过程是由对软件系统的建模行为驱动的。

模型从某一个建模观点出发,抓住事物最重要的方面而简化或忽略其他方面。模型包含两个主要方面:语义方面的信息和可视化的表示法。语义方面,模型表达一种逻辑,一种业务描述。可视化的表达方式可以用方便使用者观察、浏览和编辑的形式展示语义信息。

听起来比较复杂,其实广义上讲任何编程语言都是一种模型语言,一段代码就是一节模型。只不过大家现在讲的模型,又更加抽象一步,通过图形、表格、XML,而不是代码来描述。

从现在的情况看,MDD(Model-Driven Development,模型驱动开发)的发展已日臻成熟,不仅Together、Rose等工具在不断完善,普元等国内致力于国产中间件的厂商推出的相关产品也相当成熟了。《大规模基于构件的软件开发》的作者Alan Brown总结了MDD的发展历程(参见图1.1)。

图1.1  模型驱动的发展历程

图片来源:IBM developerWorks网站

从图1.1可以看出,MDA是MDD发展的高级阶段,当前还处在方兴未艾的阶段。其关键在PIM(Platform Independent Model,平台独立模型),它是一个屏蔽了“平台相关技术”诸多细节的模型,但其语义必须完备,否则无法自动生成PSM(Platform Specific Model,平台相关模型)。

关于模型驱动的软件开发趋势的看法,可概括如下:模型在开发中的作用会继续增大,其应用范围会更加广泛、更加深入;模型的分工会产生分化,“隐藏细节”的理念会发展到“隐藏不应暴露的模型”;暴露给用户使用的是符合用户视图的模型。

构件服务化趋势

为了满足客户提出的越来越多的新要求,技术方面的改进也在不断地加快。企业必须快速地适应这种改变,否则就难以生存,更别提在这个动荡不安、竞争激烈的环境中取得成功,而IT基础设施必须支持企业提高适应能力。

因此,企业组织正在从20世纪80年代或更早时期的相互隔离的垂直业务部门,以及20世纪80年代和90年代关注业务流程的水平结构,向新的生态系统业务范例发展。重点是扩展供应链,支持客户和合作伙伴访问业务服务。

为了减少异构性、增强互操作性和适应不断改变的需求,这样的体系结构应该提供平台来构建具有下列特征的构件服务:

◆松散耦合

◆位置透明

◆协议独立

应用基于这样的构件服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术细节。特别地,来自不同实现技术(如J2EE或.NET)的技术规范不应该影响构件服务的用户。通过对已有服务构件的组装又可以创造出新的服务构件。

构件服务使用户在构建企业应用时不再直接面对具体的技术细节的层次,而是通过服务构件的方式来构建应用。这种方式也使得客户的企业应用具有良好的分层架构,能够很好地分离应用的业务逻辑和IT逻辑,不但利于应用的构建,更有益于应用的更改和部署。

服务构件是面向构件的架构中的基本组成元素和基本构建单位,也是我们具体实现业务逻辑的单元。我们可以把它看成是搭建最终应用的积木。可以非常容易地把传统的POJO,无状态会话BEAN等包装成服务构件。

最近,构件服务化趋势已经取得了可喜的成果:发布了服务构件架构规范(SCA③ ,Servcie Component Architecture),它利用了一种新兴的计算趋势,即面向服务架构(SOA),它将IT资产构造为一组执行业务功能的可复用服务。例如,利用这些新标准,贷方可以基于已有的应用程序(这些应用程序将新的房屋所有者的数据——包括信用报告——连接到诸如预定房屋估价和利率锁定之类的过程中)开发出一组互联的“服务”,从而显著降低自动化借贷批准过程的复杂性。通过将应用程序构造为一组服务,IT资产将变得更为灵活,企业也能够在动态的业务环境中更好地调整投资。此外,采用这些新标准还将为企业提供更好的投资保护,因为他们可以使用各种各样的中间件技术来复用服务。

构件业务化趋势

在构件化概念应用的早期,以CORBA、微软公司的DCOM、Sun公司的EJB为构件技术的代表。当时构件的复用体现在用户界面上的构件复用,这个层次上的构件应用确实对当时的软件开发起到了促进作用。随着技术层次构件的积累和成熟,企业应用开发迫切需要的不再是细粒度的技术构件,而是粗粒度的业务构件。以业务构件为中心的面向构件的开发才能真正提升开发的速度、降低开发成本,并改善软件质量

从面向构件到面向业务构件,企业实现了更高层次的应用积累,使应用业务功能模型与耦合度方面更加优化。面向构件技术的构件业务化强调的是粗粒度的构件,是对一个完整业务功能的实现与复用。

【责任编辑:火凤凰 TEL:(010 )68476606-8007】


回书目   上一节   下一节

原文转自:http://www.ltesting.net

...