16.11.2013 Views

Modeling the Aspects of Quality of Service in Web Services and ...

Modeling the Aspects of Quality of Service in Web Services and ...

Modeling the Aspects of Quality of Service in Web Services and ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Model<strong>in</strong>g</strong> <strong>the</strong> <strong>Aspects</strong> <strong>of</strong> <strong>Quality</strong> <strong>of</strong> <strong>Service</strong> <strong>in</strong> <strong>Web</strong> <strong>Service</strong>s <strong>and</strong> <strong>Service</strong><br />

Oriented Architectures<br />

Art Sedighi<br />

Rensselaer Polytechnic Institute<br />

sediga@av8.net<br />

Abstract<br />

We propose a model by which <strong>Quality</strong> <strong>of</strong> <strong>Service</strong><br />

(QoS) can be used as <strong>the</strong> means <strong>of</strong> request<strong>in</strong>g a<br />

service. This model <strong>in</strong>tegrates <strong>the</strong> notion <strong>of</strong> QoS <strong>in</strong>to<br />

<strong>Service</strong> Oriented Architectures (SOA), <strong>and</strong><br />

recommends additions to <strong>the</strong> current work<strong>in</strong>g<br />

st<strong>and</strong>ards that would take advantage <strong>of</strong> QoS. The<br />

recommended extensions to <strong>the</strong> current work<strong>in</strong>g<br />

documents <strong>of</strong> <strong>the</strong> <strong>Web</strong> <strong>Service</strong>s will be m<strong>in</strong>or <strong>and</strong> will<br />

allow a method to implement an end-to-end QoS<br />

method, which will start from <strong>the</strong> service discovery<br />

phase. The extensions will allow <strong>the</strong> <strong>Service</strong><br />

Consumer to search <strong>the</strong> service directory <strong>and</strong> use <strong>the</strong><br />

<strong>Quality</strong> Attributes that are most important to it. The<br />

directory can fulfill <strong>the</strong> quality dem<strong>and</strong> <strong>of</strong> every<br />

<strong>Service</strong> Consumer <strong>and</strong> allow for a more proactive<br />

service discovery phase.<br />

1. Background<br />

In [15] [16], it is argued that QoS must be<br />

configurable, predictable <strong>and</strong> ma<strong>in</strong>ta<strong>in</strong>able on an<br />

end-to-end basis. [10] adds that meet<strong>in</strong>g service<br />

guarantees is fundamentally an end-to-end issue, <strong>and</strong><br />

that means from application-to-application.<br />

With new trends <strong>in</strong> System Integration,<br />

architectural patterns, growth <strong>and</strong> maturity <strong>of</strong> <strong>Web</strong><br />

<strong>Service</strong>s (WS) <strong>and</strong> its support<strong>in</strong>g protocols<br />

(Universal Description Discovery & Integration<br />

(UDDI) [7], <strong>Web</strong> <strong>Service</strong>s Description Language<br />

(WSDL) [8] <strong>and</strong> Simple Object Access Protocol<br />

(SOAP) [5]), it is crucial to take <strong>in</strong>to consideration<br />

<strong>the</strong> aspect <strong>of</strong> service quality as it perta<strong>in</strong>s to WS.<br />

IBM has <strong>in</strong>troduced <strong>the</strong> concept <strong>of</strong> QoS <strong>in</strong> a new<br />

protocol called <strong>Web</strong> <strong>Service</strong>s Endpo<strong>in</strong>t Language<br />

(WSEL) [2] [3]. A problem with WSEL is that it<br />

applies <strong>the</strong> concept <strong>of</strong> QoS atop WSDL <strong>and</strong> after <strong>the</strong><br />

service discovery phase.<br />

In <strong>the</strong> <strong>Service</strong> Oriented Architecture (SOA)<br />

scenario [17], it is possible for a s<strong>in</strong>gle <strong>Service</strong><br />

Consumer (SC) or <strong>Service</strong> Requestor as depicted <strong>in</strong><br />

[2] to request a service that can potentially be <strong>of</strong>fered<br />

by more than one <strong>Service</strong> Provider (SP). In order for<br />

<strong>the</strong> SC to be able to dist<strong>in</strong>guish between SPs, we<br />

have <strong>in</strong>troduced <strong>the</strong> idea <strong>of</strong> quality as <strong>the</strong><br />

dist<strong>in</strong>guish<strong>in</strong>g factor between services that provide<br />

<strong>the</strong> same service at <strong>the</strong> service discovery phase.<br />

More generally, <strong>in</strong> this research we have applied<br />

some <strong>of</strong> <strong>the</strong> basic pr<strong>in</strong>ciples <strong>of</strong> QoS to SOA. In<br />

do<strong>in</strong>g so, we have found that QoS should be an<br />

<strong>in</strong>tegral part <strong>of</strong> <strong>the</strong> end-to-end SOA, due to <strong>the</strong><br />

flexibility <strong>and</strong> dynamic ability <strong>of</strong> WS to be boundedto<br />

at run-time -- from discovery until <strong>the</strong> service<br />

release phase.<br />

The current UDDI draft st<strong>and</strong>ard does not have<br />

<strong>the</strong> notion <strong>of</strong> quality. As mentioned before <strong>the</strong> only<br />

related work <strong>in</strong> <strong>the</strong> area <strong>of</strong> apply<strong>in</strong>g QoS <strong>in</strong>to WS’s is<br />

done <strong>in</strong> [1] <strong>and</strong> us<strong>in</strong>g WSEL. But WSEL fails to<br />

apply QoS to discovery phase. When a SC searches<br />

for a service, UDDI returns <strong>the</strong> results <strong>and</strong> it is up to<br />

<strong>the</strong> SC to choose between <strong>the</strong> SPs that match its<br />

criteria. UDDI searches for keywords entered by <strong>the</strong><br />

SC. If a match is found, <strong>the</strong> SPs that match <strong>the</strong><br />

search results are returned to <strong>the</strong> requestor. The SC<br />

<strong>the</strong>n chooses from one <strong>of</strong> <strong>the</strong> returned options <strong>and</strong><br />

thru WDSL, it goes thru an <strong>in</strong>terface discovery<br />

session. After <strong>the</strong> public <strong>in</strong>terface <strong>of</strong> <strong>the</strong> SP has been<br />

realized, <strong>the</strong> SC starts us<strong>in</strong>g <strong>the</strong> service. By <strong>the</strong><br />

recommended WSEL work<strong>in</strong>g documents, this is <strong>the</strong><br />

po<strong>in</strong>t where <strong>the</strong> SC can determ<strong>in</strong>e <strong>the</strong> quality <strong>of</strong> <strong>the</strong><br />

