Lecture 28 - Introduction to Distributed Computing
Lecture 28 - Introduction to Distributed Computing
1
● They are independent of the underlying software, capable of running on
various operating systems and utilizing different communication protocols.
● For instance, the hardware may employ UNIX or Linux operating systems,
while communication between machines can utilize SNA or TCP/IP over
Ethernet or Token Ring.
2
1. Remote Method Invocation (RMI): Java RMI enables objects residing on
different Java Virtual Machines (JVMs) to communicate and invoke methods
remotely. RMI simplifies distributed computing by abstracting network
communication details.
2. Java Remote Method Protocol (JRMP): JRMP is the underlying protocol used
by Java RMI to facilitate communication between client and server
components.
Design Considerations:
● When developing distributed applications in Java, consider the following
design aspects:
○ Communication Protocols: Choose appropriate communication
protocols, such as TCP/IP or HTTP, based on the application
requirements.
○ Data Serialization: Ensure proper serialization and deserialization of
data when transmitting objects across the network.
3
○ Error Handling and Fault Tolerance: Implement error handling
mechanisms and strategies for handling network failures, timeouts,
and exceptions to ensure the reliability of the distributed system.
○ Load Balancing: Distribute the workload evenly across multiple nodes
to achieve optimal resource utilization and prevent bottlenecks.
○ Security: Implement security measures, such as authentication and
encryption, to protect sensitive data transmitted over the network.
2. Distributed File Systems: Build distributed file systems that store and retrieve
files across multiple machines transparently.
4
3. Message Queuing Systems: Develop messaging systems that enable
asynchronous communication between distributed components.