中国电信股份有限公司系统集成广西分公司-1-互联互通系统建设方案中国电信股份有限公司系统集成广西分公司电子公文互联互通2014年10月中国电信股份有限公司系统集成广西分公司-2-1.项目背景近年来,随着政府体制改革的逐步深入和现代信息技术的发展,广西省自治区电子政务建设取得了显著的进步和成就。目前,广西省自治区区政府电子政务基础网络、电子政务协同办公系统、以及互联互通系统已经建设建设完成。本次互联互通系统方案建设,主要是把河池市电子政务协同办公系统与自治区互联互通系统做系统对接,推进全省的业务协同与信息资源共享。2.建设目标根据系统信息化建设阶段的目标要求,一阶段,完成河池市政府办公处的系统接入,实现河池市电子政务办公协同办公业务与区政府办公厅之间公文的传输、收发等功能;在一阶段完成后再慢慢接入其他单位。3.建设内容1.发文管理,主要包含系统的拟稿发文、数据格式转换、与书生的盖章整合。2.收文管理,收取公文文件,解封公文封头文件,根据封头文件解析封体文件。3.提供数据格式间的转换能力,把电子政务办公系统的数据格式转换成互联互通系统需要的SEP格式,实现互联互通系统对数据的正确解析和使用。。中国电信股份有限公司系统集成广西分公司-3-4.总体设计4.1.设计原则4.1.1.实用性和先进性相结合的原则方案的设计力求做到结构合理、性能优良、运行稳定,同时也是一个经济实用的方案,系统必须有较强的灵活性和扩展性,是一个可持续发展的平台系统,同时保证系统信息处理和传递的安全、可靠、及时、准确、完整,提高工作效率,减少人为差错。充分考虑到在未来若干年内业务发展的需要,所选择的在技术上保证在相当长的一段时间内不落后。与此同时,在保证实现系统建设目标的前提下,选择性能价格比高、成熟可靠的技术和产品,以保证系统的整体性、协调性、高效率、高性能的先进性原则。4.1.2.经济实用性原则确保用户所购设备真正能物尽其用。在达到功能、满足用户需求的前提下,减少整体投资。4.1.3.可行性、可靠性原则必须保证在系统建立之后,在保证业务正常运转的前提下,在系统结构、设计方案、设备选择、技术服务等方面综合考虑,保证系统能够持续无故障运行。能确保系统连续7x24不间断运行,并便于维护和修理。当系统出现局部故障时,不会影响整体系统的运行,并能尽快地解决并恢复正常运行。中国电信股份有限公司系统集成广西分公司-4-4.1.4.可扩展性原则对此次设计具有优秀的可扩展性,可以根据具体需求的更新进行弹性扩展,可对服务器、存储、备份等进行扩展,以满足新的需要。4.2.实现设计图4.2.1.整体设计交换平台由一个中心节点和部署在各个部门的数据接入控制器组成。河池内部应用系统只同自己的数据接入控制器通信,完成公文信息的发布、下载以及与其他单位间的协同交互。4.2.2.交互设计根据互联互通厂商提供的接口交互模式,选择收发件箱方案进行开发设计,收发件箱方案是通过“对接适配器”软件在交换平台与用户对接程序之间模拟出一个邮箱系统,其中包含收件箱和发件箱,来完成用户对接程序和交换平台通信,如下图所示:中国电信股份有限公司系统集成广西分公司-5-对接适配器是运行在用户方前置机上的一个应用程序。前置机是用户单位内部一台服务器。对接适配器将前置机上的两个文件夹分别模拟为收件箱与发件箱,作为与用户程序对接的接口;适配器实现了HTTPS客户端和SFTP客户端的功能,用以与交换平台做交互。用户对接程序与交换平台交互的封首信息和封内信息,均以信件的形式通过收发件箱在适配器与交换平台之间做传输。为了保证对接适配器能够高效稳定地工作,建议将对接适配器与控制器部署在同一局域网中,其间不要穿越城域网、广域网,不要加防火墙或其它网络设备。通过收发件箱同交换平台对接无需考虑网络通信与通信协议,只需要在业务层面进行开发。此种开发方式兼具以下优点:既可以让新的业务系统快速上线,还可以使业务系统与交换平台适当的融合为一体。建议有需要将平台与业务系统进行融合且开发时间上相对较紧的单位选择此种开发方式。4.3.平台关键实现4.3.1.公文交互说明公文交互主要实现河池人民政府办公室与广西省办公厅之前的公文交互传输。收文、发文的角色A向B发文件,则A为发文方,B为收文方。反之,则B为发文方,A为收文方。中国电信股份有限公司系统集成广西分公司-6-发送和接收的实现机制发送信件一封信件分为封首和封内文件两部分(参见2.1.1节)。将一封信件发送到数据接入控制器,需要两个步骤:1)将封内文件利用SFTP协议上传到数据接入控制器的SFTP服务器的Upload目录上。(为了便于今后管理和归档本单位上传的封内文件,建议在Upload目录下按当前日期建立子目录,比如建立Upload/2013-12-1目录。2)构造封首报文,将封内文件的SFTP路径以及封内文件的MD5校验值填入封首报文的files节点区域,利用HTTPS协议将封首报文对应的字符串作为HTTPS协议的Body,发送到数据接入控制器的XML-RPC/RESTService服务器上。收取信件使用协议对接方式从数据接入控制器收取一封信件需要四个步骤:1、向数据接入控制器提供的RESTService/XML-RPC服务发送一份“查询缓存信件”的报文(参“/信封范例/缓存信件/查询缓存信件/envelope.xml”)。该请求的响应是一封查询缓存信件-反馈报文,此报文中将会携带最近未读缓存信件的封首(如果有缓中国电信股份有限公司系统集成广西分公司-7-存信件尚未拉取),参考“/信封范例/缓存信件/查询缓存信件-反馈/envelope.xml”。2、向数据接入控制器提供的RESTService/XML-RPC服务发送一份根据缓存信件封首中的唯一标识符构造的“封首已成功接收的确认信件”(参考“/信封范例/缓存信件/确认封首/envelope.xml”),以通知数据接入控制器将已获取的封首从未获取队列中移除。如果此步骤失败,则获取的封首不会从为获取队列中移除,在下次进行此步骤时会拉取到相同的封首。3、解析信件封首中的files节点(如果有),从中提取封内文件的SFTP路径,从数据接入控制器的SFTP服务器上下载对应的封内文件,并做MD5完整性校验。4、向数据接入控制器提供的RESTService/XML-RPC服务发送一份根据缓存信件封首中的唯一标识符构造的“封内文件已成功接收的确认信件”(参考“/信封范例/缓存信件/确认封内/envelope.xml”)。数据接入控制器在收到此报文时会向信件发送方发送一封回执信(参考“/信封范例/回执/envelope.xml”),表示信件已成功被接收方获取。对接程序需要周期性的从数据接入控制器上收取信件,建议间隔时间不低于10秒。解封与加封加封是将封内文件用交换控制信息包装,然后生成封首文件,最终得到封内文件和中国电信股份有限公司系统集成广西分公司-8-封首文件的过程。加封过程结束后,将封首文件和封内文件放入信件的文件夹中。其详细步骤如下:1.创建一个空的新文件夹(文件夹名字不限,建议采用UUID以区别于其它信件);2.生成业务相关的封内文件(包含交换识别信息和交换主体信息,根据业务需要,封内文件可以包含零个、一个或多个),并将其放入刚创建的文件夹中,如果没有封内文件则跳过此步和第三步;3.计算封内文件的MD5校验值,和其文件名(不包含其在文件系统中的路径信息)一起填入封首文件;4.补全封首文件中其它控制信息(参见附录B以及“/信封范例”),将构造好的封首文件放入刚创建的文件夹,并命名为“envelope.xml”;至此,加封过程完毕,即生成一个信件文件夹,可以将其放至发件箱,等待被发送。解封是加封的逆过程,详细步骤如下:1.操作一封信件,即一个包含有封首文件和封内文件的文件夹;2.解析封首文件(envelope.xml),分析交换控制信息,如果有封内文件,则从可以从files节点获取封内文件(如果有)的文件名,在当前文件夹下即可寻找到对应文件;3.将封内文件交付用户对接程序处理;至此,解封过程结束。信件的接收与发送中对xml文件的解析发送信件一封信件分为封首和封内文件两部分(参见2.1.1)。将一封信件发送到数据接入控制器,需要按照加封信件的流程构造一封信件。适配器能够保证信件在构造过程中不会中国电信股份有限公司系统集成广西分公司-9-被发送。信件发送失败会被移入收件箱根目录下的失败目录(即“.outbox_failed”目录)。如果发送成功会移入收件箱根目录下的历史目录(即“history”目录)。用户发送的信件状态会在适配器安装目录下的log/record.xml文件中以XML的形式记录,并实时更新。其XML格式如下:?xmlversion=1.0encoding=UTF-8?list!--信件状态跟踪记录节点,一个节点代表一封信件的跟踪记录。--!--identifier是信件的唯一标识符,如果你发送的信件封首中没有填写信件唯一标识符信息(即封首文件中‘/envelope/header/@identifier’属性的值),适配器会自动补全,否则与你发送的信件封首中的唯一标示符值一致。--envelopeidentifier=e8fa4921-1116-49e5-9144-22e67f360349!--信件状态,有5种,分别代表对应下面message节点的5种信息。--statusno_status、send_success、send_error、receive_success、receive_error/status!--业务流水号,则此节点的值与你发送的信件封首中的业务流水号值一致。--business_id9227a98b-0a72-4f53-8bd0-a1f9a1c7703b/business_id!--信件状态说明,有5种,分别代表对应上面status节点的5种状态。--message“无状态”、“已成功到达接收方数据接入器”、“到达接收方数据接入器失败!”、“接收方已从数据接入器成功获取报文”、“接收方从数据接入器获取报文失败”/message!--信件记录创建的日期。--create_date2014-06-26-09-35-09/create_date!--信件记录最后一次更新的日期。--中国电信股份有限公司系统集成广西分公司-10-update_date2014-06-26-09-35-10/update_datedir信件当前所在路径地址/dir/envelope/list如果发送方开启了回执信功能(参考5.1.2节),且接收方是使用协议对接或者收发件箱的形式接入平台,则当接收方从数据接入器拉取缓存信件成功时会向发送方发一封回执信表示信件已经被接收,发送方适配器会收到发送的信件对应的回执信,当收到回执信时,会将发送的信件对应状态记录节点中的message信息置为“接收方已从数据接入器成功获取报文”。信件状态记录xml文件中最多保存最近10000条信件的状态。收取信件从数据接入控制器收取一封信件需要四个步骤:1.用户对接程序扫描收件箱根目录下的inbox目录下的所有文件夹(每个文件夹对应一封信件),当发现一封信件后进行下一步处理;2.用户对接程序分析封首文件(envelope.xml);3.判断该信件是哪种类型的信件(协同资源、交换资源、共享资源、系统通知),然后再根据类型分别做解析;4.分析封首文件的files节点,判断该信件是否包含封内文件,封内文件就在封首所在目录下,已经做过MD5完整性校验,不需要用户做校验;5.用户对接程序使用上一步的解析结果,进行相关业务处理(涉及具体业务的处理逻辑,可能涉及到与部门业务系统之间的交互);6.处理完信件后,删除此信件文件夹,避免下次遍历时再次扫描到此信件;中国电信股份有限公司系统集成广西分公司-11-7.至此,用户对接程序针对信件的处理完成;收发件箱不需要用户手动去数据接入控制器