Tik-76.270, Research Seminar:
Java-based Software Technologies
(2 credits)


Organizer

Jukka Paakki

Introduction

The seminar studies the potential effects of Java on software technology. The main emphasis will be on the new advanced features of Java: in which areas can Java be applied, how does Java affect software architecture and application development, and why?

Requirements

Since the seminar is research-oriented in nature, the participants shall be fairly competent in Java technology and also have some experience in developing Java applications.

Sessions

The seminar sessions will take place on Thursday evenings, 18.15-20, in room Y427a. The seminar has started on January 22, 1998.

Process

(1) Each student is assigned a special topic to be addressed at the seminar.

(2) The topic shall be introduced to other participants in the form of a written report. The recommended length of the report is 3-5 pages. It shall be written in HTML and stored in some WWW server by the student. The report shall be complete no later than on Monday immediately preceding the presentation at the seminar on Thursday. A link (URL) to the report shall be mailed to Jukka Paakki (jpa@cs.hut.fi), to be included in this seminar page. The participants are assumed to read the report before coming to the interactive seminar session on Thursday evening. The structure of the report shall follow the standard form of scientific publications: heading (title of topic, name of author(s)) - introduction - a couple of substance chapters - summary, future trends - references to journals and proceedings, links to relevant material in WWW.

(3) The topic is orally presented at a seminar session on Thursday. The length of the presentation shall be about 45 minutes, including discussion which is a central part of any seminar. (Therefore it is essential that everybody has read the associated report with some thought.) The presentation shall be based on the report, but the intention is not to simply read the report word by word. Instead, the attention must be focused on the main points illustrated by examples and personal opinions. The associated constructive demo-application shall be outlined as well.

(4) Each topic will be demonstrated by constructing a small application using Java technology. The application should be fairly small, say, at most 500 lines of written code. The intention is not to hack with the fanciest features invented, but instead to demonstrate the central idea behind the problem and its solution. A short description of the application shall be included in the seminar report in WWW. If someone has problems in finding a suitable example application, please contact Jukka Paakki.

(5) The seminar will be closed by sessions where each example application is demonstrated to the participants. The maximum length of a demonstration is 15-20 minutes. These sessions will take place in a class with computing facilities, and the demonstrations should be run with a computer (if possible). It would be nice to have the applications available also in the topic's WWW page (as an applet), but this is just an option.

Passing the seminar

In order to pass the seminar, the student must acceptably carry out all the tasks (1) - (5) listed above. Grading follows the simple pass / fail principle. A student is allowed to be absent from seminar sessions at most 3 times (including the demonstrations).

Some general principles

Even though the seminar is technologically oriented, the emphasis should not be on technology only. Instead, the reports and presentations should address also more general issues, the leading theme being "what kind of effect might Java have on software technology?" The following lists a few questions that should be kept in mind throughout the seminar:

Languages

The WWW report shall be written in English. Otherwise the working language at the sessions is Finnish, except for foreign students who may give the presentation in English.

Material

Since the theme is under rapid development, scientific publications are rather sparse. Therefore the participants shall actively search for relevant and up-to-date material from the WWW. References to some publications and on-line sources are given below. Note that this is not supposed to be a complete list but instead just a starting point for a deeper material mining.

General references, relevant to most topics

Schedule

22.1. Introduction, assignment of topics:
Jukka Paakki (jpa@cs.hut.fi).
29.1 & 5.2. BREAK!!! No seminar.
12.2. Java as an object-oriented language:
Jussi Eronen, 72850E (jussi.eronen@datex-engstrom.com).

What kind of an object-oriented language is Java? What are its main features? Is there anything special in Java? How does it relate to more conventional object-oriented languages (such as C++, Smalltalk, Eiffel)?

Report.


12.2. Java-based software architecture:
Rauno Pirinen, 49373N (rauno.pirinen@pp.inet.fi).

What is the typical architecture of a system like, when implemented using Java? What are its main components and their interfaces (server - database - client - applet)? How can external ("legacy") components be integrated into the system? What are "JavaServer architecture" and "servlets"?

Report. (Rest of the material is confidential.)


19.2. BREAK!!! No seminar.
26.2. Java and the World Wide Web:
Mika Silander, 36344U (msi@cc.hut.fi).

How does Java contribute to WWW? What are applets? What kind of Java applications can be run under a WWW browser (in the future)? What kind of advanced services does Java offer to WWW beyond its standard capabilities? Which kind of extra functionality does Java demand from the WWW browsers?

Report.


26.2. Java and component technology
Osmo Vikman, 16601S (osmo.vikman@ntc.nokia.com).

