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 |
1; supple-ments | |
2 | 1/22 | Middleware and CORBA
Introduction to the CORBA / Java relationship 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 |
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