Department of Systems and
Computer Engineering
Roger Impey
94.580

Network Computing

Winter 2000 

Lecturer

Dr Roger Impey
National Research Council
Telephone: 991-6974
email: Roger.Impey@iit.nrc.ca

Course Web Page

URL:  http://www.sce.carleton.ca/courses/94587/

Course description

Over the last few years, telecommunication networks have been gradually becoming new computing platforms. This trend is very strongly supported by all major players in the telecommunication and software industry.

There is an evident shortfall of specialists in the area that is currently critical to virtually every company including many local firms. There is a spectrum of programming courses that teach basic and advanced programming techniques, but none of them takes a unified approach to the issues that are important to effectively use networks as computing platforms. Various learning institutes offer plenty of expensive courses that usually have very narrow scope, assume lots of prior knowledge and are blurred with excess of details.

The objective of the Network Computing course is to produce specialists that are capable of solving problems in innovative ways using a network as a computing medium. The process will utilize the skills acquired in other basic and advanced programming courses. The course will enrich student’s capabilities by addressing the following:

Calendar description

Design and programming in Java of distributed systems that use telecommunication networks as their computing platform. Basics of networking; protocols, OSI model, IP, TCP, UDP, HTTP. Introduction to open distributed processing; RPC, CORBA, DCE, ODP, TINA-DPE. Detailed coverage of CORBA, JavaRMI, JavaIDL and CGI/HTTP. Componentware; JavaBeans and Enterprise JavaBeans. Java facilities for networking and code mobility. Security issues; Java security model. Applications of remote and mobile code (agents) for network computing; thin clients, delegation, plug-and-play networks. Issues in design and storage of remote and mobile code.

Prerequisites

Knowledge of Java, C/C++ or Smalltalk. Knowledge of basics of networking.

Departmental approval.

Marking (See Project Schedule)

The small groups of students will be required to select an application of their choice that utilizes several of the concepts presented in class. The size of the project groups will be determined when the size of the class is known. Students will be allowed to put together their own groups, if this can not be done, groups will be assigned. They will have to design a solution to the problem and submit documents on functional design and detailed design followed by a presentation during a seminar. The length of the presentation will be determined when the size of the class is known. The design should be encoded mainly in Java. Other languages will be allowed, notably C++. It will be demonstrated and defended by the group during an oral examination in the examination session. A final report in a form of a conference paper including an analysis of the results will be submitted by each member of the group at the end of the course. The final mark will be based on the quality of the design documents, seminar presentation, the extent of the application, the oral defense and the final paper.

Resources

The students will be required to design and code a substantial project mainly in Java. There are plenty of tools available for Java development for UNIX and Windows95/NT. Some of them are free to academic community, but even the most sophisticated ones are inexpensive for students. Virtually any computing platform is supported by at least one development tool. Java is a portable language, so any implementation can be done in a lab using UNIX workstations or at home on PCs. The main

Carleton University is allowed to use IBM's VisualAge for Java for educational purposes. This environment requires a Pentium-class PC with at least 32MB of RAM (64MB is recommended).

JavaRMI and JavaIDL, a CORBA implementation, are distributed with standard JDK from Sun (starting with version 1.1 for RMI and 1.2 for JavaIDL).