专利名称::应用系统资源管理装置的利记博彩app
技术领域:
:本发明涉及一种资源管理装置,尤其涉及一种对集成认证授权系统中的各种资源进行管理的应用系统资源管理装置。
背景技术:
:对于基于集成认证授权系统中,应用系统资源(包括应用系统、子应用系统、界面、界面元素等)作为应用系统(如ERP、0A等)中的一种重要的元数据,在应用系统中发挥着越来越重要的作用,特别是在应用系统的访问及操作权限的控制中。在传统的如ERP、OA等应用系统的开发中,应用系统资源的信息在如用于存储这些资源的元数据管理数据库中、应用系统本身的开发时所创建的程序集或网页中、认证授权系统中等多处都会用到,但却常常由于更新不同步而使得如上所述地方中所存在的相关数据不一致的情况,在应用系统的部署文件(程序集及界面文件)中本身就存在着应用系统资源的元数据信息(包括应用系统、资源、元素以及之间的层次结构关系),但这些信息并没有以结构化的形式来存储,因此为了进行管理及开发扩展功能,通常需要以手工的方式将这些信息录入元数据管理数据库中;并且如果还存在着独立的认证授权系统,则还需要将这些资源信息以手工的方式注册到认证授权系统中以进行后续的访问及操作权限控制。采用以上的这种方式存在着如下缺陷一方面,由于需要手工操作,因此效率比较低;另一方面,由于应用系统资源的元数据存在于多个持久中,通常相同的数据信息需要维护多份,且容易造成数据的不一致性,随着应用系统复杂度的增加,频繁的变更及重构将导致上述的数据不一致的情况更加严重。
发明内容本发明要解决的技术问题是提供一种应用系统资源管理装置,可实现以结构化的形式来存储应用系统、子应用系统(或称为模块)、界面、界面元素等应用系统资源,从而可更方便地对应用系统进行管理及开发扩展功能;另外,通过该工具,还可实现应用系统资源的自动注册及与认证授权系统中资源的同步。为解决上述技术问题,本发明提供一种应用系统资源管理装置,包括有应用系统定义组件,用于定义应用系统,并创建应用系统解决方案;模块定义组件,用于定义应用系统中的业务模块,并创建所述业务模块的项目工程;自定义页面控件,用于定义界面及界面元素。所述应用系统资源管理装置还包括有元数据库解析组件、资源注册组件和资源同步组件;其中,所述元数据解析组件,用于从应用系统部署文件中自动搜索并解析层次化应用系统资源;所述资源注册组件,用于将由所述资源解析组件解析出的应用系统资源注册到结构化的持久存储中;所述资源同步组件,用于将应用系统资源与认证授权系统中的资源进行同步。本发明由于采用了上述技术手段,具有这样的技术效果,即通过应用系统定义组件、模块定义组件和自定义页面控件,实现了应用系统、子应用系统(或称为模块)、界面、界面元素等应用系统资源的层次化结构关系,从而更方便了对应用系统进行管理及开发扩展功能;并且通过元数据库解析组件、资源注册组件和资源同步组件,实现了应用系统资源的自动注册及与认证授权系统中资源的同步。下面结合附图与具体实施方式对本发明作进一步详细的说明图1为本发明所述应用系统管理装置一个实施例的结构示意图2为通过本发明所述应用系统管理装置实现的应用系统资源的层次化结构关系示意图3为程序集和ASPX页面同元数据管理数据库以及认证授权系统间的关系示意图。具体实施例方式如图1所示,为本发明所述应用系统资源管理装置一个实施例的结构示意图,包括有应用系统定义组件,用于定义应用系统,并创建应用系统解决方案,如应用系统所需要的基础组件工程及一个Web网站等。在一个实施例中,该组件可与VisualStudio2005集成,并通过在安装时向VisualStudio2005注册解决方案的模板,可以创建应用系统的解决方案,该组件在创建应用系统解决方案时,会自动地在解决方案的Core\Common工程中的Assemblylnfo.cs中使用TopApplicationAttribute来定义顶层的应用系统,如下所示]其中,bf95d523-5dca-459e-954e-988f0151a6c6为应用系统Id,由组件自动生成,该应用系统Id用于标识一唯一的顶层应用系统,上述的文字信息通过界面从用户收集。模块定义组件,或称为子应用系统定义组件,用于定义应用系统中的业务模块,并创建所述业务模块的项目工程(如数据访问层、业务逻辑层等)。在一个实施例中,该组件可与VisaulStudio2005集成,并通过在VisualStudio2005中注册项目工程模板,可以创建业务模块的数据访问层、业务逻辑层等项目工程,并且所创建的项目工程应符合"解决方案-业务模块-项目工程"的层次结构,在创建项目工程的同时,该组件会自动地在业务模块的Common工程中的Assemblylnfo.cs中使用ApplicationAttribute来定义模块(子应用系统),如下所示其中,第一Id(21427e01-7380-4cb1-bac2-988f01266476)由组件自动生成,该第一Id用于标识一唯一的模块(子应用系统),第二Id标识(bf95d523-5dca-459e-954e-988f0151a6c6)用于标识所述模块所属的应用系统,即由应用系统定义组件创建应用系统解决方案时所生成的应用系统Id,上述的文字信息通过界面从用户收集。自定义页面控件,用于定义ASP.NET界面及界面元素,包括界面资源控件及界面元素控件(如按钮)。在一个实施例中,这些自定义控件可集成在VisualStudio2005的工具箱中,在设计ASP.NET页面中,可以从工具箱中拖拽到界面中,拖拽到界面中的控件将自动在页面文件(即.ASPX文件)中生成如下形式的代码〈BPF:PlatformButtonID二〃Button01〃runat二〃server〃Resourceld=〃53427e01-798e-4cbl-bac2-988f01266476〃ResourceNamey确定按钮〃Authorizable=〃False〃Text二〃确定"/>其中,53427e01-798e-4cbl-bac2-988f01266476为资源Id,它是由控件自动生成的,该资源Id用于标识一唯一的界面资源或界面元素,其他的属性信息(如Text等)均可以在控件的属性编辑器中修改。通过使用如上所述应用系统定义组件、模块定义组件和自定义页面控件,设计及开发人员在开发应用系统的过程中,实际上已经定义了应用系统、模块、界面资源、界面元素,并建立起了应用系统资源的层次化结构关系。如图2所示为使用所述应用系统资源管理装置建立起的一应用系统资源层次化结构图,其中"质量管理"、"财务管理"和"文档管理"均为子应用系统(或模块)的具体实例,"001.aspx"、"002.aspx"、"003.aspx"均为界面资源的具体实例,而"确定"、"提交"和"帮助"均为界面元素的具体实例。因此,从图2中可以看出,通过使用以上的组件及控件,应用系统资源的层次化结构关系己经在应用系统开发的最终部署产物(程序集及ASP.NET页面文件)中得到了清晰的组织,其中应用系统与子应用系统(模块)的关系在程序集的元数据(Attribute中描述),对于每一个业务模块(子应用系统),除Id外,标签(Label)也必须唯一,通过标签在WebSite下找与标签同名的物理文件夹,文件夹中包含着本业务模块所有的页面(.ASPX文件),文件夹与文件的层次关系即上图中模块与页面的层次关系,每个页面中都有一个标识此页面资源的控件(Resource控件),控件中的Resourceld属性即标识了此页面资源。由于按钮均包含在页面中,因此这种"包含"关系本身就描述了页面与元素(如按钮)的层次关系。为了实现应用系统资源的自动注册及与认证授权系统中资源的同步,在另一个实施例中,本发明所述应用系统资源管理工具还包括有元数据解析组件、资源注册组件和资源同步组件。所述元数据解析组件,用于从应用系统部署文件(包括程序集及ASP.NET页面文件)中自动搜索并解析层次化应用系统资源(其中包括应用系统、子应用系统、界面资源、界面元素)。该组件通过.Net中的反射技术(Reflection)来在程序集中査找已定义的应用系统及模块并解析应用系统与模块之间的层次关系;并通过正则表达式来解析.ASPX页面文件的方式来査找定义的界面资源、界面元素并解析子应用系统(模块)与界面之间、界面与元素之间的层次关系。所述资源注册组件,用于将应用系统资源注册到结构化的持久存储中。在一个实施例中,该组件将由所述元数据库解析组件解析出的资源存储到元数据管理数据库中,从而将非结构化的元数据信息转换成结构化的关系型数据,以方便后续的逻辑处理。所述资源同步组件,用于将应用系统资源与认证授权系统中的资源进行同步。该组件需要与元数据解析组件及资源注册组件协同工作,判断每一个应用系统资源在程序集(DLL)+八3卩乂页面、元数据管理数据库及认证授权系统中的状态,并根据该状态来执行相应的同步操作,比如注册、更新或删除。因此,如上所述,所述资源同步组件主要用来实现应用系统资源与认证授权系统中如下三种数据源中数据的同步即由本发明所述应用系统资源管理工具所创建的程序集(DLL)+八3乂页面、同元数据管理数据库及认证授权系统之间的同步。其中,所述程序集(DLL)+八3乂页面,用于抓取开发的解决方案中实际所存在的资源;所述元数据管理数据库,用于在执行资源注册后,会在元数据管理数据库中保留注册记录。所述认证授权系统,用于在执行了资源注册后,需要同时向认证授权系统提交注册请求,以便今后进行资源的授权活动。以上三种数据源的关系如图3所示,从该图可以看出元数据管理数据库及认证授权系统中的资源数据都是由程序集(DLL)+八3乂页面来决定的。但是,在某些特殊的场景中,可能存在一些虚拟资源,即在实际的程序集及ASPX页面文件中并没有,但在元数据管理数据库及认证授权系统中却需要存在的资源,这时就可以使用本发明所述装置来手动地添加这类虚拟资源。由于虚拟资源的存在,使得三个数据源中的数据同步更加复杂。所述资源同步组件和资源注册组件,是根据三个数据源中的数据状态,在进行注册及同步时采取不同的处理策略来实现三种数据源中数据的同步。在一个实施例中,可通过所述资源同步组件和资源注册组件,采用以下策略来实现所述三种数据源中数据的同步(1)若一资源在程序集(DLL)+ASPX页面中存在,而在元数据管理数据库及认证授权系统中都不存在,则在元数据管理数据库及认证授权系统中都注册该资源,以实现同步;(2)若一资源在程序集(DLL)+八3乂页面中存在,在元数据管理数据库中也存在,而在认证授权系统中不存在,则对元数据管理数据库中相应的资源进行更新,并在认证授权系统中注册该资源;(3)若一资源在程序集(DLL)+八5乂页面中存在,在认证授权系统中也存在,而在元数据管理数据库中不存在,则在元数据管理数据库中注册该资源,而对认证授权系统则不进行任何操作;(4)若一资源在程序集(DLL)+ASPX页面、元数据管理数据库和认证授权系统中都存在,并且在这三种数据源中对应于该资源的所有信息全部相同(包括名字、描述等),则默认操作为对这三种数据源均不进行任何操作;但是,如果在这三种数据源中,虽然所述资源的Id(标识符)相同,但其名称或描述等不同,则默认操作为对元数据管理数据库进行更新,而对认证授权系统则不进行任何操作;(5)若一资源在程序集(DLL)+ASPX页面中不存在,在元数据管理数据库中也不存在,但是却存在于认证授权系统中,则默认不进行任何操作,并且与该资源相关的数据也不显示在界面上;(6)若一资源在程序集(DLL)+ASPX页面中不存在,在认证授权系统中也不存在,但是却存在于元数据管理数据库中,则分为两种处理情况如果在手动注册后,导致认证授权系统中的相应资源被删除的,则对元数据管理数据库中相应的资源进行更新,并在认证授权系统中注册该资源;但是,如果是通过程序集及页面解析并注册后,导致认证授权系统中的相应资源被删除,程序集或页面中的具体资源也被删除的,则此时应执行删除元数据管理数据库中的相应资源;(7)若一资源在程序集(DLL)+八3乂页面中不存在,但是在元数据管理数据库和认证授权系统中都存在,则分为三种处理情况如果这时属于初始状态,则默认不进行任何操作;而如果用于修改了任意值,并且由界面触发事件告诉了界面业务逻辑,则应对元数据管理数据库进行更新操作,而对认证授权系统则无需进行任何操作;或者,如果是通过程序集及页面解析并注册后,导致程序集或页面中的具体资源被删除的,则对元数据管理数据库和认证授权系统都执行删除的操作;(8)若一资源在程序集(DLL)+ASPX页面、元数据管理数据库和认证授权系统中都不存在,则应在元数据管理数据库和认证授权系统中分别注册该资源。如表l所示就是所述同步策略的一个具体的实施例,其显示了不同状态下资源的操作策略、以及注册前后三个数据源中的状态,其中状态以三位数字表示,分别表示某个资源在三个数据源中的状态,例如100表示在程序集及页面文件中存在、但在元数据管理数据库及认证授权系统中不存在;操作以三位字母表示,分别表示某个资源在三个数据源中的对应操作,例如NUR表示在程序集及页面文件中不做任何操作(None),在元数据管理数据库中进行更新操作(Update),在认证授权系统中进行注册操作(Register)。表l<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>权利要求1、一种应用系统资源管理装置,其特征在于,包括有应用系统定义组件,用于定义应用系统,并创建应用系统解决方案;模块定义组件,用于定义应用系统中的业务模块,并创建所述业务模块的项目工程;自定义页面控件,用于定义界面及界面元素。2、根据权利要求1所述的应用系统资源管理装置,其特征在于,所述应用系统定义组件、模块定义组件和自定义页面控件均与VisaulStudio2005集成。3、根据权利要求2所述的应用系统资源管理装置,其特征在于,所述应用系统定义组件通过在安装时向VisualStudio2005注册解决方案的模板,来创建应用系统的解决方案。4、根据权利要求2所述的应用系统资源管理装置,其特征在于,所述模块定义组件通过在VisualStudio2005中注册项目工程模板,来创建业务模块的项目工程,并且所创建的项目工程应符合"解决方案-业务模块-项目工程"的层次结构。5、根据权利要求l所述的应用系统资源管理装置,其特征在于,还包括有元数据解析组件、资源注册组件和资源同步组件;其中,所述元数据解析组件,用于从应用系统部署文件中自动搜索并解析层次化应用系统资源;所述资源注册组件,用于将由所述资源解析组件解析出的应用系统资源注册到结构化的持久存储中;所述资源同步组件,用于将应用系统资源与认证授权系统中的资源进行同步。6、根据权利要求5所述的应用系统资源管理装置,其特征在于,所述元数据库解析组件通过.Net反射技术来在程序集中查找已定义的应用系统及模块并解析应用系统与模块之间的层次关系;并通过正则表达式解析.ASPX页面文件的方式来査找已定义界面资源、界面元素,并解析模块与界面之间、界面与元素之间的层次关系。7、根据权利要求5所述的应用系统资源管理装置,其特征在于,所述持久存储为元数据管理数据库。8、根据权利要求5所述的应用系统资源管理装置,其特征在于,所述资源同步组件通过以下方式来实现同步:通过与所述元数据解析组件及资源注册组件协同工作,判断每一个应用系统资源在程序集+ASPX页面、元数据管理数据库及认证授权系统中的状态,并根据该状态来执行相应的同步操作,所述同步操作为注册、更新及删除。9、根据权利要求8所述的应用系统资源管理装置,其特征在于,采用以下策略来实现对所述程序集+ASPX页面、元数据管理数据库及认证授权系统三种数据源中数据的同步(1)在所述三种数据源中,若一资源仅存在于程序集+ASPX页面中,则在元数据管理数据库及认证授权系统中都注册该资源;(2)在所述三种数据源中,若一资源仅存在于程序集+ASPX页面和元数据管理数据库中,则对元数据管理数据库中相应的资源进行更新,并在认证授权系统中注册该资源;(3)在所述三种数据源中,若一资源仅存在于程序集+ASPX页面和认证授权系统中,则在元数据管理数据库中注册该资源,而对认证授权系统则不进行任何操作;(4)若一资源同时存在于所述三种数据源中,并且在所述三种数据源中对应于该资源的所有信息全部相同,则默认对所述三种数据源均不进行任何操作;但是,如果在所述三种数据源中,虽然所述资源的标识符相同,但其名称或描述不同,则默认操作为对元数据管理数据库进行更新,而对认证授权系统则不进行任何操作;(5)在所述三种数据源中,若一资源仅存在于认证授权系统中,则默认不进行任何操作;(6)在所述三种数据源中,若一资源仅存在于元数据管理数据库中,则分为两种处理情况如果是在手动注册后,导致认证授权系统中的相应资源被删除的,则对元数据管理数据库中相应的资源进行更新,并在认证授权系统中注册该资源;但是,如果是通过程序集及页面解析并注册后,导致认证授权系统中的相应资源被删除,程序集或页面中的具体资源也被删除的,则此时应执行删除元数据管理数据库中的相应资源;(7)在所述三种数据源中,若一资源仅存在于元数据管理数据库和认证授权系统中,则分为三种处理情况如果这时属于初始状态,则默认不进行任何操作;而如果用于修改了任意值,并且由界面触发事件告诉了界面业务逻辑,则应对元数据管理数据库进行更新操作,而对认证授权系统则无需进行任何操作;如果是通过程序集及页面解析并注册后,导致程序集或页面中的具体资源被删除的,则对元数据管理数据库和认证授权系统都执行删除的操作;(8)在所述三种数据源中,若一资源在所述三种数据源中都不存在,则在元数据管理数据库和认证授权系统中分别注册该资源。全文摘要本发明公开了一种应用系统资源管理装置,该装置通过应用系统定义组件、模块定义组件和自定义页面控件,实现了应用系统、子应用系统(或称为模块)、界面、界面元素等应用系统资源的层次化结构关系,从而更方便了对应用系统进行管理及开发扩展功能;并且通过元数据库解析组件、资源注册组件和资源同步组件,实现了应用系统资源的自动注册及与认证授权系统中资源的同步。其中,所述应用系统定义组件,用于定义应用系统,并创建应用系统解决方案;所述模块定义组件,用于定义应用系统中的业务模块,并创建所述业务模块的实现工程;所述自定义页面控件,用于定义界面及界面元素。文档编号G06F9/44GK101377737SQ20071009404公开日2009年3月4日申请日期2007年8月28日优先权日2007年8月28日发明者伍治平,麒张,张晶晶,歆谢,岩郭申请人:上海宝信软件股份有限公司