Distributed Applications in the Enterprise 
Spring 2003

Janet A Kinzler


jkinzler@cs.ucf.edu


Structure: MW 8am - 9:15am, CL1 319; 29 class periods, each 75 minutes long.
Instructor: Janet Kinzler; CSB 207; 823-0169; jkinzler@cs.ucf.edu
Office Hours: MW 9:30-12
TA  KalyanGarimell -- garimell@cs.ucf.edu      Office Hours CCI Rm 202 on Thursday from 10-11

Text: Deitel, Deitel and Santry, Advanced Java 2 Platform, Prentice-Hall, 2002.
Prerequisites: COP3330 (OOP), COP3503 ( CS2), EEL 4882 (OS), CGS 2545 (Databases).

Grades are found at a link at the bottom of the page.

Implementation Environments: You will be regularly using Java. You do not need to be a Java expert, but you must be familiar with it at the level of student who has completed COP3330 and COP3503. Feel free to ask others for guidance to quickly solve  trivial problems with Java syntax or with using Borland JBuilder and the JDK.

Assignments: 3 or 4 small to moderate programming assignments (some are multi-part) using a variety of frameworks and APIs. Around 5 or 6 non-programming assignments.One fairly large project.

Exams: Midterm and a final, and maybe a number of quizzes.

Material: From Deitel: Chapters 1-3, 6-10, 12-16, 22-24, 26-29, Appendix A, B, C. Parts of this are on CD in text. Class notes.

Main Project Specs

Projects

Grades (not all)

Evaluation (Tentative):
Mid Term -- 100 points
Final Exam -- 125 Points
Non Programming Assignments -- 25 Points
Regular Programming Assignments -- 75 Points
Project -- 125 Points 
Total Available: 500
Grading will be  A>=90%, B>=87%, B>=80%, C>=77%, C>=70%, D>=50%, F< 50%

Resources:
Free Software IDEs JBuilder 8 Personal or Enterprise Borland Enterprise Manager

SDK 1.4 from sun site, Deitel&Deitel, Sun Java Site, Apache, Lots more in text.

*** You are responsible to select, install and learn how to use either the Borland Enterprise Manager, or one of the two application servers provided on the disc in your text. All three of these come with a great deal of directions and are very simple to use on a decent running computer. Unfortunately, the computer in our classroom is connected to a number of other servers which makes it nearly impossible to demo. If you simply CANNOT figure it out on your own or in your team, TELL me and I will arrange a demo in the computer science building ***

Weeks#1 & 2: -- Chapter 1 & Notes

  1. Syllabus
  2. Philosophy and Goals
  3. Rules of the game
  4. Concurrency: benefits and challenges
  5. Distributed applications
  6. Paradigms
  7. Support for various paradigms in Java

Assignment #1

Read the example browser pane in Figure 2.1 of Deitel.  There is a problem with their code. It occurs in "boundary conditions." In fact, most common algorithm design errors occur at the boundaries (like at the base case in an inductive argument). You must find the problem(s). Turn in a one-page write-up (an e-mailed document) with your description of the problem(s) and your suggested solution(s). This must be transmitted prior to Monday's class. You may not discuss this with any of your classmates, friends, relatives or local congressional staff. I want to see what you can deduce on your own.

Due: 1/13/03

Week#3 : -- Chapter 2 & Chapter 3

  1. Distributed applications & J2EE
  2. XML
  3. Swing classes
    Deitel Web Browser

Programming Assignment #2Exercise 2.4 from text: Create an image viewer that supports drag-and-drop loading of images.Turn in a zip file with your project (be sure that the zip keeps all directory structures). Submit to me by e-mail (garimell@cs.ucf.edu). Be sure to includeyour name and COP4610 as part of the subject field in your e-mail.

 

  1. Servlets

Programming Assignment #3

Phase 1 your Project also due 2/19/03

Week#5-6: -- JSP (Java Server Pages)

Java Server Pages

Week#7: -- Java Beans

  1. Beans

Week#8: -- Databases

  1. Databases
  2. JDBC
  1. MidTerm Review
  2. Keep working on project

Week   10

Midterm Exam

Week#11

Spring Break

Week#12: -- Chapter 13

  1. Distributed paradigms (full version)
  2. Cookies and Servlets
  3. Remote Method Invocation

Week#13:

  1. Meet with each group to discuss project status

Week#14: --Chapter 22Chapter 23

  1. Object Request Broker
  2. Brief discussion of CORBA
  3. Discovery
    • Multi- vs Unicast
  4. Join
    • Avoiding a packet storm
  5. Lookup
    • Group and/or attributes
    • Remote or local proxy
  6. Distributed garbage collection (also issue in RMI)
  7. JavaSpaces
    • Transient vs persistent space
    • Operations
      • notify
      • read, readIfExists
      • take, takeIfExists
      • write
    • Pure space has eval and no predicate operations
    • Examples
      • Provides communication and coordination
      • Semaphores
      • Arrays
      • Embarrassingly parallel problems
        • image manipulation
        • LOD computation
      • Lightweight communicating agents
    • Efficient management of space
  8. Leases
    • Used extensively in Javaspaces
    • Prevents deserted tuples from cluttering space
    • Can renew
    • Often used in JavaSpaces to create a pseudo predicate read/take

Week#15: -- Chapter 21

  1. TBD (depending on how the projects are going) 

Week#16: -- Chapter 26, Chapter 27 & Chapter 28

  1. CORBA
    • IDL (agreements on types and services)
    • Real time version exists (TAO)
    • Java and Corba
  2. Peer-to-peer computing
    • General Concepts
      • Distributed computation (SETI)
      • Mobile agents
      • Reduction of bottlenecks
      • Limitations on central cataloging
      • Distributed search
        • Finding all or some nodes
        • Parallel operation
        • Time to live (TTL)
      • Anonymity
    • Pure versus hybrid P2P systems
    • JXTAPlatform and language independence
      • Peer groups
      • Advertisements (XML right now)
      • Peer discovery (peer is subject, not object)
        • LAN-based (limited horizon)
        • Cascaded (peers in my horizon use peers in theirs)
        • Rendezvous (pseudo server for peers)
          • Town square analogy
      • Firewalls (bounce in or out through trusted peer)

Week#17 - Chapter 28 & Chapter 29

  1. Peer-to-peer
    • Finish up
  2. SOAP
  3. Attacks on network services