食品药品监督管理局公众信息查询平台-建设方案_第1页
食品药品监督管理局公众信息查询平台-建设方案_第2页
食品药品监督管理局公众信息查询平台-建设方案_第3页
食品药品监督管理局公众信息查询平台-建设方案_第4页
食品药品监督管理局公众信息查询平台-建设方案_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、食品药品监督管理局公众信息查询平台建设方案目 录 TOC o 1-3 h z u HYPERLINK l _Toc62057693 3.1技术方案 PAGEREF _Toc62057693 h 3 HYPERLINK l _Toc62057694 4.1.1总体设计 PAGEREF _Toc62057694 h 3 HYPERLINK l _Toc62057695 4.1.2食品药品安全云平台设计 PAGEREF _Toc62057695 h 4 HYPERLINK l _Toc62057696 4.1.3食品药品惠民服务系统设计 PAGEREF _Toc62057696 h 46 HYPER

2、LINK l _Toc62057697 4.1.4食品质量追溯系统设计 PAGEREF _Toc62057697 h 50 HYPERLINK l _Toc62057698 4.1.5网格化监管平台设计 PAGEREF _Toc62057698 h 58 HYPERLINK l _Toc62057699 4.1.6电子监管平台设计 PAGEREF _Toc62057699 h 63 HYPERLINK l _Toc62057700 4.1.7门户网站改版设计 PAGEREF _Toc62057700 h 67 HYPERLINK l _Toc62057701 3.2终端查询机品牌、型号、技术参

3、数及功能设计 PAGEREF _Toc62057701 h 69 HYPERLINK l _Toc62057702 4.2.1终端查询机产品介绍 PAGEREF _Toc62057702 h 69 HYPERLINK l _Toc62057703 4.2.2终端查询机产品展示 PAGEREF _Toc62057703 h 70技术方案总体设计项目背景食品安全问题关系到广大人民群众的身体健康和生命安全,关系到经济发展和社会稳定,历来受到高度的关注与重视。然而近年来食品安全问题日益突出,国际上疯牛病、口蹄疫和禽流感等疾病相继爆发和传播,而国内也发生了苏丹红、永年大蒜和劣质奶粉等食品质量问题。究其原

4、因是食品的生产过程存在众多问题,产品生产、物流信息,检疫检测信息等均有太多人工参与,各操作环节均容易产生错误/虚假信息,且各个不相关环节间很难做到信息核实,影响产品整体管理及信息查询;另外产品生产、物流、经销、检疫检测等各环节相对独立,每一环节往往只能有效查看其上下游接口环节的操作信息,难以做到信息流整体的监察管理;无法将监察管理信息传递到普通市民手中,真正在食品安全卫生上做到安心,放心,舒心。食品一旦出现问题,直接危害到广大人民群众的身体健康和生命安全,同时对厂家来说也会蒙受重大损失,品牌形象受损,甚至企业倒闭。如果能引入食品原材料追溯系统,即使上市的食品出现问题,食品厂家也能快速找出原因,

5、可以只追回部分的问题食品而无需追回所有产品,可见食品追溯的重要性。二维条码与普通的维条码相比可以放入大量的信息,容易实现信息化管理,一旦食品发生质量问题,马上可以确认食品的生产过程,食品问题原因所在,及时召回问题食品,将企业的经济损失、信誉损失降低到最小范围。随着人们食品安全意识的觉醒,人们对食品安全的要求也越来越高,而要保证食品生产的安全,向消费者提供真实可靠的食品信息,自动识别技术在食品安全上的应用已经是必不可少,自动识别技术已经陆续开始在食品安全供应链上试点应用,并取得了不可替代的作用。响应国家加强食品监管的号召,遵循可追溯性是食品安全保障的基本原则,通过食品溯源实现食品的种植养殖、生产

6、加工、包装运输以及批发零售的环节链条进行全程有效监管。建设原则整个系统设计充分保证系统的可伸缩性和可扩展性,具备相当的通讯、计算机和网络设备的信息容量及处理能力,并有一定的超前性,软硬件预留接口,便于维护、升级和扩展,以适应将来发展的要求。食品药品安全云平台设计数据中心架构设计 云计算数据中心通过运行在单独的服务器上的云操作系统对服务器、存储、网络等资源进行虚拟化管理,提供可以自定义的虚拟机,在虚拟机上安装Hadoop、hbase等Nosql分布式数据库集群,对现有的数据ETL采集、清洗、转换、汇总进来,使用海量数据分布存储技术,用spark、storm等大数据处理软件对hbase中的数据进行

7、分析处理,挖掘数据价值。还可以在虚拟机上运行业务应用系统,提供负载均衡和冗余备份,达到系统的稳定、高可用和方便的扩展性。通过安装SSR等安全软件和安全服务器,可以保证提升操作系统的安全级别,从而达到国家等级保护的三级要求,为客户构建真正的安全长城。云计算数据中心可以自动管理和动态分配、部署、配置、重新配置以及回收资源,也可以自动安装软件和应用,具有良好的弹性和灵活性,管理、使用方便。云中心可以向用户提供虚拟基础架构。用户可以自己定义虚拟基础架构的构成,如服务器配置、数量,存储类型和大小等等。用户通过自服务界面提交请求,每个请求的生命周期由平台维护。服务器虚拟化系统基于服务器,存储和网络设备构建

