Chapter 5 - Object Oriented Approaches

0.0(0)
studied byStudied by 8 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/18

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

19 Terms

1
New cards

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.

2
New cards

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

3
New cards

What is marshalling?

The process of packaging data and parameters for transmission over a network.

4
New cards

What is unmarshalling?

The process of unpacking received data on the server side so it can be processed.

5
New cards

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.

6
New cards

What are examples of technologies that allow remote object-oriented method calls?

  • RMI (Java-specific)

  • Remoting (.NET version)

  • CORBA (cross-platform, very complex)

7
New cards

What does RMI stand for and what language is it tied to?

Remote Method Invocation, and it's Java-based.

8
New cards

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.

9
New cards

Why is distributed OO programming inherently complex?

Because objects combine code and data, and moving code across machines introduces challenges with compatibility and execution.

10
New cards

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.

11
New cards

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

12
New cards

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.

13
New cards

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.

14
New cards

Why is code-passing risky even with a security manager?

If hacked code is given the required permissions, it can still perform harmful actions.

15
New cards

Why is RMI fragile across systems?

Different Java versions on client and server may cause incompatibilities, breaking execution.

16
New cards

What protocol does RMI use for communication?

JRMP – Java Remote Method Protocol.

17
New cards

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.

18
New cards

What is actually sent in modern distributed systems – code or data?

Data only – code is recreated locally, not sent.

19
New cards

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