Just to make you hate this course even more: Why Corba Fails
Java RMI
- Great step by step tutorial by Alexandre Hudon
- Group Chat application with Java RMI – well written tutorial
Useful Stackoverflow Q/As:
Resources
- CORBA in five minutes
- Summary of Failure Modes by Alvaro Videla
- Byzantine Failure explanation (not very well formatted) from Stanford
- Distributed Systems Midterm from Waterloo(similar coverage)
- Distributed Systems Midterm from CMU
- Setting Up a Web Service in Eclipse/Java video 1, and video 2
Course Videos
- Linearizability and Sequential Consistency Illinois-Urbana video
- Transactions
- Two phase commit Illinois-Urbana Video
- Serial Equivalence Illinois-Urbana video
- Pessimistic and Optimistic Concurrency Control Illinois-Urbana video
- FIFO, Causal & Total Ordering Illinois-Urbana Video and how to implement them video
- Reliable Multicast Illinois-Urbana video
- Global Snapshot Illinois-Urbana video
- Elections Illinois-Urbana video
- Mutual Exclusion Illinois-Urbana A, B, C, D
- Maekawa’s Algorithm Video
Midterm Fall 2015
- Topics:
- IPC and RPC
- Why does IPC need TCP or UDP? Why can’t it just run directly on IP?
- Describe the RPC process
- Can you have distributed systems without IPC? RPC?
- Invocation Semantics
- What are the advantages of each?
- Should the client make another request in “at-least-once”? “at-most-once”? How would you implement each in pseudocode?
- Why is “exactly once” not possible?
- Compare Java RMI to CORBA
- What components of CORBA make it platform independent? Language independent?
- What is the advantage of using UDP instead of calling Java RMI method?
- IPC and RPC
Notes:
- CORBA Architecture
- This confusing diagram shows the different components involved in the ORB Architecture. First of all, take note of the color codings of the different elements. The pale blue “Standard Interface” blocks are the same for all ORB programs – for example, DII and DSI define methods that the server must provide in order for dynamic invocation (i.e. calling methods that were not defined at initial runtime) to be possible. The pale red blocks are elements that are a part of the application being created but mapped from whatever language into an IDL.
The diagram is intended to show what uses what, and not what passes to what. The GIOP/IIOP ORB CORE block at the bottom is what underpins the whole ORB functionality. Here is a good article about it from Carleton University - Acronyms:
- IDL = Interface Definiton Language
- DII = Dynamic Invocation Interface
- DSI = Dynamic Skeleton Interface
- GIOP = General Inter-ORB Protocol
- IIOP = Internet Inter-ORB Protocol
- This confusing diagram shows the different components involved in the ORB Architecture. First of all, take note of the color codings of the different elements. The pale blue “Standard Interface” blocks are the same for all ORB programs – for example, DII and DSI define methods that the server must provide in order for dynamic invocation (i.e. calling methods that were not defined at initial runtime) to be possible. The pale red blocks are elements that are a part of the application being created but mapped from whatever language into an IDL.
- URL vs URN vs URI