UIP-配置管理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统一接口平台的设计初衷是分系统部署, 统一接口平台的设计初衷是分系统部署,各个子系 统是在不同的JAVA虚拟机中运行的单独进程。所以, 虚拟机中运行的单独进程。 统是在不同的 虚拟机中运行的单独进程 所以, 各个子系统没有办法共享一份配置。 各个子系统没有办法共享一份配置。因为系统中各 子系统有一些公用的配置信息, 子系统有一些公用的配置信息,也有自身需要的特 定配置信息。所以,系统采用配置信息分文件保存 定配置信息。所以, 的外部存储方式,例如: 的外部存储方式,例如:公用信息配置文件 )、接入信息配置文件 (common.xml)、接入信息配置文件 )、 (AccessIn.xml)等等。 )等等。
LINKAGE LINKAGE LINKAGE LINKAGE
配置项名称_参数 配置项名称 参数 ConfigParamVO 名称 SERVER001_PO RT SERVER001_PR OTOCOLNAME ConfigParamVO ConfigParamVO
内容
• 配置管理功能描述 • 配置管理设计实现 • 配置管理使用说明
功能描述-需求
平台中的配置大致可以分为两大类: 平台中的配置大致可以分为两大类:系统配 置和业务配置。系统配置主要用于系统实现, 置和业务配置。系统配置主要用于系统实现, 其目的是提高系统的可扩展性、可维护性; 其目的是提高系统的可扩展性、可维护性; 业务配置主要是为了更灵活的支持业务实现, 业务配置主要是为了更灵活的支持业务实现, 最大限度的满足不同业务需求, 最大限度的满足不同业务需求,减少开发工 作量,提高需求响应速度。 作量,提高需求响应速度。
LINKAGE LINKAGE LINKAGE LINKAGE
功能描述-需求
•系统配置信息主要包括接入服务器配置、通 系统配置信息主要包括接入服务器配置、 系统配置信息主要包括接入服务器配置 用线程池配置、连接管理器配置、协议配置、 用线程池配置、连接管理器配置、协议配置、 日志配置、监控管理配置,以及一些阀值配置。 日志配置、监控管理配置,以及一些阀值配置。 •业务配置主要包括业务报文配置。业务报文 业务配置主要包括业务报文配置。 业务配置主要包括业务报文配置 配置中包括服务编码、字段顺序号、 配置中包括服务编码、字段顺序号、字段名 字段类型、字段值长度、字段说明等, 称、字段类型、字段值长度、字段说明等, 既从业务层面描述了业务要素, 既从业务层面描述了业务要素,也从实现层 面描述了基于特定协议的消息组织方式。 面描述了基于特定协议的消息组织方式。各 业务报文配置文件基于接入、 业务报文配置文件基于接入、接出时使用的 具体协议格式配置进行配置。 具体协议格式配置进行配置。
LINKAGE LINKAGE LINKAGE LINKAGE
配置文件结构
• 配置文件使用 配置文件使用XML文件格式组织内容。 文件格式组织内容。 文件格式组织内容 根元素 <CommonConfig> <ConfigItem> 配置项 <ConfigName>…</ConfigName> <ConfigDesc>…</ConfigDesc> 配置参数 <ConfigParam> <ParamName>…</ParamName> <ParamValue>…</ParamValue> …… <ParamValue>…</ParamValue> <ParamDesc>…</ParamDesc> </ConfigParam> </ConfigItem> </CommonConfig>
配置项名称 配置项描述
配置参数名称 配置参数值
LINKAGE LINKAGE LINKAGE LINKAGE
可配一个或多个 配置参数描述
主要方法
public String getParamValue(String configName, String paramName) 此方法返回由configName和paramName确定的配置项参数的第一个值 注意如果配置项配置了多个参数 返 此方法返回由 和 确定的配置项参数的第一个值 注意如果配置项配置了多个参数,返 回第一个值. 回第一个值
LINKAGE LINKAGE LINKAGE LINKAGE
开发人员可以将系统中可能改变的信息( 开发人员可以将系统中可能改变的信息(网络 地址、阀值等等), ),抽取出来通过配置文件的 地址、阀值等等),抽取出来通过配置文件的 方式保存。 方式保存。配置管理模块可以统一地管理配置 文件,并且提供接口供开发人员取用。 文件,并且提供接口供开发人员取用。
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-内存布局
配置文件名 AccessIn.xml AccessOut.xml
AccessIn. xml 配置管理 器实例
该配置文件对应的配置管理器实 例引用 AccessIn配置管理器实例引用 配置管理器实例引用 AccessOut配置管理器实例引用 配置管理器实例引用
LINKAGE LINKAGE LINKAGE LINKAGE
功能描述-特点
•配置管理模块支持定期扫描配置文件,发现 配置管理模块支持定期扫描配置文件, 配置管理模块支持定期扫描配置文件 配置文件修改自动重新加载配置信息到内存。 配置文件修改自动重新加载配置信息到内存。 还同时支持外部实时触发更新, 还同时支持外部实时触发更新,系统管理员通 过系统管理功能实现。 过系统管理功能实现。
public String getParamDesc(String configName, String paramName) 此方法返回由configName和paramName确定的配置项参数的描述 此方法返回由 和 确定的配置项参数的描述
LINKAGE LINKAGE LINKAGE LINKAGE
多多多多
ConfigUpdateRealtimeServer lastUpdateTime : long serverSocket : ServerSocket
设计实现-类图说明
配置管理器 •ConfigManager采用无上限多例模式,由自身管理 采用无上限多例模式, 采用无上限多例模式 和向外界提供自身实例。 和向外界提供自身实例。子系统存在多少份配置文 进程就存在多少份ConfigManager类的实 件,JAVA进程就存在多少份 进程就存在多少份 类的实 例。 •ConfigManager持有一个静态的 持有一个静态的HashMap。每个配 持有一个静态的 。 置文件对应一个ConfigManager对象,在静态 对象, 置文件对应一个 对象 HashMap中以配置文件的文件名为键值保存 中以配置文件的文件名为键值保存 ConfigManager实例。 实例。 实例 •将对应配置文件的配置信息读入内存,使用聚集容 将对应配置文件的配置信息读入内存, 将对应配置文件的配置信息读入内存 器加以保存,以备各模块在需要时取用。 器加以保存,以备各模块在需要时取用。
内容
• 配置管理功能描述 • 配置管理设计实现 • 配置管理使用说明
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-思路
在传统的单进程系统中, 在传统的单进程系统中,配置信息是在内存中 持有的,以提高系统的访问速度和性能, 持有的,以提高系统的访问速度和性能,通常 都是使用单例模式,内存中只有一份实例。 都是使用单例模式,内存中只有一份实例。
public String[] getParamValues(String configName, String paramName) 此方法返回由configName和paramName确定的配置项参数的所有值 此方法返回由 和 确定的配置项参数的所有值
主要方法
public String getParamValue(String fileName, String configName,String paramName) 此方法返回指定配置文件中由configName和paramName确定的配置项参数的第一个值 此方法返回指定配置文件中由 和 确定的配置项参数的第一个值 注意如果配置项配置了多个参数,返回第一个值 返回第一个值. 注意如果配置项配置了多个参数 返回第一个值
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-类图说明
配置管理定时更新 •周期性更新配置文件在内存中的映射,确保在系统 周期性更新配置文件在内存中的映射, 周期性更新配置文件在内存中的映射 运行过程中的配置修改在下一个运行周期能够生效。 运行过程中的配置修改在下一个运行周期能够生效。 •定时更新作业:ConfigUpdateJob,负责执行配置 定时更新作业: 定时更新作业 , 管理器的更新工作。 管理器的更新工作。将最新的配置文件信息读入内 存保存。 存保存。 •定时更新调度器 定时更新调度器:ConfigUpdateScheduler,负责获 定时更新调度器 , 得配置中的配置管理相应配置信息, 得配置中的配置管理相应配置信息,初始化定时更 新触发器和定时更新作业。 新触发器和定时更新作业。
UIP-配置管理模块
LINKAGE LINKAGE LINKAGE LINKAGE
内容
• 配置管理功能描述 • 配置管理设计实现 • 配置管理使用说明
LINKAGE LINKAGE LINKAGE LINKAGE
功能描述-综述
配置管理属于系统的基础服务, 配置管理属于系统的基础服务,是一个系统 的中程越来越重要的今天, 配置管理模块的设计好坏程度直接影响到项 目的质量与生命周期。 目的质量与生命周期。
LINKAGE LINKAGE LINKAGE LINKAGE
•配置信息管理功能是集成在系统管理模块的 配置信息管理功能是集成在系统管理模块的 WEB应用中的一个功能,提供触发各子系统 应用中的一个功能, 应用中的一个功能 重新加载配置信息的管理界面。 重新加载配置信息的管理界面。系统管理人员 可以在修改过系统配置以后, 可以在修改过系统配置以后,通过页面操作使 修改的配置信息立即生效。 修改的配置信息立即生效。
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-结构图
LINKAGE LINKAGE LINKAGE LINKAGE
调用
模块边界 模块边界
设计实现-类图
ConfigManager CHANGCOUNT : int = 0 ENVNAME : String = "ucss.config.xmlfilepath" DEFAULTPATH : String = "etc" configManagerMap : HashMap = new HashMap() lastModifiedTime = 0; configFileName; getInstance() reloadConfig() loadTestConfig() loadTestConfig() ConfigManager() init() parseConfigFiles() parseConfigFile() parseConfigfileInput() getConfigFilePath() showParamsByName() showAllParams() getParam() getParamValue() getParamDesc() getParamValues() getParamNamesByConfigName() getParamValuesByConfigName() getParamVOElement() getParamValueDirect() main() StatefulJob
(from quartz)
ConfigUpdateJob execute() execute()
1
ConfigUpdateScheduler
LINKAGE LINKAGE LINKAGE LINKAGE
QuartzScheduler
(from core)
Trigger
(from quartz)
0..n
LINKAGE LINKAGE LINKAGE LINKAGE
配置项名称_参数 配置项名称 参数 ConfigParamVO 名称 SERVER001_PO RT SERVER001_PR OTOCOLNAME ConfigParamVO ConfigParamVO
内容
• 配置管理功能描述 • 配置管理设计实现 • 配置管理使用说明
功能描述-需求
平台中的配置大致可以分为两大类: 平台中的配置大致可以分为两大类:系统配 置和业务配置。系统配置主要用于系统实现, 置和业务配置。系统配置主要用于系统实现, 其目的是提高系统的可扩展性、可维护性; 其目的是提高系统的可扩展性、可维护性; 业务配置主要是为了更灵活的支持业务实现, 业务配置主要是为了更灵活的支持业务实现, 最大限度的满足不同业务需求, 最大限度的满足不同业务需求,减少开发工 作量,提高需求响应速度。 作量,提高需求响应速度。
LINKAGE LINKAGE LINKAGE LINKAGE
功能描述-需求
•系统配置信息主要包括接入服务器配置、通 系统配置信息主要包括接入服务器配置、 系统配置信息主要包括接入服务器配置 用线程池配置、连接管理器配置、协议配置、 用线程池配置、连接管理器配置、协议配置、 日志配置、监控管理配置,以及一些阀值配置。 日志配置、监控管理配置,以及一些阀值配置。 •业务配置主要包括业务报文配置。业务报文 业务配置主要包括业务报文配置。 业务配置主要包括业务报文配置 配置中包括服务编码、字段顺序号、 配置中包括服务编码、字段顺序号、字段名 字段类型、字段值长度、字段说明等, 称、字段类型、字段值长度、字段说明等, 既从业务层面描述了业务要素, 既从业务层面描述了业务要素,也从实现层 面描述了基于特定协议的消息组织方式。 面描述了基于特定协议的消息组织方式。各 业务报文配置文件基于接入、 业务报文配置文件基于接入、接出时使用的 具体协议格式配置进行配置。 具体协议格式配置进行配置。
LINKAGE LINKAGE LINKAGE LINKAGE
配置文件结构
• 配置文件使用 配置文件使用XML文件格式组织内容。 文件格式组织内容。 文件格式组织内容 根元素 <CommonConfig> <ConfigItem> 配置项 <ConfigName>…</ConfigName> <ConfigDesc>…</ConfigDesc> 配置参数 <ConfigParam> <ParamName>…</ParamName> <ParamValue>…</ParamValue> …… <ParamValue>…</ParamValue> <ParamDesc>…</ParamDesc> </ConfigParam> </ConfigItem> </CommonConfig>
配置项名称 配置项描述
配置参数名称 配置参数值
LINKAGE LINKAGE LINKAGE LINKAGE
可配一个或多个 配置参数描述
主要方法
public String getParamValue(String configName, String paramName) 此方法返回由configName和paramName确定的配置项参数的第一个值 注意如果配置项配置了多个参数 返 此方法返回由 和 确定的配置项参数的第一个值 注意如果配置项配置了多个参数,返 回第一个值. 回第一个值
LINKAGE LINKAGE LINKAGE LINKAGE
开发人员可以将系统中可能改变的信息( 开发人员可以将系统中可能改变的信息(网络 地址、阀值等等), ),抽取出来通过配置文件的 地址、阀值等等),抽取出来通过配置文件的 方式保存。 方式保存。配置管理模块可以统一地管理配置 文件,并且提供接口供开发人员取用。 文件,并且提供接口供开发人员取用。
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-内存布局
配置文件名 AccessIn.xml AccessOut.xml
AccessIn. xml 配置管理 器实例
该配置文件对应的配置管理器实 例引用 AccessIn配置管理器实例引用 配置管理器实例引用 AccessOut配置管理器实例引用 配置管理器实例引用
LINKAGE LINKAGE LINKAGE LINKAGE
功能描述-特点
•配置管理模块支持定期扫描配置文件,发现 配置管理模块支持定期扫描配置文件, 配置管理模块支持定期扫描配置文件 配置文件修改自动重新加载配置信息到内存。 配置文件修改自动重新加载配置信息到内存。 还同时支持外部实时触发更新, 还同时支持外部实时触发更新,系统管理员通 过系统管理功能实现。 过系统管理功能实现。
public String getParamDesc(String configName, String paramName) 此方法返回由configName和paramName确定的配置项参数的描述 此方法返回由 和 确定的配置项参数的描述
LINKAGE LINKAGE LINKAGE LINKAGE
多多多多
ConfigUpdateRealtimeServer lastUpdateTime : long serverSocket : ServerSocket
设计实现-类图说明
配置管理器 •ConfigManager采用无上限多例模式,由自身管理 采用无上限多例模式, 采用无上限多例模式 和向外界提供自身实例。 和向外界提供自身实例。子系统存在多少份配置文 进程就存在多少份ConfigManager类的实 件,JAVA进程就存在多少份 进程就存在多少份 类的实 例。 •ConfigManager持有一个静态的 持有一个静态的HashMap。每个配 持有一个静态的 。 置文件对应一个ConfigManager对象,在静态 对象, 置文件对应一个 对象 HashMap中以配置文件的文件名为键值保存 中以配置文件的文件名为键值保存 ConfigManager实例。 实例。 实例 •将对应配置文件的配置信息读入内存,使用聚集容 将对应配置文件的配置信息读入内存, 将对应配置文件的配置信息读入内存 器加以保存,以备各模块在需要时取用。 器加以保存,以备各模块在需要时取用。
内容
• 配置管理功能描述 • 配置管理设计实现 • 配置管理使用说明
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-思路
在传统的单进程系统中, 在传统的单进程系统中,配置信息是在内存中 持有的,以提高系统的访问速度和性能, 持有的,以提高系统的访问速度和性能,通常 都是使用单例模式,内存中只有一份实例。 都是使用单例模式,内存中只有一份实例。
public String[] getParamValues(String configName, String paramName) 此方法返回由configName和paramName确定的配置项参数的所有值 此方法返回由 和 确定的配置项参数的所有值
主要方法
public String getParamValue(String fileName, String configName,String paramName) 此方法返回指定配置文件中由configName和paramName确定的配置项参数的第一个值 此方法返回指定配置文件中由 和 确定的配置项参数的第一个值 注意如果配置项配置了多个参数,返回第一个值 返回第一个值. 注意如果配置项配置了多个参数 返回第一个值
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-类图说明
配置管理定时更新 •周期性更新配置文件在内存中的映射,确保在系统 周期性更新配置文件在内存中的映射, 周期性更新配置文件在内存中的映射 运行过程中的配置修改在下一个运行周期能够生效。 运行过程中的配置修改在下一个运行周期能够生效。 •定时更新作业:ConfigUpdateJob,负责执行配置 定时更新作业: 定时更新作业 , 管理器的更新工作。 管理器的更新工作。将最新的配置文件信息读入内 存保存。 存保存。 •定时更新调度器 定时更新调度器:ConfigUpdateScheduler,负责获 定时更新调度器 , 得配置中的配置管理相应配置信息, 得配置中的配置管理相应配置信息,初始化定时更 新触发器和定时更新作业。 新触发器和定时更新作业。
UIP-配置管理模块
LINKAGE LINKAGE LINKAGE LINKAGE
内容
• 配置管理功能描述 • 配置管理设计实现 • 配置管理使用说明
LINKAGE LINKAGE LINKAGE LINKAGE
功能描述-综述
配置管理属于系统的基础服务, 配置管理属于系统的基础服务,是一个系统 的中程越来越重要的今天, 配置管理模块的设计好坏程度直接影响到项 目的质量与生命周期。 目的质量与生命周期。
LINKAGE LINKAGE LINKAGE LINKAGE
•配置信息管理功能是集成在系统管理模块的 配置信息管理功能是集成在系统管理模块的 WEB应用中的一个功能,提供触发各子系统 应用中的一个功能, 应用中的一个功能 重新加载配置信息的管理界面。 重新加载配置信息的管理界面。系统管理人员 可以在修改过系统配置以后, 可以在修改过系统配置以后,通过页面操作使 修改的配置信息立即生效。 修改的配置信息立即生效。
LINKAGE LINKAGE LINKAGE LINKAGE
设计实现-结构图
LINKAGE LINKAGE LINKAGE LINKAGE
调用
模块边界 模块边界
设计实现-类图
ConfigManager CHANGCOUNT : int = 0 ENVNAME : String = "ucss.config.xmlfilepath" DEFAULTPATH : String = "etc" configManagerMap : HashMap = new HashMap() lastModifiedTime = 0; configFileName; getInstance() reloadConfig() loadTestConfig() loadTestConfig() ConfigManager() init() parseConfigFiles() parseConfigFile() parseConfigfileInput() getConfigFilePath() showParamsByName() showAllParams() getParam() getParamValue() getParamDesc() getParamValues() getParamNamesByConfigName() getParamValuesByConfigName() getParamVOElement() getParamValueDirect() main() StatefulJob
(from quartz)
ConfigUpdateJob execute() execute()
1
ConfigUpdateScheduler
LINKAGE LINKAGE LINKAGE LINKAGE
QuartzScheduler
(from core)
Trigger
(from quartz)
0..n