8、资源池,在资源池上通过资源的管理、调度和镜像管理实现系统的各种高级功能,例如计算层面的系统负载均衡和虚拟机高可用,存储层面的镜像复制和冗余。系统支持以主机或者虚拟群集为单位管理资源,虚拟群集为一组共享存储资源的物理主机。 云中心既是一个企业云,也可以对外提供服务,扩展成公有云。云中心包括iaas、paas、saas三层服务:1). SaaS:提供给客户的服务是在 HYPERLINK /view/1316082.htm t _blank 云计算基础设施上的应用程序,用户可以在各种设备上通过 HYPERLINK /view/930.htm t _blank 客户端界面访问,如 HYPERLINK

9、/view/7718.htm t _blank 浏览器。消费者不需要管理或控制任何 HYPERLINK /view/1316082.htm t _blank 云计算基础设施,包括网络、服务器、 HYPERLINK /view/880.htm t _blank 操作系统、存储等等;2). PaaS:提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置;可以使用do

10、cker容器完成应用系统的部署和管理。3). IaaS:提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、 HYPERLINK /view/87682.htm t _blank 存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括 HYPERLINK /view/880.htm t _blank 操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制 HYPERLINK /view/880.htm t _blank 操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、, HYPERLINK /view/3067.htm t

11、_blank 防火墙,、 HYPERLINK /view/486970.htm t _blank 负载均衡器等)的控制。云中心采用xen、kvm、VMware进行虚拟化,LXC提供Linux容器,支持docker应用容器。中心操作系统有以下特点:自主可控、安全可靠的云数据中心操作系统:我公司自主研发的国产云数据中心操作系统,加强了WEB安全、虚拟化安全、数据安全、访问控制、安全审计等方面的安全控制,可帮助用户构建安全可控的云数据中心。异构资源管理:支持对数据中心各类异构硬件设备及软件资源的统一管理;支持对VMWare vSphere、Inspur iVirtual等异构虚拟化资源池的集中管理,

12、已部署的虚拟化环境可被无缝接管;精细的软硬件资源监控:支持对数据中心主流厂商的服务器、网络设备、存储设备等物理资源,操作系统、数据库、WEB应用等软件资源,VMWare vSphere、Inspur iVirtual等虚拟化环境的精细监控,提供界面、邮件、短信等多种告警方式,通过详尽清晰的报表分析数据,帮助数据中心的运维人员随时掌握数据中心的各类资源的运行状况,降低运维管理复杂度,提高运维效率。快速的服务交付:支持通过虚拟机模板、应用服务模板的方式,实现业务的快速交付,业务上线时间由原来的几周、几天,缩短为几分钟,大大提高数据中心的服务水平。资源使用按量计费:实时的资源使用情况统计,让用户精确

13、掌控自身资源和费用使用情况,帮助IT部门实现由成本中心向价值中心的角色转变。资源按需服务:可实现将基础架构作为服务交付,用户可通过自助服务门户在线申请及访问自己的虚拟数据中心、应用服务、虚拟机等资源,实现资源的按需申请、便捷获取、自助使用。可定制的业务流程:支持用户创建与原工作流程吻合的资源申请的审批流程,实现业务流程的个性化、可定制化。灵活的服务交付方式:既支持从下到上的资源申请与审批,也支持从上到下的资源创建与分配的服务交付方式,可满足不同客户对资源获取方式的不同需要。多租户私有云:可创建多个组织,一个组织可代表某业务部门、分部或子公司。每个组织都有各自独立的虚拟数据中心、用户及独有的目录

14、,可将组织资源分配给本组织的用户,每个组织如同拥有自己的数据中心。利用基于权限的用户控制机制和基于虚拟交换机的网络隔离技术,实现多租户环境下的安全性和可靠性,以此构建安全的多租户私有云。灵活可控的权限管理:支持用户自定义角色类型,不同的权限可自由组合,实现灵活可控的系统权限管理。服务全生命周期管理:涵盖服务提供所需的各个环节,包括服务的申请审批;服务的交付和回收;服务的使用统计和计费;服务的运行监控服务移动性:通过vApp封装多个虚拟机服务和相关的网络连接策略,遵循OVF等开放式标准,实现同一个云环境的终端用户彼此之间可以轻松共享服务,而不同的云环境的用户可以轻松的在云之间迁移服务。数据采集交

15、换平台交换中心管理系统数据交换标准定义根据对目标系统综合性应用内容的需求分析,定义出一系列的数据交换标准。这些标准将反映各个应用所需要的数据的结构。同时在标准中定义的还有数据“宿主”位置等信息,表示该块数据将向哪个业务系统请求获得。 所有的数据交换标准定义信息,均以XML结构记录。可以通过数据交换标准定义管理工具完成如下功能: 新建标准、修改或删除标准;维护标准中的属性,包括数据结构、数据“宿主”位置、缺省过滤条件等; 实现对用户身份识别与管理权限控制;数据交换流程定义 数据交换是依据数据交换流程实现的,针对不同的数据,需要设定和管理不同的数据流转过程。该模块的作用是提供图形化界面,供给数据交

