- 博客(28)
- 收藏
- 关注
原创 2021SC@SDUSC-山大智云源码分析(13)
2021SC@SDUSCseafile中的rpc过程根据之前的分析,我已经知道seafile-server的作用之一是提供rpc给前端,即seahub。因此,在seahub源码中,也应存在对searpc的调用。接下来对seahub源码中相关部分进行分析。在文档中得知,searpc本身并不具有创建服务器和客户端的能力,需要手动使用socket等库建立端口监听,客户端需要自行向服务端建立连接。因此,主要目的是寻找建立连接部分的代码。SEARPC机制在源码可以看到很多地方通过import seaser
2021-12-27 21:45:39 1257
原创 山东大学人机交互考试重点
人机交互定义广义人机交互是关于设计、评价和实现供人们使用的交互式计算机系统,且围绕这些方面的主要现象进行研究的学科广义上讲,人机交互是以实现自然、高效、和谐的人机关机为目的,与之相关的理论和技术都在其研究范畴,是计算机科学、心理学、认知科学以及社会学等学科的交叉学科研究开发新的人机交互设备、技术和理论,以实现无处不在计算环境下的以用户为中心的交互式计算机系统,使其能够增强人的创造力,解放人类的大脑、改善人与人之间的交流与协作狭义从技术上来讲,是研究人与计算机之间的信息交换,它主要包括人到计算机和
2021-12-27 19:56:08 1635
原创 2021SC@SDUSC-山大智云源码分析(12)
2021SC@SDUSC基于python的searpc实现(2)在上一篇博客中,我们观察了基于python的searpc的关键机制,即searpc-server,searpc-client与客户端传输函数,在本篇博客中我们在观察一下其实现细节.传输机制我们已经知道,对于一个rpc框架来说,其客户端与服务器的传输机制是非常重要的.我们通过观察test_pysearpc.py文件来了解其传输机制与具体调用过程.在这个文件中,分别定义了普通传输方式的和基于named-pipe的searpc.searp
2021-12-25 16:40:40 1485
原创 2021SC@SDUSC-山大智云源码分析(10)
2021SC@SDUSC异步接收消息的searpc客户端searpc的客户端也支持了异步方法,在demo-async-client.c可以看到其使用方法.在SearpcClient的定义中,已经为异步方法提供了支持;同时也定义了异步调用rpc函数的一些方法,如searpc_client_async_call__{}等struct _SearpcClient { TransportCB send; void *arg; AsyncTransportSend async
2021-12-11 22:17:44 1677
原创 2021SC@SDUSC-山大智云源码分析(8)
Implementatin of a searpc transport based on named pipe前言经过之前的分析,已经分析完成了searpc服务器、客户端以及二者连接的基本原理。接下来对searpc-name-pipe-transport文件中的基于命名管道的searpc传输的应用进行分析。named-pipe管道是一个有两端的对象。一个进程向管道写入信息,而另一个进程从管道读取信息。其本质是用于进程间通信的共享内存区域,确切的说是线程间通信方法。命名管道是全双工的,且支
2021-11-27 21:20:22 314
原创 2021SC@SDUSC-山大智云源码分析(7)
2021SC@SDUSC目录2021SC@SDUSC探究marshal与signaturesearpc-codegen.pygen_marshal_functionsgen_marshal_register_functiongen_signature_listsearpc_marshal.hsearpc-signature.h总结探究marshal与signature在之前的分析中,我们已经得知了在服务器端调用到rpc函数时marshal的重要作用,然而由于其
2021-11-20 15:35:38 393
原创 2021SC@SDUSC-山大智云源码分析(6)
2021SC@SDUSC目录2021SC@SDUSCserver遗留问题searpc_server_call_functionsearpc_compute_signatureregister_funcsearpc_server_register_marshalsearpc-codegen.pytype_tableserver遗留问题searpc_server_call_functionchar* searpc_server_call_function (c
2021-11-14 01:06:04 446
原创 2021SC@SDUSC-山大智云源码分析(5)
2021SC@SDUSC2021SC@SDUSC目录2021SC@SDUSCsearpc项目结构分析searpc-serversearpc_server_initsearpc_create_servicesearpc_server_register_functionsearpc_remove_sercviceMarshal functionserror_to_jsonsearpc_server_finalsearpc_server_register_mars
2021-11-07 14:48:05 167
原创 2021SC@SDUSC-山大智云源码分析(3)
前言在上一篇博客里,笔者主要对libsearpc项目中demo的server部分进行了分析,我们已经得知,searpc服务端的工作流程主要分为一下三部分: 初始化searpc服务器 创建服务并注册函数 建立接受请求部分相关代码 其中在第三部分,需要监听socket从而能够接收到请求,其中调用了头文件searpc-demo-packet.h中定义的函数searpc-demo-packet.hstatic ssize_t /*
2021-10-24 14:19:22 268
原创 2021SC@SDUSC-山大智云源码分析(2)
2021SC@SDUSC目录前言-libsearpc项目介绍及结构项目结构demo分析searpc-demo-seaver.c项目中重要概念初始化searpc服务器创建服务并注册函数接受并处理请求监听socket其他前言-libsearpc项目介绍及结构根据文档以及个人研究,seafile的所有与数据库相关操作、文件系统操作都在seafile-server项目中,而seahub则是一个django服务器,也就是说,seafile有两个服务器,那么这..
2021-10-17 14:56:04 336
原创 2021SC@SDUSC-山大智云源码分析(1)
2021SC@SDUSC目录前言Seafile-server源码分析ci/run.py/searpc/searpc.go/lib/rpc_table.py/python/seafile/rpcclient.py/python/seaserv/api.py/common/rpc-service.c/server/seaf-server.c结论前言libsearpc是rpc框架,而libevhtp是事件通知框架,两者的作用都是使客户端能够调用到所需要的服务
2021-10-10 00:06:47 620 1
原创 2021SC@SDUSC-山大智云项目综述
2021SC@SDUSC目录2021SC@SDUSC综述项目简介项目分析seafile其他功能配置项目分工项目部署创建 Docker 容器安装中文语言安装先决条件准备数据库下载源文件编译并安装创建配置文件启动 Seafile-server启动 Seahub准备环境变量创建 Seahub 表格创建超级管理用户启动 Seahub最终文件结构部署前端(React)开发环境说明部署Seafevents 配置
2021-09-30 13:21:01 741
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人