CPSC 875 CPSC 875 John D McGregor John D. McGregor C7 Design - - PowerPoint PPT Presentation

cpsc 875 cpsc 875
SMART_READER_LITE
LIVE PREVIEW

CPSC 875 CPSC 875 John D McGregor John D. McGregor C7 Design - - PowerPoint PPT Presentation

CPSC 875 CPSC 875 John D McGregor John D. McGregor C7 Design Service oriented architecture Service oriented architecture SOA SOA Service oriented Architecture Service oriented Architecture instantiate http://talkdata.com/soa_arch.html


slide-1
SLIDE 1

CPSC 875 CPSC 875

John D McGregor John D. McGregor C7 ‐ Design

slide-2
SLIDE 2

Service oriented architecture Service oriented architecture

slide-3
SLIDE 3

SOA SOA

slide-4
SLIDE 4

Service‐oriented Architecture Service oriented Architecture

instantiate http://talkdata.com/soa_arch.html

slide-5
SLIDE 5

Context Aware Telematics Context Aware Telematics

slide-6
SLIDE 6

Real‐time embedded systems Real time embedded systems

slide-7
SLIDE 7

Interface messages Interface messages

slide-8
SLIDE 8

Service‐oriented Service oriented

  • http://msdn.microsoft.com/en‐us/library/aa480021.aspx

p // / / y/ p

  • Service
  • A Component capable of performing a task. A WSDL service: A

collection of end points (W3C).

  • A type of capability described using WSDL (CBDI).
  • A Service Definition
  • A Service Definition
  • A vehicle by which a consumer's need or want is satisfied

according to a negotiated contract (implied or explicit) which g g ( p p ) includes Service Agreement, Function Offered and so on (CBDI).

slide-9
SLIDE 9

Web service Web service

  • A software system designed to support interoperable

A software system designed to support interoperable machine‐to‐machine interaction over a network. It has an interface described in a format that machines can process (specifically WSDL). Other systems interact with the Web service in a manner prescribed b it d i ti i SOAP t i ll by its description using SOAP messages, typically conveyed using HTTP with XML serialization in conjunction with other Web‐related standards conjunction with other Web related standards (W3C).

  • A programmatic interface to a capability that is in

A programmatic interface to a capability that is in conformance with WSnn protocols (CBDI).

slide-10
SLIDE 10

Service oriented architecture Service oriented architecture

  • A set of components which can be invoked, and

A set of components which can be invoked, and whose interface descriptions can be published and discovered (W3C).

  • The policies, practices, frameworks that enable

application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer. Services can be invoked published and discovered and are can be invoked, published and discovered, and are abstracted away from the implementation using a single, standards‐based form of interface. (CBDI) single, standards based form of interface. (CBDI)

slide-11
SLIDE 11

SOA Reference Architecture SOA Reference Architecture

  • Reference architecture – an abstraction from

Reference architecture an abstraction from the software architecture

  • http://docs oasis open org/soa rm/v1 0/soa
  • http://docs.oasis‐open.org/soa‐rm/v1.0/soa‐

rm.pdf

slide-12
SLIDE 12

Trust in software architecture Trust in software architecture

  • Defense‐in‐depth – every component is secure

Defense in depth every component is secure and robust

  • Data aggregation

minimize data that is

  • Data aggregation – minimize data that is
  • utside of the secure system

U d fi d i li i bl

  • User‐defined privacy policies – users are able

to define what policies they wish to apply to h i d their data

  • http://books.google.com/books?id=OxnTlhm99A8C&pg=PA23&lpg=PA23&dq=service+oriented+architectu

re+in‐ vehicle+telematics&source=bl&ots=BRsTjItSRn&sig=BBSdixgLonKAGbZQgNNOe2WS5RU&hl=en&sa=X&ei= vehicle+telematics&source bl&ots BRsTjItSRn&sig BBSdixgLonKAGbZQgNNOe2WS5RU&hl en&sa X&ei LXoEUfCsGI2M0QGp_4GQDg&ved=0CEkQ6AEwATgK#v=onepage&q=service%20oriented%20architecture %20in‐vehicle%20telematics&f=false

slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15

Qualities Qualities

  • Enabled by Web services

Enabled by Web services

– Technology neutral Endpoint platform independence independence. – Standardized Standards‐based protocols. – Consumable Enabling automated discovery and – Consumable Enabling automated discovery and usage.

slide-16
SLIDE 16

Qualities Qualities

  • Enabled by SOA