16、换平台的管理人员实现数据流转过程的定义。数据交换流转过程的描述也采用XML方式。 具体功能如下:新建流程、修改或删除流程 维护流程的规则、数据加工过程和数据路由方式 实现对用户身份识别与管理权限控制数据交换标准与内部数据结构的映射管理由于数据交换标准并不知道在具体业务系统内的相应数据的位置、属性、名称等等信息,所以需要在业务系统内对数据交换标准中的对应项有一个映射关系的定义。这种定义包括数据项与数据项的对应或组合对应(公式化)、数据类型的匹配或转换关系、数据项位置描述记录等等。以XML结构保存定义的内容。 具体功能包括数据交换标准定义信息的导入 维护数据交换标准与内部数据结构间的映射定义表,包

17、括数据项与数据项 的对应或组合对应(公式化)、数据类型的匹配或转换关系、数据项位置描述记录等等 实现对管理员的身份识别与管理权限控制数据交换流执行 数据交换流的执行是通过应用集成中间件实现的。采用中间件产品可以保证数据交换的高效、安全和可靠地进行。其工作原理是:读入数据交换流程,根据流程设定,启动数据交换过程。根据业务需要,同时可以并发若干个数据交换流程。当业务变化时,只需修改数据交换流程定义,就可以实现基于新业务的数据交换过程,因此系统具有很好的可扩展能力。 具体功能如下: 接收数据验证数据分析流程定义根据流程进行数据交互过程 数据交互的事务管理 日志管理和交换数据存储 消息队列管理 实现对

18、管理员的身份识别与管理权限控制接入管理系统接入点注册在接入点向信息交换平台注册时,信息交换平台会自动检测接入点提供的属性信息是否正确,只有正确后,才可以注册,接入点才可以接入信息交换平台。 接入点配置 由于有很大一部分的业务系统早已开发完成,且采用的数据库不同,有Sybase、Oracle、SQL Server、Access等等,各个业务系统根据实际需要,挑选可共享的数据,定制不同的共享接入点,将共享接入点发布到数据交换平台上;也可以根据业务系统自身的不同的数据种类定制不同的共享接入点,将共享接入 点发布到数据交换平台上。这样就最大限度的提供了各自业务系统数据的共享,也保证了各业务系统数据的安

19、全。 共享接入点的管理员可以根据需要设置本接入点的类型(只能收、只能发、接收都可)、本节点只接收那种信息类型, 如果管理员本身是接入点的创建者,还可以设置本接入点的管理员帐号。接入点维护 新增接入点,根据各个业务系统的实际需要,系统管理员可以增加新的接入点,和建立新接入点的管理员帐号。为了便于管理和资源的充分利用,规定一个单位或部门只有一个共享(单位或部门内部共享)接入点(因为多个业务系统可以通过一个接入点接入交换信息平台). 如果要新增接入点,由使用单位或部门提出书面申请,经系统平台管理员审核同意后,统一由系统平台管理员新增接入点,同时由系统平台管理员设置新增接入点的相关信息 (二)修改接入

20、点 因为各个单位、部门的业务系统的数据种类是变化的,且用户的要求也是变化的,所以共享接入点的管理员要根据需求实时来修改其共享接口,满足其他用户、单位、部门对数据的需求。共享接入点的管理员先查询到要修改的接口,然后对接口的关键字及其他属性进行修改,但接入点的唯一标识(比接入点编号)不允许修改.修改后的共享接口在数据交换平台上能立即反映出来,以便其他单位、部门使用。 删除接入点 如果共享接入点的管理员认为其定制的共享接入点已没有使用意义或已被新的的共享接入点替代,由接入点的管理员提出书面申请,经数据交换平台系统管理员(接入点的创建者)审核通过后,统一由交换平台系统管理员进行删除。共享接入点的管理员

21、只能申请删除自己管理的共享接入点,在共享接入点删除后,数据交换平台记录删除日志,并删除与它有关的在数据交换服务器(JMS)的队列. 删除接入点的信息要在数据交换平台监控上立即反映出来,以便其他单位、部门不再向它发送信息。 查询接入点 根据需要, 可以按类型、状态查询各个接入点的情况,可以统计各个接入点的类型、状态(是否有效、是否已删除)。交换前置子系统交换前置子系统的作用 职能部门配置交换前置机,成为与信息交换总线相连接的桥梁,同时也是与部门内部业务系统及业务信息库相隔离的“堡垒”。在部门前置机上安装前置交换数据库、应用适配器和信息交换软件,用于实现信息的发送和接收。交换前置子系统的部署部门交

