CN107203388B - 一种面向REST架构风格的Web服务快速开发方法 - Google Patents

一种面向REST架构风格的Web服务快速开发方法 Download PDF

Info

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
Application number
CN201710447342.1A
Other languages
English (en)
Other versions
CN107203388A (zh
Inventor
陆佳炜
卢成炳
李�杰
张元鸣
肖刚
李鲁兵
高燕煦
周焕
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.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
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 Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201710447342.1A priority Critical patent/CN107203388B/zh
Publication of CN107203388A publication Critical patent/CN107203388A/zh
Application granted granted Critical
Publication of CN107203388B publication Critical patent/CN107203388B/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/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

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服务快速开发方法
技术领域
本发明涉及一种面向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动态装配的资格;
元Agent将用户需求分类成若干功能集合,每个集合内都对应了一种通用的功能需求操作,并由对应元Agent管理。即元
Figure BDA0001321542930000061
表示元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动态装配的资格。
元Agent将用户需求分类成若干功能集合,每个集合内都对应了一种通用的功能需求操作,并由对应元Agent管理。即元
Figure BDA0001321542930000111
表示元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配置信息如下:
Figure BDA0001321542930000151
R-WRDL元素说明如表1所示:
Figure BDA0001321542930000152
Figure BDA0001321542930000161
表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动态装配的资格;
元Agent将用户需求分类成若干功能集合,每个集合内都对应了一种通用的功能需求操作,并由对应元Agent管理,即元
Figure FDA0002371025390000031
表示元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需求的映射。
CN201710447342.1A 2017-06-14 2017-06-14 一种面向REST架构风格的Web服务快速开发方法 Active CN107203388B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528169A (zh) * 2016-11-25 2017-03-22 浙江工业大学 一种基于AnGo动态演化模型的Web系统开发可复用方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528169A (zh) * 2016-11-25 2017-03-22 浙江工业大学 一种基于AnGo动态演化模型的Web系统开发可复用方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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