Programmingcs778/ralf/12appendixB-progr.pdf · ... Germany,[email protected] ......

24
12appendixB-progr.fm 1 20.June.01 Contents Contents http://www.kom.e-technik.tu-darmstadt.de http://www.tk.informatik.tu-darmstadt.de © R. Steinmetz, M. Mühlhäuser Multimedia-Systems: Programming Prof. Dr.-Ing. Ralf Steinmetz Prof. Dr. Max Mühlhäuser MM: TU Darmstadt - Darmstadt University of Technology, Dept. of of Computer Science TK - Telecooperation, Tel.+49 6151 16-3709, Alexanderstr. 6, D-64283 Darmstadt, Germany, [email protected] Fax. +49 6151 16-3052 RS: TU Darmstadt - Darmstadt University of Technology, Dept. of Electrical Engineering and Information Technology, Dept. of Computer Science KOM - Industrial Process and System Communications, Tel.+49 6151 166151, Merckstr. 25, D-64283 Darmstadt, Germany, [email protected] Fax. +49 6151 166152 GMD -German National Research Center for Information Technology httc - Hessian Telemedia Technology Competence-Center e.V.

Transcript of Programmingcs778/ralf/12appendixB-progr.pdf · ... Germany,[email protected] ......

Page 1: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

u-darmstadt.de Fax. +49 6151 16-3052

, Dept. of Computer Science51 166151,M.tu-darmstadt.de Fax. +49 6151 166152

ogy

12appendixB-progr.fm 1 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser Multimedia-Systems:

Programming

Prof. Dr.-Ing. Ralf SteinmetzProf. Dr. Max MühlhäuserMM: TU Darmstadt - Darmstadt University of Technology,

Dept. of of Computer ScienceTK - Telecooperation, Tel.+49 6151 16-3709,Alexanderstr. 6, D-64283 Darmstadt, Germany, [email protected]

RS: TU Darmstadt - Darmstadt University of Technology,Dept. of Electrical Engineering and Information Technology

KOM - Industrial Process and System Communications, Tel.+49 61Merckstr. 25, D-64283 Darmstadt, Germany, Ralf.Steinmetz@KOGMD -German National Research Center for Information Technolhttc - Hessian Telemedia Technology Competence-Center e.V.

Page 2: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

User Interfaces

.Synchro-nization

GroupCommuni-

cations

Programming

ms Communications

ice Networks

ession

Video Audio

12appendixB-progr.fm 2 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Scope

Usa

ge Applications

Learning & Teaching Design

Ser

vice

s ContentProcess-

ing

Docu-ments

Security ..S

yste

ms Databases

Media-Server Operating Syste

Opt. Memories Quality of Serv

Bas

ics Computer

Archi-tectures

Compr

Image &Graphics

Animation

Page 3: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

are

ming

12appendixB-progr.fm 3 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Contents

1. Programming - Abstracting from MM-Hardw

Device Drivers

Devices

System Software - MCI

System Software - DirectX

Libraries - Open GL

Java Media Framework (JMF)

Application Generators and Visual Program

2. Programming Languages

Requirements

Object Orientation - Basics

Java

3. Distributed Computing

Initial Situation and Requirements

CORBA

CORBA and Java

Page 4: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

MM-Hardware

s

Ab

stra

ctin

gfr

om

Ap

plic

atio

n

12appendixB-progr.fm 4 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

1. Programming - Abstracting from

Application Generator

Library or Framework

Device Driver

Multimedia-Hardware Device

Multimedia-Application

System-Software

Ab

stra

ctin

gfr

om

Ha

rdw

are

Page 5: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

hardware

el code - i386 architecture */

ms with:

12appendixB-progr.fm 5 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Device Drivers

At hardware level• sequence of (very) specific instructions• IO / DMA addresses determined by individual

