2021SC@SDUSC

目录

一、RPC框架介绍

二、workflow在windows环境下的安装配置

2.1 CMake下载

2.2 OpenSLL下载

2.3 workflow编译

2.3.1 CMake生成VS项目

2.3.2 CMake生成tutorial工程

2.3.3 运行wegt示例

三、小组分工


一、RPC框架介绍

workflow是搜狗自研开源RPC框架,采用C++实现。

RPC全称Remote Procedure Call,是远程方法调用,是一种远程间通讯方式,它主要用来解决分布式系统中服务间调用的问题,使client可以像调用本地函数一样调用远程函数。

一个RPC的核心核心功能由五个部分组成,分别是Client,Client Sub,Server Sub,Server和Network Service,它们各自的功能如下:

Client:进行服务调用

Client Sub:将客户端的请求参数数据打包成网络消息(序列化),传递给服务端

Server Sub:接受客户端消息并解码(反序列化),根据解码结果调用本地服务

Server:服务提供

Network Service:底层传输模块

rpc核心功能图

实现上述功能图并搭建一个RPC框架有以下三个核心问题需要解决:

  • 服务寻址
  • 数据流的序列化和反序列化
  • 网络传输

二、workflow在windows环境下的安装配置

workflow采用CMake作为构建系统,依赖OpenSSL,编译workflow前需要先安装CMake和OpenSSL

2.1 CMake下载

CMake下载根据系统环境下载对应的版本,注意选择.msi格式文件。

选择自动添加环境,安装后不用手动添加环境。

2.2 OpenSLL下载

OpenSSL下载 根据系统环境下载对应的版本,注意不要选择light版本,因为light版本中不包含include和lib目录,无法正常编译

​​​

2.3 workflow编译

2.3.1 CMake生成VS项目

打开CMake,在source code处输入workflow文件夹目录,在binaries处输入workflow文件夹目录+

/build(cmake会自动生成build文件夹)

点击Configure,选择确认创建build文件夹,配置编译器。

配置好后点击Generate,完成后Cmake提示Generating done。

打开build文件夹中的workflow.sln,选择INSTALL然后运行。

2.3.2 CMake生成tutorial工程

打开CMake,在source code处输入tutorial文件夹目录,在binaries处输入tutorial文件夹目录+

/build(cmake会自动生成build-tutorial文件夹)

​​​​​​​

点击Configure,选择确认创建build-tutorial文件夹,配置编译器,配置好后点击Generate。完成后打开build-tutorial文件夹中的tutorial.sln,选择wegt然后运行。

2.3.3 运行wegt示例

打开OpenSSL根目录,找到libcrypto-3-x64.ddl和libssl-3-x64.ddl两个文件,复制到C:\Windows\ System32。

打开workflow目录下tutorial文件夹下的Debug文件夹,找到wegt.exe文件然后运行。此处若直接双击运行wegt.exe文件,控制台会一闪而过,看不到运行结果。需要在cmd中运行wegt.exe 。

wegt程序从stdin读取http/https URL,抓取网页并把内容打印到stdout,并将请求和响应的http header打印在stderr。因此运行时需要输入某个网页,以sogou.com为例,运行结果如下图:

​​​​​​​

三、小组分工

本项目主要分析workflow中服务寻址、序列化和反序列化、网络传输的实现,我负责网络传输模块,以下是小组分工:

成员1:服务寻址

博客地址:成员1

成员2:数据流的序列化和反序列化

博客地址:成员2

成员3:网络传输

博客地址:成员3

