Web Services - SOA

From Training Material
Revision as of 23:06, 3 November 2015 by Łukasz Sokołowski (talk | contribs) (→‎Quiz – No Prizes! No Pressure! ⌘)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
title
Web Services Basics For Non-programmers
author
Pete George (NobleProg Ltd)

Day One Schedule ⌘

  1. Introduction
  2. Service-Oriented Architecture
  3. Web Services Overview
  4. XML
  5. SOAP

Service-Oriented Architecture ⌘

Learning Objectives

  • To understand the relationship between SOA and Web services
  • To understand what a service is
  • To understand what a SOA is
  • To be aware of the underlying principles behind SOA

SOA and Web Services ⌘

SOA WebServices.png SOA using Web services

Service-Oriented Architecture ⌘

SOA.png

  • Technology design approach that precedes Web services
  • Early SOA seen in 1990s Object Request Broker (ORB)

Different Perspectives of SOA ⌘

The Blind Men and The Elephant John Godfrey Saxe (1816-1887)

SOA 1.png

  • The man touching the trunk believes it to be a snake
  • The man touching the tusk believes it to be a spear
  • The man touching the ear believes it to be a fan
  • The man touching the elephant’s side believes it to be a wall
  • The man touching the tail believes it to be a rope
  • The man touching the legs believes they are trees

SOA – Different Perspectives ⌘

The Blind Men and The Elephant John Godfrey Saxe (1816-1887)

SOA5.png

And so these men of Indostan

Disputed loud and long,

Each in his own opinion

Exceeding stiff and strong,

Though each was partly in the right,

And all were in the wrong!

SOA Definitions ⌘

“A loosely-coupled architecture designed to meet the business needs of the organisation” (MSDN, 2013)

“A business-centric architectural approach based on service-oriented principles” (Jenson, 2013)

A Simple Definition of SOA ⌘

“The assembly of services – internal and external to an organisation” (Barry, 2013)

A Simple Service ⌘

6.png

Service Features ⌘

  • Implements a business function
  • Software and hardware
  • Generally reusable (used in different ways)
  • Can be used by multiple consumers

Atomic Service ⌘

  • Indivisible
  • Self-contained function
  • Fine-grained or finer granularity
  • No dependency on other services

Atomic Service Example ⌘

6.png

Composite/Compound Services ⌘

  • Assembly of atomic or composite services
  • Coarse-grained or larger granularity
  • Internal services may be dependent on each other

Composite Service ⌘

Get Details of Atom Service

SOA Design ⌘

  • Services designed to be components
  • Components assembled in a variety of ways to support business functions

Basic SOA Building Block ⌘

SOA2.png

Basic SOA Building Block ⌘

SOA 2.png

Web Service Implementation ⌘

SOA 3.png

Basic Service-Oriented Architecture ⌘

SOA 4.png

An Example SOA ⌘

SOA 5.png

SOA Principles ⌘

  • Standardized service contracts
  • Loose coupling
  • Service abstraction
  • Service reusability
  • Service autonomy
  • Service statelessness
  • Service discoverability
  • Service composability

Standardized Service Contracts ⌘

  • Applied to ensure service contracts within organization adhere to same standards
  • Service Contract typically includes:

-Policy documents

-For a Web service implementation:

  • WSDL
  • XML schema

Standardized Service Contracts ⌘

SOA 6.png

Loose Coupling ⌘

SOA 7.png

Loose Coupling Challenge ⌘

SOA 8.png

Service Abstraction ⌘

SOA 9.png

Service Reusability ⌘

SOA 10.png

  • Service internal logic not related to specific business process – reusable in multiple processes

SOA 11.png

Service Autonomy ⌘

  • Design-time autonomy

-Service designed so that underlying resources can be changed without affecting Consumer

  • Run-time autonomy

-Service designed so that has control over how logic is processed by run-time environment

Service statelessness ⌘

  • State = stored information to which service has access at a point in time
  • Services designed to be separated from their state in order reduce overhead of managing state data
  • Typically state data handled by, e.g:

-Shared middleware product external to service

-Dedicated database internal to service

Service Discoverability ⌘

  • Service meta-data published

-Allows for resuse

-Avoids overlapping services

  • Meta-data types

-Functional aspects of service’s capability

-Quality of service behaviour/limitations

Service Composability ⌘

  • New Services created by composing services together
  • Promotes reuse of services
  • Dependent on previous principles

-E.g. standardized service contracts

Quiz – No Prizes! No Pressure! ⌘

WebServices 01.png