CN100547545C - 用于网络边缘计算的应用拆分的方法和系统 - Google Patents

用于网络边缘计算的应用拆分的方法和系统 Download PDF

Info

Publication number
CN100547545C
CN100547545C CNB2005800234709A CN200580023470A CN100547545C CN 100547545 C CN100547545 C CN 100547545C CN B2005800234709 A CNB2005800234709 A CN B2005800234709A CN 200580023470 A CN200580023470 A CN 200580023470A CN 100547545 C CN100547545 C CN 100547545C
Authority
CN
China
Prior art keywords
application
splits
class
type
point
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.)
Active
Application number
CNB2005800234709A
Other languages
English (en)
Other versions
CN1985240A (zh
Inventor
A·波洛佐夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1985240A publication Critical patent/CN1985240A/zh
Application granted granted Critical
Publication of CN100547545C publication Critical patent/CN100547545C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Abstract

用于网络边缘计算的应用拆分包括:识别应用拆分点;识别针对所述应用拆分点的拆分类型;根据所述拆分类型将所述应用拆分成子部件;以及将子部件移动到边缘网络。识别应用拆分点可包括识别调用EJB的应用的类。识别应用拆分点可包括识别更新企业数据库的应用的类。识别应用拆分点可包括识别调用JCA功能的应用的类。识别针对所述应用拆分点的拆分类型可包括识别针对所述应用拆分点的思洛拆分类型。识别针对所述应用拆分点的拆分类型可包括识别针对所述应用拆分点的EJB拆分类型。

Description

用于网络边缘计算的应用拆分的方法和系统
技术领域
本发明的领域是数据处理,或者更具体地是用于网络边缘计算的应用拆分的方法、系统和产品。
背景技术
因特网和万维网主要以客户端-服务器模型运转用于数据通信。被传输的内容越来越复杂,并且客户端越来越多样化。高效地将复杂、多变的内容递送到越来越多样化的客户端设备正变得越来越困难。所述增长的需求导致越来越多用于处理每个新类型的数据的新设备、新服务器、新客户端。
在概念性客户端-服务器模型中,所述客户端从所述服务器请求信息,并且所述服务器以所述客户端所请求的格式发回信息。由于需要仅将注意力集中到在“终端”的处理,所以该内容递送系统曾经被认为是理想的。然而,现实已要求更多,并且响应于此,新的服务已出现。在所述客户端附近和边缘递送点的高速缓存使运转更快,并且减轻其网络负载。网关(例如用于无线设备的那些)帮助多组客户端进行连接。内容递送网络(CDN)更好地组织了用于所述客户端的因特网内容的庞大阵列。所有这些服务已相互独立地增长,然而,其使得扩展和新服务对于销售商特定和难以管理。随着多样化客户端设备的演进,内容提供商被迫以针对每种设备、个人数字助理(PDA)、个人计算机(PC)、蜂窝式电话、膝上型计算机、电子书阅读器和其它设备的每种必要格式提供数据。服务器被迫处理可用格式和所述客户端可以接受的格式之间的区别。
网络边缘体系结构提供一种用于解决由于“网络内”服务而已增长的复杂度的方式。术语“网络边缘”通常用于描述因特网中的实体的物理或网络边界。例如,网络边缘可以是企业网络的内联网或者因特网服务提供商(“ISP”)的接入点的集合。“网络边缘”可以还指内容递送的区分点,例如国家的边界,其中,在该点将数据翻译成合适的语言或格式是有益的。所述网络边缘是内容递送路径上内容处理可能发生的点。
所述网络边缘体系结构是用于执行内容递送过程的一部分的技术的聚集,其中,所述内容递送过程用于在客户端和服务器之间传输数据。其体系结构是开发用于执行内容递送功能的软件和硬件的统一方案。网络边缘体系结构允许例如数据代码转换的操作。内容提供商可以不管客户端设备的类型而以单一、标准格式提供数据,并且网络边缘体系结构使得提供适合所述设备的用于呈现的格式更容易。例如,内容提供商可以不管可请求该内容的客户端设备的类型而以单一格式存储内容,并且所述网络边缘技术可以针对所述接收设备重新格式化所述内容。运行在边缘服务器或边缘网络上的基于规则的服务基于针对各种设备的标准化协议来进行适当的数据转换。
考虑电影递送的例子。通过使用网络边缘技术,消费者以适合于其设备和其个人品味的格式观看电影。内容提供商不再必须担心将观看电影的设备,因为数据转换的负担从内容提供商和服务器处移除。作为代替,数据转换被合并到所述网络边缘。
在传统客户端/服务器体系结构中,用户信息和客户端设备接口必须在所述客户端设备或所述内容服务器上进行管理。即,所述用户被要求重新输入数据,并且所述服务器被要求处理客户端多样性问题,而不论所述客户端设备是蜂窝式电话、PDA、膝上型计算机、个人计算机等。
从提供商到客户端的内容传输和重新组成以几个步骤发生。客户端的请求根据所述服务器中保留的已知信息加上从所述客户端输入的另外所需的数据进行修正,即个性化。例如,所述客户端可能正在使用蜂窝式电话来接入万维网或电子邮件服务。这要求所述服务器发回仅适合该蜂窝式电话接口的内容,并且通过语音菜单或键盘菜单进行处理以获得用户特性。在所述网络边缘体系结构中,边缘服务器修正所述客户端的请求以指定所述合适的蜂窝式电话接口。然后,所述边缘服务器与内容服务器通信以填入用户数据,由此简化了用户交互。然后,所述边缘服务器修正去往所述内容服务器的请求,用以获得随后被所述边缘服务器重新组合以适合所述客户端设备的数据。所述合适的内容然后以适合所述客户端设备的方式被下载到所述客户端设备中。
所述网络边缘服务器驻留于所述客户端和所述内容服务器之间,并且用作同时所述客户和所述内容提供商的代理。当所述客户端发出对于内容的请求时,网络边缘服务器典型地基于一组预定义的规则根据所述客户的信息修正所述请求。所述边缘服务器然后将所述修正的请求发送到所述内容服务器,其中,所述发送可能具有如之前所指出的到所述内容服务器的某种交换。所述内容服务器被解除了修正所述请求和重新组合所述内容的负担。所需要的内容的任意转换将在使用标准协议的网络边缘服务器处发生。通过该方式,网络边缘体系结构简化了所述内容提供商所要求的用于解决不同设备所需要的不同格式的信息。
网络边缘体系结构表示从传统客户端-服务器模型向更高效的客户端-边缘-服务器模型的不断增长的转移。当内容级服务在所述网络边缘被执行时,内容提供商可以提供个性化的、可扩展的服务。通过使用网络边缘体系结构,所述边缘起到当前被强制在客户端和服务器二者上的作用。在传统的客户端-服务器体系结构中被完全安装在内容服务器或应用服务器上的应用软件现在可以被部署到所述边缘网络。另外,在传统客户端-服务器体系结构中被完全安装在内容服务器或应用服务器上的应用软件现在可以在所述内容服务器和所述边缘之间被拆分,并且在许多情况下必须被拆分。使用自动化工具来识别应用应当怎样被准备部署到所述边缘以及在必要时怎样拆分所述应用将是有益的。
发明内容
用于网络边缘计算的应用拆分的方法、系统和计算机程序产品被提供。实施例包括:识别应用拆分点;识别针对所述应用拆分点的拆分类型;根据所述拆分类型将所述应用拆分成子部件;以及将子部件移动到边缘网络。许多实施例包括确定考虑到其管理的数据的情况下应用太大而不适合所述边缘网络。
在典型实施例中,拆分所述应用包括取决于用户偏好拆分所述应用。在许多实施例中,识别应用拆分点包括识别调用EJB的应用的类。在许多实施例中,识别应用拆分点包括识别更新企业数据库的应用的类。在许多实施例中,识别应用拆分点包括识别调用JCA功能的应用的类。
在许多实施例中,识别针对所述应用拆分点的拆分类型包括识别针对所述应用拆分点的思洛(silo)拆分类型。在典型实施例中,识别针对所述应用拆分点的拆分类型包括识别针对所述应用拆分点的EJB拆分类型。在许多实施例中,识别针对所述应用拆分点的拆分类型包括识别针对所述应用拆分点的正面(facade)拆分类型。
在一些实施例中,所述应用拆分点包括调用EJB的调用分级中的类;并且所述拆分类型包括EJB拆分类型。在一些所述实施例中,根据所述拆分类型将所述应用拆分成子部件包括将所述调用分级中的类拆分成客户端RMI模块和服务器RMI模块;以及将子部件移动到边缘网络包括将所述客户端RMI模块移动到所述边缘网络。
在一些实施例中,所述应用拆分点包括调用EJB的调用分级中的类,并且所述拆分类型包括EJB拆分类型。在一些所述实施例中,根据所述拆分类型将所述应用拆分成子部件包括将所述调用分级中的类拆分成客户端web服务模块和服务器web服务模块;以及将子部件移动到边缘网络包括将所述客户端web服务模块移动到所述边缘网络。
在一些实施例中,所述应用拆分点包括更新企业数据库的调用分级中的类,并且所述拆分类型包括思洛拆分类型。在一些所述实施例中,根据所述拆分类型将所述应用拆分成子部件包括将所述调用分级中的所有类作为一个子部件聚合到思洛模块中;以及,将子部件移动到边缘网络包括将所述思洛模块移动到所述边缘网络。
在一些实施例中,所述应用拆分点包括调用EJB和调用HTTP功能的调用分级中的类,并且所述拆分类型包括思洛拆分类型。在一些所述实施例中,根据所述拆分类型将所述应用拆分成子部件包括将所述调用分级中的所有类作为一个子部件聚合到思洛模块中;以及将子部件移动到边缘网络包括将所述思洛模块移动到所述边缘网络。
在一些实施例中,所述应用拆分点包括调用JCA功能和调用HTTP功能的调用分级中的类,并且所述拆分类型包括思洛拆分类型。在一些所述实施例中,根据所述拆分类型将所述应用拆分成子部件包括将所述调用分级中的所有类作为一个子部件聚合到思洛模块中;以及将子部件移动到边缘网络包括将所述思洛模块移动到所述边缘网络。
在一些实施例中,所述应用拆分点包括被不止一次列为潜在拆分点的调用分级中的类,并且所述拆分类型包括正面拆分类型。在一些所述实施例中,根据所述拆分类型将所述应用拆分成子部件包括将所述调用分级中的类拆分成客户端web服务模块和服务器web服务模块;以及将子部件移动到边缘网络包括将所述客户端web服务模块移动到所述边缘网络。
从本发明的第一方面来看,其提供一种用于网络边缘计算的应用拆分的方法,所述方法包括:识别应用拆分点;识别针对所述应用拆分点的拆分类型;根据所述拆分类型将所述应用拆分成子部件;以及将子部件移动到边缘网络。
优选地,本发明提供一种方法,其中,识别应用拆分点还包括识别调用EJB的应用的类。
优选地,本发明提供一种方法,其中,识别应用拆分点还包括识别更新企业数据库的应用的类。
优选地,本发明提供一种方法,其中,识别应用拆分点还包括识别调用JCA功能的应用的类。
优选地,本发明提供一种方法,其中,识别针对所述应用拆分点的拆分类型还包括识别针对所述应用拆分点的思洛拆分类型。
优选地,本发明提供一种方法,其中,识别针对所述应用拆分点的拆分类型还包括识别针对所述应用拆分点的EJB拆分类型。
优选地,本发明提供一种方法,其中,识别针对所述应用拆分点的拆分类型还包括识别针对所述应用拆分点的正面拆分类型。
优选地,本发明提供一种方法,其中:所述应用拆分点包括调用EJB的调用分级中的类;所述拆分类型包括EJB拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的类拆分成客户端RMI模块和服务器RMI模块;以及将子部件移动到边缘网络还包括将所述客户端RMI模块移动到所述边缘网络。
优选地,本发明提供一种方法,其中:所述应用拆分点包括调用EJB的调用分级中的类;所述拆分类型包括EJB拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的类拆分成客户端web服务模块和服务器web服务模块;以及将子部件移动到边缘网络还包括将所述客户端web服务模块移动到所述边缘网络。
优选地,本发明提供一种方法,其中:所述应用拆分点包括更新企业数据库的调用分级中的类;所述拆分类型包括思洛拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的所有类作为一个子部件聚合成思洛模块;以及将子部件移动到边缘网络还包括将所述思洛模块移动到所述边缘网络。
优选地,本发明提供一种方法,其中:所述应用拆分点包括调用EJB和调用HTTP功能的调用分级中的类;所述拆分类型包括思洛拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的所有类作为一个子部件聚合成思洛模块;以及将子部件移动到边缘网络还包括将所述思洛模块移动到所述边缘网络。
优选地,本发明提供一种方法,其中:所述应用拆分点包括调用JCA功能和调用HTTP功能的调用分级中的类;所述拆分类型包括思洛拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的所有类作为一个子部件汇聚成思洛模块;以及将子部件移动到边缘网络还包括将所述思洛模块移动到所述边缘网络。
优选地,本发明提供了一种方法,其中:所述应用拆分点包括被不止一次列为潜在拆分点的调用分级中的类;所述拆分类型包括正面拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的类拆分成客户端web服务模块和服务器web服务模块;以及将子部件移动到边缘网络还包括将所述客户端web服务模块移动到所述边缘网络。
从本发明的第二方面来看,其提供了一种用于网络边缘计算的应用拆分的系统,所述系统包括:用于识别应用拆分点的装置;用于识别针对所述应用拆分点的拆分类型的装置;用于根据所述拆分类型将所述应用拆分成子部件的装置;以及用于将子部件移动到边缘网络的装置。
优选地,本发明提供一种系统,其中,用于识别应用拆分点的装置还包括用于识别调用EJB的应用的类的装置。
优选地,本发明提供一种系统,其中,用于识别应用拆分点的装置还包括用于识别更新企业数据库的应用的类的装置。
优选地,本发明提供一种系统,其中,用于识别应用拆分点的装置还包括用于识别调用JCA功能的应用的类的装置。
优选地,本发明提供一种系统,其中,用于识别针对所述应用拆分点的拆分类型的装置还包括用于识别针对所述应用拆分点的思洛拆分类型的装置。
优选地,本发明提供一种系统,其中,用于识别针对所述应用拆分点的拆分类型的装置还包括用于识别针对所述应用拆分点的EJB拆分类型的装置。
优选地,本发明提供一种系统,其中,用于识别针对所述应用拆分点的拆分类型的装置还包括用于识别针对所述应用拆分点的正面拆分类型的装置。
优选地,本发明提供一种系统,其中:所述应用拆分点包括调用EJB的调用分级中的类;所述拆分类型包括EJB拆分类型;用于根据所述拆分类型将所述应用拆分成子部件的装置还包括用于将所述调用分级中的类拆分成客户端RMI模块和服务器RMI模块的装置;以及用于将子部件移动到边缘网络的类还包括将所述客户端RMI模块移动到所述边缘网络的装置。
从本发明的第三方面来看,其提供了一种可载入到数字计算机的内部存储器中的计算机程序产品,其中,所述计算机程序产品包括当所述产品运行在计算机上时用于执行以实现如上面所描述的本发明的软件代码部分。
附图说明
下面仅借助于例子并参考附图详细描述了本发明的实施例,在附图中:
图1阐明了根据本发明的实施例的用于网络边缘计算的应用拆分的示例性系统的系统图;
图2阐明了示出示例性软件开发系统的框图;
图3阐明了示出用于网络边缘计算的应用拆分的示例性方法的流程图;
图4阐明了示出用于识别应用拆分点的示例性方法的流程图;
图5阐明了示出用于识别针对应用拆分点的拆分类型的示例性方法的流程图;
图6阐明了示出针对EJB拆分类型的用于网络边缘计算的应用拆分的示例性方法的流程图;
图7阐明了示出针对EJB拆分类型的用于网络边缘计算的应用拆分的另一示例性方法的流程图;
图8阐明了示出针对思洛(silo)拆分类型的用于网络边缘的应用拆分的示例性方法的流程图;
图9阐明了示出针对思洛拆分类型的用于网络边缘计算的应用拆分的另一示例性方法的流程图;
图10阐明了示出针对思洛拆分类型的用于网络边缘计算的应用拆分的另一示例性方法的流程图;以及
图11阐明了示出正面拆分类型的用于网络边缘的应用拆分的示例性方法的流程图。
具体实施方式
本发明在本说明书中很大程度上是就用于网络边缘计算的应用拆分的方法这一方面进行描述。然而,本领域的技术人员将认识到,包括用于根据所述公开的方法运转的合适编程装置的任意计算机系统也落在本发明的范围内。合适的编程装置包括用于指挥计算机系统执行本发明的方法的步骤的任意装置,其包括例如:包括耦合到计算机存储器的处理单元和算术-逻辑电路的系统,其中,所述系统具有在计算机存储器中进行存储的能力,所述计算机存储器包括被配置为存储数据和程序指令的电子电路,其中,所述程序指令是用于由处理单元执行的、被编程的本发明的方法的步骤。
本发明还可以体现为一种计算机程序产品,例如磁盘或其它记录媒体,其用于与任意合适的数据处理系统一起使用。计算机程序产品的实施例可以通过使用用于机器可读信息的任意记录媒体被实现,其中,所述记录媒体包括磁性媒体、光学媒体或其它合适的媒体。本领域的技术人员将立即认识到,具有合适的编程装置的任意计算机系统将能够执行如体现为程序产品的本发明的方法的步骤。本领域的技术人员将立即认识到,尽管本说明书中所描述的示例性实施例的多数是面向被安装在计算机硬件上并在其上执行的软件,然而,作为固件或作为硬件被实现的可选实施例也理当在本发明的范围内。
用于网络边缘计算的应用拆分
从图1开始参考附图对用于网络边缘计算的应用拆分的方法、系统和产品进行描述。图1阐明了根据本发明的实施例的用于网络边缘计算的应用拆分的示例性系统的系统框图。图1的系统包括通过广域网(101)连接到被配置作为边缘网络(106)的几个边缘服务器的几个示例性客户端设备(126)。所述边缘服务器又通过局域网(103)连接到代表企业服务器(124)的几个应用和内容服务器。
图1的例子中的所述客户端(126)包括:通过有线连接(120)连接到广域网(101)的个人计算机(108)、通过无线连接(114)连接到广域网(101)的无线的、使能网络的个人数字助理(“PDA”)(112),以及通过无线连接(116)连接到广域网(101)的移动电话(110)。
图1的所述系统包括:正在开发系统(129)上被开发的用于拆分成两个模块的应用(130)、用于安装到所述边缘网络(106)上的边缘模块134和用于安装到所述企业网络(124)上的企业模块(132)。开发系统(129)是这样的计算机,所述计算机具有例如JavaTM软件开发工具包(“SDK”)的软件开发环境,并且还具有分析模块和拆分器(128),其一般通过识别应用拆分点、识别针对所述应用拆分点的拆分类型、根据所述拆分类型将应用拆分成子部件以及将某些子部件移动到边缘网络来运转。
为进一步说明,图2阐明了示出这样的示例性软件开发系统的框图,所述系统一般通过识别应用拆分点、识别针对所述应用拆分点的拆分类型、根据所述拆分类型将应用拆分成子部件以及将某些子部件移动到边缘网络来运转。图2的所述示例性系统包括JDBCTM分析模块(202),该模块一般运转为将应用拆分点识别为调用Java数据库连接(“JDBC”)功能以更新企业数据库的类。对JDBC功能的所述调用可以例如表示为对被命名为‘executeUpdate’或‘executeInsert’的Java成员方法的调用。
图2的所述示例性系统还包括EJBTM分析模块(204),该模块一般运转为将应用拆分点识别为调用企业Java柄(“EJB”)的类。调用EJB的类可以被识别为例如使用对EJB Properties()构造器、InitialContext()构造器等的调用以构造会话EJB的类。
图2的示例性系统还包括JCATM分析模块(206),该模块一般运转为将应用拆分点识别为调用Java构造器体系结构(“JCA”)功能的类。调用JCA功能的类可以被识别为例如使用对JCA ConnectionFactory()、createInteraction()方法、Interaction.execute()方法等的调用的类。
在图2的例子中,分析模块(202、204和206)将拆分点识别为潜在的拆分点的列表。针对每个如此识别的拆分点,拆分类型分析模块(208)识别出拆分类型。所述拆分类型分析模块一般运转为针对作为调用EJB功能的类的拆分点识别EJB拆分类型。所述拆分类型分析模块运转为针对作为通过例如JDBC调用来更新企业数据库的类的拆分点识别思洛(Silo)拆分类型。所述拆分类型分析模块运转为针对作为产生HTTP调用的类的拆分点识别思洛拆分类型。所述拆分类型分析模块运转为针对作为被所述分析模块(202、204和206)不止一次识别为潜在拆分点的类的拆分点识别正面(facade)拆分类型。
图2的示例性系统包括拆分器(210),其是一般通过在所识别的拆分点根据针对每个拆分点的拆分类型拆分所述应用来实现创建所述应用(130)的子部件的工作的软件模块。对于EJB拆分类型,拆分器(210)可以将应用(130)拆分成客户端RMITM(“Java远程方法调用”)模块和服务器RMI模块,将所述客户端RMI模块移动到边缘网络作为EJB边缘模块(216),并且将所述服务器RMI模块移动到企业网络作为EJB企业模块(218)。可选地,对于EJB拆分类型,拆分器(210)可以将应用(130)拆分成客户端web服务模块和服务器web服务模块,将所述客户端web服务模块移动到边缘网络作为EJB边缘模块(216),并且将所述服务器web服务模块移动到企业网络作为EJB企业模块(218)。类似地,对于正面拆分类型,拆分器(210)可以将应用(130)拆分成客户端web服务模块和服务器web服务模块,将所述客户端web服务模块移动到边缘网络作为正面边缘模块(212),并且将所述服务器web服务模块移动到企业网络作为正面企业模块(214)。对于所述思洛拆分类型,拆分器(210)可以将所述调用分级中的所有类作为一个子部件汇聚到思洛模块(220)中。所述拆分器(220)可以将所述思洛模块(220)移动到边缘网络或移动到企业网络。
为进一步说明,图3阐明了示出用于网络边缘计算的应用拆分的示例性方法的流程图,其中,所述方法包括识别(302)应用拆分点(310)。图4阐明了示出用于识别应用拆分点的示例性方法的流程图。在图4的例子中,识别应用拆分点通过识别(402)调用EJB的应用的类来实现。如上面所指出的,调用EJB的类可以通过其对EJB成员方法的使用被识别,其中,所述对EJB成员方法的使用例如是对EJB Properties()构造器、InitialContext()构造器等的调用。在图4的所述方法中,识别应用拆分点还可以通过识别(404)通过例如对例如‘executeUpdate’或‘executeInsert’的JDBC方法的调用来更新企业数据库的应用的类来实现。在图4的所述方法中,识别应用拆分点可以通过识别(405)调用JCA功能的应用的类来实现。调用JCA功能的类可以被识别为例如使用对JCAConnectionFactory()、createInteraction()方法、Interaction.execute()方法等的调用的类。
再次参考图3:图3的所述方法还包括识别(304)针对所述应用拆分点的拆分类型(312)。图5阐明了示出用于识别针对应用拆分点的拆分类型的示例性方法的流程图。在图5的所述例子中,识别针对所述应用拆分点的拆分类型包括识别针对所述应用拆分点的思洛拆分类型(504)。在图5的所述例子中,识别针对所述应用拆分点的思洛拆分类型(504)可以通过从潜在拆分点(406)的列表和所述应用(130)中识别调用HTTP功能的所述应用中的类并且记录(506)所述被识别的类的调用分级来实现。HTTP功能的例子包括HTTPRequest类、HTTPResponse类和HTTPSession类中的Java成员方法。
在图5的所述例子中,识别思洛拆分类型还可以通过从潜在拆分点(406)的列表和所述应用(130)中识别更新企业数据库的类来实现。更新企业数据库的类可以例如通过对例如‘executeUpdate’和‘executeInsert’的JDBC成员方法的调用被识别。在图5的所述方法中,识别针对所述应用拆分点的拆分类型包括识别(508)针对所述应用拆分点的EJB拆分类型(510)。在图5的所述方法中,识别EJB拆分类型可以通过从潜在拆分点(406)的列表和从所述应用(130)源代码中识别(508)调用EJB的类来实现,其中,所述调用EJB的类例如由对EJB Properties()构造器、InitialContext()构造器等的调用来指示。
在图5的所述方法中,识别针对所述应用拆分点的拆分类型包括识别针对所述应用拆分点的正面拆分类型(514)。在图5的所述方法中,识别针对所述应用拆分点的正面拆分类型(514)可以通过从潜在拆分点的列表中识别(512)被不止一次列为潜在拆分点的类来实现。
图5的所述方法还包括将所述潜在拆分点列表上的所有剩余未分配的类分配(518)到所述思洛拆分类型(504)。即,在贯穿被列为潜在拆分点的类中扫描例如图2中标号(208)处所示的拆分类型分析模块的过程中,将所述拆分类型‘思洛’分配给还没被识别为EJB拆分类型或正面拆分类型的每个拆分点。
根据本发明的一些实施例实现了所有三种拆分:思洛拆分、正面拆分和EJB拆分。在所述实施例中,调用HTTP功能或更新企业数据部并且还调用EJB或被不止一次列为潜在拆分点的拆分点可以被归为思洛拆分类型和EJB拆分类型或正面拆分类型。即,一个拆分点可以被分配多于一个拆分类型。为避免所述拆分类型之间的冲突,所述实施例可以有利地允许每个拆分点仅一个拆分类型,其通过从所述思洛拆分类型(504)中删除(516)还被识别为EJB拆分类型(510)或正面拆分类型(514)的任意拆分点来实现。
再次参考图3:图3的所述方法还包括根据所述拆分类型将所述应用拆分(306)成子部件(314)以及将子部件移动(308)到边缘网络(106)。对于EJB拆分类型,图3的所述方法包括将所述应用(130)拆分成客户端RMITM(“Java远程方法调用”)模块和服务器RMI模块,以及将所述客户端RMI模块移动到边缘网络和将所述服务器RMI模块移动到企业网络。可选地,对于所述EJB拆分类型,图3的所述方法包括将所述应用(130)拆分成客户端web服务模块和服务器web服务模块、将所述客户端web服务模块移动到边缘网络以及将所述服务器web服务模块移动到企业网络。类似地,对于正面拆分类型,图3的所述方法包括将所述应用(130)拆分成客户端web服务模块和服务器web服务模块、将所述客户端web服务模块移动到边缘网络以及将所述服务器web服务模块移动到企业网络。对于所述思洛拆分类型,图3的所述方法包括将所述调用分级中的所有类作为一个子部件聚合到思洛模块中,以及将所述思洛模块移动到边缘网络或企业网络。
在图3的所述方法中,拆分(306)所述应用包括取决于用户偏好(303)拆分所述应用。所述用户偏好的例子包括:
·不拆分-如果整个应用及其数据库将适合所述边缘网络
·仅按照思洛拆分类型识别和拆分
·仅按照正面拆分类型识别和拆分
·仅按照EJB拆分类型识别和拆分
·识别所有拆分类型,但仅按照思洛拆分
·识别所有拆分类型,但仅按照正面拆分
·识别所有拆分类型,但仅按照EJB拆分
·识别所有拆分类型,并且按照优先权拆分:思洛/正面/EJB
所述第一示例性用户偏好详述为“不拆分-如果整个应用及其数据库将适合所述边缘网络”。在如果所述整个应用及其数据库将适合所述边缘网络的所述例子中,所述应用不被拆分,并且所述整个应用被移动到所述边缘网络。图3的所述方法因此还包括确定考虑到其管理的数据的情况下所述应用是否太大而不适合所述边缘网络。确定考虑到其管理的数据的情况下所述应用是否太大而不适合所述边缘网络的一种方法通过比较边缘网络的可用数据存储容量和所述应用的数据存储需求以及由所述应用管理的数据库中的数据来实现。
上面列出的所述用户偏好(“识别所有拆分类型,并且按照优先权拆分:思洛/正面/EJB”)是指:如果多于一个拆分类型出现,则所述应用取决于出现的拆分类型的优先权被拆分,在此情况下,思洛拆分类型优于正面拆分类型,并且正面拆分类型优于EJB拆分类型。即,如果所有拆分类型都出现,则仅按照思洛拆分。如果仅正面和EJB拆分类型出现,则仅按照正面拆分。如果仅EJB拆分类型出现,则按照EJB拆分。
根据所述拆分类型将所述应用拆分(306)成子部件(314)还有利地包括对将被包括在子部件中的每个类是可串行化的检验(未示出)。多数Java类是可串行化的——除非,例如,成员方法例如在其调用参数中采用了例如字符或整数的本地数据类型。检验子部件中的每个类是可串行化因此可以通过扫描对本地数据类型的引用的应用源代码、报告对所述本地数据类型的发现以及将其转换成Java类和对Java对象的引用来实现。
另外,根据所述拆分类型将所述应用拆分(306)成子部件(314)还可以有利地包括胶合插入(glue insertion)。即,将被移动到边缘网络的子部件可以包括将跨多个请求/响应交换而被有状态地维护的数据。所述有状态数据可以在例如Java HTTPSession对象中被维护。当应用功能在所述边缘网络和所述企业网络之间拆分时,所述有状态数据可以有益地同时在所述边缘服务器和所述企业服务器上被维护。用于从边缘模块向相应的企业模块传送所述有状态数据的软件被称为“胶合(glue)”。在本发明的典型实施例中,根据所述拆分类型将所述应用拆分(306)成子部件(314)还有利地包括:例如,检验例如包含HTTPSession对象或对HTTPSession对象的引用的类的维护所述有状态数据的类的出现,以及插入一个或更多胶合类或对胶合类的调用,以确保所述有状态数据在需要时同时在所述边缘模块及其相关企业模块中成为可用。
为进一步说明,图6阐明了示出针对所述EJB拆分类型的用于网络边缘计算的应用拆分的示例性方法的流程图。即,在图6的所述例子中,所述应用拆分点(310)被识别为调用EJB的调用分级中的类,并且所述拆分类型(312)被识别为EJB拆分类型。在图6的所述方法中,根据所述拆分类型将所述应用拆分(306)成子部件(314)通过将所述调用分级中的类拆分成客户端RMI模块(602)和服务器RMI模块(604)来实现。在图6的所述方法中,将子部件移动(308)到边缘网络通过将所述客户端RMI模块(602)移动到所述边缘网络(106)来实现。
为进一步说明,图7阐明了示出针对所述EJB拆分类型的用于网络边缘计算的应用拆分的另一示例性方法的流程图。即,所述应用拆分点(310)被识别为调用EJB的调用分级中的类,并且所述拆分类型(312)被识别为EJB拆分类型。在图7的所述方法中,根据所述拆分类型(312)将所述应用(130)拆分(306)成子部件(314)通过将所述调用分级中的类拆分成客户端web服务模块(702)和服务器web服务模块(704)来实现。在图7的所述方法中,将子部件移动(308)到边缘网络(106)通过将所述客户端web服务(702)模块移动到所述边缘网络(106)来实现。
为进一步说明,图8阐明了示出针对所述思洛拆分类型的用于网络边缘的应用拆分的示例性方法的流程图。在图8的所述例子中,所述应用拆分点(310)被识别为更新企业数据库的调用分级中的类,并且所述拆分类型(312)被识别为思洛拆分类型。在图8的所述方法中,根据所述拆分类型(312)将所述应用(130)拆分(306)成子部件(314)通过将所述调用分级中的所有类作为一个子部件聚合到思洛模块(802)中来实现。在图8的所述方法中,将子部件移动(308)到边缘网络(106)通过将所述思洛模块(802)移动到所述边缘网络(106)来实现。
为进一步说明,图9阐明了示出针对所述思洛拆分类型的用于网络边缘计算的应用拆分的另一示例性方法的流程图。在图9的所述例子中,所述应用拆分点(310)被识别为调用EJB和调用HTTP功能的调用分级中的类,并且所述拆分类型(312)被识别为思洛拆分类型。在图9的所述方法中,根据所述拆分类型将所述应用(130)拆分(306)成子部件(314)通过将所述调用分级中的所有类作为一个子部件聚合到思洛模块(802)中来实现。在图9的所述方法中,将子部件移动(308)到边缘网络(106)通过将所述思洛模块(802)移动到所述边缘网络(106)来实现。
为进一步说明,图10阐明了示出针对所述思洛拆分类型的用于网络边缘计算的应用拆分的另一示例性方法的流程图。在图10的所述例子中,所述应用拆分点(310)被识别为调用JCA功能和调用HTTP功能的调用分级中的类,并且所述拆分类型(312)被识别为思洛拆分类型。在图10的所述例子中,根据所述拆分类型(312)将所述应用(130)拆分(306)成子部件(314)通过将所述调用分级中的所有类作为一个子部件聚合到思洛模块(802)中来实现。在图10的所述例子中,将子部件移动(308)到边缘网络(106)通过将所述思洛模块(802)移动到所述边缘网络(106)来实现。
为进一步说明,图11阐明了示出针对所述正面拆分类型的用于网络边缘的应用拆分的示例性方法的流程图。在图11的所述例子中,所述应用拆分点(310)被识别为被不止一次列为潜在拆分点的调用分级中的类,并且所述拆分类型(312)被识别为正面拆分类型。在图11的所述方法中,根据所述拆分类型(312)将所述应用(130)拆分(306)成子部件(314)通过将所述调用分级中的类拆分成客户端web服务模块(702)和服务器web服务模块(704)来实现。在图11的所述方法中,将子部件移动(308)到边缘网络(106)通过将所述客户端web服务模块(702)移动到所述边缘网络(106)来实现。
从前面的描述中将理解,在不脱离本发明真正精神的情况下,修正和改变可以在本发明的各种实施例中产生。本说明书中的描述用于仅说明目的,并且将不被以限制性的意义理解。本发明的范围仅受权利要求的语言的限制。

Claims (15)

1.一种用于网络边缘计算的应用拆分的方法,所述方法包括:
识别应用拆分点;
识别针对所述应用拆分点的拆分类型,包括:识别针对所述应用拆分点的思洛拆分类型、EJB拆分类型、或者正面拆分类型,其中所述思洛拆分类型包括:通过JDBC调用来更新企业数据库的类的应用拆分点、产生HTTP调用的类的应用拆分点、或潜在应用拆分点列表上的所有剩余未分配的类的应用拆分点,其中所述正面拆分类型包括:不止一次识别为潜在拆分点的类的应用拆分点;
根据所述拆分类型将所述应用拆分成子部件,包括:
检验将被包括在子部件中的每个类是可串行化的;
检验用于维护有状态数据的类的出现;以及
如果出现用于维护有状态数据的任意类,则插入胶合类和对胶合类的调用以确保所述有状态数据在需要时同时在边缘模块及其相关企业模块中成为可用,其中所述胶合类用于从所述边缘模块向所述其相关企业模块传送所述有状态数据;以及
将子部件移动到边缘网络。
2.根据权利要求1所述的方法,其中,识别应用拆分点还包括识别调用EJB的应用的类。
3.根据权利要求1所述的方法,其中,识别应用拆分点还包括识别更新企业数据库的应用的类。
4.根据权利要求1所述的方法,其中,识别应用拆分点还包括识别调用JCA功能的应用的类。
5.根据权利要求1所述的方法,其中:所述应用拆分点包括调用EJB的调用分级中的类;所述拆分类型包括EJB拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的类拆分成客户端RMI模块和服务器RMI模块;以及,将子部件移动到边缘网络还包括将所述客户端RMI模块移动到所述边缘网络。
6.根据权利要求1所述的方法,其中:所述应用拆分点包括调用EJB的调用分级中的类;所述拆分类型包括EJB拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的类拆分成客户端web服务模块和服务器web服务模块;以及,将子部件移动到边缘网络还包括将所述客户端web服务模块移动到所述边缘网络。
7.根据权利要求1所述的方法,其中:所述应用拆分点包括更新企业数据库的调用分级中的类;所述拆分类型包括思洛拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的所有类作为一个子部件聚合成思洛模块;以及将子部件移动到边缘网络还包括将所述思洛模块移动到所述边缘网络。
8.根据权利要求1所述的方法,其中:所述应用拆分点包括调用EJB和调用HTTP功能的调用分级中的类;所述拆分类型包括思洛拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的所有类作为一个子部件聚合到思洛模块中;以及将子部件移动到边缘网络还包括将所述思洛模块移动到所述边缘网络。
9.根据权利要求1所述的方法,其中:所述应用拆分点包括调用JCA功能和调用HTTP功能的调用分级中的类;所述拆分类型包括思洛拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的所有类作为一个子部件聚合到思洛模块中;以及将子部件移动到边缘网络还包括将所述思洛模块移动到所述边缘网络。
10.根据权利要求1所述的方法,其中:所述应用拆分点包括被不止一次列为潜在拆分点的调用分级中的类;所述拆分类型包括正面拆分类型;根据所述拆分类型将所述应用拆分成子部件还包括将所述调用分级中的类拆分成客户端web服务模块和服务器web服务模块;以及,将子部件移动到边缘网络还包括将所述客户端web服务模块移动到所述边缘网络。
11.一种用于网络边缘计算的应用拆分的系统,所述系统包括:
用于识别应用拆分点的装置;
用于识别针对所述应用拆分点的拆分类型的装置,该装置还包括:用于识别针对所述应用拆分点的思洛拆分类型的装置、用于识别针对所述应用拆分点的EJB拆分类型的装置、用于识别针对所述应用拆分点的正面拆分类型的装置,其中所述思洛拆分类型包括:通过JDBC调用来更新企业数据库的类的应用拆分点、产生HTTP调用的类的应用拆分点、或潜在应用拆分点列表上的所有剩余未分配的类的应用拆分点,其中所述正面拆分类型包括:不止一次识别为潜在拆分点的类的应用拆分点;
用于根据所述拆分类型将所述应用拆分成子部件的装置,包括:
检验将被包括在子部件中的每个类是可串行化的装置;
检验用于维护有状态数据的类的出现的装置,其中所述有状态数据可用于在多个子部件中被维护;以及
如果出现用于维护有状态数据的任意类,则插入胶合类和对胶合类的调用以确保所述有状态数据在需要时成为可用的装置,其中所述有状态数据可用于在多个子部件中被维护;以及
用于将子部件移动到边缘网络的装置。
12.根据权利要求11所述的系统,其中,用于识别应用拆分点的装置还包括用于识别调用EJB的应用的类的装置。
13.根据权利要求11所述的系统,其中,用于识别应用拆分点的装置还包括用于识别更新企业数据库的应用的类的装置。
14.根据权利要求11所述的系统,其中,用于识别应用拆分点的装置还包括用于识别调用JCA功能的应用的类的装置。
15.根据权利要求11所述的系统,其中:所述应用拆分点包括调用EJB的调用分级中的类;所述拆分类型包括EJB拆分类型;用于根据所述拆分类型将所述应用拆分成子部件的装置还包括用于将所述调用分级中的类拆分成客户端RMI模块和服务器RMI模块的装置;以及用于将子部件移动到边缘网络的装置还包括用于将所述客户端RMI模块移动到所述边缘网络的装置。
CNB2005800234709A 2004-07-13 2005-06-08 用于网络边缘计算的应用拆分的方法和系统 Active CN100547545C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/889,777 US7634755B2 (en) 2004-07-13 2004-07-13 Application splitting for network edge computing
US10/889,777 2004-07-13

Publications (2)

Publication Number Publication Date
CN1985240A CN1985240A (zh) 2007-06-20
CN100547545C true CN100547545C (zh) 2009-10-07

Family

ID=34969341

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800234709A Active CN100547545C (zh) 2004-07-13 2005-06-08 用于网络边缘计算的应用拆分的方法和系统

Country Status (6)

Country Link
US (1) US7634755B2 (zh)
EP (1) EP1782185A1 (zh)
JP (1) JP5046161B2 (zh)
CN (1) CN100547545C (zh)
TW (1) TWI354900B (zh)
WO (1) WO2006005655A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286157B2 (en) * 2005-02-28 2012-10-09 International Business Machines Corporation Method, system and program product for managing applications in a shared computer infrastructure
US7904547B2 (en) * 2006-02-21 2011-03-08 International Business Machines Corporation Method, system, and program product for optimizing monitoring and discovery services for a grid computing environment
US8117611B2 (en) * 2006-03-01 2012-02-14 International Business Machines Corporation Method, system, and program product for deploying a platform dependent application in a grid environment
JP5337666B2 (ja) * 2009-04-22 2013-11-06 株式会社日立製作所 コンポーネント設計支援装置
US10382518B2 (en) 2016-03-22 2019-08-13 Google Llc Low latency applications using multiple servers
CN105975330B (zh) 2016-06-27 2019-06-18 华为技术有限公司 一种网络边缘计算的虚拟网络功能部署方法、装置和系统
GB2557615A (en) 2016-12-12 2018-06-27 Virtuosys Ltd Edge computing system
GB2557611A (en) 2016-12-12 2018-06-27 Virtuosys Ltd Edge computing system
US11212231B2 (en) 2017-03-28 2021-12-28 Hitachi, Ltd. Data processing system and method of controlling the same
WO2019060716A1 (en) 2017-09-25 2019-03-28 Freenome Holdings, Inc. SAMPLE EXTRACTION METHODS AND SYSTEMS
US10834017B2 (en) 2018-11-11 2020-11-10 International Business Machines Corporation Cloud-driven hybrid data flow and collection
US20220295353A1 (en) * 2019-08-08 2022-09-15 Samsung Electronics Co., Ltd. Method and system for intent driven deployment and management of communication service in a wireless communication system
CN110716765B (zh) * 2019-09-29 2023-04-07 浙江网新恒天软件有限公司 一种单体应用Faas化的方法
EP4083796A1 (en) * 2021-04-29 2022-11-02 ABB Schweiz AG Flexible update mechanism for stateful applications

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU681433B2 (en) 1993-08-03 1997-08-28 Sun Microsystems, Inc. Flexible multi-platform partitioning for computer applications
JPH10254686A (ja) * 1997-03-07 1998-09-25 Mitsubishi Electric Corp オブジェクト指向プログラミング支援装置
US6011918A (en) * 1998-04-22 2000-01-04 International Business Machines Corporation Methods, systems and computer program products for generating client/server applications
JP2000112759A (ja) * 1998-09-30 2000-04-21 Hitachi Software Eng Co Ltd 分散オブジェクト環境でのプログラムの静的解析方法および最適化方法
US6983463B1 (en) * 1998-10-02 2006-01-03 Microsoft Corporation Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment
US6430576B1 (en) * 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6950850B1 (en) * 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications
FR2819601B1 (fr) * 2001-01-16 2003-07-18 Canon Kk Procede et dispositif de partition de programme informatique
US20020165993A1 (en) * 2001-05-04 2002-11-07 Andre Kramer System and method of partitioning software components of a monolithic component-based application program to separate graphical user interface elements for local execution at a client system in conjunction with remote execution of the application program at a server system
JP2006502465A (ja) * 2002-01-11 2006-01-19 アカマイ テクノロジーズ インコーポレイテッド コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク
US7089299B2 (en) * 2002-01-15 2006-08-08 International Business Machines Corporation Distributed application deployment using program characteristics and environment characteristics
US6813637B2 (en) * 2002-03-15 2004-11-02 Sun Microsystems, Inc. System and method for automatically partitioning an application between a web server and an application server
EP1361509B1 (en) * 2002-05-08 2013-07-10 Sap Ag Software delivery manager
US7210143B2 (en) 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
US20040216096A1 (en) * 2003-04-28 2004-10-28 Alan Messer Partitioning of structured programs

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A bytecode translatorfor distributed execution of "legacy"Java software. TATSUBORI M ET AL.ECOOP 2001-OBJECT-ORIENTED PROGRAMMING. 15TH EUROPEAN CONFERENCE.,Vol.2072 . 2001
A bytecode translatorfor distributed execution of "legacy"Java software. TATSUBORI M ET AL.ECOOP 2001-OBJECT-ORIENTED PROGRAMMING. 15TH EUROPEAN CONFERENCE.,Vol.2072. 2001 *

Also Published As

Publication number Publication date
TWI354900B (en) 2011-12-21
EP1782185A1 (en) 2007-05-09
CN1985240A (zh) 2007-06-20
JP5046161B2 (ja) 2012-10-10
US20060015849A1 (en) 2006-01-19
TW200627178A (en) 2006-08-01
WO2006005655A1 (en) 2006-01-19
US7634755B2 (en) 2009-12-15
JP2008507014A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
CN100547545C (zh) 用于网络边缘计算的应用拆分的方法和系统
RU2320015C2 (ru) Развертывание информации о конфигурации
US8612406B1 (en) Sharing business data across networked applications
US7555538B2 (en) System and method for building and execution of platform-neutral generic services' client applications
CN103608799B (zh) 自动用户界面对象变换和代码生成
Cai et al. DartFlow: A workflow management system on the web using transportable agents
US7814404B2 (en) System and method for applying workflow of generic services to component based applications for devices
US8402432B2 (en) System and method of creating and communicating with component based wireless applications
US6678887B1 (en) Customizing business logic and data sources by modifying methods defined within an API
US7509649B2 (en) System and method for conversion of generic services' applications into component based applications for devices
US20070067440A1 (en) Application splitting for network edge computing
US20110010613A1 (en) System and method for building mixed mode execution environment for component applications
JP2006501558A (ja) ウェブ・アプリケーション用のウェブ・ページのセッションをユーザに表示する装置と方法
CN100444108C (zh) 使用ui储存库的公共ui组件执行无线应用程序的系统和方法
Bih Service oriented architecture (SOA) a new paradigm to implement dynamic e-business solutions
WO2009020501A1 (en) Unwired enterprise platform
Dai et al. A flexible extension of WSDL to describe non-functional attributes
KR101086620B1 (ko) 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법
WO2023130978A1 (zh) 一种企业数字中台中资源服务应用的调用系统和方法
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
US9128886B2 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
EP1506478B1 (en) Exchange infrastructure system and method
CN109005163B (zh) 一种http动态请求服务调用方法
US20040107244A1 (en) Scalable and intelligent network platform for distributed system
CN113641641A (zh) 文件存储服务的切换方法、切换系统、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant