收藏 分销(赏)

DB11!T 3041-2024法人和其他组织统一社会信用代码数据共享应用规范.docx

上传人:Fis****915 文档编号:720761 上传时间:2024-02-22 格式:DOCX 页数:23 大小:107.13KB
下载 相关 举报
DB11!T 3041-2024法人和其他组织统一社会信用代码数据共享应用规范.docx_第1页
第1页 / 共23页
DB11!T 3041-2024法人和其他组织统一社会信用代码数据共享应用规范.docx_第2页
第2页 / 共23页
DB11!T 3041-2024法人和其他组织统一社会信用代码数据共享应用规范.docx_第3页
第3页 / 共23页
DB11!T 3041-2024法人和其他组织统一社会信用代码数据共享应用规范.docx_第4页
第4页 / 共23页
DB11!T 3041-2024法人和其他组织统一社会信用代码数据共享应用规范.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、ICS 35.020CCS A 20DB11北京市地方标准DB11/T 30412024法人和其他组织统一社会信用代码数据共享应用规范Specification of data sharing and application of the unified social credit identifier for legal entities and other organizations2024-01-28 发布2024-02-18 实施北京市市场监督管理局发 布DB11/T 30412024目次前言II引言III1 范围12 规范性引用文件13 术语和定义14 缩略语15 数据共享应用框架2

2、6 网络要求47 安全要求48 数据应用方式49 数据应用调用信息12附录 A(资料性) 统一社会信用代码基础数据接口调用方法示例13附录 B(资料性) 统一社会信用代码变更数据接口调用方法示例15附录 C(资料性) 统一社会信用代码股东数据接口调用方法示例17参考文献19IDB11/T 30412024前言为推进京津冀协同发展战略实施,北京市市场监督管理局、天津市市场监督管理委员会、河北省市场监督管理局共同组织制定本地方标准,在京津冀区域内适用,现予发布。本文件按照 GB/T 1.12020标准化工作导则 第 1 部分:标准化文件的结构和起草规则的规定起草。本文件由北京市市场监督管理局提出并

3、归口。本文件由北京市市场监督管理局组织实施。 本文件起草单位:(河北组)河北省标准化研究院。(北京组)北京市市场监督管理局风险管理中心。(天津组)天津市标准化研究院。本文件主要起草人:(河北组)李虓峰、李会、闫志强、尚晓帆、陈聪、高思瑶、王子康、董世涛、阎占辉。(北京组)胡伟、杨德富、蔡欣畅、朱海绫、张赢、王健。(天津组)张楠、由方岚、赵汉杰、徐超、董津生、张然。IIDB11/T 30412024引言本文件以京津冀法人和其他组织统一社会信用代码数据库为基础,规范了统一社会信用代码数据的共享与应用,解决了数据服务动态性差、共享与应用效率低、数据存储成本高等问题,为各政务部门的不同需求,提供了个性

4、化、差异性服务,推动了三地统一社会信用代码数据资源深度共享。IIIDB11/T 30412024法人和其他组织统一社会信用代码数据共享应用规范1 范围本文件规定了京津冀统一社会信用代码数据共享应用框架、网络要求、安全要求、数据应用方式和数据应用调用信息。本文件适用于政务部门通过数据共享平台以接口方式进行的京津冀统一社会信用代码数据信息共享应用。2 规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件, 仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 2260 中华人民共和国行政区划代码GB

5、/T 4754 国民经济行业分类GB/T 14733.8 电信术语 电话GB/T 22239 信息安全技术 网络安全等级保护基本要求GB 32100 法人和其他组织统一社会信用代码编码规则3 术语和定义下列术语和定义适用于本文件。3.1请 求 request接口用户向接口发出的一次调用申请。3.2响 应 response接口向接口用户返回请求的操作结果。3.3包 体 package-body数据传输中的实体主体部分。4 缩略语下列缩略语适用于本文件。HTTPS 基于安全套接字的超文本传输协议(Hypertext Transfer Protocol Secure) XML 可扩展标识语言(Ext

6、ensible Markup Language)JSON JS对象标记(JavaScript Object Notation)1DB11/T 304120245 数据共享应用框架5.1 共享应用模型5.1.1 概述数据共享应用模型包括数据共享概念模型和数据共享技术架构。数据共享技术架构是支持数据共享概念模型的逻辑框架。其中:a) 数据共享概念模型:描述了信息的提供方、使用方及应用方遵循已确定的信息共享规程,进行数据共享的业务过程;b) 数据共享技术架构:描述了支持数据共享实现的技术要求。5.1.2 数据共享概念模型5.1.2.1 概念模型提供方、管理方和应用方通过数据交换行为实现数据共享活动,

