当前位置:文档之家› 完整的接口解决方案说明书

完整的接口解决方案说明书

XXXXXX信息科技股份有限公司1引言1.1编写目的本文档为XX电信工程外部协作系统(以下简称外协系统)与电信工程施工单位内部系统(以下简称施工系统)接口技术解决方案,以此作为外协系统与施工系统实施接口的技术方案依据和项目设计标准。

1.2覆盖范围XX电信工程外部协作系统项目组施工系统接口开发技术组1.3预期读者与阅读建议XX电信企业信息化部XX电信工程建设部XXXX公司开发人员施工系统开发人员1.4文档约定粗体正文表示强调内容红色正文表示未完成或需要今后考虑的内容蓝色正文表示待讨论内容1.5术语与缩略语1.6参考文献(XXXX)2概述建设XX电信工程外部协作系统的目标,是在工程项目的管理、建设、使用和实施单位之间搭建起数据交换和协同工作的信息平台,延伸与拓展工程建设管理信息化的应用范围,实现通信工程建设过程的信息化管理,促进工程项目的管理部门、建设部门、实施部门和使用部门之间业务流程协调有序地开展,实现工程项目设计、施工、监理管理功能,将相关的设计、施工、监理单位纳入到工程建设管理中,完善工程项目建设过程管理体系,通过信息化推动管理的规范化,在信息化的应用过程中不断探索市场环境下工程建设管理的新思路和新方法。

根据工程部业务工作的实际情况,项目首先满足工程建设管理中应用最广泛、问题最突出的基本需求。

项目功能需求包括:➢建立工程外部协作系统与MSS等系统的接口;➢建立设计协作服务、监理协作服务、施工协作服务模块,为邮电设计院、电话监理公司和电信工程公司提供工程部所需的协作服务,保证工程建设实施流程的开展;➢在建立工程协作服务模块的基础上,建立工程外部协作系统与邮电设计院、电话监理公司、电信工程公司信息系统的接口,实现工程部与三家实施单位的信息交互与业务协作;本技术解决方案就是针对实现工程建设部与三家实施单位信息交互与业务协作接口中施工单位接口的技术解决方案的组成部分。

在接口的调用过程中,存在施工系统调用外协系统接口的情况,这时候,施工系统作为客户端,外协系统作为服务端;也存在外协系统调用施工系统的情况,这时候,外协系统作为客户端,施工系统作为服务端。

本方案中,除了特殊另外说明外,不考虑外协系统和施工系统角色换位的问题。

如果一方发起了调用,那么它就是客户端,另一方就是服务端。

反之亦然。

4 接口方式◆工程外协系统与施工系统之间的接口采用Web Service接口形式来进行业务数据的交互。

◆接口数据传输采用XML数据交换格式,utf-8编码。

◆在外协系统中提供Web Service的API接口。

提供由施工系统调用获得信息;并且提供施工系统提交信息的API接口。

◆同样,在施工系统中提供Web Service的API接口。

提供由外协系统提交信息的API接口。

◆考虑到工程外协中的数据信息不仅包括了XX电信工程公司的数据而且还包含了其他的施工单位的数据信息。

而这些单位也各有其各自工程应用系统。

这样,外协系统对各个施工单位系统所提供的接口API及其参数信息、格式均是统一的。

同时,也要求各个施工单位所提供的接口API及其参数、格式等也必须要求统一。

外协系统与施工系统属于一对多的关系。

◆外协系统要求能够有目的,信息有过滤的把业务信息通过接口正确的发送给相应施工系统接口。

非相关的信息不要发送给对应的施工系统。

◆施工系统建立用户映像对照表、字典对照表、单位对照表等数据映像,传递给外协的数据使用的是映像中转换后的外协系统能够识别数据;同时,接收到的数据也根据对照表转换成各自能够解释的数据格式。

◆数据初始化的时候,由施工系统主动调用外协系统的接口,以获得用户信息、字典信息、单位信息、项目信息等基础信息。

以后,一旦发生数据的变动,由外协系统主动往施工系统发送信息。

◆外协系统不主动请求施工系统获得数据,但是外协系统会主动请求施工系统发送数据。

◆施工系统主动请求外协系统获得数据,也会主动请求外协系统发送数据。

4接口安全4.1接口认证调用认证:虽然接口双方都是存在于电信内部网络中,但是,仍不能排除接口服务被攻击、恶意调用以及非法调用等。

所以,从接口调用上,必须考虑调用的认证安全问题。

◆本方案中的接口,在客户端调用服务端的时候,必须经过调用身份认证。

考虑施工系统的开发平台的多样性,但同时接口服务运行平台都是Windows的情况,本方案采用Windows安全身份认证的方式。

即在访问接口所在的服务的时候,都必须进行资格审查(使用Credentials发送认证信息)。

◆另外,接口采用SOAP协议,因此在接口配置上面需要屏蔽HTTP GET 和HTTP POST等其他协议。

◆在接口中审核并进行日志的记录。

◆使用最低权限的进程帐户运行 Web 服务(通过 Machine.config 中的 <processModel>元素来配置)。

◆接口不支持动态生成WSDL,因此作为服务端,应该禁止文档协议。

◆在服务端禁用跟踪,禁用调式编译业务用户认证:由于接口涉及电信工程中的各个不同的业务,有获取字典、获得项目信息、发送开工报告等,所以,建立一套业务的用户认证机制是必须的。

不同的用户,所具备有的授权不一样,所能执行的业务也不一样。

同时,业务用户认证中的用户信息也是记录接口日志中的重要组成部分。

