Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
A Limited Definition of Web Services Paul Kopacz <[email protected]> CIS*6650.01 Service Oriented Architecture Instructor: Qusay H. Mahmoud, Ph.D. February 15, 2007 A Limited Definition of Web Services - Inspiration “The World Wide Web uses relatively simple technologies with sufficient scalability, efficiency and utility that they have resulted in a remarkable information space of interrelated resources, growing across languages, cultures, and media” W3C's Architecture of the World Wide Web http://www.w3.org/TR/webarch/ A Limited Definition of Web Services - Why? ● ● Shift towards Service Oriented Architecture Extend what works to provide services ● Focus on a working model Provide a definition which creates services based on Web philosophy Web ● ● ● ● ● Must use “Web” properly Not just a transport mechanism HTTP has well understood interface Must work within the interface to be considered Web “Web Services based on SOAP and WSDL are Web in name only” - Nick Gall http://www.w3.org/2007/01/wos-papers/gall Resources ● Fundamental property of the Web ● Resource endpoints Expose functionality as URI Links are immediately useful Show what functionality is available Can organize functionality Keep a history Maintain sessions and state Methods ● ● Correspond to create-retrieve-update-delete GET ● Retrieve Safe and idempotent Obtain a resource Invoke functionality with no side effects POST Update Neither safe nor idempotent Submit data which causes changes May return nothing (204 No Content) Methods ● PUT ● Create Idempotent but not safe Use when resource requires minimal processing DELETE Destroy Idempotent but not safe Specific URL Headers ● ● ● Transfer non-functional requirements Specified to be extensible Using the body of method calls is inconsistent Services ● Provide functionality through the Web ● No separation between functionality and interface Programming against a website worked badly Screen-scraping Form inspection No hints Services ● ● Next step in offering services online World Wide Web for Programs ● Make the Web easy for programs to access Extend Web programming to provide interfaces to functionality The Definition ● ● An extension of Web programming to expose an application interface through HTTP Obey the guidelines of HTTP Sometimes ignored in Web applications Providing an API Strict and consistent XML? ● Web works with resources of all formats ● Use whatever is necessary Does not specify HTML Cannot make it necessary Probably a good choice Differences ● ● Yet another distributed systems technology Layering on top of exiting functionality ● No extra infrastructure required ● ● Like RPC? Stub repositories, registries Document transfer instead of function calls REST is very applicable Requiring no state on server unnecessary Adoption ● ● Why use it? Specific ● Technological adoption General Business adoption Technological Perspective ● Web for Programmers ● Programmers want to provide service interface Make their job easier Choice of technology left to engineers Appealing from their perspective 80/20 Rule ● ● ● A technology has a high likelihood of success if 80% of the benefit can be realized with 20% of the implementation work Shortest path to exposing existing functionality Brand new functionality Web programming without presentation Gall's Law ● ● “A complex system that works is invariably found to have evolved from a simple system that worked” Allows simplest first approach ● Only add complexity for current iteration No need to invent standards until there is a problem to solve The Browser is Easy ● Making valid Web resources allows use through browser Scaffolding Debugging Inspecting state Business Perspective ● ● Increase flexibility and reach of provided services Use from other applications ● Integrate into systems Use from different platforms Different clients Business to Customer ● ● Depends on business model Publisher model ● Subscription model ● ● Programmatically filter out ads The more choice the better Balance may need to be struck Eliminate lock-in Business to Business ● Less obvious benefits ● B2B communication technologies more mature (EDI) Budget for integration Technological roadblocks unlikely Complex non-functional requirements Complex transactions, time limits Other technologies are more mature (MOMs) Conclusion ● ● Use Web technologies in the service oriented model Other choices exist but ● The Web works Extending to provide service is easy New problems may arise from increased complexity Rely on what has worked so successfully