7、如图 1 所示。图1 数据共享概念模型5.1.2.2 共享角色按照数据共享业务视角对数据共享角色进行分类,包括提供方、管理方和应用方:a) 提供方:提供共享数据的机构;b) 管理方:管理共享数据应用合规性的机构;c) 应用方:应用数据的机构。5.1.2.3 共享行为遵照管理方批准的规程,提供方、管理方和应用方的数据共享活动通过数据交换行为实现:a) 提供方将数据传输给管理方,由管理方发布到数据共享平台;b) 应用方通过共享平台将查询内容提交给管理方,管理方向应用方提供查询结果,并将查询结果反馈提供方;c) 应用方查询内容涉及敏感信息的,需预先征得数据提供方同意后,方能获取查询结果。5.1.3

8、数据共享技术架构围绕需要政务部门间共享的数据给出了数据共享技术架构,如图 2 所示,架构包括以下内容:a) 网络:为数据共享提供网络基础设施支撑,包括互联网、电子政务外网;b) 数据:数据共享过程中产生的信息,包括数据内容、数据编码、数据质量、数据表达;c) 系统:数据共享过程中数据管理方和应用方进行数据共享的平台,包括目录系统和交换系统;d) 安全:包括安全管理和安全技术;e) 管理:包括数据内容管理、数据字典管理及数据日常维护管理等方面的内容。2DB11/T 30412024图2 数据共享技术架构5.2 共享应用流程5.2.1 流程图统一社会信用代码数据共享应用流程,如图3所示。不通过调用

9、配置数据共享内容申请审批提出数据共享应用申请配置数据应用方许可信息接收许可信息调用共享数据发送数据共享请求核查许可信息不符合数据应用终止符合完成数据共享应用结束数据应用方数据管理方数据共享平台图3 数据共享应用流程3DB11/T 304120245.2.2 共享申请、许可和响应5.2.2.1 数据应用方向数据管理方提交数据共享应用申请,申请信息包括但不限于以下内容:a) 机构统一社会信用代码;b) 机构名称;c) 用于实现数据共享应用设备的 IP 地址;d) 申请使用期限;e) 申请使用数据项;f) 申请使用数据范围。5.2.2.2 数据管理方收到申请后,生成许可信息反馈给数据应用方,许可信息

10、包括但不限于以下内容:a) 机构统一社会信用代码;b) 机构名称;c) 用户账号;d) 用户密码;e) 用于实现数据共享应用设备的 IP 地址;f) 申请使用期限;g) 数据共享平台地址。5.2.2.3 数据应用方通过数据共享平台调用数据信息时,应提供被授予的许可信息。5.2.2.4 数据管理方在接收到请求后,校验数据应用方许可信息中用户账号和用户密码的合法性、用于实现数据共享应用设备的 IP 地址和申请使用期限的有效性,检验通过后,执行请求,返回响应内容。6 网络要求数据共享应用网络要求如下:a) 敏感数据应通过电子政务外网传输;b) 其他信息可通过互联网传输。7 安全要求应符合 GB/T

11、22239 的相关要求。8 数据应用方式8.1 概述数据应用方通过嵌入到数据共享平台中的接口调用统一社会信用代码基础数据、统一社会信用代码变更数据和统一社会信用代码股东数据。8.2 接口定义统一社会信用代码接口定义见表1。4DB11/T 30412024表1 统一社会信用代码接口定义接口分类定义说明统一社会信用代码基础数据接口String HBtydm_sh_service ( string licence,string cond_information, string repl_packagetype)1. HBtydm_sh_service 为约定的河北省统一社会信用代码基础数据接口名称;

