引领沟通无限引领沟通无限 开创协作空间开创协作空间供应链金融系统供应链金融系统 技术构架技术构架20201010年年4 4月月2 2金融供应链系统金融供应链系统定义定义 Ø供应链融资是指在供应链中找出一个大的核心企业,以核 心企业为出发点,寻找出供应链上的节点企业,而银行通 过审查整条供应链,基于对供应链管理程度和核心企业信 用实力的掌握,对其核心企业和上下游多个企业提供灵活 运用的金融产品和服务的一种融资模式目标目标 Ø建立一个软件系统平台,支撑供应链业务的开展 Ø实现完整的业务流程 Ø实现灵活的参数配置 Ø系统可裁减,实现各种产品的可定制3 3金融供应链系统金融供应链系统– –功能结构功能结构参数 管理安全 管理用户 管理日志 管理权限 管理批处理 管理系统 管理 功能组织机构 管理业务品种 管理利息利率 管理客户信息 管理费用 管理合同信息 管理业 务 管 理 平 台汇率及 换算押品 管理逾期 管理台账 管理表单 管理风险 预警 黑名单信息变更 管理基础 资源硬件/网络/操作系统/数据库/应用服务器等产品 模块保理订单融资验货融资预约付款融资仓单质押融资货物质押融资未来提货权 质押融资预付款池…额 度 子 系 统账 务 子 系 统多语言 管理审批流 管理商纠 管理统计 查询批 处 理 子 系 统接 口 子 系 统预付款类存货类应收类池融资类4 4基础运行平台基础运行平台 – – 技术架构技术架构业务数据库外部系统基础层工作流系统操作系统及服务器Spring业务模型层数据访问/集成层业务逻辑层表现层控制层数据层/外部系统客户端. . .XML/ Annotation浏览器Rich ClientAJAXJSPTemplate硬件资源及操作系统Module定时任务RDBFSBusiness ServiceFile ServiceWorkflow ServiceScript ServiceWorkflowEngineScriptEngineFile ManagerDAOOR MappingIntergrationServiceValue ObjectBusiness Object工作流引擎脚本规则客户系统账务系统额度系统E A I认证授权会话管理数据验证事务控制异常处理消息传递日志服务任务调度EAI BrokerJavascriptSpringHibernateJ2EE 应用服务器5 5金融供应链系统金融供应链系统– – 技术架构技术架构分层构架分层构架 Ø展现层:采用Ext的页面控件引擎 Ø控制层:易开平台框架—响应页面事件—统一事务处理—消息传递—多国语言 Ø业务逻辑层框架:使用Spring的框架 Ø数据访问层:使用Hibernate的框架6 6金融供应链系统金融供应链系统– – 技术架构技术架构调度中心展现逻辑 异常处理 事务处理ModuleRich Client浏览器权限引擎组织机构业务服务工作流引擎规则引擎功能组件输入/输出 组件树组件列表组件XML定义 Java AnnotationExt 组件下拉组件DAO(1)提交(2)AJAX(3)业务调用(4) 调用 (5) 调用(6) 返回数据(8) Render(7) 返回页面布局返回数据7 7金融供应链系统金融供应链系统– – 基本调用基本调用关系关系Module: userRich ClientDAOBO: AppDBMS1: submit form 2: trigger action listener4: reuse Service6: persistence 7: crud作为事件监听器,解析事件 参数,负责调用业务服务的 逻辑,根据调用结果决定页 面跳转。
针对涉及多个BO间的业务 逻辑,以及其他一些通用 的公共逻辑,由 BizService来封装实现 同时BizService会组装BO ,重用其中的业务逻辑 相关的存储逻辑交给DAO 处理封装单个业务实 体及相关行为 体现一定的业务 逻辑Service根据JS,进行页面布 局和数据的展现,并 且执行页面元素的控 制功能8 8金融供应链系统-页面技术金融供应链系统-页面技术采用采用ExtExt控件控件,采用,采用JSONJSON描述表单外观和表单数据描述表单外观和表单数据布局控制控件(外观/绑定数据项/内置动作)数据实例(JSON,XML) 数据约束(校验、计算、逻辑关系)提交控制(协议、目标)访问控制(角色,访问权限)安全控制(加密相关控制)事件外观 控制数据 模型安全 机制9 9金融供应链系统-金融供应链系统- 数据模型数据模型控制逻辑与数据模型分离控制逻辑与数据模型分离ModuleValue ObjectServiceBusiness ObjectView ObjectRich ClientDAO1010金融供应链系统-异常处理金融供应链系统-异常处理1111金融供应链系统-消息金融供应链系统-消息处理处理用户发起的操作,其非正常结果都要用用户发起的操作,其非正常结果都要用message(message(如如customer-e-0000001customer-e-0000001) )来响来响 应应 , , messagemessage是通过异常来进行传递的是通过异常来进行传递的, , messagemessage的主要类型有:的主要类型有:Ø用户可以通过改变输入条件重新提交的话,为Warn级别消息 . Ø而如果无论如何用户也无法继续操作的话,为Error级别消息 .SysMessageSysMessage ØKey ØParam[]1212金融供应链系统-事务处理金融供应链系统-事务处理事务资源:事务资源: Ø数据库: Hibernate / Oracle异种事务资源异种事务资源: : 使用全局事务控制器使用全局事务控制器同种事务资源同种事务资源: : 使用本地事务控制器使用本地事务控制器一次事务的生命期只存在于一次用户请求一次事务的生命期只存在于一次用户请求( (request)request)或一次系统调用或一次系统调用( (时间驱动的时间驱动的 任务或消息驱动的任务任务或消息驱动的任务) )中,在调度中心上控制协调总的事务中,在调度中心上控制协调总的事务. .回滚规则回滚规则: : 对对Error/RuntimeException/RollbackableBizExceptionError/RuntimeException/RollbackableBizException自动回滚自动回滚回滚规则回滚规则: : 对对BizIgnoreExceptionBizIgnoreException不回滚不回滚, ,提交已经进行过的操作提交已经进行过的操作. .隔离级别:隔离级别:Read CommittedRead Committed1313系统公共基础设计系统公共基础设计– – 日志日志Commons-Logging + Log4JCommons-Logging + Log4J不要使用不要使用System.out.println() System.out.println() 和和exception.printStackTrace()exception.printStackTrace()注意日志级别:注意日志级别:debug/info/warn/errordebug/info/warn/error捕获异常后,先记入日志捕获异常后,先记入日志使用使用isDebugEnalbed()isDebugEnalbed()作预判断,减少作预判断,减少String + StringString + String的操作的操作1414金融供应链系统-审批流金融供应链系统-审批流实现策略:采用独立的工作流引擎实现策略:采用独立的工作流引擎ØØ在项目中增加一个在项目中增加一个JarJar包。
包 ØØ把工作流程功能封装到基类中,子类只需要指定流程定义名称就可以,实现把工作流程功能封装到基类中,子类只需要指定流程定义名称就可以,实现 零代码或者少量特殊业务代码的开发零代码或者少量特殊业务代码的开发 ØØ实现统一的代办模块,不同的审批任务实现统一的代办模块,不同的审批任务( (参数、交易参数、交易) )集中在一个页面提示和处集中在一个页面提示和处 理 ØØ数据模型如下:数据模型如下:1515金融供应链系统-批处理管理金融供应链系统-批处理管理实现策略:采用现成的成熟框架实现策略:采用现成的成熟框架ØØ定时执行采用定时执行采用QuartzQuartz框架框架 ØØ批处理采用批处理采用Spring-BatchSpring-Batch框架框架实现如下功能实现如下功能ØØ日终处理日终处理 ØØ换日处理换日处理1616系统架构设计系统架构设计– – 标准、框架与工具标准、框架与工具框架框架ØExt ØSpring ØHibernate ØQuartz ØLog4j ØJakarta Commons ØPOI HSSF ØiText工具工具ØAnt ØJUnit ØEclipse标准标准ØJ2SE 1.4/1.5 ØJ2EE 1.3环境环境ØApache/Weblogic/Websphere ØOracle/SQLServer Øinformix/DB2ØCVS客户端客户端ØIE6.0/7.0 ØFireFox2.0/3.01717系统架构设计系统架构设计– – 术语表术语表术语缩写术语缩写 术语全称术语全称 中文翻译中文翻译( (供参考供参考) ) BOBOBusiness ObjectBusiness Object 业务对象业务对象 VOVOValue ObjectValue Object 值对象值对象 DAODAO Data Access ObjectData Access Object 数据访问对象数据访问对象 DTODTOData Transfer ObjectData Transfer Object数据传递对象数据传递对象POJOPOJO Plain Old Java ObjectPlain Old Java Object 普通的普通的JavaJava对象对象 ORMORMObject/Relational MappingObject/Relational Mapping对象对象/ /关系模型转换关系模型转换 CRUDCRUD Creat/Retrieve/Update/DeleteCreat/Retrieve/Update/Delete 增删改查增删改查( (四种基本的数据操作四种基本的数据操作) ) MVCMVC Model/View/ControllerModel/View/Controller 模型模型/ /表示表示/ /控制模式控制模式 IoCIoC Inverse of ControlInverse of Control 反转控制反转控制 AdapterAdapterAdapterAdapter适配器适配器BrokerBrokerBrokerBroker代理代理BPBPBusiness ProcessBusiness Process业务流程业务流程AOPAOPAspect Oriented ProgrammingAspect Oriented Programming面向方面的编程面向方面的编程WFSWFSWorkFlow ServiceWorkFlow Service工作流服务工作流服务WFEWFEWorkFlow EngineWorkFlow Engine工作流引擎工作流引擎WFDWFDWorkflow DefinitionWorkflow Definition流程定义流程定义1818谢谢!谢谢!。