欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    DB3502∕T 056.4-2020 政务信息共享协同平台 第4部分:二次开发.docx

    • 资源ID:95464021       资源大小:926.72KB        全文页数:47页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DB3502∕T 056.4-2020 政务信息共享协同平台 第4部分:二次开发.docx

    ICS 35.240CCS L773502/T福建省厦门市地方标准DB3502/T 056.42020政务信息共享协同平台第 4 部分:二次开发The sharing and collaborative platform of government informationPart 4:Secondary development2020 - 12 - 31 发布2021 - 01 - 01 实施厦门市市场监督管理局发 布DB3502/T 056.42020目次前言 . II引言 . III1范围 . 12规范性引用文件 . 13术语和定义 . 14缩略语 . 25业务流程开发 . 2流程脚本 . 2数据空间 . 116功能插件开发 . 13支持语言 . 13Java 插件开发. 13Python 插件开发 . 14附录 A(资料性)业务流程脚本与数据空间示例 . 15A.1流程脚本代码示例 . 15A.2数据空间代码示例 . 28附录 B(资料性)Java 插件代码示例 . 40B.1说明 . 40B.2Java 插件源代码. 40B.3平台流程调用 . 40附录 C(资料性)Python 插件代码示例 . 41C.1说明 . 41C.2Python 插件源代码. 41C.3平台流程调用 . 42参考文献 . 43IDB3502/T 056.42020前言本文件按照GB/T 1.12020标准化工作导则  第1部分:标准化文件的结构和起草规则的规定起草。本文件为DB3502/T 056政务信息共享协同平台的第4部分。DB3502/T 056已发布了以下部分:第 1 部分:总体设计;第 2 部分:资源管理;第 3 部分:接入要求;第 4 部分:二次开发。本文件是在DB3502/Z 033.42016政务信息共享协同平台技术规范 第4部分:平台二次开发的基础上,根据技术和需求变化,重新立项并制定的。与DB3502/Z 033.42016相比,除结构性调整和编辑性改动外,主要技术变化如下:a)  更新所支持开发语言版本(见 6.2.1.3、6.3.1.3, DB3502/Z 033.42016 的 6.1.1.3、6.2.1.3);b)  更新二次开发示例代码(见附录 B、附录 C,DB3502/Z 033.42016 附录 A、附录 B、附录 C)。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由厦门市工业和信息化局提出。本文件由厦门市工业和信息化局归口。本文件起草单位:厦门市信息中心、厦门畅享信息技术有限公司、厦门市标准化研究院。本文件主要起草人:吕志仁、赖炜炜、巫晓强、杨远军、朱永上、彭明剑、郭劲军、郭望、傅楚隆、揭英杰、吴宸勖、陈尚峰、卢淼先、闫焕友、张金梅、刘姗姗、李童、蔡跃华。IIDB3502/T 056.42020引言DB3502/T 056政务信息共享协同平台旨在确立政务信息共享协同平台总体设计、资源管理、接入要求、二次开发的技术标准,拟由四个部分构成。第 1 部分:总体设计。目的在于确立平台关键技术路线和软件系统的组织形式,确保平台总体架构满足国家对政务信息交换与共享的要求,明确平台内主要功能模块和模块间的逻辑关系,避免“过度建设”并确保“必要建设”。第 2 部分:资源管理。目的在于规范平台所支持的多种资源类型、协议标准、提供方式,为平台对外服务的兼容性提供保障;明确平台不同类型资源的属性,统一属性分类,为平台对外服务的通用性提供保障;针对资源生产、资源注册、资源测试、资源申请、资源调用、资源目录、资源检索、资源版本、资源安全等操作提出全生命周期管理要求,为平台对外服务的可用性提供保障。第 3 部分:接入要求。目的在于将平台对外接口标准化,明确接口在安全性、完备性、一致性、易用性、稳定性方面要求,进一步提升平台对外提供服务的能力和质量,并从网络接入、平台资源生产方、平台资源消费方、区级平台接入等方面,明确接入的实现方式,为保障平台建设质量及拓展平台应用范围提供技术支撑。第 4 部分:二次开发。目的在于规范平台提供二次开发的工作方式、对扩展模块管理方式,为后续平台业务流程及插件的完善提供统一标准,既避免了平台直接耦合上层各类业务,又允许不同部门结合特定业务需要,在授权范围内扩展平台功能。IIIDB3502/T 056.42020政务信息共享协同平台第 4 部分:二次开发1范围本文件规定了政务信息共享协同平台的业务流程开发和功能插件开发。本文件适用于政务信息共享协同平台功能扩展,软件开发人员基于本平台进行新功能的扩展开发时参照使用。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。DB3502/T 056.12020政务信息共享协同平台 第1部分:总体设计DB3502/T 056.22020政务信息共享协同平台 第2部分:资源管理DB3502/T 056.32020政务信息共享协同平台 第3部分:接入要求3术语和定义DB3502/T 056.12020、DB3502/T 056.22020、DB3502/T 056.32020界定的以及下列术语和定义适用于本文件。变量variable由一个标识符、一组数据属性、一个或多个地址和各数据值(地址与数据值间的联系可变)组成,通过声明或隐式声明建立的四元组。注:在某些编程语言中,地址可变,因而所结合的数据值可变,在其他编程语言中,地址固定不变,但所结合的数据值在执行期间可以改变。来源:GB/T 5271.152008,定义15.03.03局部local修饰或说明某一语言构造:所具有的作用域仅在对其声明的声明区域内。来源:GB/T 5271.152008,定义15.02.11全局global修饰或说明某一语言构造:处于所在程序中所有模块的作用域内。来源:GB/T 5271.152008,定义15.02.12数组array1DB3502/T 056.42020一种作为某一数组型的一个数据实例,其中各元素或适当的元素组都可以随机而独立的加以引用的聚合。来源:GB/T 5271.152008,定义15.03.08数据结构data structure数据单元间的物理联系或逻辑联系和数据本身。来源:GB/T 5271.152008,定义15.03.01同步synchronous用来修饰两个或两个以上的过程,他们取决于特定事件(如公用定时信号)的发生。来源:GB/T 5271.12000,定义01.01.28异步asynchronous用来修饰两个或两个以上的过程,他们不取决于特定事件(如公用定时信号)的发生。来源:GB/T 5271.12000,定义01.01.29并发concurrency并发是指两个或多个线程(程序)在同一时间间隔内发生。并发性是指在一段时间内宏观上有多个程序在同时运行。4缩略语下列缩略语适用于本文件。BPEL:业务流程执行语言(Business Process Execution Language)ID:唯一编码(Identity Document)WSDL:Web服务器描述语言(Web Service Description Language)XML:扩展性标识语言(eXtensible Markup Language)XSD:文档结构描述(XML Schema Definition)5业务流程开发流程脚本5.1.1总则5.1.1.1流程结构流程应支持以下流程结构:空语句、条件分支流程、循环流程、并发流程、流程中断。5.1.1.2应用调用方式流程应支持以下应用调用方式:同步调用应用、异步调用应用。5.1.1.3流程脚本示例代码流程脚本示例代码见附录A。2DB3502/T 056.420205.1.1.4流程脚本 XSD 描述流程脚本的XSD描述见图1。图1流程总结构5.1.1.5流程固有属性流程固有属性应包含“INFORMATION”、“GLOBAL_DATA”和“REQUESTER”:a)  INFORMATION 节点:描述流程名称、流程备注、流程版本、流程作者等信息;3DB3502/T 056.42020b)  GLOBAL_DATA 节点:定义流程的入参和返回结果,同时包含帐户设计器自动列出的本流程使用的全局变量;c)  REQUESTER 节点:用于在流程每次运行时,自动采集本次请求方的信息。5.1.2流程信息/INFORMATION 节点流程信息/INFORMATION节点结构见图2,包括:a)  flow_id:流程在管理平台上注册所获得的全局唯一 ID;b)  flow_name:流程可读名称;c)  version:流程当前版本号,通常为一数值;d)  author:流程作者,可选;e)  DESCRIPTION:流程说明,可选;f)  FLOWTIME:流程超时。流程将在运行时长超出该数值后,自动退出。格式为一整数,单位为秒;或者使用 d 表示天数、h 表示小时数,m 表示分钟数,如:2d3h,表示超时时长为两天又三小时。图2流程信息/INFOMATION 节点结构5.1.3流程全局数据/GLOBALDATA 节点流程全局数据/GLOBAL_DATA节点结构见图3,包含流程入参列表、出参列表、和全局变量列表:a)  流程入参列表应包含 0 到多个入参,值均为字符串,对应数据空间中的具体变量名;b)  流程出参列表应包含 0 到多个出参,值均为字符串,对应数据空间中具体的变量名;c)  全局变量列表由设计器自动生成,开发人员通常无须关注。图3流程全局数据/GLOBAL_DATA 节点结构4DB3502/T 056.420205.1.4流程请求方/REQUESTER 节点流 程 请 求 方 /REQUESTER 节 点 结 构 见 图 4 。 流 程 在 运 行 期 自 动 采 集 到 的 请 求 方 信 息 , 包 括“requester_id/请求方ID”和“requester_name/请求方名称”。前者用以在识别同时一刻发起请求的不同请求方。图4流程请求方/REQUESTER 节点结构5.1.5活动节点/ACTIVITY 节点活动节点/ACTIVITY节点结构见图5。ACTIVITY是流程的语句,每一个ACTIVITY节点代表发起一次对功能活动的调用。可调用的功能活动包括外部平台服务资源、流程引擎自带的内核函数、或插件服务,统称为“活动”。ACTIVITY内部包含三个子语句:a)  INIT:语句集,代表在调用当前活动之前执行的语句;b)  INVOKE:含 PARAMETER 和 RESULT 两个子语句:1)  PARAMETER 为本次活动所需入参,包括直接入参和表达式入参,其中,直接入参指特定变量,表达式指需进行计算后以求出入参值,比如 1 + 2;2)  RESULT 为本次活动出参;c)  FINI:语句集,代表在调用当前活动之后执行的语句。图5活动/ACTIVITY 节点结构5DB3502/T 056.420205.1.6异步活动/ASYNACTIVITY 节点异步活动/ASYNACTIVITY节点结构见图6。该结构与ACTIVITY相同,但在调用上为异步调用,即无需等待活动返回结果,流程应继续向前执行,直到流程后续通过BRANCHEWAIT节点主动等待之前发起的异步操作结果。图6异步活动/ASYNACTIVITY 节点结构图7ASYNACTIVITY 属性中的 asyn_seed 等信息6DB3502/T 056.42020流程可在等待之前多次发起异步操作,为方便在等待时识别具体哪一次的异步调用,应在调用ASYNACTIVITY之前,通过ASYNSEED语句获得全局唯一的“异步种”数据,填写在ASYNACTIVITY节点的attributes(属性)中,见图7。其中:a)  asyn_seed_id 为异步种子数据,每一个 ASYNACTIVITY 语句都拥有不同的该值;b)  asyn_invoke_id 为系统自动产生的异步调用种子数据,即使同一异步调用语句,多次调用也会产生不同的该值。5.1.7异步活动种子/ASNSEED 节点异步活动种子/ASYNSEED节点结构见图8。该节点用于产生异步调用所需的异步种,包括获得“asyn_seed_id/异步种ID”及本次异步的超时、后台检查时间时隔等配置。图8异步活动种子/ASYNSEED 节点结构5.1.8并发等待/BRANCHWAIT 节点并发等待/BRANCHWAIT节点结构见图9。BRANCHWAIT语句既用于等待并发,也用于等多个(次)异步执行的结果。应在属性中填写所需要等待的异步种。图9并发等待/BRANCHWAIT 节点结构BRANCHWAIT包含三个子语句,三者均为语句集:7DB3502/T 056.42020a)  CONVERGE:在有新的异步或并行运行结果到来时,触发调用,以执行其内部语句,通常流程在此实现多次异步运行结果或多个并发分支的数据合并。系统应保障每一时刻,仅会有一次并发或异步运行流程进入该合并节点;b)  INTERRUP:由后台线程周期性执行;c)  TIMEOUE:在指定异步种所对应的并发或异步操作超时后触发。5.1.9并发/CONCURRENCE 节点并发/CONCURRENCE节点结构见图10。CONCURRENCE应满足以下条件:a)  包含零或多个分支子语句 BRANCH,和一个 BRANCHWAIT 语句,后者用以等待前面所有分支持的运行结束;b)  包含 INIT 和 FINI 语句,分别在所有并发开始之前,和 BRANCHWAIT 结束之后执行。图10并发/CONCURRENCE 节点结构5.1.10结束并发等待/ENDWAIT 节点结束并发等待/ENDWAIT节点结构见图11。该节点用于在BRANCHWAIT中,中途放弃等待,直接运行BRANCHWAIT之后的语句。图11结束并发等待/ENDWAIT 节点结构5.1.11条件分支/IF 节点8DB3502/T 056.42020条件分支/IF节点结构见图12。IF节点包含一个CONDITION节点和一个ELSE节点,以及其它语句子集。CONDITION本身也是语句子集,并带有“conclusion”属性。CONDITIONS内部语句执行过程用以确定该属性的值为TRUE或FALSE。如果为TRUE,则运行其后除ELSE之后的所有子语句,否则直接运行ELSE语句。图12条件分支/IF 节点结构5.1.12条件未命中/ELSE 节点条件未命中/ELSE节点结构见图13。该节点不作为流程的一级节点出现,仅作为IF语句的子节点,在IF语句中条件为假时执行其内部的子语句。图13。图13条件未命中/ELSE 节点结构5.1.13空语句/PASS 节点空语句,仅作为占位符,不执行任何操作,见图14。图14空语句/PASS 节点结构9DB3502/T 056.420205.1.14多分支/SWITCH 节点多分支/SWITCH节点结构见图15。SWITCH语句提供多分支支持。每个分支为一个CASE语句。CASE语句应符合5.2.15的要求。如果没有任何CASE语句中的条件成立,则执行DEFAULT语句。图15多分支/SWITCH 节点结构5.1.15多分支入口/CASE 节点多分支入口/CASE节点结构见图16。CASE语句不是流程的一级语句,只准许出现在SWITCH语句中,提供case_index属性,用于决定SWITCH语句判断各CASE语句的次序。判断CASE语句的条件为其内的CONDITIONS语句。CONDITIONS语句的执行应符合5.2.11的相关要求。注:执行某一CASE语句之后,不会像C/C+语言的一样执行后续CASE,无需BREAK语句即可自动跳出。图16多分支入口/CASE 节点结构5.1.16流程中断/TERMINATE 节点流程中断/TERMINATE节点结构见图17。TERMINATE语句用于中途结束整个流程。使用该语句,流程将异常退出。图17流程中断/TERMINATE 节点结构5.1.17循环/WHILE 节点循环/WHILE节点结构见图18。WHILE在其内部的CONDITION语句条件成立时,将反复执行其内的子语句,直到条件不成立或遇到BREAK语句。10DB3502/T 056.42020图18循环/WHERE 节点结构5.1.18循环跳出/BREAK 节点BREAK语句将向上寻找所有父语句,直到遇到第一个WHILE循环,将中途结束该循环,继续执行WHILE之后的语句,见图19。图19循环跳出/BREAK 节点结构5.1.19循环继续/CONTINUE 节点CONTINUE语句将向上寻找所有父语句,直到遇到第一个WHILE循环,将中途跳出该循环的本次迭代,直接进入下一遍循环。见图20。图20循环继续/CONTINUE 节点结构数据空间5.2.1数据结构类型5.2.1.1政务信息共享协同平台支持三类数据结构:简单型、结构型、数组型。其中结构型和数组同为复杂结构型,二者可组合,如:结构中含有数组数据,或数组的元素是结构类型。数组在理论上应支持无限维度。5.2.1.2数据空间示例代码见附录 A.2。5.2.2简单数据/SimpleItem简单数据/SimpleItem结构见图21。简单数据包含“名称/name”、“类型/type”和“域/domain”属性,分别对应该变量的变量名、变量类型和变量可见范围。支持的简单数据类型包括四种类型:字符串/string、布尔型/boolean、整型/integer和双精度浮点数/double。11DB3502/T 056.42020图21简单数据/SimpleItem5.2.3数组数据/ArrayItem数组数据/ArrayItem结构见图22。ArrayItem应符合以下要求:a)  提供 DEF 节点,以定义其元素的结构类型。如:在 DEF 中定义的类型是 SimpleItem 结构,且数据类型为 string,则得到一个字符串类型的数组;在 DEF 中定义的类型是一个一维数组,则得到一个一维数组的数组,即二维数组。b)  DEF 节点之后,为具体的元素数组。5.2.4结构数据/StructItem图22数组数据/ArrayItem结构化数据/StructItem结构见图23。StructItem是多个相同或不同类型数据的组合,应符合以下要求:a)  支持结构嵌套子结构的多级结构;b)  支持包含数组的数据。12平台数据类型Java 数据类型转换过程备注简单类型的 stringString简单类型 integerint简单类型 booleanboolean简单类型 doubledoubleStructItemObject平台结构转换 Java 对象,该对象的 class 定义应存在。ArrayItemArrayListDB3502/T 056.42020图23结构化数据/StructItem6功能插件开发支持语言当前平台支持基于Java语言和Python语言的插件开发。Java 插件开发6.2.1Java 插件基本要求6.2.1.1插件提供形式:Java 插件应提供.java 的源文件以进行插件代码审查。审查通过后再由平台运行环境编译为.class 文件。6.2.1.2插件部署位置:插件固定部署在平台部署目录的 bin/plugin/java 作为类起始目录,不同插件项目宜在其下创建不同的子目录。6.2.1.3Java 运行环境:支持 1.8.0.x 版本,未来视平台持续改进,宜使用更高版本。6.2.1.4流程 脚本中调 用方法:通 过 ACITIVITY 或 ASYNACTIVITY, 指定其所 调用的活 动类型 为java_plugin,并指定路径为“core/java/路径名/类名/静态方法名”。6.2.1.5插件功能调用入口:类似 Java 项目的 Main 方法,仅允许使用静态方法作为入口。6.2.1.6Java 插件开发与使用示例,见附录 B。6.2.2Java 插件数据结构对应关系Java插件数据结构对应关系见表1。表1Java 插件数据结构对应关系13平台数据类型Python 数据类型转换过程备注简单类型的 stringstring简单类型 integerint简单类型 booleanbool简单类型 doublefloatStructItemdict平台结构转换 Python 对象,该对象的 class 定义应存在。ArrayItemlistDB3502/T 056.42020Python 插件开发6.3.1Python 插件基本要求6.3.1.1插件提供形式:Python 插件应提供.py 的源文件以进行插件代码审查。6.3.1.2插件部署位置:插件固定部署在平台部署目录的 bin/plugin/python 作为 python 文件起始目录,不同插件项目宜在其下创建不同的子目录。6.3.1.3Python 运行环境:支持 2.6.x 及 2.7.x 版本,未来随平台持续改进,宜升级至新版本 Python运行环境。6.3.1.4流程 脚本中调 用方法:通 过 ACITIVITY 或 ASYNACTIVITY, 指定其所 调用的活 动类型 为python_plugin,并指定路径为“core/java/路径名/py 文件名”。其中 py 文件名不含扩展名。6.3.1.5插件功能调用入口:仅允许以自由函数作为入口。6.3.1.6Python 插件开发与使用示例,见附录 C。6.3.2Python 插件数据结构对应关系Python插件数据结构对应关系见表2。表2Python 插件数据结构对应关系14DB3502/T 056.42020A                    A附录A(资料性)业务流程脚本与数据空间示例A.1流程脚本代码示例<FLOW xsi:schemaLocation=" collagen_v1.0.xsd"statement_number="0"><INFORMATION author="zxadmin" flow_name="社保核查" flow_id="XM.GOV.RH.ZX.SbHc"version="1.0.0"><DESCRIPTION>Created by CollaGEN FlowDesigner. Copyright </DESCRIPTION><FLOWTIMEOUT>3600s</FLOWTIMEOUT></INFORMATION><GLOBALDATA><PARAMETERS><PARAMETER>$/XM</PARAMETER><PARAMETER>$/SFZH</PARAMETER><PARAMETER>$/SHBXH</PARAMETER></PARAMETERS><RESULTS><RESULT>$/hcjgjy</RESULT></RESULTS><GLOBALVAR>$/_OUT_PARAMETERS_REGISTER_</GLOBALVAR><GLOBALVAR>$/_FLOW_EXCEPTION_</GLOBALVAR><GLOBALVAR>$/_BRANCHTASKS_</GLOBALVAR><GLOBALVAR>$/_REQUESTER_INFORMATION_</GLOBALVAR><GLOBALVAR>$/_FLOW_INFORMATION_</GLOBALVAR><GLOBALVAR>$/_NET_FAILD_DISPOSE_</GLOBALVAR><GLOBALVAR>$/_SERVICE_FAILD_DISPOSE_</GLOBALVAR><GLOBALVAR>$/_REQUESTER_SESSION_ID_</GLOBALVAR><GLOBALVAR>$/_REQUESTER_CONNECTION_ID_</GLOBALVAR>15DB3502/T 056.42020<GLOBALVAR>$/_REQUESTER_PORTAL_ID_</GLOBALVAR><GLOBALVAR>$/_LAST_APP_EXCEPTION_</GLOBALVAR><GLOBALVAR>$/_PARENT_CHILD_RELATION_</GLOBALVAR><GLOBALVAR>$/_RUNTIME_TASK_ID_</GLOBALVAR><GLOBALVAR>$/XM</GLOBALVAR><GLOBALVAR>$/SFZH</GLOBALVAR><GLOBALVAR>$/SHBXH</GLOBALVAR><GLOBALVAR>$/hcjgjy</GLOBALVAR><GLOBA

    注意事项

    本文(DB3502∕T 056.4-2020 政务信息共享协同平台 第4部分:二次开发.docx)为本站会员(馒头)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开