Académique Documents
Professionnel Documents
Culture Documents
PETTERI KERMINEN
HYPERMEDIA FOR DIGITAL SIGNAL PROCESSING
Master of Science Thesis
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 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
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
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.
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.
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.
The system chosen for the implementation and maintenance of the hypermedia
environment is presented in chapter 11.
Conclusions and suggestions for further work are presented in chapter 13.
3
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.
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.
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.
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.
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).
Repeater
Bridge
Bridge
Repeater Router
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.
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.
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]
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]
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]
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]
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.
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.
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).
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.
HTTP
Hypertext Image
(html) (gif)
Server Client
Image Sound
(jpeg) (wav)
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.
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.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
3.7.3 GIF
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]
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]
a) root
b)
c)
d)
e)
f)
g)
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]
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.
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.
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.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%
5.1.1 Apache
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]
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]
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.
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 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.
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.
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.
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.
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.
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.
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.
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]
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
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.
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.
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.
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]
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.
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.
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).
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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
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.
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.
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.
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
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
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.
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.
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.
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
Netcraft/1 Netcraft Ltd., Rocketfield House, Granville Road, Bath BA1 9BQ,
Netcraft - Site Index, http://www.netcraft.com/siteindex.html,
(quoted) 26.1.1998