Technology
Are RPC and CORBA Still Used in Modern Software Development?
Are RPC and CORBA Still Used in Modern Software Development?
Yes, RPC and CORBA are still used, although their prevalence has changed over time due to the emergence of newer technologies. This article explores their current roles and applications in the software development landscape.
RPC: A Programming Style Reborn
RPC is a programming style, not a protocol or piece of software. While its original form by Apollo, which begat DCE and CORBA, has been defunct for decades, and its reinventions such as XML-RPC and SOAP are mostly retired, some more recent versions like JSON-RPC and especially gRPC are still alive and kicking.
If you're interested in RPC today, I suggest you take a long look at gRPC. This modern implementation of RPC has gained significant traction in the industry due to its performance and language support.
CORBA: A Legacy System Standard
No. It is deader than dead. I once worked on a project that made full use of CORBA, and in my biased opinion, the results were great. However, that was the late 1990s, and I’ve never seen any other company or project use it since then.
What replaced it was a series of technologies that have come and gone, including RMI in Java, SOAP, and J2EE. Now, microservices using RESTful architectures have become the dominant architecture of modern software. More specifically, JSON over HTTP is what we now use to achieve the same objectives of CORBA—namely distributed systems that can exchange data using a common protocol.
My experience with CORBA always made me think that it was a good concept, but it never gained the critical mass needed to succeed in the broader market.
Modern Alternatives to RPC and CORBA
gRPC has become a popular choice for modern applications, providing better performance and support for multiple programming languages. It is widely used in various distributed systems, microservices architectures, and cloud services.
gRPC is built on top of HTTP/2, which offers features like multiplexing, header compression, and reliable streaming. It supports both synchronous and asynchronous client dialects, allowing developers to choose the best approach based on their project requirements.
Alternative protocols like RESTful APIs are also prevalent in modern software systems. RESTful APIs use standard HTTP methods (GET, POST, PUT, DELETE) to perform operations and retrieve data. They are widely adopted due to their simplicity and easy integration with various front-end technologies such as JavaScript and HTML.
In addition to RESTful APIs, message brokers like RabbitMQ and Kafka are commonly used for building distributed systems that need to handle high volumes of messages or data. These tools provide features like message queuing, event streaming, and fault tolerance, making them ideal for complex, large-scale applications.
Conclusion
While both RPC and CORBA are still relevant in some legacy systems, their roles have shifted with modern technologies often taking precedence in new projects. RPC, particularly in the form of gRPC, remains relevant in distributed systems, while CORBA is mainly found in legacy systems where long-term stability and backward compatibility are crucial.
As software development continues to evolve, it is essential to stay updated with modern technologies and methodologies to deliver efficient, scalable, and maintainable solutions.