12、BJtydm_sh_service 为约定的北京市统一社会信用代码基础数据接口名称;TJtydm_sh_service 为约定的天津市统一社会信用代码基础数据接口名称;2. license 为 许 可 参 数 ( 见 8.4.1); 3.cond_information 为条件参数(见 8.4.2); 4.repl_packagetype 为返回结果数据包格式参数(见 8.4.3);5.接口返回结果见 8.4.4。String BJtydm_sh_service ( string licence,string cond_information, string repl_packagetype)

13、String TJtydm_sh_service ( string licence,string cond_information, string repl_packagetype)统一社会信用代码变更数据接口String HBbgkinfo (string licence,string repl_packagetype)1. HBbgkinfo 为约定的河北省统一社会信用代码变更数据接口名称;BJbgkinfo 为约定的北京市统一社会信用代码变更数据接口名称;TJbgkinfo 为约定的天津市统一社会信用代码变更数据接口名称;2. license 为 许 可 参 数 ( 见 8.5.1);

14、3.repl_packagetype 为返回结果数据包格式参数(见 8.5.2);4.接口返回结果见 8.5.3。String BJbgkinfo (string licence,string repl_packagetype)String TJbgkinfo (string licence,string repl_packagetype)统一社会信用代码股东数据接口String HBinvinfo (string licence,string repl_packagetype)1. HBinvinfo 为约定的河北省统一社会信用代码股东数据接口名称;2. license 为 许 可 参 数

15、( 见 8.6.1); 3.repl_packagetype 为返回结果数据包格式参数(见 8.6.2);4.接口返回结果见 8.6.3。8.3 基本约定8.3.1 传输协议采用 HTTPS 作为传输协议。8.3.2 地址格式接口地址由数据管理方提供,格式为:https:/xxx.xxx.xxx.xxx/services_path/service_name。其中,xxx.xxx.xxx.xxx 表示接口所在服务器的有效地址;services_path 表示接口的发布路径,由数据管理方命名;service_name 表示约定的接口名称,由数据管理方命名。8.3.3 调用方法统一社会信用代码基础数

16、据、统一社会信用代码变更数据、统一社会信用代码股东数据接口调用方法示例分别见附录 A、附录 B 和附录 C。5DB11/T 304120248.4 统一社会信用代码基础信息接口8.4.1 许可参数8.4.1.1 内容组成许可参数由一组用户信息组成。8.4.1.2 包体标记及含义许可参数包体标记及含义说明见表 2。表2 许可参数包体标记及含义信息类别标记字符类型及长度含义说明用户信息tyshxydmnvarchar(18)统一社会信用代码jgmcnvarchar(200)机构名称appkeynvarchar(8)用户账号appsecretnvarchar(10)用户密码ipnvarchar(15

17、)被授权应用接口设备的 IP 地址startdatenvarchar(10)使用期限开始时间授权起始日期enddatenvarchar(10)使用期限结束时间授权终止日期8.4.1.3 包体格式说明许可参数包体采用 JSON 格式。许可参数放置在标记之间,见示例 1。示例 1:tyshxydm:xxxxxxxxxxxxxxxx, jgmc:xxx,appkey:xxx,appsecret:xxx,ip:xxx,startdate:xxx,enddate:xxx8.4.2 条件参数包体8.4.2.1 内容组成条件参数由条件逻辑关系、条件数据项集、返回结果数据项名称组成,如图 4 所示。图4 条件

18、参数6DB11/T 304120248.4.2.2 条件参数包体格式说明条件参数包体采用 JSON 格式。条件参数放置在标记exp:xxx,fields:field:xxx,operation:xxx, value:xxx,field:xxx,operation:xxx,value:xxx,result:xxx之间。exp 关键字为条件逻辑关系。其中“与”、“或”分别用“*”、“+”标识;为空时,默认为“与”; 在逻辑关系中,第一个条件数据项用0表示,第二个用1表示,以此类推,第 n 个用n-1表示,各条件之间可以用圆括号运算符()组合。fields 关键字为条件数据项集。其中 field 关

19、键字为条件数据项;operation 为条件数据项的关系运算符,其表示及含义见表 3;value 为条件数据项的值。result 关键字为返回结果中用户要求的数据项名称,各数据项间以英文“,”分隔。数据项标识应符合本文件 8.4.5 的规定。表3 关系运算符表示及含义关系运算符含义说明=等于1. 字符型按字符编码顺序进行比较;2. 数值型应转换成数值进行比较;3. 日期型应转换成日期进行比较;4. 日期时间型应转换成时间进行比较。大于=大于或等于!=不等于like模糊匹配仅可应用于字符型的数据项,从字符串任意位置进行匹配left like左匹配仅可应用于字符型的数据项,从字符串起始端匹配rig

20、ht like右匹配仅可应用于字符型的数据项,从字符串尾端匹配is null空值is not null非空条件参数包体格式见示例 2。示例 2:exp:0*(1*2),fields: field:zcdzxzqhdm, operation:=,value:xxx,field:jgmc,operation:like,value:xxx,field:zcdz,operation:like,value:xxx7DB11/T 30412024result:tyshxydm,jgmc,zcdzxzqhdm8.4.3 返回结果数据包格式参数接口返回结果数据包格式参数由数据应用方根据需要设定。该参数取值可为

21、 xml 或 json,不能为空。8.4.4 返回结果8.4.4.1 内容组成返回结果包括调用状态信息、结果数据和结果集记录数。接口调用失败时,只返回调用状态信息,见图 5。数据项1数据项n结果记录数据n结果记录数据1结果集记录数结果数据调用状态信息注:返回结果记录数据过多时,默认显示前 50 条数据。图5 返回结果8.4.4.2 包体格式说明8.4.4.2.1 XML格式XML 格式采用标准 DATAPACKET 2.0 版本。返回结果中的调用状态和结果集记录数信息放置在标记之间,关键字status 为调用状态代码,msg 为调用状态描述,totalcount 为结果集记录个数。调用状态代码

22、和描述应符合第 9 章的规定。结果数据置于标记之间。结果数据不同记录用分隔。数据项标识应符合 8.4.5 的规定。返回结果包体 XML 格式见示例 3。示例 3:8.4.4.2.2 JSON格式返回结果信息放置在标记respdata:status:xxx,msg:xxx,totalcount:xxx, rowdata:xxx,xxx之间。8DB11/T 30412024在 respdata 标签内,关键字 status 为调用状态代码,msg 为调用状态描述,totalcount 为结果集记录个数。调用状态代码和描述应符合本文件 9 的规定。在 rowdata 标签内,每条结果数据记录放置在标

23、记之间。数据记录中的数据项标识应符合本文件 8.4.5 的规定。返回结果包体 JSON 格式见示例 4。示例 4:respdata: status: 0,msg: 调用成功,totalcount: 2, rowdata: tyshxydm: xxxxxxxxxxxxxxxxxx, jgmc: xx 省(市)xxx 股份有限公司, zcdzxzqhdm: xxxxxx,tyshxydm: xxxxxxxxxxxxxxxxxx,jgmc: xx 省(市)xx 市(区)xxx 股份有限公司, zcdzxzqhdm: xxxxxx8.4.5 应用服务数据项统一社会信用代码基础信息接口服务提供的数据项见

24、表 4。表4 统一社会信用代码基础信息接口服务数据项数据项标识含义数据类型及长度说明tyshxydm统一社会信用代码nvarchar(18)符合 GB 32100jgmc机构名称nvarchar(200)zcdz注册地址nvarchar(400)zcdzxzqhdm注册地址行政区划代码nvarchar(6)符合 GB/T 2260jyfw经营范围nvarchar(2000)clrq成立日期datedjywlx登记业务类型nvarchar(2)0:注册(设立);1:变更;2:注销;9:其他jyzt经营状态nvarchar(2)1:“正常”(存续、在营、开业、注册、设立),2:“吊销,未注销”;3

