Web Services

advertisement
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
Download