• 3.01 MB
  • 2022-04-22 13:32:02 发布

GBT16720.1-2005-3工业自动化系统制造报文规范第1部分服务定义.pdf

  • 40页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'GB/T16720.1-2005/ISO9506-1:2003RequestDomamDownload(请求域下载)RequestDomainUpload(请求域上载)LoadDomainContent(装载域内容)StoreDomainContent(存贮域内容)DeleteDomain(删除域)GetDomainAttributes(获取域属性)域表示用于特定用途的VMD能力的一个子集。域的属性描述如下,其后是操作域对象的服务的简要说明。域用以下两种方式之一形成:a)通过启动一个下载处理过程显式地建立。b)作为程序调用部分或通过其他本地方法建立。域也可以对系统预定义,从而先于MMS上下文的建立而存在。11.1.1域对象模型本章介绍域的模型。DOMAIN::=CLASS{乙nameIdentifier,一shallbeuniqueamongthenamesofallDomainswithintheVMD&CapabilitiesMMSString,&stateDomainState,衣aAssociationINTEGEROPTIONAL,一Thisfieldshallbepresentifandonlyif一the&.statefieldhasavalueof一loading,complete,incomplete,dl,d2,d3ord9邑accessControlIdentifier,乙sharableBOOLEAN,乙ProgramInvocationsIdentifierOPTIONAL,乙uploadsInProgressINTEGER,一ThefollowingitemsreflecttheDomaincontent一AlltheitemslistedhaveDomain-specificnames.IF(vnam)&NamedVariablesNAMED-VARIABLEOPTIONAL,IF(vlis)乙NamedVariableListsNAMED-VARIABLE-LISTOPTIONAL,ENDIF乙NamedTypesNAMED-TYPEOPTIONAL,ENDIF乙EventConditionsEVENT-CONDITIONOPTIONAL,&.EventActionsEVENT-ACTIONOPTIONAL,&EventEnrollmentsEVENT-ENROLLMENTOPTIONAL,IF(cspi)&EventConditionListsEVENT-CONDITION-LISTOPTIONAL,ENDIF&JournalsJOURNALOPTIONAL} GBJT16720.1-2005/1SO9506-1:200311.1.1.1&name(名称)&name字段唯一标识VMD中的域。邑name字段应是按照MMS对象命名规则形成的一个VMD一specific对象名。11.1.1.2&Capabilities(能力)&Capabilities字段是实施专用参数的集合,这些参数对划分一个域的VMD总资源是必须的。该集合的元素被表示成字符串,它们的值是本地事务。注:&.Capabilities的目的是为了传递诸如存储分配、处理器分配和输人输出制约等参数。11.1.1.3&State(状态)&State字段规定域的状态。每个域可以处于5种状态之一:Loading(正装载),Complete(完成)、incomplete(未完成)、ready(准备就绪)或in-use(使用中)。&State字段的可能值取决于域的建立方法。在域建立之前,它是并不存在的。为了完成状态表,一个不存在的域初始用non-existent状态描述。loading状态是在装载处理期间出现的中间状态。在成功下载之后域进人ready状态。In-use状态与ready状态的区别是前者定义了一个或多个使用这个域的程序调用。Complete状态是一个中间状态,它在最后一个DownloadSegment接收之后,下载序列被终止之前出现。incomplete状态是一个中间状态,它在下载序列已经终止,但装载处理还未完成之前出现。状态dl-d9表示中间状态,即请求与应答之间的状态。DomainState::二INTEGER{non-existent(0),loading(1),ready(2),in-use(3),complete(4),incomplete(5),dl(7),d2(8),d3(9),d4(10),d5(11),d6(12),0(13),d8(14),d9(15)}(0..15)11.1.1.4&aAssociation(应用关联)该字段标明正在其上进行域下载的应用关联。在处理域下载期间,该域依赖于建立它的应用关联,若该应用关联在域进人ready状态之前丢失,则域被删除。没有报告域值的MMS服务。11.1.1.5&accessControl(访问控制)&-accessContro!标识一个提供条件的访问控制表,在这些条件下,域不能被上载、删除或不能修改它的访问控制或名称。11.1.1.6&Sharable(可共享的)&Sharable字段规定这个域是否可同时用于一个以上的程序调用定义。注:一个只读域,即不能被程序调用活动改变的域,通常是共享的。在多数情况下,可以通过执行程序调用来修改的域是不可共享的。然而,通过谨慎协调,一个域可同步地被两个程序调用修改,从而,提供一种过程间的通信方法。共享不必只意味着只读。11.1.1.7&ProgramInvocation(程序调用)此字段标识当前使用此域的程序调用集合。若此域不是可共享的,则此集合至多只有一个程序调标准下载网(www.bzxzw.com) GB/T16720.1-2005/ISO9506-1:2003用。若域处于in-use状态,则此集合不能为空。11.1.1.$&uploadsInProgress(进行中的上载)&uploadsInProgress规定当前作用于该域之的上载序列的个数。该字段的值是对此域存在的ULSM的个数。值0表示当前没有对此域的上载正在进行。11.1.1.9&namedVariables(有名变f)此字段标识包含在该域中、其名称范围为Domain-Specifi。的有名变量对象。只有当vnam参数CBB经协商后,此字段才出现。有名变量在第14章描述。11.1.1.10&NameVariableList(有名变f表)此字段标识包含在该域中、其名称范围为Domain-Specific的有名变量表对象。只有当vnam参数和vlis参数CBB经协商后,此字段才出现。有名变量表在第14章描述。11.1.1.11&NamedType(有名类型)此字段标识包含在该域中、其名称范围为Domain-Specific的有名类型对象。只有当vnam参数CBB经协商后,此字段才出现。有名类型在第14章描述。11.1.1.12&EventCondition(事件条件)此字段标识包含在该域中、其名称范围为Domain-Specifi。的事件条件对象。事件条件在第19章描述。11.1.1.13&EventActions(事件活动)此字段标识包含在该域中、其名称范围为Domain-Specific的事件活动对象。事件活动在第20章描述。11.1.1.14&EventEnrollments(事件登录)此字段标识包含在该域中、其名称范围为Domain-Specific的事件登录对象。事件登录在第21章描述。11.1.1.15&EventConditionList(事件条件表)此字段标识包含在该域中、其名称范围为Domain-Specific的事件条件表对象。事件条件表在第22章描述。11.1.1.16&Journals(日志)此字段标识包含在该域中、其名称范围为Domain-Specific的日志对象。日志在第23章描述。11.1.2上载状态机本条介绍上载状态机的模型。ULSM::=CLASS{衣uIsmIDINTEGERUNIQUE,一shallheuniqueamongallULSM"swithinthisapplicationassociation&domainIdentifier,&ulsmStateULState}ULState::=INTEGER{non-existent(0),uploading(1),uploaded(2),ul(3),u2(4),0(5),u4(6)}(0二6)11.1.2.1&ulsmID(上载状态机ID)此字段标识在这个关联上的所有上载活动中的一个上载。标准下载网(www.bzxzw.com) GB/T16720.1-2005/ISO9506-1:200311.1.2.2&domain此字段标识被上载的域。11。1。2.3&u1smstate此字段标识上载的状态。11.1.3域状态图在图8中,中间状态(只存在于指示原语与应答原语之间,或存在于请求原语与确认原语之间的状态)用标以Dn(n=1-9)的方框表示的。由于这些状态是暂时的,所以,域只在某个时间段处于此类的一个状态中,并且可以用与主状态一样的方法报告出来。被预定义的或通过本地方式建立的域被限制于此图的ready和in-use状态。术语“程序调用计数”指的是当前限定的对此域的程序调用个数(见12章对域的程序调用限制的有关信息)。一图8域状态图状态图的转换如下:I一InitiateDownloadSequence.indication标准下载网(www.bzxzw.com) GB/T16720.1-2005/ISO9506-1:20032-InitiateDownloadSequence.response(+)3-InitiateDownloadSequence.response(一)4-DownloadSegment.request5-DownloadSegment.confirm(+)MoreFollows=true6-DownloadSegment.confirm(+)MoreFollows二false7-DownloadSegment.confirm(一)8-TerminateDownloadSequence.requestDiscardpresent9-TerminateDownloadSequence.confirm(+)or(一)10-TerminateDownloadSequence.requestDiscardnotpresent11-TerminateDownloadSequence.confirm(+)12-TermtnateDownloadSequence.confirm(一)13-TerminateDownloadSequence.requestDiscardpresent14-CreateProgramInvocation.indicationProgramInvocationcount“015-CreateProgramInvocation,response(+)16-CreateProgramInvocation.response(一)17-DeleteProgramInvocation.indicationProgramInvocationcount=118-DeleteProgramInvocation.response(+)19-DeleteProgramInvocation.response(一)20-CreateProgramInvocation,indicationProgramInvocationcount>021-CreateProgramInvocation.response(+)or(一)22-DeleteProgramInvocation.indicationProgramInvocationcount>123-DeleteProgramInvocation.response(+)or(一)24-DeleteDomain.indication25-DeleteDomain.response(+)26一DeleteDomain.response(一)27-Abort.indication28-Abort.indicationProgramInvocationcreationfailed29-Abort.indicationProgramInvocationcreationsucceeded30-Abort.indicationProgramInvocationdeletionsucceeded31一Abort.indicationProgramInvocationdeletionfailed11.1.4分段服务在域管理中,要求服务成组出现,其中有两组服务,它们是DownloadSequenceC下载序列)服务和UploadSequence(上载序;Vlj)服务。11.1.4.1下载序列域下载序列可用来完成域的&Content的建立和从MMS客户到MMS服务器的装载。虽然MMS客户通过请求InitiateDownloadSequence服务来启动这个序列,但其后的服务由MMS服务器控制。MMS服务器发出零个或多个DownloadSegment服务请求,必要时,跟随一个TerminateDown-loadSequence服务请求。由于一个域在某一时刻仅有一个下载序列起作用,因而域名就足以标识正在执行的下载序列。MMS服务器保留下载序列的状态信息作为域状态的一部分。如果在下载序列过程中,客户与服务器之间的关联丢失,则相关联的域将被删除,并且,所有传输过去的部分信息将丢失。如果关联在完成下载序列之后丢失(即当域处于ready或in-use状态时),则域不受关联丢失的影响。如果在下载序列过程中,任一服务请求被取消,除非能够保持域的完整性,否则MMS应答户拒绝取消请求。当该过程已进行到如果取消则不能保持域的完整性之处时,事务对象的&Cancelable字段将被设置为False.标准下载网(www.bzxzw.com) GBJT16720.1-2005JISO9506-1:200311.1.4.2上载序列该服务用于将域内容从MMS服务器传递到MMS客户。上载通过MMS客户顺序请求InitiateU-ploadSequence服务、零个或多个UploadSegment服务(如果需要的话),以及一个TerminateUploadSe-quence服务来完成。若在上载序列过程中,客户与服务器之间的关联丢失,则终止上载序列,并删除相关联的上载状态机(ULSM)。而域将不受影响。每个成功的InitiateUploadSequence服务调用将建立一个ULSM,该ULSM由一个(在此关联上所有有效的ULSM中)唯一的ULSM-ID标识。ULSM在启动上载序列时由MMS服务器建立,并分配一个ULSM-ID,ULSM只能通过分配的ULSM-ID,并仅能在分配它的关联上引用。通过TeminateUploadSequence服务或当关联异常中止时,删除ULSM,并释放ULSM-ID,若在上载序列过程中,任一服务请求被取消,则MMS服务器将拒绝该取消请求,除非能够保持上载状态机的完整性。当该处理进行到若取消则状态机的完整性不能保持之处时,事务对象的&Cancelable字段将被设置为“假,。上载一个域的MMS服务是互相依赖的。这种相互依赖性由图9给出的上载状态机规定。10EN41((oE2UteTnUp-K5paEl21olxoa1CiadsdtitneAc)63dng)t)87810U38U9410图9上载状态图转换:I-InitiateUploadSequence.indication6一UploadSegment.response(+)moreFollows=true2-InitiateUploadSequence.response(-i-)7一UploadSegment.response(一)3-InitiateUploadSequence.response(一)8--TerminateUploadSequence.indication4-UploadSegment.indication9--TerminatetTploadSequence.response5-UploadSegment.response(+)moreFollows=false10---Abort.indicationorAbort.request11.2InitiateDownloadSequence(启动下载序列)服务该服务供MMS客户用来请求MMS服务器建立有名域,并开始对它进行装载。 GB/T16720.1-2005八SO9506-1:200311.2.1结构该服务原语的结构见表31所示。表31InitiateDownloadSequence服务卜-一布11.2.1.1Argument该参数传递InitiateDownloadSequence服务请求的参数。11.2.1.1.1DomainName此参数类型为Identifier,它规定(在MMS服务器上的)要下载的域的名称。11。2.1.1.2ListOfCapabilities此参数为字符串类型,它表达对VMD资源(它是该域的一部分)实施特定限制。ListOfCapabili-ties成为此域的一个定义元素。若该ListOfCapabilities在VMD资源内是无效的和不可用的,则返回Result(一)。确定有效性与可用性是本地事务。注:需要包含的能力只是那些为了使MMS服务器能够正确地执行这一服务而必须规定的能力。最好完全不使用此参数,因为这种情况提升了交互操作性的最高等级。为指明这种情况,应给定一个只有零个元素的表。11.2.1.1.3Sharable此参数为布尔类型,如为“真”,则规定其后装载的域可以并发地被多个程序调用使用。这种域被称为是可共享的。值为“假”则规定域仅可由一个程序调用使用。11.2.1.2Result(+)Result(+)参数指明服务请求成功。成功的结果不返回服务专用参数。11.2.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.2.2服务过程11.2.2.1先决条件如果下列任一条件不满足,MMS服务器将返回Result(一):a)提供的域名不是当前正使用的VMD中的一个域名;b)能力表是有效并可用的;c)VMD的&.accessControl字段所引用的访问控制表对象中规定的条件对于服务类=LOAD的满足。11.2.2.2活动MMS服务器创建一个新域,并按以下步骤初始化:a)新创建的域的&name字段应为服务指示的DomainName参数。b)新创建的域的乙Capabilities字段应为服务指示的ListOfCapabilities参数。c)新创建的域的乙state字段应为loading.d>新创建的域的乙aAssociation字段应设置为指明已接收这个服务指示的关联。e)新创建的域的&accessControl字段应设置为一个访问控制表对象,它报告的MMSDeletable GB/T16720.1-2005/ISO9506-1:2003值为“真”(见9.1.4)。预定义符号“M_Deletable",(见25.3.2.1)可用于此目的。f)新创建的域的&sharable字段应为该服务指示的Sharable参数。g)新创建的域的&ProgramInvocations字段应设置为一个空集。h)新创建的域的&uploadsInProgress字段应为。。i)新创建的域的乙content属性应初始设置为NUI一工对象。MMS服务器将对新创建域的引用加到由该域的&accessControl字段所引用的访问控制表对象的&Domains字段中。MMS服务器为准备下载序列还应执行另一些必须的活动,同时,发送Result(十)服务原语。11.3DownloadSegment(下载段)服务此服务供MMS服务器用来请求MMS客户传送一段下载信息。注:此服务与大多数MMS服务的区别在于,在这个服务中,服务器发出请求服务原语,并接收确认服务原语,而MMS客户接收指示服务原语,并发出响应服务原语(见26.2.1.1)o11.3.1结构该服务原语的结构如表32所示。表32DownloadSegment服务片寸价川11.3.1。1Argument此参数传递DownloadSegment服务请求的参数。11.3.1.1.1DomainName此参数类型为Identifier,它规定要装载的域。该域处于loading状态。11。3.1。2Result(+)Result(十)参数表明服务请求成功。成功的结果返回下列参数。11.3.1.2.1LoadData(装载)此参数包含被下载的信息。此参数或者是一个8位位串,或者是一个外部编码值。MMS服务器用此信息构成域的&-Content字段。作为此过程的一部分,MMS服务器建立这个域,并给它的所有下属对象赋值。本部分不规定此数据的转换服务。注:本部分对LoadData中的信息特性没有要求。LoadData可作为上载序列(见11.5)的结果,或作为目标设备专用编程功能(如APT后处理器)的结果而形成。11.3.1.2.2MoreFollows此参数为布尔类型,它指明在下载序列中命名的域是否有任何补充装载数据要传输。如果LoadData的长度为。,则该参数为“假”。11.3.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)给出失败的原因。 GB/T16720.1-2005八SO9506-1:200311.3.2服务过程11.3.2.1先决条件对于InitiateDownloadSequence请求,MMS客户应收到一个肯定的应答(该启动下载序列请求给这个服务指示的DomainName参数中标识的域命名),但还没有收到对这同一个域的TerminateDown-loadSequence指示。如果这个条件不满足,MMS客户将对这个服务请求返回Result(一)应答。11.3.2.2活动MMS客户准备装载数据,以便传输到MMS服务器。用于LoadData的建立和分段的过程是本地事务。如果有这样的装载数据要传输,那么它应成为LoadData参数的值,并且MoreFallow参数应根据是否还有一些装载数据要在随后的DownloadSegment服务应答中传送而设定为“真”或“假”。如果没有剩余的装载数据要传输,则MMS客户将LoadData参数设置为长度为0的字符串,并且,MoreFollow参数的值为“假,。MMS服务器接收LoadData段,并按Domain-Specific格式解释该LoadData,并相应地加以存储。若Morefollow为“假”,则该域在这个服务完成后应处于Complete状态。若Morefollow为“真”,该域应保持在loading状态。如果MMS客户检测到一个使正在下载的域内容无效的错误,则它应向该服务请求发出Result(一)应答。否则,向该服务请求发出Result(+)应答。如果MMS服务器接收到由这个服务请求产生的Result(一)确认,它将发出TerminateDownload-Sequence请求(见11.4)。如果MMS服务器接收到Result(+)确认,并且,其MoreFollow参数的值为“假”,那么,它将发出TerminateDownloadSequence请求(见11.4)。否则,在合适的时候它将发送补充DownloadSegment服务请求。11.4TerminateDownloadSequence(终止下载序列)服务该服务供MMS服务器用来向MMS客户指明下载序列已完成。注:该服务与大多数MMS服务之区别在于,在这里MMS服务器发出请求服务原语,并接收确认服务原语,而MMS客户接收指示服务原语,并发出应答服务原语(见26.2.1.1),11.4.1结构该服务原语的结构如表33所示。表33TerminateDownloadSequence服务盯一甘门11.4.1.1Argument该参数传递TerminateDownloadSequence服务请求的参数。11.4.1.1.1DomainName此参数为Identifier类型,它规定要终止下载序列的域。该域处于loading,complete或者in-com-plete状态。11.4.1.1.2Discard(废弃)此参数类型为ServiceError,若出现,则表明要下载的域已被删除。若域已删除,则该参数应提供一个遇到问题的指示。在这种情况下,下载序列将被异常中止,同时,MMS服务器将废弃所有的已接 GB/T16720.1-2005/ISO9506-1:2003受的域内容。否则,将保留已下载的域内容,并且该域被设置为ready状态。11.4.1。2Result(+)Result(十)参数指明服务请求成功。成功的结果不返回服务专用参数。11.4.1.3Result(一)Result(一)参数指明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败原因。11.4.2服务过程11.4.2.1先决条件MMS客户应已收到对InitiateDownloadSequence请求的肯定应答(这个启动下载序列请求为这个服务指示的DomainName参数中标识的域命名),但还没有收到对这同一个域的TerminateDomainSe-quence指示。如果这个条件不满足,MMS客户对这个服务返回Result(一)应答。11.4.2.2活动如果MMS服务器在下载序列过程中检测到了不可恢复的错误,则它将提供描述该错误的Discard参数。如果MMS客户对DownloadSequence请求已提供了Result(一)(见11.3.2),则MMS服务器将提供Discard参数用以指明该错误是被MMS客户检测到的。如果MMS服务器已成功完成了Down-loadSequence(因此未设置Discard参数),并且对于TerminateDownloadSequence请求,MMS客户通过返回Result(-{-)来指明成功,则DownloadSequence成功。否则DownloadSequence失败。如果DownloadSequence成功,域应设置为ready状态。如果DownloadSequence失败,则废弃所有的装载数据。并且,从该域的&accesscontrol字段所引用的访问控制表对象中取消对这个域的引用,同时删除这个域。11.5InitiateUploadSequence(启动上载序列)服务该服务供MMS客户用来请求MMS服务器准备上载已指定名称的域。11.5.1结构该服务原语的结构如表34所示。表34InitiateUploadSequence服务卜一布州11.5.1.1Argument此参数传递InitiateUploadSequence服务请求的参数。11.5.1.1.1DomainName此参数类型为标识符,它指定一个域的名字,该域的内容将要传送给MMS客户(上载)。11.5.1.2Result(+)Result(+)参数表明服务请求成功。成功的结果将返回下列参数。11。5.1.2.1ULSMID此参数为整型,它指定由该请求而创建的ULSM对象。11.5.1.2.2ListOfCapabilities此参数类型为字符串表,它标识用于建立或定义该域的&Capabilities, GB/T16720.1-2005/ISO9506-1:2003注:必须包含的能力只是那些使服务器能正确执行该服务而必须规定的能力。最好完全不使用该参数,因为这样将提升至交互操作性的最高等级。为指明这种情况,应指定一个只有零个元素的表。11.5.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.5.2服务过程11.5.2.1先决条件下列条件应该满足:a)指定的域存在,并且处于ready状态或in-use状态;b)VMD的&accessControl字段所引用的访问控制表对象中规定的所有条件对于服务类=STORE都应满足;c)这个域的&accessControl字段所引用的访问控制表对象中规定的所有条件对于服务类=STORE都应满足。如果上述任一条件不满足,则MMS服务器将返回Result(一)。11.5.2.2活动MMS服务器将创建一个ULSM,并给它分配一个唯一的整数值。应将对新ULSM的引用加到应用关联的&Ulsms字段中。MMS服务器将为准备上载这个指定的域执行另一些必须的活动。注:如果上载序列保证域处于in-use状态,那么,水content字段可以在执行上载序列期间被修改。这样可能会导致正在被上载的数据的不完整或不一致。对上载的解释是本地事务。11.6UploadSegment(上载段)服务该服务供MMS客户用来请求MMS服务器从指定域传送一段上载数据。11.6.1结构该服务原语的结构如表35所示。表35UploadSegment服务卜寸一川11.6.1.1Argument此参数传递UploadSegment服务请求的参数。11.6.1.1.1ULSMID此参数为整型,它指定控制这一传递的ULSM实例。被上载的域隐含地由该参数标识。11.6.1.2Result(+)Result(-)参数表明服务请求成功。成功的结果返回下列参数。11.6.1.2.1LoadData该参数包含取自MMS服务器的所请求的装载数据。该参数或者是一个8位位组串,或者是一个外部编码值。11.6.1.2.2MoreFollow此参数为布尔类型,它表明为完成UploadSegment是否还遗留了一些装载数据尚需传送。如 GB/T16720.1-20051ISO9506-1-2003LoadData是一个零长度的串,则该参数为“假”。11.6.1.3Result(一)该参数指明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败原因。11.6.2服务过程11.6.2.1先决条件由ULSMID标识的上载状态机应该存在。如果此条件不满足,将返回Result(一)。注:此条件等价于这样的情况:前一个InitiateUploadSequence请求已被接收,并发出了肯定的应答,同时,相应的"IerrninateUploadSequence请求还没有收到。11.6.2.2活动MMS服务器将提供每个上载段的内容,它被格式化,以便在以后的DownloadSegment(download)服务中作为装载数据而被接收。如果装载数据不能放人该格式中,则返回Result(一)应答。如果在这个序列中已到达LoadData的结尾,则MMS服务器返回的MoreFollow参数值为“假”。11.7TerminateUploadSequence(终止上载序列)服务该服务供MMS客户用来请求MMS服务器终止一个上载序列。特别是,无论服务是否完成,或成功与否,TerminateUploadSequence都导致相应的ULSM被删除。11.7.1结构该服务原语的结构如表36所示。表36TerminateUploadSequence服务口士一川11.7.1.1Argument此参数传递TerminateUploadSequence服务请求的参数。11.7.1.1.1ULSMID此参数为整型,它标识其上载序列将被终止的ULSM实例。11.7.1.2Result(+)Result(-1-)参数表明服务请求成功。成功的结果不返回服务专用参数。11.7.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.7.2服务过程11.7.2.1先决条件由ULSMID标识的上载状态机应存在。如果该条件不满足,将返回Result(一)。注:此条件等价于这样的情况:前一个InitiateUploadSequence请求已经接收,并发出了肯定的应答,同时,相应的TerminateUploadSequence请求还没有收到。11.7.2.2过程在完成上载序列之后,或者由MMS服务器在对UploadSegment的Result(一)应答中报告错误之后,MMS客户请求终止TerminateUploadSequence服务。应在应用关联的&Ulsms字段中删除对这个ULSM的引用。无论在成功或者不成功地完成这个服务之后,都将ULSM删除。如MMS服务器检测出上载序列中的一个错误,则返回一个Result(一)应答。例如,若MMS客户在MMS服务器返回 GB/T16720.1-2005/ISO9506-1:2003取值为“假”的Morefollow参数之前请求终止TerminateUploadSequence服务,则应返回Result(一)应答。11.8RequestDomainDownload(请求域下载)服务该服务供MMS服务器用来请求MMS客户启动利用这个服务器的一个下载序列。注:本服务与大多数MMS服务的区别在于,在这里MMS服务器发出请求服务原语,并接收确认服务原语,而MMS客户接收指示服务原语,并发出响应服务原语(见26.2.1.1),11.8.1结构该服务原语的结构如表37所示。表37RequestDomainDownload服务}参数名ReqIndRspCnfCBB三ArgumentMM(=)DomainNameMM(二)ListofCapabilitiesUU(=)SharableMM(二)FileNameMM(=)’Result(+)SS(=)鲁Result(一)SS(=)鲁ErrorTypeMM(=)11.8.1.1Argument此参数传递RequestDomainDownload服务请求的参数。11.8.1.1.1DomainName此参数为标识符类型,它指定要下载的域的乙name字段。11.8.1.1.2Capabilities此参数是可选的,类型为字符串表,如果出现,它用来作为随后的TerminateDownloadSequence服务请求中ListOfCapabilities参数的值。11.8.1.1.3Sharable此参数为布尔类型,如果为“真”,则表明该域可被多个程序调用使用。这样的域被称为是可共享的。否则,该域只可由一个程序调用使用。11.8.1.1.4FileName(文件名)此参数类型为FileName,它指定包含待装载信息的(MMS客户已知的)文件的名称。11.8.1.2Result(+)Result(-)参数表明服务请求成功。成功的结果不返回服务专用参数。11.8.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.8.2服务过程11.8.2.1先决条件如果FileName参数所指定的文件不存在,或者不能被访问,则将返回Result(一)。11.8.2.2活动在收到RequestDomainDownload指示服务原语之后,MMS客户应按11.2所述,请求InitiateDo-mainSequence服务。从指示服务原语中接收到的DomainName参数和Sharable参数的值被用来作为InitiateDownloadSequence服务的同名参数的值。如果在服务指示中出现ListOfCapabilities参数,那么,该值被用来作为InitiateDownloadSequence服务请求的同名参数的值。否则,InitiateDownloadSe- GBJT16720.1-2005/ISO9506-1:2003quence服务的该参数的值是本地事务。由FileName参数标识的文件被用来作为装载数据的源。注1:如果MMS客户一方的域内容是前一个域上载的结果,那么,从这个上载保留下来的ListO#Capabilities参数的值通常作为InitiateDownloadSequence服务请求的ListO#Capabilities参数的值。注2:如果过程进行到已创建一个域之处,那么,请求取消RequestDomainDownload服务可能需要非常复杂的处理。何时将RequestDomainDownload事务对象的&-cancelable字段设置为“假”是本地事务。完成TerminateDownloadSequence服务之后,MMS客户对RequestDomainDownload服务发出一个应答。如果装载已成功完成,应答原语中的Result(-I-)参数指明RequesetDomainDowanload服务成功。如果DownloadSequence的任何元素返回Result(一)应答,则应答将反映在对RequesetDomain-Dowanload服务的Result(一)应答中。11.9RequestDomainUpload(请求域上载)服务该服务供MMS服务器用来请求将MMS服务器上的一个指定域的内容上载到MMS客户。注:该服务与大多数MMS服务的不同之处在于,在这里,MMS服务器发出请求服务原语,并接收确认服务原语,而MMS客户接收指示服务原语,并发出应答服务原语(见26.2.1.1).11.9.1结构该服务原语的结构如表38所示。表38RequestDomainUpload服务口一几口11.9.1,1Argument此参数传递RequestDomainUpload服务请求的参数。11.9.1.1.1DomainName此参数类型为标识符,它指明其内容被上载的域。11.9.1.1.2FileName此参数类型为FileName,它指定由MMS客户用于存储DomainUpload的文件的名字。11.9.1.2Result(+)Result(+)参数表明服务请求成功。成功的结果不返回服务专用参数。11.9.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.9.2服务过程11.9.2.1先决条件如果由FileName参数标识的文件不存在,或者不能被访问,则返回Result(一)应答。11.9.2.2活动MMS客户按11.5所述执行UploadSequence服务,并将最后所得到的装载数据存人该有名文件中。MMS客户保留ListOfCapabilities的值,并将它与装载数据相关联。注:如果过程进行到已建立上载状态机之处,那么,请求取消RequestDomainUpload服务可能需要很复杂的处理。何时将RequestDomainUpload事务对象的乙Cancelable字段设置为“假”是本地事务。完成TerminateUploadSequence服务之后,MMS客户对RequestDomainUpload服务发出一个应 GB/T16720.1-2005/ISO9506-1;2003答。如果上载成功完成,则应答服务原语中的Result(-}-)参数将标明RequestDomainUpload服务成功。如果DownloadSequence的任何元素返回Result(一),则该应答将反映在对RequestDomainUp-load服务的Result(一)应答中。11.10LoadDomainContent(装载域内容)服务该服务供MMS客户用来请求MMS服务器从它自己的文件库或从第三方装载一个文件到指定的域中。涉及到使用MMS服务的第三方的典型操作顺序如图10所示。MMS客户MMS服务器第三方LoadDomainContent>请求RequestDomainDownload>请求:InitiateDownloadSeq<请求InitiateDowntoadSeq>应答DownloadSegment>请求DownloadSegment<应答TerminateDownloadSeq>请求}IerminateDownloadSeq<应答RequestDomainDownload<应答LoadDomainContent<应答图10LoadDomainContent服务11.10.1结构该服务原语的结构如表39所示。表39LoadDomainContent服务二ArgumentMM(二)II二DomainNameMM(=)I!ListofCapabilitiesUU(二)IISharableMM(二)}IFileNameMM(=)IIThirdPartyUU(=)}tpyIResult(+)SS(二)}IResult(一)SS(=)}I;ErrorTypeMM(一)一匕-一一」11.10.1.1Argument此参数传递LoadDomainContent服务请求的参数。 GB/T16720.1-2005八SO9506-1:200311.10.1.1.1DomainName此参数类型为Identifier,它指定被装载的域的.name字段。11.10.1.1.2ListOfCapabilities此参数类型为字符串表。它是可选的,当出现时用于建立有名域。11.10.1.1.3Sharable此参数为布尔类型,若为“真”,则表明该域能够被多个程序调用同时使用;否则,该域仅能被一个程序调用使用。11.10.1.1.4FileName此参数类型为fileName,它指定包含待装载信息的文件的名称。11.10.1.1.5ThirdParty(第三方)此参数类型为ApplicationReference,它指定应用过程的应用引用,通过它可以访问一个有名文件。支持对此参数的处理是一个实施选择,即,如果要求支持tpy参数CBB则应实施。如果tpy被执行,则它的使用是一个用户选项。若不存在此参数,对该文件的访问方法是本地事务。11.10.1.2Result(+)Result(+)参数指明服务请求成功。成功的结果不返回服务专用参数。11.10.1.3Result(一)Result(一)参数指明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.10.2服务过程11.10.2.1先决条件下列条件应满足:a)由Domain参数给定名称的域不存在;b)VMD的c&.accessControl字段所引用的访问控制表对象中的所有条件对于服务类=LOAD都满足;c)如果指定了第三方,MMS客户能够建立并保持与这个第三方的关联。如果上述任一条件不满足,返回Result(一)。11.10.2.2活动MMS服务器按如下步骤执行LoadDomainContent服务:a)按照11.2.2描述的过程建立并初始化一个域。b)若指定了第三方,而与那个应用的关联不存在,则建立它。然后采用适当活动去获得有名的文件,并装载有名域。c)若未指定第三方,则执行必须的步骤,以便通过本地方式获得该文件,并将它装载到指定的域。d)若装载成功,将域设置为ready状态。注:若该过程已进行到已建立域之处,如果请求取消I.oadDomainConten,服务,则可能需要非常复杂的处理。何时设置I.oadDomainContent事务对象的&cancelable字段为“假”是本地事务。如果装载成功完成,则发出Result(-I-)应答原语。如果装载未成功完成,则发出Result(一)应答原语。11.11StoreDomainContent(存储域内容)服务该服务供MMS客户用来请求将MMS服务器上指定域的内容存到文件库的一个文件中。“存人”一个域要求无论做何处理,必须使它以后可用LoadDornalnContent服务装载。涉及到使用MMS服务的第三方的典型操作顺序如图11所示。11.11.1结构该服务原语的结构如表40所示。 GB/T16720.1-2005/ISO9506-1:2003几图11StoreDomainContent服务表40StoreDomainContent服务卜一一川11.11.1.1Argument此参数传递StoreDomainContent服务请求的参数。11.11.1.1.1DomainName此参数类型为Identifier,它标识其内容要存人文件的域。11.11.1.1,2FileName此参数类型为FileName,它标识被存人域的文件。11.11.1.1.3ThirdParty此可选参数类型为ApplicationReference,用于标识驻留该文件库的第三方,它接收该有名域的内容。此参数的出现是一个实施选项,如果要求支持tpy参数一致性构造块,则应实施。如果tpy被执行,则它的使用是一个用户选项。如果不出现该参数,则存贮文件的方法是本地事务。11.11.1.2Result(+)Result(十)参数表明服务请求成功。成功的结果不返回服务专用参数。 GB/T16720.1-2005/ISO9506-1:200311.11.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.11.2服务过程11.11.2.1先决条件下列条件应满足:a)由Domain参数给出名称的域存在;b)VMD的&accessControl字段所引用的访问控制表对象中的所有条件对于服务类=LOAD都满足;c)VMD的&accessControl字段所引用的访问控制表对象中的所有条件对于服务类=STORE都满足;d)如果指定了第三方,MMS客户能够建立并保持与这个第三方的关联。如果上述任一条件不满足,返回Result(一)。11.11.2.2活动MMS服务器将采取适当的活动,以便将域的衣content字段存人指定的文件中。ListOfCapabili-ties的值将保留并与装载数据相关联。注:如果过程已进行到建立了上载状态机之处,那么,如果请求取消StoreDornainContent服务,则可能需要很复杂的处理。何时设置StoreDomainContent事务对象的&.Cancelabce字段为“假”是本地事务。如果上载成功完成,发出Result(+)应答。如果上载未能成功完成,将发出Result(一)应答。11.12DeleteDomain(删除域)服务该服务供MMS客户用来请求MMS服务器删除指定的域。11.12.1结构该服务原语的结构如表41所示。表41DeleteDomain服务卜布寸一州11。12.1.1Argument此参数传递DeleteDomain服务请求的参数。11.12.1.1.1DomainName此参数类型为Identifier,它指定要删除的域的.name字段。11.12.1.2Result(+)Result(+)参数表明服务请求成功。成功的结果不返回服务专用参数。11.12.1.3Result(一)Result(一)参数表明服务请求失败。Errortype参数(在第24章中详细定义)提供失败原因。11.12.2服务过程11.12.2.1先决条件MMS服务器应验证:a)指定的域存在。b)VMD的&accessControlList字段所指定的访问控制表中的所有条件对于服务类=DELETE都满足(见9.1.3)0 GB/T16720.1-2005/ISO9506-1:2003c)Domain的乙accessControlI,ist字段所指定的访问控制表中的所有条件对于服务类=DE-LETE都满足(见9.1.3)。d)域处于ready状态。e)没有正在对该域进行上载。如果上述任一条件不满足,返回Result(一)。11.12.2.2活动MMS服务器通过执行下列步骤来删除指定域:a)删除所有隶属于这个域的对象,而与这些下属对象所引用的访问控制表对象的状态无关。连同删除某个对象一起,MMS服务器要执行为删除该对象而定义的一个过程。对于该域的每个下属对象,从引用的访问控制表对象的相应字段中取消对这个对象的引用。b)从VMD的其他对象的属性中,取消对这个域或对它的下属对象的所有引用。特别地,要将引用属于这个域的MMS变量对象的事件条件对象的MonitoredVariableReference属性取消(见19.1.1)。c)从这个域的&accessControl字段所引用的访问控制表对象的&Domains字段中取消对这个域的引用。如果服务不能执行,将返回Result(一)应答。否则,返回Result(--)a11.13GetDomainAttributes(获取域属性)服务该服务供MMS客户用来请求MMS服务器返回与指定域相关的属性。11.13.1结构该服务原语的结构如表42所示。表42GetDomainAttributes服务11.13.1.1Argument此参数传递GetDomainAttributes服务请求的参数。11.13.1.1.1DomainName此参数类型为Identifier,它指定要求获取其属性的域的名称。11.13.1。2Result(+)Result(+)参数表明服务请求成功。成功的结果返回下列参数。11.13.1.2.1ListOfCapabilities该参数类型为字符串,它给定这个域的&Capabilities字段。 GB/T16720.1-2005/ISO9506-1:200311.13.1.2.2State该参数类型为DomainState,它指定该域是处于loading,complete,incomplete,ready或in-use状态之中,还是处于从dl-d9的某个转换状态之中。11.13.1.2.3MMSDeletable9.1.4规定了此参数的返回值。11.13.1.2.4Sharable该参数类型为布尔型,它指明这个域是否可以同时纳人多个程序调用中。11.13.1.2.5ListOfProgramInvocations该参数类型为Identifier,它指定与该域相链接的程序调用。若此域是不能共享的,那么,至多只有一个程序调用。若域不处于in-use状态或处于d5状态、d6状态,则本表为空。11.13.1.2.6UploadInProgress该整型参数指明当前对这个域有效的ULSM个数。零表示无上载在进行之中。11.13.1.2.7AccessControllist此参数类型为Identifier,它指明控制对该域访问的访问控制表对象的&name字段。只有当aco参数CBB经协商后,此参数才出现。11.13.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。11.13.2服务过程11.13.2.1先决条件MMS服务器应验证指定的域存在。如果该域不存在,返回Result(一)。11.13.2.2活动MMS服务器将该域的属性值作为相应Result(十)应答的参数返回。注:邑content字段不包括在应答中,其中的对象名称可以利用GetNameList服务,并给定Domain-Specifi。范围,同时命名该域(见10.5)来获得。12程序调用管理服务12.1引言和模型本章提供下列对象的对象模型:PROGRAM-INVOCATION(程序调用)本章规定下列服务:CreateProgramInvocation(建立程序调用)DeleteProgramInvocation(删除程序调用)Start(开始)Stop(停止)Resume(恢复)Reset(复位)Kill(截杀)GetProgramInvocationAttributes(获取程序调用属性)Select(选取)AlterProgramInvocationAttributes(变更程序调用属性)ReconfigureProgramInvocation(重新配置程序调用)在第7章中描述的虚拟制造设备(VMD)的MMS模型介绍了几个抽象元素。本章涉及对程序调用的操作。程序调用在性质上可以是动态的,可通过MMS服务或由本地活动产生,并从系统中取消。 GB/T16720.1-2005/ISO9506-1:2003程序调用也可在VMD中预定义,并提供允许MMS,客户影响程序调用的行为的一些服务。程序调用是与多任务环境下的一个执行线程紧密对应的一个动态元素,它由MMS服务或本地活动产生或预定义。它由一组域和执行该调用所必需的控制信息组成的。程序调用的执行可被认为是底层设备的基本操作的时间序列。这些基本操作的进一步定义是本地事务。在一个程序调用的时间进程中,存在一个特异状态,在此状态下,程序调用已为执行作好准备,但尚未开始执行。该状态称为程序调用的idle(空闲)状态。一些程序调用也有一个特异状态,在此状态下,程序调用已完成。达到该状态的程序调用已实现其目的,并且,不能再次被执行,该状态称为unrunnable(不可运行),正常达到这一状态的程序调用称为不可重用的。可重用的程序调用在正常完成它们的执行后返回到idle状态。12.1.1程序调用对象模型本条介绍程序调用模型。PROGRAM-INVOCATION::=CLASS{乙nameIdentifier,一shallbeuniqueamongallProgramInvocations&programInvocationStateProgramInvocationState,乙DomainsIdentifier,&accessControlIdentifier,&reusableBOOLEAN,乙monitorBOOLEAN,一Thefollowingthreefieldsshallallbepresentifthevalueof一一monitoristrue.一Ifpresent,the&namefieldofeachobjectinstance一shallhaveavalueequaltothe一&namefieldofthisinstanceofthePROGRAM-INVOCATION.&eventConditionIdentifierOPTIONAL,乙eventActionIdentifierOPTIONAL,邑eventEnrollmentIdentifierOPTIONAL,&executionArgumentMMSStringIF(csr),&.errorCodeINTEGER,乙controlControl-State,、一Thefollowingfieldshallbepresent一ifandonlyifthevalueofthe乙controlfieldiscontrolled.&-controlling-Program-InvocationIdentifier,一Thefollowingtwofieldsshallbepresent一ifandonlyifthevalueofthe&.controlfieldiscontrolling.&Controlled-Program-InvocationsIdentifier,乙program-LocationMMSStringOPTIONAL,衣running-ModeRunning-Mode,一Thefollowingfieldshallbepresent一ifandonlyifthevalueofthe&running-Modefieldiscycle-limited&-remaining-Cycle-CountINTEGEROPTIONAL,一Thefollowingfieldshallbepresent-ifandonlyifthevalueofthe&running-Modefieldisstep-limited GBJT16720.1-2005八SO9506-1:2003&-remaining-Step-CountINTEGEROPTIONALENDIF}12.1.1.1&name该字段唯一标识VMD中的程序调用,&name是按照MMS对象命名规则形成的VMD-specific对象名。12.1.1.2&programInvocationState该字段标识程序调用的基本状态。为了完成状态图,将值non-existent加到表中,以描述生成程序调用之前的条件。ProgramlnvocationState::=INTEGER{non-existent(0),unrunnable(1),idle(2),running(3),stopped(4),starting(5),stopping(6),resuming(7),resetting(8)}(0..8)12.1.1.2.1unrunnable(不可运行)该状态表示一个条件,在此条件下程序调用不再能执行,但尚未被删除。若&reusable字段是“假”,那么,此状态可以通过完成程序调用而达到,或者,通过显式的MMS活动,或者其他本地活动来达到。12.1.1.2.2idle该状态表示程序调用处于操作之前某一时刻的条件。注:若程序调用通过顺序过程编程语言实现,则该状态相当于“beginningofProgram".12.1.1.2.3running(运行中)该状态表示程序调用处于执行期间的条件。“执行”的进一步定义是本地事务。但是,running状态通常与一个过程相关联,这个过程改变它的至少一个下属域的构成元素。12.1.1.2.4stopped该状态表示一个条件,在此条件下程序调用处于执行开始与执行完成之间的一个中间状态。然而,执行已停止,因这个程序调用的活动下属域的构成元素不再改变。12.1.1.2.5starting该状态是idle状态和running状态之间的一种暂时的程序调用状态。若程序调用通过MMSstart服务活动而处于running状态,则该状态与收到start服务指示原语和发出start服务应答原语之间的时间相对应。当处于starting状态时,VMD可执行一个或多个初始化过程。12.1.1.2.6stopping(停止之中)该状态是running状态和stopped状态之间的一种暂时的程序调用状态。若程序调用通过MMSstop服务活动而处于stopped状态,则此状态与收到Stop服务指示原语和发出Stop服务应答原语之间的时间相对应。当处于stopping状态时,VMD可执行一个或多个过程。12.1.1.2.7resuming(恢复之中)该状态是stopped状态和running状态之间的一种暂时的程序调用状态。若程序调用通过MMSResume服务的活动而处于running状态,则此状态与收到Resume服务指示原语和发出Resume服务 GB/T16720.1-2005/ISO9506-1:2003应答原语之间的时间相对应。当处于resuming状态时,VMD可执行一个或多个过程。12.1.1.2.8resetting(复位之中)此状态是stopped状态和idle状态之间的一种暂时的程序调用状态。若该程序调用通过MMSReset服务活动而置于idle状态,则此状态与收到reset服务指示原语和发出reset服务应答原语之间的时间相对应。当处于resetting状态时,VMD可执行一个或多个过程。12.1.1.3&Domains此字段是属于该程序调用的域的集合,该集合至少包含一个域。12.1.1.4&accesscontrol此字段标识一个访问控制表对象,该对象提供一些条件,在这些条件下程序调用可以被执行、删除、或者可以修改它的访问控制、或者是以上几种情况的组合。12.1.1.5&reusable此字段指明程序调用在正常完成其执行后是否返回idle状态。若为“假”,则在正常执行之后,程序调用将转到unrunnable状态。12.1.1.6&monitor此字段指明是否对此程序调用实行程序监控。每当程序调用脱离running状态,则这个被监控的程序调用利用MMS的事件管理工具通知已登录的MMS用户。这些工作通过建立下列对象来完成。12.1,1.7&eventCondition如果&monitor字段为“真”,则该字段将标识具有下列字段值的一个事件条件对象:a)&name字段等于程序调用对象的&.name字段;b)&.ecClass字段等于monitored;c)&ecState字段为idle;d)&enable字段为真;e)&monitoredVariable字段选项是unspecified(指定程序调用处于:unning状态);f)&Enrollment字段指定单独定义的一个事件登录对象(定义见12.1.1.9);g)&accessControl字段指明一个访问控制表对象,它报告MMSDeletable的值为“真”,预定义符号M_Deletable可用于此目的;h)apriority字段为normalPriority;i)&-Severity字段为normalSeverity;j)&alarmSummaryReports字段为“假”;k)&evaluationlnterval字段值是本地事务。12.1.1。8&eventAction如果&monitor字段为“真”,则该字段标识具有下列字段值一个事件活动对象:a)&name字段等于程序调用对象的6-name字段的值;b)&accessControl字段指明报告MMSDelete值为“真”的一个访问控制表对象,预定义符号"M_Deletable",可用于该目的;c)&.confimedServiceRequest字段指明GctPrc}gramInvocationAttribute服务;d)&modifie:字段为空;e)&eventEnrollment字段指明单独定义的事件登录(定义见12.1.1.9)012.1.1。9&eventEnrollment若&monito:字段为“真”,该字段标识具有下列字段值的一个事件登录对象:a)&name字段等于程序调用对象的&.name字段的值;b)&accessControl字段指明报告MMSDeletable值为“真”的一个的访问控制表对象,预定义符号“M_Deletable",可用于该目的; GBJT16720.1-2005/1SO9506-1:2003c)&eeClass字段值为notification;d)aeventCondition字段指明上述的事件条件对象;e)&ECTransitions字段包含唯一元素active-to-idle;f)&aAssociation字段值指明建立程序调用的那个关联;g)乙notificationLost字段应为“假”;h)乙eventAction应指明上述事件活动;i)&duration字段由CreateProgramInvocation服务的对应参数确定;j)&clientApplication字段指定调用CreateProgramInvocation服务的客户应用;k)&aaRule字段值为none;1)&programInvocationState字段值为idle12.1.1.10&executionArgument(执行自变,)此字段包含适合于该程序调用执行的一个字符串或一个外部编码参数。它由Start服务或Re-sume服务设置。当建立程序调用时,它被初始设置为一个空字符串。随后执行该程序调用可改变这个字段的值。12.1.1.11&errorCode(错误代码)该字段为整型,它用于标识最后一个记录下的程序调用执行错误。只有当csr参数CBB经协商后,该字段才出现。取值为0表示没有记录到错误。其他值的含义以及该字段的复位方法都是本地事务。12.1.1.12&control该字段指明该(控制)程序调用是否打算与另一个正处于控制中的程序调用祸合。或者,在祸合后,该(被控)程序调用通常是否从另一个程序调用(控制程序调用)正常地接收控制信息。如果不是上述两种情况,该字段的值应为normal。只有当csr参数CBB经协商后,该字段才出现。当两个程序调用以这种方式藕合时,控制程序调用接收的Start服务请求和Resume服务请求的服务指示能够引起与控制程序调用相藕合的被控程序调用中的状态转换(见12.4和12.6)。控制程序调用报告的结果能够包含反映服务请求对被控制程序调用的影响的信息。目的是将控制复杂设备(比如机器人)动作的任务程序的执行与一个控制程序调用相关联,同时,将物理设备的硬件控制程序的操作与被控制程序调用相关联。这可以允许两类程序调用之间在操作时逻辑上异步。这是操作这类设备的一个必要特性。特别地,停止这种设备有三种方法:通过停止设备本身的控制程序;当没有移动命令产生时,通过停止任务程序来间接实现停止设备的目的;通过停止整个系统(见12.5)。Control-State::=INTEGER{normal(0),controlling(1),controlled(2)}(0..2)12.1.1.13&controlling-Program-Invocation(控制程序调用)只有当cs:参数CBB经协商后,并且&-control字段的值为controlled时,该字段才出现。如果出现,它引用一个程序调用,这个程序调用的作用是作为该程序调用的控制程序调用。被引用的程序调用的&control字段等于controlling,同时,应将这个程序调用包括在它的&controlled-Program-Invoca-tion字段中。12.1.1.14&Controlled-Program-Invocations(被控制程序调用)只有当csr参数CBB经协商后,并且,程序调用的&control字段值为controlling时,该字段才出现。该字段是一批程序调用,它们的&control字段为controlled,并且&controlling-Program-Invoca-tion字段标明指定的程序调用。这个集合可能为空。 GB/T16720.1-2005八SO9506-1:200312.1.1.15&program-Location(程序位置)该字段类型为字符串。只有当cs:参数CBB经协商后,并且程序调用的&control字段等于con-trolling时,该字段才出现。该字段的使用是一个实施选项。如果使用,该字段的格式将遵循CIS中的说明(见GB/T16720.5-2005第25章)。如果出现,它标识当程序调用处于running状态时,当前正在被执行的或将要被执行的程序调用的源代码行。12.1.1.16&running-Mode(运行方式)只有当csr参数CBB经过协商,并且,程序调用的&control字段等于controlling时,该字段才出现。如果出现,它标识如何控制程序调用的执行。如果该字段的值为free-run,程序调用将一直处于running状态,直到本地或远程事件发生,使其停止执行。如果该字段的值为。ycle-limited,则要维护一个显式计数器,以保存执行的循环数。当计数器到达0时,程序调用停止执行,并返回idle状态。为支持这一模式的实施,该字段可取值step-limited。在这种情况下,当程序调用开始或恢复时,应规定执行的步数。当步数减至0时,控制程序调用自动转换到stopped状态。该模式通常仅用于调试目的。实施是否支持&runningMode字段的step-limited值,应在CSI中标明(见GB/T16720.2-2005第25章)。Running-Mode::=INTEGER{free-run(0),cycle-limited(1),step-limited(2)}(0..2)12.1.1.17&remaining-Cycle-Count(剩余循环计数)该字段为整型,只有当。s:参数CBB经过协商后,并且,&control字段的值为controlling,&running-Mode字段的值为。ycle-limited时,该字段才出现。如果出现,该字段就是剩余的要执行的程序调用循环次数。12.1.1.18&remaining-Step-Count(剩余步骤计数)该字段为整型,只有当csr参数CBB经过协商后,并且,&control字段的值为。ontrolling,&running-Made字段的值为step-limited时,该字段才出现。如果出现,该字段就是当处于step-limitedRunning模式时剩余的要执行的步骤数。12.1.2程序调用状态图图12提供程序调用的状态图。注:在图12中,一些中间状态(仅存在于指示原语和应答原语之间的状态)可作为程序调用的特有状态报告出来。通常,这是因为转换会花费大量的时间。名为“Pn",的状态不在GetProgramInvocationAttributes服务中报告,因为CreatePrograrnInvocation服务和DeleteProgramInvocation服务均被定义为原子的(不可中断的),所以,对于MMS客户表现为瞬时的。为了保持图的简单,Kill服务的一些中间状态没有表示出来。因为Kill服务过程被定义成原子的(不可中断的),所以不报告这些中间状态,因而其影响表现为瞬时的。不改变程序调用状态的MMS服务请求的影响(如GetProgramInvocationAttributes)不在该图中表示。术语“破坏性的”与“非破坏性的”在Cancel服务(见8.5)的服务过程中和本章描述的相应服务过程中解释。 GB/T16720.1-2005/ISO9506-1:2003户图12程序调用状态图该模型的转换路线为:1一Start.indication9一Resume.indication2-Start.response(+)10--Resume.response(十)3-Start.response(一)non-destructive11--Resume.response(一)non-destructive4-Start.response(一)destructive12-Resume.response(一)destructive5-Stop.indication13-(endofprogram)Reusable=true6-Stop.response(+)14一(endofprogram)Reusable=false7-Stop.response(一)non-destructive15-Kill.response(-1-)8-Stop.response(一)destructive16-Reset.indication GB/T16720.1-2005/ISO9506-1:200317-Reset.response(+)Reusable=true23--CreateProgramInvocation.response(+)18-Reset.response(+)Reusable=false24-CreateProgramInvocation.response(一)19-Reset.response(一)non-destructive25一DeleteProgramlnvocation.indication20-Reset.response(一)destructive26-DeleteProgramlnvocation.response(+)21-(programstop)27-DeleteProgramlnvocation.response(一)22-CreateProgramInvocation.indication如果支持csr,下列转换也被识别:101Select.indication104Select.indication,ControllingProgram102Select.response(+)Invocationisabsent103Select.response(一)105Select.response(一)106Select.response(+)如果不支持csr,四种状态IdleDeselected,Selecting,Deselecting,IdleSelected组合在一起,构成单一状态idle,用深色虚线方框标明。注:在此图中未包括转换Kill.indication,因为Kill服务的活动是原子的。在指示与应答(+)之间的程序调用状态没有差别。图中未包括Kill.respone(一)是因为它不引起状态转换。12.2CreateProgramInvocation(建立程序调用)服务该服务供MMS客户用来在VMD中将域组装进指定的程序调用之中。MMS客户指定一个域表,这些域要包括在程序调用中。注意,若给定的域是可共享的,那么,它可同时出现在多个程序调用的&Domain字段中。12.2.1结构该服务原语的结构如表43所示。表43CreateProgramInvocation服务12.2.1.1Argument此参数包含CreateProgramInvocation服务请求的参数。12.2.1.1.1ProgramInvocationName此参数类型为Identifier,它是这个程序调用的&name字段。该名称在VMD的所有程序调用名称中是唯一的。12.2.1.1.2ListOfDomainName(域名表)此参数类型为ListOfIdentifier,它用名字来指定一些已存在的域,这些域组合成该程序调用的部分。表中至少应有一个这样的元素。在建立该程序调用过程中,表的顺序对MMS服务器是十分重要的。12.2.1.1.3Reusable此布尔类型参数表明该程序调用是完成之后进人idle状态,还是处于失败后的unrunnable状态。 GB/T16720.1-2005JISO9506-1:200312.2.1.1.4Monitor此参数为布尔型,如果出现,则表明MMS客户希望知道有关程序调用的执行进程。12.2.1.1.5MonitorType此参数类型为布尔型,当且仅当Monitor参数之值为“真”时才出现。如其值为“真”,该参数表明通告是永久的,因而,通告在程序调用的生命期中始终存在。若值为“假”,通告是当前的,并且,只在关联保持时存在。此参数的值成为因此服务请求而隐含产生的事件登录的&duration字段的值。12.2.1,1.6Control此参数指明程序调用的Control属性的值。该参数的值可以为controlling,controlled或normalo只有当csr参数CBB经协商后,该参数才出现。12.2.1.2Result(+)Result(+)参数表示服务请求成功。成功的结果不返回服务专用参数。12.2.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。12.2.2服务过程12.2.2.1先决条件MMS服务器将验证:a)不存在与ProgramInvocationName参数同名的程序调用;b)ListOfDomainNames参数的所有的域都存在;c)每个域都可以组合到这个程序调用中(每个域或者处于ready或d7状态,或者处于in-use,d4,d5或d6状态,且&sharable字段值为“真”);d)VMD的&accessControt字段所引用的访问控制表对象中规定的所有条件对于服务类=LOAD都应满足;e)不存在一个事件条件、事件活动或事件登录,它们的VMD范围名称与这个程序调用相同。如果上述任一条件不满足,将返回Result(一)。12.2.2.2活动MMS服务器将执行下列活动序列:12.2.2.2.1活动步骤1创建一个程序调用对象,并按以下步骤初始化:a)设置它的&name字段等于ProgramInvocationName参数。b)设置它的&ProgramlnvocationState字段等于idle.c)设置它的&accessControl字段为引用报告MMSDeletable值为“真”的访问控制表对象(见9.1.4)。预定义符号“M_Deletable”用于此目的。d)设置&reusable字段等于Reusable参数。e)如果指定了Monitor参数,则设置&.Monitor字段为“真”,否则为“假”。f)设置&executionArgument字段等于一个长度为0的串。12.2.2.2.2活动步骤2对于ListOfDomainNames参数中的每个域,执行下列步骤:a)若该域的&State字段等于d4,d4或d6,则等待,直到该域进人in-use状态;b)若该域的&State字段等于d7,则等待,直至该域进人ready状态;c)将域的邑State字段修改为in-use;d)将对这个域的引用加到该程序调用的&,Domains字段中;e)将对这个程序调用的引用加到域的乙ProgramInvocations字段中。 GB/T16720.1-2005/ISO9506-1:200312.2.2.2.3活动步骤3如果指定了Monitor参数,则无论程序调用何时停止运行都应能给出报告。为此,使用第18章中描述的事件管理工具。一旦程序调用脱离running状态(见12.12),则产生下列活动,它们使程序调用发出带有GetProgramInvocationAttribute应答的EventNotification请求原语。此时MMS服务器:a)创建一个带有如12.1.1.7所述属性的事件条件对象;b)创建一个带有如12.1.1.8所述属性的事件活动对象;c)创建一个带有如12.1.1.9所述属性的事件登录对象。注:这等效于程序调用脱离running状态的转换,即,若它处于running状态,它将被完成或停止(本地的,或通过MMS服务),或被截杀。12.2.2.2.4活动步骤4如果服务请求中出现了Control参数,并且其值等于CONTROLLING,则衣Control字段将被置为controlling,&controlled-Program-Invocations字段将被设置为一个空表。&program-Location字段被设置为空串,&running-Mode字段被设置为free-run.如果服务请求中出现Control参数,并且其值等于CONTROLLED,则Control字段将被设置为controlled,&controlled-Program-Invocations字段将被设置为null,如果服务请求中出现Control参数,并且其值等于NORMAL,则Control字段将被设置为normal,12.2.2.3结论MMS服务器保证此服务过程是原子的(不被指定这个程序调用或它的构成元素的其他MMS服务指示所中断)。若这一过程中的任一步骤失败,则服务失败,所有的部分完成的步骤被取消,并返回Result(一)应答。反之,服务成功,程序调用停留在idle状态,并返回Result(--),12.3DeleteProgramInvocation(侧除程序调用)服务该服务供MMS客户用来删除MMS服务器上的一个程序调用。12.3.1结构该服务原语的结构如表44所示。表44DeleteProgramInvocation服务匕一州川12.3.1.1Argument该参数包含DeleteProgramlnvocation服务请求的参数。12.3.1.1.1ProgramInvocationName此参数类型为标识符,它是被删除的程序调用的名称。12.3.1.2Result(+)Result(-l-)参数标明服务请求成功。成功的结果不返回服务专用参数。12.3.1.3Result(一)Result(一)参数标明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。 GBJT16720.1-2005JISO9506-1:200312.3.2服务过程12.3.2.1先决条件MMS服务器将验证:a)指定的程序调用存在;b)VMD的&accessControl字段所引用的访问控制表中规定的所有条件对于服务类=DELETE都满足(见9.1.3);c)程序调用的&accessControl字段所引用的访问控制表中规定的所有条件对于服务类二DE-LETE都满足(见9.1.3);d)程序调用处于idle,stopped或unrunnable状态;e)如果要被删除的程序调用的&control字段的值为controlled,同时,&controlling-Program-Invocation字段的值标明了一些程序调用,则&controlling-Program-Invocation字段所引用的程序调用处于idel状态。如果上述任一条件不满足,将返回Result(一)应答。12.3.2.2活动MMS服务器将从程序调用的&Domains字段所引用的每个域的&ProgramInvocations字段中取消对这个程序调用的引用。如果下属域没有对程序调用的其他的引用,则将它从in-use状态转换到ready状态。如果该程序调用对象的Monitor字段的值为“真”,则按照DeleteEventEnrollment,DeleteEventAc-tion和DeleteEvenCondition服务过程中所描述的过程将关联的事件登录、事件活动和事件条件删除,除非由这些对象所引用的访问控制表对象所表达的所有限制被忽略。MMS服务器将从这个程序调用的&accessControl字段所引用的访问控制表中取消对该程序调用的引用。如果被删除的程序调用的&control字段的值为controlled,并且,&controlling-Program-Invoca-tion字段值标明了一些程序调用,则通过删去对将要被删除的程序调用的引用,来变更被&controlling-Program-Invocation字段所引用的程序调用的&Controlled-Program-Invocations字段。如果被删除的程序调用的&control字段的值为controlling,对于出现在&Controlled-Program-Invocations字段中的每个程序调用,执行下列操作:a)将该程序调用的&control字段的值从。ontrolled改变为normal;b)从该程序调用的&controlling-Program-Invocation字段中取消对这个将要被删除的程序调用的引用。程序调用对象将被删除。如果这一过程中的任一步骤失败,则服务失败,所有的部分完成的步骤将被取消,并返回Result(一)应答。否则,返回Result(+)a12.4Start(开始)服务该服务供MMS客户用来将程序调用的状态改变为running。而该服务成功完成后,程序调用处于idle状态。12.4.1结构该服务原语的结构如表45所示。表45Start服务ArPgruomgernamtInvocationName洲RMeq十MI(n=d)协一十一 GB/T16720.1-2005八SO9506-1:2003表45(续)}参ft"It"ReuIndRsnCnf.⋯1’CBB}.nxecutlontireumentUU1=JIJtartLocationUUl=)csrIlcunninglvioaeUUt=少csr.UvcleUouni乃at一)IotenUountJJl片).L"rror1vDe1V11V1t一)奎"Yrograrn1nvocailcnJtate....⋯⋯“.......-一1V1.一1V1‘一’.⋯12.4.1.1Argument此参数包含Start服务请求的参数。12.4.1.1.1ProgramInvocationName此参数类型为Identfifer,它规定要开始的程序调用。12.4.1.1.2ExecutionArgument此参数是一个任选字段,可用于向已开始的程序调用传递数据。此参数或者是一个字符串,或者是一个外部编码值。12.4.1.1.3StartLocation(开始位里)这是一个可选参数,其类型为字符串。只有当程序调用的&control字段的值等于controlling时,该参数才出现。如果&control字段的值等于controlling时,该参数的使用由用户选择。如果该参数被提供,其格式应与该程序调用的&prograrnLocation字段一样(见GB/T16720.2-2005第25章)。该参数的值将标明该程序调用开始执行的位置。如果服务请求中省略StartLocation参数,则执行将从程序的第一步开始。程序的第一步或缺省的第一步的含义是本地事务。12.4.1.1.4RunningMode只有当程序调用的乙control字段的值等于controlling时,此参数才出现。此参数的值标明程序调用的&runningMode字段的值。根据程序调用&runningMode字段所选择的值,下列参数之一将出现。12.4.1.1.4.1NoLimit(无限制)此参数类型为null,当&runningMode字段的值被设置为free-run时,选此参数。12.4.1.1,4.2CycleCount此参数为整型,当&runningMode字段的值被设置为cycle-limited时,选此参数,并且将&remaining-Cycle-Count字段的值设置为此参数的值。此参数的值应该大于0o12.4.1.1.4.3StepCount(步骤计数)此参数为整型,当&runningMode字段的值被设置为step-limited时,选此参数,并且将&remaining-Step-Count字段的值设置为此参数的值。此参数的值应该大于。。Step-limited&runningMode的实施在CSI(见(TB/T16720.2-2005第25章)中定义。12.4.1.2Result(+)Result(+)参数表明服务请求成功。成功的结果不返回服务专用参数。12.4.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。 GB/T16720.1-2005/ISO9506-1:2003当标明失败时,将返回下列参数。12.4.1.3.1ProgramInvocationState在Start服务失败之后,如有可能,该程序调用应返回到它先前的状态,否则,处于unrunnable状态。此参数标明Start服务不成功之后的程序调用状态。12.4.2服务过程12.4.2.1先决条件MMS服务器应验证:a)指定的程序调用存在;b)VMD的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXECUTE都满足(见9.l.3);c)程序调用的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXE-CUTE都满足(见9.1.3);d)程序调用处于idle状态。e)如果Start服务请求的ProgramInvocationName参数所标识的程序调用的&control字段的值不为controlling,StartLocation参数和RunningMode参数不存在;f)如果Start服务请求的ProgramInvocationName参数所标识的程序调用的&control字段的值为controlling,则该程序调用被VMD的&selected-Program-Invocation字段所引用。如果这些条件中任何一个不满足,将返回Result{一)。12.4.2.2活动12.4.2.2.1活动步骤1如果在服务指示中出现ExecutionArgument参数,则程序调用对象的&executionArgurnent字段的值将被设置为该ExecutionArgument参数的值。否则,&executionArgurnent字段的值将保持不变。12.4.2.2.2活动步骤2如果支持csr参数CBB,且程序调用的&control字段的值等于controlling,对这个程序调用的&Controlled-Program-Invocations字段的每个元素执行下3FI1步骤:a)核实所引用的程序调用的衣control字段等于controlled,并且,它的&controlling-Program-Invocation字段引用这个程序调用;b)如果所引用的程序调用处于idle状态,则对该程序调用执行Start过程,并将它转人running状态;c)如果所引用的程序调用处于stopped状态,则对该程序调用执行Resume过程,并将它转入running状态;d)如果所引用的程序调用不能处于running状态,则对表中以前引用的每个程序调用执行Stop过程。如果任何一个Stop过程失败,如何处理这种情况是本地事务。VMDStop过程可能是合适的活动。最后,对该服务请求返回Result(一),并跳过这个过程的剩余步骤。12.4.2.2.3活动步骤3如果由Start服务请求的ProgramInvocationName参数标识的程序调用的&control字段的值为controlling,则程序调用的属性设置如下:a)如果在服务请求中选择了NoLimit参数,则程序调用的&runningMode字段被设置为free-run;b)如果在服务请求中选择了CycleCount参数,则程序调用的&runningMode字段被设置为cy-cle-limited,同时,程序调用的&remaining-Cycle-Count字段被设置为CycleCount参数的值;c)如果在服务请求中选择了StepCount参数,则程序调用的&runningMode字段被设置为 GB/T16720.1-2005/ISO9506-1:2003step-limited,同时,程序调用的&remaining-Step-Count字段被设置为StepCount参数的值;d)如果在服务请求中出现StartLocation参数,此参数值将决定程序调用的程序控制信息,以便为程序调用的执行提供起始点。用于传递开始位置的表达是本地事务,一般取决于所使用的编程语言。StartLocation参数的格式在CSI中描述(见GB/T16720.2-2005第25章)。e)如果服务请求中未出现StartLocation参数,则在执行程序调用时使用开始位置的缺省值。12.4.2.2.4活动步骤4程序调用将被置于starting状态。将一个程序调用置于starting状态意味着启动一个过程,经过一个时间间隔(可被忽略不计)后,将程序调用转换到running状态。一旦程序调用置于running状态,则发出Result(+)原语。如果开始处理失败,将发出Result一)应答原语。同时,如果可能,程序调用将返回idle状态,或者unrunnable状态。ProgramInvocationState参数随同Result(一)应答一起返回,以标识程序调用的状态。一般来讲,由于开始一个程序调用可能要花费一些时间,本操作应认为是可取消的,即使取消不能做到非破坏的。如果服务被取消,返回对该服务请求的Result(一)应答,标明程序调用的结果状态,同时,取消服务将发出Result(+)应答。12.5Stop(停止)服务Stop服务供MMS客户用来请求MMS服务器将一个有名程序调用从running状态转换到stopped状态。12.5.1结构该服务原语的结构如表46所示。表46Stop服务匕寸布门12.5.1.1Argument该参数包含Stop服务请求的参数。12.5.1.1.1ProgramInvocationName此参数类型为标识符,它指定要停止的程序调用。12.5.1.2Result(+)Result(+)参数表明服务请求成功。成功的结果不返回服务专用参数。12.5.1.3Result(一)Result(一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。当失败时,将返回下列参数。12.5.1.3.1ProgramInvocationState此参数类型为ProgramInvocationState,它指明若Stop服务失败,该程序调用的最后状态。12.5.2服务过程12.5.2.1先决条件MMS服务器将验证: GB/T16720.1-2005/ISO9506-1:2003a)指定的程序调用存在;b)VMD的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXECUTE都满足(见9.1.3);c)程序调用的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXE-CUTE都满足(见9.1.3);d)程序调用处于running状态。如果上述任一条件不满足,将返回Result(一)。12.5.2.2活动程序调用应处于stopping状态。将一个程序调用处于stopping状态意味着启动一个过程,经过一个时间间隔(可忽略不计)后,将程序调用转换到stopped状态。一旦程序调用处于stopped状态,则发出Result(+)原语。如果停止处理失败,则发出Result(一)应答原语,同时,如果可能,程序调用将返回到running状态,或者unrunnable状态。ProgramInvocationState参数随同Result(一)应答一起返回,用以标明程序调用的状态。一般来讲,由于停止一个程序调用可能要花一些时间,本操作应认为是可取消的,即使取消不能做到非破坏的。如果服务被取消,返回对该服务请求的Result(一)应答,以标明程序调用的结果状态,同时,取消服务将发出Result(-)应答。注:如果程序调用通过顺序过程编程语言来实现,为了其后的恢复处理,本服务将保存当前程序步骤,作为该程序调用的控制信息的一部分。12.6Resume(恢复)服务Resume服务供MMS客户用来请求MMS服务器把一个程序调用的状态改变为running,12.6.1结构该服务原语的结构如表47所示。表47Resume服务}参.ft.41’IRe。一’Ind】RsoICnf".{CBB}.lirLyumenr}IVI}IVI=)I}}tIrrograminvocationName}Ivi}IVIk二J}}}1.r,xecutlonAraument}u}l)l=J}}}t.Kesume1VPe}V}lA=JI}}csr.It.naneelvloae}0}0t今J}}}.Il"4oLIMIt}J}Jl弃J}}}.Il.Vclecount}J}Jl一J}}}..Jteot-ount}0}0l=J}}}.I找esulu一)}}}0}口、片J}IIr-rror1Vne}}}lvlIlvit=I{1"rrogram1nvoIcanonJtatellIIVl{1V1、一少]112.6.1.1Argument该参数包含Resume服务请求的参数。12.6.1.1.1ProgramInvocationName此参数类型为标识符,它指定要恢复的程序调用。12.6.1.1.2ExecutionArgument此参数是一个可选字段,用于向正在恢复的程序调用传递数据。该参数或者是一个字符串,或者是 GB/T16720.1-2005/ISO9506-1:2003一个外部编码值。12.6.1.1.3ResumeType(恢复类型)如果csr参数CBB经过协商,且程序调用的&control字段等于controlling,则此参数出现。如果出现,将选择下列一个选项。12.6.1.1.3.1ContinueMode(继续方式)此参数标明要恢复执行该程序调用,但其&running-Mode字段不变。12.6.1.1.3.2ChangeMode(修改方式)此参数标明要恢复执行该程序调用,同时,其&running-Mode字段改为一个新的值。如果选此参数,下列参数之一出现。12.6.1.1.3.2.1NoLimit此参数类型为null,如果&running-Mode字段的值要改变为free-run,则选该参数。12.6.1.1.3.2.2CycleCount此参数类型为整形,如果&running-Mode字段的值要改变为cycle-limited,则选该参数,并且将&remaining-Cycle-Count字段的值设置为此参数的值。此参数的值应该大于。。12.6.1.1.3.2.3StepCount此参数为整型,如果&running-Mode字段的值要改变为step-limited,则选该参数,并且将&remaining-Step-Count字段的值设置为此参数的值。此参数的值应该大于0.Step-limited&,runningMode的实施在CSI(见GB/T16720.2-2005第25章)中定义。如果不支持,可以不选此选择项。12.6.1.2Result(+)Result(+)参数标明服务请求成功。成功的结果不返回服务专用参数。12.6.1。3Result(一)Result(一)参数标明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败原因。当标明失败时,返回下列参数。12.6.1.3.1ProgramInvocationState此参数类型为ProgramInvocationState,Resume服务失败之后,如果可能,程序调用将返回到它的前一个状态,或者被置于Unrunnable状态。此参数标明Resume服务失败后程序调用的状态。12.6.2服务过程12.6.2.1先决条件MMS服务器将验证:a)指定的程序调用存在;b)VMD的乙accessControl字段所指定的访问控制表中的所有条件对于服务类二EXECUTE都满足(见9.1.3)0c)该程序调用的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXE-CUTE都满足(见9.1.3)0d)该程序调用处于stopped状态。e)如果程序调用的&control字段的值不是controlling,则continueMode参数和ChangeMode参数都未出现。f)如果选择了continueMode参数:1)如果程序调用的&control字段的值是cycle-limited,则&remaining-Cycle-Count字段的值大于0;2)如果程序调用的&running-Mode字段的值是step-limited,则&remaining-Step-Count字段的值大于。;3)如果Resume服务请求的ProgramInvocationName参数所标明的程序调用的&control GB/T16720.1-2005/ISO9506-1:2003字段为controlling,对于这个程序调用的&Controlled-Program-Invocations字段的每个元素,被引用的程序调用的&control字段的值等于controlled,并且,它的&controlling-Program-Invocation字段引用这个程序调用。如果上述任一条件不满足,返回Result(一)。12.6.2.2活动a)如果出现ExecutionArgument参数,则该程序调用的&executionArgument字段的值将作为ExecutionArgument参数的值。否则,&.executionArgument字段的值保持不变。b)如果Resume服务请求的ProgramInvocationName所标明的程序调用的&control字段等于controlling,对于这个程序调用的&Controlled-Program-Invocations字段的每个元素,执行下列步骤:1)如果被引用的被控程序调用处于idle状态,则对被引用的被控程序调用执行Start过程,并将它转人running状态;2)如果被引用的被控制程序调用处于stopped状态,则对被引用的被控程序调用执行Re-sume过程,并将它转人running状态;3)如果被引用的被控程序调用不能置于running状态,则对表中前面的每个被控程序调用执行Stop过程。如果Stop过程失败,如何处理这种情况是本地事务。VMDStop过程可能是合适的活动。对该服务请求返回Result(一),并跳过这个过程的剩余步骤。c)程序调用将被置于resuming状态。将一个程序调用置于resuming状态意味着启动一个过程,经过一个时间间隔(可忽略不计)后,将程序调用转换到running状态。一旦程序调用置于running状态,发出Result(-I-)原语。如果Resume过程失败,将发出Result(一)应答,如果可能,程序调用将返回到stopped状态,或者unrunnable状态。ProgramInvocationState参数随同Result(一)应答一起返回,用以标明程序调用的状态。一般来讲,由于恢复一个程序调用可能要花一些时间,本操作可认为是可取消的,即使取消不能做到非破坏的。如果服务被取消,对该服务请求返回Result(一)应答,标明该程序调用的结果状态,同时,取消服务将发出Result(+)应答。注:如果程序调用通过顺序过程编程语言来实现,本服务将使该程序调用从控制信息所标明的程序步骤处继续执行。12.7Reset(复位)服务Reset服务供MMS客户用来请求MMS服务器,根据该程序调用对象的&-reusable字段的值,将一个有名程序调用从stopped状态转换到idle状态或unrunnable状态。12.7.1结构该服务原语的结构如表48所示。表48Reset服务口一一洲12.7.1.1Argument此参数包含Reset服务请求的参数。 GB/T16720.1-2005/ISO9506-1:200312.7.1.1.1ProgramInvocationName此参数为标识符类型,用于指定要复位的程序调用。12.7.1.2Result(+)Result(+)参数标明服务请求成功。成功的结果不返回服务专用参数。12.7.1.3Result(一)Result(一)参数标明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败原因。当标明失败时,返回下列参数。12.7.1.3.1ProgramInvocationState此参数类型为ProgramInvocationState,如果Reset服务失败,它标明程序调用的最后状态。12.7.2服务过程12.7.2.1先决条件MMS服务器将验证:a)指定的程序调用存在;b)VMD的&accessControl字段所指定的访问控制表中的所有条件对于服务类=.EXECUTE都满足(见9.l.3);c)程序调用的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXE-CUTE都满足(见9.1.3);d)程序调用置于stopped状态。如果这些条件任何一个不满足,返回Result(一)。12.7.2.2活动程序调用将处于resetting状态。一个程序调用处于resetting状态意味着启动一个过程,经过一个时间间隔(可忽略不计)后,将程序调用转换到另一个状态。如果&reusable字段的值为“真”,则下一个状态应该为idle状态;如果&reusable字段的值为“假”,则下一个状态应该为unrunnable状态。一旦程序调用被置于idle或unrunnable状态,发出Result(+)。如果Reset过程失败,将发出Result(一)应答,如果可能,程序调用将返回stopped状态,或者unrunnable状态。ProgramInvocationState参数随同Result(一)应答一起返回,用以标明该程序调用的状态。一般来讲,由于复位一个程序调用可能要花一些时间,本操作认为是可取消的,即使取消不能做到非破坏的。如果服务被取消,对该服务请求返回Result(一),标明程序调用的结果状态,同时,取消服务将发出Result(+)应答。注:如果程序调用通过顺序过程编程语言来实现,本服务将更改该程序调用的控制信息以反映程序调用再次处于“程序的开始”。12.8Kill(截杀)服务Kill服务供MMS客户用来请求MMS服务器将一个程序调用置于unrunnable状态。12.8.1结构该服务原语的结构如表49所示。表49Kill服务卜一州片一 GB/T16720.1-2005JISO9506-1:200312.8.1.1Argument该参数包含Kill服务请求的参数。12.8.1.1.1ProgramInvocationName此标识符类型的参数指定要被截杀的程序调用。12.8.1.2Result(+)Result(十)参数表明服务请求成功。成功的结果不返回服务专用参数。12.8.1.3Result(一)Result一)参数表明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败的原因。12.8.2服务过程12.8.2.1先决条件MMS服务器将验证:a)指定的程序调用存在;b)VMD的&.accessControl字段指定的访问控制表中的所有条件对于服务类=EXECUTE都满足;。)程序调用的&accessControl字段所指定的访问控制表中的所有条件对于服务类=EXE-CUTE都满足;如果这些条件中的任何一个不满足,将返回Result(一)。12.8.2.2活动MMS服务器将该有名程序调用置于unrunnable状态。如果Kill服务失败,该程序调用的状态将不改变。12.9GetProgramInvocationAttributes(获取程序调用属性)服务该服务供MMS客户用来请求MMS服务器返回与指定程序调用相关的属性。12.9.1结构该服务原语的结构如表50所示。表50GetProgramInvocationAttributes服务ARerPSLMRMEAECgsutouriexrcasMoColruecnmttngoceoest(SireroausrLPRn+tnaofbostCirDumtilrsolrFRDoCn)eoeotgnrdneolIorelmnmeiaetAfnvatmagargPRobriiogncrnlMuLeloiaungotNmLongicrodiaeisenCnmnmtigtyoNecsInlanemvoCecoautniotns一一 GB/T16720.1-2005八SO9506-1:2003表50(续)巨卞Req价川12.9.1.1Argument此参数包含GetProgramInvocationAttributes服务请求的参数。12.9.1.1.1ProgramInvocationName此参数类型为标识符,它是要返回其属性的程序调用的名称。12.9.1.2Result(+)Result(+)参数表明服务请求成功。成功的结果返回下列参数。12.9.1.2.1State此参数类型为program]nvocationState,它是该程序调用的&programInvocationState字段的值。12.9.1。2.2ListOfDomainNames此参数类型为标识符,它提供该程序调用的&Domain字段所引用的域的名称。12.9.1.2.3MMSDeletable9.1.4规定该参数的返回值。12.9.1.2.4Reusable此参数类型为布尔型,它是该程序调用的&reusable字段的值。12.9.1.2.5Monitor该参数类型为布尔型,它是该程序调用的&monitor字段的值。若该参数为“真”,则相关的事件登录对象的属性可利用GetEventEnrollmentAttribute。服务(见21.4)获得。12.9.1.2.6ExecutionArgument此参数包含该程序调用的&executionArgument字段的值。此参数或者是一个字符串,或者是一个外部编码值。12.9.1.2.7AccessControlList此参数类型为标识符,它是该程序调用&accessControl字段所指定的访问控制表对象的名称。只有aco参数CBB经协商后,此参数才出现。12.9.1.2.8ErrorCode此参数为整型,它包含该程序调用的&-errorCode字段的值。只有csr参数CBB经协商后,此参数才出现。12.9.1。2.9Control此参数包含该程序调用的acontrol字段。只有csr参数CBB经协商后,此参数才出现。&control字段可能的值为controlling,controlled或normal。根据该字段的不同值,将出现下列不同的参数。12.9.1.2.10Controlling如果程序调用的"-control字段的值为controlling,则选此参数。如果此参数被选择,将出现下列附加参数。12.9.1.2.11ListOfProgramInvocations此参数标明这个程序调用的&Controlled-Program-Invocations字段中的程序调用的名称。此表可以有零个或多个元素。 GB/T16720.1-2005/ISO9506-1:200312.9.1.2.12ProgramLocation此参数类型为字符串。如果出现,当程序调用与顺序编程语言有关时,它标明&program-Location字段的值。对于那些与顺序编程语言无关的程序调用,此参数不出现。此参数的用法在CSI中描述(见GB/T16720.2-2005的第25章)。12.9.1.2.13RunningMode此参数标明该程序调用的衣running-Mode字段的值。根据&running-Mode字段值的不同,将出现下列参数之一。12.9.1.2.14FreeRunning选择这个null类型参数标明&running-Mode字段为free-run.12.9.1.2.15RemainingCycleCount选择此参数标明&Irunning-Mode字段为cycle-limited。此外,此参数的值应等于程序调用的&remaining-Cycle-Count字段的值。12.9.1.2.16RemainingStepCount选择此参数标明&running-Mode字段为step-limited。此外,此参数的值应等于程序调用的&-remaining-Step-Count字段的值。step-limitedRunning-Mode的实现在CSI(见GB/T16720.2-2005第25章)中定义。如果不支持,将不选该参数。12.9.1.2.17Controlled如果程序调用的邑control字段为controlled,则选该参数。如果选此参数,下列附加参数将出现。12.9.1.2.18ControllingProgramInvocation此参数标明该程序调用的&controlling-Program-Invocation字段所引用的程序调用。如果没有这样的程序调用被引用,此参数的值为null.12.9.1.2.19Normal如果程序调用的&control字段的值为normal,则选此参数。如果此参数被选择,则没有附加参数。12.9.1.3Result(一)Result(一)标明服务请求失败。ErrorType参数(在第24章中详细定义)提供失败原因。12.9.2服务过程MMS服务器将核实指定的程序调用存在。如该程序调用不存在,则返回Result(一)应答。否则,有名的程序调用的属性随同Result(-I-)一起返回。12.10Select(选取)服务Select服务供MMS客户用来请求MMS服务器指定一个程序调用,以此作为控制VMD的被选程序调用。12.10.1结构该服务原语的结构如表51所示。表51Select服务户一一州'