25、:“吊销,已注销”;4: “注销”;5:“撤销”;6:“迁出”;9:“其他”jjhydm经济行业代码nvarchar(6)符合 GB/T 4754lxdh联系电话nvarchar(18)符合 GB/T 14733.89DB11/T 30412024表 4 统一社会信用代码基础信息接口服务数据项(续)数据项标识含义数据类型及长度说明zhgxrq最后更新日期date8.5 统一社会信用代码变更信息接口8.5.1 许可参数8.5.1.1 内容组成许可参数由一组用户信息组成。8.5.1.2 包体标记及含义许可参数包体标记及含义说明见表 5。表5 许可参数包体标记及含义信息类别标记字符类型及长度含义说明

26、用户信息tyshxydmnvarchar(18)统一社会信用代码jgmcnvarchar(200)机构名称appkeynvarchar(8)用户账号appsecretnvarchar(10)用户密码ipnvarchar(15)被授权应用接口的设备的 IP 地址startdatenvarchar(10)使用期限开始时间授权起始日期enddatenvarchar(10)使用期限结束时间授权终止日期8.5.1.3 包体格式说明许可参数包体采用字串格式。许可参数放置在访问地址的参数中,见示例 5。示例 5:https:/xxx.xxx.xxx.xxx/services_path/service_nam

27、e?appkey=xxx&appsecret=xxx&rtype=1&ip=xxx&tyshxydm=xxx8.5.2 返回结果数据包格式参数参照本文件 8.4.3。8.5.3 返回结果参照本文件 8.4.4。8.5.4 应用服务数据项统一社会信用代码变更信息接口服务提供的数据项见表 6。10DB11/T 30412024表6 统一社会信用代码变更信息接口服务数据项数据项标识含义数据类型及长度说明tyshxydm统一社会信用代码nvarchar(18)符合 GB 32100bglx变更类型nvarchar(50)bgq变更前内容nvarchar(255)bgh变更后内容nvarchar(255

28、)bgsj变更日期date8.6 统一社会信用代码股东信息接口8.6.1 许可参数8.6.1.1 内容组成许可参数由一组用户信息组成。8.6.1.2 包体标记及含义许可参数包体标记及含义说明见表 7。表7 许可参数包体标记及含义信息类别标记字符类型及长度含义说明用户信息tyshxydmnvarchar(18)统一社会信用代码jgmcnvarchar(200)机构名称appkeynvarchar(8)用户账号appsecretnvarchar(10)用户密码ipnvarchar(15)被授权应用接口的设备的 IP 地址startdatenvarchar(10)使用期限开始时间授权起始日期endd

29、atenvarchar(10)使用期限结束时间授权终止日期8.6.1.3 包体格式说明许可参数包体采用字串格式。许可参数放置在访问地址的参数里,见示例 6。示例 6:https:/xxx.xxx.xxx.xxx/services_path/service_name?appkey=xxx&appsecret=xxx&rtype=1&ip=xxx&tyshxydm=xxx8.6.2 返回结果数据包格式参数参照本文件 8.4.3。11DB11/T 304120248.6.3 返回结果参照本文件 8.4.4。8.6.4 应用服务数据项统一社会信用代码股东信息接口服务提供的数据项见表 8。表8 统一社会

30、信用代码股东信息接口服务数据项数据项标识含义数据类型及长度说明tyshxydm统一社会信用代码nvarchar(18)符合 GB 32100tzrlx投资者类型nvarchar(2)tzrxm投资者名称nvarchar(200)tzzj认缴出资金额numeric(24,8)tzsj认缴出资日期date9 数据应用调用信息调用状态信息包括接口状态代码及接口状态描述,如表 9 所示。表9 调用状态信息接口状态代码接口状态描述0调用成功1调用失败-100被授权应用接口设备 IP 地址错误-130条件参数错误-160返回结果数据包格式参数错误-200数据库错误-300用户账号错误-400用户密码错误1

31、2DB11/T 30412024附 录 A(资料性)统一社会信用代码基础数据接口调用方法示例A.1 示例说明以河北省统一社会信用代码基础数据接口为例,设定统一社会信用代码接口地址为:https:/ 192.168.100.24:8080/dso/HBtydm_sh_service ; 接 口 用 户 的 统 一 社 会 信 用 代 码 为 :11xxxxxxxx17053009,机构名称为:xx 省(市)标准化研究院;通过接口查询数据的条件是:机构名称中包含“标准”且包含“研究院”的机构;返回结果包体是:json 格式,结果数据项包括:统一社会信用代码、机构名称、行政区划代码、机构地址、经营范