SP. WSEL does not carry <strong>the</strong> notion <strong>of</strong> multiple SPs<br />

provid<strong>in</strong>g <strong>the</strong> same service, <strong>and</strong> enabl<strong>in</strong>g a SC to<br />

choose a service at <strong>the</strong> early stages us<strong>in</strong>g <strong>the</strong> quality<br />

<strong>of</strong> <strong>the</strong> SP.<br />

The recommended protocol to send messages<br />

between <strong>the</strong> SP <strong>and</strong> <strong>the</strong> SC is SOAP. The SC, after<br />

gett<strong>in</strong>g <strong>the</strong> results back from <strong>the</strong> SP, may choose to<br />

keep us<strong>in</strong>g <strong>the</strong> service or simply drop <strong>the</strong> service.<br />

There is no way <strong>of</strong> tell<strong>in</strong>g whe<strong>the</strong>r a SC is satisfied<br />

with <strong>the</strong> service that was provided by <strong>the</strong> SP.<br />

Fur<strong>the</strong>rmore, <strong>the</strong>re is no way for <strong>the</strong> SC to realize <strong>the</strong><br />

attributes <strong>of</strong> <strong>the</strong> SP before b<strong>in</strong>d<strong>in</strong>g. There are also no<br />

st<strong>and</strong>ard ways <strong>of</strong> keep<strong>in</strong>g history, nor is <strong>the</strong>re a way


to determ<strong>in</strong>e if <strong>the</strong> quality <strong>of</strong> a service has been<br />

changed s<strong>in</strong>ce <strong>the</strong> previous encounter <strong>of</strong> <strong>the</strong> two<br />

parties.<br />

2. Significance<br />

QoS can be used as <strong>the</strong> means <strong>of</strong> measur<strong>in</strong>g<br />

applicability when search<strong>in</strong>g for a service, <strong>and</strong> after<br />

<strong>the</strong> usage <strong>of</strong> <strong>the</strong> service for measur<strong>in</strong>g <strong>the</strong> efficacy <strong>of</strong><br />

<strong>the</strong> SP. The notion <strong>of</strong> QoS applies to an end-to-end<br />

basis, so QoS <strong>in</strong> <strong>the</strong> context <strong>of</strong> WS becomes an<br />

abstract term by which <strong>the</strong> quality as perceived by an<br />

SC can be measured. The quality perceived by a<br />

number <strong>of</strong> SCs may vary greatly for <strong>the</strong> same service<br />

provided by a s<strong>in</strong>gle SP. In this research, <strong>the</strong> term<br />

QoS is <strong>the</strong> perceived quality by an SC that is<br />

exclusive <strong>of</strong> all <strong>the</strong> o<strong>the</strong>r SCs that are us<strong>in</strong>g <strong>the</strong> same<br />

service. Thus, it becomes important, as <strong>the</strong> number<br />

<strong>of</strong> SPs <strong>in</strong>crease, <strong>the</strong> ability to determ<strong>in</strong>e with some<br />

level <strong>of</strong> certa<strong>in</strong>ty <strong>the</strong> quality <strong>of</strong> a service <strong>in</strong> order to<br />

dist<strong>in</strong>guish between <strong>the</strong> various SPs.<br />

There are two ways <strong>of</strong> measur<strong>in</strong>g quality:<br />

• Determ<strong>in</strong>e attributes before<br />

• Calculate quality after <strong>the</strong> usage<br />

S<strong>in</strong>ce we are, for <strong>the</strong> purpose <strong>of</strong> this research, not<br />

<strong>in</strong>terested <strong>in</strong> self-improv<strong>in</strong>g services (<strong>in</strong>telligent<br />

agents, self modify<strong>in</strong>g code, etc), <strong>the</strong> latter <strong>of</strong> <strong>the</strong> two<br />

options is not <strong>of</strong> value. We would like to be able to<br />

predeterm<strong>in</strong>e as much as we can about a service<br />

before we start us<strong>in</strong>g it. Based on <strong>the</strong> current<br />

work<strong>in</strong>g st<strong>and</strong>ards, <strong>the</strong>re is no way for an SC to<br />

determ<strong>in</strong>e if a service is better than ano<strong>the</strong>r service<br />

<strong>of</strong>fered. For <strong>the</strong> situation where services are<br />

deployed over <strong>the</strong> Internet <strong>and</strong> an SC must pay-perusage,<br />

it is crucial to f<strong>in</strong>d as much as possible about a<br />

service before an SC starts us<strong>in</strong>g a service.<br />

3. Approach <strong>and</strong> Methodology<br />

This paper will show <strong>the</strong> benefits <strong>of</strong> add<strong>in</strong>g <strong>the</strong><br />

notion <strong>of</strong> QoS to WS <strong>and</strong> SOA at <strong>the</strong> service<br />

discovery phase. We will propose an extension to <strong>the</strong><br />

current protocols through an elaborated example <strong>in</strong><br />

which a number <strong>of</strong> SPs provide search eng<strong>in</strong>e<br />

services with each one hav<strong>in</strong>g a different search<br />

algorithm. It will start by <strong>in</strong>tegrat<strong>in</strong>g <strong>the</strong> basic<br />

pr<strong>in</strong>ciples <strong>of</strong> QoS outl<strong>in</strong>ed <strong>in</strong> [10] <strong>in</strong>to WS. These<br />

pr<strong>in</strong>ciples are as follows:<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Integration<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Separation<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Transparency<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Asynchronous Resource<br />

Management<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Performance<br />

Each <strong>of</strong> <strong>the</strong>se pr<strong>in</strong>ciples will be depicted as <strong>the</strong>y<br />

apply to <strong>the</strong> concept <strong>of</strong> WS <strong>and</strong> SOA.<br />

A brief description <strong>of</strong> <strong>the</strong> components that make<br />

up WS, ma<strong>in</strong>ly UDDI, WSDL, WSEL <strong>and</strong> SOAP,<br />

will be given along with <strong>the</strong> role that each component<br />

plays <strong>in</strong> a SOA. An example application that utilizes<br />

<strong>the</strong> SOA will be shown to clarify <strong>the</strong> changes that<br />

need to be made to current protocols. This research<br />

ma<strong>in</strong>ly focuses on <strong>the</strong> role that QoS plays <strong>in</strong> <strong>the</strong><br />

service discovery phase – a role that is played by <strong>the</strong><br />

proposed UDDI st<strong>and</strong>ard. Therefore, a more detailed<br />

description <strong>of</strong> <strong>the</strong> UDDI will be given along with a<br />

