CN107765655B - 以消息路由系统扩展mes功能的方法、系统及可读介质 - Google Patents
以消息路由系统扩展mes功能的方法、系统及可读介质 Download PDFInfo
- Publication number
- CN107765655B CN107765655B CN201710729544.5A CN201710729544A CN107765655B CN 107765655 B CN107765655 B CN 107765655B CN 201710729544 A CN201710729544 A CN 201710729544A CN 107765655 B CN107765655 B CN 107765655B
- Authority
- CN
- China
- Prior art keywords
- entity
- lineage
- mes
- contextualized
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 238000004519 manufacturing process Methods 0.000 claims description 54
- 238000013461 design Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 abstract description 57
- 238000009795 derivation Methods 0.000 abstract 1
- 230000006399 behavior Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000002131 composite material Substances 0.000 description 4
- 238000013499 data model Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 102000054765 polymorphisms of proteins Human genes 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41835—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41845—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by system universality, reconfigurability, modularity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31372—Mes manufacturing execution system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33273—DCS distributed, decentralised controlsystem, multiprocessor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种扩展包括MES世系情境化实体(MLCE)和命令的领域中的MES功能的方法、系统及程序。该方法包括:选择使要扩展的功能实现的命令;用MLCE使命令情境化以获得实体情境化命令(ECC);扩展MLCE和ECC,以获得扩展MLCE(EMLCE)和扩展ECC(EECC);将命令的第一处理程序和第二处理程序注册至路由系统中,命令的第一处理程序和第二处理程序与MLCE和EMLCE的世系相关联;通过传递包括命令的名称和MLCE或EMLCE的消息来在领域之间进行通信,所述路由系统基于在路由系统中注册的关于第一处理程序或第二处理程序的世系与由路由系统中的消息派生的世系之间的映射来选择用于执行功能的第一处理程序或用于执行扩展的功能的第二处理程序。
Description
技术领域
本发明涉及以基于消息路由系统的系统扩展制造执行系统(MES)功能的方法、系统及程序。
背景技术
众所周知,制造执行系统MES是将制造组织的业务系统(例如ERP) 和生产控制系统整合的信息技术(IT)层。MES通过管理从订单发布点到制造、到产品交付到制成品的生产操作以及通过提供与在整个制造组织和供应链上的生产活动有关的信息来推动制造操作的有效执行。
由几个不同的业务部件或业务服务组成的MES功能在领域驱动设计架构(“Domain-Driven Design(领域驱动设计)”,Eric Evans(FRW)) 的“领域”中实现。
图1示意性地例示了三个领域:第一领域,其定义了用于订单管理的核心领域;以及第二领域和第三领域,其分别定义了两个外围领域或边界情境,即工具管理和质量管理。每个领域与其他领域进行交互,并且协作控制生产并对生产进行说明。可以添加其他领域以扩展核心领域和外围领域与其他部件的交互。
优选地,为实现MES,使用控制反转的原则(“Inversion of Control Containersand the Dependency Injection Pattern(控制反转容器和依赖注入模式)”,MartinFowler)。根据该原则,外围领域(图1的第二领域和第三领域)知道核心领域(图1的第一领域),但核心领域或预先存在的领域不知道外围领域。因为领域中代码的自定义编写部分与传统编程中发生的情况不同地从框架接收控制流,在所述框架中,是自定义代码将过程调用的目的表达为可再用的库以应对通用任务,所以优选控制反转用于MES 实现。控制反转增加了模块性和可扩展性,由于MES的复杂性和对演进/ 适配的需要,这在MES中是非常期望的。
然而,在这方面,因为领域相互互连并捆绑在一起,并且领域之间的互连的高数目确定了功能设计中和源代码中以及代码维护中的复杂度,所以当在MES中使用控制反转时,模块性和可扩展性也受到限制。在这方面,领域的操作以组织的数据的形式被存储在由多个关系约束的也被称为 MES实体的逻辑实体中。当在领域中发生事件时,读取需要对所述事件作出反应的MES实体。
为了简化在功能设计方面和在源代码方面以及在代码维护方面的复杂度,并且为了更好地适应特定工厂的需求,使用已知的消息路由系统。利用该消息路由系统,将领域中共享的MES实体的数据从在数据库中使用的第一数据模型转换为第二数据模型,并且将消息路由系统设置为与所有领域进行通信。在运行时,领域通过消息路由系统彼此交互以控制生产线。
例如,参照图2,示出了源领域和目标领域。诸如远程过程调用的领域间通信对于可扩展性和可维护性而言处于进程外,因此它们要求虚线矩形中的消息路由系统将呼叫传送至其他领域(部件)。在存在作为进程间消息路由系统的所述消息路由系统的情况下,公共远程过程调用包括如下这些步骤:
1.过程调用被提交至消息路由系统;
2.消息路由系统将过程调用路由到已注册的单个过程处理程序以对过程调用进行处理;
3.过程处理程序在请求被满足时发出响应;
4.调用程序接收响应。
消息路由系统是以事件导向的方式——即,不是具有调用其他例程或子例程的例程,而是存在来自事件的依赖关系——来实现领域之间的过程依赖关系的软件引擎。消息路由系统接收事件并且将其分派到适当的领域。对于每个领域,适配器(图2中未示出)将事件调整为由不同领域使用的协议。
因此,利用基于消息路由系统的架构,避免领域之间的直接通信,并且获得MES中的复杂度的一定程度的降低。
然而,该类型的消息路由系统不适于克服与领域的扩展或专门化相关联的其他问题。实际上,由于制造组织的演进,领域可能需要对功能需求或基础设施需求进行精细调整或修改。另一方面,由于制造组织的相应专门化,核心领域可能需要被扩展或被专门化。
下面在此提出的两个使用案例“1”和“2”代表了对领域进行扩展或专门化的场景以及问题。
在图3中示意性地示出了第一使用案例:复合架构中的领域1(核心领域)处理生产订单管理;领域1使用FreezeBOP命令来检查一些安全约束并且使从工艺过程清单(BOP实体)开始的生产订单(WorkOrder实体) 的结构实例化(冻结)。在该使用案例中,因为期望修改FreezeBOP命令的行为(功能)以便它也声明新WorkOrder实体中的BOP实体的新属性,但由于当FreezeBOP命令被调用时,框架仍然与未修改的BOP实体相关,所以这是不可行的,因此当属性被添加至BOP实体中时会出现问题。
在图3A中示意性地示出了第二使用案例:复合架构中的领域2(核心领域)处理生产订单管理,特别地,操作启动命令(StartOp命令)检查一些安全约束并且将包括在生产操作中的所有任务的状态设置为活动。
在该第二案例中,当专门用于某个设备的自动启动的新任务实体被添加时,会出现另一个问题:在将任务的状态设置为活动的默认行为之后,当包含操作被启动时,任务将调用特定逻辑功能来执行工具激活。这是由于事实上由框架调用的操作启动命令不知道新任务实体的存在。
此外,还存在如下场景:使用案例“1”和使用案例“2”被独立地(单独地或同时地)遇到,并且必须被解决。
在图4和图4A中示出了根据现有技术的消息路由系统扩展在上述使用案例“1”和使用案例“2”中的MES功能的方式。
给出了分别与图3的核心领域1和图3A的核心领域2对应的领域的较新版本,如具有MES领域3的图4和具有MES领域4的图4A中示意性示出的。换言之,MES功能的适配是通过实施旧逻辑功能(领域1和领域2)和新逻辑功能(以及领域3和领域4)来实现的。根据该方法,领域1和领域2的扩展是通过重写进行的,这不能解决简化系统和代码的复杂性和维护的问题。实际上,除了替代默认端口/适配器之外,基于消息路由系统的架构中没有环境可供使用来提供默认领域,并且没有用以部分地或完全地扩展领域的技术;仅适配器和端口可以被添加、替换或从整体场景中删除。
另一方面,现有技术中已知的框架允许根据实体、命令和事件来设计领域。在这样的框架中,功能块模型使领域有界,以便它们可以为下一个实现提供基础。例如,离散库功能块可以用作机电一体化(即机械+电子) 功能块的基础,而机电一体化功能块进而可以作为特定项目的基础。然而,因为该已知的框架仅允许扩展实体的属性,而命令和事件不能被扩展,所以当需要扩展MES功能时,该已知的框架也是有限的。因此,所提出的用以扩展MES功能的唯一方法是:实现全新的命令和事件处理程序,并且改变现有的软件来调用新命令和处理程序。
图5和图5A示意性地示出了在已知框架中如何在上面提到的使用案例“1”和使用案例“2”中适配MES以支持MES功能的扩展:开发了领域6 和领域7,这扩展了旧领域1和旧领域2中的经修改的实体,并且还开发了包括旧行为和新行为(功能)的新命令。旧领域不允许再被调用,它们仅为新领域6和新领域7提供基础。
就命令被涉及而言,基于消息路由系统的现有技术方法依赖于将命令调用传递至为此目的而注册的一个命令处理程序的路由。例如,在使用案例“1”中,命令调用FreezeBOP包括必须对其执行命令的BOP ID和 WorkOrder ID,并且用消息路由系统的类型“FreezeBOP”的路由关键字呈现给消息路由系统。消息路由系统激活为“FreezeBOP”注册的唯一命令处理程序来接受该确切的路由关键字。在使用案例“2”中,命令调用StartOp 包括必须对其执行命令的Operation ID,并且用类型“StartOp”的路由关键字呈现给消息路由系统。消息路由系统激活注册的与“StartOp”相关联的唯一命令处理程序来接受该确切的路由关键字。在StartOp命令处理程序的代码内,对于操作中的每个任务,包括必须对其执行命令的Task ID的命令调用StartTask用类型“StartTask”的路由关键字呈现给消息路由系统。消息路由系统激活用主题“StartTask”注册的唯一命令处理程序来接受该确切的路由关键字。
由于上述限制,根据现有技术的扩展MES功能的命令经受如下缺陷。
基于功能的设计:用于基于消息路由系统架构来设计MES的软件工具不提供设计多态命令的可能性,因此软件工程师必须意识到这些限制而不要去设计不支持的模式。
依赖关系尽头(hell):在任何领域中,依赖于旧功能的例如依赖于上面给出的示例中的FreezeBOP(例如,FreezeProc命令)的所有未改变的命令,将通过调用较新的命令来启动后面版本中包含的新逻辑功能;为了避免这种情况,所有依赖代码都必须重新加工。
代码重复和死代码:如果例如基于关于两个版本共同的安全约束的行为(功能)的基本代码更改,则代码将必须在两个版本上进行修改。否则,即使版本1代码不再有用,例如在过时的情况下,它将仍然存在,但不在子序列构建中使用。
不透明函数调用:因为启用FreezeBOP命令调用的领域仅具有命令调用隔离接口的证据,所以它们将必须确保使所有版本的命令和实体一致。
圈复杂度:由于某些情况需要开发人员在现有代码旁边编写较新或专门的代码,因此如果行为(功能)必须扩展一次以上,则必须考虑所有组合,从而调用一组复杂的嵌套条件。由于不同的原因,开发人员将不得不修改相同的代码段。
图6示意性地示出了根据现有技术的被两个外围领域覆盖的核心基础领域。
在本发明的基础上的技术问题是:支持消息路由系统中的MES功能的扩展和/或专门化,特别地使用领域驱动设计来支持这样的专门化,降低在功能设计方面和在源代码方面以及在代码维护方面的复杂度,避免代码重复或死代码,简化依赖关系,以及将新领域与先前的领域或预先存在的领域进行整合。
发明内容
根据本发明,上面提到的技术问题通过如下来解决:一种基于消息路由系统来扩展在计算机管理的制造执行系统(MES)中的制造执行系统 (MES)功能的方法,所述计算机管理的制造执行系统(MES)用于控制分立生产线和/或机动车制造业,其中
MES功能在用于设计制造执行系统(MES)的领域驱动设计的领域中实现,该领域包括至少MES世系情境化实体(lineage contextualized entity)和命令,其中,所述世系情境化实体的世系是MES世系情境化实体的递归解析的继承字符串,并且其中,MES世系情境化实体的情境 (context)是其中定义了实体的具有预定边界的领域的模型,
该领域被编程为通过消息路由系统的消息与MES的领域驱动设计的至少另一领域进行通信,所述方法的特征在于:
选择使要扩展的功能实现的命令;
用MES世系情境化实体使命令情境化,以获得实体情境化命令,所述情境化步骤包括将实体情境化命令封装并隐藏到MES世系情境化实体中;
扩展实现所选择的功能的MES世系情境化实体和实体情境化命令,以获得与扩展的功能对应的扩展MES世系情境化实体和扩展实体情境化命令,所述扩展步骤包括将扩展实体情境化命令封装并隐藏到扩展MES 世系情境化实体中;
将命令的第一处理程序和命令的第二处理程序注册至消息路由系统中,命令的第一处理程序与所述MES世系情境化实体的世系相关联,命令的第二处理程序与所述扩展MES世系情境化实体的世系相关联;
其中,所述领域通过消息路由系统与至少另一领域的所述通信包括在消息路由系统上从领域传递消息,该消息包括命令的名称以及MES世系情境化实体或扩展MES世系情境化实体,并且其中
消息路由系统基于在消息路由系统中注册的关于第一处理程序和第二处理程序的世系与由消息路由系统中的所述消息派生的世系之间的映射来选择用于执行功能的第一处理程序或用于执行扩展的功能的第二处理程序。
有利地,根据本发明的方法,尽管命令使用领域驱动设计中的非多态范例来定义,但是它可以通过被情境化至实体并且与实体一起扩展来提供有多态行为,即提供功能或扩展的功能。更具体地,实体和命令都使用非多态范例例如不是面向对象的范例来定义。实体被提供有世系,即具有与实体相关联并适于被递归地处理以确定与该实体所继承的其他实体相关联的子字符串的字符串。实体被限定至情境。例如,实体可以是从另一个库继承的库。该实体也在以下描述中用MES世系情境化实体来指示。
命令被封装在实体中,使得命令的代码被隐藏在实体内,并且还被限定至实体被限定至的同一情境。命令的第一处理程序被注册在消息路由系统中。命令实现功能。该命令在以下描述中也用实体情境化命令来指示。
为了对功能进行扩展,首先对实体进行扩展。在这方面,提供用于扩展实体的世系,即与扩展实体相关联并适于被递归地处理以确定与其他实体相关联的子字符串的字符串,所述其他实体包括扩展实体所继承的实体。扩展实体被限定至实体的同一情境。扩展实体可以是从与实体相关联的另一个库继承的扩展库。扩展实体也在以下描述中用扩展MES世系情境化实体来指示。
实现扩展的功能的扩展命令被封装在扩展实体中,使得扩展命令的代码被隐藏在扩展实体内,并且也被限定至扩展实体被限定至的同一情境。扩展命令的第二处理程序被注册在消息路由系统中。扩展命令也在以下描述中用扩展实体情境化命令来指示。
有利地,根据以上描述的方法步骤,因为当使用非多态范例定义的命令被传递至消息路由系统时,尽管实体也使用非多态范例来定义,但是它仍分别根据传递至消息路由系统的实体的世系来执行功能或扩展的功能,所以使用非多态范例定义的命令可以具有多态行为。
考虑到可以执行本发明的方法的相同步骤来实现MES的一个或更多个领域内可用的命令的扩展或专门化,即有利地支持使用案例“1”(扩展) 和使用案例“2”(专门化)修改以提供多态行为,MES功能的“扩展”一词也涵盖了MES功能的“专门化”。
将世系注册至消息路由系统中的步骤包括:存储与第一处理程序相关联的第一字符串,该第一字符串例如通过特殊字符的级联包括命令的名称和MES实体的名称;以及存储与第二处理程序相关联的第二字符串,该第二字符串例如通过特殊字符的级联包括命令的所述名称与MES实体的名称和扩展MES实体的名称。
由消息路由系统中的所述消息派生世系的步骤包括形成通过如下步骤获得的主题字符串:
如果所述消息包括扩展MES实体,则由扩展MES实体派生MES实体,并且通过在消息路由系统中递归地级联MES实体的名称与扩展MES 实体的名称和命令的名称来形成主题字符串;
如果所述消息包括MES实体,则通过在消息路由系统中级联MES实体的名称与命令的名称来形成主题字符串。
该方法可以包括一次或更多次地进一步扩展所述扩展MES实体和所述命令以获得进一步扩展的功能的步骤,
其中,所述注册步骤注册包括进一步扩展的MES实体或由其实例化的实例的世系的命令的另外的处理程序;以及
其中,所述通信使在消息路由系统上传递包括命令和进一步扩展的实体的消息,并且其中,当注册在消息路由系统中的关于另外的处理程序的世系被映射到由消息路由系统中的消息派生的世系时,消息路由系统选择另外的处理程序。
将命令的处理程序注册在消息路由系统中的步骤包括:
将第一字符串和第二字符串(或另外的字符串)作为第一路由关键字和第二路由关键字(相应地是另外的路由关键字)存储在所述消息路由系统的路由表中;
将第一关键字和第二关键字分别映射到第一处理程序和第二处理程序,并且其中
将注册在消息路由系统中的关于命令的世系与由消息路由系统中的所述消息派生的世系进行映射的步骤包括如下步骤:在路由表中找到与主题字符串具有最长字典相似性的路由关键字。
路由表包括至少两个接口,包括:
用于在路由表中注册处理程序的接口“添加功能”;
用于将路由关键字映射到处理程序的接口“路由功能”,其中,“路由功能”通过如下步骤返回与匹配由消息路由系统中的所述消息派生的世系的路由关键字相关联的处理程序:
从路由表中选择以与所述消息中的命令的名称对应的字母开始的所有路由关键字;
在所选择的路由关键字中找到较深的路由关键字,其中,当路由关键字包括比另一路由关键字多的用所述特殊字符级联的MES实体时,路由关键字比所选择的路由关键字中的另一路由关键字深,所述较深的路由关键字对应于最大程度扩展的功能;
返回与较深的路由关键字相关联的处理程序。
所述领域中的每个领域是领域驱动设计(架构)的领域。
在本发明的一个方面,领域驱动设计架构包括多个服务器,每个服务器实现所述领域中之一并且通过消息路由系统与其他服务器进行通信。
所述领域中的每个领域属于领域驱动设计架构的第一层,并且消息路由系统属于所述领域驱动架构中相对于第一层在较低级别处的第二层,其中,第二层包括命令的处理程序,并且消息从不知道处理程序的第一层传递至消息路由系统。
每个命令使用实体和MES实体进行寻址。
以上确定的技术问题也通过如下来解决:一种基于消息路由系统来扩展在计算机管理的制造执行系统(MES)中的制造执行系统(MES)功能的系统,所述计算机管理的制造执行系统(MES)用于控制分立生产线和 /或机动车制造业,其中
MES功能在用于设计制造执行系统(MES)的领域驱动设计的领域中实现,该领域包括至少MES世系情境化实体和命令,其中,该世系情境化实体的世系是MES世系情境化实体的递归解析的继承字符串,并且其中,MES世系情境化实体的情境是其中定义了实体的具有预定边界的领域的模型,
该领域被编程为通过所述消息路由系统的消息与MES中的领域驱动设计的至少另一领域进行通信,所述系统的特征在于包括:
用于选择使要扩展的功能实现的命令的装置;
用于用MES世系情境化实体使命令情境化以获得实体情境化命令的装置,用于情境化的装置包括用于将实体情境化命令导入MES世系情境化实体的一部分的工具,实体情境化命令隐藏在MES世系情境化实体内;
用于扩展实现所选择的功能的MES世系情境化实体和实体情境化命令以获得与扩展的功能对应的扩展MES世系情境化实体和扩展实体情境化命令的装置,所述用于扩展的装置包括用于将扩展实体情境化命令导入扩展MES世系情境化实体的一部分的工具,扩展实体情境化命令隐藏在扩展的MES世系情境化实体内;
用于将命令的第一处理程序和命令的第二处理程序注册至消息路由系统中的装置,命令的第一处理程序与MES世系情境化实体的世系相关联,命令的第二处理程序与扩展MES世系情境化实体的世系相关联;
用于在消息路由系统上从领域传递消息以通过消息路由系统在所述领域与至少另一领域之间进行通信的装置,所述消息包括命令的名称以及 MES世系情境化实体或扩展MES世系情境化实体,其中
消息路由系统被编程为:检查在消息路由系统中注册的关于第一处理程序和第二处理程序的世系与由消息路由系统中的所述消息派生的世系之间的对应关系,并且基于所述对应关系来选择用于执行功能的第一处理程序或用于执行扩展的功能的第二处理程序。
该问题还通过以下来解决:一种计算机程序,包括指令,所述指令在程序由计算机执行时,使计算机执行上述方法的步骤。
此外,一种包括指令的计算机可读介质也适于解决上面提到的技术问题,所述指令在由计算机执行时,使计算机执行该方法的步骤。
附图说明
现在将参照附图以优选但不排他的实施方式来描述本发明,其中:
图1示意性地示出了具有相应依赖关系的三个MES部件。
图2示意性地示出了消息路由系统。
图3示意性地示出了具有命令和实体的MES部件。
图3A示意性地示出了具有命令和实体的另一MES部件。
图4示意性地示出了根据现有技术的方法的图3的MES部件的扩展。
图4A示意性地示出了根据图4的现有技术的方法的图3A的MES部件的扩展。
图5示意性地示出了根据另一现有技术的方法的图3的MES部件的扩展。
图5A示意性地示出了根据图5的现有技术的方法的图3A的MES部件的扩展。
图6示意性地示出了根据图5A的现有技术的方法的图5A的MES部件的进一步扩展。
图7示意性地示出了根据本发明的方法被编程的图3的MES部件。
图7A示意性地示出了根据本发明的方法被编程的图3A的MES部件。
图8示意性地示出了根据本发明的方法的图7的MES部件的扩展。
图8A示意性地示出了根据本发明的方法的图7A的MES部件的扩展。
图9示意性地示出了根据本发明的用于使命令情境化的用户界面。
图10示意性地示出了LegacyQualityTask的实体世系。
图11是用于评估类型t的世系的框图。
图12是用于优先级路由表的类图。
图13是用于优先级路由表的流程图。
图14是用于优先级路由表添加的序列图的示例。
图15A和图15B是用于优先级路由表路由的序列图的示例。
图16是图8、图8A的简化版本。
图17示意性地示出了根据本发明的方法基于提出多态行为的可能性,图8A的MES部件被两个外围领域(MES部件)替换的进一步扩展。
图18示意性地示出了根据现有技术的方法分别具有用于激活实体的相应命令和扩展命令的基础实体和扩展实体。
图19示意性地示出了根据本发明的方法的图18的基础实体和扩展实体以及用于激活基础实体或扩展实体的单个命令。
具体实施方式
参照图7至图17,在下文中描述根据本发明的以消息路由系统扩展 MES功能的方法和系统的实现的示例。
制造执行系统MES是将制造组织的业务系统(例如ERP)和生产控制系统整合的信息技术(IT)层。MES通过管理从订单发布点到制造至产品交付至制成品的生产操作以及通过提供与在整个制造组织和供应链上的生产活动有关的信息来推动制造操作的有效执行。
在MES中,MES功能在领域驱动设计架构的“领域”中实现。领域的操作被存储在受多个关系限制的逻辑实体(也称为“MES实体”)中所组织的数据中。当在领域中发生事件时,读取处理该事件所需要的MES实体。领域之间的交互是以基于消息路由系统的架构为基础的。例如,领域之间共享的MES实体的数据从数据库中使用的第一数据模型转换为第二数据模型,并且消息路由系统被设置成与所有领域通信。在运行时,领域通过消息路由系统相互交互以控制生产线。
根据本发明的方法的计算机管理的MES特别适用于控制分立生产线及机动车制造业(例如包括执行操作的多个站的机动车装配线)中的制造过程。在机动车装配线中,对于每个站,配置有一个或更多个工作场所,每个工作场所包括用于生产操作的配置。在运行时,每个工作场所包含其生产订单所呈现的车辆或车辆的一部分,其中每个生产订单包含必须对车辆执行的实际操作。每个工作场所处的操作员终端可以显示与工作场所相关联的生产订单的操作、其状态以及其他相关信息。
MES所包括的功能为资源分配及状态、调度生产订单、数据收集/获取、质量管理、维护管理、性能分析、操作/详细进度表、文件控制、过程管理和产品跟踪。
消息路由系统是一种软件引擎,其以事件导向的方式实现领域之间的过程依赖关系。换言之,代替具有调用其他例程或子例程的例程,事件之间存在依赖关系。消息路由系统接收事件或消息并且将事件或消息调度到适当的领域。对于每个领域,适配器使事件(或消息)适应不同领域所使用的协议。消息路由系统使得能够避免领域之间的直接通信,并且通过将领域间通信委托给由消息路由系统实现的较低层次来得到复杂度的一定程度的降低。
对于由于制造组织的发展而引起的功能或基础设施的需求以及由于组织中的制造过程的相应的扩展或专门化而引起的支持领域的扩展或专门化,改进通过消息路由系统的领域间通信以支持领域的精细调整或领域的修改。
该方法适用于应用于其中不同的领域借助于基于消息路由系统的层进行交互的复合架构。当领域需要执行“远程过程调用”时,消息路由系统通知所有领域必须执行任务(过程调用)并且能够执行任务的单个领域通过事务即基于过程处理来执行。
可以使用西门子公司(Siemens Corp.)的Simatic IT UAF作为用于上述复合架构的基础。Simatic IT UAF适用于以非事务性方式管理路由到不止一个目标MES部件(领域)的事件。
根据本发明的方法,还支持事务执行。因此,Simatic IT UAF可以适用于实现事务执行以及支持非事务执行和事务执行两者。
更具体地,又根据本发明,尽管命令和实体不是以多态范例 (polymorificparadigm)定义,但是将多态性提供给消息路由系统。
为了根据本发明的方法来扩展领域,与现有实体的语义密切相关的命令(例如,现有技术的在图3、图3A中示出的命令)被识别并被封装到现有实体中。
没有逻辑连接的命令和实体保持不变。例如,参照图7和图7A,对于命令FreezeProc和WorkOrder(图7)以及StartOp和Operation实体(图7A),保持不变。
用可扩展性重构来表示这些操作,并且使得能够将图3和图3A的领域分别转换成领域8、领域10。
当存在扩展包含在现有领域8、领域10中的实体的需要时,执行以下步骤:
a)识别要扩展的实体;
b)扩展相关部分,包括属性或命令。
例如,代替图4、图4A中所示的根据现有技术方法获得领域3、领域 4作为领域1、领域2的扩展,并且代替根据由现有技术公开并且参照图 5、图5A描述的另一过程获得领域6、领域7作为实体1、实体2的扩展,根据本发明的方法,领域9、领域11是通过领域1、领域2的扩展性重构获得的领域8、领域10的扩展的结果。
提供图形用户界面以支持命令调用的引入。例如,从在Simatic IT UAF 中已经可用的使得开发人员能够用属性定义实体的图形用户界面(Graphic User Interface)开始,图形用户界面适用于允许开发人员添加命令调用,优选地包括以下特征:
借助于键盘或鼠标用现有实体使命令情境化的特征;
在画布(canvas)上将实体情境化命令与属性一起可视化的特征。
图9是根据本发明的方法的方面的用于使命令情境化的图形用户界面的示例。
为了支持MES功能的扩展,还提供了以下步骤:
启用或开发能够传递命令调用的路由,优选地包括以下实体情境化的命令:
*命令处理程序主题:“<MethodName>.<EntityLineage>.#”
*命令调用路由关键字:“<MethodName>.<InstanceLineage>.”或
*命令调用路由关键字:“<MethodName>.<EntityLineage>.”,
其中<MethodName>是命令的名称。
实体的世系是递归聚集实体的名称和该实体的基础实体的世系的字符串。
图10示意性地示出了LegacyQualityTask实体的世系(在图10中,实体用“类”表示)。
在给定的层次结构中,LegacyQualityTask的世系是:“Task.QualityTask.LegacyQualityTask.”。
引用“<EntityLineage>”用于指代编译时的世系,而引用“<InstanceLineage>”用于指代运行时的世系。可以使用两种不同的字符串或命名法将在编译时的实体情境化命令与在运行时的实体情境化命令进行区分。
参照图11的图块,示意性地给出了开始评估实体的世系的过程(在图11中称为“类型的世系”)。
当命令被注册到消息路由系统中时或者当领域将消息传递到消息路由系统作为服务请求(包括命令名称和实体)时,对世系进行评估。在由消息路由系统构成的下层中进行评估,以便于检索要执行的命令的处理程序,其为在包括发出请求的领域的上层中未知的命令。
在下文中,给出了可以实现该过程的一些示例。
路由表存储在消息路由系统中。
路由表可以由具有两个功能的简单界面来表示:
添加功能,以注册命令处理程序;
路由功能,以将路由关键字映射到命令处理程序。
图12示出了优先级路由表(Priority Routing Table)的类图。在命令路由的情况下,任何路由函数返回零或与匹配调用主题的路由关键字相关联的一个处理程序(对于主题匹配和路由关键字分类,参见下面)。
术语“主题”涉及基于从上层中的用于执行命令的领域传递的消息请求在由消息路由系统构成的下层中形成的字符串,这种请求包括该命令的名称和相应的类型(或类或实例)。有利地,上层的领域不知道该命令或消息路由系统将请求转发到的领域;消息路由系统进行输入命令名称和实体,构建要与路由表中的用于检索命令的处理程序(在图中也表示为方法) 的路由关键字相匹配的主题。
在本发明的方法的情况下,路由功能具有返回与匹配调用主题的第一路由关键字相关联的处理程序的能力。
可以基于底层技术以不同的方式实现将主题与路由关键字相匹配的概念。为了简明起见,以下示例采用与使用通用通配符(“#”)相对照的字符串,但考虑到实现消息路由系统的实际工具,可以使用其他实现方式。例如,可以使用广泛采用的商业软件如*RabbitMQ*以用于该目的。
关于主题/路由关键字匹配的实现,注意以下内容。
本发明的方法所需要的使主题与路由关键字匹配的需求可以以满足测试给定主题是否以给定路由关键字“开始”的要求的任意方式来实现。例如,主题“a#”将匹配以“a”开始的任意字符串。此外,根据底层技术,还可以基于不同的约束来使用不同的实现。
另外,根据长度对主题进行分类的概念可以基于底层技术以不同的方式来实现。为了简明起见,以下给出的示例采用字符串长度分类,但也可以使用其他度量。
关于路由关键字分类的实现,注意以下内容。
本发明的命令所需要的对路由关键字进行分类的需求可以以满足测试给定路由关键字是否比另一路由关键字“更深”的要求的任意方式来实现。例如,由三部分组成的路由关键字“a.b.c”比由较少部分组成的路由关键字更深。实现深度的另一种简单方式是长度比较,不考虑内部结构。
关于路由与主题相匹配的第一路由关键字的实现方式,注意以下内容。
在路由函数中用于支持分类提取的算法基于分类字典的使用。对路由关键字进行固有地分类以在运行时获得更快的检索的想法在现有技术中无关紧要而不是必需的。如果被嵌入技术支持,可以使用更好的ad hoc 算法。
优先级路由表(PriorityRoutingTable)的实现代码可以是例如以下形式:
图13示意性地示出了优先级路由表的流程图。
图14是优先级路由表添加的序列图的示例,以及图15A和图15B是优先级路由表路由的序列图的示例。
详细地,参照图8和图16(图16是图8的缩略图),应用不同的情况。
在图7的领域8和领域10的情况下:
将使用类型“<MethodName>.<EntityLineage>.#”的主题注册命令处理程序。
(其中“#”是零或更多个字符的通配符),例如“FreezeBOP.BOP.#”或“StartTask.Task.#”,因为BOP和Task是非派生实体。
命令调用将以类型“<MethodName>.<EntityLineage>.”和“<MethodName>.<InstanceLineage>.”的路由关键字提交给消息路由系统,例如“FreezeBOP.BOP.”或“StartTask.Task.”,因为BOP和Task是非派生实体。
消息路由系统将激活具有与提交的路由关键字相匹配(即字典顺序上“以提交的路由关键字开始”)的派生最深的主题(即字典顺序上最长)的命令处理程序,例如“StartTask.Task.#”匹配“StartTask.Task.”。
在领域9和领域11的实体的扩展的情况下:
由于BOPExt(在领域9中)和ToolTask(在域11中)是分别派生自 BOP和Task的实体,因此可以通过主题“FreezeBOP.BOP.BOPExt.#”或“StartTask.Task.ToolTask.#”来示例同一行为。
由于BOPExt(在领域9中)和ToolTask(在领域11中)是分别派生自BOP和Task的实体,因此同一行为具有诸如如下的路由关键字:当对BOPExt执行调用时,“FreezeBOP.BOP.BOPExt.”;或者当对ToolTask执行调用时,“StartTask.Task.ToolTask.”。同一行为具有诸如如下的路由关键字:当对BOP执行调用时,“FreezeBOP.BOP.”;或者当对Task执行调用时,“StartTask.Task.”。
同一行为具有诸如如下的路由关键字:当对BOPExt变量执行调用时,“FreezeBOP.BOP.BOPExt.”;或者当对ToolTask变量执行调用时,“StartTask.Task.ToolTask.”。同一行为具有诸如如下的路由关键字:当对 BOP变量执行调用时,“FreezeBOP.BOP.”;或者当对Task变量执行调用时,“StartTask.Task.”。
消息路由系统将激活具有与提交的路由关键字相匹配(即字典顺序上“以提交的路由关键字开始”)的派生最深的主题(即字典顺序上最长)的命令处理程序,例如“StartTask.Task.ToolTask.#”在“StartTask.Task.#”之前与“StartTask.Task.ToolTask.”相匹配。
参照图18和图19,参考代码的部分,示出了本发明的方法(图19) 与现有技术方法(图18)相比的差异和优点。
在这两个图中,示出了基础实体“task”和扩展实体“toolTask”。
根据现有技术的方法,一个命令只有一个命令处理程序。因此,为基础实体“task”定义了“activateTask”命令,并且为扩展实体“ToolTack”定义了一个专门化(扩展)的命令“activateToolTask”。
根据现有技术的方法的上述命令具有琐碎的路由关键字“ActivateTask”和“ActivateToolTask”。路由关键字涉及具有不同名称 (“ActivateTask”和“ActivateToolTask”)的命令。
对这些命令的调用被实现为如下:
Platform.CallCommand(new ActivateTask(taskId));
Platform.CallCommand(new ActivateToolTask(toolTaskId));
“ActivateTask”的命令处理程序可以为如下:
“ActivateToolTask”的命令处理程序是“ActivateTask”的命令处理程序的代码重复,添加了特定的代码(下划线):
相对地,根据本发明,一个命令可以具有两个或更多个命令处理程序。在不改变模型(图18中的基础实体和扩展实体)的情况下,新的命令处理程序被声明为链接到ToolTask实体:
调用必须提供一种推断路由关键字(世系字符串)的方式,提供以下之一:
1.实体类型
2.实体的身份
例如,在具有实体类型的包装器装饰命令的情况下:
Platform.CallCommand(new CommandContext<ITask>(new ActivateTask(taskId)));
Platform.CallCommand(new CommandContext<IToolTask>(new ActivateTask(toolTaskId)));
该模型保持相同的末端,新实体的代码不需要定义新的命令。在这方面,根据本发明的方法,没有定义ActivateToolTask。
主题变化如下:
激活任务命令(路由关键字:“ActivateTask.Task.#”)
激活任务处理程序(主题:“ActivateTask.Task.”)
激活工具任务处理程序(主题:“ActivateTask.Task.ToolTask.”)
路由策略将选择与路由关键字相匹配(即以路由关键字开始)的最长的主题。
现有技术的方法中的命令处理程序的主题是命令的名称 (“<MethodName>”),而根据本发明,主题还包括世系 (“<MethodName>.<Lineage>.”)。
在图19给出的示例中,MES世系情境化实体是基础实体“Task”,命令是“ActivateTask”,MES世系情境化实体的世系是“Task”,并且“用MES 世系情境化实体使命令情境化”的步骤通过代码中的包装器装饰命令“CommandContext”实现
Platform.CallCommand(new CommandContext<ITask>(new ActivateTask(taskId)))。
又参照图19,扩展MES世系情境化实体是“ToolTask”,并且扩展实体情境化命令是相同的命令“ActivateTask”,其中“用扩展MES世系情境化实体使扩展命令情境化”的步骤通过代码中的包装器装饰命令“CommandContext”实现
Platform.CallCommand(new CommandContext<IToolTask>(new ActivateTask(tooltaskId)))。
在消息路由系统中,注册了与MES世系情境化实体(Task)的世系相关联的命令(ActivateTask)的第一处理程序(ActivateTask@Task)和与扩展MES世系情境化实体(Task.ToolTask)的世系相关联的命令 (ActivateTask)的第二处理程序(ActivateTask@Task.ToolTask)。
领域通过消息路由系统与另一个领域的通信包括在消息路由系统上从领域传递消息,所述消息包括命令的名称(ActivateTask)和MES世系情境化实体(ActivateTask@Task)或者扩展MES世系情境化实体 (ActivateTask@Task.ToolTask)。
消息路由系统基于在该消息路由系统中注册的关于第一处理程序和第二处理程序的世系与由消息路由系统中的所述消息派生的世系之间的映射来选择用于执行功能的第一处理程序(ActivateTask@Task)或用于执行扩展功能的第二处理程序(ActivateTask@Task.ToolTask)。
下文总结了本发明的方法的优点。
本发明的方法允许:
-尽管使用一个非多态范例来定义命令和实体,但是以类似于面向对象编程(Object Oriented Programming)的方式处理命令调用;
-用新属性扩展现有实体;
-根据领域驱动设计来建模;
-使用整合在消息路由系统中的路由过程,能够传递到适当的过程处理程序(即命令处理程序)。
-即使不使用多态范例,也可以在基于多态的现代架构和消息路由系统架构中利用情境化命令的有效性(power)、简单性和优雅性。这个优点对于不包括情境化命令的消息路由系统架构是明显的。
-模拟OOP设计:
本发明设计的软件工具提供了基于具有多态特征的消息路由系统设计架构的可能性,因此软件工程师可以自由地使用常见或模拟的OOP模式(例如,实现多个调度的访问者模式)。
-基于依赖关系更新的类:
如果某个实体情境化命令在派生实体中没有被替换,则使用新实例的依赖调用者(例如FreezeProc命令)将在任意领域中通过调用旧的命令调用来自动地启动后一版本中包含的新逻辑;依赖性代码行为动态地适应。
-代码重用:
如果基础代码(例如,基于对两个版本相同的关于安全约束的行为) 发生变化,则必须在基础版本中修改代码:派生命令中的第一个调用通常是调用基本命令的调用。如果版本1不再有用,例如在过时的情况下,代码仍将用于子序列生成。
-里氏代换原则(LSP)的适用性:
调用的行为对于开发人员和分析人员将是透明的:新实例将触发新的行为(功能);旧实例将触发旧行为。
在行为尚未被替换的情况下,调用仍将触发旧行为。在行为不能依赖于运行的实例的情况下,调用仍然可行。
-低圈复杂度:
由于所有场景都需要开发人员调整识别出的代码段,所以不需要旧逻辑与新逻辑之间的互锁。
图17是由两个外围领域驱动设计的领域替换的核心基础领域的示意图。
与本发明的方法相关联的其他益处是:
-易于发现技能:
利用典型的OOP功能的可能性使得更容易发现熟练掌握技术的软件工程师,而不需要在具体的设计实践中进行培训。
-在发生变化的情况下,对发展和部署的局部影响:
当行为发生变化时,不需要寻找并且这可以减少执行更改的时间,并且使在软件中引入错误的风险最小化。它还简化了交付到生产环境的过程,原因是更少的模板将必须用新版本替代。
-代码重用:
代码重用可以降低引入回归错误的风险,并且使软件生命周期更容易,从而得到更好的软件质量。
-向后兼容性:
由于旧实例会自动地显示旧的行为,向后兼容性通过不改变源代码来确保,使软件具有更长的使用寿命。
-稳定且小型的软件:
场景在软件更新的每个步骤(创建新类、创建新属性、开发新命令、使用代码)后都是稳定的,因此每个修改都可以逐步进行,并且以较小的步长进行测试。
所需的修改较少并且类的数目不会呈指数增长。更紧凑和更容易的代码更容易维护、降低回归错误的风险。
Claims (11)
1.一种基于消息路由系统来扩展在计算机管理的制造执行系统MES中的制造执行系统MES功能的方法,所述计算机管理的制造执行系统MES用于控制分立生产线和/或机动车制造业,其中
MES功能在用于设计所述制造执行系统MES的领域驱动设计的领域(1)中实现,所述领域(1)包括至少MES世系情境化实体和命令,其中,所述世系情境化实体的世系是所述MES世系情境化实体的递归解析的继承字符串,并且其中,所述MES世系情境化实体的情境是其中定义了所述实体的具有预定边界的所述领域(1)的模型,所述领域(1)被编程为通过所述消息路由系统的消息与所述MES的领域驱动设计的至少另一领域(2)进行通信,所述方法的特征在于:
选择使要扩展的功能实现的命令;
用所述MES世系情境化实体使所述命令情境化,以获得实体情境化命令,所述情境化步骤包括将所述实体情境化命令封装并隐藏到所述MES世系情境化实体中;
扩展实现所选择的功能的所述MES世系情境化实体和所述实体情境化命令,以获得与所扩展的功能对应的扩展MES世系情境化实体和扩展实体情境化命令,所述扩展步骤包括将所述扩展实体情境化命令封装并隐藏到所述扩展MES世系情境化实体中;
将所述命令的第一处理程序和所述命令的第二处理程序注册至所述消息路由系统中,所述命令的所述第一处理程序与所述MES世系情境化实体的世系相关联,所述命令的所述第二处理程序与所述扩展MES世系情境化实体的世系相关联;
其中,所述领域通过所述消息路由系统与至少另一领域的所述通信包括在所述消息路由系统上从至少另一领域(2)传递消息,所述消息包括所述命令的名称以及所述MES世系情境化实体或所述扩展MES世系情境化实体,并且其中
所述消息路由系统基于在所述消息路由系统中注册的关于所述第一处理程序和所述第二处理程序的所述世系与由所述消息路由系统中的所述消息派生的世系之间的映射来选择用于执行所述功能的所述第一处理程序或用于执行所述扩展的功能的所述第二处理程序。
2.根据权利要求1所述的方法,其中,所述将所述世系注册在所述消息路由系统中的步骤包括:存储与所述第一处理程序相关联的第一字符串,所述第一字符串通过用特殊字符级联包括所述命令的名称和所述MES世系情境化实体的名称;以及存储与所述第二处理程序相关联的第二字符串,所述第二字符串通过用所述特殊字符级联包括所述命令的所述名称与所述MES世系情境化实体的名称以及所述扩展MES世系情境化实体的名称。
3.根据权利要求2所述的方法,其中,所述由所述消息路由系统中的所述消息派生所述世系的步骤包括形成通过如下步骤获得的主题字符串:
如果所述消息包括所述扩展MES世系情境化实体,则由所述扩展MES世系情境化实体派生所述MES世系情境化实体,并且通过在所述消息路由系统中递归级联所述MES世系情境化实体的名称与所述扩展MES世系情境化实体的名称以及所述命令的名称来形成所述主题字符串;
如果所述消息包括所述MES世系情境化实体,则通过在所述消息路由系统中级联所述MES世系情境化实体的名称与所述命令的名称来形成所述主题字符串。
4.根据权利要求1所述的方法,包括一次或更多次地进一步扩展所述扩展MES世系情境化实体和所述命令以获得进一步扩展的功能的步骤,
其中,所述注册步骤注册包括所进一步扩展的MES世系情境化实体的世系的所述命令的另外的处理程序;以及
其中,所述通信使在所述消息路由系统上传递包括所述命令和所述进一步扩展的MES世系情境化实体的消息,并且其中,当所述注册在所述消息路由系统中关于所述另外的处理程序的所述世系被映射到由所述消息路由系统中的所述消息派生的世系时,所述消息路由系统选择所述另外的处理程序。
5.根据权利要求3所述的方法,其中,所述将所述命令的所述处理程序注册至所述消息路由系统中的步骤包括:
将所述第一字符串和所述第二字符串作为第一路由关键字和第二路由关键字存储在所述消息路由系统的路由表中;
将所述第一路由关键字和所述第二路由关键字分别映射到所述第一处理程序和所述第二处理程序,并且其中
所述将在所述消息路由系统中注册的关于所述命令的所述世系与由所述消息路由系统中的所述消息派生的世系进行映射的步骤包括如下步骤:在所述路由表中找到与所述主题字符串具有最长字典相似性的路由关键字。
6.根据权利要求5所述的方法,其中,所述路由表包括至少两个接口,所述至少两个接口包括:
用于在所述路由表中注册处理程序的接口“添加功能”;
用于将路由关键字映射到所述处理程序的接口“路由功能”,其中,所述“路由功能”通过如下步骤返回与匹配由所述消息路由系统中的所述消息派生的所述世系的所述路由关键字相关联的所述处理程序:
从所述路由表中选择以与所述消息中的所述命令的名称对应的字母开始的所有路由关键字;
在所选择的路由关键字中找到较深的路由关键字,其中,当路由关键字包括比另一路由关键字多的用所述特殊字符级联的MES世系情境化实体时,所述路由关键字比所选择的路由关键字中的所述另一路由关键字深,所述较深的路由关键字对应于最大程度扩展的功能;
返回与所述较深的路由关键字相关联的所述处理程序。
7.根据权利要求1所述的方法,其中,所述领域驱动设计包括多个服务器,每个服务器实现所述领域中之一并且通过所述消息路由系统与另一服务器进行通信。
8.根据权利要求1所述的方法,其中,所述领域中的每个领域属于所述领域驱动设计的第一层,并且所述消息路由系统属于所述领域驱动设计中相对于所述第一层在较低级别处的第二层,其中,所述第二层包括所述命令的所述处理程序,并且所述消息从不知道所述处理程序的所述第一层传递至所述消息路由系统。
9.根据权利要求1所述的方法,其中,每个所述MES世系情境化实体和命令被一起情境化,并且所述MES世系情境化实体和实体情境化命令具有多态行为。
10.一种基于消息路由系统来扩展在计算机管理的制造执行系统MES中的制造执行系统MES功能的系统,所述计算机管理的制造执行系统MES用于控制分立生产线和/或机动车制造业,其中
所述MES功能在用于设计所述制造执行系统MES的领域驱动设计的领域(1)中实现,所述领域(1)包括至少MES世系情境化实体和命令,其中,所述世系情境化实体的世系是所述MES世系情境化实体的递归解析的继承字符串,并且其中,所述MES世系情境化实体的情境是其中定义了所述实体的具有预定边界的所述领域(1)的模型,
所述领域(1)被编程为通过所述消息路由系统的消息与所述MES中的领域驱动设计的至少另一领域(2)进行通信,所述系统的特征在于包括:
用于选择使要扩展的功能实现的命令的装置;
用于用所述MES世系情境化实体使所述命令情境化以获得实体情境化命令的装置,所述用于情境化的装置包括用于将所述实体情境化命令导入所述MES世系情境化实体的一部分的工具,所述实体情境化命令隐藏在所述MES世系情境化实体内;
用于扩展实现所选择的功能的所述MES世系情境化实体和所述实体情境化命令以获得与所述扩展的功能对应的扩展MES世系情境化实体和扩展实体情境化命令的装置,所述用于扩展的装置包括用于将所述扩展实体情境化命令导入所述扩展MES世系情境化实体的一部分的工具,所述扩展实体情境化命隐藏在所述扩展的MES世系情境化实体内;
用于将所述命令的第一处理程序和所述命令的第二处理程序注册至所述消息路由系统中的装置,所述命令的所述第一处理程序与所述MES世系情境化实体的世系相关联,所述命令的所述第二处理程序与所述扩展MES世系情境化实体的世系相关联;
用于在所述消息路由系统上从至少另一领域(2)传递消息以通过所述消息路由系统在所述领域与至少另一领域之间进行通信的装置,所述消息包括所述命令的名称以及所述MES世系情境化实体或所述扩展MES世系情境化实体,其中
所述消息路由系统被编程为:检查在所述消息路由系统中注册的关于所述第一处理程序和所述第二处理程序的所述世系与由所述消息路由系统中的所述消息派生的世系之间的对应关系,并且基于所述对应关系来选择用于执行所述功能的所述第一处理程序或用于执行所述扩展的功能的所述第二处理程序。
11.一种计算机可读介质,包括指令,所述指令在由计算机执行时使所述计算机执行根据权利要求1至9中任一项所述的方法的步骤。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16185260.3A EP3287858A1 (en) | 2016-08-23 | 2016-08-23 | Extending mes functionalities in a bus-based architecture |
EP16185260.3 | 2016-08-23 | ||
EP17182753.8A EP3301527A3 (en) | 2016-08-23 | 2017-07-24 | Method to extend mes functionalities in a message routing system |
EP17182753.8 | 2017-07-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107765655A CN107765655A (zh) | 2018-03-06 |
CN107765655B true CN107765655B (zh) | 2020-07-24 |
Family
ID=56802287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710729544.5A Active CN107765655B (zh) | 2016-08-23 | 2017-08-23 | 以消息路由系统扩展mes功能的方法、系统及可读介质 |
Country Status (2)
Country | Link |
---|---|
EP (2) | EP3287858A1 (zh) |
CN (1) | CN107765655B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112859757B (zh) * | 2019-11-27 | 2022-04-22 | 宁波舜宇智能科技有限公司 | 边缘计算控制方法、装置、边缘计算机和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1391818A2 (en) * | 2002-08-23 | 2004-02-25 | Siemens Aktiengesellschaft | Method, system and apparatus for an industrial framework based on integrated applications via adapters |
CN105303290A (zh) * | 2014-07-23 | 2016-02-03 | 西门子公司 | 管理制造执行系统中的数据 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10161140A1 (de) * | 2001-12-12 | 2003-07-03 | Siemens Ag | System und Verfahren zum Verfolgen und/oder Auswerten des Informationsaustausches |
-
2016
- 2016-08-23 EP EP16185260.3A patent/EP3287858A1/en not_active Withdrawn
-
2017
- 2017-07-24 EP EP17182753.8A patent/EP3301527A3/en not_active Withdrawn
- 2017-08-23 CN CN201710729544.5A patent/CN107765655B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1391818A2 (en) * | 2002-08-23 | 2004-02-25 | Siemens Aktiengesellschaft | Method, system and apparatus for an industrial framework based on integrated applications via adapters |
CN105303290A (zh) * | 2014-07-23 | 2016-02-03 | 西门子公司 | 管理制造执行系统中的数据 |
Non-Patent Citations (2)
Title |
---|
A framework for building intelligent manufacturing systems;Vladan 等;《applications and reviews》;19991231;第39卷(第3期);第422-439页 * |
development of a system framework for the computer-integrated manufacturing execution system:A distributed object-oriented approach;FAN-TIEN CHENG 等;《international journal of computer integrated manufacturering》;19991231;第12卷(第5期);第384-402页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107765655A (zh) | 2018-03-06 |
EP3287858A1 (en) | 2018-02-28 |
EP3301527A3 (en) | 2018-05-23 |
EP3301527A2 (en) | 2018-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Balci | Requirements for model development environments | |
US7392509B2 (en) | Method for domain specific test design automation | |
Syriani et al. | T-Core: a framework for custom-built model transformation engines | |
France et al. | Providing support for model composition in metamodels | |
US20090241088A1 (en) | Creating graphical models representing control flow of a program manipulating data resources | |
Kaiser et al. | A bi-level language for software process modeling | |
US20020129330A1 (en) | System for configuration programming | |
EP1936494A1 (en) | Method for runtime execution of one or more tasks defined in a workflow process language | |
Levendovszky et al. | A semi-formal description of migrating domain-specific models with evolving domains | |
Dotti et al. | Verification of distributed object-based systems | |
CN107765655B (zh) | 以消息路由系统扩展mes功能的方法、系统及可读介质 | |
US11188307B2 (en) | Modelizing resources and external data of a program for procedural language coding | |
JP2007535013A (ja) | コンピュータプログラムの設計 | |
Jurack et al. | Sufficient criteria for consistent behavior modeling with refined activity diagrams | |
Akers et al. | Re-engineering C++ component models via automatic program transformation | |
Khan et al. | A study: selection of model metamodel and SPL tools for the verification of software product lines | |
Rahman et al. | A DSL for importing models in a requirements management system | |
JP2011515755A (ja) | 予約されたコンポーネントコンテナ基盤ソフトウェアの開発方法及び装置 | |
US10353381B2 (en) | Method to extend MES functionalities in a message routing system | |
US10657476B2 (en) | Just in time compilation (JIT) for business process execution | |
Bresciani et al. | The Tropos analysis process as graph transformation system | |
Brucker et al. | Monadic sequence testing and explicit test-refinements | |
Marechal et al. | Generalizing the compositions of Petri nets modules | |
Geppert et al. | Combining SDL Patterns with Continuous Quality Improvement: An Experience Factory Tailored to SDL Patterns | |
Selway et al. | Integration of visual contracts and model transformation for enhanced MDE development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |