Tik-76.270, Research Seminar:
Java-based Software Technologies
(2 credits)
Organizer
Jukka Paakki
- Office hours: Thursdays, 15.00-16.00, room Y229e
- Tel. 451 5080
- E-mail: jpa@cs.hut.fi
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:
- What is the problem to be solved?
- What are the standard general solutions in the area?
- How can the problem be solved using Java technology?
- In which respect is the Java solution "better" than the standard ones
(or is it)?
- Does Java have any (conceptual, theoretical, practical)
potential in the area?
- Is there any room for further improvements?
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)?
- Journal of Object-Oriented Programming.
- C++ Report (esp. 9, 1, 1997, 42-49).
- K. Koskimies: Pieni oliokirja.
Suomen ATK-kustannus, 1997.
- Any comprehensive and analytic text book on Java.
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?
- F. Grize, M. Aminian: Cybcérone - A Kiosk Information System
Based on the World Wide Web and Java.
Interactions 4, 6, 1997, 62-69.
- Computer Networks and ISDN Systems 28, 7-11,
May 1996: Proceedings of the Fifth International
World Wide Web Conference.
- Computer Networks and ISDN Systems 29, 8-13,
September 1997: Papers from the Sixth International
World Wide Web Conference.
- Computer Networks and ISDN Systems 29, 14,
October 1997: Special Issue on Visualization and Graphics
on the World Wide Web.
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?
- E. Gamma et al.:
Design Patterns - Elements of Reusable Object-Oriented
Software. Addison-Wesley, 1995.
- J. Viljamaa: Tools Supporting the Use of Design Patterns
in Frameworks.
Report C-1997-25, Department of Computer Science,
University of Helsinki, 1997.
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?
- T. Lindholm, F. Yellin: The Java Virtual Machine
Specification. Addison-Wesley, 1996.
- O. Ageson: Design and Implementation of Pep, a Java
Just-In-Time Translator.
Theory and Practice of Object Systems
3, 2, 1997, 127-155.
- Concurrency: Practice and Experience 9, 6, 1997:
Special Issue on Java for Computational Science and Engineering -
Simulation and Modeling.
- Concurrency: Practice and Experience 9, 11, 1997:
Special Issue on Java for Computational Science and Engineering -
Simulation and Modeling II.
-
http://www.javaworld.com/javaworld/jw-03-1998/jw-03-hotspot.html:
HotSpot - dynamic compiler.
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?
- N. Wilde, R. Huitt: Maintenance Support for Object-Oriented
Programs. IEEE Transactions on Software Engineering
18, 12, 1992, 1038-1044.
- M. Lejter, S. Meyers, S. Reiss:
Support for Maintaining Object-Oriented Programs.
IEEE Transactions on Software Engineering
18, 12, 1992, 1045-1052.
- L. Larsen, M.J. Harrold: Slicing Object-Oriented Software.
In: Proc. 18th International Conference on
Software Engineering (ICSE'96), Berlin, Germany.
IEEE Computer Society Press, 1996, 495-505.
- G. Kovács, F. Magyar, T. Gyimóthy:
Static Slicing of Java Programs.
In: Proc. Fifth Symposium on Programming Languages
and Software Tools, Jyväskylä, Finland, 1997.
Report C-1997-37, Department of Computer Science,
University of Helsinki, 1997, 116-127.
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.
- Java as an object-oriented language (Eronen)
- Java-based software architecture (Pirinen)
- Java and component technology (Vikman)
23.4.
Demonstrations II.
The computer classes maari-b and maari-d
(Maarintalo) have been reserved, with both PC and
Unix facilities.
- Java in distributed computing (Niska, Rautiainen)
- Java in (mobile) software agents (Kurki)
- Java and database access (Iivonen)
- Java in multimedia applications (Eskelin)
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.
- Java and the World Wide Web (Silander)
- Java in embedded systems (Helläkoski)
- Java Development Kit v. 1.2 (Nyberg)
- Java in design patterns (Kujala)
- Java virtual machine (Zhu)
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?
- A. Viljamaa: Application Frameworks in the Java
Environment. Report C-1997-24, Department of Computer Science,
University of Helsinki, 1997.
Report.
(b) Demonstrations IV.
The computer classes maari-c and maari-d
(Maarintalo) have been reserved, with both PC and
Unix facilities.
- Automatic analysis of Java programs (Sassi)
- Java in client/server applications (Kemppainen)
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.