generating interface grammars from wsdl for automated verification of web services (talk @ icsoc...
DESCRIPTION
Using interface grammars to model the interface contract of a web service, we can automatically generate stubs and drivers to test and verify a web service client.TRANSCRIPT
![Page 1: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/1.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Sylvain Hallé, Graham Hughes,Tevfik Bultan, Muath Alkhalaf
Generating Interface Grammarsfrom WSDL for AutomatedVerification of Web Services
University of CaliforniaSanta Barbara, USA
![Page 2: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/2.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
![Page 3: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/3.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
![Page 4: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/4.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
$
![Page 5: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/5.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
?
![Page 6: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/6.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
express checkoutexpress checkout
?
![Page 7: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/7.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
express checkoutexpress checkout
!
![Page 8: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/8.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
express checkoutexpress checkout
!
?
![Page 9: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/9.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
express checkoutexpress checkout
![Page 10: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/10.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
express checkoutexpress checkout
![Page 11: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/11.jpg)
Hallé, Hughes, Bultan, Alkhalaf
A motivating scenario
express checkoutexpress checkout
![Page 12: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/12.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
![Page 13: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/13.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
PPPP
![Page 14: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/14.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
PPPP
![Page 15: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/15.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 1234<Token> </Token>
PPPP
![Page 16: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/16.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 1234<Token> </Token>
<GetExpressCheckoutDetails>
</GetExpressCheckoutDetails>
1234 abcd<Token> </Token><PayerID> </PayerId>
PPPP
![Page 17: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/17.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 1234<Token> </Token>
<GetExpressCheckoutDetails>
</GetExpressCheckoutDetails>
1234 abcd<Token> </Token><PayerID> </PayerId>
<GetExpressCheckoutDetailsResponse>
</GetExpressCheckoutDetailsResponse>
1234 abcd ...
<Token> </Token><PayerID> </PayerId><PaymentDetails> </PaymentDetails>
PPPP
![Page 18: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/18.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 1234<Token> </Token>
<GetExpressCheckoutDetails>
</GetExpressCheckoutDetails>
1234 abcd<Token> </Token><PayerID> </PayerId>
<GetExpressCheckoutDetailsResponse>
</GetExpressCheckoutDetailsResponse>
1234 abcd ...
<Token> </Token><PayerID> </PayerId><PaymentDetails> </PaymentDetails>
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPP
![Page 19: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/19.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 1234<Token> </Token>
<GetExpressCheckoutDetails>
</GetExpressCheckoutDetails>
1234 abcd<Token> </Token><PayerID> </PayerId>
<GetExpressCheckoutDetailsResponse>
</GetExpressCheckoutDetailsResponse>
1234 abcd ...
<Token> </Token><PayerID> </PayerId><PaymentDetails> </PaymentDetails>
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
<DoExpressCheckoutPaymentResponse>
</DoExpressCheckoutPaymentResponse>
1234 7890
<Token> </Token><PaymentInfo>
</PaymentInfo><TransactionID> </TransactionId>
PPPP
![Page 20: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/20.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 1234<Token> </Token>
<GetExpressCheckoutDetails>
</GetExpressCheckoutDetails>
1234 abcd<Token> </Token><PayerID> </PayerId>
<GetExpressCheckoutDetailsResponse>
</GetExpressCheckoutDetailsResponse>
1234 abcd ...
<Token> </Token><PayerID> </PayerId><PaymentDetails> </PaymentDetails>
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
<DoExpressCheckoutPaymentResponse>
</DoExpressCheckoutPaymentResponse>
1234 7890
<Token> </Token><PaymentInfo>
</PaymentInfo><TransactionID> </TransactionId>
PPPPMany ways to make the exchange fail
![Page 21: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/21.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
PPPPMany ways to make the exchange fail
![Page 22: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/22.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Name> </Name>
</SetExpressCheckoutRequest>
<PaymentDetails>
<FooBar> </FooBar> </PaymentDetails>
1234 50 John Doe ...
bazbaz
<Token> </Token><OrderTotal> </OrderTotal><CustomerAddress>
</CustomerAddress>
PPPPMany ways to make the exchange fail
![Page 23: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/23.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Name> </Name>
</SetExpressCheckoutRequest>
<PaymentDetails>
<FooBar> </FooBar> </PaymentDetails>
1234 50 John Doe ...
bazbaz
<Token> </Token><OrderTotal> </OrderTotal><CustomerAddress>
</CustomerAddress>
PPPPMany ways to make the exchange fail
![Page 24: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/24.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Name> </Name>
</SetExpressCheckoutRequest>
<PaymentDetails>
<FooBar> </FooBar> </PaymentDetails>
1234 50 John Doe ...
bazbaz
<Token> </Token><OrderTotal> </OrderTotal><CustomerAddress>
</CustomerAddress>
PPPPMany ways to make the exchange fail
![Page 25: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/25.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Name> </Name>
</SetExpressCheckoutRequest>
<PaymentDetails>
<FooBar> </FooBar> </PaymentDetails>
1234 50 John Doe ...
bazbaz
<Token> </Token><OrderTotal> </OrderTotal><CustomerAddress>
</CustomerAddress>
PPPP
unexpectedelement
Many ways to make the exchange fail
![Page 26: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/26.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Name> </Name>
</SetExpressCheckoutRequest>
<PaymentDetails>
<FooBar> </FooBar> </PaymentDetails>
1234 50 John Doe ...
bazbaz
<Token> </Token><OrderTotal> </OrderTotal><CustomerAddress>
</CustomerAddress>
PPPP
PaymentActionmissing
Many ways to make the exchange fail
![Page 27: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/27.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Name> </Name>
</SetExpressCheckoutRequest>
<PaymentDetails>
<FooBar> </FooBar> </PaymentDetails>
1234 50 John Doe ...
bazbaz
<Token> </Token><OrderTotal> </OrderTotal><CustomerAddress>
</CustomerAddress>
PPPPMany ways to make the exchange
1. Messagewith wrong
fail
structure
PaymentActionmissing
![Page 28: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/28.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
PPPPMany ways to make the exchange fail
![Page 29: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/29.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
PPPPMany ways to make the exchange fail
![Page 30: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/30.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 5678<Token> </Token>
PPPPMany ways to make the exchange fail
![Page 31: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/31.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 5678<Token> </Token>
PPPPMany ways to make the exchange fail
![Page 32: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/32.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 5678<Token> </Token>
PPPPMany ways to make the exchange fail
![Page 33: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/33.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 5678<Token> </Token>
PPPP
should beequal
Many ways to make the exchange fail
![Page 34: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/34.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 5678<Token> </Token>
PPPP
should beequal
Many ways to make the exchange
2. Messagewith goodstructure
fail
![Page 35: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/35.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<SetExpressCheckoutRequest>
<Number> </Number><Quantity> </Quantity>
</SetExpressCheckoutRequest>
<PaymentDetails>
</PaymentDetailsItem> <PaymentAction> </PaymentAction> </PaymentDetails>
<Token> </Token> <OrderTotal> </OrderTotal> <PaymentDetailsItem> 5
123450
4 61
Sale
<SetExpressCheckoutResponse>
</SetExpressCheckoutResponse> 5678<Token> </Token>
PPPP
should beequal
Many ways to make the exchange
2. Messagewith goodstructure but
values
fail
wrong
![Page 36: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/36.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
PPPPMany ways to make the exchange fail
![Page 37: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/37.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPPMany ways to make the exchange fail
![Page 38: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/38.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPPMany ways to make the exchange fail
![Page 39: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/39.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPPMany ways to make the exchange fail
![Page 40: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/40.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPP
the first occurrenceof a token must be ina SetExpressCheckoutrequest
Many ways to make the exchange fail
![Page 41: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/41.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPP
the first occurrenceof a token must be ina SetExpressCheckoutrequest
Many ways to make the exchange
3. Messagewith goodstructure andgood values
fail
![Page 42: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/42.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPP
the first occurrenceof a token must be ina SetExpressCheckoutrequest
Many ways to make the exchange
3. Messagewith goodstructure andgood valuesin the wrong
fail
sequence
![Page 43: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/43.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
<DoExpressCheckoutPaymentRequest>
</DoExpressCheckoutPaymentRequest>
1234 abcd Sale
<Token> </Token><PayerID> </PayerId><PaymentAction> </PaymentAction>
PPPP
the first occurrenceof a token must be ina SetExpressCheckoutrequest
Many ways to make the exchange
3. Messagewith goodstructure andgood valuesin the wrong
fail
sequence
???
![Page 44: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/44.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
???
![Page 45: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/45.jpg)
Hallé, Hughes, Bultan, Alkhalaf
More concretely
???
![Page 46: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/46.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
Proposed solution
![Page 47: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/47.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
�
Proposed solution
![Page 48: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/48.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
�
Proposed solution
![Page 49: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/49.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
DRIVER
�
Proposed solution
![Page 50: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/50.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
! Check if service does what we expect/understand
DRIVER
�
Proposed solution
![Page 51: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/51.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
! Check if service does what we expect/understand
DRIVER
� �
Proposed solution
![Page 52: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/52.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
! Check if service does what we expect/understand
...impersonate the service, generate responses to the client
DRIVER
� �
Proposed solution
![Page 53: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/53.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
! Check if service does what we expect/understand
...impersonate the service, generate responses to the client
DRIVER STUB
� �
Proposed solution
![Page 54: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/54.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We want to do, ...as automatically as possible
...impersonate the client, send test sequences to the service
! Check if service does what we expect/understand
...impersonate the service, generate responses to the client
! Environment closedmodel checking possibleÞ
DRIVER STUB
� �
Proposed solution
![Page 55: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/55.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
![Page 56: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/56.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Stub/driver
![Page 57: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/57.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
![Page 58: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/58.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
![Page 59: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/59.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
soapUI with "mock web services"
![Page 60: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/60.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Java API for XML Web Services; IBM Web Service Validation Tool (validation only)
![Page 61: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/61.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Cacciagrano et al., WS-FM 2006(validation only)
![Page 62: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/62.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Bai et al., SOSE 2005Bartolini et al., ICSOC 2008
![Page 63: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/63.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Hallé & Villemaire, CAV 2009(validation only)
![Page 64: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/64.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Hughes & Bultan, ISSTA 2007
![Page 65: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/65.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Hughes & Bultan, AFM 2007
![Page 66: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/66.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
Hughes & Bultan, TAV-WEB 2008
![Page 67: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/67.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Related work
Structure
Stub/driver
Constraints
Values
Sequence
The present paper
![Page 68: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/68.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
![Page 69: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/69.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
Control-flowconstraints
![Page 70: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/70.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
Interfacegrammar
Control-flowconstraintsG
![Page 71: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/71.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraintsG
![Page 72: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/72.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraintsTranslator G
![Page 73: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/73.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraintsTranslator G
![Page 74: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/74.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraintsTranslator
Interfacecompiler
G
![Page 75: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/75.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraints
Servicedriver
Translator
Interfacecompiler
G
![Page 76: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/76.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraints
Servicedriver
Translator
Interfacecompiler
G
![Page 77: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/77.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Translator
Interfacecompiler
G
![Page 78: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/78.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Translator
Interfacecompiler
G
![Page 79: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/79.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Translator
Interfacecompiler
automated
G
![Page 80: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/80.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Tool architecture
WSDL
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Translator
Interfacecompiler
automated
G
![Page 81: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/81.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
![Page 82: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/82.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
A login S | S login®B logout S | S logout®
S A B | e®
![Page 83: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/83.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
production rule
A login S | S login®B logout S | S logout®
S A B | e®
![Page 84: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/84.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
production rule
start symbol
A login S | S login®B logout S | S logout®
S A B | e®
![Page 85: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/85.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
production rule
start symbolnonterminal
A login S | S login®B logout S | S logout®
S A B | e®
![Page 86: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/86.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
production rule
start symbolnonterminal
terminal
A login S | S login®B logout S | S logout®
S A B | e®
![Page 87: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/87.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall: grammar
Interface grammar
production rule
start symbolnonterminal
terminal
empty symbol
S A B | e®A login S | S login®B logout S | S logout®
![Page 88: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/88.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Recall:
Sufficient to express : "every login can be matched
to exactly one logout in the future"
grammar
control-flowconstraints
Interface grammar
production rule
start symbolnonterminal
terminal
empty symbol
S A B | e®A login S | S login®B logout S | S logout®
![Page 89: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/89.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Two uses for the grammar:
1. that a given sequence belongs to that grammarCheck
Interface grammar
What about login login logout logout ?
SA B
login S Blogin A B B
...login login logout logout
S A B | e®A login S | S login®B logout S | S logout®
![Page 90: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/90.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Two uses for the grammar:
2. sequences belonging to that grammarGenerate
Interface grammar
S A B | e®A login S | S login®B logout S | S logout®
SA B
login S Blogin B
...login logout
![Page 91: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/91.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
DRIVER
![Page 92: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/92.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
![Page 93: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/93.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
?
![Page 94: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/94.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
1
![Page 95: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/95.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
1
![Page 96: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/96.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
2
![Page 97: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/97.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
2
?2 ÎG
![Page 98: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/98.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
DRIVER
2
üû/
![Page 99: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/99.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
![Page 100: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/100.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
1
![Page 101: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/101.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
1
?1 ÎG
![Page 102: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/102.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
1
üû/
![Page 103: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/103.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
?
1
![Page 104: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/104.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
1
2
![Page 105: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/105.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interface grammar
G
STUB
2
2
![Page 106: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/106.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interesting consequence:
We use the same grammar for:
! Checking messages! Generating messages
Both to produce:
! A stub! A driver
G
Interface grammar
G
![Page 107: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/107.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Sufficient to express : "every login can be matched
to exactly one logout in the future"
control-flowconstraints
Interface grammar
S A B | e®A login S | S login®B logout S | S logout®
![Page 108: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/108.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Sufficient to express : "every login can be matched
to exactly one logout in the future"
control-flowconstraints
Interface grammar
S A B | e®A login S | S login®B logout S | S logout®
![Page 109: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/109.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Interface grammar
S A B | e®A login S | S login®B logout S | S logout®
![Page 110: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/110.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 111: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/111.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
argument
int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 112: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/112.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
argument
the same x
int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 113: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/113.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
argument
the same x
®
checks that x is an intgenerates an int x
int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 114: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/114.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
argumentsemantic predicate
semantic action
the same x
®
checks that x is an intgenerates an int x
int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 115: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/115.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Extensions to classical grammar
Sufficient to express control-flow : "every login with argument x
can be matched to exactly one logout withargument x in the future"
and valueconstraints
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
argumentsemantic predicate
semantic action
the same x
®
checks that x is an intgenerates an int x
int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 116: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/116.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Example: generate a sequence
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | e
Sint(x) A(x) B(x)
A(1) B(1)!login(1) S B(1)
!login(1) S !logout(1)!login(1) int(x) A(x) B(x) !logout(1)
S
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 117: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/117.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Example: generate a sequence
Sint(x) A(x) B(x)
A(1) B(1)!login(1) S B(1)
!login(1) S !logout(1)!login(1) int(x) A(x) B(x) !logout(1)
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 118: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/118.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Interfacecompiler
Interface grammar
G
![Page 119: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/119.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Interfacecompiler
Interface grammar
G
![Page 120: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/120.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraints
Servicedriver
Serverstub
Interfacecompiler
Interface grammar
still missingmessage structure
G
![Page 121: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/121.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We have production rules to check/generate data types...
primitive
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
![Page 122: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/122.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We have production rules to check/generate data types...
How can we get similar rules for data types?
primitive
composite
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
!login(x) áá???ññ®
![Page 123: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/123.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We have production rules to check/generate data types...
How can we get similar rules for data types?
primitive
composite
Interface grammar
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
!login(x) áá???ññ®WSDL
![Page 124: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/124.jpg)
Hallé, Hughes, Bultan, Alkhalaf
From WSDL to interface grammar rules
WSDL provides a (machine-readable) definition of a message's structure
![Page 125: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/125.jpg)
Hallé, Hughes, Bultan, Alkhalaf
From WSDL to interface grammar rules
WSDL provides a (machine-readable) definition of a message's structure
Short-hand notation: (MSL; Brown et al., WWW 2001)
Model Schema Language
SetExpressCheckoutRequest[ Token[ ] , PaymentDetails[ OrderTotal[ ], PaymentDetailsItem[ Number[ ], Quantity[ ] ] ]]
string
int
intint
{0,1}
{1,8}{0,8}
![Page 126: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/126.jpg)
Hallé, Hughes, Bultan, Alkhalaf
From WSDL to interface grammar rules
WSDL provides a (machine-readable) definition of a message's structure
Short-hand notation: (MSL; Brown et al., WWW 2001)
Model Schema Language
<SetExpressCheckoutRequest>
</SetExpressCheckoutRequest>
<PaymentDetails
</PaymentDetailsItem><PaymentAction> </PaymentAction>
</PaymentDetails>
> 1234 50 456 1 Sale
<Token> </Token><OrderTotal> </OrderTotal><PaymentDetailsItem><Number> </Number><Quantity> </Quantity>
SetExpressCheckoutRequest[ Token[ ] , PaymentDetails[ OrderTotal[ ], PaymentDetailsItem[ Number[ ], Quantity[ ] ] ]]
string
int
intint
{0,1}
{1,8}{0,8}
![Page 127: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/127.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We build a (recursive) mapping p from MSL constructs to sets of production rules
Example:
Mapping for other MSL constructs: see the paper (straightforward)
From WSDL to interface grammar rules
p[[Element[e] ]] ={0,1}
® ááx=nullññ |ááx=new Element();ññ
Element(x)È p[[e(x)]]{ }
![Page 128: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/128.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraintsG
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
From WSDL to interface grammar rules
![Page 129: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/129.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraintsG
WSDL
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
From WSDL to interface grammar rules
![Page 130: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/130.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraintsG
WSDL(MSL)
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
From WSDL to interface grammar rules
![Page 131: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/131.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraintsG
WSDL(MSL)
Translator
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
From WSDL to interface grammar rules
![Page 132: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/132.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraints
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
WSDL(MSL)
Translator G
® ááx=new Login();ññ logininside(x,y)!login(x)
® ááy=new UserId(); x.userId=y;ññ...
logininside(x,y)
From WSDL to interface grammar rules
![Page 133: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/133.jpg)
Hallé, Hughes, Bultan, Alkhalaf
Interfacegrammar
Control-flowconstraints
®A(x) !login(x) S | S !login(x)®B(x) !logout(x) S | S !logout(x)®
® int(x) A(x) B(x) | eS
int(x) ááx=0ññ | ááx=1ññ | ...®
WSDL(MSL)
Translator G
® ááx=new Login();ññ logininside(x,y)!login(x)
® ááy=new UserId(); x.userId=y;ññ...
logininside(x,y)
From WSDL to interface grammar rules
![Page 134: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/134.jpg)
Hallé, Hughes, Bultan, Alkhalaf
® ááx=new Login();ññ logininside(x,y)!login(x)
From WSDL to interface grammar rules
Java code, classesprovided by Apache Axis
![Page 135: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/135.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We extracted interface grammars for two real-world web services:
Experimental results
E-Commerce ServiceExpress Checkout
![Page 136: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/136.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We extracted interface grammars for two real-world web services:
Java/Axis driver generated test sequences to the actual service
Experimental results
E-Commerce ServiceExpress Checkout
�
![Page 137: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/137.jpg)
Hallé, Hughes, Bultan, Alkhalaf
We extracted interface grammars for two real-world web services:
Java/Axis driver generated test sequences to the actual service
Pair Java client/Java stub model checked with Java Pathfinder
Experimental results
E-Commerce ServiceExpress Checkout
�
�
![Page 138: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/138.jpg)
Hallé, Hughes, Bultan, Alkhalaf
! Driver message generation time: 1 sec./message! Typical test sequence: ! Found between implementation and
documentation
! Multiple contract violations found in sample client using Java Pathfinder
! Maximum checking time: / memory! Found between impl. and doc. with driver
5 seconds2 mismatches
20 sec. 43 MB2 mismatches
Experimental results
![Page 139: Generating Interface Grammars from WSDL for Automated Verification of Web Services (Talk @ ICSOC 2009)](https://reader037.vdocument.in/reader037/viewer/2022102902/5594b4931a28abb3308b45e8/html5/thumbnails/139.jpg)
Hallé, Hughes, Bultan, Alkhalaf
1. Long-running WS interactions involve constraints overmessage , and
2. We developed interface grammars to model these constraintsin a uniform notation
3. Using the same IG, we can generate a service and a client to perform model checking / test
generation
4. We tested the approach with two real-worldWS and found betweendocumentation and implementation
structure values sequence
automaticallystub driver
mismatches
Take-home points