MET TC 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


Textbook and Materials


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.

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.

Click here for generic information on how grades are allocated and averaged in all of my classes.


 

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