MET CS 771 INTERNET BASED APPLICATION DEVELOPMENT
(Formerly MET TC 771)

Course Overview
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. Topics include: 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 (Enterprise Architecture) or equivalent experience.

Learning Objectives
. Understand and obtain practice with current internet-based application principles and architectures
. Understand current and impending internet-based application architectures
. Understand and apply software engineering techniques for developing high quality web applications with special consideration of security aspects.


Methods of Instruction
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.

Evaluation and Grading
Homework Assignments: 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 Projects: 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.

Exams: There are no exams in this course.

Semester Grade: 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.

Academic Honesty
The course is governed by the Academic Conduct Committee policies regarding plagiarism (any attempt to represent the work of another person as one's own). This includes copying (even with modifications) of a program or segment of code. You can discuss general ideas with other people, but the work you submit must be your own. Collaboration is not permitted.

Instructor Information
Instructor: Eric Braude, Ph.D.
E-mail: ebraude@bu.edu
Boston University
Department of Computer Science, Metropolitan College
Address: 808 Commonwealth Avenue, Room 250
Boston, MA 02215
Phone: (617) 353-2367

 

Lab
standard blurb

Homework
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


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

 

Schedule

  1. Introduction to Internet Applications and CORBA

    Explain the distributed software environment envisaged by the Object Management Group and others. Introduce the ORB concept.

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

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

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

  5. Components for the Internet

    Java BeansReview the goals of components and Beans. Emphasize Internet aspects.

  6. C# and .NET

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

  7. Network programming: with Java

    Review Java's integral relationship with the Internet. Explain socket and stream programmingSoftware engineering aspects for assuring Program quality and Security of Internet Based Applications

  8. Protocols and Data

    Languages: HTTP , CGI and XML IIUnderstand the way many applications are done today, and the potential of XML

  9. Miscellaneous, including JavaScript.

  10. 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.Java Security Architecture.

  11. Simple Remote Invocations: RMI

  12. Microsoft Middleware: COM, ActiveX, Web Services

    Understand COM; Review Active-X; Use Active-X controls for the Internet

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

  14. Internet Agents

    Applications of the course's technologies to the construction of bots, crawlers etc. Agent security.

  15. Student projects

 


Department of Computer Science
Boston University Metropolitan College
808 Commonwealth Ave, Room 250, Boston, MA. 02215.  Phone: 617 353 2566, Fax: 617 353 2367, Email: csinfo@bu.edu