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