引言
近年来,计算机在大型制造业中使用的范围越来越广,已经深入到了企业核心的制造过程中。伴随信息化程度的提高,不同部门问的协同制造越来越被企业所需要,而原先部署在企业各部门的系统都是分割独立的,仅仅能够从数据库的层次上进行信息的交互而无法从业务流程上达到互相的协作。传统的项目管理系统和ERP系统虽然可以在一定程度上解决不同部门间业务的协作,但是针对如航空、航天、军工、船舶等工艺复杂且多品种小批量的生产模式上很难发挥其作用。这些行业产品工艺路线复杂,涉及的资源多,如船舶产品的BOM表通常有数万条至数十万条记录之多。因此在企业制定生产任务时难以兼顾到所有生产车间的任务安排和资源状况,在企业战略层对生产目标产生了偏差。对此需要对企业内的生产任务进行跟踪和及时的反馈,根据各部门和车间的生产能力和生产目标制定任务以及任务的调度。
在这方面国内外进行了大量的研究,如应用分布式人工智能中的多Agent技术和CORBA分布式对象技术与规范,对车间各种异构制造资源进行建模和封装设计。通过对目标的分析,建立了一种考虑成本、交付期和项目优先权的伙伴选择模型。在业务决策上通过描述敏捷虚拟企业伙伴选择群体决策问题中项目之间的联系因素,应用多维决策模型对伙伴选择方案的整体规划,从全局上指导参与企业决策方向,减少冗余环节,提高群体决策效率。
本文针对大型重工企业在多品种小批量的生产模式,提出了基于SOA的生产任务管理模型集成框架,利用SOA在可扩展性、柔性以及分布式上的优势,对不同生产部门中的系统进行任务和资源的服务封装,提供一个组件式的生产任务制定和管理方式。该模型主要体现在对现有企业生产流程的协调处理,可以从不同的企业层次对计划任务进行不同目标的调度,控制的任务粒度细,根据生产目标从生产依赖的资源出发协调生产任务。
1 基于SOA的资源驱动工作流集成框架
为了支持网络环境下多部门的协同制造,本文采用了SOA技术,通过SOA把各个部门的生产业务封装成各种服务,同时对相应的资源也进行封装,然后把服务和资源进行发布和注册。企业计划管理部门通过整合各部门间的服务来制定相应的生产任务,并引入工作流管理机制对其任务进行调度和执行控制旧。,逐步建立起一个以服务和资源为基础,由资源状态驱动的协同制造生产模式。本文提出的生产任务管理集成框架在现有的工作流的执行过程模块上进行改进,使其能够提供SOA服务调度的功能。其结构可以用图1来表示。
图1 基于SOA的资源驱动工作流集成框架
(1)基础数据层
提供制造过程中的各种资源,包括物质数据库、人力数据库、设备数据库、生产工艺数据库等。由于各个部门都存在遗留系统,因此基础数据通常存在于各种异构的数据库中,并且由遗留系统进行管理。
(2)生产过程层
该模块提供生产部门对自身生产过程和资源的封装以及发布,同时通过Web服务负责接受服务调用,执行服务所描述的生产过程,对其所管理的资源进行状态跟踪,及时反馈给服务调度层,为其调度提供资源基础。
对资源和服务进行封装主要为了解决制造资源的异构性问题,根据生产目标着重描述其主要关注的资源信息,并精确描述生产任务对资源的需求,实现资源在动态变化环境中的可跟踪性。
(3)服务调度层
提供灵活的服务获取、组合及调度的功能。从UDDI中获取生产部门提供的服务,快速制定新的生产任务。当生产任务发生变化时,把其中的服务进行替换以完成对任务的修订。同时在任务的具体执行过程中,由依赖的资源执行对任务的调度,通过资源驱动的机制来满足不同生产任务的生产目标,通过工作流的执行对具体服务的调用来实现对生产过程的控制。其资源管理可以识别不同部门间的相同资源,并对其进行整合,消除资源信息的冗余,优化资源分配。在该模块中还提供了服务组件管理、资源管理、任务管理、日志管理、工作流监控等API,可以进行多种具体应用的操作。
(4)应用层
主要是进行生产任务的制定以及对生产任务进度的跟踪,根据系统外部的变化及时调整企业生产任务,并反在该框架下,任务的生命周期可以描述为:基本操作过程描述一制定生产任务一模拟调度计算一执行任务。在系统中,用户对各个过程进行监控,通过消息订阅机制完成不同系统间的消息传递过程。本文第二部分就这些方面进行论述。
2集成框架主要技术
2.1资源和服务模型
在实施该系统前,必须对企业内分布在各个部门系统中的资源建立统一的抽象模型。本文结合船舶制造业的特点,对企业生产部门中的资源、服务和生产任务建立了抽象模型,并且可以根据实际车间的生产情况对模型的中的资源和服务进行目标评价。首先做如下定义:
定义1资源R(Resource) 是生产任务的参与者,包含了人员、设备、原桔料或其集合等具有独占性的资源,他们提供了生产所需要的必要条件,是企业生产车间的制造实体。
定义2服务S(Service) 是对具体车间零部件生产任务的抽象描述,是生产工艺完成具体零部件的加工任务中不可分割的最小单元。对S可以形式化描述为S={T,RI,R0}。其中T为过程所需要的时间;RI为过程中依赖或者消耗的资源;RO为过程生成的资源。企业内部各个组织的生产过程通过服务来表现。
s和R之间存在着对资源的候选关系,不同s对不同的候选R根据车间的制作能力对目标的执行能力不同,因此对RI可以用集合来表示RI1={R11...R12...,R1n}。R1n表示为RI1的第n个候选资源。对不同的候选资源进行指标因素评价(采用层次分析法,确定每种候选资源的优先级,从高到低分为ABC三等。
通过以上的模型就可以在生产车间原有的信息系统之上,获取生产过程和资源进行服务和资源建模,把服务依赖的资源进行等级评判,通过SOA的XML描述方法对原有的系统进行功能扩展。XML描述通过制定的Schema文件即可获取需要的资源和服务,并且发布该信息,图2和图3分别为资源和服务的Schema文件。对资源和服务的描述中使用资源统一标识符(UUID)进行标示,实现服务和资源的统一管理,为后续的资源和服务调用提供基础平台。
图2 service的Schema文件
图3 Resource的Schema文件
2.2生产任务的制定
通过框架的UDDI注册模块,企业各个车间的生产功能都已经以服务的方式集中到一块,计划管理部门通过对车间提供的服务进行组件式的组合来制定任务,并根据产品生产的工艺路线对其服务进行进一步的封装和描述,对生产任务定义如下:
定义3任务T(Task) 是根据产品的生产工艺制定的服务执行路线以及相互的资源。T={S,R,L},其中S为包含的服务的集合,表示为S={s1,s2,...,sn};R为协调所有服务需要额外付出的资源,表示为R={R1,R2,...,Rn};L为各个服务间的业务逻辑关系,L={[s1,(s2,s3),s4,...,sn]}。在任务T中的s同时也可以为某个子任务T,因此任务T可以为一个多层嵌套的任务和服务的集合。
加工工艺规则:业务逻辑由[]和()两种符号表示,[]内的服务si和sj的执行路线根据其在[]中出现的次序决定,()内表示其内的服务不存在次序问题,在满足生产资源的条件下可以由任何一个先执行。
用户在制定生产任务时只需要在服务组件中选择服务并提供服务的执行次序。在创建新任务时可以使用其他任务正在使用的服务并把它加入到新的任务中,并且可以采用独立运行和合并运行两种模式。如图4所示。
图4服务运行模式
独立运行模式中,原先任务不会受到新任务的影响,新任中相应的服务只是使用了一套相同的流程,在任务执行过程中对资源的需求相互独立,相同的服务对不同的任务形成资源的冲突。
合并运行模式中,两个任务共用其中某一服务,使服务为不同的任务提供具体操作,对资源不存在冲突,并且在合理调度下满足不同任务的需要,通过服务的合并提高了业务的整合性。
该任务模型可以通过灵活地增加和删除其中的组件来改变任务的执行过程,这种模型特别适合于柔性的生产任务管理任务制定人员不必太关注每一个服务组件具体的生产过程,通过组件间的相互关系就可以创建一个新的生产任务,并且可以为此开发出不同的生产任务模板,对于相同的生产任务直接使用任务模型就可以创建一个具体的任务。这样从生产任务的不同层次上对任务进行指定,保证了任务制定的正确性和任务执行的及时性。
2.3生产任务的执行
生产任务的执行即是其服务的执行过程.该过程由工作流来管理,主要是管理和控制工作流过程并且根据事先设置的运行次序进行服务调用。运行最初由用户制定生产任务并通过任务分解过程,提取任务中包含的服务以及资源转化成工作流实例,通过调度算法对实例中的服务进行资源分配计算设置服务的优先级。
在服务等待队列中放置接下来要激活的服务,获取其依赖的资源置于资源依赖队列中,依赖资源通过对资源监控模块进行实时监控,发现服务执行所依赖的资源处于“可使用”状态后激活服务等待队列中的相应服务,使服务进入到执行过程,通过执行过程调用服务,同时把下一个任务放入到服务等待队列中,任务执行过程中生产出的资源通过资源监控提供给其他服务使用。其运行过程可以通过预先的模拟过程进行模拟,修改其中不合理的调度次序最后交由执行调度中心执行。其过程可用图5来表示。
图5任务执行运作图
由于每一个服务都有依赖的资源及需要的数量,根据实际资源的具体数量依赖资源可处于“可使用”和“补充中”两个状态。不同的服务对同一资源的需求量不同,同一资源针对不同的服务会处于不同的状态,因此资源的状态由资源本身数量和具体服务来决定,不同服务根据其优先级来争夺资源。服务对不同候选资源的选择在满足调度情况下使用优先级高的资源。
2.4 消息交互模型
工作流执行过程中需要使用的服务和资源同各个部门或车间系统进行服务的调用完成数据的交互,最终使服务正确的执行。在服务调用中采用了SOA中的标准SOAP协议,它是一种轻量的、简单的、基于XML的协议,它被设计成在Web上交换结构化的和固化的信息。
本文中以SOAP为消息载体采用Publish/Subscriber(发行订阅)的方式处理,生产部门发行自身的资源和服务信息,同时订阅所拥有的服务调用信息。服务调度层订阅调度过程中服务等待队列里所依赖的资源信息。
3验证
Microsoft.NET 3.5平台对SOA提供了良好的技术支持,WCF(Windows Communication Foundation)是Microsoft为构建面向服务的应用程序而提供的统一编程模型。借助这一模型,开发人员可以构建既能跨平台与现有投资集成又能与现有投资交互的安全、可靠的事务处理解决方案。同时,NET 3.5平台还提供了工作流引擎模板,WWF(Windows Workflow Foundation)是编程模型、引擎和工具,提供了可扩展模型和设计器,用于生成为最终用户或跨多个项目重用封装工作流功能的自定义活动,支持面向服务应用程序的复合工作流。
本文论述的基于SOA的生产任务管理集成框架在此基础上进行了系统开发,并且利用上海某造船厂的生产任务案例进行了验证。在船舶的分段制造过程中需要多个组件的加工然后把这些组件焊接成一个完整的分段,如双底层分段制造过程,其主要的流程一般为:胎架制造一安装外板一划纵横构架线一安装纵横构架一安装内底板一划分中心与肋骨检验线一吊环的装焊一火工矫正一密性试验验收,在流程中“划分中心与肋骨检验线”和“吊环的装焊”可以同步进行。在任务的生产过程中需要使用到多个组件,这些组件的加工也可以同步进行。图6为该任务的XML描述片段和项目界面。
图6 XML描述片段和系统界面图
在系统的运行过程中,用户可以随时查看当前任务的进程,在必要的时刻可以进行认为的干预使之适应临时的任务变动。在系统运行过程中对各部门内部的运行过程进行了指导,充分验证了本框架的可行性。
4结束语
本文提出的基于SOA的资源驱动工作流集成框架对现有制造业中服务和资源的整合进行了研究,为构建一个柔性好、可扩展性强、重用性高、支持分布式的任务协调的制造系统提供了一个新的解决方案,在企业的多个系统中搭建了一座信息的桥梁,为企业的协同作业和企业整体计划的实现提供了技术支持,该系统在企业的验证过程申得到了用户的好评。但同时该框架在企业资源的模型以及和服务的关系、服务质量的管理、服务调度算法上还需要有进一步的深入研究,在企业信息化的推进过程中该框架也会得到进一步的完善。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于SOA的生产任务管理集成框架的研究