MET CS 771 Internet based Application Development

Last updated April 3, 2002: Last few changes are often in red

Linked alphabetical index to this page:

1. Background of the Instructor

2. Evaluation of Students

3. Forums: Past and Present

4. Homework Due Dates

5. How to Contact Dr. Braude

6. Introduction to the Course

7. Learning Objectives

8. Project Structure

9. Syllabus and Class Dates

10. Textbooks and Materials

11. Warning Concerning Plagiarism

Background: The network, rather than the individual computer, is rapidly becoming the application platform of choice.  Increasingly, applications consist of software from multiple sources, executing on a variety of physical platforms, and bound together by the Internet. This course is designed to investigate the technology options for this network-based application environment.

Description: Technology and development methods for internet-based distributed applications, including the World Wide Web platform.  Distributed application architectures, language systems (e.g. C#, Java, JavaScript, XML).  Distributed Java features will be exploited.  Distributed object standards (CORBA and .NET), and net-focused development methodologies. Internet agents. Term papers investigating current literature and an application project are required. Laboratory course.

Prerequisites: (1) 665 (Advanced Object-Oriented Programming) or 565 (Java Programming), and (2) 673 (Software Engineering) or 679 (Architecture and Design of Client-Server Systems) or equivalent experience

This course is partially a “seminar”: There will be a significant number of independent papers and presentations by students designed to promote their own learning and that of the class.


Learning Objectives

    • Understand and obtain practice with current internet-based application principles and architectures
    • Understand current and impending internet-based application architectures

Textbook and Materials

    • Recommended (you could do without this book): Client/Server Programming with Java and CORBA 2nd Ed (1998) by R. Orfali and D. Harkey (Wiley), second edition
    • The instructor will provide notes for most of the classes
    • Previous class forums, which are open for browsing
    • Students will gather learning materials for their focused topics
    • Additional References:
      • Java Network Programming 2nd Edition by Elliotte Rusty Harold
      • Assorted OMG publications (Framingham MA)
      • Microsoft COM specifications
      • Sun’s Java references

Project Structure

Students will be required to research at least one contemporary Internet-based Application Development (I.B.A.D.) topic, and implement an application of I.B.A.D. technology combinations that executed across the Internet. Typical topics involve combinations of: CORBA, COM, Servlets, Agents (e.g., Aglets), JavaScript client- and server-side, RMI, Python, and selected distributed Java packages.

There will be two projects during the term.  Exact project requirements will be supplied.

  • One project will probably refer to current publications concerning architectures for Internet based applications
  • the second project will be an implementation

Examples of prior projects have been posted to prior forums.  In addition, I will give an example of an XML/Applet/Servlet/RMI application that students are encouraged to take seriously as a potential paper and project.

Each project/paper will consist of a preliminary and a final phase.  The final submission should include a copy of the preliminary phase, showing the instructor’s comments and indicating how they are addressed in the final submission.  Every student should expect to give a presentation, together with handouts, on every project.  Time and class size constraints are such that possibly not every presentation will take place.


Evaluation of Students

The semester grade will be computed from the two projects, each weighted equally.
Within each project, phase 1 will count for 1/4, and phase 2 for 3/4. In addition, several short homework papers will be required on a pass/fail basis. All submitted papers and projects must be posted to a class web site within a week of regular submission, as explained with each homework.  Students may decline to do so, but only if they submit notice of this declination via e-mail to the instructor at the due date.

Students will be given a number of pass/fail assignments throughout the semester.  A “Pass” grade is an adequate basis for any grade in the course, which depends on the paper and project: However, a grade of A or A+ may be given for a pass/fail homework when the student has performed exceptionally and gone well beyond the requirements of the problem.

Late homework will not accepted unless there is a reason why it was impossible to perform the work.  In that case, the written reason should be attached to the homework, which will be graded on a pass/fail basis.


Warning concerning plagiarism

The Metropolitan College has specific guidelines defining plagiarism, and you are responsible for abiding by them.  This section provides additional guidance.

The College has serious penalties for plagiarism, including expulsion from the degree program. Please be very careful to cite all references used so that it is very clear which parts of your submissions are your own, and which parts are quoted from someone else.   Simply listing references at the end of your submission is not sufficient.

e-mail, see or call me if you have any doubts. In any case, clearly acknowledge all sources in the context they are used, including code, of course.


Syllabus

Wk. Date Topic

Note: due to the rapid changes in technology, these topics and their order are subject to about 20% change

Chapters from Orfali & Harkey Project:

(approximate: See “homework dates due” section for final dates)

1 1/15 Overview

Introduction to Internet Applications and CORBA
Explain the distributed software environment envisaged by
the Object Management Group and others. Introduce the ORB concept.

1; supple-ments
2 1/22 Middleware and CORBA

Introduction to the CORBA / Java relationship
Show how CORBA and Java complement each other.  Review Java features that enhance this relationship.  Jini.

Introduction to XML and SOAP

2;
supple-ments
Project 1-1 assigned
3 1/29 Object Request Brokers
Understand the goals of distributed application development, particularly those defined by the OMG (Object Management Group). Describe the essentials of ORBs (Object Request Brokers).  Show the code for distributed applications written in Java and using CORBA. Integrating Applets with ORBS
Show how ORBS can be used from applets.   Introduce Java Beans; illustrate their importance for distributed application development.
5, 27 Discuss potential projects
Project 1-2 assigned
4 2/5 Dynamic CORBA usage
Show how remote objects and methods can be discovered, and methods built and applied at runtime.                                                    Interpreted client-side languages: JavaScript
Illustrate the positioning of JavaScript and competitor languages.
7,8 Project 1-1 due  assigned
Student presentations
5 2/12 Components for the Internet

Java Beans

Review the goals of components and Beans.  Emphasize Internet aspects.

27-32 Student presentations
6 2/26 C# and .NET

Review the goals of C# and contrast with Java.  Emphasize Internet aspects.

supple-ments Student presentations

Project 2-1 assigned

7 3/11 Network programming: with Java
Review Java’s integral relationship with the Internet.  Explain socket and stream programming
10; supple-ments Project 1-2 due

Student presentations

8 3/18 Protocols and Data Languages: HTTP , CGI and XML II
Understand the way many applications are done today, and the potential of XML
11; supple-ments Discuss potential projects
Student presentations Project 2-1 due  Project 2-2 assigned
9 3/25 Miscellaneous, including JavaScript. Student presentations
10 4/2 Simple Remote Invocations: RMI
Define Remote method Invocation; Review the RMI package; Show the use of RMI; Review trade-offs with competing methods, including CORBA.
13; supple-ments Student presentations
11 4/9 Microsoft Middleware: COM, ActiveX, Web Services Understand COM; Review Active-X; Use Active-X controls for the Internet 15-16; supple-ments Student presentations
12 4/16 Advanced Middleware: .NET, CORBA Services
Describe common services for distributed applications, including the CORBA  Interface Repository and Trader service.  Review the operation of CORBA classes such as the BOA and Portable Object Adapter.  Web services.

Metadata in CORBA and Java
Describe introspection in CORBA.  Compare it with Java’s introspection.  Explain the application of metadata.  Review the mappings of IDL to Java.  Define Sun’s Java-to-IDL process.

17-18

19-22

Student presentations
13 4/23 Internet Agents
Applications of the course’s technologies to the construction of bots, crawlers etc.
supple-ments Student presentations
14 4/30 Student projects Students present results

Homework Due dates

Number Name Due date
1 Motivation 1/22
2 ORB/Java 2/12
Project 1 Phase 1 2/5
3 Preferably Dynamic CORBA (otherwise Applet/ORB) 2/26
Project 1 Phase 2 3/12
4 BeanBox 11.2 2/26
5 .NET Exercises 3/19
6 Sockets etc. 3/26
Project 2 Phase 1 3/26
7 Reverse 4/2
8 RMI 4/16
Project 2 Phase 2 4/30

Forums — past and present

Spring 1999

Fall 1999

Spring 2000

Fall 2000

Spring 2001

Summer 2001

Fall 2001

Spring 2002 group e-mail: 771Sp02@yahoogroups.com