static unsigned long read_timer(void){

/* example taken from Linux kernunsigned long t, flags;int i;__save_flags(flags);__cli();t = jiffies * 11932;outb_p(0, 0x43);i = inb_p(0x40);i |= inb(0x40) << 8;__restore_flags(flags);return (t - i);

}

Strong hardware dependency may cause proble• portability• reusability• coding efficiency

Page 6: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

e operating system

12appendixB-progr.fm 6 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Devices

Try to:• identify classes of similiar devices• treat them via a generic interface as part of th

• block devices (e.g. /dev/hda)• character devices (e.g. /dev/sound)

Abstraction - File• system calls:

• open, close• read, write• (seek)• fcntl, ioctl - for all further functionality

• example:• micro_in = open (“/dev/audio”, O_RDONLY);

samples = read (micro_in, buffer, 1024);...

other mechanisms:• memory mapping• I/O or DMA mapping

Page 7: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

I)

dependence

brary

ia Control Interface

Media ControlInterface Drivers

Compact DiscAudio

Videodisc

(MCI)

12appendixB-progr.fm 7 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

System Software - MCI

OS/2 and Windows Media Control Interface (MC

• MMSYSTEM lib. for extensibility and device in

Multimedia Application

WindowsSystem Software

MMSYSTEM Li

Low-Level Functions Med

WindowsDevice Drivers

MultimediaDevice Drivers

JoystickDevice

WaveformDevice

MIDIDevice

Page 8: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

ce applicationsme SDK"

rs

/ DCOM

= component of ActiveX

= component of DirectX

12appendixB-progr.fm 8 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

System Software - DirectX

Low-level APIs and libraries for high-performan• Especially games - formerly known as the "Ga

Direct access to hardware services• e.g. audio & video cards, hardware accelerato• "DirectX" = "direct access"• strong relationship / interaction with ActiveX

Video Device Drivers

Video Hardware

Application

e.g. Active Movie

Direct Draw Direct xxx

Direct 3D

Page 9: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

itiesics programming APIk of multiple streamsevelopmente.g. joysticks, data gloves

tionality)

12appendixB-progr.fm 9 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

DirectX (cont.)

Components:• DirectDraw - 2 dimensional graphics capabil• Direct3D - extensively functional 3D graph• DirectSound - (3D) sound, mixing and playbac• DirectPlay - for network multiplayer game d• DirectInput - input from various peripherals,

Implementation Strategy:• Hardware Abstraction Layer (HAL)• Hardware Emulation Layer (HEL)• Media Layer (for aggregated “high level” func

• animations• media streaming• synchronisation

Other System Software Examples• Apple QuickDraw• QuickTime

Page 10: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

Graphicscross many platforms”

, Rectangle handling ...)

12appendixB-progr.fm 10 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Libraries - Open GL• 2D and 3D graphics API developed by Silicon• basic idea: “write applications once, deploy a

• PCs• Workstations• Super Computers

• Benefits:• Industry Standard• Stable• Reliable and Portable• Evolving• Scalable (HW features like Z-buffering, Zoom• Well documented and easy to use

• integrated with:• Windows NT• Windows 95• UNIX X Window System

Page 11: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

roup, sequence, video, ...)

12appendixB-progr.fm 11 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Frameworks

Additional level of abstraction:• Combination of different media

• New data types• e.g. mixed.video := orig.video + subtitle• granularity problematic (pixel, frame, image g

• Reuse of Modules:• Synchronization• Scaling• (De)compression• File formats• etc.

Application frame given• Generic problem solution

Creation of specialized application components• Media containers, media processors

Page 12: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

cation.start();

mple in lecture on

kit

12appendixB-progr.fm 12 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Frameworks (cont.)

Framework controls execution• E.g. myApplicationComponent.init(); myAppli

Examples:• Java Media Framework (JMF)• further information on Applets as another exa

documents

ToolApplication

Framework

Page 13: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

back of multimedia data

ent and core packages

mand (VOD) protocols)

12appendixB-progr.fm 13 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Java Media Framework (JMF)

support for platform-neutral synchronized play• local• via network

• pull protocols - e.g. HTTP• push protocols - e.g. RTP

easy integration into platforms native environm

supported media formats:• MPEG-1• MPEG-2• QuickTime• AVI• WAV• AU• MIDI

extensible:• new Data Sources (e.g. for FTP or Video on De• new Players

Page 14: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

nd abstract base class)

el

ervise another)

12appendixB-progr.fm 14 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Java Media Framework (cont.)

Basic features:• state model• communication and control via base API (exte• event model• may be embedded in Beans (Component) mod• set of controls is player defined• synchronisation support (one player may sup

Page 15: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

rogramming

imedia Applications on an

hem on a time axix

12appendixB-progr.fm 15 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Application Generators and Visual P

Goal:• Support for Authoring and Generation of Mult

intuitive basis

Categories (maybe mixed):• script-based• icon-based• timeline-based

Approach may be used for visual programming

Example: Macromedia Director• describe parts of a presentation and arrange t• Scripting Language LINGO• may

• generate standalone application• export several formats

• HTML• Java• Shockwave

Page 16: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

fficiency

hes

te and fix

12appendixB-progr.fm 16 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

2. Programming Languages

Requirements

Generally should support:• Code Reuse• Extensability• Maintainability• Robustness

Especially for Multimedia Applications:• Efficient Handling of Large Amount of Data / E• Realtime Support• Synchronisation Support

Conclusion:• we can! use modern Object Oriented Approac• inherit• extend and• reuse

• rather than develop from scratch or copy, pas

Page 17: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

C++)

12appendixB-progr.fm 17 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Object Orientation - Basics

Termini:• Object / Class• Instance• Interface

Basic OO features:• Inheritance• Polymorphism• Dynamic (late) Binding• Communication using Messages

support differs in various languages (e.g.

Those together fulfill the real OO goals:• Abstraction• Encapsulation• Comprehensiveness• Reusibility

Page 18: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

for settop boxes - project

rities to smalltalk

nt (exceptions)

ory allocation

me

12appendixB-progr.fm 18 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Java

High-level programming language (Sun, initiallyOAK)

• Object-oriented• C++-like (easy to learn), but also strong simila

• Type safety• promoted by compiler and runtime environme• but not completely forced

• Inherent language support for Multi-Threading• No pointer mechanisms• Garbage collection instead of user driven mem• No system dependent features

• data types have fixed sizes• Security mechanisms

• restricted language features• various checks at compile as well as on run-ti

• Platform-independence by means of bytecode• allows for Applet-Code loadable via network

• comes with a powerful class library

Page 19: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

portable

ve look and feel)ouse clicksars

clips

ation, audio

12appendixB-progr.fm 19 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Java - Functionality

Rich set of Predefined Classes• java.awt

• abstract window toolkit• hides basic mechanisms -> makes programs• functions e.g.:

• access to underlying window system (nati• reaction upon events like keystrokes or m• drawing of lines / figures / buttons / scrollb• image manipulation

• java.applet• basic framework for applets• e.g. get and display WWW pages, play audio• more infos in lecture on Documents / WWW

• Networking (Server and Multicast support)• Display of various media: text, graphics, anim

===> Java Media Frame (JMF)===> Java Telephony API (JTAPI)...

Page 20: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

JIT)

ative Interface - JNI)sor)

nt

uter !”

12appendixB-progr.fm 20 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Java - Resume

What about performance?• Runtime Optimization (Just in Time Compiling• Compilation to machine specific target code• Mechanisms to integrate native Code (Java N• Hardware implementations (PicoJava Proces

also important driving innovation in developme• from retrival-only WWW• towards an “Object Web”

Java is:• not just a another programming language• but a large step towards the vision

“The network is the comp

Page 21: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

) may be in conflict with

12appendixB-progr.fm 21 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

3. Distributed Computing

Initial Situation and Requirements

• Heterogenity• Hardware• Operating Systems• Network• Programming Language

• General strong need for:• Access Transparency• Location Transparency• Migration Transparency• Replication Transparency• Concurrency Transparency• Failure Transparency• Performance Transparency• Scalability Transparency

Note:• Multimedia Requierements (Performance, QoS

some of those

Page 22: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

d ...

12appendixB-progr.fm 22 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

Middleware

Classification:• Message Oriented Middleware

• IBM MQ, DEC Message Queue, NCR Top En• Transaction Processing Middleware

• IBM CICS, BEA Tuxedo• Object Oriented Middleware

• Open Management Group (OMG) CORBA• Microsoft DCOM• Java / RMI

Different approaches also converging

Page 23: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

by means of Object

ommon Facilities

r

12appendixB-progr.fm 23 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

CORBA• extends Remote Procedure Call (RPC) model

Oriented Middleware Concept

CApplication Objects

Object Services

Object Request Broke

Page 24: Programmingcs778/ralf/12appendixB-progr.pdf ·   ... Germany,max@informatik.tu-darmstadt.deFax ... • set of controls is player ...

ystem or via network

MI)

Clientother

Applicationother Language

Language

ORB

12appendixB-progr.fm 24 20.June.01

Contents

Contents

htt

p:/

/ww

w.k

om

.e-t

ech

nik

.tu

-da

rmst

adt

.de

htt

p:/

/ww

w.t

k.in

form

atik

.tu

-da

rmst

adt

.de

©R

.S

tein

me

tz,

M.

hlh

äu

ser

CORBA and Java

Implementation• 100 percent pure Java ORBs loaded from files• starting with JDK1.2, CORBA is a integral part

For Java-only Distributed Systems• consider using Remote Method Invocation (R

Java ORBJava ORB

ORB

ServerApplicationJava

ClientJava-

Application

Client

Java-Applet