Optimal wire ordering and spacing in low power semiconductor design Abstract A key issue for high integration circuit design in the semiconductor industry are power constraints that stem from the need for heat removal and reliability or battery lifetime limitations. As the power consumption depends heavily on the capacitances between adjacent wires, determining the optimal ordering and spacing of parallel wires is an important issue in the design of low power chips.As it turns out, optimal wire spacing is a convex optimization problem whereas the optimal wire ordering is combinatorial in nature, containing (a special class of) the Minimum Hamilton Path problem. While the latter is N P-hard in general, the present paper provides an O (N log N ) algorithm that solves the coupled ordering and spacing problem for N parallel wires to optimality. One of the key issues of miniaturization in integrated circuit design are power constraints that result from the need of heat reduction and reliability or battery lifetime limitations. As the power consumption depends heavily on the switching capacitances between adjacent wires, determining the optimal ordering and spacing of parallel wires according to their switching frequencies is a key issue in the design of low power chips.. Wire ordering and spacing according to various objectives have a long history in electronic design automation; see [9, 10] . Wire ordering, although with different design objectives, appears in [17, 7] and also (in a more limited context) in [6] . Wire spacing with respect to switching activities was first considered in [8] . Due to the apparent intrinsic complexity of the problem, most known algorithms for this and related problems are based on heuristics or exhaustive search techniques, an overview can be found in [18] . The present paper derives an efficient rigorous algorithm for power optimal wire ordering and spacing under distance requirements as side constraints.. We begin by presenting and analyzing a mathematical model that captures all major aspects of the wire ordering and spacing problem in integrated circuit design. As the first step towards the algorithm we then consider the wire spacing problem separately. As it turns out, the underlying convex optimization problem can essentially be solved analytically. This can be utilized to relate the combined wire placement problem to a specific kind of Minimum Hamilton Path (MHP) (or Traveling Salesman, TSP) Problem. While the general MHP is notoriously N P-hard, our algorithm for the combined ordering and spacing problem for N parallel wires relies on strong new structural results and will be shown to run in total worst-case O (N log N ) time.. The paper is organized as follows. Section 2 contains some relevant background information on low power semiconductor design to motivate and justify the mathematical model for the wire ordering and spacing problem. The precise mathematical problem and the main result are stated in Section 3. Section 4 deals with the wire spacing problem, solves the underlying convex optimization problem and derives an efficient algorithm for that problem. Based on these results, Section 5 will then derive structural combinatorial results that can be used to relate the combined wire ordering and spacing problem to the solution of a certain class of Minimum Hamilton Path problems, resulting in the asserted O (N log N ) algorithm. Section 6 contains some final remarks.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O


An

Automated

Analysis

Methodology

to

Detect

Inconsistencies

in

Web

Services

with

WSDL

Interfaces

Web

Service

Definition

Language

(WSDL)

is

being

increasingly

used

to

specify

web

service

interfaces.

Specifications

of

this

type,

however,

are

often

incomplete

or

imprecise,

which

can

create

difficulties

for

client

developers

who

rely

on

the

WSDL

files.

To

address

this

problem

a

semi-automated

methodology

that

probes

a

web

service

with

semi-automatically

generated

inputs

and

analyzes

the

resulting

outputs

is

presented.

The

results

of

the

analysis

are

compared

to

the

original

WSDL

file

and

differences

between

the

observed

behavior

of

the

service

and

the

WSDL

specifications

are

reported

to

the

user.

The

methodology

is

applied

in

two

case

studies

involving

two

popular

commercial

(Amazon

and

eBay)

web

services.

The

results

show

that

the

methodology

can

scale,

and

that

it

can

uncover

problems

in

the

WSDL

files

that

may

impact

a

large

number

of

clients.

Many

companies

provide

access

to

their

services

and

products

through

web

services.

For

example,

a

wide

variety

of

businesses

that

provide

services

to

other

businesses,

such

as

shipping

companies

and

credit

card

processing

organizations,

provide

a

web

service

for

accessing

those

services.

Further,

some

businesses

that

target

consumers,

such

as

Amazon

or

eBay,

also

provide

access

to

their

products

or

services

via

web

services.

By

doing

so,

these

companies

allow

outside

parties

to

utilize

or

resell

their

services

or

products.

According

to

the

companies

that

provide

these

services,

web

services

are

a

significant

part

of

their

business.

For

example,

eBay

claims

that

third

party

applications

account

for

over

of

their

listings

and

Amazon

claims

that

over

developers,

start-ups,

and

Fortune

companies

use

their

technologies

Typically,

Web

Service

Definition

Language

(WSDL)

files

are

used

to

provide

a

partial

specification

of

the

interface

to

a

web

service

These

specifications

focus

on

the

data-types

of

parameters

and

returned

values

of

the

application.

Developers

of

clients

to

the

web

services

are

expected

to

use

the

information

in

the

WSDL

and

in

informal

documentation

to

build

applications

that

make

use

of

the

web

services.

However,

the

WSDL

files

and

informal

documentation

often

contain

errors

or

are

imprecise.

For

example,

an

early

version

of

what

became

Amazon's

Advertising

API

used

strings

for

every

element,

including

those

such

as

quantities

or

prices

that

could

be

more

precisely

specified

as

numeric

types.

Additionally,

recent

versions

of

eBay's

Trading

Web

Service

include

a

number

of

elements

where

the

informal

documentation

and

the

WSDL

file

disagree

on

whether

they

are

required

or

not,

indicating

that

one

of

these

sources

of

information

is

incorrect..

In

order

to

develop

robust

and

reliable

clients

for

web

services,

users

of

these

services

need

accurate

information

about

the

expected

inputs.

However,

the

client

developers

do

not

have

access

to

the

underlying

implementation

of

the

web

service,

so

identifying

problems

in

the

WSDL

or

documentation

can

be

difficult.

Therefore

an

existing

analysis

of

web

application

interfaces

has

been

extended

to

find

anomalies

in

the

WSDL

files

describing

web

services..

Prior

work

presented

the

WebAppSleuth

methodology

for

characterizing

specialized

search

engines,

web

applications

with

a

single

HTML

form

and

corresponding

form

handler

that

allow

users

to

perform

web-based

queries

on

structured

data

This

earlier

version

of

WebAppSleuth

performed

an

automated

analysis

that

began

by

examining

the

interface

described

by

the

HTML

search

form.

It

semiautomatically

constructed

and

submitted

inputs

to

the

form

handler,

and

analyzed

the

responses

to

infer

properties

that

describe

the

relationships

between

input

variables

and

values

and

the

corresponding

responses.

These

inferred

properties

were

then

examined

to

identify

problems

in

the

analyzed

web

application.

WebAppSleuth

was

applied

to

six

production

search

engines

and

found

anomalous

behavior

on

five

of

these

applications..

This

work

provides

two

major

contributions

beyond

the

prior

work

on

WebAppSleuth..

WebAppSleuth

has

been

extended

to

work

with

web

applications

outside

of

the

domain

of

specialized

search

engines.

Specifically,

WebAppSleuth

now

supports

any

web

service

described

by

a

standard

WSDL

file.

To

support

arbitrary

web

services,

WebAppSleuth's

request

generation

and

submission

components

were

modified

and

new

property

inference

algorithms

were

created.

The

inferred

properties

are

then

compared

with

the

WSDL

specification

to

semi-automatically

identify

problems

in

the

WSDL

specification

or

the

web

service..

WebAppSleuth

is

applied

to

