一种动态可扩展的web界面的方法

文档序号:6440035阅读:157来源:国知局
专利名称:一种动态可扩展的web界面的方法
技术领域
本发明涉及软件开发,具体来说,涉及一种动态可扩展的web界面的方法。
背景技术
随着软件开发规模的增大,为更好的便于系统设计开发,通常需将软件划分为不同的模块,以便开发人员对不同的模块进行设计编码,以提高并行开发的效率;以模块化思想为主导的开发方式使得软件开发人员按模块对软件进行开发,但传统的开发方式,模块的划分仅是逻辑层次上的划分,开发人员任然需要在同一个工程中开发各自的模块,软件最终部署时也是将不同的模块合成一个安装包进行安装,此种方式使得当系统需要修改或增加新的功能时,均需在原有开发工程中进行代码的修改,并重新部署新的安装包,从而使得软件无法实现动态可扩展的功能。

发明内容
本发明基于模块化的思想,实现了一种动态可扩展的web界面软件架构开发方法,允许开发人员将不同的模块作为独立的工程进行开发,当系统安装部署时,不同的模块可作为独立的安装包部署到系统上,可在系统服务不停止的条件下,动态的更新或增加新的模块;并以扩展点思想为核心,实现了对web界面不同页面元素的动态加载功能,允许系统在线条件下实现新的web界面的增加。一种动态可扩展的web界面的方法,所述方法依据模块化思想,将软件架构划分为模块和核心平台;将需动态加载的web元素,javascript文件、ess文件、多语化文件定义为扩展点, 定义系统内部的扩展点机制,当模块安装扩展点规范进行设计编码,核心平台即可将模块中的扩展点元素进行统一的管理,并集中加载到web页面。优选的,所述模块为根据应用软件的特点将软件划分的逻辑单元,开发人员以模块为基本单元进行设计与开发;所述核心平台为模块运行的基础平台,所有模块均受核心
平台的统一管理与调度;所述核心平台为模块提供了运行的环境,在核心平台运行后,核心平台可以将系统中所有的模块启动并运行;所述模块的状态包括installed,resolved, uninstalle, active状态,允许在不停止核心平台和模块的基础上,动态的对模块进行卸载、更新操作。优选的,所述扩展点存在唯一的标识扩展点ID,扩展点ID使用小写字母,如果存在多个单词,直接进行连接;所述扩展点信息存储到每个模块的实现Bundle的META-INF目录下,结构为gridview/+[扩展点ID]+/*. properties,Properties文件内容包括扩展点的具体描述,其内容结构由扩展点定义方提出约定,扩展点使用方依据约定进行编写。优选的,所述扩展点的数据结构如下扩展点的扩展单元信息,Map:扩展单元信息是一个扩展点扩展信息的最小存储单元,用于表示模块对某扩展点的一个具体设定;Map结构,Key表示扩展属性名,Value表示扩展属性值,一个Map结构存储一个properties文件中的信息;单一扩展点信息,List<Map> 扩展单元信息的集合,列表中的每一个元素都是一个扩展单元信息;多扩展点信息,Map<String,List<Map 多扩展点信息结构由Map类型组成,其中Map的Key使用扩展点的ID表示,Map的Value就是单一扩展点信息结构。优选的,所述核心平台将根据扩展点机制,动态的从系统中加载所需页面元素;当用户登录页面后,核心平台将查询系统中所有状态为“active”的模块,并根据扩展点规范获取满足规范要求的页面元素配置,并统一在页面加载。优选的,所述扩展点的后台工作流程为1、页面集成子系统通过扩展点查询接口从模块管理子系统获取所需要的所有独立子系统扩展点信息;2、遍历获取的扩展点信息,通过paraentID信息确定菜单的层次结构,并依据此层次结构重新组织扩展点信息;3、在依据层次结构组织扩展点信息的过程中,依据menuld组织菜单的顺序,之后前台将不会对菜单顺序进行排序;4、按层次结构组织好的扩展点信息,最终形成以扩展点名称为KEY的MAP结构。优选的,所述扩展点的前台工作流程为1、mainpage主页面在加载完毕后,向后台发送请求获取所有扩展点的信息,并用全局变量加以存储;2、mainpage主页面从全局变量的扩展点信息数据结构中读取所需扩展点的信息, 如读取功能菜单的描述信息,并以此组织生产页面元素;3、当其他页面在动态生成页面时,均从全局变量的扩展点信息数据结构中获取所
需fe息。优选的,所述扩展点的鉴权流程为1、扩展点描述文件中增加userRole配置,取值范围为Admin,User ;2、在读取扩展点信息时,首先从session中获取用户登录选择是独立子系统还是默认方式,如是默认方式,则读取所有系统的扩展点信息;如是独立子系统,则获取给定独立子系统的扩展点信息;3、页面集成子系统从License管理模块获取当前License信息,根据配置项的ID 和有效时间是否在License范围内确定配置项是否disable ;4、页面集成子系统读取扩展点信息后,从session中获取当前用户的角色,根据登录用户的角色确定配置项是否disable ;5、将扩展点信息组织成前台需要的数据返回给前台,前台根据disable属性决定菜单是否被禁用;6、同时将用户信息和扩展点信息一起传到前台,通过javascript全局变量存储以供各子系统使用。本发明实现了 web界面的模块化开发架构,在线动态可扩展的软件架构以及软件层面对web界面的即插即用热插拔机制。


图1是本发明的软件架构图2是本发明的模块状态转换图
具体实施例方式软件基础架构主要包括核心平台和模块两个层次,模块为根据应用软件的特点将软件划分的逻辑单元,开发人员以模块为基本单元进行设计与开发;核心平台为模块运行的基础平台,所有模块均受核心平台的统一管理与调度;核心平台为模块提供了运行的环境,在核心平台运行后,核心平台可以将系统中所有的模块启动并运行;模块的状态包括installed,resolved, uninstalle, active等状态,允许在不停止核心平台和模块的基础上,动态的对模块进行卸载、更新等操作,从而保证了软件系统的动态可扩展性;Web界面动态可扩展机制本发明基于模块化平台的架构,实现了对web界面的动态可扩展功能,web界面从功能上通常用户在登录主界面后,需通过点击菜单或按钮进入相应的页面,本发明实现了根据动态加载的模块,实时展现入口菜单,从而实现了 web界面的扩展;从web界面实现的角度,本发明实现动态加载javascript文件、ess文件、多语化文件等功能,从而保证web界面的扩展;扩展点机制本发明将需动态加载的web元素,javascript文件、ess文件、多语化文件等均定义为扩展点,定义系统内部的扩展点机制,当模块安装扩展点规范进行设计编码,核心平台即可将模块中的扩展点元素进行统一的管理,并集中加载到web页面;扩展点是核心平台提供的一种页面扩展和功能扩展的方式。扩展点规约扩展点ID规约扩展点需要存在唯一的标识,即扩展点ID。扩展点ID使用小写字母,如果存在多个单词,直接进行连接。扩展点存储扩展点信息存储到每个模块的实现Bundle的META-INF目录下,结构为 gridview/+[扩展点ID]+/*, properties。例如页面集成子系统的子系统菜单项扩展点,其标识为 mainmenu,贝[I扩展点信息存储在 META—INF/gridview/mainmenu/*· properties。Properties 文件内容一个properties文件的内容是一个扩展点的具体描述,其内容结构由扩展点定义方提出约定,扩展点使用方依据约定进行编写。数据结构扩展点的扩展单元信息Map 扩展单元信息是一个扩展点扩展信息的最小存储单元,用于表示模块对某扩展点的一个具体设定。Map结构,Key表示扩展属性名,Value表示扩展属性值,一个Map结构存储一个properties文件中的信息。单一扩展点信息List<Map>:扩展单元信息的集合,列表中的每一个元素都是一个扩展单元信息。多扩展点信息Map<String,List<Map 多扩展点信息结构由Map类型组成,其中Map的Key使用扩展点的ID表示,Map的Value就是单一扩展点信息结构。页面元素动态加载机制核心平台将根据扩展点机制,动态的从系统中加载所需页面元素;当用户登录页面后,核心平台将查询系统中所有状态为“active”的模块,并根据扩展点规范获取满足规范要求的页面元素配置,并统一在页面加载,从而实现页面元素的动态加载;页面扩展点信息数据结构1、数据结构为Map<String,List<Map ,以扩展点的名称作为KEY,value为对应某个扩展点的信息以List组织起来的数据;目前主菜单key名称为“mainMenu”2、List中的map对应的结构为
权利要求
1.一种动态可扩展的web界面的方法,其特征在于所述方法依据模块化思想,将软件架构划分为模块和核心平台;将需动态加载的web元素,javascript文件、ess文件、多语化文件定义为扩展点,定义系统内部的扩展点机制,当模块安装扩展点规范进行设计编码,核心平台即可将模块中的扩展点元素进行统一的管理,并集中加载到web页面。
2.如权利要求1所述的方法,其特征在于所述模块为根据应用软件的特点将软件划分的逻辑单元,开发人员以模块为基本单元进行设计与开发;所述核心平台为模块运行的基础平台,所有模块均受核心平台的统一管理与调度;所述核心平台为模块提供了运行的环境,在核心平台运行后,核心平台可以将系统中所有的模块启动并运行;所述模块的状态包括installed,resolved, uninstalle, active 状态,允许在不停止核心平台和模块的基础上,动态的对模块进行卸载、更新操作。
3.如权利要求1所述的方法,其特征在于所述扩展点存在唯一的标识扩展点ID,扩展点ID使用小写字母,如果存在多个单词,直接进行连接;所述扩展点信息存储到每个模块的实现 Bundle 的 ΜΕΤΑ-1NF 目录下,结构为 gridview/+[扩展点 ID]+/*. properties, I^operties文件内容包括扩展点的具体描述,其内容结构由扩展点定义方提出约定,扩展点使用方依据约定进行编写。
4.如权利要求1所述的方法,其特征在于所述扩展点的数据结构如下扩展点的扩展单元信息,Map:扩展单元信息是一个扩展点扩展信息的最小存储单元,用于表示模块对某扩展点的一个具体设定;Map结构,Key表示扩展属性名,Value表示扩展属性值,一个Map结构存储一个properties文件中的信息;单一扩展点信息,List<Map> 扩展单元信息的集合,列表中的每一个元素都是一个扩展单元信息;多扩展点信息,Map<String, List<Map>> 多扩展点信息结构由Map类型组成,其中Map的Key使用扩展点的ID表示,Map的Value就是单一扩展点信息结构。
5.如权利要求1所述的方法,其特征在于所述核心平台将根据扩展点机制,动态的从系统中加载所需页面元素;当用户登录页面后,核心平台将查询系统中所有状态为 "active"的模块,并根据扩展点规范获取满足规范要求的页面元素配置,并统一在页面加载。
6.如权利要求1所述的方法,其特征在于所述扩展点的后台工作流程为1、页面集成子系统通过扩展点查询接口从模块管理子系统获取所需要的所有独立子系统扩展点信息;2、遍历获取的扩展点信息,通过paraentID信息确定菜单的层次结构,并依据此层次结构重新组织扩展点信息;3、在依据层次结构组织扩展点信息的过程中,依据menuld组织菜单的顺序,之后前台将不会对菜单顺序进行排序;4、按层次结构组织好的扩展点信息,最终形成以扩展点名称为KEY的MAP结构。
7.如权利要求1所述的方法,其特征在于所述扩展点的前台工作流程为·1、mainpage主页面在加载完毕后,向后台发送请求获取所有扩展点的信息,并用全局变量加以存储;·2、mainpage主页面从全局变量的扩展点信息数据结构中读取所需扩展点的信息,如读取功能菜单的描述信息,并以此组织生产页面元素;·3、当其他页面在动态生成页面时,均从全局变量的扩展点信息数据结构中获取所需信肩、ο
8.如权利要求1所述的方法,其特征在于所述扩展点的鉴权流程为·1、扩展点描述文件中增加userRole配置,取值范围为Admin,User;·2、在读取扩展点信息时,首先从session中获取用户登录选择是独立子系统还是默认方式,如是默认方式,则读取所有系统的扩展点信息;如是独立子系统,则获取给定独立子系统的扩展点信息;·3、页面集成子系统从License管理模块获取当前License信息,根据配置项的ID和有效时间是否在License范围内确定配置项是否disable ;·4、页面集成子系统读取扩展点信息后,从session中获取当前用户的角色,根据登录用户的角色确定配置项是否disable ;·5、将扩展点信息组织成前台需要的数据返回给前台,前台根据disable属性决定菜单是否被禁用;·6、同时将用户信息和扩展点信息一起传到前台,通过javascript全局变量存储以供各子系统使用。
全文摘要
本发明提供了一种动态可扩展的web界面的方法,所述方法依据模块化思想,将软件架构划分为模块和核心平台;将需动态加载的web元素,javascript文件、css文件、多语化文件定义为扩展点,定义系统内部的扩展点机制,当模块安装扩展点规范进行设计编码,核心平台即可将模块中的扩展点元素进行统一的管理,并集中加载到web页面。本发明实现了web界面的模块化开发架构,在线动态可扩展的软件架构以及软件层面对web界面的即插即用热插拔机制。
文档编号G06F9/445GK102495730SQ20111039736
公开日2012年6月13日 申请日期2011年12月2日 优先权日2011年12月2日
发明者孙国忠, 温鑫, 赵欢, 邵宗有, 郭庆 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1