
volved. Concerning the CPU usage, the results show
that Protobuf reduces CPU usage by about 17% in
Application 1 and 18% in Application 2. This reduc-
tion can be attributed to Protobuf which requires sig-
nificantly less processing power for serialization and
deserialization compared to JSON. As a result, Pro-
tobuf’s efficiency becomes particularly evident under
high user loads, where it helps reduce CPU strain and
enhances overall system scalability. These findings
suggest that Protobuf can lead to more efficient re-
source utilization, especially in environments where
CPU resources are limited. For energy consump-
tion, the results illustrate that reduction is around 18%
and 19% for Application 1 and Application 2, respec-
tively. This significant energy saving is attributed to
Protobuf’s efficiency in data serialization and dese-
rialization processes, which require fewer resources
for parsing and transmitting smaller data. Regarding
memory consumption, the results show that the max-
imum memory reduction observed was around 1.3%
for Application 1 and 1.4% for Application 2 under
heavy user loads. However, this change is negligible,
as we do not have any significant impact on memory
usage. This is a good indication that the migration
to Protobuf yields positive results without introducing
any negative effects on memory consumption.
In summary, Protobuf consistently outperforms
JSON across all tested performance metrics, demon-
strating advantages in data size, response time, CPU
usage, and energy consumption, with no additional
memory overhead. This positions Protobuf as a
compelling choice for applications requiring efficient
serialization and deserialization, especially in high-
performance and resource-constrained environments.
7.3 Threats to Validity
Internal Threats. While a controlled testing envi-
ronment is useful for isolating variables, it might not
reflect real-world complexities like network latency
or fluctuating system load. Also, simulated work-
loads, although designed to mimic typical user inter-
actions, may not capture the intricacies of live envi-
ronments, which could lead to discrepancies in per-
formance metrics.
External Threats. While Protobuf is supported by
various programming languages, the results obtained
in this study specifically represent its performance
with Java web applications. However, Java-based
backend applications represent a wide range of in-
dustrial applications. To generalize these findings for
other languages (e.g., JavaScript), an empirical study
should be conducted.
8 RELATED WORK
Several approaches have been proposed to enhance
the performance of web applications by migrating
to more efficient technologies (Kennedy and Mol-
loy, 2009; Verhaeghe and et al., 2021; Darbord and
et al., 2023; Kaushalya and Perera, 2021; Rabetski
and Schneider, 2013; Lee and Liu, 2022a). While
our approach focuses on migrating the data serial-
ization, they address other aspects of web applica-
tion migration. Some approaches emphasize com-
munication protocol migration, including migration
from RPC to REST (Kennedy and Molloy, 2009),
REST to gRPC (Lee and Liu, 2022b), as well as
RMI to REST (Darbord and et al., 2023). Other
ones migrate the frontend framework including GWT
to Angular (Verhaeghe and et al., 2021), AngularJS
to Web Components (Ronde, 2021), Thymeleaf to
Angular (Eriksson, 2022), and AngularJS to Re-
act (Kaushalya and Perera, 2021). On the archi-
tectural side, attention has been given to migrating
from monolithic architectures to microservice-based
ones. Pinos et al. (Pinos-Figueroa and Le
´
on-Paredes,
2023) propose a refactoring strategy, while others rec-
ommend layered architecture designs (Zaragoza and
et al., 2022) or automated graph clustering techniques
to decompose monolithic systems using data flow-
driven approaches (Filippone and et al., 2023; Chen
et al., 2017). Other efforts focus on migration to
cloud-native architectures (Balalaie and et al., 2016),
or shifting from on-premises systems to Software as a
Service (SaaS) (Rabetski and Schneider, 2013; Sabiri
and Benabbou, 2015). Although these approaches
contribute to improving web applications, they do not
address the migration of data serialization formats.
Few approaches specifically target migrating data
serialization from JSON to Protobuf. Most focus
on transitioning from REST to gRPC but overlook a
thorough Protobuf migration. Yunhyeok Lee and Yi
Liu (Lee and Liu, 2022a) propose a manual approach
for migrating REST to gRPC using a simple case
study, but it lacks scalability for larger applications
and does not include performance evaluation. Michal
ˇ
Stefani
ˇ
c (
ˇ
Stefani
ˇ
c, 2022) offers guidelines for migrat-
ing from REST microservices to gRPC but overlooks
the migration from JSON to Protobuf. Although the
study uses an industrial example, it lacks automa-
tion techniques for streamlining the migration pro-
cess. Additionally, while the study discusses data
exchange size, it does not measure key performance
aspects like response time, memory consumption, or
energy efficiency. Berg and Redi (Berg and Me-
brahtu Redi, 2023) focus on analyzing data exchange
size and latency but omit key performance metrics
Enhancing Data Serialization Efficiency in REST Services: Migrating from JSON to Protocol Buffers
199