在线工博会

基于中间件的MES构件的研究及其实现
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
基于“构件”的开发意味着,我们把应用划分成许多小的构件,而这些构件不必自己开发,可以购买第三方的产品-构件,而这些构件,可靠性较高,由于产品化而成本较低。这也意味着将来会产生许多“生产构件的公司”。
1、概 述
1.1 研究背景
在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。
面向对象技术虽然被大家接受,公认为当前的发展主流,然而在实际应用时,还存在着一系列问题。
(1) 模型和概念尚未统一,不同的人对系统和对象的理解不一致,导致了各种对象语言均有很大差异,且语言自身与纯面向对象理论有许多不一致的地方,就难以形成统一的标准和开发规范。
(2) 要求使用面向对象技术的人员素质较高,要掌握的东西很多,如要熟练掌握C++必需了解大量的MFC类库,且要了解每个类的细节。
(3) 面向对象复用仅仅是处于初级阶段,未提出任何模式和规范以及相应的管理机制。
(4) 工程上难以实施。真正用纯面向对象技术来开发大型软件的并不多,实际应用领域中的可复用领域专用构件缺乏;由于对象无统一标准,因此还停留在程序员自己复用,很难共享,更谈不上分布式情况下复用;纯面向对象要摒弃原有的许多技术等。
经过二十多年的研究和实践,人们形成了这样一个共识,对象并不是解决所有设计问题的灵丹妙药,软件工程必须超越面向对象方法,形成以体系结构为中心的新方法。
1.2 国外和国内的现状及发展趋势
软件业是目前最有发展前途的产业,其营业额均以每年20%的速度递增,预计软件业将成为世界第一大产业。
软件构件技术在一、二年内将轰轰烈烈地开展起来。目前国内许多大工程、大项目都纷纷采用这项技术,如863计划近一半的项目、通信方面许多大项目的投标、金融行业的业务处理系统等,都在朝这个方向走。 而国外早就将构件技术应用到实践中去。
美国国防部高级研究项目署建立了"用于易修改的可靠系统的软件技术"项目,研究领域特定的、基于复用的软件工程技术,并建立了三个示范工程项目。美国空军电子系统中心与美国航空航天局合作建立了"可复用防务软件的中央档案库"项目,以促进国防项目中的软件复用。
据预测,今后,软件开发商必须了解主要系统集成商和应用软件开发人员所需要的基本构件,因为他们在引导着构件技术的需求和功能走势。到2003年,所有新开发的应用至少有70%将是基于构件的组装,开发商的市场应变能力也因此得到提高。
2、软件开发的成本模型
2.1 软件开发的目标
在过去的二十年中,为了适应软件项目不断增加的复杂性,软件行业一直不屈不扰探索新的开发方法。我们已经目睹了太多的演讲,改革以及成功与失败的循环往复。虽然软件技术、流程和方法在飞速地发展,但软件本身却依然停留在劳动力密集型的间断,因此,管理人员,工艺,资源和风险的管理技术就具有及为重要的意义。
成功地把握软件项目的成本计划,进度计划,质量计划,是项目取得高利润的关键。我们的目标,就是应用我们的知识,是软件开发组织在软件项目上的投入产出和组织能力方面有明显的改善。
2.2 软件开发的成本模型
软件项目中,软件成本是软件项目的根本,如今,正在使用的软件成本很多,最常用最开放的便于记录的模型Constructive Cost Model(COCOMO),已经在行业中广泛使用了二十年。
COCOMOⅡ成本模型包括大量的参数和技术,可以对各种类型的软件开发项目进行评估,这些参数可以抽象为四个基本的函数:
复杂性:软件开发解决方案的复杂性,通常依据人工生成构件的大小来衡量(源代码和功能点的数量),这些构件用于开发可用产品的功能。
流程:指的是用于生产最终产品的流程,特别是指帮助开发人员避免非增值活动的效果。
团队:指的是软件工程团队的能力,特别是指解决计算机科学领域和手头项目应用领域问题的能力。
工具:指的是团队用于开发的软件工具,也就是流程自动化的程度。
在对工作量进行估计的模型中这些参数的关系可以表示为:
工作量=(团队)*(工具)*(复杂性)(流程)
项目进度可以直接由工作量估计和流程计算得到,工作量的减少通常导致项目进度的缩短,从而减少成本。
2.3 软件开发的构件化趋势
软件工程一直由脑力劳动主宰,集中解决竞争中复杂性不断增长和其他不可预知的问题。我们将软件开发的三代产品的功能特点归纳如下:
60年代和70年代:常规方法公司事实上使用原始语言构造的定制工具,流程和构件。项目性能完全可以预见。但几乎不能达到任何成本、时间和质量目标。
80年代和90年代:软件工程公司使用可重复的流程,通用的工具,约70%的构件使用高级语言进行构建。这些构件30%是商业产品,包括操作系统、数据管理系统、网络和图形用户界面等。
80年代期间,有些公司开始初具经济规模,但是随着应用程序复杂性的增加(主要是向分布式系统的转变),现有语言、技术和工艺已远远不够。
2003和未来:下一代现代经验来自于使用可以控制和可评测的流程、集成的自动化环境和大多数(70%)通用构件。通常,只有30%的构件需要定制构建。
2.4 软件开发的改进方法
从简化的成本模型来看,四个参数(复杂性,流程,团队,工具)对软件领域比较重要,通常的方法,直接控制四个参数,可以减少工作量,通过构件的技术,减少人工编写的代码数量,在大型项目中,用户的要求是复杂的,我们只有抽象成构件,利用软件的复用技术,使用购买的或自己开发的构件,降低开发的规模和复杂性。并提高抽象的级别,使用可视化模型管理复杂性。
3、MES(制造执行系统)构件技术的设计
3.1 软件构件技术
软件行业的工业化趋势导致了软构件的产生。能够像硬件系统那样,将部分软件组合起来构建软件系统,一直是软件行业多年来追求的目标。特别是对于象很多应用软件的开发(例如很多行业和单位的MIS系统),若能结合系统的实际情况充分利用已有的软件构件,将会大大提高生产效率,减少大量的重复劳动。可以说,软构件技术的出现是对传统软件开发过程的一次变革。构件(Component)是可复用的软件组成成分,可被用来构造其它软件。它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。我们可以按多个侧面对构件进行分类:
按开发过程构件可分为分析件、设计件、程序件和数据件。
按功能分,分为三层:基础层为基本数据类构件和系统支撑构件;中间层为各种通用的中间件;顶层为针对各种领域的专用构件或子系统构件。从粒度上看通常底层的粒度为较小,而顶层的粒度为较大。
按使用方式分为动态和静态两种。
按构件的结构分为原子构件及由多个构件聚集的组合构件。
按功能分的划分图:

