A Limited Definition of Web Services Paul Kopacz [email protected] CIS*6650.01 Service Oriented...
-
Upload
jemimah-cooper -
Category
Documents
-
view
212 -
download
0
Transcript of A Limited Definition of Web Services Paul Kopacz [email protected] CIS*6650.01 Service Oriented...
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
Like RPC?● No extra infrastructure required
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
Programmatically filter out ads● Subscription model
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