Last Lecture
Web Ontology Language
Problems?
Lecture Outline
Service Oriented Architecture
Web Services Architecture
Web Services Standard Technologies
Limitations of Standard Technologies
Service Oriented Architecture
Any environment where:
Services are ubiquitous and organically integrated
A service is a software building block that is well-defined and self- contained
Ideally does not depend on the context or state of other services
Systems are assembled from a loosely coupled collection of services, which
Have a published interface
Can communicate with each other
Services that utilize Web Services standards (WSDL, SOAP, UDDI) are the most popular type of services available today
Elements of SOA
Loose coupling: focus should be on high-level contractual relationships
Implementation neutrality: the interface is what should matter
Flexible configurability: late binding of components
Long lifetime: components should exist long enough to be discovered, to be relied upon, and to engender trust in their behaviour
Granularity: interactions and dependencies should occur at as high level as possible
Teams: computation in open systems should be conceptualized as business partners working as a team
Trend
“By 2008, SOA will be a prevailing software engineering practice, ending the 40-year domination of monolithic software architecture (0.7 probability).
…
Through 2008, SOA and Web services will be implemented together in more than 75 percent of new SOA or Web services projects (0.7 probability).”
David McCoy and Yefim Natis,
Service-Oriented Architecture: Mainstream Straight Ahead
Benefits of SOA
… in the long term the values of Web services and SOA will be evident. Web services deployed in SOA:
Leverage open standards to represent virtually all software assets as services including legacy applications, packaged applications, J2EE components and Web services.
Effect that individual software assets become building blocks that can be reused in developing other applications.
Provide developers with a standard way of representing and interacting with software assets without having to spend time working with unique interfaces and low-level APIs.
Help reducing the complexity, cost, and risk of integration by providing a single, simple architectural framework in which to build, deploy, and manage application functionality.
Enable enterprises to easier integrate processes as well as to react on changing market requirements more quickly.
SOA is useful in many aspects and should be part of the most forward-looking software projects. Over time, lack of SOA experience will become a competitive disadvantage for many enterprises.
Siemens - Web Services and Service Oriented Architectures The Impact on Business Applications
SOA: Integration layer
Service-oriented architecture introduces a new logical layer: the service integration layer
Establishes a common point of integration within application tiers and across application boundaries
SOA: Participant Roles and Interactions
SOA is based upon the interactions between three roles:
Provider - the owner of the service
Registry or Broker - manages repositories of information on providers and their software assets
Requestor - discovers and invokes software assets provided by one or more providers
There are three fundamentals interactions:
Publishing - providers publish information (or metadata) about services to a registry
Finding (service location) - requestors query a public or private registry for service description
Binding - requestors use the service description to create a message to be sent to the service provider
Web Services
Web services is the integration technology preferred by organizations implementing SOA
Trigger point – weakness of HTML model for e- commerce solutions
A new model of distributed computing
The natural evolution of distributed programming
Sockets Æ RPC Æ Distributed Objects ÆWeb Services
To simplify application integration and interoperability
Mainly for use by other applications
Goal: provide a simple application-to-application interface
Fundamental Issues that had to be addressed
A common framework for Web service interactions based on open standards
What is a Web Service?
“A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML artifacts and supports direct interactions with other software applications using XML based messages via internet-based protocols” (W3C)
“… a piece of business logic accessible via the Internet using open standards ..” (Microsoft)
Component & Web Services: Comparison
Component-Based Model
Mainly designed for processes within the enterprise
Different protocols and technologies (e.g. EJBs, DCOM, CORBA)
Typically, programming language dependent
Usually bound to a particular transport
Web Service Model
Mainly designed for processes across enterprises
Uses common protocol and technologies (e.g. XML, SOAP, WSDL, …)
Programming language independent
Easily bound to different transport
Web Services: A New Paradigm?
What is unique about Web service?
XML-Based - XML as the data representation layer for all Web services protocols and technologies
Loosely-coupled - a consumer of a web service is not tied to that web service directly
The only contract that have to be agreed upon between communicating parties is the syntax and semantics of XML messages.
No need to agree on object model
No need to agree on programming language,
No need to agree on programming APIs.
Ability to be synchronous or asynchronous
Coarse-grained - a piece of business logic
Will allow:
On the fly composition of new functionality
Decomposition and distribution of large scale processing tasks across many devices
Tight VS Loose Coupling
Tight coupling
Very efficient interaction
Very compressed communication
Requires “deep knowledge”
Problems with changes
Loose coupling
Less efficient interaction
Not as many subtle details conveyed
Does not require “deep knowledge”
Why Web Services?
Interoperable – Connect across heterogeneous networks using web-based standards
Economical – Recycle components, no installation and tight integration of software
Automatic – No human intervention required even for highly complex transactions
Accessible – Legacy assets & internal applications are exposed and accessible on the web (security issues)
Available – Services on any device, anywhere, anytime
Scalable – No limits on scope of applications and amount of heterogeneous applications
Service Composition
Web services can be interlinked together to provide a larger set of services
Applications can be developed out of web services assembled from all over the Internet.
Web Services Standards
Four standards define the critical elements of Web services:
Extensible Markup Language (XML + XML Schema)
Describes format of the request and response; data types
Simple Object Access Protocol (SOAP)
Describes handshaking with server
Web Service Definition Language (WSDL)
Allows servers to describe services being offered
Universal Description, Discovery, and Integration (UDDI)
Protocol for listing services in a directory
Relationship between 1
stGeneration
Standards
Web Services: Architecture
Standards: A more detailed view
Choreography and Orchestration
Choreography
Specifies the behavioural interface for service consumption
A Service User (Client) has to support this for consuming a Web Service
consists of messages & their order, errors, and communication
Orchestration
Specifies how the functionality of a Web Service is achieved by aggregating other Web Services
Support for Service Provider to specify composed web services
Limitations of Standard Technologies
Standard technologies exhibit little flexibility and expressiveness and restrict the usability of Web services to human users rather than software agents.
UDDI:
search mechanism relies on pre-defined categorizations (tModels) through keywords and does not refer to the semantic content of the advertisement.
WSDL:
no support for the definition of logical constraints between its input and output parameters,
has no precondition, postcondition (effect).
Suggested Reading
Service Oriented Architecture
New to SOA
http://www-128.ibm.com/developerworks/webservices/newto/
What is Service Oriented Architecture?
http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html
Web Services Architecture (W3C)
http://www.w3.org/TR/ws-arch/
Next Lecture
Business Process Modelling
BPEL
Semantic Web Services
OWL-S Initiative