(图片)

3.2 基于TUXEDO的构件技术
从广义上讲,软构件技术是基于面向对象的,以嵌入后马上可以使用的即插即用型软构件概念为中心,通过构件的组合来建立应用的技术体系。狭义上讲,它是通过构件组合支持应用的开发环境和系统的总称。
TUXEDO是BEA公司的非常成熟的产品它有以下特点:
(1)支持全局事务管理,支持X/Open规范,支持全局的两阶段提交。
(2)分布式应用管理,支持异构环境下的分布应用(如同一应用中有不同的数据库,多个数据源)。
(3)平衡负载。有多台机器做应用服务器时,系统可自动根据每个机器的负载情况决定服务程序在负载小的那一台机器上执行。
(4)进程管理。系统根据需要(客户端请求量)自动增加或减少每个Service的进程数(1个Service可启动n个相同的进程)。
(5)丰富的通信方式。有同步调用、异步调用、管道通信、会话、广播、通知、队列、发布订阅等通信方式,能很好地满足应用开发的要求。
见下图为Tuxedo Server端程序的体系结构:

(图片)

可以看出,Tuxedo的Server端的程序,有其规律性,它分为二部分,一部分为“打开资源”和“Advertise service”,程序启动时就产生,另一部分从接受数据开始,到返回数据为止,而每次的调用使用的是第二部分的程序。为了更能构件化程序,把此程序分为如下的模块:
上面一节已了解到:构件按功能分,分为三层:基础层为基本数据类构件和系统支撑构件;中间层为各种通用的中间件;顶层为针对各种领域的专用构件或子系统构件。
Tuxedo是所有应用模块的基础,为基础层,在此基础上把“程序头模块“,“数据接受模块”,“数据返回模块“ 为各种模块的通用模块(也称摸板程序),为中间件。而逻辑处理模块因其逻辑的不同而不同,如合同接受处理,质量处理,属于各种领域的专用模块,属于顶层的模块。
另外Tuxedo提供了管理Services 的许多函数,在进行封装后,可以在Client端直接管理services, 了解services的运行状况,也能在Client直接编译程序,生成目标代码,这个构件为模块的通用构件。
其架构如下:

(图片)

3.3 MES(制造执行系统)构件技术
MES构件分为原子构件和复杂构件,其中原子构件的结构如下:

(图片)

