Vous êtes sur la page 1sur 75

TAMPERE UNIVERSITY OF TECHNOLOGY

Department of Information Technology

PETTERI KERMINEN
HYPERMEDIA FOR DIGITAL SIGNAL PROCESSING
Master of Science Thesis

The subject has been accepted at meeting of


the department council on May 13th, 1998
Supervisor: prof. Moncef Gabbouj
I

PREFACE

I have done this research work at Tampere University of Technology, Pori School of
Technology and Economics as a research assistant. I would like to thank my super-
visor professor Moncef Gabbouj and my instructor Dr. Tech. Jari Multisilta (both
from Tampere University of Technology, Pori School of Technology and Economics)
for all advice and guidance during the project.

I would like to thank all my colleagues at Tampere University of Technology, Pori


School of Technology and Economics for their help and advice concerning this
project.

I would like to thank my parents and brothers for their encouragement during stressful
phases of the project. Special thanks to my dear wife Anitta for her favorable and
encouraging attitude during the project.

Pori, 28.5.1998

Petteri Kerminen

Leppäkorventie 12 D 15
28660 PORI
Finland
Tel. (02) 646 9456
II

TABLE OF CONTENTS
PREFACE...........................................................................................................................I
TABLE OF CONTENTS ................................................................................................. II
ABSTRACT..................................................................................................................... IV
TIIVISTELMÄ .................................................................................................................V
ABBREVIATIONS ......................................................................................................... VI
1 Introduction .................................................................................................................... 1
2 Computer Assisted Learning and Distance Learning ..................................................... 3
2.1 Learning Theories ................................................................................................................ 3
2.2 Student modelling ................................................................................................................. 3
2.3 Changes to Traditional Teaching......................................................................................... 4
2.4 Future techniques ................................................................................................................. 5
3. Internet and WWW ....................................................................................................... 6
3.1 Network Structure................................................................................................................ 6
3.2 Internet Architecture ........................................................................................................... 7
3.3 Client/Server Concept .......................................................................................................... 9
3.4 TCP/IP Protocols .................................................................................................................. 9
3.4.1 Internet Protocol (IP) .................................................................................................... 9
3.4.2 User Datagram Protocol (UDP) .................................................................................. 10
3.4.3 Transmission Control Protocol (TCP) ........................................................................ 10
3.4.4 Other Useful TCP/IP Protocols................................................................................... 10
3.5 Email-, File Transfer - and Hypertext Transfer Protocols................................................ 11
3.5.1 Simple Mail Transfer Protocol (SMTP) ..................................................................... 11
3.5.2 Post Office Protocol (POP3)........................................................................................ 11
3.5.3 File Transfer Protocol (FTP) ...................................................................................... 11
3.5.4 Hypertext Transfer Protocol (HTTP)......................................................................... 12
3.6 Information on the WWW.................................................................................................. 14
3.7 Data Formats Supported by WWW-browsers Directly..................................................... 14
3.7.1 HTM/HTML ............................................................................................................... 14
3.7.2 JPEG ........................................................................................................................... 15
3.7.3 GIF .............................................................................................................................. 15
3.7.4 Other Data Formats Supported Directly by Browsers............................................... 15
3.8 Data Formats Supported by WWW-browsers with Plug-ins or Helper Programs.......... 16
3.8.1 MPEG.......................................................................................................................... 16
3.8.2 M-files.......................................................................................................................... 17
4 Different Network Solutions ..........................................................................................18
4.1 Connection Types ............................................................................................................... 18
4.2 Transmission Medium ........................................................................................................ 18
4.3 Network Topologies ............................................................................................................ 19
4.4 Achieved Bit Rates in Different Networks and Connections............................................. 20
4.5 Required Network Bit Rates for Different Data Types..................................................... 21
5 Server and Client Types ................................................................................................23
5.1 WWW-servers .................................................................................................................... 23
5.1.1 Apache......................................................................................................................... 23
5.1.2 Microsoft IIS ............................................................................................................... 24
5.1.3 Netscape....................................................................................................................... 25
5.1.4 NCSA HTTPd ............................................................................................................. 25
5.2 WWW-clients ..................................................................................................................... 25
5.2.1 Netscape Navigator ..................................................................................................... 26
5.2.2. Microsoft Internet Explorer ...................................................................................... 26
6 HTML............................................................................................................................27
6.1 HTML History.................................................................................................................... 27
6.2 Most Important HTML Commands................................................................................... 28
6.3 Lacks of HTML-standards................................................................................................. 29
III
6.4 Future Visions..................................................................................................................... 29

7 Java ................................................................................................................................31
7.1 Properties of The Java Language....................................................................................... 31
7.2 Java History........................................................................................................................ 32
7.3 Java Future Vision.............................................................................................................. 33
7.4 Java Programming ............................................................................................................. 33
7.5 Applets and Scripts............................................................................................................. 34
7.6. Browsers that Support Java .............................................................................................. 34
7.7 Calling Plug-ins with Java.................................................................................................. 34
8 Softwares Available for Exercise Generating / Visualization ........................................36
8.1 Java ..................................................................................................................................... 36
8.2 MATLAB............................................................................................................................ 36
8.3 Maple V .............................................................................................................................. 37
8.4 Mathcad .............................................................................................................................. 37
8.5 HotEqn................................................................................................................................ 37
9 Requirements for Servers and Clients ...........................................................................39
9.1 Operating systems .............................................................................................................. 39
9.2 Browser............................................................................................................................... 39
9.3 Servers’ and Clients’ Hardware ........................................................................................ 40
9.4 Network .............................................................................................................................. 41
9.5 Network Security................................................................................................................ 41
9.6 Exercises and Exams .......................................................................................................... 42
9.7 Copyrights........................................................................................................................... 42
9.8 Copy Protection .................................................................................................................. 43
9.9 Time Consumption on Server and Network Load ............................................................. 43
10 Different Solutions........................................................................................................45
10.1 Hypermedia Type ............................................................................................................. 45
10.2 Server Solutions ................................................................................................................ 45
10.3 Editors............................................................................................................................... 46
10.3.1 HTML Editors........................................................................................................... 46
10.3.2 Other Hypermedia Editors and Softwares ............................................................... 47
10.4 WWW-layout .................................................................................................................... 47
10.4.1 Equations as GIFs vs. as HotEqn images.................................................................. 48
10.4.2 Frames vs. No Frames ............................................................................................... 48
10.5 Image Format Conversion ................................................................................................ 48
10.6 Naming Technique of Different Objects .......................................................................... 48
10.7 Automatic Link Generator............................................................................................... 49
10.8 Java Editors and Compilers ............................................................................................. 49
11 Chosen System .............................................................................................................52
11.1 Type of Hypermedia ......................................................................................................... 52
11.2 Editor and Other Programs ............................................................................................. 52
11.3 Graphical User Interface.................................................................................................. 53
11.4 Server(s)............................................................................................................................ 56
11.5 Data Formats .................................................................................................................... 56
11.6 Exercise Generation ......................................................................................................... 57
12 WWW-realization of DSP Hypermedia.......................................................................58
12.1 NT Workstation Installation and Configuration.............................................................. 58
12.2 Peer Web Services: Installation and Running ................................................................. 58
12.3 FrontPage.......................................................................................................................... 59
12.4 Amount of Information on One WWW Page ................................................................... 62
12.5 Possibility to Transfer Hypermedia on Another Server .................................................. 63
13 Conclusions ..................................................................................................................64
REFERENCES.................................................................................................................65
IV

ABSTRACT
TAMPERE UNIVERSITY OF TECHNOLOGY
Department of Information Technology,
Pori School of Technology and Economics
KERMINEN, KAI PETTERI: Hypermedia for Digital Signal Processing
Master of Science Thesis, 67 pages
Examiner: professor Moncef Gabbouj
Funding: Tampere University of Technology, Pori School of Technology and
Economics
May 1998
Key words: Hypermedia, Digital Signal Processing, Distant Learning, World Wide
Web
UDC: 621.391.8, 681.324

Hypermedia offers a modern way to make the material which supports teaching. The
requirements which are set on different sectors have been clarified in this study in
connection with the production, distribution and use of hypermedia. The purpose of
the study was to produce the material which supports the teaching of the digital signal
processing course and with which the students would become acquainted both before
the actual course and during it. This course was chosen as a target because some
students have had problems with the course because of its theoretical content.

In the study software and protocols, which are related to use of Internet based hyper-
media, have been compared on the basis of literature and WWW. The comparisons of
the software required for the actual production and distribution of hypermedia have
been carried out based on literature and tests. The ability of the WWW browsers to
visualize the produced hypermedia has been analyzed with tests. Solutions to the
security problems and copyrights subjects have been dealt with and solutions have
been presented. Attempts were made to find solutions to the automatic production
and checking of the exercises by asking for solution proposals of the companies which
make software and by looking for information on the Internet.

The study concentrated on looking for solutions to the developing of the hypermedia
in the PC environment. In the development phase a Microsoft NT 4.0 workstation
with Peer Web Service was used as a WWW server. The HTML code was produced
with Microsoft FrontPage and with the ASCII editors. Equations were typeset with
Microsoft Equation Editor and were converted to GIF format with image processing
software. Java programs were made with Java Development Kit. Some commands
from the newest HTML version 4.0 have been used and these work only with
Netscape Navigator 4.0 (or a newer model).

The production of good quality hypermedia takes plenty of time and requires versatile
skills. With one person's work contribution the completion of the work takes
considerably more time, also relatively, than the same hypermedia produced by a
team. On the basis of the study tools which are used for production of the hypermedia
can be found for all the other purposes except for the generation of exercises to the
WWW environment. The problem of the Java tools is that the byte
code, produced by tools, is partially inoperative in most browsers.
V

TIIVISTELMÄ
TAMPEREEN TEKNILLINEN KORKEAKOULU
Tietotekniikan osasto,
Porin korkeakouluyksikkö
KERMINEN, KAI PETTERI: Hypermedia for Digital Signal Processing
Diplomityö, 67 s.
Tarkastaja: professori Moncef Gabbouj
Toukokuu 1998
Rahoittaja: Tampereen teknillinen korkeakoulu, Porin korkeakouluyksikkö
Avainsanat: hypermedia, digitaalinen signaalinkäsittely, etäoppiminen, World Wide
Web
UDK: 621.391.8, 681.324

Hypermedia tarjoaa nykyaikaisen tavan tehdä opetusta tukevaa materiaalia. Tässä


tutkimuksessa on selvitetty eri osa-alueille asetettavia vaatimuksia hypermedian
tuottamiseen, jakeluun ja käyttöön liittyen.

Tutkimuksen tarkoituksena oli tuottaa digitaalisen signaalinkäsittelyn -kurssin ope-


tusta tukeva materiaali, johon opiskelijat tutustuisivat sekä ennen varsinaista kurssia
että kurssin aikana. Kyseinen kurssi valittiin kohteeksi, koska joillakin opiskelijoilla on
ollut ongelmia ko. kurssin kanssa sen teoreettisuuden vuoksi.

Tutkimuksessa on vertailtu Internetiin sijoitettavan hypermedian käyttöön liittyvien


ohjelmistojen ja protokollien toimintaa kirjallisuuden ja WWW:n perusteella. Hyper-
median varsinaiseen tuottamiseen ja jakeluun tarvittavien ohjelmistojen vertailuja on
suoritettu kirjallisuuteen ja käyttökokeisiin perustuen. WWW-selainten sopivuutta
tuotetun hypermedian katseluun on selvitetty käyttökokeilla. Tietoturvaongelmien
ratkaisuja ja tekijänoikeuksien suojaamismahdollisuuksia on käsitelty ja ilmenneisiin
ongelmiin on esitetty ratkaisuja. Harjoitustehtävien automaattiseen tuottamiseen ja
tarkastamiseen pyrittiin löytämään ratkaisuja tiedustelemalla ratkaisuehdotuksia oh-
jelmistoja valmistavilta yrityksiltä ja etsimällä tietoa Internetistä.

Tutkimus keskittyi etsimään ratkaisuja PC-ympäristössä tapahtuvaan hypermedian


kehittämiseen. Kehitysvaiheessa palvelimena käytettiin Microsoft NT 4.0 work-
stationia Peer Web Servicellä varustettuna. HTML-koodi tuotettiin Microsoft Front-
Pagella ja ASCII-editoreilla. Kaavat tehtiin Microsoft Equation Editor -ohjelmalla ja
muutettiin GIF-muotoon kuvankäsittelyohjelmistoilla. Java-ohjelmien tekoon käy-
tettiin Java Development Kitiä. Hypermediassa on käytetty muutamia uusimman
HTML-standardin 4.0 mukaisia komentoja, jotka toimivat oikein ainoastaan Netscape
Navigator 4.0 selaimen (tai uudemman) kanssa.

Tasokkaan hypermedian tuottaminen vie runsaasti aikaa ja vaatii monipuolisia taitoja.


Yhden hengen työpanoksella työn valmistuminen vie suhteellisestikin huomattavasti
enemmän aikaa kuin työryhmän yhdessä tuottaman hypermedian valmistuminen.
Tutkimuksen perusteella hypermedian tuottamiseen käytettäviä työkaluja löytyy
kaikkiin muihin tarkoituksiin paitsi harjoitusten generointiin WWW-ympäristössä.
Java-työkalujen ongelmana on niiden tuottaman koodin osittainen toimimattomuus
useimmissa selaimissa.
VI

ABBREVIATIONS
ADSL Asymmetric Digital Subscriber Line
API Application Programming Interface
ASCII American Standard Code for Information Interchange
ATM Asynchronous Transfer Mode.
b bit
B Byte
bps bit(s) per second
Bps Byte(s) per second
CAL Computer Assisted Learning
CD-ROM Compact Disc-Read Only Memory
CERN European Laboratory for Particle Physics
CGI Common Gateway Interface
CPU Central Processing Unit
DDE Dynamic Data Exchange
DHTML Dynamic HTML
DNS Domain Name Service/Server
DSP Digital / Discrete-time Signal Processing
E-IDE Extended IDE
FAT File Allocation Table
FTP File Transfer Protocol
GIF Graphics Interchange Format
GUI Graphical User Interface
HDSL High bit rate Digital Subscriber Line
HTML Hypertext Markup Language
HTTP / http Hypertext Transfer Protocol
HTTPd / httpd Hypertext Transfer Protocol daemon
HTTP-NG Hypertext Transfer Protocol - Next Generation
IDE Intelligent Drive Electronics
IEEE Institute of Electrical and Electronics Engineers
ISDN Integrated Services Digital Network
ISP Internet Service Provider
JDK Java Development Kit
JPEG Joint Photographic Expert Group
LAN Local Area Network
LZW Lempel-Ziv & Welsh-compression
MIME Multipurpose/Multimedia Internet Mail Extension
MPEG Motion Picture coding Experts Group
MTU Maximum Transmission Unit
NCSA National Center for Supercomputing Applications
PC Personal Computer
POP3 Post Office Protocol version 3
RAM Random Access Memory
RFC Request For Comments
SCSI Small Computer System Interface
SGML Standard Generalized Markup Language
SMTP Simple Mail Transfer Protocol
TCP/IP Transmission Control Protocol/Internet Protocol
VII
UDP User Datagram Protocol
URL Uniform Resource Locator
W3C World Wide Web Consortium
WAV RIFF wave is a sound format by Microsoft and IBM
VRML Virtual Reality Modelling Language
WWW / www World Wide Web
WYSIWYG What You See Is What You Get
1

1 Introduction
The old definition for hypermedia was ”hypermedia = multimedia + hyperlinks”. Now
a days multimedia can also contain links and so the border between terms hypermedia
and multimedia has been blurred. Hypermedia contains documents and embedded
objects inside the documents. Some of these embedded objects for example a video
sequence can be displayed on a separate window. Each document in the hypermedia
material has been connected to the other material with hyperlinks.

One of the biggest reason for increasing popularity of networked multimedia has been
the development work which has been done for the Internet. Faster networks and
enhanced animation/multimedia facilities offer a good base for hypermedia
programmers/producers. Schools and research centers have used the Internet many
years. ISPs (Internet Service Provider) has started to market telephone line based
Internet connections to home users a couple of years ago. The pricing policy has
become more user friendly due to increasing competition. The amount of Internet
connections has risen almost exponentially. Java, a new network compatible
programming language, has brought network hypermedia programming to the level
where more and more programmers can use it.

The popularity of continuing education has been increased quickly. In the computer
science field this further education is a necessity. The rapid development on this field
of science requires much teaching resources but also offers many new techniques for
teaching other subjects. The computer assisted learning and hypermedia are some of
these new techniques. Through traditional further education the travelling costs and
lecturers’ fees are significant amounts. CAL can decrease these costs because some
portion of this education can be done at home (requires Internet connection) or at
school but without present lecturer. Lecturers can be contacted by video negotiation
techniques or by mail.

Distant learning, hypermedia based learning environments and also other hypermedia
solutions have been studied extensively during the last years. In Finland, several
million Finnish marks have been spent on hypermedia research. Equipment have a
dominant meaning in many of these research topics.

In this study the aim was to develop hypermedia based learning material for digital
signal processing course. The aim was that this material does not require any special
equipment neither on the server side nor on the client side. This kind of learning
environment can be build over the Internet. Some topic specific software might be
needed on the client side. In this book the most important techniques and protocols
will be discussed. Several solutions will be proposed and the most suitable ones will
be presented in details.

Similar works have been done earlier. Jari Multisilta has done an environment for a
matrix calculus course at Tampere University of Technology Department of
Mathematics. This system has been a part of his doctoral thesis. The system can be
found from URL: http://matwww.ee.tut.fi/matriisi/toc73109.html. [Multisilta 96] O.
Nykänen and S. Pohjolainen are implementing a basic course for mathematics in
WWW using general purpose computer algebra system Maple. [Nykänen 98,
pp. 73-80]. This system can be found from URL:
http://matriisi.ee.tut.fi/~onykane/papers/demos/maple/.
2

It is not possible to implement a pedagogically good learning environment, before


studying some basic learning theories. Because of this fact some modern learning
theories are presented in chapter 2.

The Internet is the broadest medium by which hypermedia is delivered. WWW based
systems are used on the Internet. Computers on the Internet communicate with each
other using protocols and protocol applications. These issues are discussed in chapter
3.

Computers must be connected to each other before they can communicate. There are
different solutions to connecting these computers. Cable types and network
topologies are discussed in chapter 4.

WWW systems are based on client-server architecture. Most server and client types
used are presented and analyzed in chapter 5.

Networked hypermedia on the Internet should be done with a common programming


language. HTML is the most common language for implementation of static parts on
networked multimedia. In chapter 6 HTML and some future visions of HTML are
presented.

A learning environment needs some interactive parts and there should be a language
for this purpose. Some years ago Java language was introduced and its popularity has
been increasing quickly. In chapter 7 the history of Java language, its properties and
requirements for browsers are discussed.

In learning environment exercises and demonstrations should be generated and


visualized with some programs. Some systems have been analyzed and this software is
discussed in chapter 8.

The specific hypermedia for DSP sets some special requirements on both the server
and client side of the system. Copyright, copy protection and identification are
important issues in a learning environment. These issues are discussed in chapter 9.

