1/18
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Why are raw sockets considered primitive for distributed programming?
Because they only move raw data, not function calls or code execution, making them inconvenient for higher-level tasks.
What would make sockets more convenient for distributed programming?
Wrapping them in a software layer that simulates calling methods/functions over the network. such as RMI, CORBA
What is marshalling?
The process of packaging data and parameters for transmission over a network.
What is unmarshalling?
The process of unpacking received data on the server side so it can be processed.
What does the front-end version of a server method do?
It packages the data and communicates with the real server method, instead of performing the computation itself.
What are examples of technologies that allow remote object-oriented method calls?
RMI (Java-specific)
Remoting (.NET version)
CORBA (cross-platform, very complex)
What does RMI stand for and what language is it tied to?
Remote Method Invocation, and it's Java-based.
What made CORBA notoriously difficult to use?
It tried to maintain language independence, but moving objects and code across systems made it complex and fragile.
Why is distributed OO programming inherently complex?
Because objects combine code and data, and moving code across machines introduces challenges with compatibility and execution.
What is the main advantage of using RMI-style communication?
It allows us to continue using object-oriented programming as if everything were local, even in a distributed system.
Can clients send code to servers in RMI?
Yes – clients can pass executable objects to the server, which can then run client-provided code.
vise versa
What is the biggest risk of sending executable code over a network?
Security – malicious or subverted code can be executed with permissions intended for safe code.
How was Java's security handled for remote code execution?
Through the SecurityManager and security policies, though these were often ignored or are now outdated.
Why is code-passing risky even with a security manager?
If hacked code is given the required permissions, it can still perform harmful actions.
Why is RMI fragile across systems?
Different Java versions on client and server may cause incompatibilities, breaking execution.
What protocol does RMI use for communication?
JRMP – Java Remote Method Protocol.
Why is JRMP problematic in real-world networks?
It uses non-standard ports (like 1099), which are often blocked by firewalls, and tries to "tunnel" through HTTP, risking security violations.
What is actually sent in modern distributed systems – code or data?
Data only – code is recreated locally, not sent.
difference between CORBA and RMI
CORBA:
common object request broker architecture
helps programs written in different languages and running on different computers communicate with each other
RMI:
remote method invocation
lets one java program call methods on objects in another java program running on a different computer