Published Sep 3, 2019

Episode 10: Remoting Pt. 2

This episode dives deep into remoting infrastructures, exploring lifecycle management of server and client instances, dynamic interface and proxy generation, and advanced asynchronous communication patterns with insights into middleware challenges, offering a comprehensive look at enhancing performance and reliability in distributed systems.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Performance & Errors

    The introduction of communication middleware significantly impacts system performance, particularly in terms of latency and error handling. highlights that remote communication is inherently slower and introduces a new class of potential errors that must be managed within the application logic. He explains that these errors arise from scenarios like server crashes or network unavailability, which were not concerns in single-host applications 1.

    Remote communication introduces a whole set, a whole class of potential errors that need to be dealt with in the application logic because you have now many new situations where errors could occur.

    ---

    This necessitates careful planning when selecting interfaces for remote communication to ensure scalability and reliability.

       

    Remoting Boundaries

    Recent trends in middleware development emphasize making remoting boundaries more explicit. notes that earlier approaches, like CORBA, aimed to make remote objects appear as local ones, which often led to hidden complexities. In contrast, modern implementations, such as Windows Communication Foundation, clearly define component boundaries, making the remoting aspect more transparent 1.

    If you look at more recent middleware implementations, like for example Windows Communication foundation called Indigo a while ago, or like the service oriented approach to software development, then you know in the application logic that you call a remote component, you have this remoting or this component boundary made much more explicit.

    ---

    This shift aims to simplify the development process by acknowledging and addressing the complexities of remote communication.

       

    Balancing Act

    The balance between performance and explicit remoting boundaries is crucial in middleware design. suggests that while making remoting explicit can simplify error management, it may also introduce performance trade-offs. He predicts that future trends might swing back towards hiding remoting complexities to optimize performance 1.

    Yeah, probably in a couple of years the opposite trend is going to show up again.

    ---

    This ongoing evolution reflects the dynamic nature of software development, where solutions must adapt to changing technological landscapes.

Related Episodes