Title: Other System Issues
1Other System Issues
- Software some hardware issues
- Sources
- Chapter 4 main text
- Software that Enables Multimedia
- HTTP
- http//www.ectag.org/ec/stds/http.htm
- http//www.jmarshall.com/easy/http/
- http//www.w3.org/Protocols/
- Chapter 6 main text
- Computer Science Fundamentals
- Chapter 8 main text
- Software Engineering
- Vaughan, T. (2002). Multimedia Making It Work
(Fifth Edition). Osborne/McGraw-Hill.
2Topics
- Client/server
- Operating systems
- System requirements
- Quality of service
- Platform hardware software
- Testing
- Multimedia delivery
3Client/Server Computing
- Server
- A process providing access to software and/or
hardware resources - Process A program that runs independently on a
computer - Sometimes associated with one computer
- Client
- Other process needing access to the resources
- Communicate with the server to access the
resources - Examples
- Network printing
- HTTP (hyper text transfer protocol)
- telnet/ssh remote connections
- scp/ftp network file transfers
- Databases
- Software license server (metering)
- Why?
4Some Reasons for Using a Client/Server Style
- Synchronizing hardware access
- Printer example
- Want jobs to appear in some sequence, and not
interleaved - Synchronizing data access
- Database example
- Database server can ensure integrity of changes
to database - Goal multiple processes accessing same data
should leave data in consistent state - Mechanism for remote file access HTTP
- Web files (e.g., HTML documents) exist on
multiple remote computers - Need a mechanism to provide network access to
files on those remote computer - Client/server access is one such mechanism
- Licensing
- some maximum number of people to be using a
software resource at a given time
5Asymmetric Distributed Processing
- With server and client(s) processes running on
different computers we have
Distributed Multiple processes running on
different computers, communicating across a
network Asymmetric Different software in client
and server
Network communications
6Client/Server Mechanism
- 1) Server process is initialized
- Starts on some remote computer
- 2) Client process sends request to the server
- Client must know server name
- Client typically waits while request being
processed, and until response is received - 3) Server process receives request
- Remote requests from a client process on
different computer or local requests from a
client process on same computer - Server attempts to satisfy request
- Sends response back to client process
- 4) Client receives response for the request
7HTTP Protocol
- Stateless protocol
- After client sends one message, gets a reply,
server does not maintain record of the connection
- Request format
- ltmethod-namegt ltresource-URIgt ltHTTP versiongt
- ltoptional request headersgt
- E.g., Host, From, User-Agent
- Headers end with a blank line
- ltoptional request message bodygt
- Response format
- ltHTTP versiongt ltresponse-codegt ltresponse
descriptiongt - ltresponse headersgt
- E.g., Date, Content-Type
- Headers end with a blank line
- ltresponse message bodygt
- For an HTTP protocol description, see
http//www.jmarshall.com/easy/http/
8Example HTTP Requests
- GET /cprince/personal/index.html HTTP/1.0
- Method GET
- URI /cprince/personal/index.html
- Version HTTP/1.0
- Purpose Gets a resource (e.g., a file) from a
remote system - HEAD /cprince/personal/index.html HTTP/1.0
- Method HEAD
- URI /cprince/personal/index.html
- Version HTTP/1.0
- Purpose Gets only the headers for a resource
(e.g., a file) from a remote system i.e., a
description of the resource - POST ltURIgt ltHTTP versiongt
- Method POST
- Purpose Send data to the server to be processed
(e.g., by a program running on the same computer
that the server runs on, say a CGI script)
9A HTTP Server ConnectionUsing Telnet
- telnet
- Standard program (e.g., on UNIX)
- Enables communication with remote hosts
- The UNIX command
- telnet www.somehost.com 80
- Opens a connection to a web server
- HTTP servers by default listen on port 80
10 GET Example
- cprince_at_rattus cprince telnet www.d.umn.edu 80
- Trying 131.212.109.39...
- Connected to www.d.umn.edu.
- Escape character is ''.
- GET /cprince/personal/index.html HTTP/1.0
- HTTP/1.1 200 OK
- Date Tue, 22 Oct 2002 181117 GMT
- Server Apache/1.3.26 (Unix) PHP/4.2.2
- Connection close
- Content-Type text/html
- lthtmlgt
- ltpgtlta href"soaring.html"gtltfont
size"7"gtltemgtSoaring!lt/emgtlt/fontgtlt/agtlt/pgt - lthrgt
- ltpgtlta href"recipes.html"gtRecipeslt/agtlt/pgt
- ltpgtlta href"http//www.eskimo.com/cetacea
n/"gtProfessional and personal use hydrophones - (underwater microphones) and related
equipment and serviceslt/agtlt/pgt
11 GET Example
- cprince_at_rattus cprince telnet www.d.umn.edu 80
- Trying 131.212.109.39...
- Connected to www.d.umn.edu.
- Escape character is ''.
- GET /cprince/personal/index.html HTTP/1.0
- HTTP/1.1 200 OK
- Date Tue, 22 Oct 2002 181117 GMT
- Server Apache/1.3.26 (Unix) PHP/4.2.2
- Connection close
- Content-Type text/html
- lthtmlgt
- ltpgtlta href"soaring.html"gtltfont
size"7"gtltemgtSoaring!lt/emgtlt/fontgtlt/agtlt/pgt - lthrgt
- ltpgtlta href"recipes.html"gtRecipeslt/agtlt/pgt
- ltpgtlta href"http//www.eskimo.com/cetacea
n/"gtProfessional and personal use hydrophones - (underwater microphones) and related
equipment and serviceslt/agtlt/pgt
Request
Blank line ends request
Blank line ends response headers
Response
12HEAD Example
- cprince_at_rattus cprince telnet www.d.umn.edu 80
- Trying 131.212.109.39...
- Connected to www.d.umn.edu.
- Escape character is ''.
- HEAD /cprince/index.html HTTP/1.0
- HTTP/1.1 200 OK
- Date Wed, 23 Oct 2002 142526 GMT
- Server Apache/1.3.26 (Unix) PHP/4.2.2
- Connection close
- Content-Type text/html
- Connection closed by foreign host.
- cprince_at_rattus cprince
Request
Response
13Web Browsers
- Examples
- NCSA Mosaic
- Internet Explorer, Netscape
- Konqueror, Lynx, Opera
- Two main functions of web browsers
- HTTP clients
- Interpretation of various data (media) formats
- Formats including images, sounds, movies
- E.g., HTML, JPEG, GIF, PNG, WAV, AVI, Quicktime,
MPEG, PDF - Extensibility issues Data formats change
14Data Format Extensibility
- Requirement
- As a media formats change, or new media formats
become available, need mechanisms to interpret
(e.g., display) these new media formats - E.g., Shockwave or PDF or MPEG4 files
- How can this requirement be provided?
- One mechanism Plugins
- Provide interpretation of some media formats
- One method of extending browser media formats
15What is a plugin?
- A collection of program code data
- Often contained in a single file
- Dynamically loaded into a running program (e.g.,
web browser) - E.g., DLL in Windows or .SO mechanisms in Linux
- Running program can then execute program code
- E.g., to enable viewing of PDF file in browser
window - Plugins adhere to a pre-defined software
interfacing standard - E.g., application programming interface or API
- Note that this is analogous in some ways to a
media codec but a separate concept
16MultimediaPlatform Requirements
- Some main issues
- Development or presentation?
- Quality of Service (QoS) needs?
- Existing hardware and software
- Lead to platform specifications
17Development or Presentation?
- Will the computer platform (hardware, software,
networking) - Be used for development?
- Will it be used for presentation?
- Developers have different requirements than
users - Examples
- Rendering video requires a lot of disk space, and
computer performance - Software tools for editing media may not be
needed by end user of multimedia application - DVD burner may be useful for development, but not
a requirement for end-user system
18Quality of Service (QoS)
- Idea
- Configurable quality requirements for media
streams for specific multimedia applications - Some applications may have higher requirements
than others - E.g., some people may just like higher quality,
and be willing to pay for that - E.g., Broadcast situations may demand higher
quality - Goal to provide guarantees about
quality/quantity of media - Some aspects of QoS
- Perceptual quality of media
- Error control
- E.g., Video is tolerant of some errors, while
audio is less tolerant - Layers User, Application, System, Network
- E.g., a user requirement quality of perception
of multimedia data - E.g., at system or network layer Maximum bit
rate, task processing time, bit error rate - Resources
- http//citeseer.nj.nec.com/campbell92integrated.ht
ml - Steinmetz, R. Nahrsted, K. (1995). Multimedia
Computing, Communications, Applications.
Prentice Hall, PTR.
19Platform Issues
- Computer system
- Hardware interfaces for media
- E.g., A/D conversion including frame grabbers
- Disk availability and performance
- e.g., data transfer rates for CD-ROM, DVD, Hard
disk - Networking
- e.g., modem, Ethernet
- What communication speeds are expected?
- Software
- Operating system
- Software interfaces e.g., Quicktime plugin
- Device drivers e.g., Digital camera drivers
- Applications
- E.g., For authoring and/or presentation of
multimedia
20Operating Systems Sources
- Steinmetz, R. (1995). Analyzing the multimedia
operating system. IEEE Multimedia, 2(1), pp.
68-84. - IEEE Multimedia web site
- Regehr, J., Jones, M. B., Stankovic, J. A.
(2000). Operating system support for multimedia
The programming model matters. Microsoft Tech
Report. - http//research.microsoft.com/mbj/papers/tr-2000-
89_abstract.html
21Operating System Software
- User level software
- User level applications
- E.g., Macromedia Director, Power Point, Web
browser - Operating system applications
- E.g., format or partition a disk, change process
priority - Window management
- Servers
- e.g., printing, email, web, telnet, ssh
- Process management
- Multi-tasking, multi-threading
- Device management scheduling
- Memory, discs, CPU
- Device drivers
- E.g., display adapter, firewire card, network
card, video camera driver, microphone
22Operating System Multimedia Requirements
- What makes an operating system able to handle
multmedia? (Steinmetz, 1995, p. 68) - Soft real-time requirements
- vs. Hard real-time systems
- Something bad happens if deadlines are not met
- In soft-real time
- User expectations are at stake
- Scheduling use of resources
- Goal
- Execute critical workload within some deadline
- E.g., 1 frame of video every 1/30th of a second
- Errors
- Some errors are acceptable
- E.g., dropping a video frame now and then
- Other errors less acceptable
- Dropping audio data is more perceivable
23Software Engineering
- When and Why?
- Software Engineering starts
- Where large programs start
- Constructing small applications
- Often different than constructing large
applications - Techniques dont always scale up
- Example
- Early BASIC programming language
- limited functions (e.g., no parameters)
- Only global variables
- Small program in early BASIC
- Large program in early BASIC
- Difficult to reason about a large set of
interacting variables
24Software Life Cycle
- Software exists over a span of time
- From identification of a problem
- Until the program is finally phased out, or
replaced by another - Life cycle
- Problem identification
- Requirements
- Design of solution
- Creation of software
- Ongoing use
- Maintenance
25Problem Identification Requirements
Specification
- Answering question
- What problem is being solved?
- 10-25 of life cycle should be spent here
- Techniques
- Partitioning Divide and conquer
- Parts relationships
- Abstraction Defining in general terms
- Leaving out details
- Projection Viewing problem from different
perspectives - Many other techniques
- E.g., data flow diagrams
26Installation Maintenance
- Perhaps 80 of investment in the maintenance
phase! - What does this imply about
- Requirements specification?
27Risk Management
- Risk in software
- Those aspects that are most likely to cause
problems, failure of project, influence
development - An example of risk
- Multimedia presentation on snow boarding in
Duluth - Project to be completed by December
- Unknowns can be sources of risk
- Identify unknowns
- Act on unknowns before known factors
28Multimedia Delivery Software
- Compiled
- Machine code generated for a computer CPU (e.g.,
Intel-based) and operating system (O/S) - E.g., Macromedia Director Projector
- Pros/Cons
- Faster
- Limited to computer type O/S
- Stand-alone
- Interpreted
- Instructions created that can be interpreted by a
program - E.g., Macromedia Shockwave
- Pros/Cons
- Slower
- More portable
- Need interpreter (e.g., player) software
29Connecting Media Components
(1) Statically linked Contained in presentation
file
(2) Dynamically linked Contained in external
auxiliary files
Presentation file2
Examples?
Examples?
30Connecting Media Components
(1) Statically linked Contained in presentation
file
(2) Dynamically linked Contained in external
auxiliary files
Presentation file2
Examples 1) HTML A HREF (anchor) tags 2)
External style sheets in HTML
Examples 1) Projector files (for sound, and
sometimes video) 2) Internal style sheets in HTML
31Dynamically Linked Style Sheets
- lt!-- start of file --gt
- lthtmlgt
- lttitlegtwww.cprince.com/courses/cs3121fall02/lectur
es/media/fifth.htmllt/titlegt - ltheadgt
- ltlink href"special.css" rel"stylesheet"
type"text/css"gt - lt/headgt
- ltbodygt
- ltp class"special"gt This paragraph should have
special blue text. lt/pgt - lt!-- class name specifies style sheet --gt
- lt/bodygt
- lt/htmlgt
- lt!-- end of file --gt
lt!-- style sheet special.css --gt P.special
color blue border solid red
www.cprince.com/courses/cs3121fall02/lectures/medi
a/special.css
www.cprince.com/courses/cs3121fall02/lectures/medi
a/fifth.html
32Dynamically Linked Style Sheets
- lthtmlgt
- ltheadgt
- lttitlegtwww.cprince.com/courses/cs3121/media/fift
h-b.htmllt/titlegt - ltstyle type "text/css"gt
- lt!-- style information previously contained in
file special.css --gt - P.special color blue border solid red
- lt/stylegt
- lt/headgt
- ltbodygt
- ltp class"special"gt This paragraph should also
have special blue text. lt/pgt - lt/bodygt
- lt/htmlgt
33Example ofStatically Linked Audio Video
- Projector file from Lab 2
- When downloaded and executed on a Windows system,
but plays sound, video and shows an image - (Does dynamically link to another web page on
the Internet) - http//www.cprince.com/courses/cs3121fall02/labs/l
ab5/Projector.exe
34Linking Multimedia Objects
- Data objects or program code objects
- Can be statically or dynamically linked into a
multimedia presentation - Is the data contained in the presentation file or
elsewhere? - Statically linking
- Compilation stage objects (data or code) is
incorporated as part of the runtime code - E.g., Director Standard Import option
- Dynamic linking
- File to be viewed, played, executed etc. is not
contained in presentation file - Might be on same computer as presentation
- E.g., Director Link to External File in import
35Pros and Cons
- Static linking
- Slower downloads (-)
- No file location issues ()
- Updates issues (but see publish subscribe
DDE/OLE) - No subsequent latency issues ()
- Dynamic linking
- Faster downloads () User may not want to
view/hear all media - Specific locations of files (-) Files need to be
in their designated locations - Updates apply ()
- May have subsequent latency issues (-)
36Techniques to Increase Performance with
Dynamically Linked Components
- Preloading
- Some authoring tools enable media components to
be loaded prior to their use - Can pay the price of media loading during
presentation startup, or some inactive time of
the presentation - Suitable for large objects to reduce latency
- Caching
- Once a media component is accessed it is
temporarily stored for future access - Useful for components accessed across a network
- In a short time period, if same component is
accessed, it can be accessed from cache buffer,
and not from a network acccess - Cache buffer is limited