In chapter 10 some solutions, which are available for implementing hypermedia


material and for operation with it are discussed.

The system chosen for the implementation and maintenance of the hypermedia
environment is presented in chapter 11.

In chapter 12, the building process of this hypermedia environment is described.

Conclusions and suggestions for further work are presented in chapter 13.
3

2 Computer Assisted Learning and Distance Learning


On chapters 2, 3 and 4 some technologies that are needed for implementation of DSP
hypermedia course are discussed.

The Internet provides a good platform for computer assisted distance learning. An
education material which is on the Internet can be accessed world-wide. Distance
learning is needed because now a days the development in the computer community is
so rapid that workers should participate in courses every month or read some books i
order to update their knowledge. It is difficult to find time which is suitable for
everyone who attend the course. The suitable place is also difficult to find quite often.
The distance learning is one solution for these problems. Traditionally distance
learning has meant that people read books at home and worked out home exercises
and ”take home exams”. WWW provides more interactivity to the learning processes.

2.1 Learning Theories


Erno Lehtinen has mentioned seven different learning theories in his book.
Constructive learning claims that learning is not a passive process but active storing
of knowledge and skills. Cumulative and structural learning mean that old
knowledge and the organization techniques of those knowledge are important for
further learning. Self guidance and strategic learning claim that an efficient learning
is a skill which will be developed after experience and exercises. Goal oriented
learning means that although it is possible to learn ”accidentally” learning is more
powerful if it has clear aim. Abstract learning is a term which means that there are
two modes for knowledge. The first mode is the knowledges which is produced by
scientific research and the second mode is the knowledge which is studied in practical
situations. According abstract learning theory knowledge which have been learnt in
the second mode can be applied directly only to situations where it has been learnt.
Co-operatively learning means that learning is a social process where students learn
best through creative discussions, team work and other social interactions.
Individually different learning theory based on works in which it was clarified that
earlier knowledges and comprehension habits have major affects on the learning
process. [Lehtinen 97, pp. 13 - 21]

For hypermedia programmer these theories tell that the material which suits best for
everyone is difficult to design (if not impossible). It will be difficult also to tell user
which parts of hypermedia he/she has already read. In WWW based hypermedia this
can be done with the colors for visited/unvisited links. This operates correctly only if
user has own computer, because these link colors are bound to the IP address. The
material should has connections to other courses (which are lectured before) and to
subject which are handled ”earlier” in the hypermedia material. According to the
theories which are mentioned above this will help the learning process.

2.2 Student modelling


One important work which should be done before implementing computer assisted
learning environment is student modelling. The educational degree of students is one
of the main factor which affects the degree of material which should be on the CAL
environment. Three other main subjects are what the users should learn on the course,
4
how this studying is intended to do and why this course is suitable for CAL
environment. [Stauffer/1]

It is easier for a programmer if all students have the same knowledge before starting a
hypermedia course. Otherwise programmers should divide the material so that users
with different backgrounds can find information which is suitable for them. On WWW
based hypermedia this can be done so that the basic material is targeted for ”normal”
users, some extra exercises or information for more advanced users will be offered
through links and some extra help for beginners will be offered through links.

The aim of the CAL material should be clear for programmer whole the time during
the development of a course. The material should be prepared so that navigation
through it is easy. All important subjects should be placed so that users can find those
subjects easily. The material can be split to topics so that students can understand
which things belong to the same topic.

If a CAL environment is intended to support the traditionally lectured course (either


before the course or during the course) the material can be shorter than for CAL
which is prepared for covering the entire course. If students can get some consulting
support from teachers by email or through some other medium the material can be as
short as in the case of traditionally lectured course.

Before implementing a course, the suitability for CAL system must be inspected.
Some topics like virtual environments are very suitable for CAL environments.
Almost every subject can be taught through CAL, but those which need computer
simulations or calculations fit even better the CAL system than traditional lectures.

2.3 Changes to Traditional Teaching


Computers have opened many opportunities to innovative learning. The development
of computer networks, especially the Internet, have enabled the computer assisted
learning much more effectively than before. Now the material can be situated on
several servers which can be geographically anywhere where the Internet is. This is a
possibility to teachers because now one teacher can prepare only a part of material to
the larger entity. Also students can get material to their projects from several sources.
”In traditional studying only a few reference books are used” [Lehtinen 97, pp. 34 -
35]. The problem of project work in traditional studying is the lack of references. In
the CAL systems the problem is how to limit the searches of references so that good
references can be found.

