Semantic Web Technologies • Research Topics and Projects discussion • Brief Readings Discussion • Research Presentations Web Services Highlights • How do Web services help in building the Semantic Web? • Why does interoperability help with exchanging (semantic) information? • Describe how XML enables Web services. • WSDL (Web Services Description Language) • SOAP (Simple Object Access Protocol) - Not an acronym any more • UDDI (Universal Description, Discovery & Integration) • How does trust fit into using Web services? • What are security concerns for Web services mentioned in today’s reading? What are Web Services? • Specific software applications that can be: - Discovered (UDDI, RSS auto-discovery) - Described (WSDL, APIs) - Accessed (SOAP, REST via APIs) • Standardized XML-based formats • Standardized networking protocols • What difficulties can you see with Web services? How Semantic? • Can Web services be? • Are we talking about Web 2.0 ideas? • Is it good to separate the user interface from the data? • For users, what makes Web services useful? - Having a browser - Broadband - Having some understanding of the client-server model Web Services Advantages • Speed up development process • Make (potential) integration simpler (possible?) • Some good examples are leading the way - Most of these examples are whole businesses, not simple services - Simple services can be a whole business • The basics for protocols & standards are proven • “Web Services” sounds cool? Web Services Disadvantages • When you can connect everything, where do you start? • How do you control usage? • What if your data isn’t well organized? • New types of applications require new ways of negotiating functionality • There are lots of standards • What’s different now than in past standards efforts? • “Web Services” sounds cool? Web Services Definition Language XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). WSDL is extensible to allow description of endpoints and their messages regardless of what message formats or network protocols are used to communicate” • Let’s look at an example • “an - Other basics SOAP • SOAP isn’t really “O” already • “a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. SOAP uses XML technologies to define an extensible messaging framework, which provides a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics.” What’s in a SOAP request? • SOAP “envelope” • Data encoding information • Application logic <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <x:TransferFunds xmlns:x="urn:examples-org:banking"> <from>22-342439</from> <to>98-283843</to> <amount>100.00</amount> </x:TransferFunds> </soap:Body> </soap:Envelope> What’s in a SOAP response? <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <x:TransferFundsResponse xmlns:x="urn:examples-org:banking"> <balances> <account> <id>22-342439</id> <balance>33.45</balance> </account> <account> <id>98-283843</id> <balance>932.73</balance> </account> </balances> </x:TransferFundsResponse> </soap:Body> </soap:Envelope> Are Web services really that easy? • • • • Yes, if the services are set up in atomic elements Yes, if you can perform ALL of the functionality with WS or SOAP No, because trusting them is critical No, because describing full functionality is difficult - The combinations can be many • No, because finding them is problematic Discovering Web services • Semantic Web depends on discovery • Discovery not widespread • Standards are helping - UDDI - ebXML • Who organizes the “phonebook for WS”? - Internal organizational work, intranets • Describing the descriptions is difficult - Semantics are needed for our semantics • How would you discover Web services? UDDI - Universal Description, Discovery and Integration • Currently, the most common but not widespread, but big vendors are using it: http://uddi.microsoft.com/inquire http://www-3.ibm.com/services/uddi/inquiryapi • Simple syntax <find_business generic="1.0" xmlns="urn:uddi-org:api"> <name>Microsoft</name> </find_business> • What do you get back? • And that’s just the easy part. Trust & Web Services • Authentication, Authorization, Single Sign-On, Confidentiality, Integrity, Nonrepudiation • Who manages the discovery? • Authentication • Authorization - Tracking • Privacy • Validity • These features are more likely to be trusted when you already have a relationship with the WS provider. • Without much trust, are WS going to only do trivial things? Inside Web Services • What helps make WS work? - XML Signature = Identity - SAML (Security Assertion Markup Language) controls authentication & authorization - WS-Security from MSFT & Verisign • Certificates & toolkits • Processing & Grid computing - More potential, more structure needed - Trust is key here too Service-Oriented Architecture • SOA is an IT architectural approach that designs applications into a set of linked services, or repeatable business tasks, that can be accessed when needed over a network. • The use of Web Services to accomplish application goals • Business Analysts as System Designers Web Services in Action • Amazon Web Services • IBM SOA and Web Services - SOA architecture at IBM • • • • • Salesforce.com Application Platform Sun (one of many - JAXB) W3C Semantic Annotations for WSDL & XML Schema Yahoo! Web Services Google APIs