Transcript of Web Service Standards Relevant to SOA
- 1. Web Service Standards Relevant to SOA By Mark Zalar
- 2. Seminar Outline
- Web Service Protocol Stack
-
- Closer look at each level
-
-
- Protocols and how theyre used
- Alternative SOA web service tool and protocol
- 3. What is SOA?
- Service-Oriented Architecture
-
- An architecture that relies on loosely-coupled software agents
to perform specified tasks
-
- Software agents can be independent of one another
-
-
- Interaction requires no knowledge of a software agents
underlying details
- 4. What is SOA?
-
- An approach/design goal where interaction between services is
developed with minimal assumptions between the services
-
- A change in one service should not force a change in another
service that interacts with it
-
- Interface is independent of implementation
- 5. What is SOA?
-
- A unit of work performed by a service provider for a service
consumer
-
- Service providers and service consumers are both software
agents
- 6. What is SOA?
-
- A software system designed to support interoperable machine to
machine interaction over a network (W3C definition)
-
-
- Interfaces are based on Internet protocols
- 7. SOA and Web Service Standards
- SOA web services are typically built on web service standards
(a.k.a. web service specifications)
-
- Freedom from proprietary vendor software
- Many of these standards, like SOAP, already have widespread
industry acceptance
- 8. SOA and Web Service Standards
- The base level web service standards relevant to SOA are common
standards that most of us have used or at least heard of.
-
- These standards can be usefully categorized using the web
services protocol stack
- 9. Web Services Protocol Stack
- The web service protocol stack is a collection of computer
networking protocols that are used to:
-
- Make web services interact with each other
- 10. Web Services Protocol Stack
- 11. Web Services Protocol Stack
- What is each part responsible for?
-
-
- Transporting messages between network applications
-
-
- Message encoding in a common XML format so messages can be
understood at both ends of a connection
-
-
- Standardized Description of how to interface with the web
service
-
-
- Centralized registry where web services can publish their
location and description
- 12. Web Services: The Big Picture Image from Wikipedia
link
- 13. Service Transport
-
- Hypertext Transfer Protocol
-
- Request/response protocol between clients & servers
-
- Simple Mail Transfer Protocol
-
- Exchanging files over a network
- 14. XML Messaging
-
- Extensible Markup Language
-
- Used to share data between systems
-
- Can represent general data structures
- 15. XML Messaging
- Mix all ingredients together, and knead thoroughly.
- Cover with a cloth, and leave for one hour in warm room.
- Knead again, place in a tin, and then bake in the oven.
Example from Wikipedia
- 16. XML Messaging
-
- A Python library for parsing and generating XML
Image from Genshi website
- 17. XML Messaging
-
- Simple Object Access Protocol
-
- Used to exchange XML messages over a network (using HTTP or
other service transport protocol)
-
- Most common messaging pattern is RPC
-
-
- Client sends request, server immediately responds
-
- Allows easy interaction between very different systems
- 18. XML Messaging
Example from Wikipedia
- 19. XML Messaging
- Toptimate 3-Piece Set827635
- 3-Piece luggage set. Black Polyester.
Example from Wikipedia
- 20. Service Description
-
- Web Service Definition Language
-
- An XML format for describing web services
-
- Describes the public interface to a particular web service
-
- Often used with SOAP and XML
-
-
- WSDL tells a client what functions are available
-
-
- The client uses SOAP to actually call functions
- 21. Service Description
Example from W3Schools
- 22. Service Discovery
-
- Universal Description Discovery and Integration
-
- XML-based, platform independent, standardized worldwide
business registry
-
- Businesses can publish service listings and describe how
services interact over the Internet
-
- Focuses on the discovery aspect of SOA
-
- Three types of information can be registered into a UDDI
registry
-
-
- White Pages - business identification information (address,
name, contact information)
-
-
- Yellow Pages - characterization/description of service
-
-
- Green Pages - technical information about service
-
- Used with SOAP messages to access WSDL documents describing
services in the directory
- 23. Service Discovery Table from uddi.org UDDI Business
Registry (UBR) From an end-users perspective, a public registry
appears to be a service in a cloud. Although administrative
functions may be secured, access to the registry data itself is
essentially open and public. Data may be shared or transferred
among other registries, and content may or may not be moderated.
Public Trading Partner Network A registry deployed within a
controlled environment, but with limited access by authorized
clients. Administrative features may be delegated to trusted
parties. Data may be shared with other registries in a controlled
manner. Affiliated Enterprise Web Service Registry An internal
registry, behind a firewall, that is isolated from the public
network. Access to both administrative features and registry data
is restricted. Data is not shared with other registries.
Corporate/Private EXAMPLE APPLICATION DESCRIPTION REGISTRY
TYPE
- 24. Service Discovery
-
- http:// soapclient.com/uddisearch.html
- 25. Other SOA Web Services Options
- Although the standards discussed offer much flexibility for
service-oriented development, they are not the only means to
implement SOA web services.
- Almost any service-based technology will work
- Service oriented systems have been implemented using
- 26. Jini
- Originally developed by Sun, now Apache (Apache River)
- Jini is used to create distributed services
- Seven suite used to develop and deploy services
- Both a specification and an implementation
- 27. Jini
- Jini service browser example
Image from Warren Strange
- 28. CORBA
- Distributed programming protocol
- Standard defined by Object Management Group
- Allows interoperation between software components written in
different languages running on different computers
- Wraps code with a description that contains information about
what the code can do and how to use it
- Uses an interface definition language to specify how code
interacts
- Mappings exist between the interface definition language and
implementation programming languages
-
- Ada, C, C++, Lisp, Smalltalk, Java, COBOL, PL/I, and
Python
- 29. CORBA Image from Wikipedia
- 30. Summary
- Web Service Protocol Stack