The greatest advantage of CAL systems is the independence from the place and the
time [Lehtinen 97, p. 46]. The problem for new techniques is that users do not know
how to utilize the advantages. The email systems have been used before the usage of
the Internet (email systems inside a school or inside a company. Email is used for
asking help from lecturers or exercise assistants. Email is a part of CAL systems. The
roles of teachers and students have been changed if the roles are compared to the
roles in traditional learning environments. The change has been described: ”From the
’Sage on the Stage’ to the ’Guide on the Side’ ”[Lehtinen 97, p.55]. In table 2-1some
properties of traditional learning process and CAL systems are compared.
5
Traditional learning Computer assisted learning
environment environment
The response of learning belongs to The response of learning belongs
teacher to students
Students are passive during the Students are active during the
learning process learning process
Teacher presents subjects and facts Teacher helps students during the
learning process and organizes
information
Students have only books and some Students have a huge amount up-
out-of-date information to-date information in the
computer and in the network
The learning process is restricted to The learning process is extended
the classroom also outside the classroom
Students are receiver of the Students are creative problem
information solvers and users of the
information
Table 2-1: Comparison between traditional and computer assisted learning
[Lehtinen 97, p. 56]

CAL system should be designed so that these changes will be noticed. Interactions
between teachers and students are important. Contact lessons are one possibility to
take care of these things and email will also act a great part in this communication.
Discussion groups or news groups can be used for communication between students
(in addition to email).

2.4 Future techniques


WWW based systems are now the most used solution for CAL. Network speeds will
raise and so video and audio signals can be transferred faster than before. Fixed
connections to the Internet have already appropriate speed for animations and for
video sequences. The home user has difficulties with these signals especially if they
have modem connection to the Internet. ISDN connection is suitable for compressed
video sequences (MPEG coded). The cable TV network bi-directional utilization is
under research. Aim is to build wideband (more than 2 Mbps) data transferring
network. Problem is that there is no so large free bandwidths where this ”backward
channel” can be situated. HDSL and ADSL modems will be also the solution for
broadband connections to home users. New techniques like VRML (Virtual Reality
Modelling Language) and Java offer many opportunities for CAL systems.
6

3. Internet and WWW


The Internet is a worldwide network where different kinds of information can be
transferred between computers. The Internet network is maintained by several
organizations. WWW (web) is a globally interconnected network containing
hypermedia information. It consists of: the Internet (network), the document pointing
system (URL), the protocol for transmission of hypermedia documents (HTTP) and a
set of servers that respond to requests from browsers (or clients) for those
hypermedia documents. The WWW is a hypertext-based, distributed information
system created by researchers at CERN (European Laboratory for Particle Physics) in
Switzerland and France (project started 1989).

3.1 Network Structure


In the Internet computers are connected to each other or to other network equipment
with cables. The computers are identified by addresses. A network consists of cables
and devices. A device can be a workstation, a client, a server, a printer, a router, a
bridge, a repeater etc. All these devices have own special tasks in the network. The
workstation, the client (PC/MAC) and the printer are such devices that everyone who
works with computer has used. Almost everyone has used servers (not necessary
know that he has used it) for example for reading emails. The repeater repeats bits
from its input to its output. Repeaters are needed to gain signals. The bridge is an
address based filter. It let repeats only those messages which has the destination
address on the other side of the bridge. Router is designed for selecting ”best”
transferring path from a source to the destination. In figure 3-1 these devices have
been situated in this example network.

Repeater
Bridge

Bridge

Repeater Laser printer


Bridge

Repeater Router

Laser printer Server


Server

Figure 3-1: An example of network realization


There are some address systems for different purposes. Computers’ network cards are
identified by Ethernet addresses. Computers are identified by IP addresses (or DNS
can identify them by names). Electronic mailboxes are identified by email addresses.
Resources in the Internet are identified by URL addresses.

Ethernet address has been installed to network card when the card has been manu-
factured. This address is a 48 bit number and so it does not limit the number of the
computers in the network (allows almost 300 000 000 millions addresses). Ethernet
addresses are used with Ethernet network (coaxial cable computer network). IP
7
address is a 32 bits number. It allows 4 000 million different addresses and this
address space is almost full, because the explosive growth of the Internet and
inefficient use of this available address base. It is difficult to operate with 32 bits
number. So this number has been divided to 4 parts (each 8 bits) and these parts can
be written as normal numbers in the decimal system i.e. 11000001 10100111
01011001 10000010 can be written as 193.167.89.130. This notation is called as
dotted-decimal notation. Even if this is much easier than the previous notation these
addresses are difficult to remember. So a letter based system has been developed. In
this host name system the same address is written as bud.pori.tut.fi. IP addresses have
been introduced, because Ethernet addresses work only in the Ethernet network. A
principle of the TCP/IP is that it can operate with different network solutions. There
are 3 different network IP address classes: A, B and C. It is possible to create about
120 A class network and each of them can have 17 million computers. In the B class
these numbers are 16 000 network and 60 000 computers in each of them. In the C
class these numbers are over 2 million network and 250 computers in each of them.
There are plans that IP’s next version, IP Next Generation (IPng), will have 128 bits
address field and so the address domain will be 2128. This IPng will be fully compatible
with old IP address base. [Gunnarsson 96, pp. 11-15]

The email address consists of user name part and server part. Address
kermi@pori.tut.fi means that the user kermi has a mailbox on the server pori.tut.fi.
User name part can be also petteri.kerminen. It is not allowed to put space between
words and so dot is used for separating first name and last name. User name can be
also collective i.e. with one username the whole department get mail for example
staff@pori.tut.fi is email alias for the whole staff of Pori University Unit.

URL address means Uniform Resource Locator and it is a specification of a link. It


specifies the protocol (http:// for a web page,) site name, path and file name to the
resource. Think of it as a networked extension of the standard filename concept: you
can not only point to a file in a directory, but the file and the directory can exist on
any machine on the network. The file can be served via any of several different
methods, and might not even be something as simple as a file. URLs can also point to
queries, documents stored deep within databases, the results of a finger or archie
command, or whatever programmers can do. The specific data is situated in certain
locations. Location is a synonym for an address of a WWW page. If the full URL (for
example: http://www.pori.tut.fi/henkk.html ) is used then server returns the specific
object directly. Other pages can be browsed by writing the addresses of these pages to
the browser’s URL field. [Stars/1]

3.2 Internet Architecture


This chapter is based on the references [Stallings 95, pp. 18, 445 - 449;
Gunnarsson 96, pp. 1 - 9]. A network consists of two or more computers which have
been connected together and which can transfer data between each other. It is
impossible to send data from one computer to another computer without some
protocols. Otherwise it is possible that there are two (or more) computers sending
data at the same time. There are some layers in the Internet, which have their special
tasks to do. Internet architecture is usually divided to four layer. From the bottom to
top these layers are data link layer, network layer, transport layer and application
layer.
8
Computer A Computer B

Application Layer Application Layer

Transport Layer Transport Layer

Network Layer Network Layer

Data Link Layer Data Link Layer

Figure 3-2: TCP/IP layer scheme

Each layer communicates with the peer layer in the another machine. The layers have
been specified because it is possible to build a flexible system. A layer communicates
only with the layer which is either directly above it or directly below it. Dashed lines
in the figure 3-2 present that peer layers communicates with each other. Solid lines
presents the path of the data stream between computers and layers.

Data link layer tries to make the physical connection reliable and provides (activate,
maintain and deactivate) the link. The principal service which has been realized on this
layer is error detection and control. So higher layers can assume that the bit stream
will be error-free. However, usually the computers are not connected directly to each
other, but there are several data links between two computers which communicate
with each other. For that reason it is impossible to relieve the upper layers from the
error control tasks.

The most important task for network layer is to transfer data between end systems in
communication network. Network layer relieves higher layers of knowing anything
about data transmission or about switching technologies. This layer takes care of all
these dialogues which are needed to specify the destination address or request certain
network facilities. Nodes which are changing information together can be either the
end systems (contain the processes and implements for example seven-layer OSI
architecture) or the nodes or switching systems of the network (manage
communication across the network). The transport service of the network layer is
unreliable, because it does not take care if a packet is lost during the transfer.

Transport layer ensures that data units will be delivered error-free in a sequence. The
network layer works correctly only if there is only a few packets and the size of the
packets is very small. It is possible that an email consist of hundreds of packets.
Transport layer maintains a channel and packets are transported through this channel.
If there are losses or duplications this layer will correct those errors (sending packet
again or put duplicated packet in the trash). This layer provides a reliable transport
service.

It is easier to understand what the application layer means. This layer consists of
application modules. A computer user communicates with these modules (programs)
9
directly. For example email program (Eudora, Pine, etc.) is a part of this layer like
WWW-browsers and all those programs that transfer data between two computers.

3.3 Client/Server Concept


Usually when two computers are communicating together one of those gives orders
what the other computer has to do. The command can be for example ”send the file
readme.txt”. The computer which executes the service/command is called server. The
computer which requests the service is called client. The concept is referred as client-
server model.

The computer that someone uses for sending or receiving emails, transfer files or
search information from WWW is in all of these situations the client. Servers are
usually very efficient computers which can serve many clients at the same time.
Security is important factor on the server computer. Servers are usually based on
UNIX-operating system or Windows-NT -operating system. There are different
programs for clients and for servers. When a client is using WWW-browser for
example Netscape Navigator (WWW client program), there is HTTPd (HTTP
daemon program/process) running on the server computer. Server programs are used
by system’s super user (not by normal users) who is responsible the maintenance of
these servers. [Gunnarsson 96, pp. 4-5]

3.4 TCP/IP Protocols


If two computers want to communicate together, there must be a language which
both computers can understand. The language is called a protocol. In the Internet
TCP/IP protocol suite is used. The name TCP/IP is a little bit misleading, because
there are many other protocols in addition to TCP- and IP-protocols in this protocol
suite. TCP- and IP-protocol are most important protocols in this suite. TCP/IP
protocols are divided to four layers (layers are different than in the Internet
architecture) network access layer, internet layer, host-host layer and process/
application layer [Stallings 94, pp. 454 - 457]. All of these layers have several
protocols. In this chapter important protocols are discussed. TCP/IP is a open
standard. This means that everyone can use these protocols without paying any
license fees. TCP/IP has not been bounded to any computer architecture. It is used in
PCs, in UNIX-systems, in IBM’s super computers and in many other computer
platforms.

3.4.1 Internet Protocol (IP)

All communication on the Internet based on this protocol i.e. all data which is sent in
the Internet goes through this protocol. This protocol works on the network layer and
provides data transmission services for transport layer. Transmission is based on
packets transmission. This protocol can not guarantee that every packet will be
delivered correctly (unreliable protocol). It is not unusual that a packet goes through
10 - 20 routers between source and destination nodes. [Stallings 94, pp. 513 - 515]

The size of data entity which can be transported over the network as one packet is
limited. This size can be different in each sub-network. The biggest entity that can be
sent as one packet in particular point of network is called maximum transmission unit
(MTU). MTU is usually 1500 bytes. If a packet is bigger than this MTU the packet
has to been fragmented. When the receiver computer receives these fragments IP
10
collects these fragments together, to the same order than they are in the sender
computer. One problem of fragmentation is, if one piece of fragmented packet has
been lost the whole packet has to been sent again. Second problem is that there can be
fragmentation in more than one point during the transmission. There are some systems
that can calculate the MTU of the transmission path. So the fragmentation can be
done in the sender computer. [Gunnarsson 96, pp. 45 - 48]

3.4.2 User Datagram Protocol (UDP)

This protocol is a higher protocol than IP, but it is still unreliable. UDP is the simplest
protocol on the transport layer. It can not make fragmentation and so IP has to do it.
The difference between IP and UDP is that when a packet in the IP will be sent to a
certain computer in the UDP a packet will be sent to a certain program in a certain
computer. The sender (and receiver) program can be indentified through port
numbers. There are some reserved port numbers: FTP server will be called always
through port number 21 and telnet server will be called always through port number
23. It is important that server processes use their specified port numbers, so clients
can take contact the right port number. Client processes can have any port number
(except reserved one). It is possible to implement checksum in UDP. Receiver rejects
datagrams which have incorrect checksums but receiver does not send any message to
the sender computer if a datagram is rejected so there is not very much advantage
from this checksum on this layer. [Gunnarsson 96, pp. 52 - 54]

3.4.3 Transmission Control Protocol (TCP)

TCP takes care of the most part of data transmission on the Internet. This protocol is
more advanched than the UDP. UDP handles datagrams and TCP handles byte
streams. TCP is connection based protocol. It does not send even one byte of data
before the connection between sender and receiver is reliable. TCP guarantees that
data is transported to the receiver correctly and in the correct order. If the message
(not packet because there is a bit stream) which has been sent over a network was too
large, then it is split to segments. TCP is a duplex protocol i.e. data transmission can
happen on both ways during the connection. TCP header contains many fields. Here
some important fields are mentioned. There are source port number, destination port
number, sequence number, window length fields etc. Sequence number tells where
this segment will be situated in the data stream. Window length is used because
usually it is not reasonable that sender waits for confirmation from the receiver before
it sends next segment. Window length tells how many segments a sender can send
even if it does not get confirmation from receiver. [Gunnarsson 96, pp. 54-56, 61-62]

3.4.4 Other Useful TCP/IP Protocols

There are also many protocols for network routing: ARP (Address Resolution
Protocol), RARP (Reverse Address Resolution Protocol), GGP (Gateway to Gateway
Protocol), EGP (Exterior Gateway Protocol), RIP (Routing Information Protocol)
and HELLO (HELLO protocol). ICMP (Internet Control Message Protocol) is used
for sending error and conflict situation information messages. BOOTP (BOOTstrap
Protocol) and DHCP (Dynamic Host Configuration Protocol) are used for
configuration. IGMP (Internet Group Management Protocol) is used for sending
group messages. MIME (Multipurpose Internet Mail Extensions) and NFS (Network
File Systems) are service orientated protocols. [Grundström 97, pp. 48-53, 380-385]
11
3.5 Email-, File Transfer - and Hypertext Transfer Protocols
This chapter is based on the references [Stallings 95, pp. 460-462; Gunnarsson 96, pp.
73-85, 105-111, 147-161, 185-193]. In some books these protocols are referred as
applications. Strictly these are only protocols and applications use these protocols.
These protocols have such features that it is easy to implement software over them.

3.5.1 Simple Mail Transfer Protocol (SMTP)

This protocol is used only for sending emails. POP3 is used for receiving email.
Applications use this protocol in the application layer. SMTP works with almost every
network connection (not only with TCP/IP connections) and so the transportation of
commands and data varies in different network implementations. The connection must
be reliable and so in the Internet TCP is the only alternative because UDP is not a
reliable protocol. There are 8 compulsory commands in every SMTP realization and 6
voluntary commands. These voluntary commands have not been implemented in all
SMTP realizations. SMTP has some restrictions for emails size. Receiver’s address
can not be larger than 64+64 characters (64 at both side of @ mark) and a single line
can not be longer than 1000 characters. SMTP was planned for mainframe computers
which have permanent Internet connection and computer is never switched off. Users
should connect to mainframe with terminals without local disks. SMTP does not work
properly with PCs, because many times the Internet connection is not permanent and
so emails should be saved in a server until the user load his mails to PC.

3.5.2 Post Office Protocol (POP3)

POP3 has been made for avoiding the problems which have appeared with PCs
operating in the Internet. SMTP is used still for sending emails. POP3 is used only for
the last jump from post office server (POP3 server) maildrop to user’s email program.
POP3 has been planned to be as simple as possible. All more complicated tasks should
be implemented at SMTP-level or in users’ email programs. POP3 has only a few
commands. POP3 session has three stages: authorization (username and password
checking), transaction (sending email) and update (email server updates email
database).

3.5.3 File Transfer Protocol (FTP)

File transfer has been popular action from the beginning of the Internet. First file
transfer mechanisms has been done at the 1971. As the name of this protocol tells,
FTP transfers files between client and server under the user’s command. FTP has been
used so long that it has supports for systems that are not longer used. Nowadays there
have been developed two other protocols for file transferring: SFTP (Simple File
Transfer Protocol) and TFTP (Trivial File Transfer Protocol). These two protocols
work like the FTP, but they are ”lighter” protocols. SFTP operates over one TCP
connection. It seems to be good, but only a few sites use it. TFTP operates over UDP
and so it is slower than SFTP and FTP. It is popular among diskless terminal users.

FTP uses almost same commands as SMTP and POP3. When client has been logged
in server it has permission to download files from server and upload files to server.
Major difference between FTP and SMTP/POP3 is that when these email protocols
use one TCP connection during the whole session FTP uses two connections. First
connection is control channel for user commands and response messages. It is open
12
during the whole session. Second connection, data channel, will be opened only when
it will be needed i.e. during file transferring.

FTP server uses port number 21 i.e. when clients are contacting a server they send
message to servers port number 21. At the beginning of file transfer server creates the
second TCP connection (this is a special case, because normally server does not
create connections) to specified port at the client computer. FTP can transfer files
either in ASCII format or in binary format.

FTP session has 4 stages. In the first stage the connection is established. In this stage
the following data are transferred between client and server:
− name of the desired server (for example ftp.funet.fi)
− user name (even anonymous FTP servers requires username (anonymous)
− password (even anonymous FTP servers requires password (either guest
or your email address for example kermi@pori.tut.fi).
In the second stage the transfer mode is selected. ASCII mode is the default. Binary
mode can be selected with command bin. The third stage is the file transfer itself. The
normal UNIX commands like pwd and cd can be used. Downloading is possible with
commands get and mget. Uploading is possible with commands put and mput. The
fourth stage in the session is closing. To close the session user can use command quit.
Server can also close the connection, if the client has been ”idle” for certain time. This
property is not included to every system, but it is used for popular servers.

3.5.4 Hypertext Transfer Protocol (HTTP)

Hypertext transfer protocol is the basic application-level protocol of the WWW. It


defines how the information will be transferred between WWW servers and WWW
clients. HTTP is a light protocol and suitable for collaborative hypermedia systems.
The difference between HTML and HTTP is that HTML is a language which
expresses information in hypertext format and HTTP transfers information (not only
HTML files). The HTTP server program is HTTPd which is an abbreviation from
Hypertext Transfer Protocol Daemon. [Stars/1]

HTTP

Hypertext Image
(html) (gif)
Server Client
Image Sound
(jpeg) (wav)

Figure 3-3: Different information transferred with HTTP


For example the page http://www.pori.tut.fi/~kermi/index.htm contains about 20 GIF
images, one JPEG image and HTML hypertext. All these can be loaded to the
browser by writing the address of the page in the browser’s URL-field. Figure 3-3
presents the situation where two images and one sound file have been embedded to
the HTML document. The embedded objects will be downloaded automatically.
13
HTTP connection is quite similar to SMTP connection. WWW client opens the TCP
connection to a certain port of the server (port 80 for HTTP). Then the client sends a
request to a server. In this request a client asks HTML page or image or sound from
the server and the server responds by sending these files. There are some differences
between HTTP and SMTP. SMTP transfers 7 bits data stream and HTTP transfers 8
bits data stream. This reduces the need of encoding data. In SMTP all data except
English text have to be encoded before sending and be decoded after receiving.
Another difference is that HTTP is a stateless protocol. This means that server does
not save any information of clients and does not require the user to log in the server.
Nowadays, several mechanisms for user identification are used. HTTP connection has
usually a short duration. For example if a client requests a hypertext document which
contains 3 images, the server creates 4 connections for transferring this object. The
server closes a connection after the file/image has been transferred completely. After
that next connection will be opened. Some browsers support multiconnection mode
i.e. several files can be transferred at the same time.

At the beginning the HTTP is a simple protocol but during these years many
properties have been added to this protocol. The aim was that HTTP has the
following properties: simplicity, extensibility, scalability and efficiency. Simplicity
means that system is easy to understand, implement and maintain. Extensibility means
that it is possible to add or replace some extensions and features to HTTP. Scalability
problem means that increasing number of Internet users have less bandwidth per user
than before. The limit is usually caused by server’s network card or by server’s
network connection. Efficiency problem has been come up because HTTP has not
been designed to these environments where it is now most used i.e. home users with
dial-up connections with modems. There are some solutions how pipelining and
persistent connections can solve some of the problems which have occurred with
these dial-up connections. These requirements have not been fully met in HTTP/1.1,
which is the newest version of this protocol (published in January 1997 with RFC
number 2068). All problems have not been solved because HTTP/1.1 is designed to
be backward compatible with HTTP/1.0 version. The aim is that HTTP-NG (HTTP-
Next Generation) will solve all drawbacks of HTTP. HTTP-NG will be based on
wholly new distributed, object oriented model. [W3/1]

Because servers are often overloaded HTTP allows caching. This means that there
are cache or proxy servers. Before loading files from original server client checks if
the requested file is already on the cache/proxy server. There is one problem which is
caused by this caching. How client can be sure, that data is up to date i.e. data is not
changed on the server. There is so called cache-control header in the HTTP’s header
field. In this header server and client exchange information of caching. Client can
denies caching wholly or allow it if there is certain amount of seconds remaining to
next updating (informed by server). There are also some other general or server
headers or messages, but those are not so important for normal user or programmer,
if he is not going to implement own HTTP server program. [W3/1]

There are seven messages which can be sent only from a client to a server: get, head,
put, post, trace, delete and options. The most popular of these is get. It is used when
client request sever to send a certain page to client. Head is almost the same as get,
but then only header of certain page will be sent to client and client can so check if the
page on the cache server is still valid. Client can save information on the server with
put message. Post sends also information to server but not to disk directly but to a
14
certain process of the server (to database, email program etc.). Trace is used for
finding network errors. Delete is used for removing objects from the server. With
options message it is possible to check which methods are supported on certain
servers. Servers response directly only for these clients’ requests. It is possible to
insert so called cookie inside a HTML document and so server can get some
information from the client computer.

3.6 Information on the WWW


WWW uses the same address system as the Internet (IP addresses) because WWW is
a part of the Internet. For many people the Internet means WWW, but the Internet is
much more than the WWW. The WWW resources (hypermedia documents) are called
pages. A page is located in a server and clients can request the page according to the
name (for example a page henkk.html from server www.pori.tut.fi as
http://www.pori.tut.fi/henkk.html). These pages can contain text, images, sounds and
movies.

There are hyperlinks between documents in the WWW. The hyperlink is a relationship
between two anchors, called the head and the tail. The link goes from the tail to the
head. The head and tail are also known as destination and source, respectively
[Stars/1]. A hyperlink is a segment of text (word or phrase), or an inline image (an
image displayed as part of the document) that refers to another document (text,
sound, image, movie) on the World Wide Web. Hyperlinks in a document are
indicated in some way, e.g. in a graphical interface, by color & underlining for text; or
by a colored border an image; an audio clip might be presented by a speaker icon; in a
text-based interface, by a number immediately afterwards. When a hyperlink is
selected (by mouse click in a GUI, or entering the given number at a prompt in text
interface), the referenced document is fetched from the Internet, and is displayed
appropriately (i.e. if its audio, and your workstation is appropriately configured,
sound is played through a speaker).

3.7 Data Formats Supported by WWW-browsers Directly


WWW clients, or as they are usually called browsers, support some file formats
explicitly. These file types are common text files, image and sound formats. Other file
types require plug-ins or helper programs. For the most used file types these plug-in
softwares are build in the browser and for the other file types users have to install
those plug-ins themselves.

3.7.1 HTM/HTML

The Hypertext Markup Language files have usually appendix .html or .htm in the end
of the filename (or now also .asp standing for Microsoft’s Active Server Page, .dhtml
standing for Dynamic HTML and .shtml standing for Secure HTML). Browsers
recognize files according to the appendix and to the MIME type. HTML is a markup
language used to create hypertext documents that are platform independent. HTML
documents are SGML documents with generic semantics that are appropriate for
presenting information from a wide range of domains. HTML markup can present
hypertext news, mail, documentation, and hypermedia, menus of options, database
query results, simple structured documents in-lined graphic, and hypertext views of
existing bodies of information. These files are connected together with hyperlinks.
15
The hyperlink can point to the document which is located in the same directory as the
document which has the hyperlink or in a different server. It is also possible to create
hyperlinks inside a single document. [Aronson 94, pp. 1-3]

3.7.2 JPEG

JPEG (Joint Photographic Experts Group) is a popular cross-platform format for


image files. The JPEG standard is a standard for most realistic images (photos for
example, but not line drawings or logos). It uses a powerful, though not lossless,
compression method (the resulting image may not be as rich as the original). JPEG is
best suited for true color original images. File names typically end with .jpeg or .jpg.
This image format is one of these two image formats which are supported in browsers
directly. Due to JPEG compression many larger size images in the WWW uses this
format. The compression rate is adjustable i.e. images can be stored with different
rates of compression. [Indiana/1]

3.7.3 GIF

GIF is a proprietary specification of Compuserve Information Services. GIF has been


introduced by Compuserve, and stands for Graphics Interchange Format. It was
intended to be a platform-independent format with which users could transfer files
over modem lines at low speeds. File names typically end with .gif. It is a compressed
format with 2 to 256 colors (1 - 8 -bits). Typically the compression is 3:1 to 5:1.
There are two standards: 87a and 89a (transparency). 89a allows 1 bit transparency.
Transparency allows one color to be specified as "see-through" (a pixel is either
transparent or opaque). It allows a palette of a maximum of 256 colors, so
presentation of 24 bit color images in GIF involves loss. It supports interlaced images:
every 8th rows in an image are displayed first starting from row 0, then every 8th row
starting from row 4, then every 4th starting from row 2 and finally every 2nd starting
from row 1 are displayed. Interlacing was invented to allow users to visualize images
during the downloading over slow modems. Most graphics programs can read
interlaced GIFs but might not be able to create or write them. Most browsers
recognize transparent GIFs. GIFs can be used as spacers and for various other effects.
At the end of December 1994 Unisys announced that they would be sueing for patent
fees for all developers of GIF software, because of GIF's use of proprietary LZW
compression (Lempel-Ziv & Welsh-compression). GIF has been used very extensively
and is available in all browsers which can handle graphics. [Indiana/1]

3.7.4 Other Data Formats Supported Directly by Browsers

In addition to these file types which have been mentioned before, browsers support
directly some file formats. Netscape Communicator supports directly (without helper
programs or plug-ins) pure text files (*.txt) and XBM (X-bitmap) image format.
Because of the nature of the multimedia also movie and sound files should be
supported in browsers. The disadvantage is that some file types are supported only in
some browsers. Netscape Communicator supports a wide variety of MIME types with
built-in plug-ins and helper programs. Audio file MIME-types which are supported
with built-ins are: audio/UNIX-aiff (.AIF, .AIFF and .AIFC), audio/UNIX-wave
(.WAV), and audio/basic (.AU and .SND). Video MIME-types which are supported
with built-ins are: video/UNIX-msvideo (.AVI) and video/quicktime (.QT and
.MOV). Virtual reality MIME-type which is supported wit built-ins is: UNIX-
16
world/UNIX-vrml (.WRL). These built-in plug-ins are: LiveVideo, LiveAudio,
Live3D and QuickTime. LiveAudio supports also midi file format (.MIDI and .MID)
but this format does not have own MIME format. Microsoft’s Internet Explorer does
not tell which file formats are supported directly and which ones through plug-ins.
[Netscape/1]

3.8 Data Formats Supported by WWW-browsers


with Plug-ins or Helper Programs
Plug-in is a helper application that runs within the browser. Helper applications are
those programs which are called upon by the browser to display those content types
that it can not handle internally. When the server informs the browser of the MIME
content type of the following object, the browser consults its internal tables to see if
the MIME type is known (for example ”video/mpeg”). In case of known MIME type
the object is displayed inside the browser window or the helper application is invoked
for correct handling of the object. Netscape plug-ins work in the same way, but are
much more tightly integrated into the browser software itself. Instead of invoking the
Microsoft audio-visual player to handle .avi movie files the browser could call a plug-
in internally to play the movie directly within the browser window. The plug-ins
themselves are software modules that can be directly controlled by Mozilla (a
synonym for Netscape browser), but will not run as stand-alone applications. [Stars/1]

176 plug-ins (January 1998) for Netscape Navigator can be found from the following
URL: http://home.netscape.com/comprod/products/navigator/version_2.0/plugins/index.html. In
addition it allows to specify which ever software as a helper application. A good place
for starting the search of a certain plug-in is also Altavista’s search engine at the
address: http://altavista.telia.com/ or http://www.altavista.digital.com

3.8.1 MPEG

The Moving Picture Experts Group (MPEG) is a working group under ISO/IEC in
charge of the development of international standards for compression, decompression,
processing and coded representation of moving pictures, audio and their combination.
So far (November 1997) MPEG has produced following two standards:
MPEG-1: A standard for storage and retrieval of moving pictures and
associated audio on storage media
MPEG-2: A standard for digital television
Two more standards are currently under development:
MPEG-4: A standard for multimedia applications
MPEG-7: A content representation standard for information search
MPEG usually holds three meetings per year. These comprise plenary meetings and
subgroup meetings on requirements, systems, video, audio, test, implementation etc.
MPEG meetings have been attended by some 300 experts from about 20 countries.
Compression ratio 200:1 can be achieved with full-motion video signals. Typical
compression ratio is 50:1. MPEG coding uses three different types of frames: intra
images (coded like JPEG images), predicted images (forward prediction used) and bi-
directional predicted/interpolated images. Motion estimation is used for prediction
and motion vectors are stored in those predicted and bi-directional predicted images.
These motion vectors tells the amount of motion which is between previous intra
17
image and current (predicted) image. Current image is calculated from previous intra
image and the motion vectors. [Furht 95 pp. 143-146, 164, Basith/1]

3.8.2 M-files

M-files are script files for MATLAB program. MATLAB is a mathematical software
made by the MathWorks Inc. MATLAB is a command line orientated software. If
there are larger amount of commands that should be executed one after another, it is
simpler to do that with a script file. The name m-file is used because the ending of the
script file must be .m. Otherwise MATLAB does not recognize that a file is a
MATLAB script file. Script file is a simple ASCII file which contains MATLAB
commands and user generated data. [Hanselman 95 pp. 5, 76-77]

Direct communication between a WWW browser and MATLAB is impossible. For


that reason MATLAB plug-in has been made in the Ruhr-University Bochum. This
plug-in does all communication between MATLAB and WWW-browser. All
computations are executed in MATLAB-engine. The engine routines are implemented
using the DDE message system for Windows. Inside the HTML code it is possible to
specify the MIME type of the plug-in and then the browser loads right plug-in
software. This software uses MATLAB and the Simulink (another software from the
MathWorks, accessory part to MATLAB) on local computers for calculations and
simulations. Due to the nature of MATLAB it is possible to make enormous damage
to the files on the local computer. MATLAB’s m- and mex-files allow disk operations
and so all data in a local computer can be deleted. Programmer’s and maintainer’s
duty are to keep such operations away from these files. [Müller/1]
18

4 Different Network Solutions


There are many different types of networks. The structure of network and the type of
cables depends from the platforms of used computers and the purpose of the use.
Geographical locations affects also for network selection.

4.1 Connection Types


A network can be classified according its architecture into two classes:
− switched networks
− broadcast networks
Switched networks can be classified according network’s switching technology into
two classes:
− circuit switched networks
− packet/frame/cell switched networks.
Third classification method is connection type. There are:
− connected networks
− connectionless networks
In a circuit switched network, a communication path is established between two
station (receiver/transmitter, client/server) through the nodes of the network. On each
link a logical channel is dedicated to the connection. The data is then transmitted
along this path as fast as possible without routing delay. A telephone network is
connected and circuit switched network. In a packet switched network each data
packet is routed individually through the network. There is a delay, caused by routing,
for each data packet. Roughly speaking all current computer networks are
connectionless, packet switched networks. [Grundström 97, pp. 12-15]

4.2 Transmission Medium


The successful data transmission depends on two factors: the quality of the signal and
the properties of the transmission medium. A transmission medium, cable, has some
important properties. These properties are: impedance, attenuation, crosstalk, transfer
speed and shielding. Impedance is a total resistance of a cable. The impedance must
be balanced, because otherwise some amount of the signal remains in the cable after
the end of cable and it will be reflected back. This causes transmission errors. The
measuring unit of impedance is ohm (Ω) Ω). Attenuation tells how much the signal will
be weaken in the cable. The measuring unit of attenuation is dB/m. Crosstalking is an
unwanted coupling between signal paths. This problem appears almost only in the
twisted pairs. The measuring unit of crosstalking is dB. Transfer speed is the value
which tells the amount of data which can be transferred in a second. Nowadays 10
Mbps (Mega bits per second) is the minimum value that is recommended for LAN
networks (and 100 Mbps is preferred). The need of shielding depends of the placing
of a cables. Mechanical shielding is easier to implement than electro magnetic
shielding. The electro magnetic shielding is more important for signals. This shielding
can be done with folio or copper braid. [Jaakonhuhta 96, pp. 322-323, Stallings 95,
pp. 58,63]
19
During the whole history of computer networks copper has been the most used cable
material. The development in the optical fiber field has raised the fibers for
noteworthy alternatives. However the optical fibers are more expensive and the
development which is done in the copper cable area has kept these copper based
cables on the leading position. There are two types of copper cables: twisted pairs and
coaxial cables. The twisted pair is a cable where are 2 or 4 twisted wire pairs with or
without folio shielding (unshielded TP or shielded TP). The twisted pairs are covered
with PVC sheath. The impedance of twisted pair is 100 or 150 Ω . In a coaxial cables
is a wire inside then polyethylene filler and outside the filler a braided outer conductor
and finally PVC-sheath. The impedance of the coaxial data cable is 50 Ω . The optical
fiber is typically 62,5/125 µm diameter one conductor cable. The core of these fibers
consists of one or more fibers (usually 1 for data fibers). This core is made from
plastic or glass. Outside the core is the cladding. This is also made from plastic or
glass, but cladding has different optical properties than the core. Finally there is the
jacket which is composed of plastic or some other protective material. [Stallings 95,
pp. 69-75]

4.3 Network Topologies


In this chapter some common network topologies are presented. It is difficult to
determine the topology of some networks because many times the same protocol
family works as well in the star network and in the tree network. The simplest
computer network is a connection between two computers. This network is called
point-to-point network (figure 4-1 a). In this type of network both computers can use
for example the printer which is connected to one of these computers. Point-to-
multiple point network (figure 4-1 b) is an extension of point-to-point network. In
this type of network a computer can have connections to several computers. The
point where all connections meet each other is called a root. The most used network
topology is tree network (figure 4-1 c). In this type of network all devices share the
same transmission medium. This kind of network is almost the bus network, but there
is possible to use hierarchical grouping. The ring network (figure 4-1 d) has the best
recovery mechanisms in case of errors because terminals/computers are connected to
the network from two directions. The most important device in the star network
(figure 4-1 e) is a hub. Difference between point-to-multiple point and star networks
is that in the star network hub can connect which ever two devices together so that all
data is distributed only to these two devices. In case of point-to-multiple point
network the data is distributed to all devices by root node. In a fully meshed network
(figure 4-1 f) all devices have direct connection to every other devices. In a partly
meshed network (figure 4-1 g) there is a limited number of direct connections from
each device. The rest of the network devices can be contacted via other devices.
20

a) root

b)

c)

d)

e)

