Web Services The Next Dimension of Enterprise Computing Dr. Billy B. L. Lim School of Information Technology Illinois State University Outline Web Services What Why How Who When Not E-Commerce Scenarios Objective: Capitalize on the success of e-commerce and build a web site to sell books, CDs, and others Scenario1 Build BillyBooks.com and compete directly with the Amazon.com’s of the world Any chance of success here? E-Commerce Scenarios Scenario2 Source: Atkin, J., “Amazon Everywhere,” PC Magazine, 9/2003. What are Web Services? Some definitions / characteristics “A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.” [W3C 2003] What are Web Services? definitions / characteristics (cont’d) “Internet services available to ‘silicon-based life forms” (as opposed to ones presented to humans)” [Gosling ’02] “Loosely coupled remote RPCs that would replace today’s tightly coupled RPCs, which require application- and protocol-specific API connection. .. Uses XML, rather than C or C++, to call procedures” [Gartner] “Use protocols and data representations that are internet friendly and ubiquitous” “Next-generation service-oriented Internet applications” What are Web Services? Allow for rich, dynamic communication between applications Web Service Provide remote access to data and process “Components for the Web” Reusable unit of business work Remote access to business data Help acquire “a homogenous view of a heterogeneous reality” “They probably won’t cost much, and they really may change everything” Why Web Services? Observations “I couldn’t make DCOM work. I tried and failed, again and again. But I can make a Web service in a heartbeat.” -- Jim Gray, Microsoft Distinguished Engineer (Turing Award (~= Nobel Price for computing) Winner) Why Web Services? Observations .NET’s perspective “The power of the XML Web Services model is amazing. A company offering an online electronicpayment service can expose its service to partners, so that they can deliver it as part of their own offering – regardless of what platform they are using. An airline can link its online reservation system to that of a carrental partner, so travelers can book a car at the same time they book a flight. An online auction company can notify bidders when they are outbid or have won an auction, or could partner with other firms to offer alternative shipping, fulfillment or payment options. XML Web services help your business break free of its boundaries.” – Bill Gates Why Web Services? Observations Java’s perspective (J2EE 1.4 Web Services Framework) Java API for XML JAXP (Processing) JAXM (Messaging) JAXR (Registering) JAX-RPC Why Web Services? Observations Projected Revenues 380 millions in 2001 vs. 15.5 billions in 2005 (Source: ZapThink, Inc. ’02) 160000 140000 120000 100000 80000 Revenues 60000 40000 20000 0 2001 2005 IDC estimate: 1.6 billions in 2004 vs. 34 billions in 2007 (Source: South China Morning Post, May 28, ’02) Why Web Services? Observations “When do you expect your company to develop a Web Services strategy?” now / 3 mos 4-6 mos 7-12 mos >=12 mos Never ??? Source: InfoWorld Web Services Survey, July ‘01 Why Web Services? Observations www.ws-i.org The industry is aligned … Broad industry initiative for Web services Over 150 industry leaders Interoperability across platforms, applications, and languages Why Web Services? Observations Why Web Services? Observations Name change from “XML” to “XML & Web Services” Why Web Services? Observations Technology of the Year (InfoWorld ’02) Why Web Services? Interoperable Easy to use Reusable Ubiquitous Why Web Services? eBusiness Paradox [Clarke ’02] “The promise of networked businesses will not be realized until we can rapidly and dynamically interoperate” Why Web Services? Need to interoperate within our enterprise and interoperate between enterprises Why Web Services? Traditionally, client and server need to understand: Implementation details Service deployment Security types and trusts etc. They must “speak” the same platform (COM to COM, EJB to EJB, ORB to ORB, etc.) Web Services are the result of: Evolution of 3 generations of Web Applications Source: Gusmano ‘02 1st Generation Web Applications UI Logic Biz Logic Browsers OS Services Source: Gusmano ‘02 Servers Data, Hosts 2nd Generation Web Applications Rich Client UI Logic Richer Browsers Biz Logic Tier OS Services Source: Gusmano ‘02 Servers Data, Hosts Next Generation Web Applications Other Services Smarter Clients Standard Browsers Smarter Devices Applications Become Programmable Web Services Biz Biz Logic & Web Service Tier Logic OS OS Services Open Internet Communications Protocols (HTTP, SMTP, XML, SOAP) Public Web Services Foundation Services Internal Web Services Servers Data, Hosts Source: Gusmano ‘02 Web Services: Life Cycle Service Registry (e.g., IBM UDDI service) publish service (e.g., stock quote) Service Provider (e.g., Brokerage House) find service bind to service Service Requester (e.g., XYZ Financial Software) Life Cycle of a Web Service Execution (Registry, Lookup, and Consumption) What is Under the Hood? XML SOAP WSDL UDDI Web Services: SOAP, WSDL, UDDI An Overview of SOAP Simple Object Access Protocol Lightweight XML-based messaging format Builds on W3C XML standards IETF HTTP standard Works with: Any operating system Any programming language Any platform What is a SOAP Message? SOAP Message The complete SOAP Message Protocol Headers Standard Protocol (HTTP, SMTP, etc.) and SOAP Headers SOAP Envelope <Envelope> encloses payload SOAP Header Headers SOAP Body Message Name & Data <Header> encloses headers Individual headers <Body> contains SOAP Message Name and Data XML Encoded SOAP Message Name and Data Simple SOAP Request (Using HTTP) POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml Content-Length: 323 SOAPAction: “www.stockquoteserver.com/GetLastTradePrice” <?xml version=“1.0” encoding=“utf-8”?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-Namespace-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Simple SOAP Response (Using HTTP) HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: nnnn <?xml version=“1.0” encoding=“utf-8”?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-Namespace-URI"> <Price>24.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> WSDL Web Services Description Language Lets Web Services describe what they are where they can be found how they should be used Simplified WSDL example <?xml version="1.0"?> <serviceDescription> <soap > <service> <addresses> <address uri="http://localhost//HelloWorld.asmx"/> </addresses> <requestResponse name="HelloWorld" soapAction="http://tempuri.org/HelloWorld"> <request ref="s0:HelloWorld"/> <response ref="s0:HelloWorldResult"/> </requestResponse> </service> </soap> </serviceDescription> Complete one: ISU Hello in Foreign Language Translator UDDI Universal Description, Discovery, and Integration Lets companies find publicly available Web Services on the Internet or corporate Intranets. UDDI How useful are Web Services? Web services: Some possibilities Financial information (e.g., stock quotes) Sports information Weather information News Delivery status Tax and shipping calculations Any data that is relevant to the client Web Services: Demo Examples: College Admission Portal http://138.87.169.87:9999/transcriptRequest/index.htm Microsoft TerraService http://terraserver.microsoft.net/default.aspx Web Services: Who? Who is doing this? Vendors Users/Consumers Microsoft, IBM, Sun, Oracle, HP, BEA, etc. .NET passport, Calendar, Alerts, Amazon Web Services, etc. Nordstrom, General Motors, etc. List of public Web Services http://www.xmethods.net/ Who should pay attention to this? All of us! Web Services: When? Web Services: When? Web Services will enter most organizations in three distinct phases: [Source: IDC] 2002 (within the firewall) 2004 (contained external users) Simplified app integration Increased developer productivity Simplified business-partner connectivity Richer app functionality Subscription-based services 2006 to 2008 (fully dynamic search and use) Casual / ad-hoc use of services New business models possible Commoditization of software Pervasive use in nontraditional devices Web Services: The Not? Challenges/Issues Reliability / Consistency Security Authentication Privacy Billing Reuse Performance Incompatible implementations of standards Web Services: “Lingua Franca” Source: Clarke ‘02 Related Project at ITK/ISU College Admission Portal System (CAPS) Performance Comparisons of .NET and Java-based Web Services “A Day in the Life of Genie/Jini: A Simulation of Service-Oriented Architecture” References Clarke, N., “.Net & the J2EE: Web Services - Can we live together?,” JavaOne 2002. Gosling, J., Next-Generation Web Services Conference, Keynote address, Jan, 2002. Gusmano, M., “Build Web Services with VB.NET,” Microsoft Internet Developer Group, April 2001. Appendix Integrating Web Services into a College Admission Portal System (CAPS) Billy Lim, Yan Sun School of Information Technology Illinois State University Project Rationale Problems Online college admission application is not complete (i.e., transcript is official and thus can’t be submitted by students) Solutions Transmit official documents between systems using Web Services Add WS-Security Project Architecture HTTP CAPS (College Admission Portal System) Client (Student) interface via a browser XML HTTP XML College 1 Transcript Web Service DB JDBC … College N Transcript Web Service DB JDBC B-to-B (College-to-College) interface via Web services Project Architecture (2) Applicant New School Old School Tomcat 4.1 BEA WebLogic Server 8.1 beta JSP App Server Oracle 9i Transcript DB XML WS Security Access 2002 Student DB Information Flow Old School New School Applicant 1 Tomcat 4.1 2 7 JSP App Server 5 6 Oracle 9i Transcript DB BEA WebLogic Server 8.1 beta 4 3 Access 2002 Student DB Where are Web Services Being Used Today? Business applications of web services Source: [Schray 03] Web Services are here now! Danske Bank – XML web service for stock quotes Annie E. Casey Foundation – Used XML web services to tie together various legacy systems Bear, Stearns, and Company – used XML web services to extend stock order capabilities to its internal developers Web Services are here now!... Nasdaq Stock Market, Inc. - using XML Web services to deliver XBRL data directly to the desktop Centerpost - company’s new XML Web service interface has decreased the time and effort required to integrate new clients by an average of 75 percent. Allstate Insurance Co. – used web services to integrate five existing policy management systems Source: http://www.microsoft.com/net/casestudies/ Examples of public web services Public Web Services Microsoft MapPoint Google Search API http://staging.mappoint.net/standard30/mappoint.wsdl http://api.google.com/GoogleSearch.wsdl Amazon.com http://soap.amazon.com/schemas2/Amaz onWebServices.wsdl Public Web Services MapPoint Google GetMap Find `find a location and get details doGoogleSearch doSpellingSuggestion doCachedPage Amazon KeywordSearchRequest AsinSearchRequest ` like a ISBN search