Corba 5
Corba 5
https://doi.org/10.1007/s13369-024-09474-9
Abstract
API design refers to the process of developing Application Programming Interfaces (APIs) that expose the functionality of
software applications to their clients. This paper provides a performance and availability-related analysis of three modern API
design techniques, namely Representational State Transfer, Google’s Remote Procedure Call Framework, and Apache Thrift
to practically show which of these techniques should be used in the implementation of the API Gateways for performance and
availability considering that the gateways undertake a crucial role as they are the backbone of communication in Microservices
Architecture and the performance and availability are two critical factors that determine how well API gateways can perform.
For our analysis, an API Gateway prototype for each of the three API design techniques was developed by using Microsoft’s
.NET framework, and load-tests against each of these three prototypes were performed and analyzed. The results of this paper
are expected to be helpful for both researchers and practitioners in the software industry who need to choose from different
industrial API design techniques for API Gateway development.
Keywords API Gateway · API design technique · Microservices architecture · REST · gRPC · Apache Thrift
123
Arabian Journal for Science and Engineering
123
Arabian Journal for Science and Engineering
is a general-purpose software development framework, was Montesi and Weber [11] evaluated different deployment
used in the C# language for the implementation of our API strategies/patterns for the common mechanisms found in
Gateway prototypes. In this context, .NET v4.8 was used MSA including API gateways. The authors proposed a
particularly because the existing code-base in the banking microservices programming language, named Jolie, for their
platform of the bank makes use of this particular version of deployment evaluation.
the .NET framework, and bank officials asked us to stick to Xu et al. [12] proposed a microservice security agent to
this version to avoid version-related possible problems that integrate an edge computing platform with an API gateway
may have been encountered in our prototypes’ implementa- for establishing a secure authentication mechanism. In this
tion. work, the authors implemented a REST-based API Gateway
The source code for the gRPC-based and Thrift-based API for communicating with services and configuring access con-
Gateway prototypes that were developed in the context of this trols. They also made use of the term round-trip-time (RTT)
paper was made available on GitHub. Links to this GitHub to demonstrate the efficiency of their API Gateway imple-
repository can be found in the supplementary material section mentation for real-world scenarios.
at the end of this paper. Lu et al. [13] proposed a microservice approach for IoT
The content that is provided in the rest of this paper is orga- systems where the “thing” in IoT was represented as a
nized as follows: In Sect. 2, earlier research work related to microservice. The authors argued that a microservice-based
our study has been summarized. In Sect. 3, the current state approach to building IoT systems could be combined with
of the art has been explained by providing background about patterns for microservices including API gateways. Their
the API design techniques being analyzed in this paper. Here, approach was experimented with by using two case studies of
our reasoning about the use of API design techniques for IoT systems in personal health management and connected
API Gateways particularly in MSA, and the limitation of our autonomous vehicle realms to show that interoperable, and
study have been explained. In Sect. 4, the experimental setup secure IoT services can be interconnected effectively via an
of our API Gateway prototypes for each of the API design API gateway.
techniques has been described in terms of performance effi- In [23], REST API performance was compared to
ciency and availability for analysis. In Sect. 5, our results advanced message queuing protocol (AMQP) by calculating
and comments have been presented. In Sect. 6, our conclu- the average number of messages that are being exchanged
sions have been drawn and possible future work has been for some time. Results of the work showed that AMQP out-
mentioned. performs REST for scenarios that require processing a large
amount of data.
Concerning API design in general, Afonso et al. [24] pre-
sented a combined semiotic and cognitive method to enhance
2 Related Work communication between designers and programmers for bet-
ter API design. Similar work was presented in [25] as an API
Our literature study has shown that the microservices-related framework to aid API designers in better organizing their
research area is relatively new and the number of published design decisions about business and technical concerns.
papers especially in the intersection of API Design, API Gate- There are also studies concerning other API design aspects
ways, and MSA is rather limited. such as usability. For example, Stylos et al. [26] proposed
Such intersection, for instance, exists in the communica- a general technique concerning the usability of API design
tion mechanisms in MSA involving API Gateways, such as choices particularly for identifying and preventing usability
circuit breakers, and service discovery agents. The studies problems in APIs. Similar work with more practical content
about these mechanisms do not only include the func- was made by Piccioni et al. [27] where authors systematically
tional design aspects of those software entities but also their observed the behavior of programmers in using a persistence
non-functional aspects, such as availability, interoperability, library API concerning flexibility and usability. In another
performance, scalability, security, and usability, which influ- work in this realm, Rauf et al. [28] conducted a literature
ence the quality of those entities including API Gateways. study to determine which API factors at which API devel-
Among these studies, Zhao et al. [10], for example, made opment phases could be used in the literature for usability
design proposals from a development efficiency perspective evaluation.
for implementing the functions that are provided by API Zuo et al. [29] proposed a scheme that could optimize the
Gateways in MSA, such as load balancing and automatic API Gateway implementation for performance and maintain-
service blowing. The authors conclude that Continuous opti- ability. The authors achieved this optimization by reducing
mization of the API gateway can make the development more the coupling degree of core services in the API Gateway
concise and efficient, and can achieve high-quality interac- implementation that was implemented in Java and by imple-
tion with microservices. menting a database with a memory buffer for holding the
123
Arabian Journal for Science and Engineering
configuration data of the gateway. For the performance mea- sensor hardware, and Quality of Service (QoS) issues to
surement of the gateway, the authors set up test cases that achieve more robust and efficient network performance. For
produced various numbers of request loads and observed the this purpose, they highlighted SOA middleware for WSNs
associated response rates. and its characteristics in their survey. Although this particu-
A rather similar work to our research area in this paper was lar work at [32] was not directly related to API Gateways, it
made by Shafabakhsh et al. in [7] where authors performed intersects with our paper in the sense that both are concerned
a performance-wise and availability-wise comparison of with performance.
asynchronous and synchronous inter-microservice commu- In [33], Her et al. particularly proposed metrics, such as
nications that particularly utilized RabbitMQ, gRPC, and throughput and service response time, for practically measur-
REST. In comparison to this work in [7], our study in this ing service performance in SOA (i.e., the ancestor of MSA).
paper provides a performance and availability-related evalua- The measurement of these metrics was then performed in a
tion of synchronous communication that particularly utilized Hotel Reservation Service as a case study to show their appli-
API design techniques, namely REST, gRPC, and Thrift, cability and usefulness. Similar to this work, in our work in
instead. These API design techniques inherently provide a this paper, performance was a determining metric for decid-
synchronous communications scheme for the implementa- ing the proper API design technique to use particularly in
tion of API Gateways, which also, by design, establish a MSA.
request/response-based synchronous inter-communications Our study in this paper particularly focuses on MSA rather
scheme between clients and back-end microservices. than its earlier ancestor Service-Oriented Architecture (SOA)
There are also studies in the field of wireless sensor net- although SOA has been a solution for challenges in dis-
works (WSN) where the performance of API Gateway-like tributed systems. This is because MSA is considered to be an
systems, such as border surveillance systems, is investigated. evaluation of SOA where services are treated as more coarse-
For instance, in [30], the authors provided a comparison grained functions that are dependent on each other, whereas
basis for a set of well-known routing protocols, such as Ad MSA treats its services as more fine-grained functions that
hoc On-Demand Distance Vector (AODV), Optimized Link act independently of each other [34, 35]. This situation makes
State Routing Protocol (OLSR), and DSR, which can be uti- MSA-based distributed systems easier and faster to build and
lized in border surveillance systems that guard the entrance deploy today’s cloud-based distributed software systems in
of the WSNs. The authors concluded that DSR performed comparison to SOA. This is because the services themselves
better than other protocols in border surveillance applica- in MSA are smaller and, thus, easier and faster to deploy
tions. This work resembles our work in the sense that authors into cloud-native orchestrion platforms, such as Kubernetes
considered a set of well-known routing protocols concerning [36–43]. Moreover, API Gateways are the implementation
performance, such as Ad hoc On-Demand Distance Vector of a particular architectural pattern within the MSA (i.e.,
(AODV), Optimized Link State Routing Protocol (OLSR), namely API Gateway pattern). Therefore, the contribution of
and DSR, in designing the system architecture they proposed. this paper comes from its practical aspect that shows which of
In another study in the field of WSN, Hammoudeh et al. [31] the industrial API design techniques, namely REST, gRPC,
developed a modular border surveillance system architecture and Apache Thrift, can be used in the implementation of
that allowed timely and mission-centric event detection in the the API Gateways considering that the API gateways are the
WSN. In this architecture, authors designed and implemented backbone of communication between microservices and their
a method to calculate the required number of sensor nodes to clients. Performance and availability are two critical factors
achieve a specified level of coverage in WSN, which showed that determine how well the gateways can perform in MSA
significant performance gains in comparison to its best rival [3, 34, 39]. Hence, the context of our study in this paper is
in the literature, namely dynamic source routing (DSR) just particularly concerned with MSA and not SOA in compari-
like gRPC has been proposed as the API design technique in son to the related work that is summarized in Table 1 (e.g.,
our paper here. [32–35]).
In addition, there are studies, particularly in the intersec- As a side note, there are other API design techniques, such
tion of Service-Oriented Architecture (SOA) and the WSN. as GraphQL [44], that are also gaining popularity. Hence, a
SOA is the ancestor of MSA and it treats services as more future study would be to measure the performance of an API
coarse-grained functions that are relatively coupled with each Gateway having a GraphQL API. Nevertheless, the scope of
other in comparison to MSA. In the study at [32], for instance, our work in this paper is limited to the use of those 3 API
the authors provided a survey where they explored state- design techniques in API Gateway implementation particu-
of-the-art approaches based on SOA and Service-Oriented larly.
Middleware (SOM) architecture that provided solutions for
WSN-related challenges, such as communication, security,
power consumption, data aggregation, heterogeneities of
123
Table 1 Summary of the related study
Zhao et al. [10] 2018 This paper provides a design proposal for the authentication of API Gateways to improve MSA, API gateway
the development efficiency of API Gateways. However, it is not related to the performance
efficiency and/or availability of API Gateways
Montesi and Weber [11] 2016 This paper focuses on the deployment strategies for the programming of widely used Microservices patterns, API gateway
MSA-based patterns including circuit breaker, service discovery, and API gateway
Xu et al. [12] 2019 This paper is about the security aspects of API Gateways. The authors proposed a secure Edge, computing, IoT, API gateway, security
access mechanism to their edge computing network (i.e., Internet of Things (IoT) device
network) via API Gateways
Arabian Journal for Science and Engineering
Lu et al. [13] 2017 This paper proposes that each IoT device in an IoT device network can be envisioned as if it IoT, API gateway, security
is a microservice and that an API Gateway can be used to access the IoT devices securely.
Nevertheless, this paper does not explicitly touch on techniques/technologies to develop
performance-efficient API Gateways
Fernandes et al. [23] 2013 This paper provides a performance comparison study of RESTful Web services and the Web services, AMQP-based messaging,
AMQP Protocol and resembles our work in the sense that both attempt to make a performance
performance comparison. However, the concern in this paper is more on web services, not
API Gateways
Afonso et al. [24] 2012 This work proposes a method to evaluate API as an artifact that facilitates collaboration and API design
communication between designers and programmers
Lindman et al. [25] 2020 This paper provides a strategic API framework to support business concerns when API design and maintenance
designing, updating, or maintaining APIs
Stylos et al. [26] 2006 This paper proposes a usability analysis technique based on common API design choices API usability
Piccioni et al. [27] 2013 This work covers the use of a cognitive dimensions framework to improve API usability API usability
Rauf et al. [28] 2019 This paper provides an evaluation basis for the usability of APIs API usability
Zuo et al. [29] 2020 This paper is similar to our work in the sense that both are related to API Gateway and its Microservices, API gateway and system
performance. However, our paper focuses on the specific use of API design techniques performance
that can be used in API Gateways and it bases its performance comparison logic on these
techniques
Sharei-Amarghan et al. 2013 In this paper, the performance of several WSN protocols was analyzed in the context of WSN, border surveillance systems and system
[30] border surveillance systems, which act like API Gateways on the border of WSNs performance
123
Table 1 (continued)
Hammoudeh et al. [31] 2017 This work is similar to [30] in the sense that authors make performance comparisons for WSN, border Monitoring systems and system
123
border monitoring systems, which act similarly to API Gateways, in WSNs performance
Alshinina et al. [32] 2017 This work is in the intersection of SOA and WSN realms and it intersects with our paper in SOA, WSN and system performance
the sense that both our paper and this paper are concerned with performance
Her et al. [33] 2007 This paper provides a framework for measuring performance in SOA systems while ours is SOA, system performance
rather concentrated on MSA
Newman [34] 2015 This resource provides a sound background on MSA and its emergence as a continuation of MSA
SOA
Rademacher et al. [35] 2017 This paper sets out conceptual and practical differences between SOA and MSA and MSA, SOA
classifies them based on a hierarchical scheme
Erl [36] 2005 This resource describes the concepts, specifications, and standards behind service SOA
orientation and Web Services
Papazoglou et al. [37] 2007 This paper reviews technologies and approaches in SOA SOA
Papazoglou [38] 2012 This resource introduces the concepts, principles, techniques, and standards of web services SOA
Nadareishvili et al. [39] 2016 This resource provides background on the principles and practices of MSA MSA
Pahl et al. [40] 2016 This paper provides a systematic classification of the existing research on microservices and MSA, cloud
their application in the cloud
Azzedin et al. [41] 2019 This paper proposes an architecture that enables petroleum industries to select the necessary SOA
services from the SOA-based IT ecosystem
Saddam et al. [42] 2023 This paper provides a summary of the concerns about microservices and SOA Microservices and web-services
Farag et al. [43] 2010 This resource provides a solid background on the applicability and use of P2P and Grid SOA, P2P, grid computing
computing techniques for delivering efficient service-oriented computing
Arabian Journal for Science and Engineering
Arabian Journal for Science and Engineering
123
Arabian Journal for Science and Engineering
4 Implementation
123
Arabian Journal for Science and Engineering
The very first step in preparing our experimental environ- The second step in preparing our experimental environment
ment was to determine candidate BOA modules from where is to determine the types of clients that can simulate the client
microservices were deduced. Because the bank allowed us requests. Among the clients of BOA, namely WPF client,
only to investigate the implementation of notification and iOS/Android client, react client, and server apps, our focus is
core modules in their monolith BOA infrastructure, the noti- limited particularly on the server APPs in order not to expose
fication engine and core banking module were chosen as the ourselves to client-side technologies in producing our exper-
primary candidate modules to transform into microservices. imental test data. Therefore, in the following subsection, it is
A notification engine is used within the entire BOA sys- described how the server APPs were simulated to generate
tem to send enterprise-related messages, such as campaign the data traffic for our experiments.
emails, bulk SMS messages, and alerts. On the other hand,
core banking is used to fulfill critical business operations, 4.2.3 How do Server APPs Should Reach API Gateway?
such as money transfers and accounting. Both of these mod-
ules, named notification engine and core banking module, In this step of preparing our experimental environment,
are critical for performance efficiency and availability since Apache JMeter [57] was used to simulate two server APPs,
any absence or delay in the provision of the services that are namely campaign batch task and money transfer batch task,
provided by these modules will break the end-to-end success which act as scheduled tasks as shown at the top of Fig. 5. The
of the financial operations. Therefore, they fit well into the rationale behind using the campaign batch task and money
context of our experiments. transfer batch task was that Kuveyt Türk Bank specifically
Hence, in the context of the study in this paper, two allowed us to study the internals of these two batch tasks in
microservices were implemented, which fulfilled the func- producing artificial test requests.
tionality of these modules (namely notification engine and On the other hand, the rationale for using JMeter was that
core banking) partially for the sake of our performance and it could help us generate a large number of artificial requests
availability-related evaluation. These two microservices are that can mimic the behavior of those two batch tasks. These
called notification microservice and transfers microservice, JMeter-generated artificial requests could be continuously
respectively, as seen in Fig. 5. The implementations of these pushed to our API Gateway prototype in our experimental
microservices make use of several DLLs that are available in setup, which is then called the proper microservice(s) where
123
Arabian Journal for Science and Engineering
Table 2 Configuration of a virtual host where an API gateway prototype 4.2.5 API Gateway and Microservices Deployment
is deployed
123
Arabian Journal for Science and Engineering
123
Arabian Journal for Science and Engineering
Table 4 Average error rates observed at availability-related tests that availability. Our opinion about this situation is that Thrift’s
were executed with 15,000 concurrent clients for 10 min .NET-specific library needs further improvements. One such
API design technique Average error rate (percent)a improvement can be to incorporate an HTTP/2 transport,
which is mainly used in today’s cloud-native service mesh
gRPC 40.95 technologies, into Thrift. This would particularly improve
REST 92.38 Thrift’s performance because Thrift’s current transport layer
a
protocol usage (i.e., TCP usage) puts more load on the CPU
Thrift-based API Gateway prototype was not included in availability
since the transport layer has a variety of controls in commu-
tests because these tests specifically required a high request load (e.g.,
15,000 clients), which could not be undertaken by the Thrift prototype nications in comparison to HTTP/2. Another improvement in
Thrift can be providing support for streaming large amounts
of data since in today’s cloud-native era, there likely happens
gRPC-based API Gateway outperformed its REST counter- a necessity to transfer large amounts of data (e.g., big data)
part since its average error rate was almost half of the average for many IT firms.
error rate of the REST-based gateway. In conclusion, concerning both performance and
On the other hand, unlike our gRPC and REST-based API availability-related efficiency, the strength of our API Gate-
Gateway prototypes, the Thrift prototype could not withstand way prototypes can be ordered from highest to lowest as
request loads with, for example, 7000, 11,000, and 15,000 gRPC, REST, and Thrift [66, 67]. Nevertheless, our API
concurrent clients and became completely unresponsive right gateway prototypes were intentionally developed by using
at the beginning of our availability tests. This was an expected Microsoft’s general-purpose application development frame-
situation due to the low throughput values of the Thrift pro- work, namely .NET, because the bank, where our case study
totype as seen in Fig. 6. For this reason, our Thrift-based was performed, was using .NET-related technologies and it
API Gateway prototype was excluded from the availabil- asked us to stick to this framework. Hence, a possible future
ity tests with 15,000 clients, which were executed against work as a follow-up to this paper would be making a sim-
our gRPC and REST-based prototypes only. Hence, it was ilar evaluation by taking frameworks other than the .NET
concluded that the availability of the Thrift prototype is the framework, such as Java EE, Go or Lua into account while
lowest among all our API Gateway prototypes. implementing the API Gateway prototypes per API design
technique. This would also bring a framework aspect to the
evaluation for possible future work giving an indicator to
6 Conclusion the IT companies on which framework to use in their API
Gateway implementations.
In our work in this paper, performance and availability- As a side note, there are other API design techniques, such
related analyses were made to determine the performance as GraphQL [44], that are also gaining popularity. Hence,
efficiency of today’s modern API design techniques, namely another future study would be to measure the performance
REST, gRPC, and Apache Thrift, particularly in the design of an API Gateway having a GraphQL API.
and implementation of API Gateways due to their working
Acknowledgements The work that is presented in this paper is sup-
characteristics requiring high performance and availability. ported by the Turkish Scientific and Technological Research Council
Our measurements were conducted through a case study that (TÜBİTAK) in the context of a base research project with Project num-
was performed by using the hardware and software resources ber 5210012.
that were provided by Kuveyt Türk Participation Bank. In
Authors’ Contributions Fikri AYDEMİR, Architect Information Sys-
this case study, three separate API Gateway prototypes were tems, R&D Center, Istanbul, Turkey. Fatih BAŞÇİFTÇİ, Selcuk Uni-
developed for each of the API design techniques, namely versity, Faculty of Technology, Dept. of Computer Engineering, Konya,
REST, gRPC, and Apache Thrift, and our evaluation was Turkey.
performed based on the results of the tests that were run
Availability of Supporting Data We have provided the source code
against these prototypes. for our gRPC-based and Thrift-based API Gateway prototypes at the
The test results showed that our gRPC-based API Gate- GitHub repositories that are available at [52, 53], respectively. Due to
way prototype implementation outperformed both REST proprietary reasons, bank-specific code segments have been removed
from the source code of both prototypes and only the skeleton of the
and Thrift-based prototypes substantially in terms of both
server-side implementations has been shared. We could not provide any
performance and availability. Nevertheless, although the code belonging to the REST-based API Gateway implementation due
REST-based prototype provided lower results compared to to preparatory reasons.
its gRPC counterpart, its results were still rather promising.
Our Thrift-based API Gateway prototype, which was
developed based on Thrift’s .NET platform-specific library
[45], showed the worst results concerning performance and
123
Arabian Journal for Science and Engineering
123
Arabian Journal for Science and Engineering
International Conference on Next Generation Web Services Prac- 53. [n.d.]. Kuveyt Türk’s technology company Architect is the
tices (NWeSP’07) (2007). https://doi.org/10.1109/nwesp.2007.24 fastest-growing information company. https://www.kuveytturk.
34. Newman, S.: Building Microservices, 1st edn. O’Reilly Media, com.tr/en/about-us/about-kuveyt-turk/news/kuveyt-turk-speeds-
Sebastopol (2015) up-its-investments-in-technology-and-transformation-through-
35. Rademacher, F.; Sachweh, S.; Zundorf, A.: Differences between architecht. Accessed on Mar 2021
Model-Driven Development of Service-Oriented and Microservice 54. Krasner, G.; Pope, S.: A cookbook for using the model-view-
Architecture. In: 2017 IEEE International Conference on Software controller user interface paradigm in Smalltalk - 80. J. Object-
Architecture Workshops (ICSAW) (2017). https://doi.org/10.1109/ Oriented Program. - JOOP 1(3), 26–49 (1998)
icsaw.2017.32 55. [n.d.] Windows Communication Foundation (WCF): A framework
36. Erl, T.: Service-Oriented Architecture (SOA) Concepts, Technol- for building service-oriented applications. https://docs.microsoft.
ogy, and Design. Prentice Hall, Hoboken (2005) com/en-us/dotnet/framework/wcf/whats-wcf. Accessed on Apr
37. Papazoglou, M.P.; Van Den Heuvel, W.-J.: Service-oriented archi- 2021
tectures: approaches, technologies, and research issues. VLDB J. 56. [n.d.] Windows Presentation Foundation (WPF): A UI framework
16(3), 389–415 (2007) that creates desktop client applications. https://docs.microsoft.
38. Papazoglou, M.P.: Web Services SOA: Principles and Technology. com/en-us/visualstudio/designers/getting-started-with-wpf .
Pearson Education, vol. 2 (2012) Accessed on Apr 2021
39. Nadareishvili, I.; Mitra, R.; Mclarty, M.; Amundsen, M.: Microser- 57. [n.d.] JMeter: An open-source software designed to load test func-
vice Architecture. O’Reilly Media, Sebastopol (2016) tional behavior and measure performance. https://jmeter.apache.
40. Pahl, C.; Jamshidi, P.: Microservices: A systematic mapping study. org/. Accessed on Apr 2021
In: Proc. of the 6th Int. Conf. on Cloud Computing and Services 58. [n.d.] ASP.net Web APIs: Building secure REST APIs with C#.
Science (CLOSER), 2016, pp. 137–146 (2016) https://dotnet.microsoft.com/apps/aspnet/apis. Accessed on Apr
41. Azzedin, F.; Ghaleb, M.: Towards an architecture for handling big 2021
data in oil and gas industries: service-oriented approach’. Int. J. 59. [n.d.] TThreadPoolAsyncServer Implementation in C#. https://
Adv. Comput. Sci. Appl. 10(2), 554–562 (2019) github.com/apache/thrift/blob/master/lib/netstd/Thrift/Server/
42. Saddam, M.; Saif, A.: Microservices and web-services: a review. TThreadPoolAsyncServer.cs. Accessed on Apr 2021
Peta Int. J. Soc. Sci. Humanit. 1(1), 66 (2023) 60. [n.d.] C# .NET Core bindings for the Apache Thrift RPC system.
43. Farag, A.; Eltoweissy, M.; Khwaja, S.A.: Overview of Service https://www.nuget.org/packages/ApacheThrift. Accessed on Apr
Oriented Architecture for Resource Management in P2P Sys- 2021
tems. In: Antonopoulos, N. et al. (eds.) Handbook of Research 61. Chaczko, Z.; Mahadevan, V.; Aslanzadeh, S.; Mcdermid, C.: Avail-
on P2P and Grid Systems for Service-Oriented Computing: Mod- ability and Load Balancing in Cloud Computing (2011)
els, Methodologies, and Applications, pp. 175–196. IGI Global, 62. Siewiorek, D.P.; Swarz, R.S.: Reliable Computer Systems: Design
Hershey (2010) and Evaluation, 3rd edn. A K Peters/CRC Press, Natick (1998)
44. [n.d.] GraphQL: A query language for APIs. https://graphql.org/. 63. Koren, I.; Krishna, M.C.: Fault-Tolerant Systems, 2nd edn. Morgan
Accessed on Apr 2023 Kaufmann Publishing, Burlington (2020)
45. Birrell, A.D.; Nelson, B.J.: Implementing remote procedure calls. 64. Elms, C.P.: Defining and measuring service availability for com-
ACM Trans. Comput. Syst. 2(1), 39–59 (1984) plex transportation networks. J. Adv. Transp. 32(1), 75–88 (1998)
46. Olsson, R.A.; Keen, A.W.: The JR Programming Language, 1st 65. Daly, J.T.; Pritchett-Sheats, L.A.; Michalak, S.E.: Application
edn. Springer, Boston (2004) https://doi.org/10.1007/b116040 MTTFE vs. Platform MTBF: A Fresh Perspective on System Reli-
47. Waldo, J.: Remote procedure calls and java remote method invo- ability and Application Throughput for Computations at Scale. In:
cation. IEEE Concurr. 6(3), 5–7 (1998). https://doi.org/10.1109/ 2008 Eighth IEEE International Symposium on Cluster Computing
4434.708248 and the Grid (CCGRID), pp. 795–800 (2008)
48. Hirsch, F.; Kemp, J.; Ilkka, J.: Mobile Web Services: Architecture 66. [n.d.]. Sample gRPC Server. https://github.com/faydemir1/
and Implementation. John Wiley & Sons, Hoboken (2007) SampleGrpcServerInCS. Accessed on Apr 2021
49. Bora, A.; Bezboruah, T.: A comparative investigation on implemen- 67. [n.d.]. Sample Thrift Server. https://github.com/faydemir1/
tation of RESTful versus SOAP-based web services. Int J Database SampleThriftServerInCS. Accessed on Apr 2021
Theory Appl 8(3), 297–312 (2015)
50. Prunicki, A.: Apache Thrift. Software Engineering Tech Trends. Springer Nature or its licensor (e.g. a society or other partner) holds
http://jnb.ociweb.com/jnb/jnbJun2009.html (2015) exclusive rights to this article under a publishing agreement with the
51. Slee, M.; Agarwal, A.; Kwiatkowski, M. (n.d.). Thrift: Scalable author(s) or other rightsholder(s); author self-archiving of the accepted
Cross-Language Services Implementation manuscript version of this article is solely governed by the terms of such
52. Chamas, C.L.; Cordeiro, D.; Eler, M.M.: Comparing REST, SOAP, publishing agreement and applicable law.
Socket, and gRPC in computation offloading of mobile applica-
tions: An energy cost analysis. In: 2017 IEEE 9th Latin-American
Conference on Communications (LATINCOM), pp. 1–6 (2017)
123