CN107203388B - 一种面向REST架构风格的Web服务快速开发方法 - Google Patents
一种面向REST架构风格的Web服务快速开发方法 Download PDFInfo
- Publication number
- CN107203388B CN107203388B CN201710447342.1A CN201710447342A CN107203388B CN 107203388 B CN107203388 B CN 107203388B CN 201710447342 A CN201710447342 A CN 201710447342A CN 107203388 B CN107203388 B CN 107203388B
- Authority
- CN
- China
- Prior art keywords
- agent
- rest
- wrd
- meta
- layer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种面向REST架构风格的Web服务快速开发方法,包括以下步骤:第一步、建立一个基于REST‑AnGo的模型,分为视图层、控制层和组件层;第二步、基于所述的模型提出Web服务快速开发方法,过程如下:步骤2.1:将拥有基本功能的元Agent注册到Agent Cluster中,或者将已经废弃的元Agent从Agent Cluster中注销;步骤2.2:采用惰性加载机制加载配置信息;步骤2.3:加载完成后,将配置文件中的需求信息装载;步骤2.4:通过Mapping Tree来实现REST资源的映射,并进行系统实现。本发明能在较大程度上提高REST服务的开发效率,降低开发难度,并保障客户端独立性。
Description
技术领域
本发明涉及一种面向REST架构风格的Web服务快速开发方法。
背景技术
Web Services是一种部署在分布式Web应用上的对象,是构建分布式Web应用程序的模型,建立在以XML为主的、开放的Web规范技术的基础上,能在所有支持Internet通讯的操作系统上实施运行,具有更好的开放性,是实现可互操作的分布式Web应用平台。WebServices基于三种角色,即服务提供者、服务注册中心和服务请求者之间的交互。涉及发布、查找和绑定操作,这些角色和操作一起作用于Web Services组件。典型情况下服务提供者将Web Services的服务描述发布到服务注册中心。服务请求者使用查找操作从服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用Web Services实现交互。
REST是英文Representational State Transfer的缩写,中文译为“表象状态传输”、“具体状态转移”或“表现状态转移”。REST是一种架构风格(或模式),不是一种具体的标准或架构;REST不是一个协议,它是对Web体系结构设计原则的一种描述,是一种对于服务器的更加有效的抽象方式,是一种基于资源的服务访问架构风格。REST结合了一系列规范,从而形成了一种新的基于Web的架构风格,它带来的是一种全新的Web开发过程中的思维方式:通过URI来设计系统结构。根据REST设计原则,每个URI代表一个资源,而整个系统就是由这些资源组成的。使用REST和面向资源架构(ROA)原则的Web Services通常称为RESTful Web Services或端点。RESTful Services具有以下特点:
1.Client-Server结构:将客户端与服务器端分离,将用户界面与数据存储分离,使得不同用户终端共享相同的数据成为了可能。
2.无状态:要求每个HTTP请求都是完全孤立的。
3.命名资源:RESTful Web Services也是资源,也有唯一的URI标识。
4.互联资源表示:RESTful Web Services提供的表示通过URI实现互联,客户可以实现客户状态的自维护性。
5.中间组件层:在客户和资源间使用代理服务器、缓存服务器、网关等提高效率、增强安全。
6.从HTTP头中获取统一接口和资源地址:对服务资源的所有动作和要访问的服务器资源都从HTTP统一接口和URI中得到,使代理服务器、缓存服务器能很好的协调工作。
7.可以使用简单有效的安全模型:REST中很容易隐藏某个资源,只需不发布它的URI;可对每个URI的四个通用接口设置权限;也可以通过堵塞非GET请求把资源设置为只读的。
随着RESTful Web Services的兴起,REST服务开发框架层出不穷,例如:Jersey、RestEasy以及Restlet等。Jersey框架是采用Java语言开发REST服务的开源框架,它支持JAX-RS API并作为JAX-RS(JAX-RS即Java API for RESTful Web Services,是一个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java标注来简化Web服务的客户端和服务端的开发和部署)的参考实现。Jersey框架不仅仅是JAX-RS的参考实现,它还提供了自己的API,这些API继承JAX-RS工具包,提供了附加功能和实用程序,进一步简化REST服务和客户端的开发。另外,Jersey公开了大量扩展SPI,使开发人员能够更好地继承Jersey来适应各自的需求。RestEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。作为一个JBOSS的项目,它当然能和JBOSS应用服务器很好地集成在一起。但是,它也能在任何运行JDK5或以上版本的Servlet容器中运行。RESTEasy还提供一个RESTEasy JAX-RS客户端调用框架。能够很方便与EJB、Seam、Guice、Spring和Spring MVC集成使用。支持在客户端与服务器端自动实现GZIP解压缩。
IBM公司的研究员Maximilien,E.Michael提出一种Swashup-The Ruby on RailsServices Mashup方法,该方法从RosettaNet Pip3A4消息开始建模,使得消息的XSD类型直接映射到使用DSL注释的Ruby类。然后使用Ruby来定义将数据元素用作纯Ruby对象的调解过程。最后利用Rails框架来访问SOAP服务以及定义网络端点。该方法虽然能够通过少量的代码完成Web服务的开发,但必须依赖于Ruby语言实现,有较大的局限性。来自日本NTT网络创新实验室的Takeru Inoue、Hiroshi Asakura和Hiroshi Sato等人设计了一种快速开发Web应用程序的高度复用数据库组件——WapDB,该组件基于RESTful Web APIs开发,它使得开发人员不必重新构造Web API即可快速开发Web应用,从而提供REST架构风格的服务。另外,WapDB还提供了Web应用程序的通用功能,例如高效的访问控制,扩展机制,搜索和统计能力。但该组件仅仅针对数据库的CRUD等操作进行封装,并未对Web服务的整体开发过程进行建模。
发明内容
为了克服现在的REST开发框架仍需在服务器端进行大量编程、开发难度较大的不足,本发明提供了一种面向REST架构风格的服务快速开发方法。采用了一种REST-AnGo模型来达到服务器端REST开发轻量级编程,甚至零编程的目的。REST-AnGo模型基于多Agent技术,采用R-WRDL语言来描述用户需求,通过Mapping Tree来实现REST资源的映射,并进行系统实现。该方法能在较大程度上提高REST服务的开发效率,降低开发难度,并保障客户端独立性,客户端只需按照REST架构风格来发送服务请求即可。
本发明所采用的技术方案是:
一种面向REST架构风格的Web服务快速开发方法,包括以下步骤:
第一步、建立一个基于REST-AnGo的模型,分为视图层、控制层和组件层,过程如下:
1.1、视图层(view layer):负责数据模型的相互转化,在任务请求阶段,视图层将用户提交的可视化数据转化为符合REST-AnGo模型标准的JSON数据媒介,并传送给控制层;在请求响应阶段,视图层将控制层处理的数据结果转化为可视化数据模型,以便用户进行直观理解;
1.2、控制层(controller layer):负责请求的适配、R-WRDL配置信息的解析、元Agent的动态装配、任务的执行以及与表现层的通讯,并能根据表现层触发的事件执行相应的动作;
1.3、组件层(component layer):负责为调度Agent提供一系列具有基本功能的处理单元;
第二步、基于所述的模型,提出的面向REST架构风格的Web服务快速开发方法,过程如下:
步骤2.1:采用元Agent自更新机制将拥有基本功能的元Agent注册到AgentCluster中,或者将已经废弃的元Agent从Agent Cluster中注销,该机制的设立主要是为了使得元Agent注册与注销变得及时、有序,进而使得R-WRDL Pool时刻保持最新;
步骤2.2:采用惰性加载机制加载R-WRDL Pool配置信息,即在程序启动阶段将R-WRDL Pool中的所有配置信息装载到Mapping Tree和Memory Pool中,来提高配置信息的搜索速度,之后仅在R-WRDL Pool状态发生变化时,才将改变的信息同步到内存中,以缩短配置加载时间;
步骤2.3:当Mapping Tree加载完成后,将R-WRDL Pool配置文件中的需求信息装载到Memory Pool中;
步骤2.4:前端发送REST服务请求,适配Agent获取该服务请求并解析得到统一资源标识符URI和HTTP标准方法,根据解析后的结果前往Mapping Tree中搜索得到锚点tag和唯一操作标识key,并传递给决策Agent。决策Agent接受适配Agent传递的锚点tag和唯一操作标识key,锚点tag为首个需要执行的元Agent的标记(互联网环境是动态不确定的,这使得REST服务开发也具有了一定的不确定性。为了确保AnGo模型能提供相对明确和稳定的系统级别可复用REST服务开发能力,单一的元Agent无法完成多个相互交互的复杂任务。因此,就需要多个元Agent间通过协同的方式来实现对用户需求的解析、处理和资源提供。AnGo模型通过Agent Chain来完成这一协作任务,这既提高了软件开发的效率,同时也确保了软件质量,因为Agent Chain中的每一个元Agent在加入前都必须保证是可用、可靠的,并已经通过软件测试。Agent Chain基于元Agent,能够根据环境和需求的变化而变化,它也是确保AnGo系统内各个组件的生存能力的重要方式。此处的锚点tag标记了Agent Chain中的首个元Agent)。决策Agent首先根据锚点tag进行路由转发,然后根据唯一操作标识key获取Memory Pool中的配置信息config,再根据配置信息config从组件层中筛选出符合特定要求的元Agent进行装配,最后决策Agent按序执行装配完成的Agent Chain,并将执行结果以JSON为媒介返回至视图层。
进一步,所述1.2中,所述控制层包含的模块有:
适配Agent:根据前端发送的统一资源标识符URI和HTTP标准方法,通过搜索Mapping Tree得到锚点tag和唯一操作标识key,并传递给决策Agent;
决策Agent:任务处理的枢纽。它接受适配Agent传递的锚点tag和唯一操作标识key,锚点tag为首个需要执行的元Agent的标记,决策Agent首先根据锚点tag进行路由转发,然后根据唯一操作标识key获取Memory Pool(内存池)中的配置信息config,再根据配置信息config从组件层中筛选出符合特定要求的元Agent进行按序装配,并将处理结果返回至视图层;
R-WRDL Pool:配置文件池,由R-WRDL(REST-Web Requirement DescriptionLanguage)语言编写。R-WRDL并非是一种真正的语言,其含义是一种基于REST-AnGo模型的用户需求转换规则,程序员把每个功能点的个性化需求、资源所对应的URI路径、HTTP标准方法以及每个元Agent所具有的功能一一对应,通过R-WRDL语言描述在XML文档上,在程序动态执行时,语义理解Agent进行解释并内存化,分别存储到Mapping Tree和Memory Pool中,以作为整个模型动态运行的全局决策依据;
Mapping Tree:资源操作匹配树,该树共分为4层,第一层为Root,第二层对应前端发送的统一资源标识符URI,第三层对应前端发送的HTTP标准方法,第四层由锚点tag和唯一操作标识key组成,锚点tag对应R-WRDL所用xml载体的文件名,key对应R-WRDL需求片段的唯一标识,通过搜索该树可以根据URI和HTTP方法快速定位锚点tag以及唯一操作标识key;
Memory Pool(内存池):存储R-WRDL Pool语义理解后的信息,在内存中由特定数据结构存储;
语义理解Agent:对R-WRDL语言编写的XML文档进行语义理解,并将解释的结果存储到Mapping Tree和Memory Pool中;
Agent Chain:由一系列元Agent按顺序组成,具有完成特定功能的Agent链;
再进一步,所述1.3中,组件层包含的模块有:
Agent Cluster:由大量元Agent组成的无序Agent簇;
Agent Center:Agent中心,对Agent Cluster进行实时感知,负责管理元Agent的注册及注销;
元Agent:能通过对外提供服务以展示其功能的自主行为实体单元,新的元Agent可向Agent Center进行注册,从而获得参与决策Agent动态装配的资格;
更进一步,所述2.1)中,采用元Agent自更新机制的过程如下:
元Agent首先被开发者注册到Agent Cluster中,之后,Agent Cluster会向AgentCenter登记该元Agent的信息,Agent Center确认元Agent基本功能信息无误后,将该元Agent及其功能语义更新到R-WRDL Pool中;另一种情形,过期的元Agent被开发者从AgentCluster中废弃,之后,Agent Cluster会向Agent Center注销该元Agent的信息,然后AgentCenter将该元Agent及其功能语义从R-WRDL Pool中移除。
所述步骤2.2)中,R-WRDL Pool配置信息的加载分为两步:首先,对R-WRDL节点信息进行匹配,组成树形结构后存入Mapping Tree中,采用树形结构能够更加快速地进行搜索定位。过程如下:
R-WRDL的每个element节点分别表示一个用户需求,每个element节点都拥有URI、method和key三个属性。URI表示REST服务请求资源的路径,method表示REST服务请求的动作,为HTTP标准方法,一般为GET/POST/PUT/PATCH/DELETE。key的值无需手动配置,在语义理解Agent提取URI和method的值后,会根据提取的值生成一个唯一的字符串,即操作标识key。首先语义理解Agent取出URI的值放入Mapping Tree的第二层节点中,然后取得method的值放入Mapping Tree的第三层节点中,接着将当前R-WRDL所用xml载体的文件名作为锚点tag,加上自动生成的唯一操作标识key作为Mapping Tree的第四层叶子节点。
所述步骤2.3中,当Mapping Tree加载完成后,将R-WRDL Pool配置文件中的需求信息装载到Memory Pool中,过程是:
在程序启动阶段,语义理解Agent会解释R-WRDL Pool中的需求配置信息,并将解释的结果存储到Memory Pool中;另一种情形,当程序监测到R-WRDL Pool发生变化时,会命令语义理解Agent对变化的内容进行语义分析,并将最新的配置信息同步到Memory Pool中
所述步骤2.4的过程如下:
首先将REST-AnGo模型抽象为4层超网络图结构,至上而下分别为:用户网络、REST服务网络、元Agent网络和R-WRDL需求网络。
用户网络:由请求REST服务的用户构成,不同用户可能发送不同REST服务请求,也可能发送相同REST服务请求。
REST服务网络:由系统提供的REST服务构成,每个REST服务主要包含统一资源标识符URI、HTTP标准方法和请求参数。每个用户可以请求多个REST服务,每个REST服务也可以为多个用户提供服务。因此,用户网络与REST服务网络之间为多对多的关系。
元Agent网络:由元Agent构成,REST-AnGo模型支持复杂REST服务的开发。由于单一的元Agent无法完成多个相互交互的复杂任务,因此,就需要多个元Agent间通过协同组合的方式来实现对于开发复杂REST服务的支持。REST-AnGo模型通过Agent Chain来完成元Agent的组合,Agent Chain基于元Agent,能够根据环境和需求的变化而变化,它是确保AnGo系统内各个组件的生存能力的重要方式。因此,REST服务与Agent Chain形成多对一的关系,而Agent Chain由多个元Agent组合而成,则REST服务网络与元Agent网络之间为多对多的关系。
R-WRDL需求网络:由R-WRDL需求片段构成,元Agent的执行依赖R-WRDL需求配置片段,元Agent可在运行时动态装载R-WRDL需求配置片段,它是元Agent个性化执行以适应多样化REST服务的重要保障。每个元Agent可装载多个R-WRDL配置,因此,元Agent网络与R-WRDL需求网络之间为一对多的关系。
根据以上超网络之间的关系,可建立多层映射关系:REST服务与元Agent之间的映射以及元Agent与R-WRDL需求之间的映射。
REST-AnGo模型建立映射过程为:用户发送REST服务请求,适配Agent获取该服务请求并解析得到统一资源标识符URI和HTTP标准方法,根据解析后的结果前往MappingTree中搜索得到锚点tag和唯一操作标识key,并传递给决策Agent,过程如下:
2.4.1)决策Agent依据锚点tag得到Agent Chain的链首Agent,并根据用户需求,结合环境变化的因素,以元Agent协同的方式进行Agent组合,得到Agent Chain。一条组合完成的Agent Chain可提供多个REST服务,该过程即完成了REST服务到元Agent的映射。
2.4.2)决策Agent根据唯一操作标识key,前往Memory Pool中查询得到R-WRDL需求片段(配置信息config)。一条组合完成的Agent Chain装载不同的R-WRDL需求片段,即可完成用户多样化的需求,此过程即完成了元Agent到R-WRDL需求的映射。
本发明的有益效果是:(1)通用性服务需求一般都可通过R-WRDL语言以配置的方式进行发布,由REST-AnGo模型自动演化执行,提高了软件生产效率。(2)用户请求全部交由决策Agent自动组装元Agent完成,极大减少服务器端人工编码,提高了软件开发的质量,从而保证服务器端的稳定。(3)采用Mapping Tree树形结构预先提取出R-WRDL中REST服务与R-WRDL需求片断之间的对应关系,优化搜索过程,确保路由Agent能快速、精确地进行定位(4)采用惰性加载机制将R-WRDL Pool以及Mapping Tree存入Memory Pool中,缩短系统配置时间,加快搜索速度,减少服务器响应时间,提升了用户满意度。(5)基于REST-AnGo模型的开发方法遵循“二八法则”,即80%的REST服务为常见功能,可快速配置实现,提高面向REST服务批量化生产能力。
附图说明
图1示出了模型框架图。
图2示出了R-WRDL文档的XML Scheme结构。
图3示出了Mapping Tree结构图。
图4示出了超网络结构图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种面向REST架构风格的Web服务快速开发方法,包括以下步骤:
第一步、建立一个基于REST-AnGo的模型,模型按照分层架构思想设计,如图1所示,分为View(视图层)、Control(控制层)和Component(组件层),过程如下:
1.1、视图层(view layer):负责数据模型的相互转化,在任务请求阶段,视图层将用户提交的可视化数据转化为符合REST-AnGo模型标准的JSON数据媒介,并传送给控制层;在请求响应阶段,视图层将控制层处理的数据结果转化为可视化数据模型,以便用户进行直观理解。
1.2、控制层(controller layer):负责请求的适配、R-WRDL配置信息的解析、元Agent的动态装配、任务的执行以及与表现层的通讯,并能根据表现层触发的事件执行相应的动作;
控制层包含的模块有:
适配Agent:根据前端发送的统一资源标识符URI和HTTP标准方法,通过搜索Mapping Tree得到锚点tag和唯一操作标识key,并传递给决策Agent。
决策Agent:任务处理的枢纽。它接受适配Agent传递的锚点tag和唯一操作标识key,锚点tag为首个需要执行的元Agent的标记,决策Agent首先根据锚点tag进行路由转发,然后根据唯一操作标识key获取Memory Pool(内存池)中的配置信息config,再根据配置信息config从组件层中筛选出符合特定要求的元Agent进行按序装配,并将处理结果返回至视图层。
R-WRDL Pool:配置文件池,由R-WRDL(Web Requirement Description Language)语言编写。R-WRDL并非是一种真正的语言,其含义是一种基于REST-AnGo模型的用户需求转换规则,程序员把每个功能点的个性化需求、资源所对应的URI路径、HTTP标准方法以及每个元Agent所具有的功能一一对应,通过R-WRDL语言描述在XML文档上,在程序动态执行时,语义理解Agent进行解释并内存化,分别存储到Mapping Tree和Memory Pool中,以作为整个模型动态运行的全局决策依据。
Mapping Tree:资源操作匹配树,该树共分为4层,第一层为Root,第二层对应前端发送的统一资源标识符URI,第三层对应前端发送的HTTP标准方法,第四层由锚点tag和唯一操作标识key组成,锚点tag对应R-WRDL所用xml载体的文件名,key对应R-WRDL需求片段的唯一标识。通过搜索该树可以根据URI和HTTP方法快速定位锚点tag以及唯一操作标识key。
Memory Pool(内存池):存储R-WRDL Pool语义理解后的信息,在内存中由特定数据结构存储。
语义理解Agent:对R-WRDL语言编写的XML文档进行语义理解,并将解释的结果存储到Mapping Tree和Memory Pool中。
Agent Chain:由一系列元Agent按顺序组成,具有完成特定功能的Agent链。
1.3、组件层(component layer):负责为调度Agent提供一系列具有基本功能的处理单元;
组件层包含的模块有:
Agent Cluster:由大量元Agent组成的无序Agent簇。
Agent Center:Agent中心,对Agent Cluster进行实时感知,负责管理元Agent的注册及注销。
元Agent:能通过对外提供服务以展示其功能的自主行为实体单元,新的元Agent可向Agent Center进行注册,从而获得参与决策Agent动态装配的资格。
第二步、基于所述的模型,提出的面向REST架构风格的Web服务快速开发方法的过程如下:
步骤2.1:采用元Agent自更新机制将拥有基本功能的元Agent注册到AgentCluster中,或者将已经废弃的元Agent从Agent Cluster中注销。该机制的设立主要是为了使得元Agent注册与注销变得及时、有序,进而使得R-WRDL Pool时刻保持最新。过程如下:
元Agent首先被开发者注册到Agent Cluster中,之后,Agent Cluster会向AgentCenter登记该元Agent的信息,Agent Center确认元Agent基本功能信息无误后,将该元Agent及其功能语义更新到R-WRDL Pool中;另一种情形,过期的元Agent被开发者从AgentCluster中废弃,之后,Agent Cluster会向Agent Center注销该元Agent的信息,然后AgentCenter将该元Agent及其功能语义从R-WRDL Pool中移除。
步骤2.2:采用惰性加载机制加载R-WRDL Pool配置信息。即在程序启动阶段将R-WRDL Pool中的所有配置信息装载到Mapping Tree和Memory Pool中,来提高配置信息的搜索速度,之后仅在R-WRDL Pool状态发生变化时,才将改变的信息同步到内存中,以缩短配置加载时间。如上所述,R-WRDL Pool配置信息的加载分为两步:首先,对R-WRDL节点信息进行匹配,组成树形结构后存入Mapping Tree中,采用树形结构能够更加快速地进行搜索定位。
R-WRDL文档的XML Scheme结构如图2所示:每个element节点分别表示一个用户需求,每个element节点都拥有URI、method和key三个属性。URI表示REST服务请求资源的路径,method表示REST服务请求的动作,为HTTP标准方法,一般为GET/POST/PUT/PATCH/DELETE。key的值无需手动配置,在语义理解Agent提取URI和method的值后,会根据提取的值生成一个唯一的字符串,即操作标识key。R-WRDL文档的其余部分将在步骤3中被加载至Memory Pool中。
加载Mapping Tree的过程如下:首先语义理解Agent取出URI的值放入MappingTree的第二层节点中,然后取得method的值放入Mapping Tree的第三层节点中,接着将当前R-WRDL所用xml载体的文件名作为锚点tag,加上自动生成的唯一操作标识key作为Mapping Tree的第四层叶子节点,加载完毕的Mapping Tree结构如图3所示。
步骤2.3:当Mapping Tree加载完成后,将R-WRDL Pool配置文件中的需求信息装载到Memory Pool中,具体过程是:
在程序启动阶段,语义理解Agent会解释R-WRDL Pool中的需求配置信息,并将解释的结果存储到Memory Pool中;另一种情形,当程序监测到R-WRDL Pool发生变化时,会命令语义理解Agent对变化的内容进行语义分析,并将最新的配置信息同步到Memory Pool中。
步骤2.4:前端发送REST服务请求,适配Agent获取该服务请求并解析得到统一资源标识符URI和HTTP标准方法,根据解析后的结果前往Mapping Tree中搜索得到锚点tag和唯一操作标识key,并传递给决策Agent。决策Agent接受适配Agent传递的锚点tag和唯一操作标识key,锚点tag为首个需要执行的元Agent的标记(互联网环境是动态不确定的,这使得REST服务开发也具有了一定的不确定性。为了确保AnGo模型能提供相对明确和稳定的系统级别可复用REST服务开发能力,单一的元Agent无法完成多个相互交互的复杂任务。因此,就需要多个元Agent间通过协同的方式来实现对用户需求的解析、处理和资源提供。AnGo模型通过Agent Chain来完成这一协作任务,这既提高了软件开发的效率,同时也确保了软件质量,因为Agent Chain中的每一个元Agent在加入前都必须保证是可用、可靠的,并已经通过软件测试。Agent Chain基于元Agent,能够根据环境和需求的变化而变化,它也是确保AnGo系统内各个组件的生存能力的重要方式。此处的锚点tag标记了Agent Chain中的首个元Agent)。决策Agent首先根据锚点tag进行路由转发,然后根据唯一操作标识key获取Memory Pool中的配置信息config,再根据配置信息config从组件层中筛选出符合特定要求的元Agent进行装配,最后决策Agent按序执行装配完成的Agent Chain,并将执行结果以JSON为媒介返回至视图层。
具体过程如下:
首先将REST-AnGo模型抽象为如图4所示的四层超网络图结构,至上而下分别为:用户网络、REST服务网络、元Agent网络和R-WRDL需求网络。
用户网络:由请求REST服务的用户构成,不同用户可能发送不同REST服务请求,也可能发送相同REST服务请求。
REST服务网络:由系统提供的REST服务构成,每个REST服务主要包含统一资源标识符URI、HTTP标准方法和请求参数。每个用户可以请求多个REST服务,每个REST服务也可以为多个用户提供服务。因此,用户网络与REST服务网络之间为多对多的关系。
元Agent网络:由元Agent构成,REST-AnGo模型支持复杂REST服务的开发。由于单一的元Agent无法完成多个相互交互的复杂任务,因此,就需要多个元Agent间通过协同组合的方式来实现对于开发复杂REST服务的支持。REST-AnGo模型通过Agent Chain来完成元Agent的组合,Agent Chain基于元Agent,能够根据环境和需求的变化而变化,它是确保AnGo系统内各个组件的生存能力的重要方式。因此,REST服务与Agent Chain形成多对一的关系,而Agent Chain由多个元Agent组合而成,则REST服务网络与元Agent网络之间为多对多的关系。
R-WRDL需求网络:由R-WRDL需求片段构成,元Agent的执行依赖R-WRDL需求配置片段,元Agent可在运行时动态装载R-WRDL需求配置片段,它是元Agent个性化执行以适应多样化REST服务的重要保障。每个元Agent可装载多个R-WRDL配置,因此,元Agent网络与R-WRDL需求网络之间为一对多的关系。
根据以上超网络之间的关系,可建立多层映射关系:REST服务与元Agent之间的映射以及元Agent与R-WRDL需求之间的映射。REST-AnGo模型建立映射过程如下:
用户发送REST服务请求,适配Agent获取该服务请求并解析得到统一资源标识符URI和HTTP标准方法,根据解析后的结果前往Mapping Tree中搜索得到锚点tag和唯一操作标识key,并传递给决策Agent。
2.4.1)决策Agent依据锚点tag得到Agent Chain的链首Agent,并根据用户需求,结合环境变化的因素,以元Agent协同的方式进行Agent组合,得到Agent Chain。一条组合完成的Agent Chain可提供多个REST服务,该过程即完成了REST服务到元Agent的映射。
2.4.2)决策Agent根据唯一操作标识key,前往Memory Pool中查询得到R-WRDL需求片段(配置信息config)。一条组合完成的Agent Chain装载不同的R-WRDL需求片段,即可完成用户多样化的需求,此过程即完成了元Agent到R-WRDL需求的映射。
实例:采用本发明提出的面向REST架构风格的Web服务快速开发方法,为某教师培训管理系统开发REST服务为例。该REST-AnGo模型共分为4个模块:适配模块、配置模块、决策模块和元Agent模块。说明如下:
适配模块:对前端发送的REST服务请求进行解析,将解析得到的统一资源标识符URI和HTTP标准方法发送至配置模块,查询得到锚点tag和唯一操作标识key,并发送至决策模块。
配置模块:在内存中共分配两块配置池,Mapping Tree存储了统一资源标识符URI、HTTP标准方法和R-WRDL需求配置的对应关系,利用Mapping Tree能够根据前端发送的RSET服务快速定位到R-WRDL需求配置;Memory Pool存储了R-WRDL需求配置,决策模块根据该配置信息能够进行Agent组合并完成用户需求。
决策模块:根据适配模块发送的锚点tag和唯一操作标识key,前往配置模块查询得到R-WRDL需求配置,根据获取到的配置信息,从元Agent模块中筛选相应的元Agent进行组合,并完成用户需求。
元Agent模块:由执行基本功能的自主行为实体单元——元Agent构成,模块能够对元Agent的登记、注销进行有效管理,并实时将元Agent信息更新至配置模块。该模块主要为决策模块提供有效的元Agent进行组合。
下面以基本的培训发布功能为例,详细阐述REST-AnGo模型的运作流程:
1)配置R-WRDL Pool,以xml为载体的R-WRDL配置信息如下:
R-WRDL元素说明如表1所示:
表1
2)配置模块对R-WRDL Pool进行解析,提取element节点的URI以及method属性,将URI属性的值作为Mapping Tree的第二层节点,将method属性的值作为Mapping Tree的第三层节点。接着,程序会根据URI以及method的值自动生成唯一的字符串POST/training,配置模块将该字符串回填至R-WRDL的element节点的key属性中,并将该值作为唯一操作标识key,加上当前R-WRDL所用xml载体的文件名Insert作为锚点tag,放入Mapping Tree的第四层叶子节点中。此时,Mapping Tree的结构已经构建完成。然后配置模块会将余下的R-WRDL需求配置存入Memory Pool中,完成所有配置信息的加载。
3)前端发送REST服务请求,请求服务器发布一个新培训活动,URI为/trainings,method为POST,另外REST服务请求中还包含新培训活动的相关参数,例如:培训名称、时间、地点等。适配模块首先根据URI的值/trainings,匹配Mapping Tree的第二层子节点,找到值为/trainings的节点后,根据method的值POST,匹配/trainings节点下的第三层子节点,找到值为POST的节点后,取出POST节点下第四层子节点的值,该值的结构为tag+key。此时适配模块完成查询功能,获得锚点tag:Insert以及唯一操作标识key:POST/training。
4)决策模块根据唯一操作标识key:POST/training,前往Memory Pool中查询key属性为POST/training的element节点,查询得到的element节点即为R-WRDL需求配置,决策模块首先根据锚点tag:Insert定位得到Agent Chain的链首Agent,然后依据R-WRDL需求配置进行元Agent组合。由于本例需求较为简单,单个元Agent即可完成新培训的发布,因此无需进行元Agent组合。链首Agent:Insert根据查询得到的R-WRDL需求配置执行以下步骤:
4.1)查找element节点下的sql子节点,获得value属性值:insert into trainingvalues(null,?,?,?,0,?,?,?,?,?,?,?,?,?,?,?,null)
4.2)遍历sql节点下的param子节点,根据param的值解析REST服务请求中传递的同名参数,将得到的参数值填入上一步value值相应的?处,直到value值中所有的?被前端传递的参数所替换。
4.3)此时替换完毕后的value值即为需要执行的sql语句,元Agent执行该sql语句,将执行结果以JSON为数据媒介返回至前端。
Claims (8)
1.一种面向REST架构风格的Web服务快速开发方法,其特征在于:包括以下步骤:
第一步、建立一个基于REST-AnGo的模型,分为视图层、控制层和组件层,过程如下:
1.1、视图层,用于负责数据模型的相互转化,在任务请求阶段,视图层将用户提交的可视化数据转化为符合REST-AnGo模型标准的JSON数据媒介,并传送给控制层;在请求响应阶段,视图层将控制层处理的数据结果转化为可视化数据模型,以便用户进行直观理解;
1.2、控制层,用于负责请求的适配、R-WRDL配置信息的解析、元Agent的动态装配、任务的执行以及与表现层的通讯,并能根据表现层触发的事件执行相应的动作;
1.3、组件层,用于负责为调度Agent提供一系列具有基本功能的处理单元;
第二步、基于所述的模型,提出的面向REST架构风格的Web服务快速开发方法,过程如下:
步骤2.1:采用元Agent自更新机制将拥有基本功能的元Agent注册到Agent Cluster中,或者将已经废弃的元Agent从Agent Cluster中注销;
步骤2.2:采用惰性加载机制加载R-WRDL Pool配置信息,即在程序启动阶段将R-WRDLPool中的所有配置信息装载到Mapping Tree和Memory Pool中,来提高配置信息的搜索速度,之后仅在R-WRDL Pool状态发生变化时,才将改变的信息同步到内存中;
步骤2.3:当Mapping Tree加载完成后,将R-WRDL Pool配置文件中的需求信息装载到Memory Pool中;
步骤2.4:前端发送REST服务请求,适配Agent获取该服务请求并解析得到统一资源标识符URI和HTTP标准方法,根据解析后的结果前往Mapping Tree中搜索得到锚点tag和唯一操作标识key,并传递给决策Agent,决策Agent接受适配Agent传递的锚点tag和唯一操作标识key,锚点tag为首个需要执行的元Agent 的标记;AnGo模型通过Agent Chain来完成这一协作任务,Agent Chain中的每一个元Agent在加入前都必须保证是可用、可靠的,并已经通过软件测试;Agent Chain基于元Agent,能够根据环境和需求的变化而变化,它也是确保AnGo系统内各个组件的生存能力的重要方式;此处的锚点tag标记了Agent Chain中的首个元Agent,决策Agent首先根据锚点tag进行路由转发,然后根据唯一操作标识key获取Memory Pool中的配置信息config,再根据配置信息config从组件层中筛选出符合特定要求的元Agent进行装配,最后决策Agent按序执行装配完成的Agent Chain,并将执行结果以JSON为媒介返回至视图层。
2.如权利要求1所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述1.2)中,所述控制层包含的模块有:
适配Agent:根据前端发送的统一资源标识符URI和HTTP标准方法,通过搜索MappingTree得到锚点tag和唯一操作标识key,并传递给决策Agent;
决策Agent:任务处理的枢纽,它接受适配Agent传递的锚点tag和唯一操作标识key,锚点tag为首个需要执行的元Agent的标记,决策Agent首先根据锚点tag进行路由转发,然后根据唯一操作标识key获取Memory Pool中的配置信息config,再根据配置信息config从组件层中筛选出符合特定要求的元Agent进行按序装配,并将处理结果返回至视图层;
R-WRDL Pool:配置文件池,由R-WRDL语言编写,R-WRDL并非是一种真正的语言,其含义是一种基于REST-AnGo模型的用户需求转换规则,程序员把每个功能点的个性化需求、资源所对应的URI路径、HTTP标准方法以及每个元Agent所具有的功能一一对应,通过R-WRDL语言描述在XML文档上,在程序动态执行时,语义理解Agent进行解释并内存化,分别存储到Mapping Tree和Memory Pool中,以作为整个模型动态运行的全局决策依据;
Mapping Tree:资源操作匹配树,该树共分为4层,第一层为Root,第二层对应前端发送的统一资源标识符URI,第三层对应前端发送的HTTP标准方法,第四层由锚点tag和唯一操作标识key组成,锚点tag对应R-WRDL所用xml载体的文件名,key对应R-WRDL需求片段的唯一标识,通过搜索该树可以根据URI和HTTP方法快速定位锚点tag以及唯一操作标识key;
Memory Pool(内存池):存储R-WRDL Pool语义理解后的信息,在内存中由特定数据结构存储;
语义理解Agent:对R-WRDL语言编写的XML文档进行语义理解,并将解释的结果存储到Mapping Tree和Memory Pool中;
Agent Chain:由一系列元Agent按顺序组成,具有完成特定功能的Agent链。
3.如权利要求1或2所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述1.3)中,所述组件层包含的模块有:
Agent Cluster:由大量元Agent组成的无序Agent簇;
Agent Center:Agent中心,对Agent Cluster进行实时感知,负责管理元Agent的注册及注销;
元Agent:能通过对外提供服务以展示其功能的自主行为实体单元,新的元Agent可向Agent Center进行注册,从而获得参与决策Agent动态装配的资格;
4.如权利要求1或2所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述步骤2.1中,采用元Agent自更新机制的过程如下:
元Agent首先被开发者注册到Agent Cluster中,之后,Agent Cluster会向AgentCenter登记该元Agent的信息,Agent Center确认元Agent基本功能信息无误后,将该元Agent及其功能语义更新到R-WRDL Pool中;另一种情形,过期的元Agent被开发者从AgentCluster中废弃,之后,Agent Cluster会向Agent Center注销该元Agent的信息,然后AgentCenter将该元Agent及其功能语义从R-WRDL Pool中移除。
5.如权利要求1或2所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述步骤2.2中,R-WRDL Pool配置信息的加载分为两步:首先,对R-WRDL节点信息进行匹配,组成树形结构后存入Mapping Tree中,采用树形结构能够更加快速地进行搜索定位,过程如下:
R-WRDL的每个element节点分别表示一个用户需求,每个element节点都拥有URI、method和key三个属性,URI表示REST服务请求资源的路径,method表示REST服务请求的动作,为HTTP标准方法,key的值无需手动配置,在语义理解Agent提取URI和method的值后,会根据提取的值生成一个唯一的字符串,即操作标识key;首先语义理解Agent取出URI的值放入Mapping Tree的第二层节点中,然后取得method的值放入Mapping Tree的第三层节点中,接着将当前R-WRDL所用xml载体的文件名作为锚点tag,加上自动生成的唯一操作标识key作为Mapping Tree的第四层叶子节点。
6.如权利要求5所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述步骤2.3中,当Mapping Tree加载完成后,将R-WRDL Pool配置文件中的需求信息装载到Memory Pool中,过程是:
在程序启动阶段,语义理解Agent会解释R-WRDL Pool中的需求配置信息,并将解释的结果存储到Memory Pool中;另一种情形,当程序监测到R-WRDL Pool发生变化时,会命令语义理解Agent对变化的内容进行语义分析,并将最新的配置信息同步到Memory Pool中。
7.如权利要求6所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述步骤2.4的过程如下:
首先将REST-AnGo模型抽象为4层超网络图结构,至上而下分别为:用户网络、REST服务网络、元Agent网络和R-WRDL需求网络;
用户网络:由请求REST服务的用户构成,不同用户可能发送不同REST服务请求,也可能发送相同REST服务请求;
REST服务网络:由系统提供的REST服务构成,每个REST服务包含统一资源标识符URI、HTTP标准方法和请求参数,每个用户可以请求多个REST服务,每个REST服务也可以为多个用户提供服务,因此,用户网络与REST服务网络之间为多对多的关系;
元Agent网络:由元Agent构成,REST-AnGo模型支持复杂REST服务的开发,需要多个元Agent间通过协同组合的方式来实现对于开发复杂REST服务的支持,REST-AnGo模型通过Agent Chain来完成元Agent的组合,Agent Chain基于元Agent,能够根据环境和需求的变化而变化,它是确保AnGo系统内各个组件的生存能力的重要方式,REST服务与Agent Chain形成多对一的关系,而Agent Chain由多个元Agent组合而成,则REST服务网络与元Agent网络之间为多对多的关系;
R-WRDL需求网络:由R-WRDL需求片段构成,元Agent的执行依赖R-WRDL需求配置片段,元Agent可在运行时动态装载R-WRDL需求配置片段,它是元Agent个性化执行以适应多样化REST服务的重要保障,每个元Agent可装载多个R-WRDL配置,因此,元Agent网络与R-WRDL需求网络之间为一对多的关系;
根据以上超网络之间的关系,建立多层映射关系:REST服务与元Agent之间的映射以及元Agent与R-WRDL需求之间的映射。
8.如权利要求7所述的面向REST架构风格的Web服务快速开发方法,其特征在于:所述REST-AnGo模型建立映射过程为:用户发送REST服务请求,适配Agent获取该服务请求并解析得到统一资源标识符URI和HTTP标准方法,根据解析后的结果前往Mapping Tree中搜索得到锚点tag和唯一操作标识key,并传递给决策Agent,过程如下:
2.4.1)决策Agent依据锚点tag得到Agent Chain的链首Agent,并根据用户需求,结合环境变化的因素,以元Agent协同的方式进行Agent组合,得到Agent Chain,一条组合完成的Agent Chain可提供多个REST服务,该过程即完成了REST服务到元Agent的映射;
2.4.2)决策Agent根据唯一操作标识key,前往Memory Pool中查询得到R-WRDL需求片段,一条组合完成的Agent Chain装载不同的R-WRDL需求片段,即可完成用户多样化的需求,此过程即完成了元Agent到R-WRDL需求的映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710447342.1A CN107203388B (zh) | 2017-06-14 | 2017-06-14 | 一种面向REST架构风格的Web服务快速开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710447342.1A CN107203388B (zh) | 2017-06-14 | 2017-06-14 | 一种面向REST架构风格的Web服务快速开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203388A CN107203388A (zh) | 2017-09-26 |
CN107203388B true CN107203388B (zh) | 2020-08-04 |
Family
ID=59908022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710447342.1A Active CN107203388B (zh) | 2017-06-14 | 2017-06-14 | 一种面向REST架构风格的Web服务快速开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203388B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875086B (zh) * | 2018-07-18 | 2023-03-28 | 山东中创软件商用中间件股份有限公司 | 一种uri路径资源的匹配方法及系统 |
CN109286530B (zh) * | 2018-11-09 | 2020-04-14 | 浙江大学 | 一种跨界服务网络运行与支撑架构 |
CN109902434B (zh) * | 2019-03-18 | 2023-04-07 | 浙江工业大学 | 云计算环境下面向rest架构风格的服务数据可视化建模与匹配方法 |
CN110083350B (zh) * | 2019-03-20 | 2023-02-28 | 浙江工业大学 | 一种云计算环境下基于rmae的微服务自适应演化方法 |
CN110069276B (zh) * | 2019-03-20 | 2023-09-26 | 上海豹云网络信息服务有限公司 | 一种面向开放动态互联网环境的微服务需求驱动方法 |
CN111857675B (zh) * | 2020-08-03 | 2023-07-11 | 北京思特奇信息技术股份有限公司 | 基于c++实现restful服务的方法及系统 |
CN113038626A (zh) * | 2021-03-24 | 2021-06-25 | 安徽超视野智能科技有限公司 | 一种用于社区的多种设备接入系统及方法 |
CN113568998A (zh) * | 2021-06-18 | 2021-10-29 | 武汉理工数字传播工程有限公司 | 一种知识服务资源处理方法、装置、设备及存储介质 |
CN113377775B (zh) * | 2021-06-21 | 2024-02-02 | 特赞(上海)信息科技有限公司 | 信息处理方法及装置 |
WO2023006166A1 (ru) * | 2021-07-26 | 2023-02-02 | Марат Рашидович АБЕНОВ | Система и способ организации сервиса реализации товаров и услуг |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528169A (zh) * | 2016-11-25 | 2017-03-22 | 浙江工业大学 | 一种基于AnGo动态演化模型的Web系统开发可复用方法 |
-
2017
- 2017-06-14 CN CN201710447342.1A patent/CN107203388B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528169A (zh) * | 2016-11-25 | 2017-03-22 | 浙江工业大学 | 一种基于AnGo动态演化模型的Web系统开发可复用方法 |
Non-Patent Citations (1)
Title |
---|
《针对REST架构的Web Service研究》;戴宇;<无线互联科技>;20160830;1-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN107203388A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203388B (zh) | 一种面向REST架构风格的Web服务快速开发方法 | |
Li et al. | Design patterns and extensibility of REST API for networking applications | |
Alaya et al. | Toward semantic interoperability in oneM2M architecture | |
CN106603592B (zh) | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 | |
Grimm et al. | Programming for pervasive computing environments | |
US10223083B1 (en) | System and method for pervasive software platform-based model driven architecture transaction aware application generator | |
US8978021B2 (en) | System and method for pervasive software platform-based model driven architecture transaction aware application generator | |
CN112149079A (zh) | 基于微服务架构的规划评审管理平台及用户访问授权方法 | |
US10089084B2 (en) | System and method for reusing JavaScript code available in a SOA middleware environment from a process defined by a process execution language | |
Corsaro et al. | The data distribution service–the communication middleware fabric for scalable and extensible systems-of-systems | |
CN106528169B (zh) | 一种基于AnGo动态演化模型的Web系统开发可复用方法 | |
CN101861578A (zh) | 网络操作系统 | |
CN114254606A (zh) | 微服务框架模型 | |
CN101952815A (zh) | 基于姿态的协作 | |
CN116010027A (zh) | 管理任务处理集群的方法、执行任务的方法及容器集群 | |
Xu et al. | T-REST: An open-enabled architectural style for the Internet of Things | |
CN101861581A (zh) | 网络操作系统 | |
CN110011984A (zh) | 一种基于rest和rpc的分布式集群系统及方法 | |
US10268496B2 (en) | System and method for supporting object notation variables in a process defined by a process execution language for execution in a SOA middleware environment | |
US10223143B2 (en) | System and method for supporting javascript as an expression language in a process defined by a process execution language for execution in a SOA middleware environment | |
Zhou et al. | SDN northbound REST API with efficient caches | |
Hamida et al. | Integrated CHOReOS middleware-Enabling large-scale, QoS-aware adaptive choreographies | |
Trifa et al. | Leveraging the web for a distributed location-aware infrastructure for the real world | |
CN114253546A (zh) | 代码的生成方法、装置、存储介质及电子装置 | |
Hao | Edge computing on low availability devices with K3S in a smart home IoT system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |