法律状态公告日
法律状态信息
法律状态
2015-09-09
未缴年费专利权终止 IPC(主分类):G06Q10/00 授权公告日:20111207 终止日期:20140722 申请日:20080722
专利权的终止
2011-12-07
授权
授权
2009-10-21
实质审查的生效
实质审查的生效
2008-12-10
公开
公开
技术领域
本发明涉及基于Web服务的电子公文流转自动化方法,更具体地说,本发明涉及一种基于Web服务的电子公文交换、流转以及显现的自动化方法。
背景技术
公文是政府机关处理公务和行政管理的重要工具,在各级机关、单位中,“办公”的一个重要内容就是办理和制发文件,即“办文”,办文是每个机关、单位大量的,日常的工作。依靠网络信息技术对公文进行高效有序的电子化处理,是电子政府建设的重要组成部分,是关系到电子政府建设全局的基础性工程,是政务信息互联互通的最重要的应用之一。电子公文流转自动化方法的设计按照统一的规范标准,在不同的地区,不同的政府部门之间进行电子公文的传输,并保证公文在传递过程中的安全性和时效性。实现安全可靠的政府电子公文信息交换,有助于提高办公效率,推进政务信息化建设的发展。
电子公文交换是典型的分布式应用,为了构造最优的交换模式,满足用户信息要求和处理要求,电子公文交换方法的设计需求应包括一下几个方面:
符合《基于XML的电子公文格式规范》国家标准作为电子公文的核心描述和表现。
遵循目录体系与交换体系国家标准,实现跨部门电子公文数据的共享和交换。
支持跨地区、跨部门、跨平台、支持多种程序设计语言,使平台具有广泛的兼容性和良好的可扩展性。
保证电子公文数据存储及其传输过程中的安全性。
目前,随着电子政务逐步深入的开展,许多软件开发商为了实现政府内部无纸化办公,实现日常文件的起草、审批和流转的网络化与电子化,研究设计了一系列电子公文应用解决方案,如北京书生公司的公文数字化系统、电子公文传输系统。这些系统提供了对各种纸质公文文档的扫描、索引、存储、查询和管理的功能,但电子公文需要被不同的办公自动化系统所识别、显现,需要采用置标语言对电子公文归档管理格式进行描述和解析,因此,传统的“电子公文”没有真正实现公文的电子化存储和传输。同时,这些解决方案主要针对同构环境下的电子公文应用,对于异构平台和数据库的支持也考虑得不足,而实际的电子公文应用会跨部门甚至跨地区,各部门的系统平台和数据库是异构的,因此不能满足求。
为了解决公文电子化的问题,我国已经确立以XML作为公文格式规范。国家标准《基于XML的电子公文格式规范》,是对电子公文体信息、公文样式信息、公文交换信息、公文归档信息、公文安全信息及其元数据的全面描述。标准规定了基于XML的电子公文的通用要求和基本原则,有利于电子公文的规范化管理及长久保存利用。但此标准并非解决如何实现电子公文的自动化流转的解决方案,如何支持基于跨部门跨地区的异构系统平台和数据库的电子公文应用,符合政府部门办公的实际需求等。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供基于Web服务的电子公文流转自动化方法中,该方法基于国家标准《基于XML的电子公文格式规范》对电子公文进行描述、解析,实现了电子公文可识别、可解析性以及高效的存储和传输,为电子公文的自动化流转提供了一种通用的解决方案,支持基于跨部门跨地区的异构系统平台和数据库的电子公文应用,符合政府部门办公的实际需求。
本发明采取以下设计方案,基于Web服务的电子公文流转自动化方法,包括以下步骤:
(1)通过定义XML结构定义文件XSD,构造XML形式的电子公文的复杂数据类型;
(2)根据步骤(1)中定义的电子公文复杂数据类型,为所要形成的电子公文流程描述文档定义Web服务描述文档WSDL;
(3)根据步骤(1)中构造的电子公文的复杂数据类型,构造商业流程执行语言BPEL,形成电子公文流程描述文档;
(4)将步骤(1)电子公文的复杂数据类型、步骤(2)中的Web服务描述文档WSDL和步骤(3)中所形成电子公文流程描述文档一并打包,发布到BPEL流程执行引擎。
所述步骤(1)XML形式的电子公文的复杂数据类型的方法为:以“公文体”为根元素,其子元素包括“眉首”、“主体”、“版记”,每个元素又包含一个或多个子元素。
所述步骤(2)为所要形成的电子公文流程描述文档定义Web服务描述文档WSDL包括以下步骤:
A.根据步骤一中定义的电子公文复杂数据类型,创建Types元素,描述Web服务使用的数据类型;
B.根据步骤A中创建的Types元素,创建message元素,描述Web服务使用的消息;
C.采用步骤B中创建的message元素创建Port Type元素,描述Web服务定义的抽象操作;
D.创建binding元素,描述Web服务使用的通信协议;
E.创建service元素,描述服务的入口地址。
所述的步骤C创建Port Type元素包括:定义operation子元素,描述Web服务提供的操作;定义input子元素,描述Web服务请求消息的参数;定义output子元素,描述Web服务响应消息的参数。
所述的步骤(3)构造商业流程执行语言BPEL,形成电子公文流程描述文档包括以下步骤:
A.列出电子公文流程中需要调用的Web服务清单;
B.根据所要形成的电子公文流程中涉及的参与者角色,采用商业流程执行语言BPEL定义电子公文流程合作伙伴链接类型;
C.根据步骤A中列出的Web服务清单和步骤B中的合作伙伴链接类型,商业流程执行语言BPEL构造电子公文流程,从而形成电子公文流程描述文档。
所述的步骤B为:
a.创建伙伴名称(name)元素;
b.根据步骤C中定义的合作伙伴链接类型创建合作伙伴链接类型(partnerLinkType)元素;
c.创建partnerRole元素,描述合作伙伴的角色;
d.创建myRole元素,描述电子公文流程本身的角色。
所述的步骤C为:
a.根据步骤C所述的定义的电子公文流程合作伙伴链接类型,定义合作伙伴链接;
b.声明电子公文流程中涉及的变量;
c.根据定义的合作伙伴链接和声明的变量,采用商业流程执行语言BPEL,将Web服务清单中列出的Web服务串联起来,编写电子公文流程的逻辑定义。
所述的步骤C编写电子公文流程的逻辑定义包括:
a.创建以下电子公文流程基本活动元素:使用invoke元素表示调用Web服务,使用receive元素表示等待客户端通过发送消息调用业务流程,使用reply元素表示生成同步操作的响应,使用assign元素表示操作数据变量,使用throw元素指示故障和异常,使用wait元素表示等待一段时间,使用terminate元素终止整个流程;
b.创建以下电子公文流程结构活动元素:使用sequence元素表示一组将按顺序调用的活动,使用flow元素表示一组将并行调用的活动,使用switch元素实现分支,使用while元素定义循环,使用pick元素选择多个替换路径之一。
本发明与现有技术相比的优点在于:本发明为电子公文可识别、可解析性以及高效的存储和传输提供了一种解决方案,同时解决了电子公文自动化流转对跨部门跨地区的异构系统平台和数据库的支持,符合政府部门办公的实际需求。
附图说明
图1为本发明的方法流程图;
图2为本发明实施例北京航空航天大学人事任免审批公文体复杂类型示意图;
图3为本发明实施例北京航空航天大学人事任免审批流程示意图;
图4为本发明的公文发送服务接口示意图;
图5为本发明的公文提取服务接口示意图。
具体实施方式
本发明公开的基于Web服务的电子公文流转自动化方法主要包括。下面以一个北京航空航天大学人事任免审批流程为实例说明本方法。
下面以北京航空航天大学人事任免审批业务为例介绍本发明的实现过程。如图1所示,本发明提供的基于Web服务的电子公文流转自动化方法主要包括以下步骤:
第一步:通过定义XML结构定义文件(XSD),构造北京航空航天大学人事任免审批电子公文复杂数据类型。
北京航空航天大学人事任免审批流程的公文体的组成元素包括:份数序号、秘密等级、保密期限、紧急程度、发文机关标识、发文字号、签发人、标题、主送机关、正文、附件、公文生效标识(包括发文机关署名和印章,或签发人职务和名章)、成文日期、印发传达范围、附注、主题词、抄送机关和印制版记(包括印发机关、印发日期、印发份数)等。
以XSD格式定义公文体复杂类型:<xsd:complexType name=″公文体″>。以“公文体”为根元素构造公文体复杂类型的Schema,如图2所示。
第二步,根据第一步中定义的电子公文复杂数据类型,为所要形成的电子公文流程描述文档定义Web服务描述文档WSDL;
A.根据步骤一中定义的电子公文复杂数据类型,创建Types元素,描述Web服务使用的数据类型;
B.根据步骤A中创建的Types元素,创建message元素,描述Web服务使用的消息;
C.采用步骤B中创建的message元素创建Port Type元素,描述Web服务定义的抽象操作;
D.创建binding元素,描述Web服务使用的通信协议;
E.创建service元素,描述服务的入口地址。
所述的步骤C创建Port Type元素包括:定义operation子元素,描述Web服务提供的操作;定义input子元素,描述Web服务请求消息的参数;定义output子元素,描述Web服务响应消息的参数。
第三步:根据第一步中构造的电子公文的复杂数据类型,构造商业流程执行语言BPEL,形成电子公文流程描述文档,具体包括以下步骤:
A.列出电子公文流程中需要调用的Web服务清单;
B.根据所要形成的电子公文流程中涉及的参与者角色,采用商业流程执行语言BPEL定义电子公文流程合作伙伴链接类型;
C.根据步骤A中列出的Web服务清单和步骤B中的合作伙伴链接类型,商业流程执行语言BPEL构造电子公文流程,从而形成电子公文流程描述文档。
所述的步骤B为:
a.创建伙伴名称(name)元素;
b.根据步骤C中定义的合作伙伴链接类型创建合作伙伴链接类型(partnerLinkType)元素;
c.创建partnerRole元素,描述合作伙伴的角色;
d.创建myRole元素,描述电子公文流程本身的角色。
所述的步骤C为:
a.根据步骤C所述的定义的电子公文流程合作伙伴链接类型,定义合作伙伴链接;
b.声明电子公文流程中涉及的变量;
c.根据定义的合作伙伴链接和声明的变量,采用商业流程执行语言BPEL,将Web服务清单中列出的Web服务串联起来,编写电子公文流程的逻辑定义。
所述的步骤C编写电子公文流程的逻辑定义包括:
a.创建以下电子公文流程基本活动元素:使用invoke元素表示调用Web服务,使用receive元素表示等待客户端通过发送消息调用业务流程,使用reply元素表示生成同步操作的响应,使用assign元素表示操作数据变量,使用throw元素指示故障和异常,使用wait元素表示等待一段时间,使用terminate元素终止整个流程;
b.创建以下电子公文流程结构活动元素:使用sequence元素表示一组将按顺序调用的活动,使用flow元素表示一组将并行调用的活动,使用switch元素实现分支,使用while元素定义循环,使用pick元素选择多个替换路径之一。
第四步:将第一步中形成的电子公文的复杂数据类型、第二步中的Web服务描述文档WSDL和第三步中所形成电子公文流程描述文档一并打包,发布到BPEL流程执行引擎。
以下为北京航空航天大学人事任免审批流程自动化实现过程中第二步和第三步的详细实现过程。
北京航空航天大学人事任免审批流程包括:公文起草、各级领导审批、财务处登记、档案处归档、公文派发五个步骤。流程如图3所示。
1.列出电子公文流程涉及的Web服务清单
在开始编写BPEL流程定义之前,应先熟悉从业务流程中调用的Web服务。这些服务称作合作伙伴Web服务。本实例使用的Web服务如下:
1)公文发送服务(sendFileService)
该服务是异步的;它指定了两个端口类型:第一个端口类型sendFilePT用于使用sendFileRequest操作提交带受理材料。为返回受理结果,该Web服务指定了第二个端口类型sendFileCallbackPT。此端口类型指定sendFileResult操作。见图4。
<portType name=″sendFilePT″>
<operation name=″sendFileRequest″>
<input message=″cslpa:sendFileRequestMessage″/>
</operation>
</portType>
<portType name=″sendFileCallbackPT″>
<operation name=″sendFileResult″>
<input message=″cslpa:sendFileReplyMessage″/>
</operation>
</portType>
2)公文提取服务(selectFileService)
该服务是异步的;它指定了两个端口类型:第一个端口类型selectFilePT用于使用selectFileRequest操作提交带审查材料。为返回审查结果,该Web服务指定了第二个端口类型selectFileCallbackPT。此端口类型指定selectFileResult操作。见图5。
<portType name=″selectFilePT″>
<operation name=″selectFileRequest″>
<input message=″cslpa:selectFileRequestMessage″/>
</operation>
</portType>
<portType name=″selectFileCallbackPT″>
<operation name=″selectFileResult″>
<input message=″cslpa:selectFileReplyMessage″/>
</operation>
</portType>
2.为BPEL流程定义WSDL
此流程需从它的客户端接收消息并返回结果,因此需要公开两个端口类型:OAProcessPortType端口类型和departmentCallBackPortType端口类型。
<portType name=″OAProcessPortType″>
<operation name=″process″>
<input message=″tns:OAProcessRequestMessage″/>
<output message=″tns:OAProcessResponseMessage″/>
</operation>
</portType>
<portType name=″departmentCallBackPortType″>
<operation name=″process″>
<input message=″tns:departmentCallBackRequestMessage″/>
<output message=″tns:departmentCallBackResponseMessage″/>
</operation>
</portType>
3.定义合作伙伴链接类型
合作伙伴链接类型表示BPEL流程与相关方(包括BPEL流程调用的Web服务以及调用BPEL流程的客户端)之间的交互。
本实例包含十二个不同的合作伙伴:公文起草客户端、人事处公文发送服务、人事处处长公文提取服务、人事处处长公文发送服务、校长公文提取服务、校长公文发送服务、党委书记公文提取服务、党委书记公文发送服务、财务处公文提取服务、财务处公文发送服务、档案处公文提取服务、档案处公文发送服务。理想情况下,每个Web服务都应在WSDL中定义相应的合作伙伴链接类型。(实际情形可能不是这样的。)然后,我们可以使用WSDL包装合作伙伴Web服务(导入Web服务的WSDL并定义合作伙伴链接类型)。
对于本示例,定义了二个合作伙伴链接类型(每个类型位于Web服务的相应WSDL中):
OAProcessPL:用于描述公文起草客户端与此BPEL流程本身之间的交互。此交互是同步交互。此合作伙伴链接类型在此BPEL流程的WSDL中定义。
<plnk:partnerLinkType name=″OAProcessPL″>
<plnk:role name=″OAProcessProvider″>
<plnk:portType name=″tns:OAProcessPortType″/>
</plnk:role>
</plnk:partnerLinkType>
departmentPL:用于描述此BPEL流程与各审批部门之间的交互。此交互是异步交互,且受理服务对此BPEL流程调用一个回调。此合作伙伴链接类型在受理服务的WSDL中定义。
<plnk:partnerLinkType name=″departmentPL″>
<plnk:role name=″departmentProvider″>
<plnk:portType name=″FileOperation:FileOperation″/>
</plnk:role>
<plnk:role name=″departmentCallBack″>
<plnk:portType name=″tns:departmentCallBackPortType″/>
</plnk:role>
</plnk:partnerLinkType>
4.创建业务流程
1)定义合作伙伴链接
合作伙伴链接定义与此BPEL流程交互的不同方。每个合作伙伴链接都与描述其特性的特定partnerLinkType相关。每个合作伙伴链接可最多指定两个属性:
myRole:表明业务流程本身的角色。
partnerRole:表明合作伙伴的角色。
RSC:用于描述公文起草客户端和此BPEL流程
<partnerLink name=″RSC″
partnerLinkType=″nsxml0:OAProcessPL″
myRole=″OAProcessProvider″
/>
RSCCZ:用于描述此BPEL流程与人事处处长
<partenerLink name=″RSCCZ″
partenerLinkType=″nsxml0:departmentPL″
myRole=″departmentCallBack″
partenerRole=″departmentProvider″
/>
XZ:用于描述此BPEL流程与校长
<partenerLink name=″XZ″
partenerLinkType=″nsxml0:departmentPL″
myRole=″departmentCallBack″
partenerRole=″departmentProvider″
/>
DWSJ:用于描述此BPEL流程与党委书记
<partenerLink name=″DWSJ″
partenerLinkType=″nsxml0:departmentPL″
myRole=″departmentCallBack″
partenerRole=″departmentProvider″
/>
DAC:用于描述此BPEL流程与档案处
<partenerLink name=″DAC″
partenerLinkType=″nsxml0:departmentPL″
myRole=″departmentCallBack″
partenerRole=″departmentProvider″
/>
CWC:用于描述此BPEL流程与财务处
<partenerLink name=″CWC″
partenerLinkType=″nsxml0:departmentPL″
myRole=″departmentCallBack″
partenerRole=″departmentProvider″
/>
2)声明变量
BPEL流程中的变量用于存储消息以及对这些消息进行重新格式化和转换。需为发送到合作伙伴以及从合作伙伴收到的每个消息定义一个变量。
需为每个变量指定类型。可以使用WSDL消息类型、XML模式简单类型或XML模式元素。
<variables>
<variable name=″input″messageType=″nsxml0:OAProcessRequestMessage″/>
<variable name=″output″
messageType=″nsxml0:OAProcessResponseMessage″/>
<variable name=″departmentRequest″
messageType=″nsxml1:saveXMLFileRequest″/>
<variable name=″departmentResponse″
messageType=″nsxml1:saveXMLFileResponse″/>
<variable name=″departmentCallBackRequest″
messageType=″nsxml0:departmentCallBackRequestMessage″/>
<variable name=″departmentCallBackResponse″
messageType=″nsxml0:departmentCallBackResponseMessage″/>
<variable name=″CWCRequest″messageType=″nsxml1:saveXMLFileRequest″/>
<variable name=″DACRequest″messageType=″nsxml1:saveXMLFileRequest″/>
<variable name=″CWCCallBackRequest″
messageType=″nsxml0:departmentCallBackRequestMessage″/>
<variable name=″DACCallBackRequest″
messageType=″nsxml0:departmentCallBackRequestMessage″/>
</variables>
3)编写流程逻辑定义
流程主体指定调用合作伙伴Web服务的顺序。它通常以<sequence>(用于定义多个将按顺序执行的操作)开始。
人事处起草电子公文
<receive name=″接收人事处电子公文″partnerLink=″RSC″
portType=″nsxml0:OAProcessPortType″operation=″process″
variable=″input″createInstance=″yes″>
<correlations>
<correlation set=″FWXY″initiate=″yes″/>
</correlations>
</receive>
人事处处长审批
<sequence name=″人事处处长审批″>
<invoke name=″发送电子公文″partnerLink=″RSCCZ″
portType=″nsxml1:FileOperation″operation=″saveXMLFile″
inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<receive name=″接收审批结果″createInstance=″no″
partnerLink=″RSCCZ″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackRequest″>
<correlations>
<correlation set=″FWXY″/>
</correlations>
</receive>
<reply name=″确认″partnerLink=″RSCCZ″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″
variable=″departmentCallBackResponse″/>
</sequence>
校长审批
<sequence name=″校长审批″>
<invoke name=″发送电子公文″partnerLink=″XZ ″
portType=″nsxml1:FileOperation″operation=″saveXMLFile″
inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<receive name=″接收审批结果″createInstance=″no″partnerLink=″
XZ″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackRequest″>
<correlations>
<correlation set=″FWXY″/>
</correlations>
</receive>
<reply name=″确认″partnerLink=″XZ ″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″
variable=″departmentCallBackResponse″/>
</sequence>
党委书记审批
<sequence name=″党委书记审批″>
<invoke name=″发送电子公文″partnerLink=″DWSJ″
portType=″nsxml1:FileOperation″operation=″saveXMLFile″
inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<receive name=″接收审批结果″createInstance=″no″partnerLink=″
DWSJ″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackRequest″>
<correlations>
<correlation set=″FWXY″/>
</correlations>
</receive>
<reply name=″确认″partnerLink=″DWSJ″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackResponse″/>
</sequence>
财务处登记
<sequence name=″财务处登记″>
<invoke name=″发送电子公文″partnerLink=″CWC″
portType=″nsxml1:FileOperation″operation=″saveXMLFile″
inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<receive name=″接收审批结果″createInstance=″no″partnerLink=″
CWC″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackRequest″>
<correlations>
<correlation set=″FWXY″/>
</correlations>
</receive>
<reply name=″确认″partnerLink=″CWC″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackResponse″/>
</sequence>
档案处归档
<sequence name=″档案处归档″>
<invoke name=″发送电子公文″partnerLink=″DAC″
portType=″nsxml1:FileOperation″operation=″saveXMLFile″
inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<receive name=″接收审批结果″createInstance=″no″partnerLink=″
DAC″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackRequest″>
<correlations>
<correlation set=″FWXY″/>
</correlations>
</receive>
<reply name=″确认″partnerLink=″DAC″
portType=″nsxml0:departmentCallBackPortType″
operation=″process″variable=″departmentCallBackResponse″/>
</sequence>
派发电子公文
<flow name=″派发电子公文″>
<invoke name=″发送给人事处处长″partnerLink=″RSCCZ″
portType=″nsxml1:FileOperationPortType″
operation=″saveXMLFile″inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<invoke name=″发送给校长″partnerLink=″XZ″
portType=″nsxml1:FileOperationPortType″
operation=″saveXMLFile″inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
<invoke name=″发送给党委书记″partnerLink=″DWSJ″
portType=″nsxml1:FileOperationPortType″
operation=″saveXMLFile″inputVariable=″departmentRequest″
outputVariable=″departmentResponse″/>
</flow>
本发明未详细描述部分属于本领域公知技术。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
机译: 自动化音乐创作和生成系统,自动化音乐创作和生成过程,自动化音乐创作和生成,玩具乐器,音乐伴奏和音乐创作玩具乐器,自动化创作玩具乐器系统和音乐生成,电子信息处理和显示系统,企业基于互联网的一流音乐创作和生成系统,用于自动生成和传送数字复合音乐的网络系统,用于音乐环境的基于独立音乐的音乐创作和表演系统人工智能,基于音乐的自主创作过程音乐的生成和表演人工智能,自主分析仪器系统,用于建立自动音乐创作和生成引擎的网络,几何方法音乐理论系统操作参数映射,以自动方式构成和生成数字音乐的方法,参数转换
机译: 在现代工业系统中替换自动化设备的现场设备的方法,涉及基于另一个标识标记将参数集与标识标记链接和/或存放在Web服务器上
机译: 与发现基于电话的Web服务器的方法和特定方法有关的电子设备和计算机程序