Web ServicesFive QuestionsWhat is a Web Service?Software Design PrinciplesComponents are “local”Saved by the Web!Web Usage TodayYahoo’s Stock Ticker“Screen-scraping”What is a Web Service?Finding & talking to Web ServicesThree StandardsWeb Services (In Practice)Why are Web Services interesting?For Developers…For Businesses…New ApplicationsWeb Services Simple Customer ScenarioWhat e-commerce business models do Web Services enable?“How do I make money from Web Services?”Next Gen Web ApplicationsRevenue modelsWhat security and privacy issues need to be addressed for Web Services to be successful?Security & PrivacyIntegrity & secrecy of message trafficAuthenticationProtecting stored dataData PrivacyWhat the heck is Microsoft’s .NET Platform all about, and how does .NET relate to Web Services?Three Pillars of .NETMicrosoft .NET A platform for distributed Web ServicesA Platform For Web Services?Microsoft .NETChanging Application Architectural Model.NET Clients New Breed of Smart Clients.NET Foundation ServicesSummaryQuestions?Web ServicesWeb ServicesCPSC 155bCPSC 155bE-Commerce: Doing Business on the InternetE-Commerce: Doing Business on the InternetMarch 27, 2003March 27, 2003Brian A. LaMacchiaBrian A. LaMacchiaSoftware ArchitectSoftware [email protected]@microsoft.comWindows Trusted Platform TechnologiesWindows Trusted Platform TechnologiesMicrosoft CorporationMicrosoft CorporationFive QuestionsFive QuestionsWhat is a Web Service?What is a Web Service?Why are Web Services interesting?Why are Web Services interesting?Why should I care about them?Why should I care about them?What e-commerce business models do Web What e-commerce business models do Web Services enable?Services enable?What security and privacy issues need to be What security and privacy issues need to be addressed for Web Services to be addressed for Web Services to be successful?successful?What the heck is Microsoft’s .NET Platform What the heck is Microsoft’s .NET Platform all about, and how does .NET relate to Web all about, and how does .NET relate to Web Services?Services?What is a Web Service?What is a Web Service?Software Design PrinciplesSoftware Design PrinciplesAbstractionAbstractionWe abstract & reuse useful functions all the time We abstract & reuse useful functions all the time in programsin programsAbstraction hides implementation detailsAbstraction hides implementation detailsComponentizationComponentizationWe share code among programs by creating We share code among programs by creating reusable software componentsreusable software componentsSave time coding, debugging & testingSave time coding, debugging & testingReusable components have valueReusable components have valueYou can sell componentsYou can sell componentsYou can given them away to sell something elseYou can given them away to sell something elseEx: Device driversEx: Device driversComponents are “local”Components are “local”Executable components must “live” Executable components must “live” on your local machineon your local machineNot so great if the data is remoteNot so great if the data is remoteEx: Stock analysis componentEx: Stock analysis componentWants as much historical data as Wants as much historical data as possiblepossibleIs everyone going to cache the last 100 Is everyone going to cache the last 100 years of the NYSE on their hard disks?years of the NYSE on their hard disks?Ex: complex searches against the NYT Ex: complex searches against the NYT archivesarchivesWant code to run on the serverWant code to run on the serverSaved by the Web!Saved by the Web!Web Usage TodayWeb Usage TodayWeb usage today is browser-orientedWeb usage today is browser-orientedUsers browse for informationUsers browse for informationVast databases are accessed through Vast databases are accessed through HTML gateways & user-friendly displaysHTML gateways & user-friendly displaysExample: Yahoo’s stock tickerExample: Yahoo’s stock tickerYahoo has tons of stock price history Yahoo has tons of stock price history sitting behind http://quote.yahoo.com/sitting behind http://quote.yahoo.com/That info is easily available to anyone That info is easily available to anyone who browses to the right pagewho browses to the right pageBut look at how the info is presented…But look at how the info is presented…Yahoo’s Stock TickerYahoo’s Stock Ticker““Screen-scraping”Screen-scraping”Data is formatted for easy use by people, Data is formatted for easy use by people, not programsnot programsPrograms need to mimic users to…Programs need to mimic users to…Parse/make use of the dataParse/make use of the dataCall server-side functions (plot a chart, compute Call server-side functions (plot a chart, compute something, perform a search, etc.)something, perform a search, etc.)““Scrape the screen”Scrape the screen”Download the HTML and then pattern-match Download the HTML and then pattern-match against it against it Inefficient and fragileInefficient and fragileData type semantics are lostData type semantics are lostWe need a better mechanism for making We need a better mechanism for making Web-published data and component Web-published data and component software functions available to programssoftware functions available to programsWhat is a Web Service?What is a Web Service?Software components (application Software components (application logic) accessible via standard Web logic) accessible via standard Web protocolsprotocols““Programming the Web”Programming the Web”Better: “remote procedure calls over the Better: “remote procedure calls over the Web”Web”Web sites with no user interfaceWeb sites with no user interfaceAvailable to any client that speaks the Available to any client that speaks the necessary Web protocols (XML, SOAP)necessary Web protocols (XML, SOAP)Platform independent componentsPlatform independent componentsEnable highly distributed systemsEnable highly distributed systemsFinding & talking to Finding & talking to Web ServicesWeb ServicesClients need answers to three separate Clients need answers to three separate questions:questions:What services are available?What services are available?How do I communicate with How do I communicate with thisthis particular particular service?service?Let’s talk! (Give me some
View Full Document