list <strong>of</strong> proposed changes to <strong>the</strong> current proposed<br />

st<strong>and</strong>ard to allow it to take advantage <strong>of</strong> QoS. These<br />

changes even thought very m<strong>in</strong>or, play an important<br />

role <strong>in</strong> <strong>the</strong> discovery <strong>and</strong> usage <strong>of</strong> a service.<br />

Our example consists <strong>of</strong> a series <strong>of</strong> SPs that<br />

provide a document search service to <strong>the</strong> SCs <strong>in</strong> an<br />

enterprise. The SPs receive queries from <strong>the</strong> various<br />

SCs <strong>and</strong> search a database for matches – Boolean or<br />

o<strong>the</strong>rwise. Each SP employs a different search<br />

algorithm <strong>and</strong> depend<strong>in</strong>g on <strong>the</strong> SCs needs, a<br />

different SP is used. The SCs, through <strong>the</strong> service<br />

discovery process, will determ<strong>in</strong>e which SP will be<br />

able to h<strong>and</strong>le <strong>the</strong>ir request. In addition to <strong>the</strong> basic<br />

search criteria, which we will call Functional<br />

Attributes (FA), <strong>the</strong>re can be o<strong>the</strong>r search criteria<br />

used to determ<strong>in</strong>e <strong>the</strong> applicability <strong>of</strong> <strong>the</strong> SP.<br />

<strong>Quality</strong> Attributes (QA) will be used <strong>in</strong><br />

conjunction with <strong>the</strong> FAs to determ<strong>in</strong>e <strong>the</strong> QoS <strong>of</strong> an<br />

SP. Dur<strong>in</strong>g <strong>the</strong> service discovery process, <strong>the</strong> QAs<br />

are used to map <strong>the</strong> applicability <strong>of</strong> each SP’s<br />

capabilities to <strong>the</strong> SC’s request <strong>and</strong> are assigns a<br />

value. The comb<strong>in</strong>ation <strong>of</strong> all <strong>the</strong> values assigned<br />

via <strong>the</strong>se QAs will be called <strong>the</strong> QoS Value (QV)<br />

throughout this paper. We aim to model <strong>the</strong><br />

discovery dialog that takes place before a service is<br />

acquired <strong>in</strong> order to predeterm<strong>in</strong>e <strong>the</strong> QV based on<br />

<strong>the</strong> QAs that are <strong>of</strong> significant value to an SC.<br />

In <strong>the</strong> current work<strong>in</strong>g st<strong>and</strong>ard, it is ma<strong>in</strong>ly <strong>the</strong><br />

FAs that are taken <strong>in</strong>to consideration. Examples <strong>of</strong><br />

FAs are <strong>the</strong> service name <strong>and</strong> contact phone number.<br />

In [1] examples <strong>of</strong> what it called non-functional<br />

properties, or what is called QA <strong>in</strong> this research, are<br />

given:<br />

• Availability: <strong>the</strong> availability <strong>of</strong> service for<br />

use<br />

• Accessibility: <strong>the</strong> probability degree <strong>of</strong><br />

success <strong>of</strong> access<strong>in</strong>g <strong>the</strong> service<br />

• Integrity: available mechanisms for ensur<strong>in</strong>g<br />

data <strong>in</strong>tegrity considered – roll<strong>in</strong>g back <strong>in</strong><br />

case <strong>of</strong> failure, for example<br />

• Performance: <strong>the</strong> performance <strong>of</strong> <strong>the</strong> service<br />

us<strong>in</strong>g some available metric(s)<br />

• Reliability: <strong>the</strong> reliability <strong>of</strong> <strong>the</strong> service<br />

us<strong>in</strong>g some available metric(s)


• Regulatory: Regulatory <strong>and</strong> legal<br />

compliance<br />

• Security: <strong>the</strong> security <strong>of</strong> <strong>the</strong> service <strong>in</strong> terms<br />

<strong>of</strong> communication with <strong>the</strong> SC<br />

It is important to note that some <strong>of</strong> <strong>the</strong> QAs are<br />

very difficult to quantify: some heuristic needs to be<br />

considered to determ<strong>in</strong>e some <strong>of</strong> <strong>the</strong>se values. Past<br />

history can be used as an estimate for some <strong>the</strong> QAs<br />

that are difficult to quantify. For purposes <strong>of</strong> this<br />

research, it is assumed that <strong>the</strong>se estimations have<br />

some basis <strong>and</strong> are kept up to date by <strong>the</strong> SP. In<br />

addition to <strong>the</strong> dynamic flexibility <strong>of</strong> SOA, we also<br />

aim to show that <strong>the</strong> notion <strong>of</strong> QoS also benefits<br />

reliability, scalability <strong>and</strong> predictability <strong>of</strong> a<br />

distributed architecture.<br />

4. QoS Pr<strong>in</strong>ciples<br />

As mentioned <strong>in</strong> <strong>the</strong> previous section, <strong>the</strong><br />

pr<strong>in</strong>ciples <strong>of</strong> QoS [10] need first be applied to <strong>the</strong><br />

concept <strong>of</strong> SOA <strong>and</strong> WS to ensure <strong>the</strong> <strong>in</strong>tegrity <strong>of</strong> our<br />

model.<br />

Some <strong>of</strong> <strong>the</strong>se pr<strong>in</strong>ciples are as follows:<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Integration<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Separation<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Transparency<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Asynchronous Resource<br />

Management<br />

• Pr<strong>in</strong>ciple <strong>of</strong> Performance<br />

The Pr<strong>in</strong>ciple <strong>of</strong> Integration states that QoS must<br />

be configurable, predictable <strong>and</strong> ma<strong>in</strong>ta<strong>in</strong>able over all<br />

architectural layers to meet <strong>the</strong> end-to-end QoS [9].<br />

The focus <strong>of</strong> this paper is on <strong>the</strong> predictability factor<br />

<strong>of</strong> QoS as it applies to WS dur<strong>in</strong>g <strong>the</strong> service<br />

discovery phase <strong>in</strong>itiated by <strong>the</strong> SC. The ability to<br />

configure <strong>and</strong> ma<strong>in</strong>ta<strong>in</strong> QoS will be secondary, s<strong>in</strong>ce<br />

<strong>the</strong>y are for <strong>the</strong> most part left for <strong>the</strong> implementer <strong>of</strong><br />

<strong>the</strong> SC <strong>and</strong> <strong>the</strong> SP.<br />

The Pr<strong>in</strong>ciple <strong>of</strong> Separation states that content<br />

transfer, control <strong>and</strong> management are functionally<br />