two

commercial

web

services,

Amazon's

Advertising

web

service

and

eBay's

Trading

web

service.

These

two

web

services

are

significantly

more

complex

than

the

applications

used

in

prior

work,

supporting

and

operations

respectively

instead

of

the

single

search

operation

supported

by

specialized

search

engines.

A

variety

of

inconsistencies

between

the

WSDL

specifications

and

the

behavior

of

the

web

services

are

presented..

In

addition

to

helping

client

developers

understand

a

web

service,

the

information

provided

by

WebAppSleuth

can

be

used

for

other

applications.

For

example,

the

problems

identified

by

WebAppSleuth

can

be

used

to

modify

the

WSDL

specifications,

which

will

allow

tools

such

as

Sun's

JAX-WS

or

Apache's

Axis

to

produce

libraries

for

accessing

web

services

with

better

input

validation

and

more

efficient

parsing

of

responses.

Better

WSDL

specifications

can

also

help

engineers

understand

and

maintain

web

services

by

identifying

previously

undocumented

constraints

on

the

inputs

or

outputs

of

the

service

or

by

identifying

potential

problems

in

the

service

that

should

be

resolved..

The

remainder

of

this

paper

presents

this

work,

as

follows.

Section

provides

background

on

web

services

and

WSDL.

Section

presents

the

methodology,

providing

algorithms

and

discussion

of

their

operation.

Section

presents

the

case

studies

and

results.

Section

provides

details

about

related

work,

and

Section

concludes

and

discusses

future

work.

This

works

presents

WebAppSleuth,

a

methodology

for

automatically

identifying

inconsistencies

in

web

services

with

WSDL

interfaces.

WebAppSleuth

collects

static

information

from

the

WSDL

file

to

drive

a

request

generation

process,

and

automatically

submits

large

numbers

of

the

generated

requests

to

the

web

service

to

collect

and

analyze

information

about

its

behavior.

WebAppSleuth

is

applied

to

two

commercial

web

services..

The

evaluation

of

WebAppSleuth

shows

that

it

can

successfully

generate

large

numbers

of

requests

for

production

web

services.

Additionally,

it

was

able

to

identify

several

cases

where

the

behavior

of

the

Amazon

and

eBay

web

services

differed

from

what

might

be

expected

based

the

WSDL

description

of

the

service.

The

types

of

inferences

produced

by

WebAppSleuth

could

be

used

by

client

developers

to

help

them

identify

potential

issues

within

the

service

that

could

affect

the

development

of

their

client.

Additionally,

the

information

provided

by

WebAppSleuth

could

also

be

reported

back

to

the

service

developers

who

could

use

it

to

improve

the

quality

of

the

web

service

or

the

WSDL

description

of

the

service

(as

was

attempted

with

differing

degrees

of

success

with

both

Amazon

and

eBay)..

Future

work

will

proceed

along

three

major

branches

of

inquiry.

First,

there

are

several

plans

for

improving

the

methodology

itself,

including

the

development

of

better

input

generation

techniques

and

additional

inferred

improvements

to

the

WSDL

files

or

underlying

web

services.

Second,

additional

studies

of

the

methodology

are

needed,

both

to

evaluate

the

effectiveness

of

the

identified

inconsistencies

and

to

explore

its

generalizability.

Third,

WebAppSleuth

is

an

instance

of

probing

analysis,

a

new

class

of

black

box

dynamic

program

analysis

technique

that

probes

a

component

by

executing

it

using

a

variety

of

automatically

generated

inputs

and

analyzing

the

resulting

outputs.

Probing

analysis

requires

only

a

partial

description

of

the

interface

of

the

component

being

analyzed

(used

to

generate

inputs)

and

the

ability

to

execute

the

component

with

those

inputs.

Significantly,

probing

analysis

does

not

need

access

to

the

source

or

executable

code

being

analyzed,

something

which

is

generally

not

available

to

users

of

web

services.

Future

work

will

further

explore

and

defined

this

new

class

of

program

analysis

techniques.

This

study

shows

that

the

WebAppSleuth

methodology

can

be

successfully

applied

to

non-trivial

production

web

services.

For

these

services

a

number

of

anomalies

were

found,

both

in

the

specified

minOccurs

values

and

in

the

specified

types

for

the

elements.

For

the

Amazon

service

a

developer

was

contacted

who

verified

that

for

at

least

one

of

the

identified

cases

where

an

element

was

defined

as

string,

it

should

have

been

defined

as

a

boolean

and

who

explained

the

rationale

for

the

number

of

cases

where

the

minOccurs

was

on

required

elements..

(A

similar

attempt

to

contact

the

developers

at

eBay

did

not

elicit

a

response)..

The

anomalies

in

the

required

versus

optional

state

of

elements

primarily

consisted

of

elements

identified

as

optional

in

the

documentation

that

were

in

fact

required.

Most

identified

cases

of

this

problem

occurred

when

an

element

was

optional

with

respect

to

the

entire

request,

but

it

was

required

if

its

enclosing

element

was

present.

This

situation

can

be

difficult

to

understand

and

to

concisely

express

in

documentation..

The

most

useful

element

type

anomalies

found

were

the

cases

where

an

element

was

defined

as

a

string

when

it

should

have

been

a

numeric

or

boolean

type.

Even

in

cases

where

it

would

not

necessarily

be

a

good

idea

to

change

the

declared

type

(e.g.,

for

most

ids

or

for

zip

codes)

the

additional

knowledge

about

the

expected

types

of

values

for

a

string

(e.g.,

that

it

should

consist

entirely

of

digits)

can

provide

useful

information

to

the

client

developer

that

may

not

have

been

explicitly

stated

in

the

documentation.

Within

the

numeric

types,

the

most

useful

information

WebAppSleuth

was

able

to

identify

was

whether

an

element

value

could

only

be

positive,

non-negative,

or

unconstrained.

While

these

types

of

constraints

are

often

included

in

the

documentation

of

the

service,

they

could

also

be

readily

added

to

the

WSDL

description

for

the

service..

This

study

also

shows

several

limitations

of

the

methodology,

in

particular

in

the

request

generation

methodology.

Random

request

generation

had

difficulty

producing

inputs

to

identify

conditionally

required

elements

and

valid

non-zero

values

for

some

numeric

elements.

A

more

systematic

approach

to

request

generation,

such

as

that

used

in

WS-TAXI

could

be

used

instead

of

or

in

conjunction

with

the

current

random

approach

to

increase

the

likelihood

of

covering

these

corner

cases..

Additionally,

the

fact

that

even

with

a

million

requests,

there

were

operations

within

these

services

for

which

no

requests

were

generated

indicates

a

weakness

in

relying

on

the

previously

submitted

requests

to

get

input

values

for

these

operations.

This

could

be

mitigated

by

prompting

the

user

for

input

values

for

additional

simple

elements

if,

after

submitting

a

number

of

requests,

WebAppSleuth

is

still

missing

inputs

for

some

simple

elements..

There

are

also

some

threats

to

the

validity

of

this

evaluation.

First,

the

choice

of

objects

may

not

be

characteristic

of

other

web

services.

To

mitigate

this,

two

production

web

services

with

sizable

user

bases

were

chosen.

However,

both

of

the

services

are

targeted

toward

use

by

applications

intended

for

general

consumers

for

shopping

(and,

in

the

case

of

eBay,

selling)

merchandise.

Services

intended

for

different

types

of

applications

(e.g.,

business

to

business

applications)

and

services

in