f)

g)

Figure 4-1: a) Point-to-point network, b) Point-to-multiple point


network, c) Tree network (for example Ethernet), d) Ring
network (for example Token ring), e) Star network, f) Fully
meshed network, g) Partly meshed network

The protocols take care of data communication services and so programmers do not
have to know very much about network topologies. [Grundström 97, pp. 15-17]

4.4 Achieved Bit Rates in Different Networks and Connections


The bit rates in the networks have increased so rapidly, that even some good
computer communications books are out of date in these cases. The newest bit rates
can be found from the Internet from the address http://www.computer.org/internet/
by selecting ”search” and using keyword ATM. 10Base2 (IEEE 802.3) has been
introduced in the middle of 1980s. It is still one of the most used LAN network
specification. It is called thin-Ethernet. The bit rate is 10 Mbps and length of the cable
segment is 185 meters. After the specification several other 10 Mbps specifications
have been introduced (for thick-Ethernet, for fiber cables and for twisted pairs). [IC-
Online/1]

Faster connections have been under development all these years. In the beginning the
growth of the speed is quite slow. Only the more expensive network concept, FDDI
(Fiber Distributed Data interface I) was able to offer 100Mbps connections in the late
1980s. Now it is possible to achieve 155 Mbps bit rate with ATM (Asynchronous
Transfer Mode) with coaxial cables, with twisted pairs and with optical fibers. With
optical fiber 625 Mbps bit rate has been achieved. Gigabit class implementation for all
these cable types is under development. The fact that these bit rates are the maximum
values for the whole site or segment (not for one user) should be recognized. These
bit rates have been achieved with short distance connections (<=100m). [Jaakonhuhta
96, pp. 315-326, 356, Gigabit/1, IC-Online/1]

Many Internet users have telephone line based connections to their ISP’s (Internet
Service Provider) server. They have either a normal modem (modulator/demodulator)
or ISDN-card (Integrated Services Digital Network). Modem connections have bit
rates from 1200 bps to 56 kbps. The most used modems have bit rates from 28.8 kbps
to 56 kbps. ISDN connections have 2 B channels. The B channel has 64 kbps bit rate.
21
A connection can use either one or both two B channels to one Internet connection.
So total bit rate is 128 kbps. ISDN has also packing mechanism, which has almost
10:1 packing ratio for text files and the average of packing ratio for a collection of
different kinds of data is 4:1. This packing technique raises bit rate to a reasonable
level.

4.5 Required Network Bit Rates for Different Data Types


Several program based solutions have been developed for transferring real time data
on the Internet. These solutions require plug-in softwares for browsers. Real-time
data means that the data is not sent as a file but as a bit stream. Video and sound bit
streams are quite heavy load for the Internet although this kind of data is almost
always compressed before sending.

The real-time data is more critical for network speed and for troubles in connection
than static images and sound files. The real-time data clients can not accept bit errors,
because re-transmission is not possible. Some sophisticated plug-ins can correct the
lack of bits with windowing algorithms. The amount of devices (workstations,
servers, printers etc.) affects the load of the LAN network and so the actual speed per
user of the network can be significantly slower than the nominal network speed.
[Jaakonhuhta 96, pp. 291-293, 356-357]

The required bit rates for some most used data types are listed in the following
table 4-1.

APPLICATION / USE REQUIRED


BIT RATE
Terminal use 10 kbps – 1 Mbps
Data searches from servers 1 – 100 Mbps
Speech (non compressed) 32 kbps – 1,4 Mbps
Speech (compressed) 4 kbps – 150 kbps
PAL (625×468 pixels) Video (non compressed) 175,5 Mbps
PAL Video (MPEG compressed) 2 – 80 Mbps
HDTV video (MPEG compressed) 15 – 40 Mbps
HiFi sound 1 – 2Mbps
File transferring 1 – 10 Mbps
WWW browsing (text + images) 100 kbps - 2 Mbps
Video negotiation 64 kbps – 10 Mbps
Frame connection 100 – 500 Mbps
Table 4-1 Required bit rates for different data types [Jaakonhuhta 96, p. 357]

These bit rates guarantee a fluent usage of network. Of course it is possible to use a
network with slower bit rate, but then real-time data streaming is not possible. On the
next page is an example calculation of downloading MPEG coded video over different
network connections.
22
File size
Video size 313×234 pixels ⇒ 73242 pixels
Size of one image (24 bit RGB)
73242 pixels × 24 bit/pixel ⇒1757808 bit/image
1757808 / (1024×1024) ⇒1,676 MB/image
Video (25 frames/second)
= 25 images × 1,676 Mbits/image ⇒ 41,91 Mbps
MPEG compression ratio 50:1 ⇒ 0,838 Mbps [Furht 95, p. 164]
Storage capacity for 1 minute video ⇒ 50,29 Mb
50,29 Mb / (1024×1024) ⇒ 6,29 MB

Downloading
Through 33,6 kbps modem
connection (50,29 Mb/33,6 kbps) ⇒ 1533 seconds (25 min 33 sec.)
Through ISDN connection
(2 B channels = 128 kbps) ⇒ 402 seconds (6 min 42 sec.)
Through 1 Mbps LAN connection ⇒ 50,29 seconds
Through 10 Mbps LAN connection ⇒ 5,03 seconds

It can be seen from the previous example that for this video screen size (half PAL) for
a real-time connection 1 Mbps connection is sufficient. A software that can
decompress MPEG data from data stream is required.
23

5 Server and Client Types


Some potential tools for networked hypermedia implementation are presented on
chapters 5, 6, 7 and 8.
Some years ago there is three major types of information and data services on the
Internet: HTTP hypertext documents, FTP file archives and gopher ”pure text”
information. Because HTTP can present all actions that gopher can do there are only
a few gopher servers left on the Internet. Because of simplicity of the FTP, there are a
lot of FTP server and client softwares available. FTP is not used for implementation
of this DSP hypermedia material. FTP and gopher servers are not discussed here.

5.1 WWW-servers
A WWW server is a computer and software that maintain information and
applications accessed by distributed users. A program is running on the Internet site
and makes the web pages from the site available to browsers (clients) throughout the
Internet. Because of the rapidly increasing popularity of the WWW pages there are
much more alternatives for WWW servers than a few years ago. According to the list
there are 67 WWW servers (58, if only one server is counted from one developer) at
the beginning of 1998 on the market [Netcraft/1]. If server versions for different
computer platforms will be calculated as different servers the number will be at least
100. The four most used HTTPds are: Apache, Microsoft’s IIS, Netscape and NCSA
(see figure 5-1). [Stars/1,2]

Others
18,94%

NCSA
3,56% Apache
Netscape 45,72%
9,98%

Microsoft
21,80%

Figure 5-1: WWW servers' market share in February 1998


(Data from Netcraft/1)

5.1.1 Apache

The Apache Project is a collaborative software development effort aimed at creating a


robust, commercial-grade and freely-available sourcecode implementation of an
HTTP (WWW) server. The project is jointly managed by a group of volunteers
located around the world. These volunteers are known as the Apache Group. In
addition, hundreds of users have contributed ideas, code, and documentation to the
project. [Apache/1]

Apache exists to provide a robust reference implementation of the HTTP protocol. It


must remain a platform upon which individuals and institutions can build reliable
systems, both for experimental purposes and for mission-critical purposes. Apache is
used very widely – by large and small companies, research institutions, schools,
24
individuals, in the intranet environment, everywhere – even though this may mean that
companies who could afford commercial software, might use this free of charge
server software. Apache server is very powerful and easily maintained server
software. FAQs (frequently asked questions) cover almost every problem situations
because of the Apache server is so widely used. Apache WWW server does not have
any special system requirements. It works on the server where the operation system
(supported by Apache) works. There are now two versions of Apache WWW server
software. The older and more robust version is for UNIX systems (for example
Linux) and the Windows NT version is in the beta stage. [Apache/1]
5.1.2 Microsoft IIS
Microsoft Internet Information Server (IIS) has been designed to meet the needs for a
wide range of users, from workgroups and departments on a corporate intranet to
Internet Service Providers hosting WWW sites that receive millions of hits per day.
IIS 4.0 revolutionizes the WWW capabilities of the Microsoft Windows NT Server
version 4.0 operating system by providing easy way to share information, build
business applications and set up host and manage sites. IIS provides the highest
performance of any WWW server on Windows NT Server and gives better price-
performance to comparable UNIX-based systems. In addition, the application services
of Windows NT Server provide a reliable and scaleable platform for WWW based
applications. IIS brings the security of Windows NT Server to your WWW site,
without additional configuration. Windows NT Server with Internet Information
Server provides an integrated set of tools for running and managing all of your
network, WWW and application services. [Microsoft/1]

Developers can use languages they already know to develop components and
applications. IIS contains integrated Java Virtual Machine to provide a reliable and
high-performance environment for running Java components. Powerful management
tools in IIS 4.0 will help administrators to set up WWW sites, manage content, and
analyze usage patterns to improve a site. IIS has built-in wizards to step
administrators through many common administrative tasks, such as creating a new
WWW site or virtual directory. The network, applications and WWW-pages can be
managed from a single window. Administrator can set properties independently for
each WWW site, virtual directory, or file on the server. [Microsoft/1]

Recommended systems requirements for the WWW server’s computer are:


− Microsoft Windows NT Server 4.0 with Windows NT 4.0 Service
Pack 3
− Microsoft Internet Explorer 4.01 (for test browsing)
− Intel-based systems: 90 MHz Pentium processor, 32 - 64 MB RAM,
200 MB hard disk space recommended
− DEC Alpha-based systems: 200 MHz processor, 64 MB RAM, 200
MB hard disk space recommended
IIS trial version can be downloaded from
http://backoffice.microsoft.com/downtrial/optionpack.asp. A CD-ROM version can
be gotten from local Microsoft reseller. The light version, Microsoft Peer Web
Services is free of charge for everyone (February 1998). This free software comes
with the Windows NT 4.0 Workstation installing CD-ROM. [Microsoft/1]
25
5.1.3 Netscape
Netscape SuiteSpot is an integrated suite of server software that forms the foundation
of the Networked Enterprise. It consists of servers for web, messaging, and crossware
applications. Netscape SuiteSpot is a complete and easy-to-use solution for web
publishing, content management, and messaging and collaboration. It also provides a
robust platform for WWW based database applications. Enterprise Server is the
HTTP server part of this SuiteSpot server family. It is a high-performance, security-
enhanced web server for creating, managing, and intelligently distributing information
and running intranet and Internet applications. Enterprise Server also includes
Netscape Media Server - server software that delivers streaming audio and allows
users to make WWW pages into multimedia documents. Enterprise Server goes
beyond traditional WWW servers with advanced services for content management and
network based applications that dramatically improve a company's ability to
communicate and share information. Integrated link management lets Enterprise
Server automatically maintain and update links, helping users avoid broken links on
their WWW site as documents are moved, renamed, and updated. It is also easy to
find and correct the few documents that do have broken links. Enterprise Server
support HTML, Java, Java Scripts, Java Beans and database operations. [Netscape/2]

Enterprise Server is available for UNIX (Digital, HP, IBM, Silicon Graphics and Sun)
and Windows NT (Digital and Intel) servers. System requirements are at least 32 MB
RAM memory (64 MB recommended) and 200 MB free disk space. Enterprise Server
costs 1295 US dollars and there is no trial version available (at the beginning of
1998). [Netscape/2]
5.1.4 NCSA HTTPd
The fourth most used WWW server has been made by the National Center for
Supercomputing Applications (NCSA) at the University of Illinois at Urbana -
Champaign. NCSA HTTPd is the oldest WWW server program. The development of
this server software has not been very lively during the last years, because its market
share has decreased due to the increasing use of the three major server software.
NCSA HTTPd is a small and secure server. It supports the HTTP/1.0 as it is
implemented on the WWW. The static and dynamic indexing is supported by this
server. Several authentication mechanisms have been implemented on the NCSA
HTTPd. It allows also to use password lists. [NCSA/1]

NCSA HTTPd is free of charges for non-commercial use. At


http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.htm are the precompiled code
for 12 different UNIX platforms. For other UNIX platforms the user have to compile
the server from the sourcecode. [NCSA/1]

5.2 WWW-clients
There is no exact information available concerning market shares of the WWW clients
(browsers) but several statistics have been made from the widely used servers’
logfiles. Netscape Navigator and Microsoft’s Internet Explorer are the two leading
browser families. The third most used browser Lynx is not discussed here because it is
a text based browser. The first browser, Mosaic (published 1993), is not used very
much any more. HotJava is the only totally Java compatible browser but it is not very
much used.
26
5.2.1 Netscape Navigator
Netscape Navigator (sum of all different versions of this software) is the most used
WWW browser (60-70%). The newest version Netscape Navigator 4 of this browser
is included in the Netscape Communicator 4.0 packet. In addition to current HTML
standard 4.0 this browser supports absolute positioning, layering, JavaScript style
sheets, dynamic HTML and HTML fonts. Netscape Navigator 4.0 allows multiple
levels of authorization with signed applets and plug-ins. It supports Java 1.1 and
JavaScripts (1.2) on many platforms with performance enhancements. The JavaScript
support is much more stable than in the Microsoft Internet Explorer. The security of
the transmitted data is granted with SSL 3.0 (Secure Sockets Layer version 3.0).
Downloaded applications can be checked for authenticity. [Netscape/3,
MicroPC10/97 pp. 41,42]

Netscape Navigator includes customizable GUI (graphical user interface). The GUI
based on usability testing. This browser includes context-sensitive help. The most
used file formats are supported either directly by the browser or plug-ins (some plug-
ins comes in the software packet and some can be downloaded from the web). It is
possible to use multilevel bookmarks with Netscape Navigator. There are Netscape
Navigator versions for Windows, Windows95, Windows NT, OS/2, Macintosh and
X11 available. Like the most other browsing softwares Netscape Navigator
(Communicator packet) is free for trial period and totally free for non-commercial
purposes. Downloadable files can be found from the following URL:
http://www.netscape.com/download/index.html. [Netscape/3]
5.2.2. Microsoft Internet Explorer
Microsoft tells that they have designed the newest Internet Explorer version 4.0 so
that even PCs with 8 MB RAM can run it but tests have shown that this is not very
smooth. This browser supports Security Zones, ActiveX components, VBScripts,
Java 1.1, dynamic HTML and HTML version 4.0. Internet Explorer 4.0 contains also
the Virtual Machine for Java (supports JavaScript 1.1 version). The tests have shown
that Internet Explorer locks up very often when JavaScripts are executed. Search bar
is a good property in this browser. It allows to keep search results in view while
checking these web pages. Internet Explorer’s user interface is customizable like in
most of major browsers. [Microsoft/2, MicroPC10/97 pp. 41,42]

Microsoft also tries to push in the browser market of different computer platforms.
There are now (at the beginning of the 1998) browser versions for Windows 3.1,
Windows95, Windows NT 3.51, Windows NT 4.0 and Macintosh. According to their
press release the UNIX version will be ready during the first quarter of 1998. Free
software for non-commercial purposes can be downloaded from
http://www.microsoft.com/ie/ie40/download/. This browser software (version 2 or 3
depending the operating system) is also included in the installing CD-ROM of
Windows NT 4.0 and Windows95. The install programs of these operation systems
install the Microsoft Internet Explorer as default browser of the system. The United
States of America’s judicial system has made the court decision that Microsoft should
allow users to decide if they do not want to install this browser to their computers.
[Microsoft/2]
27

6 HTML
Hypertext Markup Language (HTML) is a markup language which will be used for
creating hypertext documents that are platform independent. HTML documents are
SGML (Standard Generalized Markup Language) documents with generic semantics
that are appropriate for representing information from a wide range of domains.
HTML markup can present hypertext news, mail, documentation, and hypermedia,
menus of options, database query results, simple structured documents in-lined
graphic, and hypertext views of existing bodies of information.

6.1 HTML History


HTML is a language which is designed to information delivery independently from the
hardware i.e. the document is readable on the 12” monochrome display as well as on
21” color display. The idea of HTML is that the structure of document is more
important than the absolute layout. This is the reason why there are no absolute
positioning commands in the pure HTML. The visual design of the HTML file
(referred as WWW page) can be made with HTML commands (referred as tags).
These tags are defined in the HTML standard proposal. Standard proposals (W3C’s
recommendations) are referred as HTML versions. Each new version includes a set
of new tags. Some of these tags have been used before definition in the standard
proposal. For example frames were not defined in the HTML version 3.2 but quite
many pages use these frames (frames are defined in the HTML version 4.0). The aim
is that every HTML version is backward compatible with older versions. [Staflin 96,
p. 27]

HTML version 2.0 has been published as a proposal standard in the spring 1994 and
the final standard has been published in September 1995. The first version of HTML
was 2.0 (not 1.0), because the authors wanted to make a difference between the
previous de facto standards and this official proposal standard. Version 2 supports
ISO-8859-1 character coding and almost every current tags. Document’s main
features are the same as in previous and in following versions. Forms are a new
feature in this HTML version. Forms allow make customized feedback queries etc.
[Staflin 96, pp. 27 -28]

The W3C published HTML 3.2 reference specification as their recommendation in


January 1997. There is a set of new things added to this new version of HTML. These
additions are for example: tables, applets, text flow around images. This reference
specification was developed with IBM, Microsoft, Netscape Communications
Corporation, Novell, SoftQuard, Spyglas and Sun Microsystems. This list covers
nearly all major WWW software houses and so the best compatibility is guaranteed.
The version 3.2 allows the usage of sub- and superscripts. [W3/2]