搜狗workflow项目研究(一)综述相关推荐

  1. 搜狗workflow项目研究(三)线程池

    2021SC@SDUSC 目录 一.结构 二.接口 三.创建线程池(创建消费者) 四.新增任务(生产者 put task) 五.总结 本周的主要工作是初步研究线程池,包括线程池的结构.线程池的接口以及 ...

  2. 搜狗开源项目workflow 综述

    2021SC@SDUSC 项目分工 我负责了解workflow如何实现服务寻址,远程过程调用中包含三个角色的节点分别是服务调用方.服务提供方.注册中心,可靠的服务寻址方式主要是为了提供服务的发现,是R ...

  3. 【项目调研+论文阅读】(目录)中文实体识别研究方法综述 day6

    文章目录 一.基于词典和规则的方法 二.基于统计机器学习的方法 1.隐马尔可夫模型(HiddenMarkovMode,HMM)的方法 2.基于最大熵(MaxmiumEntropy)的 方 法 3.基 ...

  4. 计算机网络信息中心韩文静,语音情感识别研究进展综述_韩文静

    软件学报ISSN 1000-9825, CODEN RUXUEW E-mail: jos@http://www.wendangwang.com Journal of Software,2014,25( ...

  5. 掌握基本技能,做好科学研究——适用于毕业课题/科研竞赛/项目研究

    前言: 结合自身毕业课题/科研竞赛/项目研究经验,总结传授放之四海而皆准的科研技能,不求面面俱到,但求精炼实用(不特别注明,都是针对WinXP系统操作). (1)精心准备 初到实验室,面对一台新的电脑 ...

  6. 复旦大学邱锡鹏教授:词法、句法分析研究进展综述

    本文为第十六届自然语言处理青年学者研讨会 YSSNLP2019 报告<词法.句法分析研究进展综述>的简要文字整理,本报告主要回顾词法.句法领域的最新研究进展. 关于报告人: 邱锡鹏,复旦大 ...

  7. 句法依存分析_复旦大学邱锡鹏教授:词法、句法分析研究进展综述

    本文为第十六届自然语言处理青年学者研讨会 YSSNLP2019 报告<词法.句法分析研究进展综述>的简要文字整理,本报告主要回顾词法.句法领域的最新研究进展. 关于报告人: 邱锡鹏,复旦大 ...

  8. 水声被动定位中的机器学习方法研究进展综述

    水声被动定位中的机器学习方法研究进展综述 人工智能技术与咨询 来源:<信号处理>,作者牛海强等 摘 要: 本文对基于机器学习方法的水声被动定位研究进展进行了综述.所涉及的机器学习方法有多层 ...

  9. 多模态学习(Multimodal Deep Learning)研究进展综述(转载)

    转载: AI综述专栏--多模态学习研究进展综述 https://zhuanlan.zhihu.com/p/39878607 文章目录 一.引言 二.主要研究方向及研究进展 (一)多模态表示学习 (二) ...

最新文章

  1. python 列表算平均分_python平均列表
  2. Java Web项目第二次总结
  3. 如何创建Kafka客户端:Avro Producer和Consumer Client
  4. 单行文本与多行文本省略文本
  5. 大学计算机基础知识点图文,大学计算机基础知识点超详细总结
  6. [转]如何设置win7一直以管理员身份运行
  7. 手把手带你入门Python爬虫(一、工欲善其事必先利其器)
  8. java可用于开发两类程序_此内容适合初学者java基础知识 第一章
  9. php语言输出九九乘法表_PHP 输出九九乘法表
  10. 原型对象prototype与继承
  11. Oracle备份数据库
  12. 删除linux系统 mbr,Windows 10 下安全删除 Linux 系统
  13. 智慧农业智能节水灌溉 机井灌溉控制器
  14. 金融信创虽风正时济,应对挑战该如何乘风破浪(一)
  15. GB2312转unicode
  16. 《从0到1:CTFer成长之路》1.3 任意文件读取漏洞
  17. 微信转账php开发心得
  18. alot英文怎么读_lots是什么意思_lots怎么读_lots翻译_用法_发音_词组_同反义词_签( lot的名词复数 )-新东方在线英语词典...
  19. 圣诞节海报做了吗?为你准备了圣诞素材
  20. 如何让微信公众号快速接入智能客服机器人?

热门文章

  1. Gateway 上网本 无线上网驱动 (无线网卡型号 Atheros AR5007EG Wireless Network Adapter)
  2. SQL Server 存储(3/8):理解GAM和SGAM页
  3. 计算机毕业论文选题推荐|软件工程|系列一
  4. Android平台签名证书(.keystore)生成
  5. 中国移动:以改革为动力 促进科技创新发展
  6. hp1005mfp打印机驱动下载,打印机驱动安装方法
  7. DevTools failed to load SourceMap各种警告
  8. Win9x在Intel和AMD新处理器虚拟机抽风的原因及补丁
  9. UltraISO 安装系统时,提示无法在驱动器0分区上安装windows / WINPE类软件重装系统无法正常开机 解决办法
  10. 迪克斯特拉算法--Dijkstra's Algorithm