dist<strong>in</strong>ct architectural activities [11]. In SOA, each <strong>of</strong><br />

<strong>the</strong>se activities, are accomplished separately by virtue<br />

<strong>of</strong> how <strong>the</strong> UDDI protocol f<strong>in</strong>ds <strong>and</strong> manages<br />

services.<br />

The Pr<strong>in</strong>ciple <strong>of</strong> Transparency states <strong>the</strong><br />

application should be shielded from <strong>the</strong> underly<strong>in</strong>g<br />

QoS management <strong>and</strong> ma<strong>in</strong>tenance. The Pr<strong>in</strong>ciple <strong>of</strong><br />

Asynchronous Resource Management models <strong>the</strong><br />

control <strong>and</strong> management mechanisms <strong>of</strong> QoS [11].<br />

The Performance Pr<strong>in</strong>ciple <strong>in</strong>cludes a wide variety <strong>of</strong><br />

guidel<strong>in</strong>es from [12] [13] <strong>and</strong> [14]. Some aspects <strong>of</strong><br />

<strong>the</strong>se pr<strong>in</strong>ciples do not apply to WS <strong>and</strong> SOA as it<br />

st<strong>and</strong>s today. It is important to mention <strong>the</strong>m to<br />

ensure that <strong>the</strong> changes proposed will not negatively<br />

affect <strong>the</strong>se pr<strong>in</strong>ciples.<br />

5. <strong>Web</strong> <strong>Service</strong>s Technologies<br />

The four ma<strong>in</strong> protocols proposed for WS <strong>and</strong><br />

<strong>the</strong>ir purpose <strong>and</strong> functionalities are expla<strong>in</strong>ed <strong>in</strong> this<br />

section. However, it is beyond <strong>the</strong> scope <strong>of</strong> this<br />

document to expla<strong>in</strong> each protocol <strong>in</strong> detail. The<br />

reader is referred to [7] for UDDI, [8] for WSDL, [2]<br />

<strong>and</strong> [3] for WSEL <strong>and</strong> to [5] for SOAP.<br />

5.1 UDDI<br />

The Universal Description, Discovery, <strong>and</strong><br />

Integration is used for <strong>the</strong> discovery <strong>of</strong> services. It is<br />

a specification for publish<strong>in</strong>g <strong>and</strong> f<strong>in</strong>d<strong>in</strong>g bus<strong>in</strong>esses<br />

<strong>and</strong> services provided by those bus<strong>in</strong>esses.<br />

5.2 WSDL<br />

The <strong>Web</strong> <strong>Service</strong>s Description Language is used<br />

to describe <strong>the</strong> <strong>in</strong>terface <strong>of</strong> <strong>the</strong> service, its available<br />

functions <strong>and</strong> <strong>the</strong>ir signatures.<br />

5.3 WSEL<br />

The <strong>Web</strong> <strong>Service</strong>s Endpo<strong>in</strong>t Language is used to<br />

model non-functional characteristics <strong>of</strong> services.<br />

This protocol is currently be<strong>in</strong>g developed by IBM.<br />

5.4 SOAP<br />

The Simple Object Access Protocol is an XMLbased<br />

protocol for exchang<strong>in</strong>g <strong>in</strong>formation between<br />

applications or services.<br />

6. Search Eng<strong>in</strong>e <strong>Service</strong><br />

Without <strong>the</strong> use <strong>of</strong> QoS, only <strong>the</strong> FAs <strong>of</strong> a search can<br />

be verified. Figure 1 shows how that task is<br />

accomplished today. The services publish <strong>the</strong>ir<br />

service description <strong>and</strong> o<strong>the</strong>r <strong>in</strong>formation needed to<br />

access <strong>the</strong> service to <strong>the</strong> directory service.<br />

The User Application or <strong>the</strong> SC search <strong>the</strong><br />

directory, implemented <strong>in</strong> UDDI, for a specific<br />

service. For <strong>the</strong> purposes <strong>of</strong> this paper, we will use a<br />

generic Search Eng<strong>in</strong>e <strong>Service</strong> (SES) to demonstrate<br />

our proposed extension to UDDI. The SES takes<br />

queries from <strong>the</strong> SC <strong>and</strong> searches a backend database<br />

or o<strong>the</strong>r available databases for results request it by<br />

<strong>the</strong> SC. For <strong>the</strong> simple case as depicted <strong>in</strong> Figure 1,<br />

<strong>the</strong> current work<strong>in</strong>g st<strong>and</strong>ard for UDDI will suffice.<br />

There are three SES’s, each one <strong>of</strong>fer<strong>in</strong>g different<br />

FAs; each one is us<strong>in</strong>g a different algorithm to do <strong>the</strong><br />

search.<br />

In this scenario, where FAs can be used to<br />

dist<strong>in</strong>guish between <strong>the</strong> services, a simple search by<br />

service type will unveil <strong>the</strong> desired service. It is<br />

unpredictable, however, if <strong>the</strong>re are many SPs<br />

<strong>of</strong>fer<strong>in</strong>g services with <strong>the</strong> same FA. The


dist<strong>in</strong>guish<strong>in</strong>g factor between <strong>the</strong> SES’s <strong>in</strong> Figure 2<br />

are <strong>the</strong> QAs discussed <strong>in</strong> this paper.<br />

UDDI<br />

Directory<br />

F<strong>in</strong>d<br />

User<br />

Application<br />

Publish<br />

Publish<br />

Publish<br />

B<strong>in</strong>d<br />

Search Eng<strong>in</strong>e<br />

(Algoritm A)<br />

Search Eng<strong>in</strong>e<br />

(Algoritm B)<br />

Search Eng<strong>in</strong>e<br />

(Algoritm C)<br />

number <strong>of</strong> SPs <strong>in</strong>crease. With wider acceptance <strong>of</strong><br />

WS’s, it will be prudent to allow <strong>the</strong> SPs a way to<br />

dist<strong>in</strong>guish <strong>the</strong>mselves from o<strong>the</strong>r SPs whom <strong>of</strong>fer<br />

<strong>the</strong> same service. The dist<strong>in</strong>guish<strong>in</strong>g factor must be<br />

QAs, due to <strong>the</strong> fact that <strong>the</strong> FAs <strong>of</strong> <strong>the</strong> compet<strong>in</strong>g<br />

SPs are <strong>the</strong> same.<br />

Ano<strong>the</strong>r complication with <strong>the</strong> current work<strong>in</strong>g<br />

model arises when <strong>the</strong> marg<strong>in</strong>al benefit <strong>of</strong> choos<strong>in</strong>g a<br />

