Course Syllabus and Teaching Plan CEEPUS Exchange Program
Gabriele Kotsis Johannes Kepler University Linz gabriele.kotsis@jku.ac.at
Summary
Increasing the performance was and is one of the driving forces in computer
and
software development. Distributed and interactive services, such as the type
of
services provided via the world wide web, provide particular challenges in
that
users expect low response times (i.e. the time elapsed between submitting a
request
and seeing the results on screen), while service providers want to maximize
utilization and throughput (number of users served per unit of time). In th
is course,
methods, techniques, and tools will be discussed (and practically demonstra
ted / worked
on) for the analysis and design of web services with respect to performance
criteria
as given above. While performance issues are relevant for personal web site
s as well,
they are crucial for e-business sites. It has been shown, that poor perform
ance is
still among the major reasons why potential customers do actually decide no
t to buy
and leave a site. Therefore, emphasis in the course will be given to the an
alysis and
capacity of e-business sites.
Students will learn how to analyze, interpret, and improve the performance
of web services
(ranging from the evaluation of personal home pages to e-commerce sites). A
fter attending
the course, the students will have practical knowledge on methods and tools
for both,
performance measurements (which require access to the actual site under stu
dy) as well as
for performance models (which allow also an off-line analysis without acces
s to the system,
suitable in the context of web services. Being able to analyze the performa
nce of a web service
is a prerequisite for the next challenge, namely to dimension and plan its
capacity.
Dimensioning and capacity planning is based on
(1) defining desired service quality levels (e.g. certain thresholds for
response time and
(2) estimating the load that the server will have to handle.
Students will therefore also learn about techniques for quality of service
negotiations and
agreement (including state-of-the-art and future internet technologies) and
techniques for
load characterization. The students will be able to apply those techniques
in real-world
capacity planning scenarios.
Course Plan
The course consists of 10 units held on 5 days (2 units á 60 minutes per day).
Units include instructional class room reaching enhanced with discussions and exercises (to be
prepared and presented by the students) and practical work in small project teams. The topics for
the projects will be suggested by the instructor, but students are encouraged to submit their
own proposals.
Grading
Students will be graded based on their performance during the course and based on a final oral
examination covering content of the course.
Reading List
* Capacity Planning for Web Services: Metrics, Models, and Methods, Daniel
A. Menasce, et.al.,
Prentice Hall, 2002, 598 pages.
* The Art of Computer Systems Performance Analysis Techniques for Experimental Design,
Measurement, Simulation, and Modeling, Raj Jain, Wiley, 1991, 720 pages.
Time Table
Day 1
Basic Performance Concepts
o Defining Performance and Capacity of Web Services
o Performance Influencing Factors
o Capacity Planning Methodology
o Operational Analysis
o Bottleneck Analysis
Suggested Reading: Menasce 2001, Chapter 3 - 5, Jain 1991, Part I (Ch. 1,2,3)
Day 2
Performance Measurements
o Taxonomy of Monitoring Approaches
o Software Monitoring
o Benchmarking
Suggested Reading: Menasce 2001, Chapter 7 and 13, Jain 1991, Part IV
Day 3
Hands-on-Experience on Monitoring and Benchmark Tools
Day 4
System-Level Performance Models
o Introduction to Stochastic Analysis
o Birth-Death Processes
o Open Models
Suggested Reading: Menasce 2001, Chapters 8, Jain 1991, Part IV
Day 5
Component-Level Performance Models
o Single Class Open Models
o Multiple Class Open Models
Suggested Reading: Menasce 2001, Chapters 9 Jain 1991, Part IV (Ch. 32, 34)
Device Driver
I/O Control - Ports, Polling, Interrupt, DMA
Using Ports in Linux User Space
User Space - Kernel Space
gcc, Inline Assemler
Lit, Web-pages, News-groups
Kernel Modules
"Hello World" Module
insmod
printk() etc.
Compilation, Kernelversion
Parallel Port, Monitoring
tty Write
module_init
Command-Line-Arguments
Char-Drivers
Device Files, Major & Minor Numbers
file_operations Structure
register_chardev, Choice of Major Number
mknod
read(), put_user()
open(), release(), Usage Count
write(), llseek(), File Structure
Advanced Char-Drivers
Use of Minor Numbers
Devicd Control, ioctl()
Access Control
Writing /proc - Files
Time, Memory
Interrupts
Blocking I/O
poll()
Asynchronous Notification
Hardware Management
Interrupts
Many industrial and optimization tasks lead to the problem of finding all roots of algebraic polynomial or arbitrary their part. One of branches for solving polynomial equations is parallel methods for simultaneous determination of all roots. With our solver automatically we can search simultaneously all or only one part of all roots of given algebraic polynomial (real, complex, lying in given area).
(XML als Grundlage, darauf aufbauend XML-Schema und XSL sowie höhere Standards wie Dublin Core, SOAP, RDF und DAML+OIL; entweder rein als Theorie oder verbunden mit einem praktischen Übungsteil, implementiert in Java;)
1 Semester-hour lecture (approx. 5 x 2 hours)
Lectures about XML and related technologies.
Lecture 1: XML + Namespace
* Why was it created and what are its aims
* Structure of XML files
* Well-formedness
* Different elements (attributes, CDATA, PI)
* Ideas behind DTDs
* Defining elements, attributes, entities
* Validity
* Namespaces
Lecture 2: Schemata
* Idea behind schemata
* Simple types
* Attributes, attribute groups
* Complex types
* Element declaration
* Standard datatypes
* Defining new datatypes
* Other elements of schemata
Lecture 3: XSL
* Idea behind XSL
* XPath
o Expressions
o Different steps
o Node tests
o Predicates
o Sequences and ranges
o Expressions
o Comparisons
o For, Conditionals
o Quantifiers
o Selected functions
* XSLT
o Document structure and serialization
o Creating text
o Value-of
o Creating attributes
o Creating elements
o The two different ways of creating output: Imperative and functional "programming" in XSLT
o Templates
o Conditions
o Namespace aliasing
o Numbering and sorting
* FO
o Idea and what it is used for
Lecture 4: XML manipulation in Java
* Parsing XML
o "Manual" parsing
o SAX2
* Handling events
* Handlers (Content, Document, DTD, Error)
* Entity resolving
* Filtering and modifying content
* Manipulating XML with DOM
o Traversing
o Modifying content
* Outputting XML
Lecture 5: Advanced Standards
* RDF
* Dublin Core
* DAML+OIL
* OWL
The aim of this course is to present basic concepts, paradigms, and
principles of human-computer interaction. It primarily focuses on the
design, implementation, and evaluation of interactive systems. In
particular the following area are covered:
- Introduction to HCI
- Human Factors
- Technological Factors
- Interaction
- Process of Developing Interactive Systems
- Analysis of Users' Needs and Requirements
- Design, Prototyping, and Construction
- Evalution of Interactive Systems
- HCI in a Broader Context (Computer-Supported Coorative Work
and Design of Cooperative Applications, Appliance Design,
Information Visualisation, Web Design)