other

domains

(e.g.,

stock

price

tracking)

may

have

different

types

or

numbers

of

issues.

Second,

during

the

study

there

were

several

points

where

choices

about

some

property

of

the

methodology

had

to

be

made,

most

importantly

in

the

choice

of

input

values

for

simple

elements.

Individuals

with

more

or

less

knowledge

about

the

services

being

considered

or

with

less

knowledge

about

the

operation

of

WebAppSleuth

might

have

made

different

choices.

The

first

step

of

the

WebAppSleuth

methodology

is

the

static

generation

of

the

relationship

between

input

and

output

values

of

various

WSDL

operations;

this

is

similar

to

the

Jungloids

described

by

Mandelin

et

al.

or

the

relationships

found

as

the

first

step

of

the

WSDL-based

test

generation

strategy

proposed

by

Bai

et

al.

The

request

generation

strategy

is

similar

to

random

or

exhaustive

test

generation

strategies

proposed

for

object-oriented

applications

The

primary

differences

between

these

methods

and

this

work

is

the

domain

(object-oriented

applications

versus

web

services)

and

the

intended

use

of

the

inputs

(testing

versus

generating

inferences).

One

methodology

explicitly

uses

automatically

generated

inputs

to

drive

the

process

of

generating

properties.

This

methodology

uses

a

form

of

bounded

exhaustive

generation

of

expressions

consisting

of

sequences

of

method

calls

on

Java

objects.

All

of

these

methodologies

that

perform

input

generation

for

object-oriented

applications

are

implemented

for

Java

and

take

advantage

of

Java's

type

system

to

ease

the

problem

of

generating

wellformed

inputs.

The

XML

schema

based

types

used

in

WSDL

files

are

less

rigorously

defined,

making

the

problem

of

relating

the

types

of

inputs

and

outputs

more

difficult..

There

has

also

been

some

work

on

systematically

generating

inputs

for

applications,

such

as

web

services,

that

use

XML

inputs.

XPT

uses

a

form

of

bounded

exhaustive

generation

to

generate

a

wide

variety

of

XML

documents

from

an

XML

schema

and

then

uses

heuristics

based

on

category-partition

testing

to

reduce

the

number

of

test

cases

WS-TAXI

uses

the

XPT

approach

to

generate

test

inputs

for

web

services

with

WSDL

descriptions

It

would

be

possible

to

adapt

WS-TAXI

for

use

in

the

WebAppSleuth

methodology

at

the

level

of

determining

the

structure

of

the

XML

requests,

but

this

would

need

to

be

modified

to

account

for

changing

available

input

values

at

each

step..

There

has

been

a

great

deal

of

work

on

techniques

for

dynamically

inferring

properties

about

programs

These

techniques

work

by

instrumenting

the

program

being

examined.

They

then

execute

the

program

under

some

test

suite,

collecting

traces

of

program

events

and

states

of

interest.

These

traces

are

analyzed

to

produce

a

set

of

properties.

These

properties

can

be

in

the

form

of

invariants

on

the

states

of

variables