22、换前置机系统逻辑结构如下图所示。操作系统 部门交换前置机的操作系统一般采用Windows 2003 Server或Linux。 前置交换数据库 部门交换前置机安装SQL Server/MySQL数据库作为部门前置交换信息库。 应用适配器系统 部门交换前置机安装应用适配器系统。应用适配器系统负责自动从部门前置交换信息库提取数据发送到信息交换总线,同时,从信息交换总线上获取信息并存储到部门交换信息库。部门交换前置机上的应用适配器系统还实现部门业务信息库与部门交换信息库之间的信息交换桥接功能。 信息交换软件部门交换前置机安装消息中间件产品作为信息交换软件系统,与中心交换服务器的信息交换软件共同构成信

23、息交换总线。交换桥接子系统交换平台的交换桥接子系统指由部门业务应用数据库(或文件等数据)到前置交换数据库(或文件等数据)之间的信息交换桥接接口,以完成两个数据库(或文件等数据)之间的在线实时交换的系统。 之所以采用桥接系统是为了保护业务系统的安全性和独立性,信息交换平台通过交换前置机与业务系统相连,在前置机上建立交换库,用于存储各节点向外发布的信息和从其他节点交换过来的信息。桥接系统的实现可以利用集成中间件提供的编程接口,但业务系统接口的编程是必不可少的,必须像适配器提供一个透明的数据提供源。考虑到业务系统的复杂情形,有时并不一定是提供数据接口,也可以是文件的各式,提供给前置交换系统,再通过交

24、换平台的进行传递。 桥接系统还包括把数据交换到目的系统的情形。比如把A系统的数据通过交换平台传递到B系统,那么B系统在接收这些数据时也需要利用桥接系统编写相应的适配器。交换桥接系统的分工界面交换系统从源到目的都涉及不同单位、不同网络、不同架构的异构业务系统,除了在组织协调大量的工作外,在分工界面上也应清晰。因为数据交换平台不是万能的,在数据交换过程中涉及不少的编程工作,必须有业务单位和业务系统开发商的配合。以下图为例: 交换平台从某部门的业务系统获取数据后,传送到中心数据库,再通过中心数据库分发到三个不同的业务系统,这里至少涉及4个不同的系统: 首先数据源提供系统必须把数据送入到前置机的数据,

25、或者放在本地由数据交换平台去抓取。数据交换平台无法从业务系统中去获取数据,因为它不知道业务系统的数据结构和逻辑,比如数据交换平台并不知道OA系统中一份公文的数据保存在哪些表,流程现在是什么状态,从安全的角度也不应该由数据交换平台直接抓取。正确的做法是业务系统根据要求把数据提取出来放到某个位置(数据库或者文件系统),交换系统适配器去获得这些数据。 其次,接收的目的系统,在获取到数据后也要对数据进行解析放入到自己的系统中,否则数据交换平台不知道该把数据放在什么位置,即使知道也不安全。 所以,从分工界面来说,数据交换与业务系统有着密切的关心,必须有业务系统的支持才能实现信息的交换。运行监控平台传输监

26、控 传输监控的主要任务是对交换平台本身和流过交换平台的数据包进行观察与控制。 传输监控包括如下几个方面: (1)对数据流量和状态的查询、统计与审计; (2)对信息交换平台自身运行状态的查询和监控; (3)对信息交换平台的远程监控。 数据流量和状态的监控,首先是对于所有通过信息交换平台进行交换的数据总量的把握,其次是对每个通过信息交换平台的数据包状态的微观把握。通过监控功能,可以了解在指定时间内按照进入/转出、目的地/来源地、数据量大小等项目进行查询和统计,从而实现对总量的把握;通过对数据状态(例如等待处理、正在进行、处理完毕、回执收到、处理中断等)的监控,可以追踪某一个指定数据的状态。 对信息

27、交换平台自身运行状态的查询和监控,是为了确认信息交换平台自身的运行是否正常。查询和监控的对象主要是构成共享平台的各类软件运行实体(例如进程、队列等)。以进程为例,监控的主要操作包括查询进程状态、停止进程、重新启动进程等。 对信息交换平台的远程监控,是指通过监控命令的交换,对系统中的远端信息交换平台部件进行上述监控。 由于信息交换平台的运行记录不仅是进行监控的重要依据,还是进行审计的重要基础,因此根据监控的功能设计,必须实现相应的日志机制。前置节点运行监控 中心数据交换平台通过网络连接了许多不同的节点,通过监控系统能对分布在不同物理位置的前置交换系统状态进行必要的监控,及时发现异常的监控节点。数

