-
服务开发技术2024
一、简答(5*8分) 1、简述RESTful服务开发设计的基本步骤 2、资源、资源的表述、资源表述状态转移的关系 3、常见HTTP中幂等的操作 4、说出至少三个SOA的协议 5、服务怎样实现前后端分离(忘了具体咋说的了) 6、为什么要遵循OpenAPI规范 7、简述服务在软件互操作中的作用 8、无状态性的重要性(忘了是让解释无状态性还是让说重要性) 二、 618将至,这段时期的交易量将会是平常的10倍,如果让你担任电商平台服务的设计者,你会采用哪些技术手段?(15分) 三、 有一个查询天气的服务。可以查询某地当天的天气情况,包括温度、风速等,也可以查看未来7天一周的天气,用户可以收藏常用的城市,可以在天气情况下进行评论 (1)要设计什么资源(5分) (2)有哪些操作(10分) 四、DDD 如何设计服务(15分) 五、Jersy代码(15分) @POST @Path(/{id}/{username}/{phone}) @Produces(application/JSON) public String create(@PathParam(“id”) String id, @PathParam(“username”) String name, @PathParam(“phone”) String phone){ UserDAO.create(id, name, phone); return "Create User:"+id+", "+name+", "+phone+" Successfull!"; } (1)这段代码实现了什么功能 (2)四个注解的作用
-
服务开发技术2023
一【8*5分】 面向服务的三种角色和三种操作 面向服务架构中的三个角色是: 服务使用者:服务使用者可以是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,获得服务描述(接口契约),通过传输绑定服务,并且调用获得服务的功能。 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。 服务注册中心:服务注册中心是服务发现的支撑者。它包含一个可用服务的存储库,以及提供服务使用者查找服务和服务提供者发布服务的接口。 面向服务架构中的三个操作是: 发布:为了使服务可访问,需要将服务描述发布到一个公共空间(服务注册中心)以使服务使用者可以发现和调用它。 发现:服务请求者通过查询服务注册中心来找到满足其要求和标准的服务,获取服务的描述文件并定位服务端口。 绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描述中的信息来绑定协议、调用服务。 服务在软件交互操作的作用 服务可以支持软件的互操作性,使得不同来源、不同平台、不同语言的服务可以通过标准化的接口和协议进行交互和组合。服务中的三种协议的本质就是软件互操作性和可复用性。 Chat:功能扩展与业务逻辑实现;数据交换与共享;跨平台兼容;分布式系统支持;安全性和访问控制;性能优化和扩展性 ROA与RPC的区别(2022) OpenAPI作用(2022) HTTP幂等性操作 PUT、DELETE、GET、HEAD、OPTIONS 和 TRACE Restful服务开发步骤 1.资源分析与设计 2.暴露资源可执行接口 3.设计客户端表述 4.设计发给客户端的表述 5.多种资源整合到一起 6.规划服务交互的响应 SOA协议(至少三种) SOAP、UDDI、WSDL 微服务架构的特点(至少两种)(2022) 二【15分】 618 将至,这段时期的交易量将会是平常的 10 倍,如果让你担任电商平台服务的设计,你会采用哪些技术手段,体现RESTful的什么特性 1. 微服务架构:采用微服务架构可以将系统拆分为多个小型服务,每个服务专注于特定的业务功能。这样可以提高系统的灵活性和可维护性,并且能够更好地处理高流量情况下的请求。 2. 缓存策略:使用缓存技术(如 CDN、Redis、Memcached 等)来缓存静态内容、频繁访问的数据或者计算结果,减轻数据库和服务端的压力,提高响应速度和用户体验。 3. 异步方式 4. 无状态 5. 状态性转移(模仿咖啡的例子,换个应用场景而已) 三【15分】 RESTful 服务的安全性设计需要考虑的三个方面?以及这三个方面可采取的措施 数据传输安全...
-
服务开发技术2022
一、简答题(8个*5分,共40分) ROA和RPC的区别 “ROA” 和 “RPC” 指的是两种不同的 API(应用程序编程接口)调用风格: RPC (Remote Procedure Call) - 远程过程调用 定义: RPC是一种通信协议,允许程序在不显式了解远程通信细节的情况下调用另一个地址空间(通常是网络上的另一台计算机)中的过程或函数。它就像在本地调用函数一样简单。 特点: 通常是面向操作的,即关注要执行的动作。 请求通常包含要调用的函数名和参数。 没有强制的资源概念。 例如:CreateInstance(parameters...)、DeleteUser(parameters...)。 应用: 传统上很多Web服务和内部系统集成使用RPC风格。 ROA (Resource-Oriented Architecture) - 资源导向架构 定义: ROA是一种API设计风格,它将系统中的所有可操作实体视为资源。这些资源通过URI(统一资源标识符)进行识别,并通过标准HTTP方法(GET, POST, PUT, DELETE等)进行操作。RESTful API就是ROA的一种流行实现。 特点: 面向资源的,即关注要操作的数据实体。 使用标准HTTP方法(GET, POST, PUT, DELETE)对资源进行CRUD(创建、读取、更新、删除)操作。 URI代表资源,例如:/users/{id}、/products/{id}。 更符合Web的语义和架构。 应用: 现代Web服务、微服务架构中广泛采用。 2.资源、资源的表述、资源表述状态转移的关系 资源是一个很宽泛的概念,任何寄宿于Web可供操作的事物均可视为资源,就其本质而言,任何足够重要并被引用的事物都可以是资源.(URI的都可以为资源) 所以资源的表述实际是一段对于资源(在某个特定时刻的)状态的描述;客户端请求资源。往往也是想得到资源的当前状态 在RESTful架构中,资源是核心概念之一,资源的表述和状态转移也是RESTful架构的基本特征,它们之间的关系如下: 1. 资源:在RESTful架构中,资源是指网络上的任何信息实体,可以是一个文件、一张图片,一段文字、一个对象或者任何可以命名的事物,每个资源都有一个唯一的标识符(URI)来表示它在网络上的位置。 2....
-
计算机网络-Wireshark探索IPv4
使用工具 Wireshark curl(MacOS) traceroute: This lab uses “traceroute” to find the router level path from your computer to a remote Internet host. traceroute is a standard command-line utility for discovering the Internet paths that your computer uses. It is widely used for network troubleshooting. It comes pre-installed on Window and...
-
操作系统-Nachos
项目结构 bin: Nachos用户实现MIPS程序目标码变化的实用程序以及源码, machine: MIPS虚拟机模拟系统代码 network: 网络管理部分,课设部分没有提及,不用管 filesys: 文件管理部分系统代码 threads: 线程管理部分系统代码 userprog: 用户程序部分系统代码 test: 一些测试用的程序 进程调度管理 原有的Nachos调度流程,直接将线程添加到就绪链表的末尾,实现了先来先服务的方式,默认所有线程的优先级都相同。 实现静态优先级应该就是在线程创建时就确定其优先级并在之后不能修改,直到线程终结。
-
人工智能-手写识别学习
pytorch 传统网络实现 依赖库安装 pip install numpy torch torchvision matplotlib 完整代码 import torch from torch.utils.data import DataLoader from torchvision import transforms from torchvision.datasets import MNIST import matplotlib.pyplot as plt class Net(torch.nn.Module): def __init__(self): super().__init__() self.fc1 = torch.nn.Linear(28*28, 64) self.fc2 = torch.nn.Linear(64, 64) self.fc3 = torch.nn.Linear(64, 64) self.fc4 = torch.nn.Linear(64, 10) def...
-
编译器-PL0解释程序
这次实验不再进行详细说明,参考资料中都讲的很好,主要针对难点进行阐述,难点懂了,这个实验几乎就完成了 ✅。 难点 DL 和 SL 这次实验我一直搞不懂 DL 和 SL 的区别,看了文章也还没搞懂,最终最终问了 AI,让它帮我详细解释解释,才慢慢搞懂。 其实,结合代码来讲是最“形象”🉐。以下的代码来自我的PL0-Compiler仓库中的测试样例 2。 var x; procedure B; var y; begin y := x; end; procedure A; begin call B; end; begin x := 1; call A; end. 上述代码的调用关系为: 主函数(main)–调用->A A–调用->B SL 静态链和 DL 动态链都记录了当前层的上一层的信息,但这上一层和上一层之间也并不是完全一样。 SL 静态链:从代码中看程序的嵌套结构,过程 A 和 B...
-
操作系统-相关系统的安装
Windows Windows XP 博客教程: https://blog.csdn.net/linxinfa/article/details/112768896 虚拟磁盘类型照着文章选就可以,虽然可能推荐的是 SCSI,但 IDE 比较适合旧版操作系统(如 Windows XP 或 DOS—),而 SCSI 适用于新版操作系统(如 Windows 10 或现代 Linux)。 Linux Debian 安装 制作一个 Debian 的可启动 USB 大多数设备都有一个预装的操作系统;但是,你可以根据自己的喜好或要求改变操作系统。如今,计算机甚至没有内置的 DVD/CD 驱动器;因此,用户除了改用新方法外别无选择。通常情况下,笔式驱动器被用来获得新的操作系统;你可以通过使用操作系统的 iso 图像使 USB 可启动。为了使其可启动,有几个工具可以帮助从 iso 镜像中提取重要文件,然后将这些文件添加到 USB 驱动器中,使其发挥作用。 以下是在你的上级操作系统中必须具备的先决条件包。 Debian 11 的 ISO 镜像:使 USB 可启动的主要要求是获得操作系统的 ISO 镜像;要下载蝶变 11 的 ISO...
-
操作系统-PA1
时长:15h STFSC nemu/include/macro.h 宏&预处理运算符 https://en.cppreference.com/w/cpp/preprocessor https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros(来自上面的链接) // macro stringizing #define str_temp(x) #x #define str(x) str_temp(x) 使用两个宏逐步展开,是为了防止 x 传入一个宏,如 #define VALUE 42 #define str_temp(x) #x // 第一层,字符串化操作 #define str(x) str_temp(x) // 第二层,触发宏参数的展开 str(VALUE) 展开过程: str(VALUE) 被替换为 str_temp(VALUE)(第一层宏只将 VALUE 传递给第二层)。 在展开 str_temp(VALUE) 时:VALUE 首先被展开为 42,然后作为 std_temp 的参数传入。然后 str_temp 对 42 应用字符串化操作符 #,结果是...
-
视频下载
mp4 https://loycine.github.io/post/ji-zhu-xiao-zhan-ru-he-xia-wang-ye-shang-de-shi-pin/ https://www.bilibili.com/opus/672400086946283521 m3u8