本发明专利技术涉及网络服务技术,尤其涉及在面向服务体系结构下从网络应用中自动生成网络服务的技术。本发明专利技术提供了一种用于生成网络服务的方法,包括:获取网络应用的用户输入信息;获取网络应用基于所述用户输入信息在运行时产生的调用栈信息;将所述用户输入信息与所述调用栈信息进行参数匹配;根据所述参数匹配的结果以及所述调用栈信息,从所述调用栈信息中选取方法作为应用编程接口API;以及利用所述应用编程接口API生成网络服务。
【技术实现步骤摘要】
本专利技术涉及网络服务技术,尤其涉及在面向服务体系结构下从网络应用中自动生成网络服务的技术。
技术介绍
随着面向服务体系结构SOA的迅速发展,人们对网络服务(Web krvice)的需求也日益增长。网络服务是一种面向服务的架构的技术,通过标准的网络协议提供服务,目的是保证不同平台的应用服务可以互操作。简单地讲,网络服务本质上就是一个能够通过网络进行调用的API (应用编程接口)。人们能够用编程的方法通过网络来调用这个网络服务。网络服务是基于已有的网络应用而生成的,并且网络服务仍然要被将来的网络应用所使用。我们把调用这个网络服务的网络应用叫做客户,也就是说,网络服务生成后,是网络应用在使用网络服务,而并非终端用户在直接使用网络服务。具体到企业应用领域,随着企业的发展,可能存在许多之前开发并部署的独立的网络应用,这些网络应用又被称作“遗留系统(Legacy System) ”。这些独立的遗留系统彼此之间没有联系,可以理解为彼此独立的网络应用(Web Application)。它们可以向企业的客户或者企业自身提供服务,例如人力资源管理系统、订单系统或供应链管理(SCM)系统等。 所有这些彼此独立的“遗留系统”都是在不同的时间由不同的软件服务提供商开发的。由于企业客户的需求不断增长,现存的这些“遗留系统”不再能满足当前市场的需求。因此企业必须开发新的系统以满足新的需求。但是为了降低开发过程中的成本,我们发现,如何将现存的“遗留系统”集成、整合起来并在新的系统中重用它们是一个亟待解决的问题。也就是说,需要基于网络应用服务器中已有的遗留系统(网络应用)或者遗留系统所提供的功能来生成网络服务(Web Service),从而使得将来新的系统能够通过API调用的方式调用这些网络服务。由于当时开发那些“遗留系统”的不同的软件服务提供商既没有预计到未来可能产生的需求,也没有提供可以由其它系统调用的应用编程接口 API,因此新开发的系统就无法直接调用或重用那些现存的“遗留系统”。我们要解决的问题的实质就在于如何从 “遗留系统”(网络应用)中找到合适的API,以生成网络服务供新的系统调用。目前存在一些从“遗留系统”(网络应用)生成网络服务的技术方案。根据一种现有技术中的解决方案,新系统的开发者首先必须阅读“遗留系统”的源代码或对“遗留系统”进行反编译以获取其源代码,然后在分析、理解遗留系统的源代码的基础上选择适用的 API,接下来对所选择的API进行封装并附加一些新的开发工作以生成网络服务。该解决方案存在以下问题(1)对于开发人员而言,阅读并理解“遗留系统”的源代码非常费力并且耗时,尤其是当那些源代码并非当初由其本人编写的情况下更是如此;( 对于有些“遗留系统”而言,源代码是无法获得的。
技术实现思路
考虑到上述存在的问题,本专利技术的目的之一在于提供一种生成网络服务的方法,通过该方法无需获得现存的网络应用的源代码就可以识别出网络应用的适用的API以生成网络服务。本专利技术的又一目的在于提供一种生成网络服务的方法,通过该方法无需人工阅读大量的网络应用的源代码就可以自动识别出网络应用的API,从而节省人力和耗时。根据本专利技术的一个方面,提供了一种用于用于基于网络应用而生成网络服务的方法,包括获取网络应用的用户输入信息;获取网络应用基于所述用户输入信息在运行时产生的调用栈信息;将所述用户输入信息与所述调用栈信息进行参数匹配;根据所述参数匹配的结果以及所述调用栈信息,从所述调用栈信息中选取方法作为应用编程接口 API ; 以及利用所述应用编程接口 API生成网络服务。根据本专利技术的另一方面,提供了一种用于基于网络应用而生成网络服务的系统, 包括输入信息获取装置,用于获取网络应用的用户输入信息;调用栈信息获取装置,用于获取网络应用基于所述用户输入信息在运行时产生的调用栈信息;参数匹配装置,用于将所述用户输入信息与所述调用栈信息进行参数匹配;方法选取装置,用于根据所述参数匹配的结果以及所述调用栈信息,从所述调用栈信息中选取方法作为应用编程接口 API ;以及网络服务生成装置,用于利用所述应用编程接口 API生成网络服务。通过本专利技术的方法和系统,可以巧妙地利用调用栈的信息而自动地识别出适用的 API,从而避免了通过人工阅读源代码的方式而花费大量的人力、精力寻找网络应用或者网络应用的功能的API,节省了生成网络服务的时间、提高了生成网络服务的效率、提高了基于“遗留系统”而生成网络服务从而节约新系统开发成本的效率,并且在生成网络服务的过程中无需获得“遗留系统”(网络应用)的源代码。附图说明通过对结合附图所示出的实施方式进行详细说明,本专利技术的上述以及其他特征将更加明显,本专利技术附图中相同的标号表示相同或相似的部件。在附图中,图1示出了根据本专利技术一个实施例的用于生成网络服务的方法的流程图;图2示出了根据本专利技术的另一实施例的用于生成网络服务的方法的流程图;图3A至3D示出了一个根据本专利技术的实施例基于网络应用的功能而生成网络服务的具体示例。具体地图3A示出了网络应用的“创建新用户”功能的用户输入信息界面,图 3B示出了 “创建新用户”功能的基于用户的8个输入值的调用栈信息,图3C示出了参数匹配的大致过程,图3D示出了将该选定的方法作为“创建新用户”这个网络应用的功能的API 从而生成的网络服务(Web Service)。图4示出了根据本专利技术一个实施例的用于生成网络服务的系统的框图。 具体实施例方式在下文中,将参考附图通过实施方式对本专利技术提供的用于确定要被物化的节点的方法和系统进行详细地描述。图1示出了根据本专利技术一个实施例的用于基于网络应用而生成网络服务的方法的流程图。图1所示的方法从步骤101开始。在步骤101中,获取网络应用的用户输入信息。根据本专利技术的一个实施例,网络应用是现存的、已经部署在网络应用服务器上的“遗留系统”。根据本专利技术的一个实施例,网络应用的用户输入信息是网络应用的用户在使用某个网络应用时在该网络应用的用户界面输入的相关参数信息。根据本专利技术的另一个实施例, 网络应用的用户输入信息是网络应用的用户在使用某网络应用的某个特定功能时在该特定功能所提供的用户界面输入的相关参数信息。例如在一个“机票预定”网络应用的用户登录界面中,用户输入的帐户名、密码、出发地、目的地、航空公司等参数值即为网络应用的用户输入信息。基于网络应用而生成网络服务既可以指为一个网络应用生成一个网络服务 API,也可以指为一个网络应用的一个功能生成一个网络服务API,从而可能为同一个网络应用生成多个网络服务API (该网络应用包含多个功能时)。还需要指出的是,“用户输入信息”的“用户”既可以是实际的网络应用的用户,也可以是为了开发新的系统而生成网络服务的软件开发人员。在步骤101中获取网络应用的用户输入信息的具体“获取”方式可以有多种。根据本专利技术一个实施例,可以在后台截获用户输入相关参数信息时输入值。根据本专利技术的另一实施例,可以通过记录用户的键盘输入操作来确定用户输入信息的具体内容。接下来进行至步骤102,在步骤102中获取网络应用基于所述用户输入信息在运行时产生的调用栈(call stack)信息。调用栈是表示了程序在运行过程中方法(函数) 的相互间的调用关系的信息。本领域技本文档来自技高网...
【技术保护点】
1.一种用于基于网络应用而生成网络服务的方法,包括:获取网络应用的用户输入信息;获取网络应用基于所述用户输入信息在运行时产生的调用栈信息;将所述用户输入信息与所述调用栈信息进行参数匹配;根据所述参数匹配的结果以及所述调用栈信息,从所述调用栈信息中选取方法作为应用编程接口API;以及利用所述应用编程接口API生成网络服务。
【技术特征摘要】
1.一种用于基于网络应用而生成网络服务的方法,包括获取网络应用的用户输入信息;获取网络应用基于所述用户输入信息在运行时产生的调用栈信息;将所述用户输入信息与所述调用栈信息进行参数匹配;根据所述参数匹配的结果以及所述调用栈信息,从所述调用栈信息中选取方法作为应用编程接口 API;以及利用所述应用编程接口 API生成网络服务。2.如权利要求1所述的方法,其中将所述用户输入信息与所述调用栈信息进行参数匹配包括将所述用户输入信息中对特定输入域的输入值与所述调用栈信息中的方法的参数值进行比较。3.如权利要求2所述的方法,其中将所述用户输入信息与所述调用栈信息进行参数匹配进一步包括如果所述输入值与所述参数值相同,则确定所述输入值所对应的用户输入信息的参数与所述调用栈信息中的方法相匹配。4.如权利要求2所述的方法,其中将所述用户输入信息与所述调用栈信息进行参数匹配进一步包括如果所述输入值与所述参数值不同,则根据预定的相似度阈值确定所述输入值所对应的用户输入信息的参数是否与所述调用栈信息中的方法相匹配。5.如权利要求1-4任一所述的方法,其中根据所述参数匹配的结果,从所述调用栈信息中选取方法作为应用编程接口 API包括根据所述参数匹配的结果,从所述调用栈信息中选取覆盖了所述用户输入信息的所有参数的方法作为应用编程接口 API。6.如权利要求5所述的方法,如果所述调用栈信息中存在多个覆盖了所述用户输入信息的所有参数的方法,则根据所述参数匹配的结果,从所述调用栈信息中选取覆盖了所述用户输入信息的所有参数的方法作为应用编程接口 API是依据下列标准之一进行的从所述多个覆盖了所述用户输入信息的所有参数的方法中选取位于所述调用栈信息的最底层的方法;从所述多个覆盖了所述用户输入信息的所有参数的方法中选取位于所述调用栈信息的最顶层的方法;或者提供所述多个覆盖了所述用户输入信息的所有参数的方法作为候选方法。7.如权利要求1-6任一所述的方法,如果调用栈信息中不存在覆盖了所述用户输入信息的所有参数的方法,其中根据所述参数匹配的结果,从所述调用栈信息中选取方法作为应用编程接口 API是依据下列标准之一进行的从所述调用栈信息中选取覆盖率最高的方法作为应用编程接口 API ;或者将所有覆盖了所述用户输入信息的部分参数的方法按照覆盖率高低排序作为候选方法。8.如权利要求1-7任一所述的方法,其中所获取的网络应用的用户输入信息是指针对所述网络应用的特定功能的用户输入信息。9.一种用于基于网络应用而生成网络服务...
【专利技术属性】
技术研发人员:沈星星,唐闯,齐尧,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。