service is solely determ<strong>in</strong>ed by QAs. Figure 3<br />

illustrates this scenario.<br />

The marg<strong>in</strong>al benefit <strong>of</strong> choos<strong>in</strong>g <strong>the</strong> SES with<br />

algorithm A should be greater than <strong>the</strong> benefit ga<strong>in</strong>ed<br />

from choos<strong>in</strong>g <strong>the</strong> SES with algorithm B or algorithm<br />

C. If <strong>the</strong> search performed by SES with algorithm A<br />

is faster by 5 seconds, <strong>and</strong> it would take 10 seconds<br />

to transfer <strong>the</strong> data from San Jose (SJ) to New York<br />

(NY) as opposed to <strong>the</strong> SES with algorithm B which<br />

would have <strong>the</strong> same results <strong>in</strong> 7 seconds but with<br />

only a 1 second travel time <strong>of</strong> <strong>the</strong> results, <strong>the</strong> SC is<br />

better <strong>of</strong>f choos<strong>in</strong>g <strong>the</strong> SES with algorithm B. This<br />

trade <strong>of</strong>f is not modeled <strong>in</strong> <strong>the</strong> current work<strong>in</strong>g<br />

st<strong>and</strong>ards. QAs <strong>of</strong> a service need to taken <strong>in</strong>to<br />

account to address this scenario.<br />

Figure 1: The Basic Pattern <strong>of</strong> <strong>the</strong> <strong>Service</strong><br />

Oriented Architecture<br />

Search Eng<strong>in</strong>e<br />

(Algoritm A)<br />

SJ<br />

Search Eng<strong>in</strong>e<br />

(Algoritm C)<br />

NY<br />

Publish<br />

Search Eng<strong>in</strong>e<br />

(Algoritm A)<br />

Publish<br />

UDDI<br />

Directory<br />

(SJ)<br />

UDDI<br />

Directory<br />

(NY)<br />

Publish<br />

Publish<br />

Search Eng<strong>in</strong>e<br />

(Algoritm B)<br />

NY<br />

F<strong>in</strong>d<br />

UDDI<br />

Directory<br />

Publish<br />

Search Eng<strong>in</strong>e<br />

(Algoritm A)<br />

User<br />

Application<br />

F<strong>in</strong>d<br />

User<br />

Application<br />

B<strong>in</strong>d to ?<br />

Publish<br />

Search Eng<strong>in</strong>e<br />

(Algoritm A)<br />

Figure 2: <strong>Service</strong> Providers All with <strong>the</strong> Same<br />

Functional Attributes<br />

In Figure 2, all <strong>the</strong> SPs have <strong>the</strong> same FAs; <strong>the</strong>y<br />

are all us<strong>in</strong>g <strong>the</strong> same algorithm to do <strong>the</strong> search. A<br />

simple service type search will not be able to unveil<br />

any potent <strong>in</strong>formation about <strong>the</strong> services available.<br />

This scenario will be <strong>the</strong> more likely scenario as <strong>the</strong><br />

Figure 3: Effects <strong>of</strong> Marg<strong>in</strong>al Benefit <strong>in</strong> Choos<strong>in</strong>g<br />

a <strong>Service</strong><br />

The above scenario would become more<br />

unpredictable if all <strong>the</strong> services have <strong>the</strong> same FAs<br />

<strong>and</strong> only vary <strong>in</strong> <strong>the</strong>ir QAs. This situation would be<br />

described by economists as perfect competition [18].<br />

Currently, <strong>the</strong> UDDI protocol works as follows:<br />

The User Application sends a request to <strong>the</strong> directory,<br />

<strong>and</strong> <strong>the</strong> UDDI returns with <strong>the</strong> results. The request<br />

for <strong>the</strong> SES depicted <strong>in</strong> figure 1 is as follows:<br />

<br />

%AlgorithmB%


We assume <strong>in</strong> this case that <strong>the</strong> bus<strong>in</strong>ess key is<br />

known <strong>and</strong> Acme <strong>Web</strong> <strong>Service</strong>s is <strong>of</strong>fer<strong>in</strong>g <strong>the</strong> three<br />

search eng<strong>in</strong>es mentioned before. For large scale,<br />

over <strong>the</strong> Internet deployment, <strong>the</strong> SC must be able to<br />

leave out <strong>the</strong> bus<strong>in</strong>ess key field <strong>and</strong> search <strong>the</strong><br />

directory solely us<strong>in</strong>g keywords.<br />

The UDDI, which has <strong>the</strong> three SES’s registered<br />

with it, returns <strong>the</strong> follow<strong>in</strong>g results to <strong>the</strong> User<br />

Application:<br />

<br />

<br />

<br />

Acme Search <strong>Service</strong> B<br />

<br />

<br />

<br />

<br />

There are API implementations that encapsulate<br />

UDDI protocol such as UDDI4J [6] by IBM, but <strong>the</strong><br />

underly<strong>in</strong>g wire-format messages sent back <strong>and</strong> forth<br />

between <strong>the</strong> UDDI directory <strong>and</strong> <strong>the</strong> user Application<br />

are very similar as shown above.<br />

7. Proposed Extensions to UDDI<br />

The concept <strong>of</strong> dist<strong>in</strong>guish<strong>in</strong>g between<br />

Functional Attributes <strong>and</strong> <strong>Quality</strong> Attributes is <strong>the</strong><br />

first step towards adopt<strong>in</strong>g <strong>the</strong> notion <strong>of</strong> QoS onto<br />

<strong>Web</strong> <strong>Service</strong>s. As with def<strong>in</strong><strong>in</strong>g any language, <strong>the</strong>re<br />

are a number <strong>of</strong> obstacles that need to be overcome <strong>in</strong><br />

order to create a Ubiquitous Language that would<br />

describe <strong>Quality</strong> Attributes:<br />

• Semantic ambiguity <strong>of</strong> <strong>the</strong> attributes<br />

o Example: turn_around_time = 60 sec<br />

vs. turn_around_time = 1 m<strong>in</strong><br />

• Syntactic ambiguity <strong>of</strong> attributes<br />

o Example: turn_around_time vs.<br />

turnAroundTime<br />

• Ambiguity <strong>of</strong> application specific attributes<br />

o Example: Two SPs have <strong>the</strong> same QAs,<br />

but each one is expressed differently.<br />

For <strong>in</strong>stance, one service might express<br />

reliability as a percentage (99.999%),<br />

versus ano<strong>the</strong>r which expresses it <strong>in</strong><br />

days, <strong>of</strong> a cont<strong>in</strong>uously runn<strong>in</strong>g service<br />