28、据库运行监控 数据交换平台涉及中心数据库,前置节点数据库等多套数据库系统,通过监控系统能实时了解各节点数据运行的状态,能通过图示的方式进行提醒。适配器监控 监控平台对桥接服务实行数据传输量监控,速率监控,历史数据统计等监控管理,对有关交换的各种组件运行状态及日志情况,可以非常方便的进行监控及查询。系统管理接入编码管理 接入点编号是由交换信息平台统一分配给各个使用单位或部门。各个使用单位或部门要接入信息交换平台,必须先申请接入点编号。获得接入点编号后,必须要先进行接入点注册,然后才可以通过接入点接入到交换信息平台。 接入点编号规则参考如下: A.编号长度为九位(数据的长度预留20位:如果以后要加

29、市的,在原来基础上前面加多俩位,依此类推:加省、); B位数的意义:第一、二位代表区;第三、四位代表单位类型;最后五位流水号。比如: 00 00 00000区 单位类型 流水号数据备份及恢复 数据交换平台涉及大量数据的存储,需要有良好的数据存储机制确保数据的安全,避免数据丢失。用户管理 数据交换平台作为一套专门的信息交换系统,具有完善的用户管理体系,能创建不同权限、不同角色的用户帐号,对系统内的信息进行查看和访问。日志管理 管理员能查看系统不同类型的日志,对系统的运行状态进行监控,及时发现运行过程中出现的问题。并提供日志审核的功能。大数据处理通过在虚拟机上安装Hadoop2.6、hbase1.

30、0等Nosql数据库集群,用sqoop1.3把现有的数据汇总进来,要对现有数据做个总的分析,对字段统一定义规划,制定转换策略,做到正确性、唯一性、可用性,去除重复字段,通过ETL抽取、清洗数据,把数据导入hbase,这样就可以消除信息孤岛,用spark、storm等大数据处理软件对hbase中的数据进行分析处理,挖掘数据价值。 云中心通过调度系统自动采集、加工、存储数据,为应用系统提供支持: hadoop架构体系下图是hadoop的架构图: 1、Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计

31、用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 2、YARN是一套资源统一管理和调度平台,可管理各种计算框架,包括MapReduce,Spark,MPI等。包括 以下内容:ResourceManager(RM):整个系统只有一个RM,它就只管调度方面的事情,并且为集群应用而优化,因而具有很好的性能。RM的一个核心是它的Scheduler。调度

32、包含两个过程,一要搜集各节点的情况;二要根据某种调度策略,分配合适的节点。搜集节点情况是基于一个资源容器(resource container)的概念,该容器包括cpu,disk,network等(目前只用到cpu) NodeManager(NM):NM是每个节点一个实例,管理每个节点,它触发应用容器(application container),监控节点的资源(cpu/disk等),大数据中心建设方案 19 并向RM报告资源的情况。 ApplicationMaster(AM):AM是每个应用一个实例,它是一个特定的框架接口库,一方面与RM中的Scheduler协商得到resource con

33、tainer,另一方面与NM一起执行和监控各子任务部件,从系统的角度,AM本身也一种container。 Container:从逻辑上,container可认为是资源的分配容器,它包括hostname,cpu,memory等属性。AM发送ResourceRequest给RM,然后RM分配合适的Container给AM,AM再将此Container提交给它所在节点的NM,NM采用此资源容器运行任务。实际上,Container是一种使用资源的“授权”,AM得到此授权后,在NM的管理下,可以运行任何进程(包括非Java应用,这一点与1.0不同)。HiveHive是基于Hadoop的一个数据仓库工具,

34、处理能力强而且成本低廉。主要特点: 存储方式是将结构化的数据文件映射为一张数据库表。提供类SQL语言,实现完整的SQL查询功能。可以将SQL语句转换为MapReduce任务运行,十分适合数据仓库的统计分析。 HbaseHBase是一个分布式的、面向列的开源数据库,它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而 不是基于行的模式。HBase使用和 BigTable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列,一个或多个列组成一个 ColumnFamily,一个Fmaily下的列位于一个HFile中,易

35、于大数据中心建设方案 20 缓存数据。表是疏松的存储的,因此用户可以给行定义各种不同的列。在 HBase中数据按主键排序,同时表按主键划分为多个HRegion,如下图所示(HBase数据表结构图):SqoopSqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle.)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。spark架构体系服务支撑平台我公司产品包括业务服务组件和公共服务组件,以下主要介绍公共服务组件内容。规则引

36、擎体系结构规则引擎由以下六大部分组成: 1. 函数:负责对数据的格式化处理,比如数据统计。 2. 公式:负责对数据的逻辑处理,比如值之间比大小。 3. 规则配置文件:配置校验数据的规则。 4. 规则模型配置文件:配置校验数据规则的集合。 5. 公式、函数配置文件:配置系统所有相关的函数以及公式。 6. 引擎主程序:调用规则引擎的入口。 7. 数据库配置文件:与数据库相关的配置文件。 以上几大部分均可由开发人员灵活配置以便后续再次扩展,程序类包机构如下如下:类图如下:如何使用规则引擎将规则引擎作为子模块加入的主业务系统后,主业务系统只需在程序里调用规则引擎的com.git.easyrule.se

