专利名称:一种获取业务逻辑的方法及系统的制作方法
一种获取业务逻辑的方法及系统技术领城本发明涉及计算机领域,尤其涉及一种获取业务逻辑的方法及系统。
技术背景一个典型的业务系统可以划分为三层视图层,业务层和数据层。视图层 用于实现业务系统与用户的交互;业务层通常由若干相互协作的组织构成,用 来完成业务操作;数据层既可以是数据库也可以是其他类型的资源,用于存储 业务系统所需要的数据。了解一个业务系统时,常常需要了解业务操作过程中调用到的所有类和方 法,以便理清业务逻辑。目前,通常是通过直接阅读业务操作流程的源代码来理清业务逻辑。但是 业务系统一般而言比较庞大,逻辑也比较复杂,每个业务操作都会引发一连串 的事件链,事件链是指顺序执行业务操作过程中调用到的所有类和方法,因此 该方法比较复杂,不易操作,必须花费大量的时间才能理清业务逻辑,实用性 不强,尤其对于一个刚接触该业务系统的人来说,很难直接从源代码中掌握业 务逻辑,业务逻辑在此为业务操作过程中事件链的调用过程,也就是对所有类 和方法的调用过程。另外,可以通过察看业务系统的技术文档来了解业务逻辑,由于技术文档 不能完全、清晰地描述整个业务操作的业务逻辑,使得业务操作流程与技术文 档脱节,因此,通过该方法也无法有效获取业务逻辑。此外,环球网(World Wide web, WEB)应用的视图层中,在WEB服务 器中设置一个Servlet过滤器,Servlet过滤器能使用户请求在被传给对应的业 务处理单元之前被截获,完成诸如权限检查等功能。在过滤器中可以拦截到用户i奮求的全J求资源定^立器(Uniform Resource Locator, URL)和去于装的一些凄t 据,但由于受超文本传输协议(Hypertext Transfer Protocol, HTTP)的限定, Servlet过滤器只能应用于WEB应用的碎见图层,而且只能用于JAVA语言平台, 如图1中所示,其为现有4支术中Servlet过滤器所处的业务系统,可见Servlet 过滤器仅能拦截WEB层的资源,不能用于图形用户界面(Graphic User Interface, GUI)应用和业务层。综上所述,根据现有提供的方法均无法快速有效地获取业务逻辑。发明内容有鉴于此,本发明提供一种获取业务逻辑的方法及系统,以快速有效地获 取业务逻辑。本发明提供的一种获取业务逻辑的系统,该系统包括视图管理器、拦截 器和存储单元,其中,所述视图管理器用于收到用户请求结果时调用存储单元 中的关键业务逻辑信息,根据该关键业务逻辑信息生成业务逻辑视图;所述拦 截器用于根据设置的拦截规则获取业务操作过程中的关键业务逻辑信息;所述 存储单元用于存储所述关键业务逻辑信息。上述获取业务逻辑的系统进一步包括业务执行单元,用于接收用户请求, 并将此用户请求按业务逻辑执行业务操作,向视图管理器提供用户请求结果。上述系统进一步包括客户端,所述视图管理器进一步用于向所述客户端 提供所述业务逻辑视图;所述客户端用于发起关于业务的用户请求,并将该用 户请求提供给视图管理器,接收视图管理器返回的业务逻辑视图。对于上述系统,所述视图管理器进一步用于向所述业务执行单元提供用户 请求;或者,所述视图管理器进一步用于向所述拦截器提供用户请求,所述拦 截器进一步用于向所述业务执行单元提供用户请求。再进一步,上述系统中任一系统所述存储单元包括文件生成器和文件解 析器,其中,所述文件生成器用于将所述关键业务逻辑信息生成特定格式的存储文件;所述文件解析器用于将特定格式的存储文件解析为关键业务逻辑信 息,并向视图管理器提供该关键业务逻辑信息。本发明提供的一种获取业务逻辑的方法,该方法包括A、 在业务操作过程中,根据设置的拦截规则获取关键业务逻辑信息并进 行存储;B、 当业务操作执行完毕后,根据存储的关键业务逻辑信息生成业务逻辑 视图。所述步骤B之前进一步包括确定用户请求的应用类型;步骤B中所述 生成业务逻辑视图,包括生成对应于应用类型的业务逻辑视图。步骤A中所述存储关键业务逻辑信息,包括将所述关键业务逻辑信息生 成特定格式的存储文件;所述步骤B之前进一步包括将所述特定格式的存储 文件解析为关键业务逻辑信息。步骤B中所述生成业务逻辑视图,包括调用内部插件,由该内部插件将 所述关键业务逻辑信息转化成业务逻辑^f见图。所述步骤B进一步包括得到针对本次业务操作的用户请求生成的用户请 求结果,根据该用户请求结果生成请求结果视图。相对于现有技术,本发明具有以下有益效果1、 通过本发明中的技术方案,用户能获得针对关键业务逻辑信息得到的 业务逻辑视图,这种视图比现有技术简单、直观,并且可以使用户准确定位业 务操作过程中用户所关心的所有类和方法以及它们之间的调用关系。便于用户 分析业务系统运行流程,方便问题追踪。2、 本发明中使用了拦截器,将其设置于业务层中,因此本发明适用于客 户端的所有应用类型,如WEB应用和GUI应用都适用,此外拦截器对整个业 务层的业务操作过程都可以起到监控作用,在获取关键业务逻辑信息的同时不 影响业务操作过程。3、 因为大多数计算机语言都能直接或间接实现拦截功能,所以本发明在使用了拦截器后,本发明提供的获取业务逻辑的系统适用于多种计算机语言平 台,具有很强的通用性。4、 本发明中可以以多种形式存储业务操作过程中的关键业务逻辑信息, 适应于不同业务系统的要求,这些不同形式的关键业务逻辑信息能给用户提供 多种用途。例如,用可扩展标记语言(Extensible Markup Language, XML)文 件作为存储文件时,由于XML是一种可扩展的标记语言,通用性非常强,可 以容易地与其他系统集成,该XML文件经过系统特殊程序的处理,可以方便 的以可视化图形界面或者通过浏览器来展现。5、 由于视图管理器生成了关键业务逻辑信息的业务逻辑视图,使得用户 无需特意去查看众多业务逻辑的源代码,而可以通过多种方式对源代码进行提 取。
图1为现有技术中Servlet过滤器在业务系统中的位置示意图; 图2为本发明中获取业务逻辑的系统的结构示意图; 图3为为本发明中使用XML文件作为存储形式的获取业务逻辑的系统的 结构示意图;图4为本发明获取业务逻辑的流程图;图5为本发明中拦截器获取到的执行业务操作过程中的事件链及其在存储 单元中的存储状态示意图。
具体实施方式
本发明提供一种获取业务逻辑的系统,包括视图管理器、拦截器和存储 单元,其中,所述视图管理器用于收到用户请求结果时调用存储单元中的关键 业务逻辑信息,根据该关键业务逻辑信息生成业务逻辑视图;所述拦截器用于 根据设置的拦截规则获取业务操作过程中的关键业务逻辑信息;所述存储单元用于存储所述关键业务逻辑信息。更为详细的获取业务逻辑的系统包括客户端、视图管理器、拦截器、存 储羊元和业务执行单元。具体如图2所示。客户端用于发起关于业务的用户请求,并将该用户请求提供给视图管理 器,接收视图管理器返回的用户请求结果,并可进一步接收视图管理器返回的 业务逻辑-f见图向用户显示。视图管理器用于根据确定出的用户请求的应用类型初始化环境,该处理即 为确定应用类型的过程,例如,视图管理器根据确定出的WEB应用类型将环 境初始化为WEB应用环境,视图管理器根据确定出的GUI应用类型将环境初 始化为GUI应用环境,并将用户请求转发至业务执行单元;此外,视图管理器 用于在收到业务执行单元返回的用户请求结果后,调用存储单元中的关键业务 逻辑信息,根据该关键业务逻辑信息生成对应于应用类型的业务逻辑视图,并 可进一步将该业务逻辑视图提供给客户端。视图管理器可直接向业务执行单元 转发用户请求,也可通过拦截器转发用户请求。进一步地,视图管理器用于根 据业务执行单元返回的用户请求结果生成请求结果视图,并向客户端提供该请 求结果视图,客户端用于向用户显示收到的请求结果视图。拦截器用于根据设置的拦截规则获取业务操作过程中的关键业务逻辑信 息,并将这些关键业务逻辑信息提供给存储单元。此外,拦截器还用来接收视 图管理器转发过来的用户请求并将该请求转发至业务执行单元,此时拦截器不 对用户请求进行任何处理。对于拦截器中设置的拦截规则,用户可根据自己关 心的信息对其进行设置,拦截器在拦截过程中根据拦截规则来获取相应的关键 业务逻辑信息,运行的时候并不打断正常的业务操作流程。业务执行单元用于接收用户请求,并将此用户请求按业务逻辑执行业务操 作,向视图管理器提供用户请求结果。业务执行单元收到的用户请求可来自于 视图管理器,也可来自于拦截器。存储单元用于存储接收到的关键业务逻辑信息,并向视图管理器提供存储的关键业务逻辑信息。上述视图管理器可以生成两类视图第一类是关于用户请求结果的视图, 即请求结果视图;第二类是关于业务逻辑的源代码的链接视图,即业务逻辑视 图。第一类视图与一般的业务操作的结果视图相同;对于第二类视图,可以将 关键业务逻辑以视图链接的形式来表现,即提供用户关心的所有业务逻辑的源 代码的链接。本发明中,视图管理器读取存储单元中保存的本次业务操作的关 键业务逻辑的信息,然后根据读取到的这些关键业务逻辑信息生成相应的源代 码以及业务逻辑;现图,4艮据应用类型以不同形式显示。例如对于WEB应用, 视图管理器会生成页面形式的源代码链接给用户,而对于GUI应用,视图管理 器会生成GUI图形界面形式的源代码链接给用户。用户点击视图上显示的某个 类和方法的链接,即可通过不同方式提取源代码后查看到有关这个类和方法的 完整调用过程。图2所示的结构中,由于存储单元中存储的信息的表现形式的不同,可以 实现多种获取业务逻辑的系统,即根据用户对不同业务系统的不同需要,存储 单元以不同方式存储关键业务逻辑信息,最后每个具体的系统会根据其关键业 务逻辑信息生成相应的视图。例如,根据实际需要可在存储单元中以XML文 件、数据库、文本文档等表现形式对关键业务逻辑信息进行存储,满足不同业 务系统的需要,从而实现多种用途。这样,进一步地,存储单元包括文件生成器和文件解析器。其中,文件 生成器用于将收到的关键业务逻辑信息生成特定格式的存储文件,文件解析器 用于将特定格式的存储文件解析为关键业务逻辑信息,并向视图管理器提供上 述关键业务逻辑信息。以使用XML文件作为存储方式为例,如图3所示,本 发明中获取业务逻辑的系统的结构中包括XML生成器和XML解析器。其中, XML生成器用于将收到的关键业务逻辑信息生成标准的XML文件,该XML 文件起到存储关键业务逻辑信息的作用,当视图管理器接收到用户请求结果时 调用XML解析器,XML解析器将前面生成的XML文件解析为关键业务逻辑信息,然后提供给视图管理器。本发明中,拦截器根据设置的拦截规则获取业务操作过程中的关键业务逻 辑信息,存储单元存储上述关键业务逻辑信息,当业务4栗作4丸行完毕后,用户 请求结果返回至视图管理器,则视图管理器调用已存储的关键业务逻辑信息, 根据该关键业务逻辑信息生成对应的业务逻辑视图,同时,视图管理器可进一 步根据用户请求结果生成请求结果视图,最后,视图管理器可以向客户端提供 业务逻辑视图、或请求结果视图和业务逻辑视图,最终由客户端将收到的视图显示给用户。具体的处理流程如图4所示S100-S101:客户端发起的关于业务的用户请求到达视图管理器,视图管 理器根据确定出的用户请求的应用类型初始化环境,例如,图管理器根据确定 出的WEB应用类型将环境初始化为WEB应用环境,视图管理器根据确定出 的GUI应用类型将环境初始化为GUI应用环境,然后视图管理器将用户请求 转发至业务执行单元,视图管理器可直接向业务执行单元转发用户请求,也可 通过拦截器转发用户请求,此时拦截器不对用户请求进行任何处理。S102-S103:业务执行单元按用户请求的业务逻辑执行业务操作,同时拦 截器根据设置的拦截规则获取业务操作过程中的关键业务逻辑信息,这些关键 业务逻辑信息能够体现出类和方法的调用过程顺序,拦截器将这些关键业务逻 辑信息存储在存储单元中。在此过程中,对于拦截器中设置的拦截规则,用户可根据自己关心的信息 对其进行设置,存储单元中可以存储不同表现形式的关键业务逻辑信息,如 XML文件、文本文档等。对关键业务逻辑信息进行存储时,将该关键业务逻 辑信息生成特定格式的存储文件,视图管理器需要调用关键业务逻辑信息时, 将特定格式的存储文件解析为关键业务逻辑信息。S104:业务操作执行完毕后,业务执行单元将用户请求结果直接返回至视 图管理器,此用户请求结果相当于对于用户请求的一个响应。S105-S106:视图管理器接收到用户请求结果时,以此响应为触发去调用存储于存储单元中的关键业务逻辑信息,根据该关键业务逻辑信息生成对应的 业务逻辑视图,并可进一步根据用户请求结果生成请求结果视图。视图管理器 向客户端提供业务逻辑视图、或请求结果视图和业务逻辑视图,最终由客户端 将收到的视图显示给用户。在上述过程中,视图管理器接收到用户请求结果后,视图管理器根据用户 请求结果生成了请求结果视图,即业务的执行结果图。同时视图管理器调用关键业务逻辑信息生成业务逻辑视图,即视图管理器调用内部插件,如WEB插 件或GUI插件,将关4走业务逻辑信息转化成业务逻辑;f见图。对于WEB应用, 视图管理器会生成页面形式的源代码链接;而对于GUI应用,视图管理器会生 成GUI图形界面形式的源代码链接。其中视图管理器使用何种插件生成何种形 式的业务逻辑视图取决于视图管理器初始化环境的结果,即使用的插件以及生 成的业务逻辑3见图的形式应和初始化环境时的应用类型相一致。其中,客户端将业务逻辑视图显示给用户后,对视图中业务逻辑的源代码 的提取可以有很多种方式,例如提供源程序的存放路径,然后通过搜索定位 找到对应的文件,或是提供一个WEB服务,允许以URL方式请求寻找源程序 并返回结果,再或是利用JAVA程序可以反编译的特性,直接反编译对应的 CLASS文件等等。图5为本发明中拦截器获取到的执行业务操作过程中的事件链及其在存储 单元中的存储状态示意图。由图5可直观看出拦截器获取到的业务操作过程中 的一系列类和方法的调用过程,存储单元按业务逻辑依次存储这些类和方法。 用户根据自己关心的内容对拦截器提前做好需要拦截内容的设置,即设置拦截 规则,因此上述类和方法也就是与拦截规则相关的关键业务逻辑信息。明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1. 一种获取业务逻辑的系统,其特征在于,该系统包括视图管理器、拦截器和存储单元,其中,所述视图管理器用于收到用户请求结果时调用存储单元中的关键业务逻辑信息,根据该关键业务逻辑信息生成业务逻辑视图;所述拦截器用于根据设置的拦截规则获取业务操作过程中的关键业务逻辑信息;所述存储单元用于存储所述关键业务逻辑信息。
2、 如权利要求1所述的系统,其特征在于,所述系统进一步包括业务执 行单元,用于接收用户请求,并将此用户请求按业务逻辑执行业务操作,向视 图管理器提供用户请求结果。
3、 如权利要求2所述的系统,其特征在于,所述系统进一步包括客户端,所述视图管理器进一步用于向所述客户端提供所述业务逻辑视图; 所述客户端用于发起关于业务的用户请求,并将该用户请求提供给视图管 理器,接收视图管理器返回的业务逻辑视图。
4、 如权利要求3所述的系统,其特征在于,所述视图管理器进一步用于向所述业务执行单元提供用户请求;或者, 所述视图管理器进一步用于向所述拦截器提供用户请求,所述拦截器进一 步用于向所述业务执行单元提供用户请求。
5、 如权利要求1至4任一所述的系统,其特征在于,所述存储单元包括 文件生成器和文件解析器,其中,所述文件生成器用于将所述关键业务逻辑信息生成特定格式的存储文件; 所述文件解析器用于将特定格式的存储文件解析为关键业务逻辑信息,并 向视图管理器提供该关键业务逻辑信息。
6、 一种获取业务逻辑的方法,其特征在于,该方法包括A、 在业务操作过程中,根据设置的拦截规则获取关键业务逻辑信息并进 行存储;B、 当业务操作执行完毕后,根据存储的关键业务逻辑信息生成业务逻辑 视图。
7、 如权利要求6所述的方法,其特征在于, 所述步骤B之前进一步包括确定用户请求的应用类型;步骤B中所述生成业务逻辑视图,包括生成对应于应用类型的业务逻辑 视图。
8、 如权利要求6所述的方法,其特征在于,步骤A中所述存储关键业务逻辑信息,包括将所述关键业务逻辑信息生 成特定格式的存储文件;所述步骤B之前进一步包括将所述特定格式的存储文件解析为关键业务 逻辑信息。
9、 如权利要求6所述的方法,其特征在于,步骤B中所述生成业务逻辑 视图,包括调用内部插件,由该内部插件将所述关^;业务逻辑信息转化成业 务逻辑视图。
10、 如权利要求6至9任一所述的方法,其特征在于,所述步骤B进一步 包括得到针对本次业务操作的用户请求生成的用户请求结果,根据该用户请 求结果生成请求结果^见图。
全文摘要
本发明公开了一种获取业务逻辑的方法及系统,能有效地解决现有技术中了解业务系统的操作时需要去查看文档和源代码的局限性和复杂性。本发明提供的方法中包括在业务操作过程中,拦截器获取关键业务逻辑信息,存储单元存储上述关键业务逻辑信息;当业务操作执行完毕后,用户请求结果返回至视图管理器;视图管理器调用已存储的关键业务逻辑信息,并将此信息追加到用户请求结果中生成请求结果视图和关键业务逻辑视图,最终将视图显示给用户。
文档编号G06F9/44GK101236490SQ20071000282
公开日2008年8月6日 申请日期2007年2月1日 优先权日2007年2月1日
发明者尤占涛, 立 程, 翔 赵 申请人:阿里巴巴公司