The HTML version 4.0 has been published in December 18th 1997 as a W3C’s
recommendation. In addition to features and file formats of previous versions, HTML
4.0 supports scripting languages, style sheets, better printing facilities. HTML 4.0 is
an SGML application according to International Standard ISO 8879 – Standard
Generalized Markup Language. More sophisticated text/text flow designs for example
font name and suggestion for hyphenation are now supported. [W3/3]
28
6.2 Most Important HTML Commands
According to HTML command appendix in the book [Köykkä 97 pp. 335-371] there
are 73 HTML tags. In this chapter the most important tags, which are used also for
the implementation of this hypermedia based DSP course, are presented in
alphabetical order. The comprehensive list of tags can be found from most of the
HTML books. Tags are used either ones like <BR> (break) or in pairs like <B> some
text</B> (bold). If a command is such that it requires two tags (a pair) the first is
beginning tag and the last one end tag. The material (text, image etc.) which is
between these two tags will be presented as the definition of the tags says.
A Address will be used for building hyperlinks. Book-
mark is defined with name parameter <A NAME=
”bookmark-name”>. Hyperlink is defined with href
parameter <A HREF=”http://www.tut.fi” >visible text
for user, for example TUT</A>
APPLET This tag is used for locating Java programs on the
WWW page. Parameters from browser to the Java
program can be transferred with param options.
BODY <BODY> tag begins the visible part of document and
</BODY> ends the visible part of the document. Font
and background colors can be defined with this tag as
well as background image.
EMBED With this tag it is possible to insert files to WWW
pages even if those files have not normal insert
commands/tags: sounds, video clips, multimedia data.
Browsers use plug-in softwares for these files. Several
parameters can be defined for embedded data
representation.
FONT Some browsers support this tag correctly and some do
not. This tag helps very much person who like to
present mathematical expressions on the WWW pages.
Font tag allows to use Symbol font etc. Also font color
and size can be defined with this tag.
H1 – H6 The size of the header can be defined with these tags
<H1>text</H1> defines the biggest header size and
<H6> the smallest one.
HEAD In the header part of the WWW document some
special command can be used. These commands are:
title, isindex, base, meta, link, style and script. Some
search engines collect the data to their database from
the HEAD part of the HTML document.
HTML In the beginning of the WWW page should be tag
<HTML> and at the end of the document should be
tag </HTML>.
IMG Images (GIF and JPEG) can be inserted on the WWW
page with <IMG SRC=”name_of_picture.type”
29
alt=”picture”> definition. Several placement options
can be used for picture.
SCRIPT Commands for script language can be given between
beginning and end tags. Browser executes these
commands if it supports this specific script language.
SUB Subscript will be viewed as subscript text. This tag is
suitable for mathematical notation, but unfortunately
Microsoft Internet Explorer does not support this tag.
SUP Superscript will be viewed as superscript text. This tag
is suitable for mathematical notation, but unfortunately
Microsoft Internet Explorer does not support this tag
either.
TABLE Table can be designed on the WWW page with
<TABLE>, <TD>, <TH> and <TR> tags.
TD Defines the cell of the table.
TH Table header cell defines the header cell of the table.
TR This tag defines the row of the table.

[Köykkä 97, pp. 335 - 371]


These tags are the most used tags in hypermedia implementation of the DSP course.

6.3 Lacks of HTML-standards


The idea of HTML is that there are not absolutely positioning and other properties
which can made the WWW page invisible on some browsers. Users want such
properties as frames. These are not visible with older browsers and especially not with
Lynx (textual browser). Because of the slowness of the standardization organizations
the official standards have been published so slowly, that browser manufacturers have
made their own implementations of some tags. Some official tags are not supported,
but many browsers contain some properties that are not yet defined in the standards.

Each manufacturer tries to implement such properties on their browser that it will
increase the popularity of their browser. Unfortunately this leads to the situation
where multiple pages should made for users with different browsers. The good
HTML programming rule is: use only those tags that are defined in the W3C’s
recommendation. If you keep this rule in your mind you can assume that your pages
work correctly with most browsers which are currently available. The best
compatibility can be achieved if programmer keeps to HTML 2.0 commands. Quite
often it is not possible to do the page such that the programmer intended it to be, if
only those old tags are used. Sometimes a page can not been programmed as it was
planned because there are no suitable HTML tags.

6.4 Future Visions


According the W3C the HTML’s developing work continues intensively. They try to
make recommendation standards so that there are information how to implement
these properties for browsers that support the latest HTML properties (like Cascading
Style Sheet language (CSS)) and how to implement properties to browsers that do
30
not support the latest properties of the HTML. W3C puts great efforts to increasing
the visual properties of HTML. The development is directed specially to following
topics:
− Style sheets: Style sheets describe how documents will be presented
on screens, on printer, or perhaps how they are pronounced.
− DSSSL: The Document Style Semantics and Specification Language
− Dynamic HTML: It is a term used to describe HTML pages with
dynamic content. Dynamic HTHL consists of style sheets, HTML and
JavaScripts. These are joint together with Document Object Model
(DOM).
− Images: They may be presented in many different formats. The data is
transferred in whatever seems to be the "best" format which the client
and server have in common. Format negotiation is the mechanism
which allows the WWW to accommodate different data formats.
− Internationalization: The World Wide Web still has a bias toward
English and the Western-European writing system. But modern
business and research communication has been increasingly
conducted in other writing systems and languages. The WWW must
be enhanced to meet the needs of the global community.
− Fonts: W3C tries to find a set of freely distributed, scalable fonts for
scientific and international text.
− A W3C’s Recommendation for Mathematical Markup Language
MathML will be ready during the year 1998. When browsers start to
support the mathematical syntax notations, mathematically orientated
publishing will be more pleasant in the Internet.
W3C tries to keep all HTML developers on the same direction. Now some different
paths can be seen. For example, Microsoft Corporation and Netscape
Communications Corporation produce browsers which use different HTML
commands for the same task.
31

7 Java
This chapter is based on the references [Kiuttu 97, pp. 13-24, 29-33, 117-137;
Ek 96, pp. 5-9]. Java is a programming language developed by Sun Microsystems. It
has been designed for program execution on the client side, i.e. in a browser. Java is a
simple, robust, object-oriented, platform-independent multi-threaded, general-purpose
programming environment. It suites best for creating applets and applications for the
Internet, intranets and any other complex, distributed networks.

7.1 Properties of The Java Language


Java is a portable language. The compiled Java code can be executed on most of
computer platforms (all which support Java). That is possible, because Java program
is so called byte-code program. Programs will be compiled from that byte code during
the executing. This increases the execution time, but the platform independence is
worth this delay. On the server side no software is required. Java files are handled as
any other files. On the client side the browser must support Java (browser must
contains Java virtual machine or some other Java interpreter) and has to contain or
download all required classes.

Java is also a simple language. Although it looks almost like C++, it is much easier to
use. There is no header files, pointers, pre-processor, structures, operator overloading
or multiple inheritance. Also explicit memory management is dropped away. The Java
compiler makes all necessary garbage collections i.e. the memory blocks that are not
needed any more will be deallocated. Java is a object orientated language. Data and
operation on the data will be stored in classes. Together the data and the operations
describe the state and the behavior of an object or instance of the class. Only accesses
to the data are the methods i.e. operations which are defined in the class. Classes are
arranged in the hierarchy. A class can inherit properties from its parent.

Network programming will be easier with Java than with C or C++ because Java has
extensive library of routines for TCP/IP protocols like HTTP and FTP. Java
applications can open and access objects across the Internet via URLs. It is as easy to
access to file over the Internet with URL address as access to the local file. Before
Java the interactivity on the WWW pages has been made with cgi-bin scripts. Cgis
increase the server’s load quite much because all operations have been made on the
server machines CPU. Now it is possible to do the calculation, which will be required,
on the client computer with Java programs.

Java is a robust programming language. Java tries to make checking for later dynamic
(runtime) and eliminates situations that are error prone. This is done with different
ways. One of these techniques is strongly typing i.e. every variable is typed. Java
requires declarations in the beginning of each object and does not support C-style
implicit declarations. Dynamic typing is not supported. This forces programmers to
decide the types of variables before compiling and so the probability of run-time
errors is minimized. The compiler makes a number of type checking during compiling.
Java has also a pointer model that eliminates the possibility of overwriting memory
and corrupting data. Instead of pointers Java has true arrays like Pascal language.
Because there is no absolute memory allocation operations and pointers users can
32
execute Java programs without worrying. It is not possible that Java program makes
unauthorized access to the memory.

Java is intended for use in distributed environments like the Internet. Because there
are a lot of users in networks the designers have paid great attention to the security
properties. Java enables the construction of virus free and tamper free systems. This
needs authentication. Authentication based on public-key encryption. Because there
are no pointers it is impossible for applications to forge access to data structures or
private data area where the access can be made only with methods. This closes the
door on most activities of viruses.

Java supports multithreading. Multithreading means that several things will be done
simultaneously. In fact these things will not be done at same time, but Java has a
mechanism which shares time slices to different tasks. Different time portions can be
given to the separate jobs (priority).

In case of updating some classes Java has superior properties comparing to other
programming languages. The only possibility to uses properties of certain class
instance is to use methods. When one class is updated internally programmers only
have to pay attention to implementation of this object’s interface. Because the C/C++
languages are not totally object orientated updating is more difficult. Programmers
have to check the correctness of operating for all libraries where the specific
(updated) command is used.

7.2 Java History


The development project of the Java programming language has been led by James
Gosling’s from Sun Microsystems. This project has started in the early 1990’s. The
original purpose was to produce a language that enables platform independent
programming. This kind of language was needed for consumer electronics and remote
control markets (for example programs in a toaster). The language proves also
suitable for programming set-top-boxes (a stripped-down browser which works with
normal TV). The project group realized that the same properties were needed for real
network programs. After that the project has been redirected for developing this
network suitable platform independent language. This latest redirection has been made
in 1994. The Internet has not affected the decision to start the development job of the
Java language. The first WWW browser (Mosaic) has been published in the first
quarter of 1993. The Java development has started years before that. Fortunately the
original specification (platform independent, secure, language for executing programs
from untrustworthy hosts) is also very suitable for the Internet programs.

First official version (1.0) of Java language was published in 1995. It is supported
quite well now (Unix (Solaris), Macintosh, PC (Windows95/NT)). More computer
platforms and operating systems will support Java soon. Java version 1.1 was
published in 1997. There is not yet good support for this version. Java is still under
development, because it has been proved for good programming languages and more
properties have been wanted to this language. Also security bugs were corrected as
soon as those were found.
33
Java is also used to its original purpose: in embedded programs for consumer
electronics. But mostly Java was used for making WWW pages more attractive and
for creating more interactivity to WWW pages.

7.3 Java Future Vision


The executing speed in version 1.1 is about 5 times greater than in version 1.0. The
speed has been raised because the most used classes have been rewritten. The most
important parts of Java virtual machine has been now written in machine code
(assembler). The benchmark tests have shown that in the embedded applications (not
applets) which were written in Java achieved even 80-85% speed comparing to
machine’s assembly language. The Sun Microsystems develops processors whose
machine assembly language will be Java. These processors will be extremely fast for
executing Java programs. These processors will be used in the cellular phones, in
other electronic equipment and in the network computers. Many electronics
manufacturer, including Nokia Oy, have announced that they will put Java programs
in their equipment.

Java developers will put big efforts to make the language even more stable and
secure. The Javasoft group in Sun Microsystems will also make the version of Java
for the most used environments that are not yet supported. On the other hand the
application development environment providers like Microsoft Corporation and
Borland International develop the programming interfaces. There are some
WYSIWYG editors, but they do not support all Java capabilities yet. The better editor
environments are coming to markets during this year (1998). The Java programs
speed can be improved with JAR. Jar is a packed archive file which contains all the
files that an applet needs. This property is now under developing.

7.4 Java Programming


Java language’s syntax is almost the same as in C/C++ language. Java program is
build from and only from classes and methods inside these classes. The programming
will be done by using Java’s API. This interface is available for Solaris,
Windows95/NT and Macintosh from the following address:
http://www.javasoft.com/products/index.html.

Java programs are fully based on the objects. Java is often compared to the C++
language. The difference between C++ language and Java is that C++ is a subset of C
language and so the C++ special properties like objects can be defined only inside the
C++ program. Because this fact also normal variables and C commands can be used in
C++ programs. Java is a pure object orientated language and so all commands
(methods) must be inside some object. Java programming is also quite similar to the
normal Windows programming. Event handling is the way for handling mouse clicks
and other user interactions. Many events have been named similarly as in the
Windows programming environments. The individual properties of the syntax or
specific commands are not discussed here. There are several different solutions for
making Java programs. The most used is JDK (Java Development Kit). It can be
download from the Javasoft (address mentioned above).
34
7.5 Applets and Scripts
There are three kind of Java programs: Java applications, Java applets and
JavaScripts. The Java applications are not used over the Internet but locally.
Applications can be distributed over the Internet or some other media, but they will be
executed as stand-alone programs independently from networks. In this chapter only
applets and scripts are discussed.

Applet is a high-level program that can be included in an WWW page, much like an
image. This can be done with <APPLET> tag. The program code is then executed by
the browser. Many older browsers cannot interpret Java applets and disregard them. It
is reasonable to design the applets such that they are flexible i.e. the applet can be
situated in which ever locations and still it can be executed. The properties of the
applet can be changed and the operation of the applet directed with parameters.
Applets help the WWW publisher to put more visual components to the WWW page.
Java is also the most reasonable way to increase the interactivity to the WWW page.
The security of applets were guaranteed with following tasks: applet can not write
data on the clients hard disk without permission, it can not write directly to the
memory and it can not introduce viruses to a computer system. Applet can not
directly launch a program on the client, but it is possible to launch a plug-in/helper
software that is listed on the browsers helper application list.

JavaScript is a proprietary scripting language released by Netscape, JavaScript


increases the esthetics and friendliness of websites by adding author specified user
events to static pages. JavaScript is easier to use than Java applets because it is a mix
of Java and HTML. For example a programmer can make graphical components with
HTML commands and connect the action to it with JavaScript. Some security
problems have been mentioned in case of the JavaScript for examples JavaScript can
send your email-address to the server without your permission. This bug like other
bugs has been fixed.

7.6. Browsers that Support Java


The most used browsers support Java 1.0. The version 1.1 is not yet supported widely
and this causes problem, because the new applets are written with Java 1.1. Sun
Microsystems’ browser HotJava is the only browser that supports Java 1.1 correctly.
The next best alternative is Netscape navigator 4.0. In this browser Java Scripts and
Java 1.0 can be executed correctly. Microsoft Internet Explorer 4.0 does not operate
error-free with Java 1.0 and JavaScripts, but it supports (according to Microsoft) Java
1.0. Other Java 1.0 compatible browsers are Spyglass’s Mosaic and Oracle’s
PowerBrowser.

7.7 Calling Plug-ins with Java


Some plug-ins are platform independent and those plug-in programs and those prog-
rams can be easily used from WWW pages and from applets. The personnel of Ruhr-
University Bochum’s Control Engineering Laboratory have made a plug-in which
allows communication between Java applet and MATLAB. The problem of this plug-
in is that it is platform depended. It requires MATLAB for Windows and its DDE
(Dynamic Data Exchange) Toolbox. It is impossible (so far) to tell to the browser the
35
name of plug-in which is used. The type of plug-in can be told to the browser as
follows:
<EMBED SRC="test.m" WIDTH=400 HEIGHT=350 NAME="name">
<EMBED SRC="test.m" HIDDEN=true NAME="name">
<EMBED TYPE="applicatin/x-matlab" HIDDEN=true NAME="name">
This data must be on the WWW page which contains the applet. After that and some
initializations the communication between MATLAB’s DDE and Java applets is
possible. The sound files and other files that are not program specific (unlike the
MATLAB’s m-files) are easier to use with applets.
36

8 Softwares Available for Exercise


Generating / Visualization
Educational hypermedia contains demos and exercises. Demos can be static i.e. at
each time these demos remain the same. Exercises are more pleasant and more useful
if they are generated with some mechanism. Visualization of dynamically generated
data is a big problem for WWW based hypermedia because mathematical notation
(Greek alphabets, some special marks and equations with fraction line) are not
supported yet in the HTML standard. In this chapter some solutions are presented.