What is a "software component" in general? What is a JavaBean? How does one construct JavaBeans? What are the requirements for a Java entity to be a Bean? Where can JavaBeans be used? How can they be integrated with each other and into the core system? How do JavaBeans relate to other component techniques (such as DCOM, ActiveX)?

Report.


5.3. Java in distributed computing:
Petri Niska, 32744J (petri.niska@research.nokia.com) & Aapo Rautiainen, 39126F (aapo.rautiainen@research.nokia.com).

What is Java's relation to CORBA (Java Interface Definition Language)? What is Remote Method Invocation (RMI) and how can it be used? What kind of distributed facilities are available in the current release of Java Development Kit (JDK)? Can distributed Java applications be integrated with systems based on other technologies?

Report.


5.3. Java in (mobile) software agents:
Teppo Kurki, 33877A (teppo.kurki@hut.fi).

What is an "agent"? What is a mobile agent? Why would Java be a powerful tool for implementing (mobile) agents? What kind of Java-based frameworks are there for producing agents? What kind of agents have been implemented using Java?

Report.


12.3. Java and database access:
Jukka-Pekka Iivonen, 93433M (iivonen@cc.helsinki.fi).

How can a database be integrated with a Java application? What is Java Database Connectivity (JDBC)? What other forms of persistence are there for Java?

Report.


12.3. Java Development Kit (JDK) v. 1.2:
Kim Nyberg, 36319M (kny@tekla.fi).

What kind of new functionality does JDK 1.2 (currently beta) provide, and in which main areas? How does it improve application development?

Report.


19.3. Java in multimedia applications:
Juha Eskelin, 42532M (juha.eskelin@hut.fi).

How can audio and video be embedded within Java applets and applications? What is Java Media Framework (JMF), and what facilities does it offer?

Report.


19.3. Java in embedded systems:
Altti Helläkoski, 39192S (hellakos@trshp.ntc.nokia.com).

How can Java programs be run in embedded systems? What kind of technical machinery does the embedding need? Do embedded systems gain any added value from having Java inside? What are Embedded Java, Personal Java and Java Card?

Report.


26.3. Java in design patterns:
Mika Kujala, 31685P (mika.kujala@research.nokia.com).

What are design patterns? What kind of patterns have been developed, why and how? How does one implement design patterns in Java? Is Java a good choice for implementing design patterns?

Report.


26.3. Java virtual machine:
Jun Zhu, 43972H (jun.zhu@research.nokia.com).

What is Java bytecode? What is Java virtual machine, and how does it work? How can the standard virtual machine be improved? What are "just-in-time" compilers? What is "HotSpot" technology?

Report.


Wednesday 1.4, 18.15-19.45, room Y313. NOTE!!! New day and place !!!
Automatic analysis of Java programs:
Ari Sassi, 71884J (ari.sassi@laak.fi).

Does object-orientation impose any specific requirements on the analysis of programs? What kind of program representations can be automatically produced for object-oriented (Java) programs? What are "slices"? What is Java Reflection, and how can it be used for extracting information over a Java program? How does Java Reflection relate to conventional analysis methods based on compiler techniques?

Report.


Wednesday 1.4, 18.15-19.45, room Y313. NOTE!!! New day and place !!!
Java security issues:
Jarek Krol, 73808P (krol@trshp.ntc.nokia.com).

What is the security model ("sandbox") for applets? What are security manager, class loader, and bytecode verifier, and why are they needed? What are "trusted" sources? How are access control, digital signatures etc. supported? What kind of security enhancements will JDK 1.2 contain?

Report.


9.4. BREAK!!! No seminar.
16.4. Demonstrations I.
The computer classes maari-c and maari-d (Maarintalo) have been reserved, with both PC and Unix facilities.
23.4. Demonstrations II.
The computer classes maari-b and maari-d (Maarintalo) have been reserved, with both PC and Unix facilities.
30.4. BREAK!!! No seminar.
7.5. Demonstrations III.
The computer classes maari-c and maari-d (Maarintalo) have been reserved, with both PC and Unix facilities.
Wednesday, 13.5, 18-20. NOTE!!! The session will take place one day earlier than originally scheduled!!!
(a) Java in client/server applications:
Vesa Kemppainen, 37642D (vkemp@cc.hut.fi).

How does Java affect the conventional client/server architecture? What are "thin clients"? Can application frameworks be exploited in this area?

Report.

(b) Demonstrations IV.
The computer classes maari-c and maari-d (Maarintalo) have been reserved, with both PC and Unix facilities. The demonstration by Jarek Krol on Java's security issues will be organized separately on Tuesday, May 12, at 14.00 o'clock (Maarintalo).
Last modified 8.5.1998 by Jukka Paakki.