In order to mitigate some <strong>of</strong> <strong>the</strong>se difficulties, we<br />

have broken <strong>Quality</strong> Attributes <strong>in</strong>to two<br />

subcategories: Application Specific QAs, <strong>and</strong><br />

General QAs. There should be an agreed upon set <strong>of</strong><br />

QAs that would be common to all services, <strong>and</strong> <strong>the</strong>re<br />

could also be QAs that are more specific to an<br />

application type. We have also added <strong>the</strong> concept <strong>of</strong><br />

<strong>Quality</strong> Weights (QW) as <strong>the</strong> means <strong>of</strong> measur<strong>in</strong>g <strong>the</strong><br />

importance factor <strong>of</strong> a QA.<br />

As mentioned before, <strong>the</strong>re is no direct way to<br />

dist<strong>in</strong>guish between SPs <strong>of</strong>fer<strong>in</strong>g <strong>the</strong> same service.<br />

Thus, <strong>the</strong> SCs need <strong>the</strong> ability to state <strong>the</strong>ir quality<br />

requirements such as reliability, precision,<br />

availability <strong>of</strong> service, turn around time <strong>of</strong> results <strong>and</strong><br />

o<strong>the</strong>r non-functional attributes, <strong>in</strong> order to be able to<br />

decide on an SP <strong>in</strong> real-time.<br />

These QAs need to be generic to all <strong>the</strong> attributes<br />

to enable an SC to discover <strong>the</strong> appropriate SP. It is<br />

important to mention that QAs are only needed if <strong>the</strong><br />

SC desires a better-than-best-effort service, <strong>and</strong> are<br />

not m<strong>and</strong>atory to <strong>the</strong> service discovery process.<br />

Table 1 lists some <strong>of</strong> <strong>the</strong> Application Specific<br />

<strong>and</strong> General QAs. For Reliability <strong>and</strong> Security, <strong>the</strong>re<br />

could be many attributes associated with <strong>the</strong>m. Only<br />

an abstract attribute <strong>of</strong> each is depicted <strong>in</strong> table 1.<br />

8. Measur<strong>in</strong>g <strong>Quality</strong><br />

The SC will choose some or <strong>the</strong> entire QA list<br />

shown <strong>in</strong> table 1. These attributes are chosen based<br />

on <strong>the</strong> needs <strong>of</strong> <strong>the</strong> SC <strong>and</strong> <strong>the</strong> task that needs to be<br />

accomplished. There could be o<strong>the</strong>r attributes, but<br />

<strong>the</strong> list mentioned <strong>in</strong> table 1 represent <strong>the</strong> most<br />

common attributes that are required to represent<br />

quality <strong>of</strong> a service. The weight <strong>of</strong> each attribute is<br />

sent by <strong>the</strong> SC <strong>in</strong>itially to <strong>the</strong> UDDI dur<strong>in</strong>g <strong>the</strong><br />

service discovery phase. The SC along with <strong>the</strong> list<br />

<strong>of</strong> <strong>the</strong> attributes sets a flag called calculate_qos to<br />

true or false depend<strong>in</strong>g on whe<strong>the</strong>r it wishes <strong>the</strong><br />

UDDI to calculate <strong>the</strong> QoS <strong>of</strong> a service on its behalf,<br />

or <strong>the</strong> SC wants <strong>the</strong> UDDI to send back <strong>the</strong> attributes<br />

along with <strong>the</strong>ir values to be calculated by <strong>the</strong> SC.<br />

This flag is very useful for mobile devices or devices<br />

with limited comput<strong>in</strong>g capability to <strong>of</strong>f load <strong>the</strong> QoS<br />

calculation that could sometimes be processor<br />

<strong>in</strong>tensive to <strong>the</strong> directory. From <strong>the</strong> QoS values<br />

returned by <strong>the</strong> UDDI directory, <strong>the</strong> SC determ<strong>in</strong>es<br />

which service it will connect to. An example <strong>of</strong> <strong>the</strong><br />

UDDI service f<strong>in</strong>d query is shown below:<br />

<br />

%AlgorithmB%<br />

<br />

<br />

<br />

80


1<br />

<br />

< comm_protocol match =“exact”><br />

HTTPS <br />

<br />

<br />

<br />

< security_type match = “exact”><br />

SSL <br />

<br />

<br />

<br />

< time_scale match = ‘exact”><br />

sec <br />

<br />

<br />

<br />

< ta_time match = “max”><br />

3600 <br />

<br />

<br />

<br />

< relative_scale match = “exact”><br />

% <br />

<br />

<br />

<br />

< reliability match = “m<strong>in</strong>”><br />

85 <br />

<br />

<br />

<br />

<br />

The UDDI upon receiv<strong>in</strong>g this message will<br />

modify <strong>the</strong> search by tak<strong>in</strong>g <strong>the</strong> QAs with <strong>the</strong> highest<br />

weights <strong>in</strong>to account. Weights <strong>of</strong> zero represents<br />

<strong>in</strong>formational fields <strong>and</strong> are used to establish <strong>the</strong><br />

clear protocol between <strong>the</strong> SC <strong>and</strong> <strong>the</strong> UDDI. Any<br />

scale attributes, such as time_scale, would be<br />

considered <strong>in</strong>formational <strong>and</strong> are used to establish <strong>the</strong><br />

basis for <strong>the</strong> dialog between <strong>the</strong> SC <strong>and</strong> UDDI.<br />

Us<strong>in</strong>g <strong>the</strong> “match” field <strong>of</strong> every attribute, UDDI<br />

can narrow <strong>the</strong> search <strong>and</strong> better estimate <strong>the</strong> <strong>Quality</strong><br />

Value (QV). The “match” field dictates <strong>the</strong> accuracy<br />

<strong>of</strong> <strong>the</strong> desired QA. The “match” field can have four<br />

different values:<br />

• exact – <strong>the</strong> QA value must match exactly<br />

• m<strong>in</strong> – <strong>the</strong> value given for <strong>the</strong> QA is <strong>the</strong><br />

m<strong>in</strong>imum desired value<br />

• max – <strong>the</strong> value given for <strong>the</strong> QA is <strong>the</strong><br />

maximum allowed<br />

• value unknown – <strong>the</strong> value for <strong>the</strong> QA is not<br />

known<br />

The UDDI will <strong>the</strong>n use <strong>the</strong> search result to<br />

calculate <strong>the</strong> QV as follows:<br />

• For each QA that meets <strong>the</strong> accuracy<br />

requirement, <strong>the</strong> value <strong>of</strong> <strong>the</strong> weight is<br />