8.1 Java
Java applets can take care of exercise generation and visualization. The number of
different solutions is limited because programmer must code the right answers to the
applet. According to the version (selected pseudo randomly) the applet shows the
correct answer. If the answer contains mathematical expressions there are two
possibilities to show it:
− Answer can be viewed with some additional applet (like HotEqn) on
the browser
− Answer can be viewed as a GIF image inside the applet (GIF should
be made beforehand for all exercises
Applets can be also used for launching external programs which do not support co-
working with WWW browsers. The problem with these incompatible softwares is that
applets will be platform dependent.

8.2 MATLAB
MATLAB is a commercial product from The MathWorks Inc. There are now two
widely used versions of MATLAB. Version 4.2x is used since the end of 1992. The
latest version 5.2 was released at 1998. There are over 400 000 MATLAB users in
over 100 countries. Matlab consists of kernel, where the most used functions have
been realized internally, and script files called m-files. Script files have been divided to
toolboxes. User can buy only those toolboxes what he needs. Script files are simple
ASCII files which contain MATLAB commands and the user generated data. The m-
file can be executed from command line if the file is in directory, which belong to
MATLAB’s path. M-file can also be executed by copying commands to clipboard and
then pasting these commands to command line and pressing ENTER after that. User
can customize m-files or create new ones. If there are larger amount of commands
that should be executed one after another, it is simpler to do that with a script file. M-
file is a simple ASCII file which contains MATLAB commands and user generated
data. M-file can accept different amounts of input arguments. For lower amount of
input argument m-file uses some defaults for those variables that are not fed from
command line. [Hanselman 95 pp. 5, 76-77]

The MATLAB version which will be compatible with WWW browsers


(communication enabled with them) will be published during the year 1998. Now
there is no possibility to make communication between MATLAB and WWW
browser so that this communication is platform independent. In Microsoft Windows
95 and NT 3.51 the communication can be made with Java applet which uses
37
Microsoft Windows DDE. However, different applets are needed for MATLAB 4.x
and for MATLAB 5.x versions. The platform independence can be achieved if the
data is in ASCII format (m-files) and users execute these files locally. Calculation can
be also made on MATLAB which is situated on the UNIX server. However, this
consumes a lot of CPU time and memory resources at the server side. In this case the
server’s capacity is already limited and no extra load is recommended to put on the
server.

MATLAB contains many useful functions for DSP (for example FFT and filter design
algorithms). MATLAB 5.x contains much more sophisticated properties for
programming, scripting and simulations than version 4.x. Version 5.x is backward
compatible. Consequently it is recommend to make m-files so that these will use only
those commands which are common to both these MATLAB’s versions. These
demonstrations and exercises can be executed faster with local MATLAB than
through applet communication with MATLAB.

8.3 Maple V
Maple V is a product from the Waterloo Maple Inc. It is a powerful mathematical
problem-solving and visualization system used world-wide in education, research, and
industry. Its principal strength is its symbolic problem solving algorithms. Maple does
not yet provide possibility to communicate with WWW browser, but the Maple can
convert its data to hypertext form i.e. the Maple images and expressions can be
browsed through WWW browser. Over 300 Universities have a license which grants
their personnel and students the use of Maple. There are over half million Maple users
world wide. MathWorks has bought some technology from Waterloo Maple Inc. to
their MATLAB program. Maple will not be a solution for this hypermedia. It does not
contain these functions which will be needed for filter design. Maple will be good
product for hypermedia which handles mathematical subjects (trigonometric etc.).

8.4 Mathcad
Mathcad is a mathematical product from the MathSoft Inc. Mathcad and Microsoft
Internet Explorer have been integrated to Mathbrowser. It allows WWW browsing
and the use of Mathcad. Mathcad 7.0 handles both real and complex numbers. It
contains many built-in functions for data manipulation. FFT, Laplace transform and z-
transform are realized in Mathcad. It can handle vectors and matrices. Symbolic
calculations are also supported. Version 7.0 uses seamlessly Microsoft Internet
Explorer and this browser is included in Mathcad 7.0. Mathcad’s WWW pages tells
that Mathcad and Mathbrowser are ”a computing environment and as a vehicle for
publishing mathematics on the Web” [MathSoft/1]. Although this is true, it is not
useful for this solution. These mathematics publications must be static presentations
i.e. dynamically generated mathematical material is impossible to use. Mathcad uses
natural mathematical language for expressions. Mathbrowser is distributed freely since
1995, but the Mathcad is a licensed software. The publications can be seen through
Mathbrowser, but Mathcad is needed for calculations.

8.5 HotEqn
HotEqn is a Java applet which can be used as equation viewer on the WWW page.
Applet has been made at the Ruhr-University Bochum and it is freeware. This applet
38
uses LaTeX syntax and visualizes the corresponding equation on a screen. HotEqn
can communicate with MATLAB engine (4.2 Windows 95/NT 3.51). The problem
with this applet (and other applets also) is that an applet is non-printable. If equations
are visualized with this applet, user can see them on the screen but not on the paper if
he likes to print a WWW page. This applet allows dynamic data generation, but the
data must be in LaTeX format. LaTeX syntax is also quite strange for most PC users.
This applet is not recommended to for users with no LaTeX experience. [Müller/1]
39

9 Requirements for Servers and Clients


This specific DSP hypermedia course implementation sets some requirements both on
server and client side. These things and some legal matters are discussed on this
chapter. Security things become more important if exams will be done through
network.

This hypermedia itself does not set many requirements for servers and clients. Most
requirements are purposed by data types or by plug-ins. Digital products, including
hypermedia products, can be easily copied. For this reason several copy protection
mechanisms have been used. Authentication (i.e. ensuring that a user is who they
claim to be) is also difficult in networked hypermedia.

9.1 Operating systems


Servers operating system should be reliable, secure and fast. Users assume that the
server is available around the clock and so it is desirable that a server does not lock up
often. If a server can be operated remotely operating it is an advantage, but this is not
required. Security means that hackers can not access the server and change its
contents. Servers speed depends (in addition to servers network connection) from
CPU speed and operating system’s ability to allocate time slices to clients.
Recommended servers’ operating systems are Microsoft Windows NT 4.0
Workstation/Server, Linux and Sun Microsystems Solaris (and other UNIX operating
systems).

Hypermedia is more critical to the choice of client’s operating system than to the
choice of server’s operating system. There are no safety nor speed requirements for
client’s operating system. Although, it is a plus if the client’s operating system is fast.
The most critical requirement from the client side is that the operating system must be
32 bit. This requirement arises from Java. Browsers which support JavaScripts and
Java applets operate only with 32 bit operating systems. Java uses long filenames and
so it can not be used with MS-DOS because there the size of a filename is restricted
to 8+3 characters. Users’ should have be able to add plug-ins and helper softwares to
his/her computer (i.e. writing to the hard disk must not be restricted by the operating
system). Suitable operating systems for clients are, in addition to those which have
been mentioned for good server softwares, Microsoft Windows 95 and Macintosh
operating systems.

9.2 Browser
The most critical requirement from WWW browsers is that browsers should be Java
compatible (JavaScripts and Java applets). Other requirements are that the browser
should be able to handle sound files (wav:s and au:s) and animations (MPEG). These
requirements mean that the browser should support plug-ins and helper applications.
The last requirement is that the browser should support subscripts, superscripts and
several fonts (for example Symbol and Times New Roman) because some equations
are presented inside the page sourcecode. The pages are visible also in those browsers
which does not support sub/superscripts or several fonts, but the appearance is not so
clear.
40

The only one fully Java 1.1 compatible WWW browser software is at this moment
(February 1998) HotJava. It is mainly used by Java developers who need a test
platform for their codes. HotJava supports sub/superscripts but does not support font
types like Symbol. This browser is a little slower than others because it has been
written with Java language and the byte code will be interpreted during executing.
Netscape Navigator 3.x and 4.x are suitable for this hypermedia. Both of these
browsers support Java (4.x better). There are also plug-ins for Netscape Navigator for
all major file types. Fonts are supported correctly in version 4.x and also
sub/superscripts are supported. Netscape is the most used browser software and also
the test WWW browser for this hypermedia. Microsoft Internet Explorer 3.x and 4.x
support Java (not always correctly). Super/subscripts are not supported. Also font
faces like Symbol are not supported. All important plug-ins can also be obtained for
Microsoft Internet Explorer.

9.3 Servers’ and Clients’ Hardware


There are some hardware parts which are important for both servers and clients. A
fast network connection (network card) is important. On the server side the 10 Mbps
card and connection is satisfactory but 100 Mbps or more is recommended. Servers’
trunk network connections are usually the bottlenecks of WWW based hypermedia
systems. On the client side 10 Mbps network connection is sufficient, although there
are many other users sharing the same network capacity but usually the heaviest data
(video streams) will not be downloaded at the same time by many computers/
browsers. For telephone network connections, ISDN is recommended but also fast
modems (33,6 kbps or 56 kbps) can be used. Memory is also important for both
servers and clients. On the server machine suitable amount of RAM memory is 64 MB
for Microsoft Windows NT 4.0x based servers and 128 - 200 MB for UNIX based
servers. On the client side 32 MB is suitable for Microsoft Windows 95 users, 64 MB
for Microsoft Windows NT 4.0x users and 100 -200MB for UNIX users. CPU is also
important part of hardware for both of these sides. On the server side 150 MHz Intel
based processor architecture can serve from 10 to 30 ”simultaneous” requests without
noticeable delay. On the UNIX server the recommended processor speed is 200 MHz
for Sun SPARC based computers.

On the server side hard disks are more critical than on the client side. Servers’ hard
disks must be quick, reliable and must have a large capacity. If server’s disk is
damaged, the server can not serve any requests which are pointed to that disk. Hard
disk speed is usually so high that it will not be a bottleneck of the system. However,
SCSI disks are recommended instead of IDE or E-IDE disks for PC environments
(Only SCSI disks are used in UNIX environments). Disk capacity must be so high that
all data can be installed on the hard disk and still there is free disk space. A suitable
capacity is from 1 GB to 4 GB depending on the data types. For video animated
intensive hypermedia, the large size one is recommended. This hypermedia does not
require disk space very much (less than 10 MB). On the client side, hard disk is used
only for caching hypermedia data and for client programs’ installations.

Soundcard and display are two hardware components which have no important
meaning at the server side, but are very important on the client side. Some hypermedia
use wonderful 3D sounds and so require powerful soundcard. Audio data in this
hypermedia is mostly 8 bit speech with 8 kHz sampling rate. This data can be handled
41
by all sound cards. Also, this hypermedia does not contain a large number of sound
data. Display sizes from 15” to 17” are recommended for this hypermedia. Color
display is required. Display driver should be good enough that it can present at least
256 colors with 1024x768 pixels. The hypermedia is visible also with smaller displays,
but some pages may have to be scrolled both horizontally and vertically. Also a
smaller amount of colors can be used at the expense of visual quality.

9.4 Network
The hypermedia itself does not require anything from the network. Editor program
Microsoft FrontPage 97 requires that the network software must support 32 bit
systems. The number of users will affect the required network connections. A 10
Mbps Ethernet connection is sufficient for hypermedia use in one classroom (from 15
to 30 users). If there is other traffic in the network cluster, 10 Mbps is not good
enough. 100 Mbps or faster ATM connections are recommended for hypermedia if
usage will be estimated over 30 users simultaneously. The network structure is not
restricted (star, bus, tree and ring allowed). The only strict requirement is that HTTP
protocol will be supported.

9.5 Network Security


The Internet is quite unsecured transmission medium. It is possible to ”listen” to
network traffic with special analyzer. The traffic can be saved on the hard disk and
analyzed off-line. User passwords etc. can be solved from the traffic data. The traffic
is so fast that there is not actually reason to fear that someone can use your
information. There are two serious security risk in the Internet: hacking and viruses.
Hacking means that someone tries to get access to other data without permission.
Hackers either try to benefit from these data or try to destroy it. The best protection
against hackers are passwords (changed regularly) and secure protocols. Viruses are
programs which do something unwanted to a computer. They either destroy the data
on the hard disk or just use certain amount of CPU time. The Internet is a good
substratum for viruses because a lot of files are downloaded from the Internet to the
computers hard disk. Through this traffic some viruses can slip into the computer.
There are some virus protection tools that can be obtained from the Internet as
shareware or freeware programs.

Some special mechanisms like passwords which will be changed after every session
has been taken on use. Many WWW server programs (for example Apache and
Microsoft IIS) allow to restrict users access to certain files or directors with
passwords [Apache/1, Microsoft/1]. HTML gives also possibility to use SSL (Secure
Socket Layer). Those mechanisms take care only from authentication.

There are also encrypting/decrypting softwares which code the plain text (for example
emails) with a certain coding key. The message can be opened only if the receiver’s
program knows that key. PGP (Pretty Good Privacy) is one of the best techniques for
crypting messages. Philip Zimmermann, the developer of PGP, was under
investigation for alleged violation of export regulations, with a grand jury hearing
evidence for about 28 months, ending 11 January 1996 because PGP is so good that
FBI’s machines could not opened a crypted message in one day. The limit for too
good algorithm has been that the code should be broken during 24 hours with FBI’s
42
computers. The crypting mechanism had been weaken and so Zimmermann has not
been judged. For this hypermedia unwanted reading of data is not a problem (for
commercial hypermedia it is). The user authentication is more important in many
cases. [PGP/1]

9.6 Exercises and Exams


There are no security specifications for exercises. Only the data have to be sent in
both direction so that no one can destroy it. There is no need to do anything for this
purpose. The protocols use check sums and other mechanisms for ensuring that the
data is transferred correctly. So there is no reason why hypermedia programmer can
not assume that the Internet will distribute the information correctly.

If hypermedia programmer will put exams on the WWW pages there are some
difficulties. Pages can be quite easily protected with passwords, but there are no
guarantee for several other circumtances. The exam can be made by a friend of the
student. A student can give his/her password and username to someone who will do
the test. Some solutions are possible. Computers can be equipped with cameras and
pictures are taken several times during the test. This is quite difficult to implement and
also it will cost quite much. Another solution is that system sends email messages to
course supervisors and they go to check who is doing the test. This restricts the time
when the exams can be made. The easiest way is to trust that students are honest.

9.7 Copyrights
This chapter is based on the reference [Korpela/1]. The most known copyright
agreement is Berne convention. It is now over one hundred years old (made originally
1886). Copyright is a mechanism which guarantees the author’s rights to his
publications, records, films etc. The copyright is an international system. So the
material will be protected independently of its original country. The copyright text or
sign © is widely used and required in some countries (for example in United States of
America). In Finland and in other EU (European Union) countries the ©-mark is not
required, but it is reasonable to use it any way. The rights to the publication comes to
the author without any applications. The publication must only be a original
publication/record etc. Copying of other publications is forbidden, but quotations are
accepted. The quotation can be quite long in technical books and there is not absolute
length which can be quoted. Physical and mathematical expressions and some general
ideas and facts can not protected be with copyright. Also the idea of figures which
describes these facts are not protected. Illegal use of any publication can be punished.

The WWW is quite difficult for copyright issues and there are no trials ready for
international WWW copyright crimes. According to the international agreements and
national laws, copyright crimes can be judged in any country where the owner of a
certain copyright feels that his rights have been violated. In case of the Internet the
trial can be kept almost anywhere. However, there are not agreement with Finland
and United States of America which will guarantee that a judgement is probated in the
other country. Within EU countries this kind of agreement is effective.

The copyright belongs always to a person, not for a company or for a school. The
employer usually gets the permission to use and sell publications which are done by
their employees. In the USA this is a fact because there the ”work for hire” principle
43
is used. In the EU countries the agreement have to do with written, spoken or
speechless agreement. According to the copyright law, the hypermedia product which
is done in this project belongs to Petteri Kerminen. However, it can be used for
educational purposes without any fees. No changes are allowed to be done to this
hypermedia product mentioned before.

This hypermedia material is based on Finnish version of Petri Jarske’s lecture notes
for DSP course in Tampere University of Technology. He has given the permission to
use his material in the Internet and translate his material in English. He allows also
that changes be made to his material. This permission has been given in Petri Jarske’s
email to Petteri Kerminen at January 12th 1998. Some ideas and expressions are also
borrowed from DSP books and from other WWW pages. This material belong to the
group of ”general idea and mathematical facts”, which is not protected with copyright
laws. All material (text, images etc. excluding some example movies, images, applets
and tables) on this hypermedia has been made by Petteri Kerminen.

9.8 Copy Protection


It impossible to protect WWW pages against illegal copying for the following reasons.
Browsers have always ”show source” command. In that source window the source
can be painted with mouse and then copied and pasted to the editor and saved to own
computer’s hard disk. Many browsers allow saving the source code directly from the
browser window. The whole hypermedia is fortunately much more difficult to copy.
Every pages’ sourcecode have to been saved separately. Also all images, sounds and
other embedded components should be saved separately. Java files can be saved to
such a directory, which has no accessibility through WWW browser. The directory
must define with Java’s CLASSPATH attribute and so it can also be browsed with a
browser. WWW publishers should notice in any case that his/her material can be
”stolen” easily. If information and programs are valuable publisher should restrict the
accessibility of the directory where the information resides. This can be done with
passwords.

Hackers are a serious risk. They can push in to the server without permission if there
are some holes on the servers security. In case of hypermedia they can destroy the
material on the server or change the content of this material. Server’s security can be
improved with a firewall. It allows the network connections only through predefined
ports. Usually ports 21 and 80 (FTP and HTTP) are enabled. Although the security of
WWW server is usually good the backup of the hypermedia material should be kept
up-to-date. The backup material should be in a safe place.

9.9 Time Consumption on Server and Network Load


Servers have either 10 Mbps, 100 Mbps or 155 Mbps (or even faster) connection to
the Internet. On many server this connection is 10 Mbps. However, this speed can not
be achieved. If the network load is over 50 % of the nominal load in the Ethernet
network the amount of retransmissions rises very much. If the load is over 60 % the
network will be locked up. Because of these facts the actual network speed is 5 - 6
Mbps. Hard disks that are currently used have transfer rates from 60 Mbps to 800
Mbps. So servers hard disk speed is not the restrictive factor but the network speed.
If a WWW page is 2 kB (= 16 kb) and there are two images, each 6 kBs (= 48 kb) the
actual amount of data which will be transferred is 112 kb. If there is not other traffic
44
on the network this page can be read during one second, 44 times. i.e. 44 connections
can be served with no more than 1 second delay.

The requests which will be sent from the client to the server will be served according
to a scheduling algorithm. On the server’s specification the time slices are defined, so
that the predefined number of users can be served honestly. Usually, the server
configuration file contains the parameter which tells the maximum amount of
simultaneous connections. There are two alternatives to serve clients if there are less
clients requesting than this maximum number. Clients can get time slices which are
time divided to total number of requests or time divided to maximum number of
requests. The requests make also traffic towards the server and takes processor time
because these requests have to been handled at the servers processor. The amount of
possible connections is usually restricted from 10 to 1000 simultaneous connections.
So all clients can get rather good bit rate for transferring (5 Mbps/1000 = 5 kbps).
The network load on trunk connections causes many times the bottleneck so that
actual bit rate will be only 1 kbps or even less (less than 0.1 kbps in some tests).

Hypermedia requires many times some additional programs for visualization or


calculation. Formerly all that calculation has been done on the server. This can take
the biggest part of the server’s CPU time. There are two possibility if the server is
used for these calculations:
− There is only one process running on the server and it takes care of
the calculations for every clients
− There is an own process for every client
The first one is more server friendly but there are some problems with the guiding of
the results (some ID numbers for clients have to been taken use). The second
alternative is easier to program, but takes quite a lot of CPU time and use more
servers memory. For Internet hypermedia the Java will be a good solution. The
calculations can be made on the clients memory. There are no problems for guiding
results to the right client and no servers CPU time will be wasted.
45

10 Different Solutions
There are some choices that should be made before implementing a hypermedia based
course. There are some different server solutions also available. These solutions are
presented on this chapter.

10.1 Hypermedia Type


Hypermedia is a combination of hypertext and multimedia that allows users to move
in a nonlinear fashion through text, images, sounds and other information. The
increasing popularity of the Internet has caused the phenomenon that people think
that there are no other noteworthy hypermedia platforms than WWW pages.

The degree of interactivity can vary in hypermedia solutions. Some presentations has
only a few links from page to other pages. Usually these presentations have table of
contents and user can use that for going through the whole material. This type of
presentations are usually used for hypermedia based courses. The most interactive
hypermedia presentations give very many alternatives for user. Choices can be made
by pointing images or by choosing textual links or by command line selections. This
type of hypermedia software is usually games or interactive movies.

Hypermedia can be distributed by movable medium like CD-ROMs and diskettes or


by network. Nowadays, there comes a CD-ROM with many books, especially in the
field of computer science. The CD-ROM contains some examples and codes in
hypermedia form. CD-ROM has been chosen because it has much more capacity than
diskettes and it is also faster. Of course the Internet has more space than CD-ROM,
but it requires Internet access if someone will check these examples. If a book will be
sold much, there can be quite a heavy load on the publisher’s server. Because these
facts the CD-ROM has been chosen quite often for the media of these hypermedia
which comes with books.

Large hypermedia systems can be distributed between some servers. There are two
alternatives to do this distribution. The hyperlinks can point absolutely to certain
server and then a certain part of the hypermedia always browsed from this server.
Another way to distribute a hypermedia is to set up a main server and put all data on
every servers disks. Then the main server shares the queries to the servers according
to a free service capacity of servers.

10.2 Server Solutions


If hypermedia is distributed on the movable medium no servers are required because
browsers can work as ”stand alone” with local hard disk. There are three platform
alternatives for WWW based hypermedia: UNIX based servers and PC based servers.
Due to the security issues UNIX is the most used. Almost all PC based servers have
been made for Windows NT computers for the same reason. For educational (and
other non-profitable) purposes there are several server softwares available free of
charge. So the programmers and maintainers can choose the platform which they will
use. After this choice the software can be selected. The server’s platform does not
affect the platform independence of the hypermedia because the HTML is a platform
independent language for hypermedia purposes.
46

It is good for the programmer that he can maintain the server himself without support
personnel’s help. So it is reasonable to put the hypermedia (WWW) the programmer’s
computer for developing time. After that the CPU load and disk read time caused by
the hypermedia use should be estimated. The final server solution can be made after
these estimations. Traditionally the servers have been UNIX based, but the capacity of
the NT based servers has approached UNIX servers’ level. The UNIX servers are
more reliable in long duration use, because these servers have been made so that
servers can be (or should be) switched on all the time.

10.3 Editors
The editing work of a hypermedia material is called authoring. Although there are
several solutions for hypermedia publishing the HTML based WWW pages have some
superior properties comparing to other alternatives. HTML is platform independent
and based on the limited number of commands. HTML does not support fine lay-outs
like some other hypermedia tools.

10.3.1 HTML Editors

The HTML provides a good platform for hypermedia. The WWW browsers do not
require Internet connection but can be used also for browsing material from a local
disk. Hypermedia material can be transferred to the disk of local computer for
example in a ZIP archive. After opening the packet the material is ready for use.
HTML supports this well, because the links can be made as relative links instead of
absolute links. In case of Internet use the capacity of the server and the network
bandwidth can be restrictive factors. The original limitations for HTML, GIF, JPEG,
AU and WAV file formats have been expanded with plug-ins and other software
solutions. Now there is not actual any noteworthy file format that can not be used on
the WWW page. The WWW browser with plug-ins for some general mathematical
software files is suitable for many signal processing purposes.

The HTML files are bare ASCII code files containing commands how the data should
be viewed in the browser. The file format allows to use an editor which can produce
pure ASCII files. The ASCII text editors can be found free of charge from the
Internet. Almost always there comes an ASCII editor with an operation system (like
Notepad with Microsoft Windows and Text Edit with Solaris). In addition to these
text editors a number of different HTML editors can be found from the Internet. For
example about 40 HTML editors can be found from http://www.tucows.com/ and
over 200 HTML editors can be found from http://www.shareware.com/. Some of
these editors are freewares, some of these are sharewares (you can use it a certain
time and if you like it you have to pay registration fee) and some of these are demo
versions of commercial products. The goodness of these editors is a subjective
measure. The best versions are WYSIWYG editors. Most of these free editors are
such that there are speedbuttons for the most used commands and other commands
can be found from the menus. The tags are presented on the screen as they are in the
HTML file. The commercial editors are more stable and reliable than these free
editors. Usually there are more editing properties in these commercial editors.

Netscape Communicator includes a WYSIWYG editor, called Page Composer. It is


free of charge for non-commercial purposes (like the Netscape Navigator). It is
47
capable and has many good properties. For some specific layout matters (especially
with image layouts) the ASCII editor should be used in addition to this Page
Composer. It has not any WWW maintenance tools. Microsoft FrontPage is a
program where a WYSIWYG editor and WWW maintenance tool has been
integrated. Java components can be simply added on the WWW page with this editor.
The maintenance tool updates links in case of changing file names or file locations.
The integrity of the links can also be checked. If a programmer has time to try many
different editors the freeware or shareware can be a good choice. Otherwise a
commercial product is better alternative, because the information from the commercial
editor is easier to achieve. The purchase decision can be made according to data
sheets of products. It is possible to produce hypermedia for different purposes with a
HTML editor. Real hypermedia softwares are often restricted to a certain area of
hypermedia (presentations, studying, etc.).

Microsoft has developed a set of assistant programs. These programs allow to save a
normal text file with inline images or presentation file in the HTML format. The
assistant program converts images in a GIF format and adds links to these images.
The lack of this type programs is that user can not affect the names of the images or
specify links between pages.

10.3.2 Other Hypermedia Editors and Softwares

Mathematical softwares are useful for DSP hypermedia. Mathcad and HTML are
integrated in the Mathbrowser. It is freely distributed by Mathsoft’s WWW page:
http://www.mathsoft.com/browser/. The Mathcad files can be embedded to the
WWW page with MIME type definition. MathBrowser browser’s current version uses
Microsoft’s Internet Explorer for WWW browsing. Mathsoft staff told that this
program is a way to publish your works in the Internet. The hypermedia is actually
HTML at this alternatives too. There is only an easier way to embed Mathcad objects
inside the WWW page than with a normal browser and editor. This is a good
alternative for those who know the syntax of Mathcad. It is also suitable for symbolic
calculations.

There are some multimedia developing software like Toolbook and HyperCard.
Toolbook is done for Microsoft Windows environment and HyperCard for Macintosh
computers. Both of these (like many other) softwares based on script language for
generating hypermedia presentation. Toolbook has also graphical user interface. The
problem with these programs is that a special language has to been studied before the
programming work. This is not very attractive for those who will implement one
hypermedia presentation. The restrictive factor for these softwares is also the platform
dependence. The softwares which are not based on the HTML are usually platform
dependent. So several programs should be used or at least several versions of the final
product should be made for satisfying the needs of the markets.

10.4 WWW-layout
Computers have screens with different sizes. Hypermedia should be realized so that its
visual appearance is good enough on most displays.
48
10.4.1 Equations as GIFs vs. as HotEqn images

Equations are problem for mathematical hypermedia. Ruhr-University Bochum’s


Virtual Control Laboratory staff has developed a Java based HotEqn equation viewer
program/applet [Müller/1]. This equation uses LaTeX notation in code and then the
equation will be viewed as it will be printed in LaTeX document. A disadvantage of
this applet is that the equations will not be printed with other information if a WWW
page is printed and applet based images can not been seen in older browsers which do
not support Java. If equations are presented as images (GIF or JPEG) they are
printable. GIFs can not be used if a user feed the data, because all possible equations
can not be stored on the disk.

10.4.2 Frames vs. No Frames

Table of contents and some other information can be displayed on the screen all the
time, because almost all current browsers support frames. However these frames
decrease the effective screen area that can be used for current topic. Many times these
frames make peoples confused. If a frame WWW page will be bookmarked the
bookmark points to the ”main WWW page”. This definition main is set for the table
of contents page not for a topic page. The printing function of some browsers does
not work with frame pages. The browsing event can be made almost as easy as it will
be with two frames (one with table of content and one with current topic) if every
page has link to the table of content page.

10.5 Image Format Conversion


Some special utility programs are needed for creating mathematical equations. It is
not possible to create equations with a HTML editor if the equation consists of
numerator and denominator (with MathML it will be possible). Single row equations
can be made with HTML editor. In other cases equations should be made with a
special equation editor like Microsoft Equation editor or Adobe FrameMaker. The
equations should be converted to the HTML compatible format (GIF or JPEG). GIF
is preferred for equations). This can be done with an image editing program. There
are several image processing programs which can do this conversion between
clipboard image and GIF.

