CN106354507A - 一种企业级应用管理系统及其运行方法 - Google Patents
一种企业级应用管理系统及其运行方法 Download PDFInfo
- Publication number
- CN106354507A CN106354507A CN201610761209.9A CN201610761209A CN106354507A CN 106354507 A CN106354507 A CN 106354507A CN 201610761209 A CN201610761209 A CN 201610761209A CN 106354507 A CN106354507 A CN 106354507A
- Authority
- CN
- China
- Prior art keywords
- module
- parameter
- unit
- management
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种企业级应用管理系统及其运行方法,包括CC‑WEB模块、CC‑Util模块、CC‑Interface模块、CC‑Core模块、DB模块和发布/订阅服务组件,所述CC‑WEB模块的输出端通过CC‑Interface模块与CC‑Core模块连接,且CC‑Core模块通过CC‑Interface模块与CC‑Util模块双向连接,所述CC‑Core模块分别与DB模块和发布/订阅服务组件双向连接,所述CC‑WEB模块用于进行后台管理,且用于提供主要的用户交互界面,所述CC‑WEB模块包括应用管理单元、参数管理单元、菜单管理单元和数据字典管理单元。本发明使得开发人员、运维人员和业务配置人员分工更加明确,开发测试人员不必纠结在复杂的业务参数存放和管理,更关注自己的业务逻辑实现,极大的减少了工作量与出错率;业务配置人员则对系统的各个业务参数更加清晰。
Description
技术领域
本发明涉及企业应用解决方案技术领域,尤其涉及一种企业级应用管理系统及其运行方法。
背景技术
据了解,在企业级应用中,参数配置是必不可少的,在传统的应用系统中,参数配置分布于各个应用中,实现方式也各不相同,CC为配置中心或统一配置,比如:基于properties或XML配置文件配置和基于数据库配置等等,每个系统各自维护管理,随着应用系统的不断增多这种松散的配置方式的弊端便不断显现,产生了配置参数过于分散不便于运维人员进行管控、线上无法实时更新配置、过多的参数配置增加了开发或测试工作量而且很容易出错等等一系列问题。
发明内容
基于背景技术存在的技术问题,本发明提出了一种企业级应用管理系统及其运行方法。
本发明提出的一种企业级应用管理系统,包括CC-WEB模块、CC-Util模块、CC-Interface模块、CC-Core模块、DB模块和发布/订阅服务组件,所述CC-WEB模块的输出端通过CC-Interface模块与CC-Core模块连接,且CC-Core模块通过CC-Interface模块与CC-Util模块双向连接,所述CC-Core模块分别与DB模块和发布/订阅服务组件双向连接,所述CC-WEB模块用于进行后台管理,且用于提供主要的用户交互界面,所述CC-WEB模块包括应用管理单元、参数管理单元、菜单管理单元和数据字典管理单元;所述CC-Util模块为工具组件,且CC-Util模块用于进行系统调用,所述CC-Util模块包括参数初始化加载单元和订阅参数变更单元;所述CC-Interface模块用于提供统一的接口调用,且CC-Interface模块包括应用接口、菜单接口、参数接口及数据字典接口;所述CC-Core模块用于进行核心逻辑处理,且CC-Core模块包括核心业务逻辑处理单元、热数据缓存单元、参数权限管控单元和参数更新发布单元;所述DB模块为数据库,且DB模块用于存储所有的持久化数据。
优选地,所述CC-Util模块分别双向连接有用于调用服务的组织机构系统、CRM系统和单点登录系统。
优选地,所述应用管理单元用于抽象化组织机构系统、CRM系统和单点登录系统,且应用管理单元为抽象化组织机构系统、CRM系统和单点登录系统提供唯一编码,所述参数管理单元用于提供对参数的增删改查功能,且参数管理单元用于查询每个应用的具体类别参数,提供配置同步功能,所述菜单管理单元用于提供应用系统菜单的统一配置,且数据字典管理单元用于提供各企业应用的公用数据。
优选地,所述参数初始化加载单元用于根据应用编码获取此应用全量参数,且订阅参数变更单元用于在节点发生变更时触发相应参数进行变更,所述核心业务逻辑处理单元用于对CC-Interface模块进行具体实现与数据持久化,且热数据缓存单元用于提供部分使用频率高数据的缓存,所述参数权限管控单元用于变更参数时判断使用人员是否存在响应权限,从而判断是否支持变更,且参数更新发布单元用于更新发布参数。
本发明还提出了一种企业级应用管理系统的运行方法,包括以下步骤:
S1:应用系统首次对接,在应用管理单元中注册应用并配置相应管理人员;
S2:管理人员登陆账号,点击参数管理单元进行参数配置;
S3:应用系统配置CC-Util模块,并配置应用编码和CC接口地址,系统启动时加载CC中相应参数和注册参数进行监听;
S4:管理人员用参数管理单元进行参数更改;
S5:管理人员用菜单管理单元配置相应系统的菜单选项,更新菜单后,重新登录即可生效;
S6:管理人员用数据字典管理单元管理企业应用的数据字典数据,CC提供相应的数据字典接口供各应用使用。
优选地,所述S4中,管理人员用参数管理单元进行参数更改,相对应的应用监控到参数变动,然后及时进行修改。
本发明中,所述一种企业级应用管理系统及其运行方法结合SOA思想,通过抽象化各个应用系统,将应用系统中参数进行分类集中化管理,提供应用系统间参数同步并基于发布/订阅模式实现参数热更新,此外还提供各个应用系统菜单配置和数据字典的维护管理,使得开发人员、运维人员和业务配置人员分工更加明确,开发测试人员不必纠结在复杂的业务参数存放和管理,更关注自己的业务逻辑实现,极大的减少了工作量与出错率;业务配置人员则对系统的各个业务参数更加清晰。
附图说明
图1为本发明提出的一种企业级应用管理系统的结构示意图。
具体实施方式
下面结合具体实施例对本发明作进一步解说。
实施例
参考图1,本实施例提出了一种企业级应用管理系统,包括CC-WEB模块、CC-Util模块、CC-Interface模块、CC-Core模块、DB模块和发布/订阅服务组件,CC-WEB模块的输出端通过CC-Interface模块与CC-Core模块连接,且CC-Core模块通过CC-Interface模块与CC-Util模块双向连接,CC-Core模块分别与DB模块和发布/订阅服务组件双向连接,CC-WEB模块用于进行后台管理,且用于提供主要的用户交互界面,CC-WEB模块包括应用管理单元、参数管理单元、菜单管理单元和数据字典管理单元;CC-Util模块为工具组件,且CC-Util模块用于进行系统调用,CC-Util模块包括参数初始化加载单元和订阅参数变更单元;CC-Interface模块用于提供统一的接口调用,且CC-Interface模块包括应用接口、菜单接口、参数接口及数据字典接口;CC-Core模块用于进行核心逻辑处理,且CC-Core模块包括核心业务逻辑处理单元、热数据缓存单元、参数权限管控单元和参数更新发布单元;DB模块为数据库,且DB模块用于存储所有的持久化数据。
本实施例中,CC-Util模块分别双向连接有用于调用服务的组织机构系统、CRM系统和单点登录系统,应用管理单元用于抽象化组织机构系统、CRM系统和单点登录系统,且应用管理单元为抽象化组织机构系统、CRM系统和单点登录系统提供唯一编码,参数管理单元用于提供对参数的增删改查功能,且参数管理单元用于查询每个应用的具体类别参数,提供配置同步功能,菜单管理单元用于提供应用系统菜单的统一配置,且数据字典管理单元用于提供各企业应用的公用数据,参数初始化加载单元用于根据应用编码获取此应用全量参数,且订阅参数变更单元用于在节点发生变更时触发相应参数进行变更,核心业务逻辑处理单元用于对CC-Interface模块进行具体实现与数据持久化,且热数据缓存单元用于提供部分使用频率高数据的缓存,参数权限管控单元用于变更参数时判断使用人员是否存在响应权限,从而判断是否支持变更,且参数更新发布单元用于更新发布参数。
本实施例还提出了一种企业级应用管理系统的运行方法,包括以下步骤:
S1:应用系统首次对接,在应用管理单元中注册应用并配置相应管理人员;
S2:管理人员登陆账号,点击参数管理单元进行参数配置;
S3:应用系统配置CC-Util模块,并配置应用编码和CC接口地址,系统启动时加载CC中相应参数和注册参数进行监听;
S4:管理人员用参数管理单元进行参数更改;
S5:管理人员用菜单管理单元配置相应系统的菜单选项,更新菜单后,重新登录即可生效;
S6:管理人员用数据字典管理单元管理企业应用的数据字典数据,CC提供相应的数据字典接口供各应用使用。
本实施例中,CC翻译为配置中心或统一配置,S4中,管理人员用参数管理单元进行参数更改,相对应的应用监控到参数变动,然后及时进行修改,一种企业级应用管理系统及其运行方法结合SOA思想,通过抽象化各个应用系统,将应用系统中参数进行分类集中化管理,提供应用系统间参数同步并基于发布/订阅模式实现参数热更新,此外还提供各个应用系统菜单配置和数据字典的维护管理,使得开发人员、运维人员和业务配置人员分工更加明确,开发测试人员不必纠结在复杂的业务参数存放和管理,更关注自己的业务逻辑实现,极大的减少了工作量与出错率;业务配置人员则对系统的各个业务参数更加清晰。
本实施例中,各模块详细描述:
应用管理单元:抽象化各应用系统,针对每个应用系统提供唯一编码,此编码为区分各应用系统的唯一凭证,若使用CC系统必须先在应用管理单元中进行注册,每个应用需配置相应的管理人员(只有分配的管理人员才能操作相应应用下的参数及菜单配置),提高参数安全的管控。
参数管理单元:为CC系统的核心模块,此功能提供对参数的增删改查功能,其中增删改必须具有相应操作权限,可以根据应用“应用”和“参数分组”查询每个应用的具体类别参数,提供配置同步功能,方便在各个系统同步配置相同参数,例如:应用A和应用B都依赖调用应用X,相应的配置参数分组为X-Paramter,配置了应用A后可以选择同步参数分组X-Paramter至应用B,则应用B与A都具有相应的应用分组X-Paramter,从而免去了手工重复配置,提供了生产效率,针对所有系统的公共参数,CC提供内置公共应用,编码为“public”,所有在public中配置的参数所有应用默认都进行加载,如果个别系统参数有区别,和采用在具体应用中配置相同参数名,从而覆盖公共参数,公共参数配置目的也是提高参数配置效率。
菜单管理单元:提供各应用系统菜单的统一配置,此功能与参数管理单元类似,不过此处的参数为各个系统的菜单,管理员在菜单管理单元中配置新的菜单后,通过更新缓存,客户端系统重新登录即可实现菜单更新。
数据字典管理单元:数据字典数据为各企业应用的公用数据,此部分数据具有使用频率高、数据不易变更等特点,CC提供对此部分数据的管理,并将数据提供给各个应用系统使用。
参数初始化加载单元:应用系统在启动时,根据应用编码获取此应用全量参数,CC-Util模块提供相应的参数存储对象,客户端无需对此做额外处理。
订阅参数变更单元:参数变更分为两种形式,一种是全量变更,另一种为单个参数变更,在发布/订阅组件中以不同的节点区分,当应用系统启动时,会对注册这两个节点监听,当节点发生变更则会触发相应参数进行变更。
CC-Interface模块:此模块提供CC的统一接口调用,包含应用接口、菜单接口、参数接口及数据字典接口。
核心业务逻辑处理单元:CC-Interface的具体实现与数据持久化。
热数据缓存单元:提供部分使用频率高的数据的缓存,例如:系统菜单数据、城市归属地数据等等;从而提高模块提高请求响应效率,降低系统和数据库负载。
参数的权限管控单元:变更参数时系统会判断使用人员是否存在响应权限,从而判断是否支持变更。
参数变更发布单元:当参数发生变更后,系统会调用发布/订阅服务组件,变更响应的节点。
DB与发布/订阅服务组件:DB即Database数据库,存储系统的所有的持久化数据;发布/订阅服务组件是基于发布/订阅模式,在开源项目zookeeper上封装实现的功能模块组件,其主要原理为,在zookeeper节点上生成响应的参数节点,具体节点为:cc/parameter/系统编码/参数Key,其中在“参数Key”节点中保存了响应的参数值,CC-Util模块会注册响应节点下的监听器,当节点发生变更监听器会理解做出响应进行参数变更,例如cc/parameter/crm/key对应的值为1,当CC-Core模块变更cc/parameter/crm/key为2时,CC-Util便会立即接受并做出处理。
系统初始化参数:启动CRM系统,系统会通过应用编码调用CC-Util模块的初始化类,进行参数加载。CC-Util模块再通过远程调用CC-Interface模块最终执行CC-Core模块中获取参数方法,加载完参数后CC-Util模块注册该应用节点的监听器,用于监听参数变更,参数变更:管理员通过参数管理执行更新参数后,CC-WEB模块直接调用CC-Interface模块接口执行CC-Core模块中变更方法,此步骤中会校验用户权限,只有通过校验才有权限修改,修改结束后CC-Core模块会发布变更节点,此时CC-Util模块会监控到参数变更,并对参数做及时的更新处理。
通过CC的实施对接,开发人员无需在系统业务参数花费较多时间,而是更多的关注业务逻辑的实现,对于众多重复的参数配置通过参数同步轻松添加,开发结束后,转测与上线只需通过导出与导入参数即可实现测试与生产环境切换,所有操作皆为线上化处理,提高配置效率,降低出错概率,业务参数配置人员登录系统后对于参数进行调整无需担心系统重启加载问题,当在大规模系统迁移部署时,CC的优势就更显突出了。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种企业级应用管理系统,包括CC-WEB模块、CC-Util模块、CC-Interface模块、CC-Core模块、DB模块和发布/订阅服务组件,其特征在于,所述CC-WEB模块的输出端通过CC-Interface模块与CC-Core模块连接,且CC-Core模块通过CC-Interface模块与CC-Util模块双向连接,所述CC-Core模块分别与DB模块和发布/订阅服务组件双向连接,所述CC-WEB模块用于进行后台管理,且用于提供主要的用户交互界面,所述CC-WEB模块包括应用管理单元、参数管理单元、菜单管理单元和数据字典管理单元;所述CC-Util模块为工具组件,且CC-Util模块用于进行系统调用,所述CC-Util模块包括参数初始化加载单元和订阅参数变更单元;所述CC-Interface模块用于提供统一的接口调用,且CC-Interface模块包括应用接口、菜单接口、参数接口及数据字典接口;所述CC-Core模块用于进行核心逻辑处理,且CC-Core模块包括核心业务逻辑处理单元、热数据缓存单元、参数权限管控单元和参数更新发布单元;所述DB模块为数据库,且DB模块用于存储所有的持久化数据。
2.根据权利要求1所述的一种企业级应用管理系统,其特征在于,所述CC-Util模块分别双向连接有用于调用服务的组织机构系统、CRM系统和单点登录系统。
3.根据权利要求1或2所述的一种企业级应用管理系统,其特征在于,所述应用管理单元用于抽象化组织机构系统、CRM系统和单点登录系统,且应用管理单元为抽象化组织机构系统、CRM系统和单点登录系统提供唯一编码,所述参数管理单元用于提供对参数的增删改查功能,且参数管理单元用于查询每个应用的具体类别参数,提供配置同步功能,所述菜单管理单元用于提供应用系统菜单的统一配置,且数据字典管理单元用于提供各企业应用的公用数据。
4.根据权利要求1所述的一种企业级应用管理系统,其特征在于,所述参数初始化加载单元用于根据应用编码获取此应用全量参数,且订阅参数变更单元用于在节点发生变更时触发相应参数进行变更,所述核心业务逻辑处理单元用于对CC-Interface模块进行具体实现与数据持久化,且热数据缓存单元用于提供部分使用频率高数据的缓存,所述参数权限管控单元用于变更参数时判断使用人员是否存在响应权限,从而判断是否支持变更,且参数更新发布单元用于更新发布参数。
5.一种企业级应用管理系统的运行方法,其特征在于,包括以下步骤:
S1:应用系统首次对接,在应用管理单元中注册应用并配置相应管理人员;
S2:管理人员登陆账号,点击参数管理单元进行参数配置;
S3:应用系统配置CC-Util模块,并配置应用编码和CC接口地址,系统启动时加载CC中相应参数和注册参数进行监听;
S4:管理人员用参数管理单元进行参数更改;
S5:管理人员用菜单管理单元配置相应系统的菜单选项,更新菜单后,重新登录即可生效;
S6:管理人员用数据字典管理单元管理企业应用的数据字典数据,CC提供相应的数据字典接口供各应用使用。
6.根据权利要求5所述的一种企业级应用管理系统的运行方法,其特征在于,所述S4中,管理人员用参数管理单元进行参数更改,相对应的应用监控到参数变动,然后及时进行修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610761209.9A CN106354507A (zh) | 2016-08-30 | 2016-08-30 | 一种企业级应用管理系统及其运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610761209.9A CN106354507A (zh) | 2016-08-30 | 2016-08-30 | 一种企业级应用管理系统及其运行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106354507A true CN106354507A (zh) | 2017-01-25 |
Family
ID=57856385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610761209.9A Pending CN106354507A (zh) | 2016-08-30 | 2016-08-30 | 一种企业级应用管理系统及其运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354507A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742185A (zh) * | 2017-10-12 | 2018-02-27 | 深圳云集智造系统技术有限公司 | Erp系统的上线方法、装置、终端和计算机可读存储介质 |
CN107844588A (zh) * | 2017-11-17 | 2018-03-27 | 中国银行股份有限公司 | 一种数据字典的处理方法、装置、存储介质及处理器 |
CN109391658A (zh) * | 2017-08-10 | 2019-02-26 | 深圳竹云科技有限公司 | 一种账号数据同步方法及其设备、存储介质、终端 |
CN110196874A (zh) * | 2019-05-31 | 2019-09-03 | 新华三大数据技术有限公司 | 数据订阅方法、装置及服务器 |
CN114675896A (zh) * | 2020-12-24 | 2022-06-28 | 广东飞企互联科技股份有限公司 | 一种面向微服务开发的参数配置方法与系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130966A (zh) * | 2011-04-15 | 2011-07-20 | 北京三博中自科技有限公司 | 一种用于企业综合信息平台的系统架构及其实现方法 |
CN102833217A (zh) * | 2011-06-16 | 2012-12-19 | 中兴通讯股份有限公司 | 客户/服务器应用的处理方法及集中处理系统 |
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
WO2016086326A1 (es) * | 2014-12-02 | 2016-06-09 | Tarco Trazabilidad Spa | Medición de fluidos de estanques y sistema de monitoreo remoto |
-
2016
- 2016-08-30 CN CN201610761209.9A patent/CN106354507A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130966A (zh) * | 2011-04-15 | 2011-07-20 | 北京三博中自科技有限公司 | 一种用于企业综合信息平台的系统架构及其实现方法 |
CN102833217A (zh) * | 2011-06-16 | 2012-12-19 | 中兴通讯股份有限公司 | 客户/服务器应用的处理方法及集中处理系统 |
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
WO2016086326A1 (es) * | 2014-12-02 | 2016-06-09 | Tarco Trazabilidad Spa | Medición de fluidos de estanques y sistema de monitoreo remoto |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391658A (zh) * | 2017-08-10 | 2019-02-26 | 深圳竹云科技有限公司 | 一种账号数据同步方法及其设备、存储介质、终端 |
CN107742185A (zh) * | 2017-10-12 | 2018-02-27 | 深圳云集智造系统技术有限公司 | Erp系统的上线方法、装置、终端和计算机可读存储介质 |
CN107844588A (zh) * | 2017-11-17 | 2018-03-27 | 中国银行股份有限公司 | 一种数据字典的处理方法、装置、存储介质及处理器 |
CN110196874A (zh) * | 2019-05-31 | 2019-09-03 | 新华三大数据技术有限公司 | 数据订阅方法、装置及服务器 |
CN114675896A (zh) * | 2020-12-24 | 2022-06-28 | 广东飞企互联科技股份有限公司 | 一种面向微服务开发的参数配置方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354507A (zh) | 一种企业级应用管理系统及其运行方法 | |
EP2548137B1 (en) | Distributed event system for relational models | |
CN106549829B (zh) | 大数据计算平台监控系统及方法 | |
US8776011B2 (en) | Method and apparatus for managing components of application enablement suite | |
JP5055410B2 (ja) | 装置管理システム及びそのシステムにおける装置管理命令スケジューリング方法 | |
CN110851278A (zh) | 一种基于微服务架构的配网自动化主站移动应用服务管理方法和系统 | |
CN110383765A (zh) | 使用图形模型的计算机基础结构的配置、遥测和分析 | |
JP6231020B2 (ja) | クラウドコンピューティング環境におけるプロセスの調整 | |
CN111274001B (zh) | 微服务管理平台 | |
CN101427220A (zh) | 用于计算工具的计算环境的组件化自动供应和管理 | |
CN103019791B (zh) | 软件部署方法及软件部署系统 | |
CN104717233B (zh) | 数据库部署方法和装置 | |
JP2001512599A (ja) | 複数の制御装置の中に分散されている階層ハイアラーキー制御戦略を使用しているプロセス制御システム | |
CN110462623A (zh) | 用于基于角色的计算机安全配置的系统和方法 | |
CN102819557B (zh) | 数据查询处理装置和数据查询处理方法 | |
TW200525938A (en) | Remote system administration using command line environment | |
AU2016293440B2 (en) | Control center system for searching and managing objects across data centers | |
Gusmeroli et al. | IoT@ Work automation middleware system design and architecture | |
CN108427550A (zh) | 一种Web服务生成方法、装置及设备 | |
CN105786611A (zh) | 一种分布式集群的任务调度方法及装置 | |
JP2023531196A (ja) | ネットワーク管理システム、方法、装置及び電子機器 | |
CN108701132A (zh) | 资源管理系统和方法 | |
CN105338045A (zh) | 一种云计算资源的处理装置、方法及云计算系统 | |
CN101834750A (zh) | 一种通用业务监控方法 | |
CN109743192A (zh) | 一种容器集群配置管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170125 |
|
RJ01 | Rejection of invention patent application after publication |