650 likes | 793 Views
Testing and Verification of Web Services -- Background. John C. Sloan Florida Atlantic University. Contents: Introduction Sanity check Historical Context Web Services Development cycle Interface syntax Service registry Orchestration Choreography Formal Verification
E N D
Testing and Verification ofWeb Services -- Background John C. Sloan Florida Atlantic University
Contents: • Introduction • Sanity check • Historical Context • Web Services • Development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking • Summary
Contents: • Introduction • Sanity check • Historical Context • Web Services • Development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking • Summary
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged?
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had with other software?
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had with other software? • Here is our response:
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail."
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood ..
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood Hammer Nail Wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood Tool ako Hammer Nail Wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood Tool Fastener ako ako Hammer Nail Wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood Tool Fastener Material ako ako ako Hammer Nail Wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood determines Tool Fastener Material ako ako ako Hammer Nail Wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood determines determines Tool Fastener Material ako ako ako Hammer Nail Wood
Introduction -- Sanity check: • Aren’t Web Services just an old idea repackaged? • Couldn’t we build and test web-enabled applications in • the same way as we always had? • Here is our response: • "If you only have a hammer, everything looks like a nail." • This would be a reasonable sentiment if what you are fastening is wood determines determines Tool Fastener Material ako ako ako Hammer Nail Wood … but not metal !!!
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC.
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. Criteria: Programs:Services:
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. • Criteria: Programs:Services: • control mono-focal multi-focal • (i.e., program counter) (i.e., state vector)
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. • Criteria: Programs:Services: • control mono-focal multi-focal • (i.e., program counter) (i.e., state vector) • distribution single location geographically distributed • (i.e., single PC) (i.e., servers over Internet)
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. • Criteria: Programs:Services: • control mono-focal multi-focal • (i.e., program counter) (i.e., state vector) • distribution single location geographically distributed • (i.e., single PC) (i.e., servers over Internet) • communication instant delayed • (i.e., unbuffered, a.k.a. (i.e., buffered a.k.a. • synchronous) asynchronous)
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. • Criteria: Programs:Services: • control mono-focal multi-focal • (i.e., program counter) (i.e., state vector) • distribution single location geographically distributed • (i.e., single PC) (i.e., servers over Internet) • communication instant delayed • (i.e., unbuffered, a.k.a. (i.e., buffered a.k.a. • synchronous) asynchronous) • visibility white box black box • (i.e., code maintenance) (i.e. service composition)
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. • Criteria: Programs:Services: • control mono-focal multi-focal • (i.e., program counter) (i.e., state vector) • distribution single location geographically distributed • (i.e., single PC) (i.e., servers over Internet) • communication instant delayed • (i.e., unbuffered, a.k.a. (i.e., buffered a.k.a. • synchronous) asynchronous) • visibility white box black box • (i.e., code maintenance) (i.e. service composition) • coupling tight loose
Introduction -- Sanity check: • The stuff from which web services are made, is fundamentally different • from programs running on your PC. • Criteria: Programs:Services: • control mono-focal multi-focal • (i.e., program counter) (i.e., state vector) • distribution single location geographically distributed • (i.e., single PC) (i.e., servers over Internet) • communication instant delayed • (i.e., unbuffered, a.k.a. (i.e., buffered a.k.a. • synchronous) asynchronous) • visibility white box black box • (i.e., code maintenance) (i.e. service composition) • coupling tight loose … so a lot more can go wrong with services !
Contents: • Introduction • Sanity check • Historical Context • Web Services • Development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking • Summary
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective:
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective: era: tool: fastener: material: 1950-1970 1-2GL proprietary OS proprietary HW arch.
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective: era: tool: fastener: material: 1950-1970 1-2GL proprietary OS proprietary HW arch. 1965-1985 3GL portable OS open HW arch.
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective: era: tool: fastener: material: 1950-1970 1-2GL proprietary OS proprietary HW arch. 1965-1985 3GL portable OS open HW arch. 1980-2000 CBSE endogenous glue code LAN inside trust bounds
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective: era: tool: fastener: material: 1950-1970 1-2GL proprietary OS proprietary HW arch. 1965-1985 3GL portable OS open HW arch. 1980-2000 CBSE endogenous glue code LAN inside trust bounds 1995-2015 SOSE (weak) exogenous Locally developed -- coordination Internet deployed
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective: era: tool: fastener: material: 1950-1970 1-2GL proprietary OS proprietary HW arch. 1965-1985 3GL portable OS open HW arch. 1980-2000 CBSE endogenous glue code LAN inside trust bounds 1995-2015 SOSE (weak) exogenous Locally developed -- coordination Internet deployed 2010-2030 WESE (strong) exogenous Semantic web developed - coordination Semantic web deployed
Introduction – Historical context: determines determines Tool Fastener Material With this generalization, consider now, tools for integrating (fastening together) software from an historical perspective: era: tool: fastener: material: 1950-1970 1-2GL proprietary OS proprietary HW arch. 1965-1985 3GL portable OS open HW arch. 1980-2000 CBSE endogenous glue code LAN inside trust bounds 1995-2015 SOSE (weak) exogenous Locally developed -- coordination Internet deployed 2010-2030 WESE (strong) exogenous Semantic web developed - coordination Semantic web deployed This presentation focuses on Service Oriented Software Engineering (SOSE)
Introduction – Historical context: .. yet, the more things change the more certain things remain the same .. .. Consider the hazard function known as the Bathtub Curve .. but applied to web services: $ random failures early failures obsolescence failures time
Introduction – Historical context: .. yet, the more things change the more certain things remain the same .. .. Bathtub Curve applied to web services: $ (non-exhaustive) test of web services time (exhaustive) verification of web services
Contents: • Introduction • Sanity check • Historical Context • Web Services • development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking • Summary
DefinitionWeb Services: A web-enabled software system that supports machine to machine interaction over the internet that involves service providers, requestors and brokers. Graphic courtesy of Wikipedia -- downloaded August 2008
DefinitionWeb Services: A web-enabled software system that supports machine to machine interaction over the internet that involves service providers, requestors and brokers. Airline tells UDDI how it will interact with web-enabled travel agents.
DefinitionWeb Services: A web-enabled software system that supports machine to machine interaction over the internet that involves service providers, requestors and brokers. Web-based travel agent asks UDDI how it can interact with airline.
DefinitionWeb Services: A web-enabled software system that supports machine to machine interaction over the internet that involves service providers, requestors and brokers. Web-enabled travel agent interacts with airline.
Contents: • Introduction • Sanity check • Historical Context • Web Services • Development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking
How web services can presently be developed D E V E L O P E R S Y N D I C A T O R 2 1 B U I L D E R T E S T E R 3 4
Contents: • Introduction • Sanity check • Historical Context • Web Services • Development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking
How web services can presently be developed D E V E L O P E R 1. WSDL Compliant Interface
How web services can presently be developed D E V E L O P E R 1. WSDL Compliant Interface • An XML-based language standard used for defining the interface • of a service to the outside world. • A WSDL artifact contains: • message types, its protocol, layout, including elements attributes • and permissible values and ports (network endpoints). Each operation • is bound to some port and message type
How web services can presently be developed D E V E L O P E R 1. WSDL Compliant Interface • An XML-based language standard used for defining the interface • of a service to the outside world. • A WSDL artifact contains: • message types, its protocol, layout, including elements attributes • and permissible values and ports (network endpoints). Each operation • is bound to some port and message type • http://en.wikipedia.org/wiki/Web_Services_Description_Language
Contents: • Introduction • Sanity check • Historical Context • Web Services • Historical Context • development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking
How web services can presently be developed D E V E L O P E R S Y N D I C A T O R 2. UDDI Compliant Registry 1. WSDL Compliant Interface Submit
Contents: • Introduction • Sanity check • Historical Context • Web Services • Historical Context • development cycle • Interface syntax • Service registry • Orchestration • Choreography • Formal Verification • Equivalence checking • Pre-order checking • Model Checking
How web services can presently be developed D E V E L O P E R S Y N D I C A T O R 2. UDDI Compliant Registry 1. WSDL Compliant Interface Submit B U I L D E R Consult and Compose Service 2 (i.e., car) Service 1 (i.e., airline) 3. WS-BPEL Compliant Orchestration Orchestration (i.e., travel agent) Orchestrations exert centralized control. Service 3 (i.e., hotel)