Some material can be ready, but it is only in paper version. This material can be
converted to a digital form with a scanner. Scanners can seldom produce HTML
compatible images. Also these images should be converted to GIFs or JPEGs.
Programmers can consult his computers maintainer which programs are available in
his organization. The Paintshop Pro is a shareware program which is suitable for these
tasks on PC/Windows environments. It can be found for example from the following
URL: http://www.shareware.com.

10.6 Naming Technique of Different Objects


There are two alternative way to give names to files on the hypermedia:
− Numbered file names
− Logical file names
If the hypermedia is done with numbered filenames i.e. the ”first” topic will be
page0001.htm and second page0002.htm etc. the hypermedia’s structure can be easier
49
used for other hypermedia courses. For maintainer this naming technique is difficult
because it is not easy to remember the contents of each page according to its number.
Maintainers prefer page names convolution.htm etc. more than names like
page0001.htm. For end users there is no meaning which is the name of a page where a
topic is discussed because users browse hypermedia with hyperlinks.

UNIX and Windows NT filesystems allow to use long file names i.e. longer than in
DOS’s FAT (Disk Operating System File Allocation Table) 8+3 character. This
makes possible to use very descriptive names for each topic. However, the
disadvantage of these long names is that programmers should write these names when
they are making hyperlinks. Very long file names like:
Ztransform_region_of_convergence.htm are not recommend because the filename can
not been easily shown on browser’s URL field. If pages are distributed on diskettes
they are usually compressed with ZIP program. DOS version (the most used in PC
world) recognizes long names, but shrinks them to 8+3 format. The long filename
which is presented above will be after uncompressing Ztrans~1.htm. This is not
desirable because then hyperlinks do not work any more. Programmers should also
notice that HTML is a case sensitive language if the server support this operation i.e.
Convolution.htm and convol.htm are separate files. Programmers can not trust in this
property is set on. Some server softwares do not make any difference between upper
case letters and lower case letters.

10.7 Automatic Link Generator


The automatic table of contents WWW page can be generated with Microsoft
FrontPage editor. This page unluckily contains all pages in a specific directory (also
possible subchapters). It is also impossible to affect the order of these topics The
order can change manually, but user can not change the automatic process i.e. every
time after the generation of table of contents maintainer should modify this page. In
this hypermedia this is not a desired feature.

There are also some programming accessories programs which can keep database of
defined ”hotwords”. After editing a hypermedia entity the linking tool will be used.
The linking engine uses external database. These softwares are usually focused to
traditional hypermedia not for WWW based hypermedia but there are also some tools
for WWW environment. For a brief hypermedia these links can be made by hands,
because studies for a new tool takes time and linking by hands can be made faster.

10.8 Java Editors and Compilers


There are several Java programming environments. The most used is Java
Development Kit. It can be download from the Javasoft (Javasoft’s URL mentioned
earlier). JDK does not contain graphical programming interface, but it contains:
− Java compiler, for byte code from source code
− Appletviewer, for viewing applets on WWW pages without browser
− Java interpreter, for running Java applications
The main reason for the popularity of JDK is that it is free of charge for non-
commercial purposes. JDK is also fully compatible with current Java specifications
because it is made by Sun Microsystems which also is the main developer of the Java
50
language. The code can be written with normal ASCII text editor (figure 10-1). The
code must be saved on the disk memory and the name of the file must end with .java.
After this the file can be compiled (figure 10-2) with command javac filename.java. If
the code is not correct the errors are listed on the screen. In case of correct program
code the output (byte code) is saved on the disk memory with same file name but
ending with .class. The byte code can be executed with Appletviewer (figure 10-3) or
with Java supporting WWW browser (figure 10-4). There are some graphical
programming interfaces available from the well-known programming interface
providers:
− Microsoft: Visual J++
− Borland: Latte, J-Builder
− Powersoft: Optima ++
− Symantec: Café
− Sun: Java Workshop
− RoqueWave: Jfactory
− FutureTense: Texture
− Step Ahead Software: Javelin
Each of them has some good properties, but it is not easy to say which of them is the
best. It depends on the user’s former programming experience and from the former
tools. The prices of these application development environments start from 1000
Finnish marks. The problem with these editors is editor specific classes, which are not
identified by standard browsers. For example Java Workshop uses sunsite.* classes
that can be executed only in HotJava browser. Similarly J-Builder uses borland.*
classes and there is no browser which supports these classes.

Figure 10-1: Windows Notepad used for editing Java source code
51

Figure 10-2: compiling Java source code to Java byte code with javac

Figure 10-3: Applet executed through the Appletviewer

Figure 10-4: Applet executed through a Java compatible


WWW browser (Netscape Navigator 4.0)
52

11 Chosen System
In this chapter the chosen system is presented. This is not probably the best solution
for every platform’s but for this purpose it is very suitable.

11.1 Type of Hypermedia


It is quite easy to choose WWW/HTML for the type of hypermedia based DSP
course. WWW based hypermedia allows some freedom to end users. They can select
the computer’s platform and the browser’s vendor. Unfortunately, all browsers do not
support all tags which are used in this hypermedia. If a special hypermedia
programming environment for example Toolbook (for Microsoft Windows platform)
is used for coding the hypermedia it is possible to use the product only in the
computer platform supported by the programming environment. Some special tools
like support for mathematical syntax lacks from HTML, but these lacks can be
avoided with some tricks. The aim has been that the hypermedia can be viewed
correctly through all browsers. For this reason the HTML 3.2 is preferred (published
in January 1997) comparing to HTML 4.0 (published in December 1997 (draft)).

HTML does not restrict the distribution medium. During the development the pages
have been kept on the local hard disk. When the material has been tested completely
the hypermedia will be moved to WWW server. It is also possible to create a CD-
ROM for those users who do not have access to the Internet. The WWW based
solution has been chosen also because it gives more security than CD-ROM or
diskette versions. The material on the WWW server can be updated and corrected
easier than the material on several movable medium (one for each user). Because the
material from WWW server can be copied, access to this server has to be restricted.
The usage of the material can be checked from server’s log-files.

11.2 Editor and Other Programs


Several editors have been tested. The decision that the chosen editor must be
WYSIWYG editor has been done immediately, because the pure ASCII code is not a
pleasant programming environment. Next criterion was that editor should have
integrated or separate maintaining tool. After some tests the Microsoft FrontPage 97
has been chosen for the HTML editor for this hypermedia production (A new version
FrontPage 98 has been released during this project, but the original editor has been
used during the whole project even if the new version of this editor has many new
powerful features). This editor operates only in 32 bit Microsoft Windows
environment (Windows 95 or Windows NT 3.51 or 4.0). Microsoft FrontPage will be
discussed more in detail further.

Some special commands (for example figure positioning) have to been done with pure
ASCII editor (Microsoft Windows Notepad) because the FrontPage does not support
these properties. UNIX based editors are not recommend for editing at all if editing
will be mainly done in PC environment. That is because UNIX based editors do not
use CR (Carriage Return) character at the end of the text rows. These editors used
only LF (Line Feed) character. In the PC environment both characters should be used.
HTML syntax is good because it is possible to change the editing software. This is
possible because the code files are pure ASCII code. Some editor specific properties
53
may disappear, but mainly the files can be edited with all editors. Even if some editor
does not support some properties these can be added with another editor to the
HTML file. The test WWW browser has been Netscape Navigator 4.0.

There is no superior Java editor at this moment. Fortunately, Java files can be edited
with several editors. In this work Java Development Kit (JDK) and Java Workshop
are used. Java Workshop uses some special classes (sunsite.*) and these classes work
only with HotJava browser.

11.3 Graphical User Interface


If it was easy to select the editor type the GUI type is more difficult to select. The
main problem is if there will be frames or not. On some hypermedia there are two
frames. The table of contents is in the smaller frame and the actual topic will be shown
on the bigger frame. In the case of DSP the topics in the table of contents will be so
long that this will take too wide space on the screen. There are also so many topics
that the navigating frame should be scrolled up and down if user will see all topics.
Frame based hypermedia is also more difficult to maintain because links should be
updated both in the material (hyperlinks in the text) and in the table of contents frame.

The navigating problem has been solved with navigating icons and separate table of
contents page. In this hypermedia, there are eight different types of pages:
− Course home page contains information of the hypermedia based DSP
course and next/current DSP course which will be lectured
traditionally. There are also links to table of contents page, ”How to
navigate page”, to lecturer’s homepage and to exercise assistant’s
homepage.
− How to navigate page contains information what those navigation
icons mean.
− Table of contents page contains links to the main topics, to ”Terms and
acronyms” page, to ”How to navigate” page and to the courses home
page.
− Text pages contain the main ideas of DSP and links to
demos/exercises, to previous/following topics, to home page and to
table of contents page.
− Subchapter table of contents page is such a page which contains only
links to subchapters, to previous/following topics, to home page and to
table of contents page (and some of these pages also names of
reference books).
− Subchapters are parts of bigger entity and each of these pages contains
only one main idea and link back to the subchapter table of contents
page.
− Demo/exercise page contain a demo of some DSP topics or one or
more exercises and link back to the topic.
− Terms and acronyms page has definitions for some important DSP
terms.
54

Figure 11-1: Table of contents page

Figure 11-2: Subchapter table of contents page


55

Figure 11-3: A normal text page

Figure 11-4: An example of demo/exercise pages


56
The figures which are presented on two previous page are samples from the DSP
hypermedia material. The ”lecture note’s” table of contents page is in figure 11-1. A
subchapter table of contents page is presented in figure 11-2. A normal course topic
page is presented in the figure 11-3. In the figure 11-4 a demo page is presented.

11.4 Server(s)
The hypermedia developing computer environment was Microsoft Windows NT 4.0
Workstation (on Intel based PC). The installing CD-ROM of this operating system
contains Microsoft Peer Web Services 3.0 HTTP server software. Because the chosen
HTML editor is also a Microsoft product all of these softwares operates correctly
together. Because this server type which has been used during the development phase
is not widely used (less than 1 % market share) and this server is intended only for
light usage the material is tested with another server. Apache server is the most used
HTTP server software with over 45 % market share. This is the reason why Apache
has been chosen to ”secondary” server type. The advantage from testing the material
on two different servers is that no server specific tricks can be used.

11.5 Data Formats


Plug-in softwares have become more popular. Those softwares allow to use nearly
whatever file type. In this hypermedia material the aim has been to produce the
material so that a minimum number of these plug-ins will be needed. HTML code will
be as pure HTML 3.2 as possible. No dynamic HTML code will be used. Most
equations will be presented as GIF images. Some single line equations which do not
contain special mathematical symbols (like integral sign) will be presented inside
sourcecode. Later (after the MathML publishing) equations can be part of WWW
pages sourcecode. HTML codes are produced with Microsoft FrontPage software
packet. HTML filenames end with .htm, because so it is possible to edit those files in
older PCs where operating system restricts filenames to 8+3 characters. Special
attention should be focus on tables. It is easier to scan tables where are several
mathematical notations than doing them by hand. However scanned tables is a image
which is rather heavy to transfer over a network. HTML allows to make tables as a
part of ASCII sourcecode. This is a recommended solution and also used in most
tables in this hypermedia.

Images in this hypermedia are mainly GIFs. JPEG has smaller file size due to
compression but there are some reason why GIF is better in this solution. Equations
are text information and this type of data can not be presented clearly with JPEG
images. JPEG is intended to full-color photos. These equations are black and white
images and GIF allows to store an image in 1-bit format. This saves disk space (even
more than JPEG compression). In other images than equations the file type has been
selected according to the visual output and file size.

Sound files are either in Sun audio format (*.au) or in Riff wave format (*.wav). Both
of these audio formats are supported by browsers directly (included in the HTML
recommendation) but only the Sun Microsystems’ audio format can be used inside
Java code. Sound files are in 8 bit mono format because the file sizes are smaller than
with 16 bit or stereo format. Several animations have been made in MPEG format.
Java byte code files are in Java specific format (*.class). If a plug-in is needed, it is a
good habit to tell to users from where this plug-in can be obtained. Some data files
needed for demonstrations are in ASCII format.
57
11.6 Exercise Generation
At this moment, there is no suitable dynamic exercise generator for DSP purposes.
Some general mathematics exercise generator are on the market, but those are not
suitable for this purpose. Some exercises are static for this reason. The remainder part
of exercises are pseudo random exercises. These are generated with Java code from
some pre-set alternatives. Java can be used also so that exercises are generated totally
through random process. In this case the checking of correctness is difficult to do.
The visualization is also easier to implement if the equations are selected from pre-
defined set of exercises.
58

