should mirror operations be dropped? david booth w3c fellow / hewlett-packard

34
Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett- Packard

Upload: everett-hawke

Post on 30-Mar-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Should Mirror Operations Be Dropped?

David BoothW3C Fellow / Hewlett-Packard

Page 2: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Current Status

Four Message Exchange Patterns (MEPs):

• Input-Output (was "Request-Response")

• Input-Only (was "One-Way")

• Output-Input (was "Solicit-Response")

• Output-Only (was "Notification")

"Mirror ops": Output-Input, Output-Only

Page 3: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Problems with Mirror Ops

1. Multiple interpretations: event? callback?

2. Little evidence of use

3. Where to get the Client's address?

4. Inconsistent treatment of Faults? • Input-Output: Fault is an alternate Output• Input-Only:  (no Faults)• Output-Input: Fault is an alternate Input• Output-Only: (no Faults)

Page 4: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

What I Did

Abstract analysis:

• Suppose we used WS descriptions in a larger context.  Would we want mirror ops?

• Example: Markets

Page 5: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Potential Application: Markets

• Multiple Clients, Multiple Services• Any Client can talk to any Service (of the same

type)

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

Page 6: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Markets

• Ways to match Client and Service:– Client and Service share same WSDL– Client and Service have complementary

WSDLs

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

Page 7: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Shared Service Descriptions

• Role must be separately indicated:– Client: "I'm a T Client"

– Service: "I'm a T Service"

• Binding information is lopsided (Service-centric)

– Binding has Service-specific info (address)

– Where is Client-specific info placed?

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1T

Page 8: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Shared: One WSDL per Service

• {T1, T2, T3} could be specific to {B1, B2, B3}– T1 has B1's address, T2 has B2's address, etc.– B1: "I'm a T1 Service"– B2: "I'm a T2 Service", etc.

• Each Client could reference all {T1, T2, T3}:"I'm a T1Client, a T2 Client and a T3 Client"

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

T3T2T1

Page 9: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Shared: Referencing a Common T

• {T1, T2, T3} could reference generic T– T1 has B1's address, T2 has B2's address, etc.

• B1: "I'm a T1"

– T is Service-centric, but not identity-centric (I.e., no address)

• Client could reference generic T:– "I'm a T Client"

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

T3T2T1T

Page 10: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

TA3

TA2

Shared: Client, Service Ref T

• {TA1, TA2, TA3}, {TB1, TB2, TB3} are all identity-specific

– TA1: "A1 is a T Client"– TB1: "B1 is a T Service"

• T does not contain address

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

TB3

TB2

TB1TTA1

Page 11: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

TA3

TA2

Shared: Role-Specific Descriptions

• TC and TS are role-specific, but not identity-specific:

– TC: "I am a T Client"– TS: "I am a T Service"

• T does not contain address or role info

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

TB3

TB2

TB1TTA1 TC TS

Page 12: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

TA3

TA2

Shared: Conclusion

• Sharing requires mirror ops only if you think they're important

– Need Output-Input?– Need Output-Only?

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

TB3

TB2

TB1TTA1

Page 13: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Complementary Service Descriptions

• Symmetric ("Peer-to-Peer")• T describes Service; ~T describes Client• T, ~T indicate:

– Generic info (T)– Role-specific info (Client vs. Service)– Identity-specific info (address)

• Requires (complementary) equivalence to match

~T T

Service

B3

Service

B2

Service

B1

Service

A3

Service

A2

Client

A1

Page 14: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Complementary: Observation

• Complementary approach requires mirror ops

– Inputs of T are Outputs of ~T– Outputs of T are Inputs of ~T

~T T

Service

B3

Service

B2

Service

B1

Service

A3

Service

A2

Client

A1

Page 15: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

TA3

TA2

Complementary: Identity-Specific Info

• {TA1, TA2, TA3}, {TB1, TB2, TB3} are all identity-specific

– TA1: "A1 is a ~T"– TB1: "B1 is a T"