其中(A):程序头和程序尾和程序体,每个程序是类似的,是控制体,而(B)为业务部分,利用TUXEDO的参数体(FML buffer)来动态传递参数,复合构件并没有直接对应的实现体,其定义部分除了包含对外提供的功能和要求的功能外,还包括了其内部成员构件之间的连接,以及复合构件和成员构件之间的映射关系。
其制作流程如下:
1、首先定义构件的接口规约部分,包括其对外提供的功能和要求的外部功能;
2、确定复合构件所包含的成员构件;
3、建立复合构件内部的成员构件之间的接口连接关系;
4、将复合构件对外提供和要求的功能映射到内部成员构件相应的功能。
4、MES(制造执行系统)构件的使用
4.1 项目的背景
根据ERP与MES的功能定位来看,ERP系统由企业的财务管理、资源计划管理这类综合性管理内容和采购管理、销售管理等衔接供应链两端的购销管理等内容组成;MES系统则将管理的重点放在从订单接收到合同准发的整个生产设计、计划和执行的过程管理。综合的整体性管理和基于产线生产过程的管理是ERP和MES功能分担的基本依据。
4.2 应用系统架构设计
根据以上的定位,设计如下的结构:

(图片)

如图,整个架构,采用三层结构:客户端、应用服务器、数据库端。
客户端只和应用服务器发生数据交换,不和数据库直接发生关系,而中间件和数据库保持常连接,这里客户端分为浏览器端和非浏览器端(使用.net编制)
其非浏览器客户端运行如下:
1) 非浏览器客户端经过windows控键送数据到应用服务器
2) 应用服务器接受数据(也称Services程序接受数据)经过Service 的逻辑业务的运行。如果需要向数据库发出数据需求
3) 数据库把Service所需要的数据给Services
4) Service接受数据库的数据,进行逻辑业务的再计算,返回给客户端
5) 客户端显示数据
其浏览器客户端运行如下:
a) 浏览器客户端经过http向界面服务器发出请求
b) 界面服务器通过java/tuxedo接口包向送数据到应用服务器送数据到发出请求
c) 应用服务器接受数据(也称Services程序接受数据)经过Service 的逻辑业务的运行。如果需要向数据库发出数据需求
d) 数据库把Service所需要的数据给Services
e) Service接受数据库的数据,进行逻辑业务的再计算,返回给界面服务器
f) 浏览器通过jsp 页面显示数据
4.3 应用构件设计
应用服务器端的构件设计:

(图片)

如MES应用架构图,我们按功能分,整个MES分为三层:基础层为基本数据类构件和系统支撑构件;中间层为各种通用的中间件;顶层为针对各种领域的专用构件或子系统构件,基础层包括:xcom通讯构件,tuxedo支持中间件,在windows环境中,还包括封装的DLL文件顶层和中间层是MES的架构的重点,为了达到构件化,使应用程序的独立性化,封装了如上图的构件,下面介绍几个重要的构件。
4.4 冶金MES(制造执行系统)基础框架构件
冶金MES基础框架构件,在应用开发中非常重要,它包括如下:
* 画面风格标准化管理
* 功能键标准化
* 和底层接口的模板化
* 版本的自动更新
* 另外,用户权限判断嵌入摸板程序中,由于所有的应用程序继承摸板程序,因此应用程序画面,自动判断本身的权限,不必每个应用程序判断
4.5 冶金MES(制造执行系统)应用权限控制
为了实现对用户访问权限的控制,我们在设计中引入了用户、组、子系统、画面、按钮和功能的概念。通过对这六个元素间关系的建立和管理,最终建立用户和他所使用的应用功能的对应关系。具体有:
* 用户管理
* 组管理
* 画面功能管理
* 树功能管理
* 用户分配到组的权限管理
* 功能分配到组的权限管理
* 树权限管理
* 提供基础框架构件接口
4.6 冶金MES(制造执行系统)后台应用程序管理
应用程序的管理分为几个部分:
* 动态调整service(最小粒度的程序)和SERVER(运行的程序)的对应关系和程序在库中的位置
* 统计程序的运行次数,和当前的状态,统计程序的程序在系统的的资源。
* 控制程序进入构件库的过程。
5、总结与展望
建立一个好的软件是每个IT公司的目标,在过去的40年里,我们在高级语言,数据库技术,面向对象的方法有了很多的改进,下一个软件革新已经来临,那就是基于“构件”的革新。
基于“构件”的开发意味着,我们把应用划分成许多小的构件,而这些构件不必自己开发,可以购买第三方的产品-构件,而这些构件,可靠性较高,由于产品化而成本较低。这也意味着将来会产生许多“生产构件的公司”。
软构件技术的出现,极大地满足了多个应用领域的要求,使得各种技术形成的软构件可以最大程度地进行重用。这就引出了大规模软件开发所面临的另一个问题:如何建造软构件库结构,并有效地组织和管理。在大型软构件库的支持下,利用现有的、质量好、可靠性强的软构件,按照大规模软件开发的工程规范进行开发,是满足这些大型系统要求的良好途径。现在人们越来越多地寄希望于具有分散和联合处理能力的开放性分布式软构件技术。分布式软构件技术的目标是实现开放的软构件产品,使应用程序能相互操作,降低开发与管理费用。到目前为止,还没有出现一个完整的开放式软构件系统的实施方案。但我们相信,软构件化是软件工业化的必然。 5/10/2005


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站