300 likes | 321 Views
Explore the distinctions between interface and payload semantics in web services and how they impact client-server interactions. Dive into XML usage and SOAP protocol. Learn the significance of document-centric messages for distributed computing.
E N D
Web Services and Application Development using Services API B. Ramamurthy
Interface vs Payload Semantics • Typically interaction between a client and a server results in the execution of an activity (or transaction) • Activity needs to be specified by the request. • Interface semantics: Requested activity is encoded in an operation signature in the server’s “interface”: RPC (remote procedure call) (think about procedure call or function invocation) • Semantics of the activity is explicit in the message/call • Payload semantics: It (activity) is embedded in a message
Interface Semantics Process1 Process2 getCustomer() retrieveCustomerData() returnResult() Semantics of the activity is explicitly stated in the message/method call
Payload Semantics Envelop With message Process 1 Process 2 Requested transaction/activity is embedded in the message Details of the activity not explicit; the semantics are embedded in the message
Payload Semantics onMessage()
Payload semantics is generic String transferMoney (amt: decimal, accTo: String) { …} Vs. String executeService (message: String) { …} --message contains “transferMoney”, amt, acctTo etc.
XML • XML is a markup language, developed by W3C (World Wide Web Consortium), mainly to overcome the limitations of HTML. • But it took a life of its own and has become a very popular part of distributed systems. • We will examine its definition, associated specifications (DTD, XSLT etc.), Java APIs available to process XML, protocols and services based on XML, and the role XML plays in a distributed computing environment. CSE507 Introduction 2008
First Look at XML • It has no predefined tags. • Such as in HTML • Domains may specify their own set of standard tags • It is stricter. • Most html document have errors and the browser have to built to take care of these. • On the other hand XML has a strict syntax. • There is a notion of validity and • A notion of well-formed. CSE507 Introduction 2008
An Example: Memo • See the two documents enclosed: one in html and the other in XML formats. • Observe the meaningful tags in XML. • Compare it to a class definition: it looks like a class with data definitions and accessors (tags). CSE507 Introduction 2008
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <title>memo.html</title> </head> <body> <h3>Hello World</h3> Bina<br> CSE4/587SOA Students <br> Wake up everyone<br> BR<br> <br> </body> </html> <?xml version="1.0" ?> <!DOCTYPE memo (View Source for full doctype...)> - <memo> <header>Hello World</header> <from>bina</from> <to>CSE4/587 Students</to> <body>Wake up everyone</body> <sign>br</sign> </memo> Memo.html vs memo.xml CSE507 Introduction 2008
XML to SOAP • Simple xml can facilitate sending message to receive information. • The message could be operations to be performed on objects. • Simple Object Access Protocol (SOAP) CSE507 Introduction 2008
SOAP Request <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productId>827635</productId> </getProductDetails> </soap:Body> </soap:Envelope> CSE507 Introduction 2008
SOAP Reply <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productId>827635</productId> <description>3-Piece luggage set. Black Polyester.</description> <price>96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope> CSE507 Introduction 2008
SOAPWeb Services (WS)SOA Read this paper: http://www.w3.org/DesignIssues/WebServices.html CSE507 Introduction 2008
Document-centric Messages • With emergence of self-descriptive data structures such as XML, document-centric has become popular • Semantically rich messages where operation name, its parameters, return type are self descriptive. • SOAP (Simple Object Access Protocol) over XML is an example • Loose coupling of systems (vs. Java RMI like RPC that are tightly coupled)
Lets focus on Web services What is a web service? From OO to WS WS and the cloud WS code
Web Services and SOA • Web Services is a technology that allows for applications to communicate with each other in a standard format. • A Web Service exposes an interface that can be accessed through XML messaging. • A Web service uses XML based protocol to describe an operation or the data exchange with another web service. Ex: SOAP • A group of web services collaborating accomplish the tasks of an application. The architecture of such an application is called Service-Oriented Architecture (SOA). CSE507 Introduction 2008
Object/ Class Component Service Evolution of the service concept • A service is a meaningful activity that a computer program performs on request of another computer program. • Technical definition: A service a remotely accessible, self-contained application module. • From IBM, BR
Class, Component and Service • Class is a core concept is object-oriented architectures. An object is instantiated form a class. • Focus on client side, single address space programs. • Then came the component/container concept to improve scalability and deployability. Ex: EJBs. • Focus on server side business objects and separation of resources from code. • Service came into use when publishing, discoverability, on-demand operation among interacting enterprise became necessity. • Focus of enterprise level activities, contracts, negotiations, reservations, audits, etc. BR
Object-oriented programming • Object-oriented programming • Encapsulation of data and function in a class, instances of a class is called an object • Objects communicate through messages (invoking methods) • Class represents a type from which another type can be derived resulting inheritance hierarchy. • Problem: level of abstraction and granularity exposed is fine to enable reuse. • Data and functions are tightly coupled. • The concept of interface • Service-orientation assumes that data and functionality are separated. BR
Web Services and the Cloud • Web Service is a technology that allows for applications to communicate with each other in a standard format. • A Web Service exposes an interface that can be accessed through XML messaging. • A Web service uses XML based protocol to describe an operation or the data exchange with another web service. Ex: SOAP • A group of web services collaborating accomplish the tasks of an application. The architecture of such an application is called Service-Oriented Architecture (SOA). • Web service is an important enabling technology of cloud computing: software-as-a-service (SaaS), platform-as-a-service(PaaS), infrastructure-as-a-service (IaaS)
WS Interoperability Infrastructure Service Description WSDL XML Messaging SOAP/ REST Network HTTP Do you see any platform or language dependencies here?
SOAPWeb Services (WS) • Lets look at some WScode:
Building your own application • Determine your functionality: UML model use case diagram is a very nice tool to use at this stage • Determine the source of your internal and external data • Examine the data and its utilization in the application • Methods for enhancing the application • Web data • Crawling and screen scraping • RSS feeds (Aaron Swartz.. Go read about him) • RESTful services • Web services
Acquiring the DATA • Example: Get the houses available from Craigslist and post it on Google maps • Enabling technologies for acquiring data: • Crawler: spiders, start with a URL and visit the links in the URL collecting data, depth of crawling is parameter • Screen scrappers: extract information that is contained in html pages. • Biological sciences: High throughput sequencers • Web services: APIs that facilitate the communication between applications. Organizations make available the relevant information as services • REST and SOAP are two underlying pipes for WS
Functionality • Use case diagram is a good tool to discover/define the functionality of your applications • Questions to ask: • What are the main functions? • What kind of data? Structured? Unstructured? • Where will be stored? • Will it be shared? • What are the sources of data? • Does it deal with geographic locations (maps)? • Does it share content? • Does it have search? • Any automatic decisions to be made based on rules? • What is the security model?
REST • SOAP is a heavy weight protocol • Representation State Transfer (REST) • Ph.D. thesis by Roy Fielding, who was the • Was chairman of the Apache Software Foundation (not anymore) • REST uses simple HTML operations GET, PUT, POST, DELETE for carrying out web operations/activity • It is an architectural style not a protocol • REST has become the favored style for web services to communicate • REST-based APIs provides by many applications
REST simplicity SOAP: <?xml version="1.0"?> <soap:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:bodypb="http://www.acme.com/phonebook"> <pb:GetUserDetails> <pb:UserID>12345</pb:UserID> </pb:GetUserDetails> </soap:Body> </soap:Envelope> Vs REST http://www.acme.com/phonebook/UserDetails/12345 It uses GET, POST etc of HTTP protocol
What else is there? • Most Google services API are REST based: Google search REST API, Google translate API, Google Big Query API etc. • Netflix REST API • Facebook announced it is going to promote Graph API as the means of getting data out its services… • These APIs are the means by which you create an integrated application that makes use of the services offered by others into your application • Bottom line is we need well understood (and standard) mechanism for invoking (web) services, extracting and adding data