37、rvice.RuleService类的runRule()和runModel()方法即可,规则引擎启动之后便根据自身的规则配置项对数据进行校验处理,处理结果将存入规则文件配置的指定表当中。 在调用RuleService类的runRule()和runModel()方法时需传入几个参数,以下表格是参数说明:源方法代码:RuleService rs = new RuleService(); Map paramMap = new HashMap(); paramMap.put(num, 1); paramMap.put(cardNo,; List msgList

38、= rs.runModel(M0002, paramMap); List msgList = rs.runRule(R0001, paramMap); 配置使用说明规则引擎的配置由三大部分组成: 1. 数据库配置:配置被检测的数据源。 2. 公式函数配置:系统所有的公式函数类由该配置文件管理。 3. 校验规则配置:系统所有的规则由该配置文件管理。 4. 校验规则模型配置:系统所有的规则校验模型由该配置文件管理。数据库配置文件perties规则引擎的数据配置既可以共用主业务系统的配置文件,也可以独立采用该文件对其进行灵活配置,以下是具体的配置说明:公式、函数配置文件ruleEngine_bean

39、s.xml具体详细请参考本配置文件里的内容,本文件是标准的Spring配置文件。数据校验规则文件ruleEngine_rules.xml rule节点:对表数据的纵向校验以及逻辑校验。数据校验规则模型文件ruleEngine_models.xml本文件的配置节点由两部分组成,规则引擎根据不同节点进行相应的规则校验:model节点:提供负责的逻辑模型校验。 rule节点:对表数据的纵向校验以及逻辑校验。引擎现有的公式、函数公示函数扩展规则引擎由于目前规则引擎提供的规则数量有限,为了使其更加符合主业务系统各方面的数据校验处理,规则引擎提供了相关接口供开发人员再次扩展。 规则引擎的扩展主要包括两部分

40、:一.函数扩展,二.公式扩展。扩展函数实现函数接口:主要实现com.git.easyrule.func.Function接口的public String getValue(List list)方法,同时实现类放在com.git.easyrule.func目录 添加配置项:在ruleEngine_beans.xml文件中添加配置Bean,同时Bean的Name 以”function_”开头,如下: 扩展公式实现公式接口:主要实现com.git.easyrule.formula. Formula接口的 public boolean execute(Rule rule,Map record,Map

41、sysVarMap)方法,同时实现类放在com.git.easyrule.formula.impl目录下,参数说明如下: rule:具体规则。 Record:MAP结果集 sysVarMap:系统变量MAP。添加配置项:在ruleEngine_beans.xml文件中添加配置Bean,同时Bean的Name 以” Formula_”开头,如下: 流程引擎流程设置流程表设置在设置流程时,根据其下流转单的情况设置好所要的所有字段信息。设置好后生成一张数据库表。并把流程名称,流程表名等信息记录到一个流程记录表里(这张表只用来记录流程表及流程对应的流程表名)。默认存在的字段应该有:流程实例名(如:20

42、11年3月消防器材发放管理工作),流程状态,父流程表名,父流程实例id,父流程关联流转单编号,开始时间,结束时间等。流转单设置流转单基础信息设置。设置流转单名称,即 流程在此环节时的名称(如科长审批);设置流转单编号,编号应该是唯一性的;设置流转单类型:一般流转单或子流程流转单或起始流转单;选择表单字段。字段从流程表中字段进行选择。选择每个字段后,要设置此字段的配置属性:是否只读、是否隐藏;要设置此字段的验证属性:是否必填、验证方法(email验证、长度验证等);要设置此字段对应的控件:HTML控件:文本框、文本域、密码框、下拉框、多选框、单选框、上传框。及对应的默认数据和备选数据。动态控件:

43、如部门下拉框等。及对应默认数据。要设置此字段的控件样式:高宽等。根据字段的名称流程表名等信息对此字段设置一个字符串标识。在设置字段过程中如果觉得字段不够,应该有操作可以再添加流程表字段。设置流转单显示模板。用一个编辑器编辑流转单的显示形式,要显示对应字段时用字段的标识符进行占位,再显示时根据占位的字符串显示对应的字段。最好可以预览效果。设置流转单操作权限。 设置此流转单可操作的部门、岗位。工作组或特定个人。设置前置流转单。指定该流转单的前置流转单,只有当所有前置流转单都是已处理状态时。此流转单才可进行操作。如果前置流转单没有处理完成时,此流转单显示的提示内容。设置前置条件。设置字段的单一条件。

44、如字段的值不为空,或等于某个值等。设置各单一条件之前的与或关系,而组成的综合条件。并要设置如果不附合条件时显示的提示内容。设置下一级流转单设置此流转下一级流转单,配置好对应编号。(一个流转单转出时,如果下级流转单是一般流转单应该设置它的状态为需求处理,如果下级流转单是子流程要实例化子流程)。如果要结束流程可以在此设置中设置为特定的标记。设置此流转单在处理时要强行设置为未处理状态的下级流转单。 设置此流转单在处理时要强行设置为未处理状态的下级流转单。只要流转单状态被触发为未处理完时,相关设置的流转单都要设置为未处理的。子流程流转单和起始流转单起始流转单。起始流转单的作用是,提交后生成流程表实例记

45、录。也要设置相应的字段和相应的操作权限及下级流转单。子流程流转单子流程流转单应该要设置记录子流程的流程表名、默认子流程实例名称流程使用新建工作。选择对应的工作流程后,有起始流转单操作权限的用户才可以新建工作以实例化一个工作流。待办工作。显示用户需要处理的工作流转单实例及其状态,以及对应的工作流程实例名称等。点击进入后可以操作流转单。流转单操作流转单状态初步设定流转单状态有:未处理,需处理,处理中,已处理。流转单前前置条件的判断。先判断前置流转单状态。再判断前置条件状态。如果不附合条件显示提示语。此流转单不可浏览,或只能只读浏览。如果附合条件则可以操作。流转单操作附合条件的、状态为非已处理的流转

46、单可以进行正常操作。初步设定流转单的表单操作有:保存,转出。保存操作,各字段信息保存后,把流转单状态改为处理中。转出操作,提交前要对各字段的进行验证(根据在配置流转单字段时设置的字段验证方式进行验证)。转出操作执行后,根据下一级流转单的设置。设置下一级一般流转单为需处理,或下一级子流程流转单实例子流程。如果下一级流转单设置是结束标记。则执行结束流程。流程日志应该对一个工作流实例中从新建实例,到每一次工作流转单的转出操作,到结束都要有日志记录。表用户表oa_users: 真实姓名,用户名,密码,邮箱。用户信息表oa_user_info: 性别、手机等其它信息部门表oa_department :

47、应该有层级关系,有字段区分是工作组还是真实部门。部门用户表 oa_department_user: 多对多的部门用户关系表,确认用户属于哪个部门。流程表:oa_cf_开头: 流程引擎生成的表。流程实例名(如:2011年3月消防器材发放管理工作),流程状态,父流程表名,父流程实例id,父流程关联流转单编号,开始时间,结束时间等流程名称表oa_flow_name: 记录流程表表名,流程名,描述,所属部门(多个放在一个字段里记录ID组合,0可以表示通用流程)。流转单表Oa_flow_stepmodel: 字段应该有:流程表名,流转单名称,编号,类型,下一级流转单,强行关闭流转单,表单模板,前置流转单

48、条件(组合配置),前置字段条件(组合配置)流转单字段表Oa_flow_stepmodel_fields: 流程表名、流转单编号、字段程序编码、名称、是否只读、是否隐藏、控件模型编号、样式、是否必填、合法验证、初值等配置,占位字符串。HTML元素控件Oa_html_control: 编号、名称、类型(动态、静态)流转单操作权限人Oa_flow_stepmodel_user: 流程表名、流转单编号、部门(ID组合)、特定人员(ID组合)流转单实例表Oa_flow_stepentity: 流程表名、流程实例ID、流转单编号、状态(未处理,需处理,处理中,已处理)工作流中附件表Oa_flow_atta

49、chment: 附件类型、附件名称、附件路径、流程表名、流程实例ID工作流日志表Oa_flow_log: 流程表名、流程实例ID、流转单编号、流转单名、操作人、时间、备注缓存管理缓存的物理介质通常是内存,而永久性数据存储源的物理介质通常是硬盘或磁盘,应用程序读写内在的速度显然比读写硬盘的速度快,如果缓存中存放的数据量非常大,也会用硬盘作为缓存的物理介质。缓存的实现不仅需要作为物理介质的硬件,同时还需要用于管理缓存的并发访问和过期等策略的软件。因此,缓存是通过软件和硬件共同实现的。持久化层的缓存的范围持久化层的缓存的范围缓存的范围决定了缓存的生命周期以及可以被谁访问。缓存的范围分为三类。1) 事

