IP Library › Granted Patent US 12,613,711
Granted Patent B2
US 12,613,711 · App. 18/341,834 · Granted Apr 28, 2026

Shared library conversion

Inventors: Heng Wang (Beijing, CN); Tao Guan (Toronto, CA); Zhan Peng Huo (Beijing, CN); Sandhya Venugopala (Bangalore, IN); Xiao Ling Chen (Beijing, CN)
Assignee: International Business Machines Corporation
G06F9/44521
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,613,711
App. No.
18/341,834
Granted
Apr 28, 2026
Kind
B2
Abstract

Converting shared libraries is provided. A shadow shared library is generated based on symbol information of each respective symbol of an original shared library. A symbol receiver that corresponds to the shadow shared library is generated. The symbol receiver corresponding to the shadow shared library and the original shared library are deployed as a microservice on a set of servers.

Claims (42)

1 . A computer-implemented method for converting shared libraries, the computer-implemented method comprising:

parsing, by a computer, using a binary utility, an original shared library to identify symbol information corresponding to each respective symbol of the original shared library, the symbol information includes a symbol name, a symbol entry address, and a symbol body size for each respective symbol of the original shared library;

extracting, by the computer, the symbol information that includes the symbol name, the symbol entry address, and the symbol body size for each respective symbol of the original shared library;

generating, by the computer, a shadow shared library based on the symbol information of each respective symbol of the original shared library;

generating, by the computer, a symbol receiver that corresponds to the shadow shared library; and

deploying, by the computer, the symbol receiver corresponding to the shadow shared library and the original shared library as a microservice on a set of servers.

2 . The computer-implemented method of claim 1 , further comprising:

installing, by the computer, the shadow shared library and an application associated with the microservice that includes the symbol receiver corresponding to the shadow shared library and the original shared library on a set of client devices.

3 . The computer-implemented method of claim 2 , wherein the application via the shadow shared library invokes the microservice that includes the symbol receiver corresponding to the shadow shared library and the original shared library to perform a set of functions, the shadow shared library sends remote procedure calls corresponding to the microservice to the symbol receiver.

4 . The computer-implemented method of claim 3 , wherein the application links to the shadow shared library without recompiling or relinking of the shadow shared library.

5 . The computer-implemented method of claim 3 , wherein the shadow shared library contains same symbols as symbols contained in the original shared library and a symbol body of respective symbols contained in the shadow shared library includes a remote procedure call ability and a determined amount of body padding to ensure that an entry address of a next symbol in the shadow shared library is equal to a same entry address of a same next symbol in the original shared library.

6 . The computer-implemented method of claim 5 , wherein the symbol receiver receives the remote procedure calls from the shadow shared library and determines an intercept symbol entry address for respective symbols in the original shared library based on the determined amount of body padding in the symbol body of respective symbols contained in the shadow shared library.

7 . The computer-implemented method of claim 5 , wherein the determined amount of body padding is in a form of a bubble instruction.

8 . The computer-implemented method of claim 1 , further comprising:

receiving, by the computer, an input to convert the original shared library to the shadow shared library;

retrieving, by the computer, the original shared library from a shared library database in response to receiving the input to convert the original shared library to the shadow shared library; and

selecting, by the computer, the binary utility to parse the original shared library.

9 . The computer-implemented method of claim 1 , wherein the set of servers where the symbol receiver corresponding to the shadow shared library and the original shared library are deployed as the microservice is located in a set of clouds of a hybrid cloud environment.

10 . A computer system for converting shared libraries, the computer system comprising:

a communication fabric;

a storage device connected to the communication fabric, wherein the storage device stores program instructions; and

a processor connected to the communication fabric, wherein the processor executes the program instructions to:

parse, using a binary utility, an original shared library to identify symbol information corresponding to each respective symbol of the original shared library, the symbol information includes a symbol name, a symbol entry address, and a symbol body size for each respective symbol of the original shared library;

extract the symbol information that includes the symbol name, the symbol entry address, and the symbol body size for each respective symbol of the original shared library;