added to <strong>the</strong> overall QV.<br />

• For each QA that does not meet <strong>the</strong> accuracy<br />

requirement, <strong>the</strong> value <strong>of</strong> <strong>the</strong> weight is<br />

subtracted from <strong>the</strong> overall QV.<br />

• The attributes with a weight <strong>of</strong> zero are used<br />

to establish dialog <strong>and</strong> ensure <strong>the</strong> scale <strong>of</strong><br />

comparison <strong>of</strong> data<br />

• The attributes with an unknown value are<br />

not considered, <strong>and</strong> only <strong>in</strong>dicate to <strong>the</strong><br />

directory that <strong>the</strong> SC is <strong>in</strong>terested <strong>in</strong><br />

know<strong>in</strong>g <strong>the</strong> value. The values for <strong>the</strong>se<br />

attributes <strong>in</strong>dicated unknown are returned<br />

with <strong>the</strong> search results<br />

The weights assigned are arbitrarily <strong>and</strong> relative. The<br />

UDDI returns <strong>the</strong> QV for <strong>the</strong> services that closely<br />

match <strong>the</strong> required attributes <strong>and</strong> <strong>the</strong> SC determ<strong>in</strong>es<br />

to which SP to connect to.<br />

Let us assume <strong>in</strong>itially that <strong>the</strong> SC has requested<br />

<strong>the</strong> directory to calculate <strong>the</strong> QV, <strong>and</strong> return it with<br />

<strong>the</strong> search result. In this case, <strong>the</strong> follow<strong>in</strong>g would be<br />

returned from <strong>the</strong> directory as it conforms to figure 2.<br />

<br />

<br />

<br />

Acme Search <strong>Service</strong> B1<br />

<br />

175 <br />

<br />

<br />

Acme Search <strong>Service</strong> B2<br />

<br />

205 <br />

1 Due to space limitations, we have abbreviated <strong>the</strong><br />

word quality_attribute with ‘qa’ <strong>and</strong> <strong>the</strong><br />

with


Type Attribute Attribute Name Example<br />

Application Specific Accuracy <strong>of</strong> results result_accuracy<br />

result_accuracy = 78<br />

weight = 100<br />

Interface requirements <strong>in</strong>terface_grammar<br />

<strong>in</strong>terface_grammar = “<strong>in</strong>t <strong>in</strong>t str<strong>in</strong>g<br />

real”<br />

weight = 10<br />

comm_protocol = https<br />

weight = 40<br />

Protocol used<br />

comm_protocol<br />

Security variables: type <strong>of</strong><br />

security – certificate <strong>and</strong> <strong>the</strong><br />

location <strong>of</strong> <strong>the</strong> certificate, etc… security_type<br />

Session state variables: session<br />

timeout, maximum number <strong>of</strong><br />

session variables allowed, keep<br />

alive timeout<br />

Time scale<br />

<br />

<br />

Acme Search <strong>Service</strong> B3<br />

<br />

25 <br />

<br />

<br />

<br />

In <strong>the</strong> scenario described above, Acme <strong>Service</strong>s<br />

Corp. <strong>of</strong>fers three SES’s, all us<strong>in</strong>g <strong>the</strong> same<br />

session_timeout,<br />

max_session_var,<br />

keep_alive_to<br />

time_scale<br />

General Value scale value_scale<br />

Cost scale<br />

Size scale<br />

Relative scale<br />

Price<br />

Turn around time <strong>of</strong> results<br />

B<strong>and</strong>width requirements<br />

Total data to be transmitted<br />

Reliability<br />

Log<strong>in</strong> Required<br />

cost_scale<br />

size_scale<br />

relative_scale<br />

cost_per_usage<br />

ta_time<br />

b<strong>and</strong>width_req<br />

est_data_size<br />

reliability<br />

req_log<strong>in</strong><br />

Table 1: <strong>Quality</strong> Attributes <strong>and</strong> Example Values<br />

security_type = SSL<br />

weight = 40<br />

session_timeout = 600<br />

max_session_var = 10<br />

keep_alive_to = 30<br />

weight = 10<br />

time_scale = seconds<br />

weight = 0<br />

value_scale = real<br />

weight = 0<br />

cost_scale = USD<br />

weight = 0<br />

size_scale = KB<br />

weight = 0<br />

relative_scale = %<br />

weight = 0<br />

cost_per_usage = 0.50<br />

weight = 101<br />

ta_time = 360<br />

weight = 90<br />

B<strong>and</strong>width_req = 256<br />

Weight = 10<br />

est_data_size = 1024<br />

weight = 10<br />

reliability = 99.999<br />

weight = 100<br />

req_log<strong>in</strong> = false<br />

weight = 10<br />

algorithm, algorithm B. Based on <strong>the</strong> QAs desired by<br />

<strong>the</strong> SC, <strong>the</strong> directory service calculates <strong>the</strong> (QV) <strong>and</strong><br />

returns it with <strong>the</strong> search results. The SC can <strong>the</strong>n<br />

determ<strong>in</strong>e to which SES it wants to connect to: Acme<br />

Search <strong>Service</strong> B2 <strong>in</strong> this case.<br />

9. Benefits <strong>of</strong> QoS<br />

In addition to <strong>the</strong> filter<strong>in</strong>g ability ga<strong>in</strong>ed dur<strong>in</strong>g<br />

discovery time by <strong>the</strong> SC <strong>in</strong> choos<strong>in</strong>g an SP, <strong>the</strong> SC<br />

can cache <strong>the</strong> returned QVs for later use. In recovery<br />

time, <strong>the</strong> QVs can <strong>in</strong>itially be used to fur<strong>the</strong>r<br />

<strong>in</strong>vestigate <strong>the</strong> possibilities <strong>of</strong> choos<strong>in</strong>g a backup.<br />

The backup <strong>and</strong> recovery benefits <strong>of</strong> add<strong>in</strong>g QoS is


even greater when <strong>the</strong> environment <strong>in</strong> which <strong>the</strong>se<br />

services are deployed is closely adm<strong>in</strong>istered. O<strong>the</strong>r<br />

scenarios <strong>in</strong> which <strong>the</strong> QoS can be <strong>of</strong> use is dur<strong>in</strong>g<br />

<strong>the</strong> contract negotiation phase between <strong>the</strong> two<br />

parties, ei<strong>the</strong>r <strong>in</strong> person or electronically.<br />

10. Conclusion<br />

In this paper, we have shown some proposed<br />

extensions <strong>and</strong> <strong>the</strong>ir benefits to WS dur<strong>in</strong>g <strong>the</strong><br />