50、务范围:缓存只能被当前事务访问。缓存的生命周期依赖于事务的生命周期,当事务结束时,缓存也就结束生命周期。在此范围下,缓存的介质是内存。事务可以是数据库事务或者应用事务,每个事务都有独自的缓存,缓存内的数据通常采用相互关联的对象形式。2) 进程范围:缓存被进程内的所有事务共享。这些事务有可能是并发访问缓存,因此必须对缓存采取必要的事务隔离机制。缓存的生命周期依赖于进程的生命周期,进程结束时,缓存也就结束了生命周期。进程范围的缓存可能会存放大量的数据,所以存放的介质可以是内存或硬盘。缓存内的数据既可以是相互关联的对象形式也可以是对象的松散数据形式。松散的对象数据形式有点类似于对象的序列化数据,但是

51、对象分解为松散的算法比对象序列化的算法要求更快。3) 集群范围:在集群环境中,缓存被一个机器或者多个机器的进程共享。缓存中的数据被复制到集群环境中的每个进程节点,进程间通过远程通信来保证缓存中的数据的一致性,缓存中的数据通常采用对象的松散数据形式。对大多数应用来说,应该慎重地考虑是否需要使用集群范围的缓存,因为访问的速度不一定会比直接访问数据库数据的速度快多少。 持久化层可以提供多种范围的缓存。如果在事务范围的缓存中没有查到相应的数据,还可以到进程范围或集群范围的缓存内查询,如果还是没有查到,那么只有到数据库中查询。事务范围的缓存是持久化层的第一级缓存,通常它是必需的;进程范围或集群范围的缓存