12 WWW-realization of DSP Hypermedia


In this chapter, several stages of hypermedia development are described. Although
these stages are platform dependent, a short description has been written from the
most important stages. Some of these phases are quite similar with other Microsoft
Windows compatible softwares which are not discussed here.

12.1 NT Workstation Installation and Configuration


Microsoft Windows NT Workstation operation system software is delivered on CD-
ROM. The installing CD-ROM contains files for Intel based PC, Alpha, MIPS and
PowerPC environments. At the beginning of the installation process three backup
diskettes of most important system files will be made. After that the installing program
will check that there are at least 110 MB free space on the hard disk. It is
recommended that the hard disk has at least one partition which is not formatted yet
for FAT (file allocation table) file system (MS-DOS) or is formatted but empty.
Installing program will suggest to format this partition to NTFS (NT file system) for
NT usage only. This is recommended because so NT’s security feature can be utilized.
The installing program allows user to make some options for example where
operating system will be installed and what part of this operating system the user wish
to install.

After copying all necessary files from CD-ROM to hard disk, system settings will be
made. The machine name and IP address are defined during this phase. User must ask
the IP address, subnet mask and default gateway from network maintainer or from
his/her ISP. Display and some other devices can be fine tuned in this phase. The
computer will be booted several times during this process but it is a normal action.
After the installation has been done, user names can be specified through the User
Manager software. The passwords should be keep secret because these allows to use
the computer. Security/access properties can be defined both at the directory level and
file level i.e. a ”public” directory can contain files which can be accessed only by the
owner of these files.

12.2 Peer Web Services: Installation and Running


After the Microsoft Windows NT Workstation complete installation PWS (Microsoft
Peer Web Services) can be installed. Installation files can be found from the same
installation CD-ROM where NT installation files are. WWW server does not need any
network setting if NT is configured to network because PWS uses these NT settings.
Installation is well guided and it lets user to make some selections for example the
installation directory and services which user like to install (FTP, WWW and gopher).
The basic configuration is easy to do but there are several registry keys (parameters)
which maintainer can set for example amount simultaneous connections and
bandwidth which is allowed to use for PWS.

The security issues can not be forgotten. This server software (as other softwares)
allows the system manager to configure the access rights for users. This server allows
also to configure different rights for different user groups which are defined with
NT’s user administrator program. It is recommended that the maintainer disables
59
unused services (usually gopher and sometimes FTP). This minimizes hackers
possibilities to break into the computer.

Figure 12-1: Microsoft Internet Service Manager's user interface


The PWS can be configured through Microsoft Internet Service Manager. The GUI of
that program is presented in figure 12-1. This software allows to configure user policy
(enable/disable anonymous logon). Log-file’s place and updating will be configured
also through this program. The most versatile property of this program is virtual
server directory management. On this part of manager software directories can be
defined as alias directories on the server. For example WWW server can contain
directories from two hard disk and from one CD-ROM drive. These directories can be
accessed by their alias names.

The PWS will be started immediately when the computer is booted. The services is
available even if no one is logged in the computer. The request to the server uses CPU
time and hard disk capacity. So it is preferred to move the material on another server
when the material will be ready. PC with Microsoft Windows NT Server operating
system is as suitable as UNIX based servers. Transferring to the real server is
preferred because no one wants his workstation to lock up sometimes for HTTP
clients requests.

12.3 FrontPage
The Microsoft FrontPage is a program which has been made according to the
Microsoft Windows de facto standard. Its GUI is quite similar to other Windows
programs. Installation can be easily done from the CD-ROM. Only those points which
are worth noticing are explained here. The ”Microsoft FrontPage unleashed” -book
written by William Robert Stanek, et al. can be found from the WWW address
http://www.mcp.com/ (browsing by choices) or directly from
http://www.mcp.com/824256000/1-57521/1-57521-140-8/index.htm. Also other
helpful books can be found from that WWW site.

About 15 MB will be needed for full installation of Microsoft FrontPage program. If


computer’s operating system supports CD-ROM autorun property the installation
program will start immediately when the CD-ROM is inserted to CD-drive. Otherwise
setup.exe must be executed manually. The server administrator’s account have to
been set up before setup completes, but FrontPage prompts about this automatically.
After the Explorer starts first time, FrontPage tries to determine the IP address and
host name of the system automatically. It prompts about this also. FrontPage uses a
tool that checks for a TCP/IP connection to a network.
60
FrontPage consists of two main programs: FrontPage Explorer and FrontPage Editor.
Explorer is a maintainer software which takes care of updating links, checking
integrity and other maintaining tasks. Editor is a WYSIWYG type WWW editor.
Editor program generates the HTML code from users data. User creates links
manually in this program. Once a link is created, the explorer will maintain it, if it is
not a global link. Both Explorer and Editor operate with webs (synonym for one
workspace which can contain several directories). Maintainer program updates
changes inside a web correctly. When FrontPage Explorer was started, user gets a
dialog box which is shown in figure 12-2.

Figure 12-2: Dialog box appears when FrontPage Explorer was started

The first selection (radio button),”default”, is a web, which has been used in the
previous session. The second radio button allows to open an already existing web.
Three remaining radio buttons are for creating new webs. The latest one is used in this
hypermedia because there are no suitable wizard for this purpose. If the box on the
lower left hand corner is not checked or the dialog box has been closed with cancel
button these actions can be made directly from Explorer programs file menu. Explorer
has two states: folder view and hyperlink view. In the folder view (figure 12-3)
objects can be moved to another directory or renamed. In these cases Explorer
updates link information to all places where it will be needed. Through Explorer’s file
menu a web can be published to the server which is not situated physically on the
same computer where editing has been done. Through the Explorer, spell checking
and access right setting can be done.

The hyperlink view (figure 12-4) has been planned because this visual view of a web
helps maintainer to perceive which things are connected to each other. Broken links
can be easily seen from this view. It is also possible to spread out more than one node,
but in the following figure only one node has been spread out because the lack of
screen resolution to presents more nodes at the same time. There are four different
types of links which can be seen in the hyperlink view: normal hyper links, links to
images, inside a page links and repeated hyperlinks. These (not normal hyperlinks) can
be set as visible or invisible. For example if only integrity of pages will be checked the
image links can be set to invisible mode.
61

Figure 12-3: FrontPage Explorer folder view

Figure 12-4: FrontPage Explorer's hyperlink view

FrontPage Editor program can be opened through the Explorer program or directly
from the operating systems start menu. It can be launched also from spell checking
part of Explorer program. The user interface of Editor program is presented in figure
12-5.
62

Figure 12-5: FrontPage Editor's user interface

The Editor program contains almost all properties which are in common ”pure” text
editors like text formatting (font name/size, bold, italic, underline), spell checking etc.
In addition to these properties, this editor contains many HTML specific commands in
menus or directly in toolbar’s speed buttons. HTML specific properties are for
example insert hyperlink, preview in browser, insert radio button, insert Java code and
insert WebBot component. WebBot component is a dynamic object on a page that is
evaluated and executed when the author saves the page or, in some cases, when the
user browses to the page. Most WebBot components generate HTML. Some code
parts works only with Microsoft Internet Explorer and Microsoft Internet Information
Server. Because of this browser/server dependence, these components are not used if
these are not needed necessary.

There are some common parts for Explorer and Editor programs. ”To Do List” is one
of these actions. In this list, programmer can put those items which have to be done
before publishing a web. Priority can be set for each task. This list is web specific i.e.
it is common for all files in the same web (workspace). Both of these softwares use
also the same spell checking program and vocabulary.

12.4 Amount of Information on One WWW Page


There are some ways to share information on a web site. Some sites publish all
material on one page. This is good for those who will print the topic. Downloading
time for such pages will be long especially if the document contains several images.
Another extreme case which must be avoided is over fragmentation. Over fragmented
63
documents are difficult to use if there is no table of contents. It will be also difficult to
print. A compromise is selected for this hypermedia.

In this hypermedia, the table of contents contains 36 main topics. Most of these topics
are discussed on one WWW page. If the information on one WWW page has been
longer than 1½ or 2 printed pages, the information has been split to subchapters.
Some topics contain information for example tables and these pages can be longer
than this limit, but still these have been kept as one topic.

12.5 Possibility to Transfer Hypermedia on Another Server


As discussed before, this hypermedia will be as server independent as possible. All
internal hyperlinks (i.e. not links going outside of the current server) are relative links.
This means that the URL is not specified absolutely. For example
http://bud.pori.tut.fi/dsp/index.htm can point to the document
http://bud.pori.tut.fi/dsp/tabofcon.htm either with <A HREF=”
http://bud.pori.tut.fi/dsp/tabofcon.htm”> </A> tag or with relative with <A HREF=”
tabofcon.htm”> </A> tag. The later one is recommended because then there is no
need to change links when the material will be moved to another server.

File names are in 8+3 character format where this is possible. Java files requires
longer file names and those file names will be corrupted during transferring through a
16 bits medium (for example DOS based FTP program or FAT floppy disk).
Transferring can be done even with these 16 bits medium if files have been backed to
zip or tar packet which supports long filenames. The most suitable transferring
technique is a 32 bits FTP program (UNIX based or Microsoft Windows 95/NT
based).
64

13 Conclusions
Many subjects, especially in further education, need material to support teaching. The
usage of the support material is more pleasant if it is in digital format on some
computer. Material should be developed so that it suits all people in the course. In
addition to the proper scope of the course, extra links are provided for further
illustrations, especially for those participants with a weak background.

The World Wide Web (WWW) offers suitable delivery media for networked
hypermedia. HTML language is used for producing material to WWW. Because of
these facts, HTML has been chosen for implementation language of this hypermedia.
HTML offers many powerful features for programmers. For example HTML is
platform independent i.e. WWW pages can be seen on any computer platform where a
WWW browser can be used. HTML allows also to use other programs for increasing
the properties of standard browsers.

When the material will be put on some WWW server it is available for every one who
has access to Internet. There are hundreds of millions users on the Internet and so the
material should be protected. Protection will be needed for two purposes: to decrease
the server’s load and to prevent illegal copying of the material. Directory level
password protection has been indicated for best protection method.

The most difficult part of implementation of a hypermedia based course material is to


find tools for producing demonstrations and exercises. Some exercise generator has
been found, but those are not suitable for digital signal processing purposes. Java
language is suitable for many purposes but there are some problems with this
language. Java is a platform independent language (like HTML), but this requires that
a programmer use a ”standard” programming tool. Java Development Kit (JDK) is the
only totally browser compatible Java programming tool. Other tools use some editor
specific classes. The disadvantage of JDK is that it is text based editor when other
tools are graphical.

Material should be divided so that one page does not contain too much information.
Suitable amount is one topic or maximum 1 - 2 printed pages on one WWW page.
Table of content should have links to main topics. Some navigation icons help usage
of the material. The problem with hypermedia production is the lack of time. It may
take up to a week to program a good demo/exercise applet. The material should
contain several applets. Text writing and equation writing takes also time. Team work
is thus recommended.

The hypermedia based material for DSP course can be found from URL
http://bud.pori.tut.fi/dsp/index.htm. This material has been made during this project.

The state of the art in the Internet changes so fast that some parts of this book have
been revised a couple times during this project. Some new tools have been introduced
during the final stage of this project, but these are not tested. The new markup
language MathML and some other specialized markup languages will help the
publishing of mathematical equations on the Internet. After some years the Java
programming will become easier and browsers will support better Java applets and
Java scripts.
65

REFERENCES
Literature references:
Aronson 94 Aronson, L. HTML manual of style, Emeryville, California: Ziff-
Davis Press, 1994, 132 pages
Ek 96 Ek, J., Java-ohjelmointi tutuksi, Vantaa: Pagina Oy, 1996, 190
pages
Furht 95 Furht, B., Smoliar, S. W., Zhang, HJ. Video and Image Processing
in Multimedia Systems, Boston, Massachusetts, Kluwer Academic
Publishers, 1995, 377 pages
Grundström 97 Grundström, M., Mickos, R. ATM-tekniikka & monipalvelu
verkot, Jyväskylä: Suomen ATK-kustannus Oy, 1997, 396 pages
Gunnarsson 96 Gunnarsson, G. Internetin tekniikka, Vantaa: Pagina Oy, 1996,
251 pages
Hanselman 95 Hanselman, D., Littlefield, B. The Student Edition of MATLAB
Version 4 User’s Guide, Englewood Cliffs, New Jersey: Prentice-
Hall, Inc., 1995, 833 pages
Jaakonhuhta 96 Jaakonhuhta, H., Lahtinen, T. Tietoliikenne ja verkot, Jyväskylä:
Suomen ATK-kustannus Oy, 1996, 485 pages
Kiuttu 97 Kiuttu, P., Java-ohjelmointi PRO-kurssi, Jyväskylä: Suomen ATK-
kustannus Oy, 1997, 407 pages
Köykkä 97 Köykkä, S., HTML-ohjelmointi, Jyväskylä: Suomen ATK-kus-
tannus Oy, 1997, 393 pages
Lehtinen 97 Lehtinen, E. (editor), Tella, S., Hakkarainen, K., Järvelä, S.,
Multisilta, J., Marttunen, M., Huhta, M., Ojala, M., Siekkinen, M.,
edit., Verkkopedagogiikka, Helsinki: Oy Edita Ab, 1997, 163
pages
MicroPC10/97 Kemppainen, T., Talvitie, H., WWW-kanavat tuovat uutiset
työpöydälle, MicroPC, vol. 10, 1997, pages 39 - 42.
Multisilta 96 Multisilta, J., Hypermedia Learning Environment for Mathematics,
Tampere: TTKK, monistamo, 1996, 97 pages
Nykänen 98 Nykänen, O., Pohjolainen, S. Using General Purpose Computer
Algebra System Maple in WWW-based Open Learning
Environments, Multisilta, J. Niemi, J-P., edit. Proceedings of the
LeTTeT ’98 and MaTILDA ’98 Joint Conference, Pori: Porin
korkeakouluyksikkö, TTKK, TKKK, 1998, pp. 73-80.
Staflin 96 Staflin, R., HTML-ohjelmointi, Vantaa: Pagina Oy, 1996, 241
pages
Stallings 94 Stallings, W. Data and Computer Communications, New York:
Macmillan Publishing Company, 1994, 875 pages
66
WWW references:
Apache/1 Apache Project, Apache HTTP Server Project,
http://www.apache.org/, (quoted) 30.12.1997

Basith/1 Basith, S. A., Done, S. R., Departments of Computing & Electri-


cal Engineering Imperial College, 180 Queen's Gate, London,
SW7 2BZ, MPEG report
http://www-dse.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/sab/report.html,
(published) 14.6.1996, (quoted) 10.12.1997

Gigabit/1 gigabit.webmaster@whitehorsestudios.com, Gigabit Ethernet


Consortium, Ethernet Comparison Summary,
http://www.gigabit-ethernet.org/technology/overview/compsum.html ,
(quoted) 22.12.1997

IC-Online/1 internet-computing@computer.org, IEEE Internet Computing


Online, Gigabit Ethernet,
http://www.computer.org/internet/v1n5/ether.htm, (quoted)
22.12.1997

Indiana/1 nobody@cica.indiana.edu, Indiana University, University Com-


puting Services, Center for Innovative Computer Applications,
Image formats,
http://www.cica.indiana.edu/graphics/image.formats.html, ,
(published) 21.11.1994, (quoted) 10.12.1997

Korpela/1 Korpela, J., jkorpela@hut.fi, Tekijänoikeusfakki,


http://www.hut.fi/korpela/tekoik.html, (quoted) 20.1.1998

MathSoft/1 MathSoft, Mathcad 7.0, http://www.mathsoft.com/mathcad/,


(quoted) 30.1.1998

Microsoft/1 Microsoft Corporation, Internet Information Server,


http://www.microsoft.com/iis/default.asp, (quoted) 2.1.1998

Microsoft/2 Microsoft Corporation, Internet Explorer Home,


http://www.microsoft.com/ie/, (quoted) 9.1.1998

Müller/1 Müller, S. mueller@esr.ruhr-uni-bochum.de, Ruhr-University


Bochum, Virtual Control Laboratory,
http://www.esr.ruhr-uni-bochum.de/VCLab/, (published)
12.11.1996, (quoted) 11.12.1997

NCSA/1 National Center for Supercomputing Applications,


httpd@ncsa.uiuc.edu, The NCSA HTTPd Home Page,
http://hoohoo.ncsa.uiuc.edu/, (quoted) 9.1.1998

Netcraft/1 Netcraft Ltd., Rocketfield House, Granville Road, Bath BA1 9BQ,
Netcraft - Site Index, http://www.netcraft.com/siteindex.html,
(quoted) 26.1.1998

Netscape/1 Netscape Communications Corporation, Knowledge base,


http://help.netscape.com/index.html, (quoted) 11.12.1997
67

Netscape/2 Netscape Communications Corporation, Netscape Server Central -


SuiteSpot, http://www.netscape.com/comprod/server_central/,
(quoted) 5.1.1998

Netscape/3 Netscape Communications Corporation, Netscape Communicator


and Navigator Library,
http://www.netscape.com/library/communicator.html, (quoted)
9.1.1998

PGP/1 Johnson, M. P., mpj@ebible.org, Where to Get PGP,


http://www.sni.net/~mpj/getpgp.htm, (quoted) 19.2.1998

Stars/1 Richmond, A. and L. 7002 Kingfisher Lane, Lanham MD 20706


USA, Computer acronyms
http://WWW.Stars.com/Reference/Index/, (quoted) 27.10.1997

Stars/2 Richmond, A. and L. 7002 Kingfisher Lane, Lanham MD 20706


USA, VL-WWW: Servers,
http://WWW.Stars.com/Vlib/Software/Servers.html, (quoted)
30.12.1997

Stauffer/1 Stauffer, K., kstauff@a.stu.athabascau.ca, Athabasca University,


Student Modelling and Web-based Learning Systems,
http://ccism.pc.athabascau.ca/html/students/stupage/Project/initsm.
htm, (published) 22.3.1996, (quoted) 7.1.1998

W3/1 Nielsen, H. F. World Wide Web Consortium, MIT/LCS NE43-


348, 545 Technology Square, Cambridge MA 02139, USA, HTTP
protocol declaration, http://www.w3.org/Protocols/Activity.html,
(published) 9.8.1997, (quoted) 8.12.1997

W3/2 Raggett, D., dsr@w3.org, World Wide Web Consortium, HTML


3.2 Reference Specification,
http://www.w3.org/TR/REC-html32.html, (published) 14.1.1997,
(quoted) 12.1.1998

W3/3 Raggett, D., Le Hors, A., Jacobs, I., {dsr,lehors,ij}@w3.org,


World Wide Web Consortium, HTML 4.0 Specification,
http://www.w3.org/TR/REC-html40/, (quoted) 18.12.1997

Vous aimerez peut-être aussi