Distributed Applications in the Enterprise 
Fall 2002

 

U.C.F.

Charles E. Hughes
Computer Science Department
University of Central Florida


email: ceh@cs.ucf.edu

Structure: MW 16:00-17:15, CL1 109; 29 class periods, each 75 minutes long.
Go To Week 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16

Instructor: Charles Hughes; CSB 206; 823-2762; ceh@cs.ucf.edu
Office Hours: MW 1:30-3:00
GTA: Mathew Lowery; CC1 202; mlowery@cs.ucf.edu
Office Hours: T 3:30-5:00; F 1:30-3:00

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

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.  If you have serious problems, come see me or the GTA, Mathew Lowery.

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 quiz.

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.

Important Dates: Labor Day -- September 2; MidTerm -- October 2; Withdraw Deadline -- October 11; Veterans Day -- November 11; Final -- December 4, 16:00-18:50

Evaluation (Tentative):
Mid Term -- 100 points
Final Exam -- 125 Points
Non Programming Assignments -- 25 Points
Regular Programming Assignments -- 75 Points
Project -- 125 Points
Bonus1 -- 25 Points (increase in points in exam where you did better)
Bonus2 -- 25 points (increase in points in weight of better of exams or assignments)
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 7 Personal; Forte for Java CE; DrJava (for a refresher on Java); Java Tutorial
Sites: Deitel&Deitel; Sun Java Site; Apache; Lots more in text 


Weeks#1: (8/19, 8/21) -- Chapter 1 & Notes
  1. Syllabus
  2. Philosophy and Goals
  3. Rules of the game
  4. Concurrency: benefits and challenges
  5. Threads
  6. Java Support for Concurrency
  7. Distributed applications
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: August 26

Programming Assignment #1:

The Threads example provides code to do an even-odd transposition sort. EOSort is a multithreaded approach that works because each thread maintains control of the single CPU once it completes the sleep at the top of its run loop. Add simple yields or additional sleeps to EOSort that cause it to change active threads. If you do this right, the consequence is that EOSort occasionally fails to carry out the sort properly. This will be trivial at the code end, but takes some thought to figure out how you might get the sort to fail without changing its basic logic.

Turn in a zip file with your project (be sure that the zip keeps all directory structures) and a write-up. Your write-up must discuss your placement of sleeps or yields and the consequences of these changes. Submit to the GTA by e-mail (mlowery@cs.ucf.edu). Be sure to include your name and COP4610 as part of the subject field in your e-mail.

FAQs

Due: September 11

Week#2: (8/26, 8/28) -- Chapter 2 & Chapter 3
  1. Distributed applications
  2. XML
  3. Patterns
  4. Swing classes
  5. Java's Event Model
  6. Deitel Web Browser
  7. Model View Controller (MVC) Framework (Architecture)
Programming Assignment #2:
Exercise 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 the GTA by e-mail (mlowery@cs.ucf.edu). Be sure to include your name and COP4610 as part of the subject field in your e-mail.

FAQs

Due: September 23

Week#3: (9/4) -- Chapter 6
    Labor Day on 9/2
  1. Beans

Week#4: (9/9, 9/11) -- Chapter 6
  1. Beans (we will need to use Forte4Java for this material)


Week#5: (9/16, 9/18) -- Chapter 7
  1. Help session on building Java applications and visual interfaces using JBuilder 7
  2. Security -- General overview
  3. JCE
  4. Digital Signatures
  5. Secure Socket Layer (SSL)
  6. Secure class communication, loading and interaction in Java

Week#6: (9/23, 9/25) -- Chapter 8, Notes
  1. Databases
  2. JDBC
  3. Topics and Promises for MidTerm
  4. Samples for MidTerm
Assignment #2:
        At end of Database Notes
Due: September 30

Week#7: (9/30, 10/2)
  1. Review, answers to sample questions for MidTerm
    MidTerm on 10/2