52、是持久化层的第二级缓存,通常是可选的。持久化层的缓存的并发访问策略当多个并发的事务同时访问持久化层的缓存的相同数据时,会引起并发问题,必须采用必要的事务隔离措施。在进程范围或集群范围的缓存,即第二级缓存,会出现并发问题。因此可以设定以下四种类型的并发访问策略,每一种策略对应一种事务隔离级别。1) 事务型(Transactional)策略:仅仅在受管理环境中适用。它提供了Repeatable Read事务隔离级别。对于经常被读但很少修改的数据,可以采用这种隔离类型,因为它可以防止脏读和不可重复读这类的并发问题。2) 读写型(read-write)策略:提供了Read Committed事务隔离级

53、别。仅仅在非集群的环境中适用。对于经常被读但很少修改的数据,可以采用这种隔离类型,因为它可以防止脏读这类的并发问题。3) 非严格读写型(nonstrict-read-write)策略:不保证缓存与数据库中数据的一致性。如果存在两个事务同时访问缓存中相同数据的可能,必须为该数据配置一个很短的数据过期时间,从而尽量避免脏读。对于极少被修改,并且允许偶尔脏读的数据,可以采用这种并发访问策略。4) 只读型策略(read-only):对于从来不会修改的数据,如参考数据,可以使用这种并发访问策略。事务型并发访问策略是事务隔离级别最高,只读型的隔离级别最低。事务隔离级别越高,并发性能就越低。Hibernat

54、e中的缓存Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。一级缓存和二级缓存的比较: 第一级缓存 第二级缓存 存放数据的形式:相互关联的持久化对象 对象的散装数据 缓存的范围:事务范围,每个事务都有单独的第一级缓存,进程范围或集群范围,缓存被同一个进程或集

55、群范围内的所有事务共享 并发访问策略:由于每个事务都拥有单独的第一级缓存,不会出现并发问题,无需提供并发访问策略,由于多个事务会同时访问第二级缓存中相同数据,因此必须提供适当的并发访问策略,来保证特定的事务隔离级别 数据过期策略:没有提供数据过期策略。处于一级缓存中的对象永远不会过期,除非应用程序显式清空缓存或者清除特定的对象 必须提供数据过期策略,如基于内存的缓存中的对象的最大数目,允许对象处于缓存中的最长时间,以及允许对象处于缓存中的最长空闲时间 物理存储介质:内存,内存和硬盘。对象的散装数据首先存放在基于内在的缓存中,当内存中对象的数目达到数据过期策略中指定上限时,就会把其余的对象写入基

56、于硬盘的缓存中。 缓存的软件实现:在Hibernate的Session的实现中包含了缓存的实现,由第三方提供,Hibernate仅提供了缓存适配器(CacheProvider)。用于把特定的缓存插件集成到Hibernate中。 启用缓存的方式:只要应用程序通过Session接口来执行保存、更新、删除、加载和查询数据库数据的操作,Hibernate就会启用第一级缓存,把数据库中的数据以对象的形式拷贝到缓存中,对于批量更新和批量删除操作,如果不希望启用第一级缓存,可以绕过Hibernate API,直接通过JDBC,API来执行指操作。 用户可以在单个类或类的单个集合的粒度上配置第二级缓存。如果类

57、的实例被经常读但很少被修改,就可以考虑使用第二级缓存。只有为某个类或集合配置了第二级缓存,Hibernate在运行时才会把它的实例加入到第二级缓存中。 用户管理缓存的方式:第一级缓存的物理介质为内存,由于内存容量有限,必须通过恰当的检索策略和检索方式来限制加载对象的数目。Session的evit()方法可以显式清空缓存中特定对象,但这种方法不值得推荐。 第二级缓存的物理介质可以是内存和硬盘,因此第二级缓存可以存放大量的数据,数据过期策略的maxElementsInMemory属性值可以控制内存中的对象数目。管理第二级缓存主要包括两个方面:选择需要使用第二级缓存的持久类,设置合适的并发访问策略:

58、选择缓存适配器,设置合适的数据过期策略。 一级缓存的管理:当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中。当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。Session为应用程序提供了两个管理缓存的方法:evict(Object obj):从缓存中清除参数指定的持久化对象。clear():清空缓存中所有持久化对象。二级缓存的管

59、理Hibernate的二级缓存策略的一般过程如下:1) 条件查询的时候,总是发出一条select * from table_name where . (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。 2) 把获得的所有数据对象根据ID放入到第二级缓存中。 3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。 4) 删除、更新、增加数据的时候,同时更新缓存。Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此

60、,Hibernate提供了针对条件查询的Query Cache。什么样的数据适合存放到第二级缓存中?1 很少被修改的数据2 不是很重要的数据,允许出现偶尔并发的数据3 不会被并发访问的数据4 参考数据,指的是供应用参考的常量数据,它的实例数目有限,它的实例会被许多其他类的实例引用,实例极少或者从来不会被修改。不适合存放到第二级缓存的数据?1 经常被修改的数据2 财务数据,绝对不允许出现并发3 与其他应用共享的数据。常用的缓存插件Hibernater的二级缓存是一个插件,下面是几种常用的缓存插件:l EhCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论