generate a shadow shared library based on the symbol information of each respective symbol of the original shared library;

generate a symbol receiver that corresponds to the shadow shared library; and

deploy the symbol receiver corresponding to the shadow shared library and the original shared library as a microservice on a set of servers.

11 . The computer system of claim 10 , wherein the processor further executes the program instructions to:

install the shadow shared library and an application associated with the microservice that includes the symbol receiver corresponding to the shadow shared library and the original shared library on a set of client devices.

12 . The computer system of claim 11 , wherein the application via the shadow shared library invokes the microservice that includes the symbol receiver corresponding to the shadow shared library and the original shared library to perform a set of functions, the shadow shared library sends remote procedure calls corresponding to the microservice to the symbol receiver.

13 . The computer system of claim 12 , wherein the application links to the shadow shared library without recompiling or relinking of the shadow shared library.

14 . A computer program product for converting shared libraries, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:

parse, using a binary utility, an original shared library to identify symbol information corresponding to each respective symbol of the original shared library, the symbol information includes a symbol name, a symbol entry address, and a symbol body size for each respective symbol of the original shared library;

extract the symbol information that includes the symbol name, the symbol entry address, and the symbol body size for each respective symbol of the original shared library;

generate a shadow shared library based on the symbol information of each respective symbol of the original shared library;

generate a symbol receiver that corresponds to the shadow shared library; and deploy the symbol receiver corresponding to the shadow shared library and the original shared library as a microservice on a set of servers.

15 . The computer program product of claim 14 , wherein the program instructions further cause the computer to:

install the shadow shared library and an application associated with the microservice that includes the symbol receiver corresponding to the shadow shared library and the original shared library on a set of client devices.

16 . The computer program product of claim 15 , wherein the application via the shadow shared library invokes the microservice that includes the symbol receiver corresponding to the shadow shared library and the original shared library to perform a set of functions, the shadow shared library sends remote procedure calls corresponding to the microservice to the symbol receiver.

17 . The computer program product of claim 16 , wherein the application links to the shadow shared library without recompiling or relinking of the shadow shared library.

18 . The computer program product of claim 16 , wherein the shadow shared library contains same symbols as symbols contained in the original shared library and a symbol body of respective symbols contained in the shadow shared library includes a remote procedure call ability and a determined amount of body padding to ensure that an entry address of a next symbol in the shadow shared library is equal to a same entry address of a same next symbol in the original shared library.

19 . The computer program product of claim 18 , wherein the symbol receiver receives the remote procedure calls from the shadow shared library and determines an intercept symbol entry address for respective symbols in the original shared library based on the determined amount of body padding in the symbol body of respective symbols contained in the shadow shared library.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2023
From: WANG, HENG; GUAN, TAO; HUO, ZHAN PENG; VENUGOPALA, SANDHYA; CHEN, XIAO LING
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064069/0817 →
Continuity (1)
Related Publication 20250004793A1 · Jan 2, 2025
References Cited (12)
US 5774722A · Gheith · 1998 [cited by applicant]
US 9116855B2 · Araki · 2015 [cited by examiner]
US 9569246B2 · Roehrig et al. · 2017 [cited by applicant]
US 11442725B1 · Chawda et al. · 2022 [cited by applicant]
US 12204881B2 · Zhang · 2025 [cited by examiner]
US 20050010911A1 · Kim et al. · 2005 [cited by applicant]
US 20180131764A1 · Suter et al. · 2018 [cited by applicant]
US 20210329100A1 · Knight · 2021 [cited by examiner]
US 20230092747A1 · Wang et al. · 2023 [cited by applicant]
WO 2025002732A1 · 2025 [cited by applicant]
De Toledo et al., “Improving Agility by Managing Shared Libraries in Microservices”, International Conference on Agile Software Development, XP 2020, Agile Processes in Software Engineering and Extreme Programming—Works… [cited by applicant]
PCT International Search Report and Written Opinion, dated Aug. 13, 2024, regarding Application No. PCT/EP2024/065291, 14 pages. [cited by applicant]