service discovery phase. The concept <strong>of</strong> <strong>Quality</strong><br />

Attributes <strong>and</strong> <strong>Quality</strong> Weights were <strong>in</strong>troduced to<br />

enable <strong>the</strong> <strong>Service</strong> Consumers to make a more<br />

determ<strong>in</strong>istic <strong>and</strong> predictable decision when choos<strong>in</strong>g<br />

to b<strong>in</strong>d to a service. These attributes can also ease<br />

<strong>the</strong> unpredictability <strong>of</strong> fail-over situations <strong>and</strong> aid <strong>the</strong><br />

choos<strong>in</strong>g <strong>of</strong> a backup service dur<strong>in</strong>g recovery. We<br />

recommend <strong>the</strong>se changes to be implemented <strong>in</strong><br />

UDDI to enable a true end-to-end <strong>Quality</strong> <strong>of</strong> <strong>Service</strong><br />

capability for <strong>Web</strong> <strong>Service</strong>s.<br />

11. Future Work<br />

More research needs to be done on <strong>the</strong> model<strong>in</strong>g<br />

<strong>of</strong> <strong>the</strong> various stages <strong>of</strong> <strong>Web</strong> <strong>Service</strong>s. Fur<strong>the</strong>rmore,<br />

<strong>the</strong> application <strong>of</strong> <strong>Web</strong> <strong>Service</strong>s <strong>in</strong> S<strong>of</strong>tware Agents<br />

needs to be fur<strong>the</strong>r studied.<br />

12. Acknowledgement<br />

The author would like to thank Ken Brooks for his<br />

tireless feedback <strong>and</strong> for assistance with this research<br />

project.<br />

13. References<br />

[1] Anbazhagan Mani, Nagarajan Arun, Underst<strong>and</strong><strong>in</strong>g<br />

quality <strong>of</strong> service for <strong>Web</strong> services, IBM developerWorks,<br />

http://www-<br />

106.ibm.com/developerworks/webservices/library/wsquality.html,<br />

April 2004<br />

[2] Judith M. Myerson, IBM S<strong>of</strong>tware Group, Advanc<strong>in</strong>g<br />

<strong>the</strong> <strong>Web</strong> services stack,<br />

IBM developerWorks, http://www-<br />

106.ibm.com/developerworks/webservices/library/ws-wsa,<br />

April 2004<br />

[3] IBM <strong>Web</strong> <strong>Service</strong>s Architecture Team, <strong>Web</strong> <strong>Service</strong>s<br />

architecture overview, IBM developerWorks, http://www-<br />

106.ibm.com/developerworks/web/library/w-ovr/, April<br />

2004<br />

[4] Kreger Hea<strong>the</strong>r, IBM S<strong>of</strong>tware Group,<br />

<strong>Web</strong> <strong>Service</strong>s Conceptual Architecture (WSCA 1.0),<br />

IBM <strong>Web</strong> <strong>Service</strong>s, http://www-<br />

3.ibm.com/s<strong>of</strong>tware/solutions/webservices/pdf/WSCA.pdf,<br />

April 2004<br />

[5] Simple Object Access Protocol (SOAP) 1.2, World<br />

Wide <strong>Web</strong> Consortium, http://www.w3c.org, April 2004<br />

[6] UDDI4J Java API, IBM UDDI4J V2.0.2, Onl<strong>in</strong>e-<br />

Documentation,<br />

http://www-<br />

124.ibm.com/developerworks/oss/uddi4j, April 2004<br />

[7] UDDI Version 3 Specification, UDDI.org,<br />

http://www.oasis-open.org, April 2004<br />

[8] <strong>Web</strong> <strong>Service</strong>s Description Language (WSDL) 1.1,<br />

World Wide <strong>Web</strong> Consortium, http://www.w3c.org, April<br />

2004<br />

[9] Campbell, A., Coulson, G., García, F., Hutchison, D.,<br />

<strong>and</strong> H. Leopold, “Integrated <strong>Quality</strong> <strong>of</strong> <strong>Service</strong> for<br />

Multimedia Communications”, Proc. IEEE Infocom’93,<br />

Hotel Nikko, San Francisco, CA, March 1993<br />

[10] Campbell, A., “A <strong>Quality</strong> <strong>of</strong> <strong>Service</strong> Architecture”,<br />

Ph.D. Dissertation, Comput<strong>in</strong>g Department, Lancaster<br />

University, January 1996<br />

[11] Lazar, A.A., “A Real-time Control, Management, <strong>and</strong><br />

Information Transport Architecture for Broadb<strong>and</strong><br />

Networks”, Proc. International Zurich Sem<strong>in</strong>ar on Digital<br />

Communications, pp. 281-295, 1992<br />

[12] Saltzer, J., Reed, D., <strong>and</strong> D. Clark, "End-to-end<br />

Arguments <strong>in</strong> Systems Design", ACM Trans. on Computer<br />

Systems, Vol. 2, No. 4, 1984<br />

[13] Tennenhouse, D.L., “Layered Multiplex<strong>in</strong>g<br />

Considered Harmful”, H. Rud<strong>in</strong> <strong>and</strong> R. Williamson, eds.,<br />

Protocols for High-Speed Networks, pages 143-148,<br />

Amsterdam, North-Holl<strong>and</strong>, 1989<br />

[14] Clark, D., <strong>and</strong> D.L. Tennenhouse, "Architectural<br />

Consideration for a New Generation <strong>of</strong> Protocols", Proc.<br />

ACM SIGCOMM ‘90, Philadelphia, USA, 1990<br />

[15] Private communication with Chris Sluman, 1995<br />

[16] Anderson, M., Tzou, S.Y., Wahbe, R., Govidan, R.<br />

<strong>and</strong> Andrews, M., "Support for Cont<strong>in</strong>uous Media <strong>in</strong> <strong>the</strong><br />

DASH System", Proc <strong>of</strong> <strong>the</strong> 10th International<br />

Conference on Distributed Comput<strong>in</strong>g Systems, Paris, May<br />

1990<br />

[17] Graham, S., Simeonov, S., Boubez, T., Davis, D.,<br />

Daniels, G., Nakamura, Y., Neyama, R., Build<strong>in</strong>g <strong>Web</strong><br />

<strong>Service</strong>s with Java, Sams Publish<strong>in</strong>g, USA, 2002<br />

[18] Perfect Competition, L<strong>and</strong> <strong>and</strong> Freedom Lessons <strong>in</strong><br />

Economics,<br />

http://www.l<strong>and</strong><strong>and</strong>freedom.org/econ/econ8f.htm, April<br />

2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!