paperbot · PL 论文追踪

全部论文 待读 收藏

P2 RPCover: Recovering gRPC Dependency in Multilingual Projects

RPCover:恢复多语言项目中的 gRPC 依赖
ASE 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)2023匹配度 3/10 · 该论文属于静态程序分析中的依赖/调用图恢复,但应用领域是多语言微服务 gRPC,与用户核心关注的 ML 系统与 Agentic 程序静态分析、LLM 与静态分析/形式化验证结合、浮点程序分析、贝叶斯程序分析均无直接关系;其多语言基准构建虽与用户对缺失 benchmark 的兴趣有形式上的相似,但领域相差较远。引用 4 inbox
Aoyang Fang, Ruiyu Zhou, Xiaoying Tang, Pinjia He
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出跨语言静态 gRPC 依赖恢复框架 RPCover,并构建首个多语言 gRPC 微服务基准 RPCoverBench。

微服务架构中 RPC 调用广泛,但现有服务调用图构建多依赖动态分析,需要预先部署且只能捕获特定时间窗口内的调用关系;静态方法虽更稳定完整却研究不足。本文提出 RPCover,一个面向多语言项目的 gRPC 依赖恢复框架,通过静态分析跨编程语言的 gRPC 调用实现服务互连。由于缺少多语言 gRPC 微服务基准,作者构建了首个包含复杂 gRPC 调用关系的多语言基准 RPCoverBench。在单语言基准 DeathStarBench 与 RPCoverBench 上评估,RPCover 可恢复 99.33% 的 gRPC 调用用例,开销低于单语言语义依赖分析器的 200%。

问题
如何在不预先部署服务的情况下,静态、完整地恢复多语言微服务项目中的 gRPC 服务依赖与调用图。
方法
提出 RPCover,通过静态分析跨语言 gRPC 调用恢复服务间依赖,并构建多语言 gRPC 微服务基准 RPCoverBench。
评估
在 DeathStarBench 和 RPCoverBench 上评估,RPCover 恢复 99.33% 的 gRPC 调用用例,开销低于单语言语义依赖分析器的 200%。
原文摘要(Abstract)

The advent of microservice architecture has led to a significant shift in the development of service-oriented software. In particular, the use of Remote Procedure Call (RPC), a mode of Inter-Process Communication (IPC) prevalent in microservices, has noticeably increased. To figure out the relationships between services and obtain a high-level understanding of service-oriented software, a line of recent work focuses on the dynamic construction of service call graphs, which relies on the preliminary deployment of services and only captures the calling relationships within a specific time frame. Meanwhile, static methods avoid the need for pre-deployment and often provide a more stable and complete graph compared to dynamic techniques. However, research and practical applications of static call graph construction remain relatively unexplored. This paper introduces RPCover, a novel gRPC dependency recovery framework that facilitates the interconnection of services across various programming languages using their static gRPC calls. In addition, due to the lack of a multilingual microservice benchmark that uses gRPC, we build the first multilingual benchmark RPCoverBench that contains complex gRPC call relations. RPCover has been evaluated on a single language benchmark (DeathStarBench) and our multilingual benchmark (RPCoverBench). The results show that RPCover effectively recovers 99.33% of the use cases of gRPC calls with less than 200% of the overhead compared with a single-language semantic dependency analyzer.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{FangZTH23,
  title = {RPCover: Recovering gRPC Dependency in Multilingual Projects},
  author = {Aoyang Fang and Ruiyu Zhou and Xiaoying Tang and Pinjia He},
  booktitle = {ASE},
  year = {2023},
  doi = {10.1109/ase56229.2023.00108}
}