本方案采用的是在接口信息中包含业务认证用户信息的方式来进行认证。

服务端在收到请求的时候,应先验证业务的授权用户,如果该业务用户没有执行当前业务的权限,应终止业务的执行,并给出非法用户的警告信息反馈回客户端。

一般情况下,业务认证的用户是系统中的用户。

业务认证其实就是应用系统认证的组成部分。

业务认证的用户信息经过加密之后包含在要发送的信息(XML体)中,即在发送的信息中包含业务用户的信息(参见下面的数据格式说明)。

4.2数据安全数据的安全表现为如何保证数据在网络传输过程中不会被截获并被解析其中的内容而引起信息泄露与如何保证数据在传输的过程中的数据的完整性两个方面。

Web Service采用XML数据格式来传输信息。

所以,无论是发送数据还是返回结果,都要求采用对XML数据加密之后来传输。

至于采用何种方式的加密技术,本方案为了保密,只能在开发的时候由开发人员口头告知。

涉及到加密技术就要涉及到加密的密钥问题。

目前,外协系统和施工系统接口上有很多种类型的业务,到底是每种类型的业务采用不同的密钥,还是按分组来采用同一种密钥的方式,还是所有的业务全部采用同一种的密钥的方式,按照需求各有不同的选择。

本方案采用的是最后一种的方式。

密钥的发布由作为服务方来发布,由客户端获取。

密钥的发布方式待定。

为了保证数据的完整性,首先:方案采用数据签名(SOAP Security Extensions: Digital Signature)。

利用XML的数字签名(XML Digital Signature syntax [XML-Signature])对SOAP进行扩展,在SOAP的头元素中定义签名属性(<SOAP-SEC:Signature>)来实现。

其次:限制并验证 Web 方法输入的类型、长度、格式和范围,验证对 XML 输入数据的验证是基于已协商的架构等。

5事务处理事务是一组相关的任务,作为独立于其他任务的独立单元成功(提交)或失败(中止)。

分布式事务是影响多个资源的事务。

要提交分布式事务,所有参与者都必须保证对数据的任何更改是永久的。

不论系统崩溃或是发生其他无法预料的事件,更改都必须是持久的。

即使只有一个参与者无法保证这一点,整个事务也将失败,在事务范围内对数据的任何更改均将回滚。

外协系统和施工系统是处于网络之上的两个分布式接口,使用的是分布式事务。

要启用分布式事务,可能需要通过网络启用 MS DTC(考虑外协平台和施工平台都是运行在Windows 上),以便在使用应用了最新的 Service Pack 的较新操作系统(例如 Windows XP 或Windows 2003)时使用分布式事务。

如果启用了 Windows 防火墙(Windows XP Service Pack 2 的默认设置),必须允许 MS DTC 服务使用网络或打开 MS DTC 端口。

接口中的服务端和客户端的环境事务始终相同,客户端创建的事务上下文并应用对于服务端的当前的事务,以便对于该事务上下文是当前的。

这样的事务会造成性能损失,因为可能需要继承原来的上下文,但是,这样的事务确保了在数据库操作的时候信息的完整性。

接口中事务的发起总是由客户端发起的,并负责事务的提交和回滚等控制。

6性能考虑在接口设计的时候就应该考虑性能上面的问题,不要在事后再加入性能。

同时,在项目的开发过程要反复进行测试,可以从机器的吞吐量和响应时间两个基本的指标来衡量接口的性能。

接口上面的性能考虑主要从下面几个方面来优化:◆使用一次连接,多次调用,优化连接资源。

◆对于并行的接口调用使用异步的调用方式。

◆优化线程池减少竞争。

◆考虑使用XML压缩。

◆如果不需要返回,考虑使用单工通讯的方式。

◆适当的设置(如果有代理)代理超时,页面超时,WebService超时。

◆设计"大块头"的接口减少往返。

◆基于消息的编程而不是远程过程调用(RPC) 。

◆使用XML字串作为参数。

◆尽量使用原始数据类型参数。

◆避免在调用之间维护服务器状态。

◆考虑为复杂的WebMethod提供输入校验。

◆考虑对WebMethod的结果使用缓存。

◆选择适用的大数据包传送方式。

◆避免调用本地的WebService。

7容错处理客户端向服务端发送数据,服务端解析数据,反馈信息给客户端,这中间的环节只要某一个环节出现问题,都会造成接口的失败。

按照失败产生的环节分类,我们可以从三个方面来处理接口的失败。

◆网络连接失败:在调用接口的时候,由于网络不通,造成数据不能正常传输。

这样,客户端应该能够记录发送的日志,按照一定的时间间隔重试发送。

本方案定为重试发送20次,每次时间间隔2小时。

如果一直发生网络不通的情况,该发送日志被保存下来,待后手工发送。

所以,客户端系统应该实现手工发送数据的功能。

◆反馈错误信息:服务端在解析数据包,执行数据包业务的时候,可能会发生异常。

所以,服务端应当能够捕捉异常信息,比如“非法XML格式”等,然后反馈给客户端。

客户端在接受到这类的错误信息之后,应当进行日志记录,能够自动或手工分析异常的信息。

◆网络连接正常,但是无信息反馈:这种情况下,一般是服务端出现了异常,但是又没有捕捉到的情况下发生。

这种情况下,客户端把这种错误当作“网络连接失败”来处理。

服务端应能够实现相同数据包重新发送过来的处理机制。

8数据格式在Web Service的调用过程中,无论是外协系统还是施工系统,都有发送数据和接收数据的要求,也即双方系统同时作为客户端又作为服务端。

相关主题