Week#8: (10/7, 10/9) -- Chapter 9 & Chapter 10
  1. Servlets
  2. JSP
  3. Review of Exam

  4. Assignment #3

    The latest issue of the Communications of the ACM is all about component assembly (Beans, in Java terminology). Everyone must read the Introductory paper on pages 30-34. You must then read two of the other papers in this sepecial section, excluding the last paper (page 83) and the one that starts on page 41. You must follow up on one reference in one of these two papers. You must then write a 5 to 10 page paper that both presents what you read and provides your personal insights. The paper must be in 12 point Times Roman or Times font, double-spaced, and have margins of one inch on all sides. All references must appear at the end using the same standards as the CACM articles. You must include a header on each page, except the first, with your name, the page number, and the title of your paper (abbreviated if necessary). Submit the paper electronically to me and to Mat.
    Due: October 28

    Note: Last Day to Withdraw is 10/11


Week#9: (10/14, 10/16) -- Chapter 10
  1. JSP
  2. Beans assignment
  3. Project discussion (MeasureMe example)

  4. Programming Assignment #3:

    This is a very simple Beans assignment, involving just Swing classes, which are themselves Beans. You must create a user interface that has one JTextField, two JButtons and a JComboBox. Typing in a value and pressing return in the text field should trigger a change to the first button label to match the text just typed. Pressing this button should cause the button's label to be added to the items in the combo box. The button should be labelled "CLEAR". Pressing it removes all items from the combo box. This must be accomplished using BeanBuilder's visual design tool. Submit the xml file generated by BeanBuilder electronically to Mat (mlowery@cs.ucf.edu).
Due: November 4
    Project Assignment

    Project FAQs



Week#10: (10/21, 10/23) -- Chapter 13
  1. Distributed paradigms (full version)
  2. Remote Method Invocation
  3. Java's Solution: RMI
  4. Building and installing servlets
  5. Project Discussion
Programming Assignment #4:
The RMI Bid Example (Mike's one) has a few problems. This was actually an early version that he did. You are to find all problems (Hint: Try to accept a bid; Hint: Is it fair for the one who offers an item for sale to kick up the bid?). Fix the user interface. In particular, how do you exit gracefully?

Make-up: If you want to improve a grade on an old assignment, you can expand this assignment by changing it to work within the Activation framework. The second example in Chapter 13 describes this.

Submit the entire project directory (maintaining its structure) electronically to Mat (mlowery@cs.ucf.edu) as a single zip file.

FAQs

Due: November 20

Week#11: (10/28, 10/30) -- Chapter 14, Chapter 15, Chapter 16 & Chapter 23
  1. Enterprise Java Beans (EJBs)
  2. Session Beans
  3. Entity Beans
  4. Message Queues
  5. Tuple Spaces


Week#12: (11/4, 11/6) --Chapter 22 & Chapter 23
  1. Object Request Broker
  2. Jini
  3. JavaSpaces
  4. Leases
  5. Earth Echoes
  6. Wednesday will be devoted to meetings with project teams
Optional Assignment:
Using space notation (notify, read, take, write), present the design of a system that supports location-based storytelling, as in the Earth Echoes system discussed in class. You may invent your own ways by which information is deposited and acccessed, so long as location and genre are the key means of organization/retrieval. This is a design document from which others should be able to implement the system using JavaSpaces, so it must be detailed in use/case studies and the essential organization of the repository. The document must be in word or rtf format. You can scan in sketches if you don't have a decent other way to show visual aspects of your design. The expected size of the document is between 3 and 5 pages, including figures. Submit the design document electronically to me (ceh@cs.ucf.edu) and to Mat (mlowery@cs.ucf.edu).

This assignment may be used to offset the damage from some previous assignment that you missed or did poorly on.

Due: December 3


Week#13: (11/13) -- Chapter 21
  1. Mixed Reality -- a peek into my research program
  2. Overheads from ACM Lecture

  3. Veterans Day on 11/11



Week#14: (11/18, 11/20) -- Chapter 26, Chapter 27 & Chapter 28
  1. CORBA
  2. Peer-to-peer computing


Week#15: (11/25, 11/27)-- Chapter 28 & Chapter 29
  1. Outline for Project Reports
  2. Peer-to-peer
  3. SOAP
  4. Attacks on network services
  5. Final Exam Topics and Promises
  6. Sample Final Exam Questions
  7. By popular demand, Wednesday's class will be optional


Week#16: (12/2)
  1. Discussion and Return of Assignments
  2. Review for Final Exam

Final Exam:

© Charles E. Hughes, ceh@cs.ucf.edu -- Last Modified November 26, 2002