DS520 - Lecture Outline
DePaul University - Winter 2003 - Kenniston
Since the content of this course has changed significantly
since the last time I taught it,
the outline below is approximate and is subject to revision as
the term progresses.
More detail will be added as we go, so that
this outline will serve as a summary of all the
topics we have covered, and can thus be used
as a study guide for the exams.
This outline will also supply the links to the online readings.
Week 1 - 2003-01-09 Thursday - Intro to CORBA
- Administrative stuff:
- Instructor background.
- Prerequisites.
- Use of dlweb.
- Homework policy. (50% of course grade).
- Office hours.
- Midterm exam: open book and note. (15% of course grade)
- Final project: (35% of course grade)
- Your choice of topic, but you must get approval from instructor.
- Write a paper.
- Present the material to the class - aprox. 10-15 minute talk.
- DL students contact instructor for special arrangements.
- Overall course organization:
- We will look at various distributed systems frameworks (DSFs).
- You will write some programs using DSFs.
- Instructor is also learning, and will be more of
a guide/mentor than a guru with all the answers.
- Terminology:
- Patterns.
- Class libraries.
- Frameworks.
- Components.
- Objects.
- Why use frameworks: Re-use
- Reduce cost.
- Increase reliability.
- Reduce time-to-market.
- Distributed Systems are especially hard to design and
implement correctly.
- Advantages of IP, TCP, sockets, RPC:
- Independent of CPU hardware.
- Independent of network hardware.
- Independent of operating system.
- Independent of programming language.
- Independent of vendor.
- CORBA - an example of a DSF.
- CORBA provides the same advantages, but
at a higher level (distributed objects).
- CORBA objects (implemented with programming language objects).
- IDL (Interface Definition Language).
- ORB (Object Request Broker).
- IIOP (protocol for communicating ORBs).
- Proxies: stubs and skeletons.
- Marshalling.
- IOR (to move object references across the network).
- callbacks.
- Language bindings.
- CORBA services.
- CORBA facilities.
- The OMG.
- Comparison with COM/DCOM/.NET.
Week 2 - 2003-01-16 Thursday - Implementing CORBA
Objects in Java
- IDL files
- idlj -fall -oldImplBase
- tnameserv
- Client code
- Initializing the ORB
- Name services
- Server code
- Registering the object
- Demo on one machine, then across network (-ORBInitialHost nameserverhost)
- Primitive types in detail
- boolean
- char/wchar
- string/wstring
- octet, short, long, long long
- float, double
- Holder types for out and inout arguments.
- Struct, enum, array, const
- Attributes and accessors.
Class examples:
Readings:
- An
IDL Tutorial from Sun.
- Some more documentation on
IDL and Java from Sun.
The "Hello World Tutorial" is particularly helpful.
- The mapping between IDL and CORBA types is shown in this
table.
- If you prefer PowerPoint-style bullet lists, try this
CORBA and Java Tutorial.
Week 3 - 2003-01-23 Thursday - More CORBA
- Exception handling across the network with CORBA.
- Interoperable Object References (IORs), stringification
- Automatic marshalling and stub creation during the call of a callback.
- Review of Java objects and references,
CORBA objects and references,
Java and CORBA interfaces, and how they
relate to callbacks and polymorphism.
- Iterators in CORBA.
- Naming Services and Naming Contexts.
- DII (Dynamic Invokation Interface) and DSI
(Dynamic Skeleton Interface), and their use in
diagnostic tools (e.g. debuggers) and gateways.
- Using delegation (aka "tie" method) to work around the
lack of multiple implementation inheritance in Java.
- Options for server threading.
- Open-source ORBS.
- CORBA with C++: typedefs, memory management.
Class Examples:
- The same
args
example from last week includes exceptions and callbacks.
- The
Naming Service example shows both
Naming Contexts and Iterators.
- The
C++ example
shows what CORBA looks like in a C++ program.
Week 4 - 2003-01-30 Thursday
Readings:
Week 5 - 2003-02-06 Thursday - Midterm Exam
The midterm will be held in the usual room at the usual
class meeting time.
The midterm may include any material covered in lectures 1 through 4,
or in homeworks due on or before the date of exam.
It will not include obscure things from the readings which
have not been mentioned in class.
The exam will be open-book and open-note, but not
open-laptop or open-neighbor.
The midterm exam counts for ??% of the course grade.
Week 6 - 2003-02-13 Thursday
Week 7 - 2003-02-20 Thursday
Week 8 - 2003-02-27 Thursday
Week 9 - 2003-03-06 Thursday
Week 10 - 2003-03-13 Thursday
Week 11 - 2003-03-20 Thursday - Final Exam
The final exam for this course will be on Thursday, March 20, 2003,
in the usual classroom (CS&T 222),
at the usual class meeting time (5:45-9:00 PM).
The final exam will consist of everyone's project presentation.
Each of you will have 9 minutes (including questions)
to present your work, so that we can get through everyone
in a single 3-hour session. Your written project is also
due at this time.