32、围、经济行业代码、联系电话、注册日期、业务类型和最后更新日期。A.2 示例程序代码本示例以 java 语言实现,程序代码如下: package testjgdm;/ 包 名 testjgdm import .URLEncoder;import java.util.HashMap; import java.util.Map;import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; public class jgdm /定义类 jgdmpublic static void main(String ar

33、gs)/调用统一社会信用代码基础数据接口获取符合条件数据的函数String strkey1=标准;/查询关键字 1String strkey2=研究院;/查询关键字 2 try strkey=URLEncoder.encode(strkey1, utf-8); /将查询关键字转换为 utf-8 编码strkey2=URLEncoder.encode(strkey2, utf-8); catch (Exception e1)e1.printStackTrace();String host=https:/192.168.100.24:8080;/接口地址String service_path=/d

34、so/;/接口路径String serivce_name=HBtydm_sh_service;/接口名称String method=POST;/提交方式String appkey=NyyrcP;/许可参数中的 appkeyString appsecret=jttLM7wu;/许可参数中的 appsecret String tydm=11xxxxxxxx17053009;/许可参数中的 tyshxydm String jgmc=xx 省(市)标准化研究院;/许可参数中的 jgmc String ip=192.168.100.25:8080;/许可参数中的 ipString startdate=2

35、023-02-01;/许可参数中的 startdate String enddate=2024-01-31;/许可参数中的 enddate Map headers=new HashMap();Map querys=new HashMap();13DB11/T 30412024/ 构 建 许 可 参 数 licence querys.put(licence,tyshxydm:+tyshxydm+,jgmc:+jgmc+,appk ey:+appkey+,appsecret:+appsecret+,ip:+ip+,startdate:+startdate+,enddate:+enddate+);/

36、 构 建 返 回 结 果 格 式 参 数 repl_packagetype querys.put(repl_packagetype,json);/返回结果数据包为 json 格式/ 构 建 条 件 参 数 cond_information querys.put(cond_information,exp:0*1,result:tyshxydm,jgmc, fddbrxm,zcdzxzqhdm,zcdz,jyfw,jjhydm,lxdh,clrq,djywlx,zhgxrq,fields:fiel d:jgmc,operation: like,value: +strkey1+,field:jgmc

37、,operation: like,value: +strkey2+); try /向接口提交请求HttpResponse response= HttpUtils.doPost(host+service_path, serivce_name, method, headers, querys,);/获取反馈的数据包,并在控制窗口中打印出来System.out.println(EntityUtils.toString(response.getEntity(); catch (Exception e)e.printStackTrace();14DB11/T 30412024附 录 B(资料性)统一社会

38、信用代码变更数据接口调用方法示例B.1 示例说明以河北省统一社会信用代码变更数据接口为例,设定统一社会信用代码接口地址为:https:/ 192.168.100.24:8080/dso/HBbgkinfo;接口用户的统一社会信用代码为:11xxxxxxxx17053009,机构名称为: xx 省(市)标准化研究院;通过接口查询数据的条件是: 统一社会信息用代码为11xxxxxxxx17053009 的变更信息;返回结果包体是:json 格式,结果数据项包括:统一社会信用代码、变更类型、变更前内容、变更后内容和变更日期。B.2 示例程序代码本示例以 java 语言实现,程序代码如下: packa

39、ge testjgdm;/ 包 名 testjgdm import .URLEncoder;import java.util.HashMap; import java.util.Map;import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; public class jgdm /定义类 jgdmpublic static void main(String args)/调用变更数据接口获取符合条件数据的函数String strkey=xxxxxxxxxxxxxxxxxx;/查询关键字try strkey = URLEncoder.encode(strkey, utf-8);/将查询关键字转换为 utf-8 编码 catch (Exception e1)e1.printStackTrace();String host=https:/1

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服