Enabled by SOA

– Reusable Use of Service, not reuse by copying of code/implementation. – Abstracted Service is abstracted from the implementation. P bli h d P i bli h d ifi i f i li f – Published Precise, published specification functionality of service interface, not implementation. – Formal Formal contract between endpoints places Formal Formal contract between endpoints places

  • bligations on provider and consumer.

– Relevant Functionality presented at a granularity d b h f l recognized by the user as a meaningful service.

slide-17
SLIDE 17

Benefits Benefits

  • There is real synchronization between the

There is real synchronization between the business and IT implementation perspective.

  • A well formed service provides us with a unit
  • A well formed service provides us with a unit
  • f management that relates to business

usage usage.

  • When the service is abstracted from the

i l i i i ibl id implementation it is possible to consider various alternative options for delivery and ll b i d l collaboration models.

slide-18
SLIDE 18

Data and Events are passed Data and Events are passed

slide-19
SLIDE 19

Extended examples Extended examples

  • http://www.health.state.mn.us/divs/istm/architectur

http://www.health.state.mn.us/divs/istm/architectur e.pdf

slide-20
SLIDE 20
  • Decompose

Decompose

  • Integrate

I di id l h d i i t d ith – Individual hardware pieces are associated with drivers The drivers feed applications – The drivers feed applications – The applications are tied together by a user interface interface

slide-21
SLIDE 21

Decompose into modules Decompose into modules

slide-22
SLIDE 22

Hardware abstraction layer Hardware abstraction layer

  • The specific hardware is hidden from the

The specific hardware is hidden from the software.

  • The layer acts as an API
  • The layer acts as an API
  • An operating system usually includes a layer
  • Making the API from standards allows the

underlying device to be commoditized

slide-23
SLIDE 23

Hardware abstraction layer Hardware abstraction layer y

slide-24
SLIDE 24

MVC MVC

Model Controller View View View View Controller

HAL HAL HAL

slide-25
SLIDE 25

software HAL hardware

slide-26
SLIDE 26

HAL HAL HAL

slide-27
SLIDE 27

C/S C/S

HAL HAL HAL

slide-28
SLIDE 28

Integration styles Integration styles

View

Model Model

View

Controller

HAL

Model Model

View HAL

Model Model

Controller

HAL

slide-29
SLIDE 29

So what do we have now? So what do we have now?

  • Correct

Correct

  • Reliable

Any conflicts?

slide-30
SLIDE 30

Master/slave Master/slave

Model Model

View View

Controller

View

Controller

slide-31
SLIDE 31

Step 4: Choose a Design Concept That Satisfies the A hit t l D i Architectural Drivers

  • Styles and patterns filtered by qualities

Styles and patterns filtered by qualities

  • When do you use …

Driver Pattern Efficiency Pipe/filter M difi bilit L Modifiability Layer Flexibility MVC Security Client/server

  • Keep a table of these
slide-32
SLIDE 32

Step 5: Instantiate Architectural Elements d ll ibili i and Allocate Responsibilities

We begin with the monolith g and all of the uses of the system (Why the uses and not the

Work with client Collect data

(Why the uses and not the requirements?)

Manipulate client data Store/retrieve data Present results

When we decompose the monolith we also decompose the responsibilities p We also add new responsibilities from splitting responsibilities from splitting some responsibilities.

HAL

slide-33
SLIDE 33

Step 5: Instantiate Architectural Elements d ll ibili i and Allocate Responsibilities

Work with client Collect data Present results Manipulate client data Store/retrieve data Return information HAL HAL

slide-34
SLIDE 34

Step 6: Define Interfaces for Instantiated Elements

  • Start with all the requirements

Start with all the requirements

  • What does each module need from others and

what does it produce? what does it produce?

  • Requires:
  • Provides:
slide-35
SLIDE 35

Registration Registration

slide-36
SLIDE 36

Specification Specification

slide-37
SLIDE 37

Step 6: Define Interfaces for Instantiated Elements

Requires: Data from user Provides: computed results

face interf

HAL HAL

slide-38
SLIDE 38

What do we need? What do we need?

  • Languages for specifying the interfaces

Languages for specifying the interfaces

slide-39
SLIDE 39

Here’s what you are going to do… Here s what you are going to do…

  • Do a first level decomposition of your

Do a first level decomposition of your architecture

  • Capture that decomp in AADL
  • Capture that decomp in AADL
  • Submit the *.aadl files by Monday Feb 4th by

11 59 11:59pm.