版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年4月19日数据交换详细设计说明书文档仅供参考
江苏省并联审批平台数据交换系统管理详细设计说明书
文档编号:SN/SD-MB-002保密级别:保密版本:V1.0修改日期:-09-14目录1引言 11.1编写目的 11.2项目背景 11.3当前状况 12详细说明 12.1数据库设计 12.1.1数据库命名规则 12.1.2表空间命名规则 12.2逻辑结构 22.2.1T_USER(用户信息) 22.2.2T_ORG(机构信息) 22.2.3T_MENU(菜单信息) 32.2.4T_USER_MENU(用户菜单信息) 32.2.5T_USER_MANAGE_ORG(用户数据权限信息) 32.2.6T_TASK_DEF(任务定义) 42.2.7T_ENDPOINT(端点配置) 42.2.8T_TASK_CTRL(任务运行控制) 52.2.9T_DICT_TRANS(传输方式字典) 52.2.10T_DICT_CDC(增量识别机制字典) 62.2.11T_DATA_QUEUE(待传数据队列) 62.2.12T_TRANS_LOG(数据交换日志) 62.2.13T_SYS_RT_LOG(运行时日志) 62.2.14T_DICT_FMT(数据格式字典) 72.2.15T_NODE_ORG(交换节点表) 72.2.16T_SYS_LOGING_LOG(登录日志) 82.2.17T_SYS_LOGING_LOG_BACKUP(登录日志备份) 82.2.18T_SYS_USE_LOG(系统日志) 82.2.19T_SYS_USE_LOG_BACKUP(系统日志备份) 92.2.20T_DICT_MAIN(字典项主表) 92.2.21T_DICT_MAIN_VALUE(字典值表) 102.2.22T_RT_INST(实例管理表) 102.3系统菜单 102.4用户及权限管理 112.4.1功能说明 112.4.2页面设计 112.4.3相关规则 142.4.4相关SQL 142.5机构管理 152.5.1功能说明 152.5.2页面设计 152.5.3相关规则 152.5.4相关SQL 162.6交换管理 162.6.1功能说明 162.6.2用例图 172.6.3用例分析 172.6.4页面设计 172.6.5相关规则 182.6.6相关SQL 182.7日志管理 192.7.1功能说明 192.7.2用例图 192.7.3用例分析 192.7.4页面设计 202.7.5相关规则 212.7.6相关SQl 212.8字典管理(暂缓) 222.8.1功能说明 222.8.2用例图 222.8.3用例分析 222.8.4页面设计 232.8.5相关规则 232.8.6相关SQL 242.9任务管理 242.9.1模块概述 242.9.2任务定义 252.9.3任务控制 332.9.4错误日志 352.9.5实例管理 372.9.6任务组管理(暂缓) 382.9.7运行控制(暂未实现) 392.10任务运行 402.10.1模块概述 402.10.2基本流程 402.10.3映射规则文件 442.10.4外部接口 572.10.5内部接口 612.10.6交换日志(暂缓) 662.10.7运行时事件日志 672.10.8任务自动启停 682.10.9异常处理 682.10.10运行方式 692.10.11安装部署 69引言编写目的项目背景当前状况详细说明数据展示时根据机构权限过滤此次暂不考虑数据库设计数据库命名规则数据库主键全部采用是32位UUID,针对Oracle数据库采用char(32)表名以“T_”开头,视图名以“V_”开头,函数以“FN_”开头,存储过程以“SP_”触发器以“TR_”针对数据库中相应的字符串,提供以下规范性的字符升序约定:短字符串:varchar2(20),如姓名、电子邮件,类别等。中字符串:varchar2(100),如地址、部门名称等。长字符串:varchar2(1000),如处理意见,备注等。文本型字符串:CLOB,如摘要信息等。表空间命名规则以TS开头加‘_’命名各个表空间,具体内容如下:TS_LOB:大字段存储TS_INDEX:索引表空间TS_DATA:一般数据存储TS_TEMP:临时数据表空间TS_HISTORY:归档数据存储表空间逻辑结构T_USER(用户信息)NameCodeCommentDataTypePFMUSER_IDUSER_ID主键CHAR(32)XXSTAFF_CODESTAFF_CODE用户名VARCHAR2(100)PASSWORDPASSWORD登录密码VARCHAR2(100)BELONG_ORG_IDBELONG_ORG_ID所属机构IDCHAR(32)POSITIONPOSITION用户职务VARCHAR2(100)USER_NAMEUSER_NAME姓名VARCHAR2(20)EMAILEMAIL电子邮箱VARCHAR2(100)LINK_TELLINK_TEL联系电话VARCHAR2(20)STATESTATE状态(1有效,0无效)NUMBER(1)CREATE_ORGCREATE_ORG创立机构CHAR(32)CREATE_DATECREATE_DATE创立时间,精确到秒DATEUSER_TYPEUSER_TYPE用户类型(A管理员,U普通用户)CHAR(1)T_ORG(机构信息)NameCodeCommentDataTypePFMORG_IDORG_ID主键CHAR(32)XXORG_CODEORG_CODE机构代码VARCHAR2(10)ORG_NAMEORG_NAME机构名称VARCHAR2(100)SIMPLE_NAMESIMPLE_NAME机构简称VARCHAR2(50)PARENT_ORG_IDPARENT_ORG_ID上级机构IDCHAR(32)VER_ORG_IDVER_ORG_ID垂管机构父节点IDCHAR(32)ORG_TYPEORG_TYPE机构类型(00省政府,01省级部门,02市政府,03市级部门,04区县政府,05区县部门,)CHAR(2)CREATE_DATECREATE_DATE创立时间,精确到秒DATESTATESTATE状态(1有效,0无效)NUMBER(1)ORDORD机构顺序NUMBER(4)T_MENU(菜单信息)NameCodeCommentDataTypePFMMENU_IDMENU_ID主键CHAR(32)XXPARENT_MENU_IDPARENT_MENU_ID父级菜单IDCHAR(32)MENU_TITLEMENU_TITLE菜单标题VARCHAR2(50)MENU_NAMEMENU_NAME菜单名称VARCHAR2(50)MENU_TYPEMENU_TYPE菜单分类(0系统管理,1非系统管理)NUMBER(1)MENU_DESCRIBEMENU_DESCRIBE菜单描述VARCHAR2(200)MENU_PICMENU_PIC菜单图标VARCHAR2(100)MENU_URLMENU_URL菜单URLVARCHAR2(1000)ORDORD顺序号NUMBER(4)CREATE_DATECREATE_DATE创立时间,精确到秒DATESTATESTATE状态(1有效,0无效)NUMBER(1)T_USER_MENU(用户菜单信息)NameCodeCommentDataTypePFMUSER_MENU_IDUSER_MENU_ID主键CHAR(32)XXMENU_IDMENU_ID菜单IDCHAR(32)USER_IDUSER_ID用户IDCHAR(32)CREATE_ORGCREATE_ORG创立机构CHAR(32)CREATE_DATECREATE_DATE创立时间DATET_USER_MANAGE_ORG(用户数据权限信息)NameCodeCommentDataTypePFMMANAGE_ORG_IDMANAGE_ORG_ID主键CHAR(32)XXUSER_IDUSER_ID用户IDCHAR(32)MANAGE_ORGMANAGE_ORG1省级权限,2市级权限NUMBER(1)CREATE_ORGCREATE_ORG创立机构CHAR(32)CREATE_DATECREATE_DATE创立时间DATET_TASK_DEF(任务定义)NameCodeCommentDataTypePFMIDID
CHAR(32)XXTASK_NAMETASK_NAME名称VARCHAR2(100)TASK_DESCTASK_DESC描述CLOBORG_IDORG_ID所属机构CHAR(32)CREATE_USERCREATE_USER创立人CHAR(32)CREATE_DATECREATE_DATE创立时间DATETASK_STATETASK_STATE1启用0停用NUMBER(1)TRANS_SCRTRANS_SCR转换脚本CLOBSTATESTATE删除标记位NUMBER(1)STATE_DATESTATE_DATE创立/修改时间DATEINST_IDINST_ID执行此任务的运行时平台实例CHAR(32)T_ENDPOINT(端点配置)NameCodeCommentDataTypePFMIDID
CHAR(32)XXEP_TYPEEP_TYPE端点类型.0源端点1目标端点NUMBER(1)TASK_IDTASK_ID所属任务CHAR(32)EP_NAMEEP_NAME端点名称VARCHAR2(100)NODE_IDNODE_ID所属节点CHAR(32)MAP_FILEMAP_FILE映射规则文件CLOBFMT_IDFMT_ID数据格式NUMBER(8)TRANS_IDTRANS_ID传输方式NUMBER(8)DB_TYPE_IDDB_TYPE_ID数据库类型NUMBER(8)JDBC_URLJDBC_URLJDBC连接串VARCHAR2(100)JDBC_USERJDBC_USERJDBC用户名VARCHAR2(100)JDBC_PSWDJDBC_PSWDJDBC密码SHA的HEX散列值CHAR(32)WS_USERWS_USERWS用户名VARCHAR2(100)WS_PWSDWS_PWSDWS密码SHA的HEX散列值CHAR(32)S_CDC_IDS_CDC_ID增量识别机制NUMBER(8)S_TSS_TS时间戳字段VARCHAR2(20)S_TS_DBS_TS_DB时间戳子段是否使用数据库字段.0否1是NUMBER(1)S_TIME_LAGS_TIME_LAG源端点与本系统的保险时差,单位分钟NUMBER(8)D_DB_OPD_DB_OP目标端点数据库操作.位运算.增改删都支持为111,即十进制7NUMBER(1)D_DB_CONFLICTD_DB_CONFLICT目标端点数据库操作时,主键冲突的处理.0合并1丢弃源2丢弃目标3改变主键插入NUMBER(1)D_WS_URLD_WS_URL
VARCHAR2(100)D_CONSIS_MAPD_CONSIS_MAP(目标端点)是否使用和源端点一致的映射规则NUMBER(1)T_TASK_CTRL(任务运行控制)NameCodeCommentDataTypePFMIDID
CHAR(32)XXTASK_IDTASK_ID关联的任务CHAR(32)RUN_PERIODRUN_PERIOD任务能够运行的时间段,自动cron判断VARCHAR2(100)POLL_INTERVALPOLL_INTERVAL轮询间隔,自动cron判断VARCHAR2(100)DAILY_QUOTADAILY_QUOTA日配额控制的数据条数NUMBER(8)BATCH_SIZEBATCH_SIZE批量条数NUMBER(8)DEDICATED_VMDEDICATED_VM是否使用专用虚拟机运行任务NUMBER(1)VM_ARGSVM_ARGS虚拟机启动参数VARCHAR2(100)LAST_SCHELAST_SCHE上次调度时间DATELAST_RUNLAST_RUN上次交换数据时间DATELAST_TSLAST_TS上次交换的截止时间戳(源端点基于时间戳识别时)本系统数据库时间DATET_DICT_TRANS(传输方式字典)NameCodeCommentDataTypePFMIDID
NUMBER(8)XXCODECODE传输方式代码NUMBER(2)NAMENAME传输方式名称VARCHAR2(100)STATESTATE删除标记位NUMBER(1)T_DICT_CDC(增量识别机制字典)NameCodeCommentDateTypePFMIDID
NUMBER(8)XXCODECODE增量识别机制代码NUMBER(2)NAMENAME增量识别机制名称VARCHAR2(100)STATESTATE删除标记位NUMBER(1)T_DATA_QUEUE(待传数据队列)NameCodeCommentDataTypePFMIDID
CHAR(32)XXTASK_IDTASK_ID所属的任务CHAR(32)D_EP_IDD_EP_ID目标端点CHAR(32)CREATE_DATECREATE_DATE数据创立时间DATEPATHPATH数据存放位置(数据必须被串行化到文件系统)VARCHAR2(100)LAST_TRANS_DATELAST_TRANS_DATE最后尝试传输的时间DATEFAILED_TIMESFAILED_TIMES已经失败次数NUMBER(8)T_TRANS_LOG(数据交换日志)NameCodeCommentDataTypePFMIDID
CHAR(32)XXTASK_IDTASK_ID产生数据交换的任务CHAR(32)S_EP_IDS_EP_ID数据来源端点CHAR(32)D_EP_IDD_EP_ID数据目标端点CHAR(32)DATA_COUNTDATA_COUNT交换的数据条数NUMBER(8)DATA_KBDATA_KB交换的数据量NUMBER(8)START_DATESTART_DATE源端点发起数据交换的时间(以本系统获得数据的时刻计)DATEEND_DATEEND_DATE目标端点得到数据的时间(以本系统将数据成功发送给目标端点计)DATET_SYS_RT_LOG(运行时日志)NameCodeCommentDataTypePFMIDID
CHAR(32)XXSEVERITYSEVERITY严重度:0一般1警告2错误NUMBER(1)OCCUROCCUR事件发生阶段:0平台启动1任务启动2任务停止3任务运行NUMBER(1)EVENT_TYPEEVENT_TYPE事件类型:0数据交换成功1数据交换失败NUMBER(8)MESSAGEMESSAGE消息VARCHAR2(200)THREAD_NAMETHREAD_NAME线程名称VARCHAR2(50)ERR_STACKERR_STACK错误堆栈CLOBSOURCESOURCE事件源(发生事件的对象)(对于OCCUR:1、2、3,存放TASK_ID)CHAR(32)EVENT_TIMEEVENT_TIME时间发生时间DATET_DICT_FMT(数据格式字典)NameCodeCommentDataTypePFMIDID
NUMBER(8)XXCODECODE数据格式代码NUMBER(2)NAMENAME数据格式名称VARCHAR2(100)STATESTATE删除标记位NUMBER(1)T_NODE_ORG(交换节点表)NameCodeCommentDataTypePFMIDID节点IDCHAR(32)XNODE_NAMENODE_NAME节点名称VARCHAR2(100)BELONG_ORGBELONG_ORG机构ORGCHAR(32)CREATE_USER_IDCREATE_USER_ID创立人员IDCHAR(32)CREATE_DATECREATE_DATE创立时间,精确到日DATESTATE_DATESTATE_DATE修改时间,精确到日DATENODE_STATENODE_STATE节点状态1-有效0-无效NUMBER(1)STATESTATE删除标记位1-有效0-无效NUMBER(1)T_SYS_LOGING_LOG(登录日志)NameCodeCommentDataTypePFMIDID日志IDCHAR(32)XPERSON_IDPERSON_ID登录人员IDCHAR(32)PERSON_NAMEPERSON_NAME登录人员VARCHAR2(20)LOGING_TIMELOGING_TIME登录时间DATEEXIT_TIMEEXIT_TIME退出时间DATELOGING_IPLOGING_IP登录IPVARCHAR2(100)LOGING_MACLOGING_MAC客户机MAC地址VARCHAR2(100)CREATE_ORGCREATE_ORG创立机构CHAR(32)CREATE_DATECREATE_DATE创立时间,精确到秒DATESTATESTATE是否归档1-已归档0-未归档NUMBER(1)T_SYS_LOGING_LOG_BACKUP(登录日志备份)NameCodeCommentDataTypePFMIDID日志IDCHAR(32)XPERSON_IDPERSON_ID登录人员IDCHAR(32)PERSON_NAMEPERSON_NAME登录人员VARCHAR2(20)LOGING_TIMELOGING_TIME登录时间DATEEXIT_TIMEEXIT_TIME退出时间DATELOGING_IPLOGING_IP登录IPVARCHAR2(100)LOGING_MACLOGING_MAC客户机MAC地址VARCHAR2(100)CREATE_ORGCREATE_ORG创立机构CHAR(32)CREATE_DATECREATE_DATE创立时间,精确到秒DATEBACKUP_DATEBACKUP_DATE归档时间,精确到秒DATET_SYS_USE_LOG(系统日志)NameCodeCommentDataTypePFMIDID日志IDCHAR(32)XPERSON_IDPERSON_ID操作人员IDCHAR(32)PERSON_NAMEPERSON_NAME操作人员VARCHAR2(20)USE_IPUSE_IPIPVARCHAR2(100)USE_MACUSE_MAC客户机MAC地址VARCHAR2(100)MENU_TITLEMENU_TITLE操作模块标题VARCHAR2(100)USE_DESCREBEUSE_DESCREBE操作模块描述VARCHAR2(1000)CREATE_DATECREATE_DATE操作时间,精确到秒DATECREATE_ORGCREATE_ORG创立机构CHAR(32)STATESTATE是否归档1-已归档0-未归档NUMBER(1)T_SYS_USE_LOG_BACKUP(系统日志备份)NameCodeCommentDataTypePFMIDID日志IDCHAR(32)XPERSON_IDPERSON_ID操作人员IDCHAR(32)PERSON_NAMEPERSON_NAME操作人员VARCHAR2(20)USE_IPUSE_IPIPVARCHAR2(100)USE_MACUSE_MAC客户机MAC地址VARCHAR2(100)MENU_TITLEMENU_TITLE操作模块标题VARCHAR2(100)USE_DESCREBEUSE_DESCREBE操作模块描述VARCHAR2(1000)CREATE_DATECREATE_DATE操作时间,精确到秒DATECREATE_ORGCREATE_ORG创立机构CHAR(32)BACKUP_DATEBACKUP_DATE归档时间,精确到秒DATET_DICT_MAIN(字典项主表)NameCodeCommentDataTypePFMDICT_IDDICT_ID字典项IDNUMBER(8)XDICT_NAMEDICT_NAME字典项VARCHAR2(20)DICT_DESCRIPTDICT_DESCRIPT字典项描述VARCHAR2(1000)PARENT_DICT_IDPARENT_DICT_ID上级字典CHAR(32)ITEMITEM所属项目VARCHAR2(20)DICT_NODICT_NO字典编号VARCHAR2(20)CREATE_DATECREATE_DATE创立时间,精确到日DATECREATE_ORGCREATE_ORG创立机构CHAR(32)STATESTATE有效性1-有效0-无效NUMBER(1)T_DICT_MAIN_VALUE(字典值表)NameCodeCommentDataTypePFMDICT_VALUE_IDDICT_VALUE_ID字典值IDNUMBER(8)XDICT_IDDICT_ID字典项IDNUMBER(8)XDICT_VALUEDICT_VALUE字典值VARCHAR2(100)ORDORD顺序号NUMBER(4)CREATE_DATECREATE_DATE创立时间,精确到日DATESTATESTATE有效性1-有效0-无效NUMBER(1)T_RT_INST(实例管理表)NameCodeCommentDataTypePFMIDID标识符CHAR(32)XNAMENAME实例名称VARCHAR2(100)VM_ARGSVM_ARGS虚拟机启动参数VARCHAR2(100)HTTP_PORTHTTP_PORTHTTP侦听端口NUMBER(5)HTTPS_PORTHTTPS_PORTHTTPS侦听端口NUMBER(5)IPIP所在主机的IP地址VARCHAR2(1000)STATESTATE状态,1为显示,0为删除标记位CHAR(1)CREATE_USERCREATE_USER创立人CHAR(32)CREATE_DATECREATE_DATE创立时间DATEUPDATE_DATEUPDATE_DATE更新时间DATE系统菜单系统管理用户及权限管理机构管理交换管理登录日志系统日志任务管理任务定义任务控制错误日志实例管理用户及权限管理功能说明管理维护系统中用户的基本信息,包括:用户名、密码、电子邮箱、联系电话、所属部门、状态(有效、无效)。页面设计新增/编辑页面用户信息T_USER用户名STAFF_CODE密码PASSWORD姓名USER_NAME职务POSITION电子邮箱EMAIL联系电话LINK_TEL所属部门BELONG_ORG_ID数据权限过滤,省级权限展示全省的机构,市级权限展示登录用户所在市政府及其下级机构状态有效VSTATE提交关闭列表页面查询条件中所属部门进行数据权限过滤,省级权限展示全省的机构、市级权限展示当前登录用户所在机构及其下级机构。当查询条件全部为空时,列表查询数据根据数据权限进行过滤,省级权限查询全部数据、市级权限查询登录用户所在机构及其下级机构数据,示意SQL:省级权限数据查询范围省级权限查询全省的数据,列表中直接查询全表有效数据SELECT*FROMT_USER市级权限数据查询范围市级权限查询当前登录用户所在市政府及其下级机构的数据SELECT*FROMT_USERRWHERER.CREATE_ORGIN(SELECTORG_IDFROMT_ORGAWHEREA.STATE=1STARTWITHA.ORG_ID='&当前登录登录所在机构ORG_ID'CONNECTBYPRIORA.ORG_ID=A.PARENT_ORG_ID)修改密码修改密码用户名只读、自动带入STAFF_CODE姓名只读、自动带入USER_NAME新密码必输项PASSWORD新密码确认必输项PASSWORD确认返回相关规则新增用户时状态默认为有效,不可修改。用户修改时页面中数据项都放开可编辑。点击“修改密码”直接弹出新密码录入页面,由用户录入新的密码。用户名:必输项,需进行唯一性校验职务:带入后可修改登录密码与确认密码必须一致,最小4位最大12位,并经过SHA加密如列表中选中了多条数据,则将修改按钮灰化,不可点击用户删除时可进行多选,删除时询问:是否确定将选中用户删除?权限树状列表为数据交换系统中所有模块的清单。选择用户点击用户权限中的新增按钮弹出权限的树状列表。数据权限分为省级权限、市级权限,具备省级权限可查看全省的数据,具备市级权限可查看登录用户所在市政府及下属政府、机构的数据。数据权限中省级权限、市级权限不可同时选择。相关SQL查询用户信息SELECTU.STAFF_CODE,U.USER_NAME,U.POSITION,O.ORG_NAME,DECODE(STATE,1,'有效',0,'无效')STATEFROMT_USERU,T_ORGOWHEREU.ORG_ID=O.ORG_IDORDERBYO.ORD查询用户权限SELECTM.MENU_TITLEFROMT_MENUM,T_USER_MENUUMWHEREM.MENU_ID=UM.MENU_IDANDUM.USER_ID='选择的USER_ID'新增用户:INSERTINTOT_USER修改用户:UPDATET_USER删除用户菜单DELETEFROMT_USER_MENUWHEREUSER_IDIN('选择的USER_ID')删除用户UPDATET_USERSETSTATE='0'WHEREUSER_IDIN('选择的USER_ID')--菜单查询SELECTMENU_TITLEFROMT_MENUWHERESTATE='--插入菜单INSERTT_USER_MENU用户权限删除可进行多选,删除时询问:是否确定将选中用户权限删除?DELETEFROMT_USER_MENUWHEREIDIN('选择的ID')机构管理功能说明管理维护数据交换所涉及的各机构的信息,包括:机构名称、规范化简称、机构代码、所属行政区划、部门间隶属关系。页面设计页面设计以软件为准,要求页面数据项一致、功能实现,页面布局不做要求,新增/修改页面机构维护机构代码输入框ORG_CODE机构名称输入框ORG_NAME机构简称输入框SIMPLE_NAME机构类型下拉框ORG_TYPE上级机构下拉框PARENT_ORG_ID上级垂管机构下拉框VER_ORG_ID状态下拉框STATE顺序号输入框ORD确定返回列表页面相关规则列表展示所有的机构数据,并支持多选机构名称为模糊查询机构类型为下拉选择【空-全部、00-省政府、01-省级部门、02-市政府、03-市级部门、04-区县政府、05-区县部门、】状态为下拉选择【空-全部、1-有效、0-无效】相关SQL查询机构信息SELECTO.ORG_ID,O.ORG_NAME,O.SIMPLE_NAME,DECODE(O.ORG_TYPE,'00','省政府','01','省级部门','02','市政府','03','市级部门','04','区县政府','05','区县部门',')ORG_TYPE(SELECTORG_NAMEFROMT_ORGWHEREORG_ID=O.PARNET_ORG_ID)PARENT_ORG_NAME,DECODE(O.STATE,'1','有效','0','无效')STATEFROMT_ORGOORDERO.ORD新增:INSERTINTOT_ORG修改:UPDATET_ORG机构删除可进行多选,删除时询问:是否将选中机构及其下级机构一并删除?--查询要删除的所有ORG_IDSELECTORD_IDFROMT_ORGSTARTWITHORG_IDIN('选中的ORG_ID')CONNECTBYPRIORORG_ID=PARENT_ORG_ID--删除用户UPDATET_USERSETSTATE='0'WHEREORG_IDIN('查询的ORG_ID')--删除机构UPDATET_ORGSETSTATE='0'WHEREORG_IDIN('查询的ORG_ID')机构列表展示时根据登录用户进行数据过滤,省级权限查询全省的数据,市级权限查询当前登录用户所在机构及其下级机构的数据。交换管理功能说明该模块主要包含:交换节点管理,负责维护数据交换系统中各交换节点信息。用例图用例分析概述用例名称:交换节点维护参与者:系统管理员用例概述:系统管理员针对节点与机构绑定进行管理、修改操作,该操作只对软件的统计分析有影响,对软件整体运行无影响。事件流前置条件:无后置条件:无基本事件流:系统管理员进入交换节点管理页面后,点击新增和修改进行交换节点内容的操作,点击删除则节点不在展示在列表中。备选(扩展)事件流:无异常事件流:系统维护中保存失败或删除失败后,系统依然显示信息录入界面或列表页面,并提示失败原因页面设计交换节点管理维护管理数据交换系统中各交换节点对应的机构。提供新增、删除、修改功能。查询条件“机构名称”进行数据权限过滤,省级权限查全省的数据,市级权限根据登录登录用户查其本级及其下级机构的数据。新增页面新增交换节点节点名称TXT框NODE_NAME机构名称∨ORG_ID状态有效∨NODE_STATE提交关闭相关规则根据登录人员所在机构展示该机构下的所有交换节点,即本机构下的所有管理员均可对该机构下的所有交换节点进行维护。新增页面进入时状态默认有效且只读不可修改,各数据项必输。修改页面进入时所有数据项均放开可修改,各数据项不可为空。删除后,将不在列表中展示。相关SQL查询规则:根据登录用户所在机构展示该机构下的所有节点Selectnode_name,(selectorg_namefromt_orga,t_node_orgbwhere_id=_id),node_statefromt_node_orgwherestate=1andorg_id=‘登录用户ORG’;插入规则:insertt_node_org插入时默认node_state=1,state=1修改规则:NODE_NAME,ORG_ID,NODE_STATE状态可修改。删除规则:updatet_node_orgsetstate=0;日志管理功能说明记录数据交换系统中各功能模块所产生的日志,主要内容包括:登录日志、系统日志。用例图用例分析概述用例名称:维护系统日志参与者:系统管理员用例概述:系统管理员进行系统日志维护等操作。事件流前置条件:无后置条件:无基本事件流:系统管理员进入数据日志管理页面后,能够进行日志查询、归档操作;备选(扩展)事件流:无异常事件流:归档成功返回成功信息,若失败则仍显示查询页面,并提示失败原因页面设计登录日志在菜单项中选择【登录日志】,进入页面系统日志在菜单项中选择【系统日志】,进入页面查询条件“机构名称”数据需进行数据权限过滤双击某条数据可查看操作详细页面操作描述USE_DESCREBE相关规则登录日志:记录用户登录该系统的历史信息。机构名称:若为省局用户则出本级及下级机构名称,默认省局,若为市级用户则默认为本级,展示本级及下级机构名称登录人员:模糊查询,根据机构名称查询该机构下的登录人员。日志归档:对日志进行归档操作系统日志:记录用户对系统中增、删、改等一系列操作信息。机构名称:同登录日志操作人员:同登录日志操作模块时间:即触发ButtonClick事件后进行记录,记录的操作含增、删、改,备份等事务操作,不包含查询。双击某条数据能够查看操作描述页面相关SQl首次进入页面时查询规则:展示未归档日志,省局用户展示本级及下级局;市局用户只展示本级。Selectcreate_org,person_name,loging_time,exit_time,loging_ip,loging_macfromT_SYS_LOGING_LOGwherestate=0andcreate_org=‘根据登录用户判断’登录日志数据插入规则:用户首次登录时执行insert操作,退出时间为空;当用户退出时,根据PERSON_ID查找CREATE_DATE最大那条数据,执行update操作,其它字段不变,只修改退出时间。归档规则:Insertt_sys_loging_log_backup(t_sys_use_log_backup)取t_sys_loging_log(t_sys_use_log)中state=0且create_org=’本机构’的数据Updatet_sys_loging_log(t_sys_use_log)setstate=1(已归档)输入查询条件后:查询t_sys_loging_log(t_sys_use_log)中statein(0,1)的数据,且需要根据登录人员所在机构过滤字典管理(暂缓)功能说明对系统内部一些取值基本能固定下来的数据选取项,经过数据字典进行维护。用例图用例分析概述用例名称:维护数据字典参与者:系统管理员用例概述:系统管理员进行系统中数据字典的维护等操作,一般对字典主表的操作建议不给系统管理员操作权限。事件流前置条件:无后置条件:无基本事件流:系统管理员进入数据字典管理页面后,点击新增字典和修改字典进行字典的操作,点击新增字典值、修改字典值和删除字典值进行字典值操作;备选(扩展)事件流:无异常事件流:系统维护中保存失败或删除失败后,系统依然显示信息录入界面或列表页面,并提示失败原因页面设计列表显示页进入该模块后显示如下,左侧为字典项列表,右侧为对应左侧字典项的字典值的列表信息;字典管理字典项.使用机构.查询重置新增字典修改字典删除字典新增字典值修改字典值删除字典值字
项上级字典使用项目使用机构字典项值排序口DICT_NAMEPARE
T_DICT_IDITEMCREATE_ORG口DICT_VALUE1口口2口口3口。。。首页上一页下一页末页第XX页GODIC
_VA
UESO
D新增修改字典页面字典编号DICT_NO字典项DICT_NAME字典项描述DICT_DESCRIPT上级字典PARENT_DICT_ID下拉选使用项目ITEM下拉选不能为空默认为公共使用机构CREATE_ORG保存取消新增修改字典值页面字典项默认左边选中的字典项的值DICT字典项值排序保存保存继续取消相关规则除使用机构外,页面各数据项不能为空;该功能只提供给管理员进行维护,一般情况用户只能增删改字典项的值,字典主表由开发人员开发时维护或初始化化时执行脚本生成;字典值维护页面,点击保存按钮返回列表,点击保存继续按钮保存数据继续新增操作。先根据ITEM来取本项目的字典,没有则取ITEM为公共的数据字典;再根据当前人的机构ID取本机构字典,没有则BELONG_ORG为空的。相关SQL查询规则:selecta.dict_name,a.parent_dict_id,a.item,a.create_org,b.dict_value,b.ordfromt_dict_maina,t_dict_main_valuewherea.dict_id=b.dict_idanda.create_org=‘用户所在机构’;插入规则:insertt_dict_main/insertt_dict_main_valewheredict_id=‘所选dict_id’删除规则:deletet_dict_main/insertt_dict_main_vale任务管理模块概述任务管理模块负责数据交换任务的定义、维护和运行控制。为方便扩展,对当前数据交换需求中的角色进行抽象化,定义以下概念:端点:直接连接到本系统,进行数据交换的实体。该实体能够是业务系统、数据库,甚至是操作系统目录。端点之间以本系统作为中介,进行通信。本节采用数据格式+通信方式的形式,作为端点类型的非正式表示源端点:在数据交换任务中,作为数据来源的端点。主动源端点是指主动触发任务运行的源端点(如XML+WebService);被动源端点是指仅仅产生待交换数据而不触发任务运行,由本系统轮询触发任务运行的源端点增量识别机制:指从源端点的数据存储中确认新增/变化数据的方式。包括基于触发器、基于时间戳、基于Where子句、全表扫描等目标端点:在数据交换任务中,接收数据的端点数据格式:端点对数据的组织形式,主要分为RDBMS(表或者视图)、二进制格式和文本格式三类。其中二进制格式包括Excel电子表格;文本格式包括XML、逗号分隔符等通信方式:端点连接到本系统的通信协议或者技术手段。包括JDBC、HTTP、WebService、JMS、MOM(主要指MQ)、FTP等方式内部数据格式:本系统内部对数据格式的一致性表示。该表示为一树形结构,支持对端点数据格式的自动化映射映射规则:描述端点数据格式——内部数据格式的映射规则的元数据,以XML的形式表示对上述概念的补充说明:端点的数据格式、通信方式、增量识别机制不能任意组合,依赖于特定的技术的固有特征。例如RDBMS只能和JDBC组合本次设计,不涉及上述数据格式、通信方式的全部例示。主要实现对XML+WebService、RDBMS+JDBC两种端点的支持;增量识别机制支持基于时间戳的方式任务定义该模块属于人机交互模块,负责数据交换任务的定义。任务定义的核心是源端点、目标端点的配置。数据对应关系表关系说明本模块涉及三张平台库中的表:T_TASK_DEF:任务基本信息表T_TASK_CTRL:任务控制信息表T_ENDPOINT:端点信息表(EP_TYPE=0表示源端点,EP_TYPE=1表示目标端点,每个任务只有一个源、一个目标端点)T_TASK_DEF.ID=T_TASK_CTRL.TASK_IDT_TASK_DEF.ID=T_ENDPOINT.TASK_ID字段对照表页面元素表字段说明任务名称T_TASK_DEFTASK_NAME任务描述T_TASK_DEFTASK_DESC创立人T_TASK_DEFCREATE_USER所属机构T_TASK_DEFORG_ID创立时间T_TASK_DEFCREATE_DATE状态T_TASK_DEFTASK_STATE创立/修改时间T_TASK_DEFSTATE_DATE每次对任务进行变动,必须修改此字段为SYSDATE执行此任务的运行时平台实例T_TASK_DEFINST_ID运行时段T_TASK_CTRLRUN_PERIOD日配额控制T_TASK_CTRLDAILY_QUOTA轮询周期T_TASK_CTRLPOLL_INTERVAL独立VM运行T_TASK_CTRLDEDICATED_VMJVM参数T_TASK_CTRLVM_ARGS最近调度时间T_TASK_CTRLLAST_SCHE最近运行时间T_TASK_CTRLLAST_RUN转换脚本T_TASK_DEFTRANS_SCR端点名称T_ENDPOINTEP_NAME所属节点T_ENDPOINTNODE_ID映射规则文件T_ENDPOINTMAP_FILE数据格式T_ENDPOINTFMT_ID传输方式T_ENDPOINTTRANS_ID数据库类型T_ENDPOINTDB_TYPE_ID启用XA事务T_ENDPOINTXA_ENABLEDJDBC连接串T_ENDPOINTJDBC_URLJDBC用户名T_ENDPOINTJDBC_USERJDBC密码T_ENDPOINTJDBC_PSWD增量识别机制T_ENDPOINTS_CDC_ID时间戳字段T_ENDPOINTS_TIMESTAMP步进(秒)T_ENDPOINTS_TIME_STEP注意:数据库单位是毫秒,模型层/Service层执行转换条件表示式T_ENDPOINTS_WHERE_CLAUSE回填表示式T_ENDPOINTBACKFILL_CLAUSE执行删除T_ENDPOINTBACKFILL_CLAUSE如果选中,直接填入delete字样批量条数T_ENDPOINTS_BATCH_SIZE允许的操作T_ENDPOINTD_DB_OP主键冲突处理T_ENDPOINTD_DB_CONFLICT和源端点使用相同的配置T_ENDPOINTD_CONSIS_MAPWS客户端用户名T_ENDPOINTWS_USERWS客户端密码T_ENDPOINTWS_PWSD向源端点报告异常T_ENDPOINTS_RPT_ERRWS名字空间T_ENDPOINTD_WS_NSWS服务端地址T_ENDPOINTHTTP_URLHTTP通道T_ENDPOINTHTTP_CHNL同时勾选则填写2保留时差T_ENDPOINTS_OVERSTEP注意:数据库单位是毫秒,模型层/Service层执行转换查询功能说明查询已经存在的交换任务,展示基本信息,并提供新建、修改、控制任务的功能入口点。页面设计注意:字段顺序、每行展示字段数、展示方式能够根据需要自行调整。相关规则点击创立任务按钮,进入详情录入模块。点击类似任务创立按钮,重新载入选择的模块,任务名称验证其唯一性,文本框的值自动带入,列表的值只能选择其一不能多选点击修改按钮,进入任务修改模块。进入页面所有显示状态均是STATE=1点击删除按钮,STATE设置为“0”;创立人展示为单选字典,显示所属机构下的人员。所属机构展示为字典,显示当前用户有权看到的机构,如果为空,查询语句根据用户所能看见的机构进行过滤。相关SQL查询sqlselectTRIM(b.id)defId,b.task_name,to_char(b.create_date,'yyyy-mm-dd')create_date,(select_namefromt_orgawhere_id=_id)org_id,(selectuser_namefromt_userdwhered.user_id=b.create_user)create_user,(SELECTto_char(c.last_sche,'yyyy-mm-ddhh24:mi:ss')last_scheFROMt_task_ctrlcWHEREb.id=c.task_id)last_sche,(SELECTto_char(c.last_run,'yyyy-mm-ddhh24:mi:ss')last_runFROMt_task_ctrlcWHEREb.id=c.task_id)last_run,(SELECTc.poll_intervalFROMt_task_ctrlcWHEREb.id=c.task_id)poll_interval,(SELECTC.RUN_PERIODFROMT_TASK_CTRLCWHEREB.ID=C.TASK_ID)RUN_PERIOD,(SELECTC.DEDICATED_VMFROMT_TASK_CTRLCWHEREB.ID=C.TASK_ID)DEDICATED_VM,(SELECTC.DAILY_QUOTAFROMT_TASK_CTRLCWHEREB.ID=C.TASK_ID)DAILY_QUOTA,(SELECTc.idFROMt_task_ctrlcWHEREb.id=c.task_id)id,DECODE(b.task_state,'1','submit.gif','0','disable.gif')task_statefromt_task_defbwhereb.state=1删除sqlupdatet_task_defaseta.state=0whereid=“所选标记id”详情录入功能说明该子模块负责数据交换任务的设计,核心逻辑是源、目标端点的配置和组合。页面设计注意:字段顺序、每行展示字段数、展示方式能够根据需要自行调整。在修改交换任务时,映射规则文件的表单文本框不显示任何内容。转换脚本字段如下,可放在页面上单独的选项卡内,脚本内容当前不做任何验证:(暂未实现,字段在页面中隐藏)数据库模式源端点使用基于时间戳的增量识别器的情况:图中未画的字段:保留时差注释:cron表示式当前没有实质用途,当前先隐藏。源端点使用基于时间戳增量识别器的情况:基于过滤条件增量识别器的页面如下:报文模式类似创立页面相关规则注意!源端点和目标端点能够使用不同的模式:数据库或者报文对于条件表示式的填写即填写where字句,填写格式为字段=‘值’对于多个字段的填写格式为字段=‘值’and字段=‘值’and………对于映射规则文件在修改的时候如果库里面有数据则能够不用限制必填。数据库模式数据格式选中关系型数据库时,传输方式自动变为JDBC,并显示上节图中显示的数据库相关的数据项映射规则文件由客户端上传,点击上传后立即存放于应用服务器的临时位置,并调用接口执行验证:sparknet.canary.core.mapping.parser.MappingRulesParser.parse如果抛出异常,则提示用户格式有误。注意:此parse方法比较消耗资源,实现时一个映射文件只parse一次,解析结果存放在HTTPSession范围,以MD5为key,在提交本页面后,清除之。数据库类型从T_DICT_DB_TYPE拉出字典展示如果选中的数据库类型支持XA,则显示启用XA复选框,默认勾选。目标数据库支持XA要求T_DICT_DB_TYPE.XA_DS_CLS不为空。如果XA_DS_CLS为空,则不得为启用状态!!JDBC连接串只读,只能点击编辑修改。点击编辑,弹出窗/层中展示T_DICT_DB_TYPE.URL_TEMPLT中定义的EL表示式风格的变量占位符,弹出层提交后,自动进行模板替换,并填入到JDBC连接串。以Oracle10g为例:jdbc:oracle:thin:@${主机地址}:${TNS侦听端口}:${服务名}弹出窗口需要展示主机地址、TNS侦听端口、服务名3字段提交表单时,执行数据库连通性验证:CanaryHelper.testDbConnection,如果失败,则警告用户,源端点(或者目标端点)无法联通,是否继续。增量识别机制根据T_DICT_CDCWHERESTATE=1拉出字典如果选中时间戳触发,则展示:时间戳字段、步进(秒)两个页面元素;如果选中过滤条件触发,则展示:条件表示式、回填表示式、执行删除、批量条数几个页面元素。时间戳字段必须在上传映射规则文件后才能录入,时间戳字段能够填写实体映射(EntityMapping)的实体属性名(name),或者对应列名(column),而且必须使用简单属性(SimplePropertyMapping),以上规则经过MappingRulesParser.parse得到的映射规则模型(MRM)进行验证,如果有错,则报告前台。验证触发时期为失去焦点onblur步进的单位为秒,数据库是毫秒,该转换在MVC-M层或者Service层执行转换条件表示式,为where子句片段,调用sparknet.canary.core.cdc.HqlConverter.convertWhereClauseIfNecessary执行验证和转换,转换结果自动替换原值,如果抛出InvalidClauseException则报告前台。验证触发时期为失去焦点onblur。回填表示式,为set子句片段,调用sparknet.canary.core.cdc.HqlConverter.convertSetClauseIfNecessary执行验证和转换,转换结果自动替换原值,如果抛出InvalidClauseException则报告前台。验证触发时期为失去焦点onblur。如果勾选“执行删除”,则回填表示式灰化,而且值变为“delete”字样允许的操作,默认勾选插入、更新如果不允许插入操作,则主键冲突处理全部radio灰化改变主键插入因为当前不支持,永远灰化如果勾选“和源端点使用相同的配置”,则目标端点的映射规则文件灰化。Service层自动把源端点的映射文件赋值给目标端点。对轮询周期增加提示说明,当鼠标移至“轮询周期”时显示提示信息,内容如下:实时性高:1-10实时性中:20-50(推荐)实时性低:50-1000。对步进增加提示说明,当鼠标移至“步进”时显示提示信息,内容如下:高度并发:1-10中度并发:20-100(推荐)低度并发:150-300。报文模式映射规则文件和上节规则一致源端点的Webservice用户名,必须全局唯一,即SELECTCOUNT(*)FROMT_ENDPOINTWHEREEP_TYPE=0ANDWS_USER=any的结果<=0WS名字空间默认为提交表单时调用CanaryHelper.testHTTPConnection验证目标WebService的连通性,如果失败则提示用户:目标端点无法联通,是否继续任务控制功能说明该子模块负责任务的启用、停用的控制。页面设计相关规则点击“启用”,有以下两种情况:原启动的任务重新启动(重启);原停用的任务启动。点击“停用”,也有以下两种情况:原停用的任务保持停用。原启用的任务变为停用。3.进入页面所有显示状态均是STATE=相关SQL查询sqlselectTRIM(b.id)defId,b.task_name,to_char(b.create_date,'yyyy-mm-dd')create_date,(select_namefromt_orgawhere_id=_id)org_id,(selectuser_namefromt_userdwhered.user_id=b.create_user)create_user,(SELECTto_char(c.last_sche,'yyyy-mm-ddhh24:mi:ss')last_scheFROMt_task_ctrlcWHEREb.id=c.task_id)last_sche,(SELECTto_char(c.last_run,'yyyy-mm-ddhh24:mi:ss')last_runFROMt_task_ctrlcWHEREb.id=c.task_id)last_run,(SELECTc.poll_intervalFROMt_task_ctrlcWHEREb.id=c.task_id)poll_interval,(SELECTC.RUN_PERIODFROMT_TASK_CTRLCWHEREB.ID=C.TASK_ID)RUN_PERIOD,(SELECTC.DEDICATED_VMFROMT_TASK_CTRLCWHEREB.ID=C.TASK_ID)DEDICATED_VM,(SELECTC.DAILY_QUOTAFROMT_TASK_CTRLCWHEREB.ID=C.TASK_ID)DAILY_QUOTA,(SELECTc.idFROMt_task_ctrlcWHEREb.id=c.task_id)id,DECODE(b.task_state,'1','submit.gif','0','disable.gif')task_statefromt_task_defbwhereb.state=1启用sqlupdatet_task_defbsetb.task_state=1,b.state_date=sysdatewhereid='“所选标记id”andb.state=1停用sqlupdatet_task_defbsetb.task_state=0,b.state_date=sysdatewhereid=“所选标记id”andb.state=1"错误日志功能说明该子模块负责对错误的任务的原因以及错误详情提供显示。页面设计列表显示页:错误详情查看页:相关规则事件发生所处阶段:代码阶段中文名说明0PLATFORM_INIT平台启动运行时平台启动期间的事件1TASK_INIT任务启动任务初始化期间的事件2TASK_STOP任务停止任务停止期间的事件3TASK_RUN任务运行任务运行时发生的事件事件类型:代码事件类型中文名说明严重度0TRANS_SUCCEED数据交换成功参事件发布时机NORM1TRANS_FAILED数据交换失败ERROR事件严重度级别:代码严重度中文名说明0NORM一般1WARN警告2ERROR错误点击“详情”能够查看错误日志明细:任务名称:为发生错误的任务名称。发生时间:任务发生错误时的具体时间。线程名称、消息、错误堆栈是经过EventLogger以及CanaryEvent类捕获的运行平台的错误信息,供技术人员使用,线程名称为任务发生错误时正在运行的线程名称,消息为消息号,错误堆栈为错误信息的堆栈信息。相关SQL查询sqlselecta.id,DECODE(a.severity,'0','一般','1','警告','2','错误')severity,DECODE(a.occur,'1','任务启动','2','任务停止','3','任务运行')occur,DECODE(a.event_type,'0','数据交换成功','1','数据交换失败')event_type,a.message,a.thread_name,a.err_stack,(selectb.task_namefromt_task_defbwhereb.id=a.source)source,to_char(a.event_time,'yyyy-mm-ddhh24:mi:ss')event_timefromT_SYS_RT_LOGawhere1=1实例管理功能说明该模块对任务实例进行增删改的集中管理,为了适应多台服务器部署而服务。页面设计列表页面:新增管理页面:修改实例页面:相关规则查询页面根据state为1的显示创立实例是创立人为登录人员,创立人不可修改修改实例时值自动带入,创立人不可修改删除将state置为0,而且将t_task_def表中的INST_ID置空相关sql1.查询sqlselecta.id,,a.example_descrebe,(selectu.user_namefromt_useruwhereu.user_id=a.create_user)create_user,to_char(a.create_date,'yyyy-mm-ddhh24:mi:ss')create_datefromT_RT_INSTawherea.state='1'orderbya.create_datedesc2.增加sqlinsertintoT_RT_INST(id,name,example_descrebe,create_user,create_date,update_date,state)values(?,?,?,?,?,?,?)3.修改sqlupdateT_RT_INST4.删除sqlupdateT_RT_INSTsetstate=0whereid=“实例的ID”运行控制(暂未实现)功能说明人机交互模块,负责数据交换任务的启停、调度、运行时段、轮询周期等设置。页面设计查询页面与任务定义模块类似运行控制页面:相关规则运行时段,如果不使用cron表示式,则填写起始时刻-结束时刻,仅支持小时,例如6-18轮询周期,如果不使用cron表示式,则填写轮询间隔的秒数轮询周期仅对源端点为被动源端点(即关系型数据库+JDBC端点)的情况有意义,否则隐藏。根据任务定义中的属性判断。任务运行模块概述该模块为系统的核心组件——运行时平台,实现可配置化的数据交换服务。可配置化主要体现在两个方面:内建对多种传输协议/通信方式的支持,进行数据交换时,仅需要在进行任务定义时指定端点连接到本系统的方式,及其必要参数内建对多种数据格式的支持,并经过映射规则文件指定各种数据格式与系统内部数据格式之间的关系。仅需要在进行任务定义时指定此映射规则文件,系统即可完成数据格式转换的自动化基本流程本节内容在宏观上描述从源端点产生数据、本系统传递数据到目标端点消费数据的整体过程。由于源端点、目标端点没有任何耦合关系,数据交换流程仅以纯数据库方式、纯报文方式为例,不对四种组合一一阐述。数据库+JDBC流程+时间戳本小节以源端点、目标端点均为数据库的情况为例,说明数据交换的过程。此场景中,源端点为被动源端点。数据产生流程:源端点对应的业务系统,不定期把数据存储到源端点中,而且把每行数据的时间戳字段设置为系统当前时间,时间精确到秒。如果具有主从表,时间戳字段一律于主表保存。数据交换流程:1. 本系统的定时器,根据cron表示式规定的周期,触发运行2. 定时器检查源端点中的数据,如果存在时间戳>上次交换时间戳的数据,则触发数据交换3. 设上次交换时间戳为t,单批数据交换步进为s。本系统查询timestamp>tandtimestamp<=t+s的数据。而且根据源端点映射规则,转换为内部数据格式。注意,如果配置了转换脚本,在该步骤调用脚本对内部数据格式进行转换。(该功能暂不实现)4. 根据目标端点映射规则,本系统把内部结构转换为目标端点的DML语句,入库5. 设置上次交换时间戳t=t+s6. 转到3继续执行,直到没有增量数据,转到77. 本次任务调度结束注意:4、5在单个分布式事务中完成。其中第六步,考虑到不同系统之间可能存在的时差,允许设置一个保留时差,该时差确保:时间戳>当前运行时平台系统时间-时差的数据时,自动停止数据的交换。流程示意图如下图所示:数据库+JDBC流程+过滤条件根据并联审批的要求,该小节优先实现。总体上与上一节流程相似,不同的是:根据过滤条件,而不是根据由时间戳构建的查询条件获取增量交换完成后,对源数据库执行“回填表示式”指定的update操作,而不是记录时间戳WebService+XML流程本小节以源端点、目标端点均为WebService端点的情况为例,说明数据交换的内部过程。此场景中,源端点为主动源端点。数据产生:根据需要,源端点能够在业务数据产生时,实时调用本系统的WebService接口发送XML;或者在业务数据入库后,由独立程序负责取出数据并转换为XML、发送。数据交换:1. 源节点根据业务数据拼装XML报文,调用本系统的WebService接口发送2. 本系统根据源端点映射规则,把报文解析为内部数据格式。注意,如果配置了转换脚本,在该步骤调用脚本对内部数据格式进行转换。(该功能暂不实现)3. 本系统根据目标端点映射规则,把内部数据格式转换为XML报文4. 本系统调用目标端点的WebService,发送XML报文5. 目标端点解析报文并保存注意:如果任务定义时,“向源端点报告异常”设置为总是时,则2、3、4步骤出现任何错误,均经过WS调用的返回值(形式为报文)报告源端点;否则,仅当2步骤出现错误时,报告源端点。流程示意图如下图所示:映射规则文件工作原理基本结构映射规则文件使用XML形式来表示。XML根元素为entity-mapping,其每个子元素代表一个实体,元素名为entity。实体能够映射到某种数据格式中的目标,这里的目标能够指:关系型数据库中的:表或视图XML报文中的:XML树中的某个节点及其子节点Excel电子表格中的:带有特定表头规格的sheet实体具有字段,字段分为标识符字段、普通字段和引用字段三类。标识符字段代表实体对象的唯一特征,在数据格式:“关系型数据库”中,与主键对应。标识符字段以及普通字段能够映射到某种数据格式中的目标,这些目标能够指:关系型数据库中的:列XML报文中的:某个子节点Excel电子表格中的:列引用字段关联其它实体,引用字段对应的实体必须在映射规则文件中声明为entity元素。根据关联基数的不同,引用字段声明为one-to-many,many-to-one或者many-to-many元素。为简便起见,在映射规则文件中,many-to-many特指基于连接表的关联,虽然使用连接表,能够表示n:m关联,也能够表示1:n甚至1:1关联。引用字段能够映射到某种数据格式中的目标,这些目标能够指:关系型数据库中的:表或视图——作为该字段所属实体对应表的子表XML报文中的:XML树中的某个节点及其子节点——作为该字段所属实体对应节点的子节点Excel电子表格中的:带有特定表头规格的sheet——与作为该字段所属实体对应sheet不是同一个sheet详细规定entity-mapping元素该元素为映射规则文件固定的根元素,包含1-n个实体定义。其中第一个实体定义为实体导航树的起始点(在数据库中即为“主表”)。entity元素XPath路径:/entity-mapping/entity该元素代表一个实体定义,引用的实体也定义为独立的元素。该元素的属性列表:属性名称取值范围说明name驼峰式大小写的字符串,首字母小写全局(在单个任务重)唯一实体的逻辑名称,内部数据格式中,用于识别实体类型table、node不指定时,其值与本属性一致table字符串实体对应表格的名称,用于支持数据库映射node字符串实体对应的XML报文元素名(标签名),用于支持XML映射sheet字符串电子表格Sheet名,用于支持Excel映射sheet-index非负整数电子表格Sheet索引,从0开始,用于支持Excel映射id元素XPath路径:/entity-mapping/entity/id该子元素必须出现,且出现次数为1,用于表示实体的标识符字段该元素的属性列表:属性名称取值范围说明name驼峰式大小写的字符串,首字母小写实体的标识符字段的逻辑名称node、column、xls-column若不指定,则与本属性一致node字符串或者”.”实体标识符映射到的XML节点。使用复合标识符的时候,该属性能够取值为”.”,表示把复合标识符的子元素直接设置为实体的子元素。如果实体anEntity的标识符node属性分别设置为“comp-id”和“.”,则报文分别为:<corp><comp-id><org>876</org><id>10000</id><seq-id>1</seq-id></comp-id></corp><corp><org>876</org><id>10000</id><seq-id>1</seq-id></corp>type枚举,见字段类型列表在使用简单标识符的情况下使用,表示标识符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路变电所培训课件
- 铁路劳务工安全培训小结课件
- 规章制度汇编精细化课件
- 人体的感觉和感觉器官(第课时)课件-苏教版生物八年级上册
- 《数控机床基础教程》-第3 章
- 2025-2030家电品牌全球化本土化市场营销策略与投放研究方向
- 2025-2030家电制造行业产品质量提升及市场品牌建设研究
- 2025-2030家电制造业用户体验策略供需分析及技术创新规划研究报告
- 2025-2030家庭清洁业市场发展现状深度分析及投资潜力研究报告
- 2025-2030家居装修市场消费趋势与设计创新研究
- 集团有限公司安全生产责任清单(全员)
- 陕西能源职业技术学院2026年教师公开招聘备考题库及答案详解(夺冠系列)
- 2026届全国新高考语文冲刺复习:疑问的三种情况作文讲评
- 地质钻探施工方案
- 2026年1月上海市春季高考数学试题卷(含答案)
- 高压供电协议中的合同
- 2026年植物保护(植物检疫)考题及答案
- 2025年长护险考试试题及答案
- 11837《行政法与行政诉讼法》国家开放大学期末题库
- 高纯水制取工创新应用能力考核试卷含答案
- 四川省德阳市2026届高三12月第一次诊断考试数学试卷(含答案)
评论
0/150
提交评论