(e.g.,

variable

v

temporal

relationships

between

events

(e.g.,

an

open

event

must

be

followed

by

a

close

event)

or

even

a

state

transition

diagram

describing

the

changes

to

interior

states

in

the

component.

These

methodologies

differ

from

the

WebAppSleuth

approach

in

two

major

aspects.

First,

most

assume

that

an

engineer

can

instrument

the

code

they

are

interested

in

examining

(one

exception

to

this

is

Perracotta

which

has

been

applied

to

detecting

temporal

properties

in

the

Windows

Kernel

APIs

by

instrumenting

the

application

code

that

uses

those

APIs

rather

than

the

API

code

itself

Since

WebAppSleuth

works

with

web

services

and

applications

that

are

accessed

via

a

network,

it

is

assumed

that

the

system

can

be

instrumented,

instead

only

the

inputs

and

outputs

are

available.

Second,

all

of

these

methods

(except

Henkel

et

al.

require

that

there

be

an

existing

set

of

executable

inputs.

The

WebAppSleuth

methodology

generates

executable

inputs

automatically

from

simple

input

values

provided

by

the

user

or

mined

from

the

WSDL

file..

Ernst

et

al..

present

a

dynamic

approach

for

the

detection

of

substitutable

and

composable

web

services.

Their

approach

is

similar

to

WebAppSleuth

in

that

it

submits

requests

to

the

targeted

web

services

and

analyzes

the

responses

to

the

requests

to

perform

its

analysis.

However,

like

most

of

the

work

in

dynamically

inferring

properties

about

programs,

it

assumes

a

preexisting

source

of

executable

inputs.

Additionally,

the

inferred

properties

(substitutability

and

composability)

are

different

from

the

properties

inferred

by

WebAppSleuth

(anomalies

in

the

WSDL

files)..

Halfond

and

Orso

have

developed

a

static

approach

to

automatically

discover

the

interfaces

for

web

applications

Their

approach

statically

analyzes

the

Java

servlet

code

for

a

web

application

to

discover

properties

such

as

required

and

optional

parameters

(similar

to

our

number

of

occurrences

property),

related

groups

of

parameters

(similar

to

the

implication

properties

defined

in

Fisher

et

al.

and

the

types

of

parameters

(similar

to

WebAppSleuth's

type

properties).

Unlike

WebAppSleuth,

their

approach

is

entirely

static,

and,

therefore,

requires

the

source

code

for

the

application.

It

has

only

been

implemented

for

Java-based

web

applications..

Previous

work

on

WebAppSleuth

focused

on

specialized

search

engines,

a

limited

subset

of

web

applications

that

allow

searches

over

structured

data

using

structured

inputs

(e.g.,

a

flight

search

that

takes

departure

and

arrival

dates

and

locations

and

returns

matching

flights).

The

prior

work

presented

a

variety

of

request

generation

techniques,

including

random,

covering

array

based

and

feedback

based

techniques.

It

also

presented

various

property

inference

algorithms,

including

required

and

optional

variables,

ranges

of

values

for

variables,

and

descriptions

of

the

relationships

between

different

variables

and

values

for

variables.

WebAppSleuth

was

applied

to

six

different

live,

production

search

applications,

and

anomalous

behaviors

were

found

in

five

of

those

applications.

In

this

work,

WebAppSleuth

is

extended

to

cover

a

wider

variety

of

web-based

applications,

specifically

arbitrary

web

services

described

by

WSDL

files.

In

this

work,

new

request

generation

and

inference

algorithms

are

developed

and

other

existing

components

are

adapted

to

support

web

services.

A

web

service

consists

of

a

set

of

operations.

A

client

executes

a

web

service

by

constructing

a

request

message

for

a

particular

operation

and

sending

that

message

to

the

server.

The

server

then

responds

with

a

response

message

that

is

parsed

by

the

client

to

extract

the

information

that

it

considers

important.

The

Web

Service

Definition

Language

(WSDL)

provides

a

standard

for

defining

the

set

of

operations

and

the

structure

of

the

input

and

output

messages

for

these

operations.

Figure

is

a

partial

WSDL

file

describing

an

example

bookstore

web

service

that

conforms

to

the

WSDL

standard

This

service

allows

client

applications

to

search

for

books,

login

with

an

existing

username

and

password,

add

books

to

a

shopping

cart,

and

change

the

quantities

of

items

already

in

the

cart..

A

WSDL

file

consists

of

six

kinds

of

definitions:

types,

messages,

port

types,

bindings,

ports,

and

services.

Together

the

type

(lines

and

message

definitions

(omitted)

describe

the

overall

structure

of

request

and

response

messages.

The

port

type

definition

(lines

describes

a

set

of

abstract

operations

and

identifies

the

messages

that

are

used

for

the

input

and

output

of

each

operation,

while

the

bindings

(omitted)

define

the

concrete

protocol

for

the

abstract

operations

of

a

port

type.

A

port

definition

(omitted)

specifies

the

address

for

a

particular

binding

and

a

service

definition

is

used

to

aggregate

a

set

of

related

ports..

Although

all

of

these

definitions

are

important

when

describing

a

web

service,

in

this

work

the

focus

is

on

type

definitions

as

they

are

the

largest

and

most

complex

part

of

the

document.

For

example,

the

WSDL

file

describing

Amazon's

Advertising

service

is

lines

long,

with

a

type

definition

that

<definitions

name="Bookstore">

<types><schema>

<simpleType

name="Category"><restriction

base="string">

<enumeration

value="Databases"/>

<enumeration

value="Web

Design"

<enumeration

value="Programming"

</restriction></simpleType>

<element

name="StartSessionResponse"><complexType><all>

<element

name="sessionId"

type="string"

</all></complexType></element>

<element

name="SearchRequest"><complexType><all>

<element

name="sessionId"

type="string"

<element

name="category"

type="Category"

<element

name="name"

type="string"

<element

name="priceMin"

type="decimal"

<element

name="priceMax"

type="decimal"

</all></complexType></element>

lines

omitted)

<element

name="AddToCartRequest"><complexType><all>

<element

name="sessionId"

type="string"

<element

name="itemId"

type="integer"

<element

name="quantity"

type="integer"

</all></complexType></element>

lines

omitted)

</schema></types>

lines

omitted)

<portType

name="BookstoreAPI">

<operation

name="StartSession">

<output

message="StartSessionResponse"

</operation>

<operation

name="Search">

<input

message="SearchRequest"

<output

message="SearchResponse"

</operation>

lines

omitted)

</portType>

lines

omitted)

</definitions>

In

addition

to

constituting

the

largest

portion

of

most

WSDL

documents,

type

definitions

are

often

very

complex,

with

highly

nested

structures

and

complex

relationships

between

different

parts

of

the

Originally

downloaded

from

Available

by

request

from

the

first

author.

definition.

Although

the

WSDL

specification

does

not

specify

a

single

standard

notation

for

defining

the

types

in

the

document,

XML

schemas

have

become

the

de

facto

standard.

An

XML

schema

defines

a

set

of

XML

elements

and

describes

the

types

of

the

XML

elements

using

simple

and

complex

type

definitions

A

simple

type

represents

a

single

value

(similar

to

a

primitive

type

in

most

programming

languages),

while

a

complex

type

describes

a

composite

type

consisting

of

multiple

nested

XML

elements

and/or

attributes

(similar

to

a

structure

or

array

depending

on

the

min-and

maxOccurs

of

the

contained

elements).

For

example,

the

sample

WSDL

file

in

Figure

describes

an

element,

SearchRequest,

that

has

a

complex

type

with

nested

elements

sessionId,

category,

name,

priceMin,

and

priceMax

(lines

The

type

of

the

nested

element

category

(line

is

defined

as

the

simple

type

Category,

which

is

a

string

with

possible

values

"Databases",

"Web

Design",

and

"Programming"

(lines

and

can

occur

as

few

as

zero

times

(the

minOccurs

attribute)

and

at

most

one

time

(the

default

value

for

the

absent

maxOccurs

attribute)..

Due

to

their

size

and

complexity,

type

definitions

often

contain

errors

or

are

imprecise.

These

errors

and

sources

of

imprecision

can

directly

impact

the

quality

of

code

generated

from

the

WSDL

file

or

can

mislead

developers

relying

on

the

WSDL

file

to

understand

the

web

service.

For

instance,

in

the

example

WSDL

file,

the

quantity

element

of

the

AddToCartRequest

should

be

defined

as

the

more

precise

type

positiveInteger

rather

than

the

type

integer

(line

Another

common

problem

in

the

type

definitions

is

incorrect

or

imprecise

minOccurs

attributes

on

elements

(e.g.,

in

many

places

in

both

the

Amazon

and

eBay

WSDL

files

mentioned

above,

elements

defined

as

required

by

other

documentation,

implying

minOccurs

should

be

have

In

general,

client

applications

interact

with

a

web

service

through

a

sequence

of

operations.

For

the

Bookstore

service,

the

expected

first

operation

is

a

StartSession

request

to

get

a

sessionId.

This

sessionId

is

then

used

in

later

requests

so

that

the

service

can

tie

together

a

sequence

of

related

requests.

This

work

builds

on

the

WebAppSleuth

methodology

for

characterizing

web

application

interfaces

The

previous

version

of

WebAppSleuth

targeted

a

class

of

web

applications

labeled

specialized

search

engines

(a

search

engine

for

structured

data

with

a

complex

set

of

inputs,

e.g.,

a

flight

search

that

takes

departure

and

arrival

dates

and

locations

and

returns

matching

flights).

In

this

work

WebAppSleuth

is

extended

to

support

arbitrary

web

services

described

by

WSDL

files.

To

do

this,

a

new

request

generation

methodology

that

supports

the

more

complex

inputs

possible

for

web

services

and

that

allows

results

from

earlier

requests

to

be

used

in

later

requests

is

developed.

Additionally,

a

new

class

of

properties,

the

type

of

simple

elements,

is

added.

Figure

provides

a

high-level

view

of

the

WebAppSleuth

methodology.

The

WebAppSleuth

process

consists

of

four

stages:.

analysis

of

the

WSDL

file

and

solicitation

of

user

input

to

determine

input

values

for

simple

elements

(Analyzer);

generation

of

requests,

including

generation

of

the

structure

of

the

input

messages

for

each

request

and

assignment

of

input

values

to

the

simple

elements

in

the

request

(Generator

and

Chooser);

The

following

sections

provide

further

details

about

these

stages.

O O O O O O O O B I O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B I O O O B O O O O O O O B O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Computation of bounds for transient measures of large rewarded Markov models using regenerative randomization In this paper we generalize a method (called regenerative randomization) for the transient solution of continuous time Markov models. The generalized method allows to compute two transient measures (the expected transient reward rate and the expected averaged reward rate) for rewarded continuous time Markov models with a structure covering bounding models which are useful when a complete, exact model has unmanageable size. The method has the same good properties as the well-known (standard) randomization method: numerical stability, well-controlled computation error, and ability to specify the computation error in advance, and, for large enough models and long enough times, is signiÿcantly faster than the standard randomization method. The method requires the selection of a regenerative state and its performance depends on that selection. For a class of models, class C , including typical failure=repair models with exponential failure and repair time distributions and repair in every state with failed components, a natural selection for the regenerative state exists, and results are available assessing approximately the performance of the method for that natural selection in terms of "visible" model characteristics. Those results can be used to anticipate when the method can be expected to be signiÿcantly faster than standard randomization for models in that class. The potentially superior e ciency of the regenerative randomization method compared to standard randomization for models not in class C is illustrated using a large performability model of a fault-tolerant multiprocessor system.Rewarded continuous time Markov models are widely used for performance, dependability and performability analysis of computer and telecommunication systems. Realistic modeling of such systems usually yields Markov models whose size exceeds the available memory resources. An approach to deal with the "largeness" problem is the use of bounding Markov models. However, even those bounding models can have very * Tel.: +34-3-4016652; fax: +34-3-4017785.E-mail address: carrasco@eel.upc.es (J.A. Carrasco). so that it can be used for the computation of bounds for the expected transient reward rate and the expected averaged reward rate transient measures with general reward rate structures including arbitrary non-negative reward rates associated with the states of the model. Examples of such measures are the unavailability of a fault-tolerant system at time t and the expected interval unavailability of a fault-tolerant system at time t. The method has the same good properties as the well-known standard randomization (also called uniformization) method: numerical stability, well-controlled computation error, and ability to specify the computation error in advance, and, for large models and long mission times, can be signiÿcantly faster than that method. Furthermore, for a class of models, class C , including typical failure=repair models with exponential failure and repair time distributions and repair in every state with failed components, theoretical results are available assessing the performance of the method in terms of "visible" model characteristics. Those results can be used to anticipate when the generalized regenerative randomization method can be expected to be competitive for class C models. The generalized regenerative randomization method allows a numerically stable, with well-controlled and speciÿable-in-advance error, solution of some large rewarded continuous time Markov models in a ordable CPU times. ? Homogeneous continuous time Markov chains (CTMCs) are frequently used for performance, dependability and performability modeling. The transient analysis of these models is usually signiÿcantly more costly than the steady-state analysis, and very costly in absolute terms when the CTMC is large. This makes the development of e cient transient analysis techniques for CTMCs a research topic of great interest. Commonly used methods are ODE (ordinary di erential equation) solvers and randomization. Good recent reviews of these methods with new results can be found in [1] [2] [3] . The randomization method (also called uniformization) is attractive because of its excellent numerical stability and the facts that the computation error is well-controlled and can be speciÿed in advance. 1 It was ÿrst proposed by Grassman [5] and has been further developed by Gross and Miller [6] . The method is also o ered by the well-known performance, dependability and performability modeling packages [7] [8] [9] [10] . The randomization method is based on the following result [11, Theorem 4.19] . Let X = {X (t); t ¿ 0} be a CTMC with ÿnite state space ; let i; j ; i; j ∈ ; i = j be the transition rate of X from state i to state j, and let i = j∈ −{i} i; j ; i ∈ be the output rate of state i. Consider any ¿ max i∈ i and deÿne the homogeneous discrete time Markov chain (DTMC)X = {X k ; k = 0; 1; 2; : : :} with same state space and initial probability distribution as X and transition probabilities P[X k+1 = j |X k = i] = P i; j = i; j = ; i = j; P[X k+1 = i |X k = i] = P i; i = 1 − i = .. Let Q = {Q(t); t ¿ 0} be a Poisson process with arrival rate (P[Q(t) = k] = e − t ( t) k =k!) independent ofX . Then, X = {X (t); t ¿ 0} is probabilistically identical to {X Q(t) ; t ¿ 0} (we call this the randomization result). The DTMCX is called the randomized DTMC of X with rate . The CTMC X is called the derandomized CTMC ofX with rate .. Assume that a reward rate structure, r i ¿ 0; i ∈ is deÿned over the state space of X . The quantity r i has the meaning of "rate" at which reward is earned while X is in state i. Then, two useful measures to consider are the expected transient reward rate ETRR(t)=E[r X (t) ] and the expected averaged reward rate EARR(t) = E[ t 0 r X ( ) d =t]. As an example of instances of the generic ETRR(t) and EARR(t) measures, consider a CTMC modeling a fault-tolerant system which can be up or down, and assume that a reward rate 0 is assigned to the states in which the system is up and a reward rate 1 is assigned to the states in which the system is down. Then, ETRR(t) would be the unavailability of the system at time t and EARR(t) would be the expected interval unavailability at time t (i.e., the expected value of the fraction of time that the system is down in the interval [0; t]).. Using the facts that X = {X (t); t ¿ 0} and {X Q(t) ; t ¿ 0} are probabilistically identical and that X and Q are independent, we can express ETRR(t) in terms of the transient regime ofX as. with d(k) = i∈ r i P[X k = i]. Denoting by q(k) = (P[X k = i]) i∈ the probability row vector ofX at step k, q(k); k ¿ 0 can be obtained from q(0) using q(k + 1) = q(k)P;. where P = (P i; j ) i; j∈ is the transition probability matrix ofX . In a practical implementation of the randomization method, an approximate value for ETRR(t), ETRR a N (t), is obtained by truncating the series (1) so that N steps have to be given toX :. and, taking into account that d(k) 6 r max = max i∈ r i , the error is upper bounded as. A usual accuracy requirement is to limit the error in ETRR(t) to a value 6 . Then, N is chosen as. For EARR(t), noting that EARR(t) = t 0 ETRR( ) d =t and using (1) ,. ∞ l=k+1 e − t ( t) l =l! (which follows from [12, Formula 14 .512] and ∞ l=0 e − t ( t) l =l! = 1), we get. In a practical implementation, an approximate value for EARR(t), EARR a N (t), can be obtained by truncating both series so that N steps have to be given toX as and, taking into account d(k) 6 r max , the error can be upper bounded as. Being the absolute error with which EARR(t) has to be computed, N can be chosen as. Stable and e cient computation of the Poisson probabilities e − t ( t) k =k! avoiding over ows and intermediate under ows is a delicate issue and several alternatives have been proposed [13] [14] [15] [16] . Our implementation of both standard randomization and the generalized regenerative randomization method use the method described in [15, pp. 1028-1029 ] (see also [17] ), which has good numerical stability.. For large models, the computational cost of the randomization method is roughly due to the N vector-matrix multiplications (2) . The truncation parameter N increases with t and, for that reason, is usually taken equal to max i∈ i . Using the well-known result [18] that Q(t) has, for t → ∞, an asymptotic normal distribution with mean and variance t, it is easy to realize that, for large t and 1, the required N will be ≈ t. If one is interested in solving the model for values of t for which t is very large, the randomization method will be highly ine cient.. The randomization result can also be exploited to develop methods to compute more complex measures such as the distribution of the interval availability [19 -21] and the performability [22] [23] [24] [25] . The performance of those methods also degrades as t increases.. Several variants of the (standard) randomization method have been proposed to improve its eciency. Miller has used selective randomization to solve reliability models with detailed representation of error handling activities [26] . The idea behind selective randomization [27] is to randomize the model only in a subset of the state space. Reibman and Trivedi [3] have proposed an approach based on the multistep concept. The idea is to compute P M explicitly, where M is the length of the multistep, and use the recurrence q(k + M ) = q(k)P M to advanceX faster for steps which have negligible contributions to the transient solution of X . Since, for large t, the number of q(k)'s with signiÿcant contributions is of the order of √ t, the multistep concept allows a signiÿcant reduction of the required number of vector-matrix multiplications. However, when computing P M , signiÿcant ÿll-in can occur if P is sparse. Adaptive uniformization [28] is a recent method in which the randomization rate is adapted depending on the states in which the randomized DTMC can be at a given step. Numerical experiments have shown that adaptive uniformization can be signiÿcantly faster than standard randomization for short to medium mission times. In addition, it can be used to solve models with inÿnite state spaces and not uniformly bounded output rates. Recently, it has been proposed the combination of adaptive and standard uniformization to obtain a method which outperforms both adaptive uniformization and standard randomization for most models [16] . Another recent proposal to speed up the randomization method is steady-state detection [1] . Recently, a method based on steady-state detection which gives error bounds has been developed [29] . Steady-state detection is useful for models which reach their steady state before the largest time at which the measure has to be computed.. In this paper we generalize the regenerative randomization method described in [30] . We will consider CTMCs X with ÿnite state space = S ∪ {f 1 ; f 2 ; : : : ; f A }; |S| ¿ 2, A ¿ 0, where f i are absorbing states and, either (a) all states in S are transient, or (b) S has a single trapping component 2 and the chosen regenerative state r belongs to that component, with a reward rate structure r i ¿ 0; i ∈ , with di erent reward rates assigned to the A absorbing states, will assume that all states are reachable from some state with non-null initial probability, and will consider the problem of computing the measures ETRR(t) and EARR(t). Also, to simplify the discussion, we will assume that X has some transition rate from r to S = S − {r}. That condition can, however, be easily circumvented in practice by adding, if X has no transition rate from r to S , a tiny transition rate 6 10 −10 =(2r max t max ) from r to some state in S , where is the allowed error, r max = max i∈ r i and t max is the largest time at which the measure has to be computed, with a negligible impact on the measure 6 10 −10 , t 6 t max . 3 In [30] , only the measure ETRR(t) for the particular case r i = 0, i ∈ S and A ¿ 1 was considered. The assumed structure for X covers bounding CTMC models which are useful when an exact, complete CTMC has unmanageable size. Those bounding models have a state space = B ∪ {f 1 }, where B is a portion of the state space of the complete CTMC and f 1 is an absorbing state, have the same transition rates between states in B and same initial probability distribution in B as the complete CTMC model, transition rates from states i ∈ B to f 1 equal to the transition rates of the complete CTMC model from states i ∈ B to the subset including the states outside B, and initial probability in f 1 equal to the initial probability of the complete CTMC model in the subset including the states outside B. Then, assigning to the states in B of the bounding model the same reward rates as in the complete model, and assigning to f 1 a lower bound for the reward rate of any state of the complete model, the ETRR(t) and EARR(t) measures of the bounding model lower bound, respectively, the measures ETRR(t) and EARR(t) of the complete model. If a reward rate upper bounding the reward rate of any state of the complete model is assigned instead to f 1 , then the measures ETRR(t) and EARR(t) of the bounding model upper bound, respectively, the measures ETRR(t) and EARR(t) of the complete model.. The basic idea in regenerative randomization is to obtain a truncated transformed model of potentially smaller size than the original model by characterizing with enough accuracy the behavior of the original model from S up to hit of state r or a state f i and from r until next hit of r or a state f i , where r ∈ S is the so-called "regenerative" state, 4 and solve the truncated transformed model by standard randomization. The performance of the method depends, of course, on the selection of the regenerative state. The method o ers the same good properties as standard randomization: numerical stability, well-controlled computation error, and ability to specify the computation error in advance, and can be signiÿcantly faster than standard randomization. The rest of the paper is organized as follows. Section 2 develops and describes the generalized method. Section 3 establishes the so-called benign behavior of the method, discusses qualitatively the e ciency of the method compared with that of standard randomization, and for a class of models, class C , including typical failure=repair models with exponential failure and repair time distributions and repair in every state with failed components, gives stronger theoretical results assessing the e ciency of regenerative randomization in terms of "visible" model characteristics. Section 4 illustrates the potentially superior performance of the regenerative randomization method compared to standard randomization for models not in class C using a large performability model of a fault-tolerant multiprocessor system. Section 5 presents the conclusions. Finally, the appendix includes some proofs. Throughout the paper we will make reference to results formally proved in [30] for the case A ¿ 1. Those results trivially extend to the more general case A ¿ 0 considered in this paper. We have generalized the regenerative randomization method described in [30] for the transient analysis of continuous time Markov models. The generalized method allows to compute two transient measures (the expected transient reward rate and the expected averaged reward rate) of rewarded continuous time Markov models with a structure covering bounding models which are useful when a complete, exact model has unmanageable size. The method has the same good properties as the well-known (standard) randomization method: numerical stability, well-controlled computation error, and ability to specify the computation error in advance, and, for large enough models and long enough times, can be signiÿcantly faster than that method. The method requires the selection of a regenerative state and its performance depends on that selection. For a class of models, class C , including typical failure=repair models with exponential failure and repair time distributions and repair in every state with failed components, a natural selection for the regenerative state exists, and results are available assessing approximately the performance of the method for that natural selection in terms of "visible" model characteristics. Those results can be used to anticipate when the method can be expected to be signiÿcantly faster than standard randomization for class C models. For models not in class C , selection of an appropriate regenerative state can be made based on user's intuition. The potentially superior e ciency of the regenerative randomization method compared to standard randomization for models not in class C has been illustrated using a large performability model of a fault-tolerant multiprocessor system. The generalized method allows a numerically stable, with well-controlled and speciÿable-in-advance error, solution of some large rewarded continuous time Markov models in a ordable CPU times.

O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Reconstruction of the equilibrium of the plasma in a Tokamak and identification of the current density profile in real time Abstract. The reconstruction of the equilibrium of a plasma in a Tokamak is a free boundary problem described by the Grad-Shafranov equation in axisymmetric configuration. The right-hand side of this equation is a nonlinear source, which represents the toroidal component of the plasma current density. This paper deals with the identification of this nonlinearity source from experimental measurements in real time. The proposed method is based on a fixed point algorithm, a finite element resolution, a reduced basis method and a least-square optimization formulation. This is implemented in a software called Equinox with which several numerical experiments are conducted to explore the identification problem. It is shown that the identification of the current density averaged over the magnetic surfaces is very robust. In fusion experiments a magnetic field is used to confine a plasma in the toroidal vacuum vessel of a Tokamak [1] . The magnetic field is produced by external coils surrounding the vacuum vessel and also by a current circulating in the plasma itself. The resulting magnetic field is helicoidal.. Let us denote by j the current density in the plasma, by B the magnetic field and by p the kinetic pressure. The momentum equation for the plasma is. where u represents the mean velocity of particles and ρ the mass density. At the slow resistive diffusion time scale [2] the term ρ du dt can be neglected compared to ∇p and the equilibrium equation for the plasma simplifies to j × B = ∇p meaning that at each instant in time the plasma is at equilibrium and the Lorentz force j × B balances the force ∇p due to kinetic pressure. Taking into account the magnetostatic Maxwell equations which are satisfied in the whole space (including the plasma) the equilibrium of the plasma in presence of a magnetic field is described by. where µ 0 is the magnetic permeability of the vaccum. Ampere's theorem is expressed by Eq. (1) and Eq. (2) represents the conservation of magnetic induction. From the equilibrium equation (3) it is clear that B · ∇p = 0 and j · ∇p = 0.. Therefore field lines and current lines lie on isobaric surfaces. These isosurfaces form a family of nested tori called magnetic surfaces which enable to define the magnetic axis and the plasma boundary. On the one hand the innermost magnetic surface degenerates into a closed curve and is called magnetic axis and on the other hand the plasma boundary corresponds to the surface in contact with a limiter or to a magnetic separatrix (hyperbolic line with an X-point).. The Grad-Shafranov equation [3, 4, 5] is a rewriting of Eqs. (1) (2) (3) under the axisymmetric assumption. Consider the cylindrical coordinate system (e r , e φ , e z ). The magnetic field B is supposed to be independent of the toroidal angle φ. Let us decompose it in a poloidal field B p = B r e r + B z e z and a toroidal field B φ = B φ e φ (see Fig. 1 ).. Let us also introduce the poloidal flux where D is the disc having as circumference the circle centered on the Oz axis and passing through a point (r, z) in a poloidal section. From Eq. (2) one deduces that. . Therefore B.∇ψ = 0 meaning that ψ is a constant on each magnetic surface and that p = p(ψ).. The same poloidal-toroidal decomposition can be applied to j. From Eq. (1) it is clear that ∇ · j = 0. As for B p it is shown that there exists a function f , called the . Thus under the axisymmetric assumption, the three dimensional equilibrium Eqs. (1 -3) reduce to a two dimensional non linear problem. Note that the right-hand side of Eq. (4) represents the toroidal component j φ of the current density in the plasma which is determined by the unknown functions p ′ and f f ′ . In the vaccum there is no current and the poloidal flux statisfies. In this paper, we are interested in the numerical reconstruction of the equilibrium i.e of the poloidal flux ψ and in the identification of the unknown plasma current density [6, 7, 8] . In a control perspective this reconstruction has to be achieved in real time from experimental measurements. The main difficulty consists in identifying the functions p ′ and f f ′ in the non linear right-hand side source term in Eq. (4). An iterative strategy involving a finite element method for the resolution of the direct problem and a least square optimisation procedure for the identification of the non linearity using a decomposition basis is proposed.. Section 2 is devoted to the statement of the mathematical problem and to the description of the experimental measurements avalaible. The proposed algorithm is described in Section 3. This methodology has been implemented in a software called Equinox and numerical results using synthetic and real measurements are presented in Section 4. We have presented an algorithm for the identification of the current density profile in the Grad-Shafranov equation and the equilibrium reconstruction from experimental measurements in real time. We have shown thanks to several twin experiments that even though the unknown functions A and B (or p ′ and f f ′ ) taken separately might not be allways exactly identified the resulting mean current density and safety factor seem to be allways well identified. We have also shown that the use of internal polarimetric measurements improves the quality of the identification but is still not enough to perfectly identify both A and B. Finally we have introduced the software Equinox in which this methodology is developed.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Mining anchor text for query refinement When searching large hypertext document collections, it is often possible that there are too many results available for ambiguous queries. Query refinement is an interactive process of query modification that can be used to narrow down the scope of search results. We propose a new method for automatically generating refinements or related terms to queries by mining anchor text for a large hypertext document collection. We show that the usage of anchor text as a basis for query refinement produces high quality refinement suggestions that are significantly better in terms of perceived usefulness compared to refinements that are derived using the document content. Furthermore, our study suggests that anchor text refinements can also be used to augment traditional query refinement algorithms based on query logs, since they typically differ in coverage and produce different refinements. Our results are based on experiments on an anchor text collection of a large corporate intranet. The popularity of search engines on the Internet has led to a nearly uniform interface for searching: a single input box that accepts keywords. This simple interface has pushed the burden of inferring the intent of the user's information need down into the search engine. One of the most important classes of queries that must be answered are ambiguous queries -broad queries that have many results in possibly many different domains of knowledge, for instance, "research" or "java". In fact, short single word queries are quite commonly used [23] . Over 22.5% of web queries studied in [26] were single term queries. Because of this, there are potentially many matches, most of which are not relevant to the user's actual information need. The specific form of query refinement that we Copyright is held by the author/owner(s). May 17-22, 2004 , New York, New York, USA. examine is one where the user's query is expanded with additional terms using an algorithm that automatically tailors its results to the information in the document collection. We devised a simple and elegant approach to automatic query refinement using anchor text and median rank aggregation. Our method and implementation worked remarkably well in practice. Our experiments and the conducted user studies which showed that the proposed mining techniques quantitatively outperformed similar methods using document collections for suggesting query refinements or related queries. Furthermore, by exploiting the similarity between anchor text and search queries the discussed algorithms provide high quality refinements for one and two term queries, which represent most of typical Web search engine's traffic.. There are more potentially interesting applications (e.g., spell checking) that can leverage from the proposed anchor text mining techniques. We want to investigate in future work how the proposed mining and tuning methods for anchor text can be used and integrated into a spell checker for Web search.. Another interesting aspect is the usage of lexical affinities which we have not investigated yet. Can LAs be used to further tune and improve the anchor text mining process?. Instead of narrowing a broad query, we can use Query refinement also to broaden a query with only a few results. This is often useful if the user types in a very restricted query and retrieves only one or two results. We can envision doing a similar technique for broadening queries using the proposed anchor text based refinement algorithm. Based on the number of returned search results the search engine could then pick which direction the refinement should work.. In our experiments we focused on anchor text, and did not include additional pre-anchor or post-anchor text, although it might be interesting to investigate on whether this would further improve our mining algorithms.. We hope that the paper stimulates interest to develop interesting applications for anchor text mining, and that Web search engines start integrating some of the ideas to further improve their overall search experience. Related work can be broken down into three broad categories: First, work related to anchor text processing. Second, ranking and rank aggregation methodologies for Web search. Third, research related to query refinement.

B O B O B I O O O B O O O O O O O O O O O O O O O B B I O O O B O B O O O O O O O O O O O B O O O O O B O O O O O O O O B O B O B O O O B O O O O O O O O O B O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B I O O O B O O O O O O B O O O O O O O O O O O O O B O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B I O O B O O B O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O B O O O O O O O B O B B O O O O O B O O O O O O B O O O O O B I O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O B O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B B B O O O O O B O O B B I O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O B O O B O O O O O O B O O B O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B B O O B I O O O O O O O O O O O O B B O O O O O O O O O O O O O O O B O O O O B O O O B I O O O O B I


Optimal task placement to improve cache performance Most recent embedded systems use caches to improve their average performance. Current timing analyses are able to compute safe timing guarantees for these systems, if tasks are running to completion. If preemptive scheduling is enabled, the previously computed timing guarantees no longer hold. At each program point, a preempting task might completely change the cache content. This observation has to be considered by timing analyses, which inevitably increases their complexity. Additionally, these cache-interferences influence the overall performance of such systems. The position of a task's data determines the portion of the cache the task will occupy, and by this, the cache-interferences of the different tasks. In this paper, we present a novel method that computes an optimal taskset placement with respect to the above criteria. This means, our method modifies the starting addresses of the tasks such that the number of persistent task sets is maximized for each task. We show that the problem of finding an optimal placement is NP-hard and present a heuristic to approximate an optimal solution. Finally, we demonstrate by means of simulations that our method is able to improve the overall performance especially of heterogeneous and complex tasksets. In this paper, we presented a new method to optimize and analyze the cache-performance of task sets running on embedded systems with preemptive scheduling. We exploit the fact that different task placements within the memory lead to different cache-interferences during execution. For a given task set and a cache configuration our method adjusts the starting position of the tasks such that the threat to the cache sets is globally minimized. This optimization improves the cache performance on the one hand and statically clas- sifies whether cached entries are persistent or threatened during the execution of a task. In contrast to other approaches our method does not need to modify the code and thus does not impair the execution time of a task. The cache-set classification finally makes precise timing guarantees for preemptively scheduled tasks a reachable goal.. For the optimization, we introduced a simple performance model to compare the performances of different placement and to derive the classification of the cache entries. On top of this model we developed two slightly different optimization problems and showed the NP-hardness of both. The first problem optimizes the performance independent from the used memory space and the second one only allows minimal memory usage. Additionally, we presented an ILP formulation for the first one and an heuristic approach for the second.. The measurements show that our method is able to compute cache-efficient task placements. We have observed that the effectiveness of our approach strongly depends on the optimized task set. Because we have no access to real-world applications (e.g., task sets of an automotive system), we were only able to apply our method to self-written task sets. However, we are very optimistic that our method will prove valuable in practice.. The framework we introduced within this paper offers a wide area for future work. The performance model can be enriched with more detailed information about the task set and the tasks themselves. For instance, information about recurring or sequential code segments could lead to a better approximation. To derive this information static analyses or the help of the compiler and its data could be used. Another important issue is the level of detail. Not only the tasks within the set but also the procedures of the tasks can be moved within the main memory to allow a higher variability and therefore better performances. The different steps of the method could be combined to a semi-automatic implementation of the framework where the user only has to provide the task interdependencies. Last but not least, a final evaluation of the method using task sets from industry is left for further research. The problem to handle cache-interferences within a preemptive systems has been addressed by several authors with very diverse approaches. Targeting the problem of timing guarantees we have to mention the cache-partitioning approach by Mueller [8] , the combined timing and scheduling analysis by Schneider [12] and the analysis of useful cache blocks to compute context-switch costs by Lee et al. [6] .. In [8] Mueller proposed a simple method to avoid interferences of tasks on the cache by assigning each task a small segment of the cache to work with. Although there is no interference on the cache, the performance of each task will suffer by the strongly decreased available cache size. Additional branches have to be added and for data arrays, a wrapper function has to be applied. This implies significant code changes, which again in addition to the increased number of cache misses impairs the performance. Other approaches like [15] concerning cache partitioning exhibit mainly the same disadvantages.. Schneider [12] proposes a combined scheduling and timing analysis. This analysis assumes preemption at each program point to compute safe results. However, just because preemption is assumed everywhere, the analysis roughly overestimates a task's worst case execution time.. In [6] Lee et al. determine useful cache blocks to compute context switching costs. Their approach computes for each program point those cache-sets that may be accessed later and that could be evicted by an preempting task. The costs that arise from a context switch are then the time needed to reload these cache-blocks. In the presence of timing anomalies however, this approach must be considered unsafe.. For the optimization of the overall performance, we have to mention two approaches:. Suh et al. [13] set up an analytical cache model to analyze and optimize the cache-miss behavior of task sets. Given a round-robin schedule, cache-miss-rate curves for each task and the cache size, the authors are able to predict the overall cache-miss rate. Additionally, they show how their analytical cache model can be used to dynamically partition the cache. To optimize the overall cache-miss rate, the scheduler assigns cache blocks to tasks and dynamically decides to lock or unlock them, depending on the tasks cache-missrate curves. This approach differs from our by the use of dynamic partitioning and cache locking. Additionally, we are not restricted to a specific scheduler.. Banakar et al. [1] propose to exploit the scratchpad memory of an embedded system. The basic idea is not to rely on the cache and store frequent data in the scratchpad memory. In this fashion, the authors manage to avoid the eviction of important data, but are forced to modify the code. The authors do not address systems with preemptive scheduling. This approach is out of scope for this paper, because it forms a complete alternative to caches.. The next approach copes with a different problem but is nevertheless strongly related to our work.. In [4] Gloy et al. propose a procedure placement algorithm that minimizes the instruction cache conflicts of a single task. Their algorithm optimizes a task by means of the cache configuration, the sizes of the procedures and program traces. The program traces are used to infer conflicts between procedures of the task to optimize. The presented algorithm is designed to cope with direct-mapped caches only, but the authors provide an extension to two-way setassociative caches that use the LRU replacement policy.. Guillon et al. [5] have improved the heuristic presented in [4] . The authors found that minimizing cache conflicts by maximizing the overlap between procedures does on average not contribute to reduce cache conflicts. Making the algorithm of Gloy et al. sensitive to code size expansion, the authors manage to achieve very good results with a minimal code size expansion. However, the improved algorithm only copes with direct-mapped instruction caches.. The main difference is of course the target itself; we aim to optimize and analyze whole task sets instead of a single task only. The optimization of single tasks is again only valid for non-preemptive systems. For several reasons, we cannot adopt the former approach directly to our target: the interaction between tasks is highly dynamic. Therefore a few traces are not sufficient to capture enough data for a preemptive system. Also the analysis of endangered or persistent cache sets has not been treated sufficiently to be used for timing analyses. Finally our method is not restricted to a specific type of cache or replacement policy.

O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Are we living in a robot cargo cult? We use the Cargo Cult metaphor to discuss visions, methods and communication of robot research. Essentially cargo cult involves performing of imitative rituals that are conducted without understanding the underlying cause of a phenomenon. We discuss how this is an ongoing challenge within the field of HRI, and what researchers could do to avoid contributing to a robotic cargo cult. What do we mean with the term robot -either as laymen or HRI researchers? Most people can draw a robot, or say something about their idea of what a robot is, what a robot could be used for, and how it could look and behave. This is often inspired by what they have experienced on film, in science fiction literature, children's books, comics, cartoons, toys and other media. Thus, given the cultural foundations and historical concepts of robots, there is a risk that the general ideas of what a robot is and what it will be able to do in a near future is flavoured not so much by current research and existing products as it is of popular culture. This may not only be true for the general public, but also for researchers that may work with unrealistic robot designs.. Reflecting upon existing perspectives of robots should be taken into account in all research on the relationship between humans and robots -when we develop user studies, when we analyse data, when we sketch out scenarios for interaction, and when we design and build new robotic systems. However, we find that the challenges specific to researchers in relation to popular culture have not yet become parts of the mainstream discussions of our field.. Inspired by a metaphor of the "cargo cult", this paper identifies what we see as one of the main challenges for us as researchers working with robotic prototypes, scenarios, and products. We have previously used the cargo cult metaphor to stress the difference between unsound and sound use of prototyping and mock-up techniques in the general field of interaction design [2] . This paper aims to bring this discussion also into the field of HRI, and focus more concretely on the research challenges involved in the design and evaluation of robots at a time when this is interwoven with perspectives of robots inspired by popular culture As robots exist as a strong cultural concept, this also brings along a number of interesting potentials for thought provoking interactive scenarios, services and products. However, we argue that it is our responsibility as researchers to actively work towards sound and realistic ideas that can meet existing or realistic needs, within human-robot interaction. We see this as a matter of research ethics, and with the concept of a robot cargo cult, we hope to initiate a discussion on how to develop methods that explicitly address such issues in future research in our field. A major challenge when working with complex robotic systems concerns how user studies may be incorporated in iterative design cycles, where prototypes can be sufficiently tested, tuned and taken into realistic use.. As an example, Wizard of Oz [4] is a common method developed in HCI and where the basic principle is to let the computerised part of the system be manually performed by a person (often from a separate control room). In order to test a variety of interactive features before they are fully implemented, this method can save time, effort and resources in finding the most successful path for future development. Because of the complexities commonly involved in realising robotic interfaces, this method has become an increasingly popular method for evaluation within HRI.. A danger that has been noted with this and related methods is that users (and even researchers) may get lured to believe that the step to take from a Wizard of Oz setup to achieve a fully autonomous version of the system is much smaller than is the actual case. This is especially relevant in research that does not intend to end up in a working system, but serve other important purposes, e.g. to learn about how people behave together with embodied interactive artefacts on a more general level. As researchers we must keep in mind that scenarios and corresponding experiences in such cases may be used as food for a robot cargo cult.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O