• T, ~T do not contain addresses

Service

A3

Service

A2

Client

A1

Service

B3

Service

B2

Service

B1

TB3

TB2

TB1~TTA1

T

Page 16: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Conclusions

• Mirror ops add flexibility

• Identity-specific info (address) should be separated from shared info

• Other binding info can be shared:transport protocol, etc.

Page 17: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

END

Page 18: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

WSDL Information Sharing

From most shared to least shared:1. Message types

2. Message direction (input/output)

3. Transport protocol, Message encoding

4. Address (Not shared!)

The least shared info should be latest bound

Page 19: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Observations on MEPs

Page 20: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEPs

Sequence:1. A sends W to B2. B sends X to A3. A sends Y to B4. B sends Z to A

X

Y

Z

W 12

34

B's ViewA's View

Page 21: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: B's View

One big MEP:

• PWXYZ: Receive W, send X, receive Y, send Z

B's View

X

Y

Z

W 12

34

A's ViewPWXYZ

Page 22: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: B's View

Two "Request-Response" MEPs:

• PWX: Receive W, send X

• PYZ: Receive Y, send Z

B's View

X

Y

Z

W 12

34

A's ViewPWX

PYZ

Page 23: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: B's View

Q: Should B care how A models its interactions with B?

A: Of course not.

B's View

X

Y

Z

W 12

34

A's ViewPWX

PYZ

Page 24: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: A's View 1

Two "Solicit-Response" MEPs:

• PWX: Send W, receive X

• PYZ: Send Y, receive Z

B's View

X

Y

Z

W 12

34

A's ViewPWX

PYZ

Page 25: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: A's View 2

Three MEPs:• PW: Send W ("Notification")• PXY: Receive X, send Y ("Request-Response")• PZ: Receive Z ("One-way")

B's View

X

Y

Z

W 12

34

A's View

PXY

PW

PZ

Page 26: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: A's View 3

Four MEPs:• PW: Send W ("Notification")• PX: Receive X ("One-way")• PY: Send Y ("Notification")• PZ: Receive Z ("One-way")

B's View

X

Y

Z

W 12

34

A's View

PX

PW

PZ

PY

Page 27: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEP: A's View 4

Two MEPs:• PWX: Send W, receive X ("Solicit-Response")• PYZ: Send Y, receive Z ("Request-Response")

B's View

X

Y

Z

W 12

34

A's ViewPWZ

PXY

Page 28: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEPs Are Relative

Observation:

• MEPs are role-specific

B's View

X

Y

Z

W 12

34

A's ViewPWZ

PXY

PWX

PYZ

Page 29: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEPs Are Relative

• A makes PWZ from half of PWX and half of PYZ

B's View

X

Y

Z

W 12

34

A's View

PXY

PWX

PYZ

PWZ

Page 30: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

MEPs Are Relative

• A makes PXY from half of PWX and half of PYZ

B's View

X

Y

Z

W 12

34

A's ViewPWZ

PXY

PWX

PYZ

Page 31: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Role-Specific Information

Page 32: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Service

B

Service

A

Role-Specific Information

Suppose:• A must send B messages in format X• X represents message format definition• A, B reference X• X contains role-specific information, e.g., "<in>" (from B's

perspective)• A, B use the same software T to generate Sender and Receiver

from X

ReceiverSender

X

<in>

T

Page 33: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Service

B

Service

A

Role-Specific Information

Observation:• Q: How does T know whether to generate

Sender or Receiver from X?• A: T must have other information• Therefore "<in>" is unnecessary in X

ReceiverSender

<in>

T

X

Page 34: Should Mirror Operations Be Dropped? David Booth W3C Fellow / Hewlett-Packard

Service

B

Service

A

Role-Specific Information

• Conclusion: Information that is shared between different roles should not contain role-specific information

• Examples of role-specific information:– "<input>", "<output>", "one-way", address

ReceiverSender

<in>

T

X