首页 > 其他分享 >Hypermedia-Driven Application Architecture 介绍

Hypermedia-Driven Application Architecture 介绍

时间:2023-06-26 23:33:30浏览次数:41  
标签:架构 超媒体 Hypermedia 应用程序 Driven Application HDA 资源 客户端

超媒体驱动应用(Hypermedia-Driven Application Architecture,简称 HDA)架构是一种新的构建网络应用的方法。它将传统的多页面应用程序(MPA)的简单性和灵活性与单页面应用程序(SPA)的更好用户体验相结合。

HDA 架构通过扩展现有的HTML基础设施,允许超媒体开发人员创建更强大的超媒体驱动交互来实现这一目标。

遵循REST的架构约束,两个约束特征化了HDA架构:

  • HDA使用声明性的、嵌入HTML的语法,而不是命令式脚本,以实现更好的前端交互性。

  • HDA使用超媒体(即HTML)与服务器进行交互,而不是非超媒体格式(例如JSON)。

通过采用这两个约束,HDA架构在保持原始的RESTful架构的同时,SPA架构无法做到这一点。

特别是,HDA继续使用超媒体作为应用程序状态的引擎(HATEOAS),而大多数SPA则放弃了HATEOAS,转而使用客户端模型和数据(而不是超媒体)API。

HDA 架构是两种先前架构的综合:原始的多页面应用程序 (MPA) 架构和(相对)较新的单页面应用程序架构。

它试图抓住两者的优势:MPA 的简单性和可靠性,以及使用超媒体作为应用程序状态引擎的 REST 架构,同时提供更好的用户体验,在许多情况下与 SPA 相当。

注:超媒体驱动应用程序架构(Hypermedia-Driven Application Architecture)是一种设计和开发应用程序的方法,它强调使用超媒体元素(如链接和嵌入式资源)来驱动应用程序的行为。超媒体驱动应用程序架构与REST(表征状态转移)架构风格紧密相关,但它更注重在应用程序中使用超媒体作为应用状态(应用程序数据和行为的组合)的引擎。

超媒体驱动应用程序架构的核心思想是,通过将应用程序的各个部分链接在一起,可以创建一个更易于发现、扩展和维护的系统。这种架构的关键优点包括松耦合、可扩展性和灵活性,这意味着对系统的更改和扩展可以更容易地进行,而不会对现有功能产生负面影响。

以下是超媒体驱动应用程序架构的一些关键概念和原则:

  1. 资源:在超媒体驱动应用程序架构中,资源是信息的基本单位。资源可以是文档、图片、视频或其他类型的数据。每个资源都有一个唯一的标识符(如URL),用于标识和访问资源。

  2. 表征:资源的表征是资源的某种形式,它可以通过网络传输并呈现给客户端。表征可以是HTML、XML、JSON或其他格式的文档。

  3. 超媒体:超媒体是连接资源的链接和控件。超媒体使客户端可以通过单击链接或激活控件来导航到其他资源或执行操作。这种导航和操作的能力使应用程序具有动态性,因为客户端不需要预先知道所有可能的操作和资源位置。

  4. 超媒体控件:超媒体控件是一种特殊类型的超媒体元素,它不仅提供导航功能,还允许客户端执行操作。这些控件可以是表单、按钮或其他交互式元素,它们可以用于创建、更新或删除资源,或执行其他操作。

  5. 松耦合:超媒体驱动应用程序架构通过将资源链接在一起,而不是通过硬编码URL或资源标识符来实现松耦合。这意味着当资源的位置或结构发生变化时,客户端可以继续正常工作,而无需进行修改。

  6. 自描述消息:在超媒体驱动应用程序架构中,消息(如HTTP请求和响应)应包含足够的信息来描述其含义和处理要求。这使客户端可以根据消息内容自行确定如何处理消息,而无需依赖于外部实现。

标签:架构,超媒体,Hypermedia,应用程序,Driven,Application,HDA,资源,客户端
From: https://www.cnblogs.com/sap-jerry/p/17507446.html

相关文章

  • CS 131 Computer Vision: Foundations and Applications Fall 2014-2015
     CS131ComputerVision:FoundationsandApplications Fall2014-2015EventTypeDateDescriptionCourseMaterialsLecture1Tuesday September26Courseintroduction Computervisionoverview Courselogistics Introductionslides [pptx] [pdf] Logisticsslid......
  • sloans的application.properties
    #应用名称spring.application.name=spbsloans#应用服务WEB访问端口server.port=8999server.servlet.context-path=/spbsloans#配置mybatis##配置数据源信息spring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://l......
  • org.springframework.boot.builder.SpringApplicationBuilder.init([LjavalangObject;
    一SpringBoot2.0.4集成SpringCloud异常:org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V二、异常处理参考:缘起初学springcloud的朋友可能不知道,其实SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误,比如eureka注册了......
  • Android Application Task Activities的关系
    什么是Android Application?简单来说,一个apk文件就是一个Application。任何一个AndroidApplication基本上是由一些Activities组成,当用户与应用程序交互时其所包含的部分Activities具有紧密的逻辑关系,或者各自独立处理不同的响应。这些Activities捆绑在一起成为了一个处理特定需求......
  • XCode 4.3.2 如何新建 Window-based Application应用的简单例子
    XCode4以后,项目模版中没有了Window-basedApplication,跟它比较接近的项目模版是EmptyApplication.如下图的选择:我们想建一个Window-basedApplication,需要在EmptyApplication基础上做一些设置。下面是操作步骤,新建一个EmptyApplication默认的EmptyApplication项目包......
  • win7 下安装 Microsoft Web Application Stress Tool
    MicrosoftWebApplicationStressToolMicrosoftWebApplicationStressTool能有效测试一个网站的负载性能,这个软件可以通过脚本模拟100个强并发用户的访问,并模拟实际用户的一些点击操作,WAS还可以连接上远程Windows网站服务器的性能计数器(PerformanceCounter),通过对服务器性能(C......
  • ApplicationContext applicationContext 上下文 ApplicationListener
    ApplicationContextAware实现类在应用启动的时候就会初始化  对于ApplicationReadyEvent,官网的解释是:事件尽可能晚发布,以指示应用程序已准备好为请求提供服务。该事件的来源是SpringApplication本身,但要注意修改其内部状态,因为届时所有初始化步骤都将完成。顾名思义就是SpringA......
  • 什么是 SAP Commerce Cloud SmartEdit 的 webApplicationInjector.js
    SAPCommerceCloudSmartEdit是SAP提供的一种基于云的电子商务平台,旨在帮助企业轻松管理和优化他们的在线商店。SmartEdit是SAPCommerceCloud的一个功能强大的组件,用于简化网站内容的编辑和管理。通过SmartEdit,商家可以在一个易于使用的界面中轻松地修改和更新网站布局......
  • SpringBoot项目报错解决:“Error starting ApplicationContext. To display the condit
    SpringBoot项目报错:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.以下方案80%可以帮助您解决这些个‘可恶的’问题目录一、编译出问题二、代码格式导致的编译出问题三、请求接口重复四、......
  • What is API Gateway Notes, API Driven Dev Notes
    APIDrivenDevelopmentWhatisAPIDrivenDevelopment?APIDrivenDevelopmentisaprocessthatallowsdeveloperstofocusonAPIdesignbeforewritingcode.Theideais,beforeyoustartwritingyoursoftware,youfirstdesignandagreeonwhattheAPIw......