Lecce Presentation2008

Post on 23-Jan-2015

451 views 0 download

Tags:

description

 

Transcript of Lecce Presentation2008

SBVR in Practice: Systems Built for ChangeDeclarative Technologies in a Digital

Ecosystem

Alexandros Marinos(a.marinos@surrey.ac.uk)

Points to Cover• Case Study Pt 1: SBVR + Relational Databases + REST

• Case Study Pt 2: Deriving Processes from Rules

• Extending the model (Transactions, UI, Composing Services)

• Declarative Programming and DNA

• The Epistemic Arrogance of Computing

• Integration with DE infrastructure: The RISK board game

Case Study Pt 1: SBVR + Relational Databases + REST

Made for one another

SBVR

Vocabulary(SBVR)

Vocabulary(SBVR)

Term

Contains

Vocabulary(SBVR)

Term

Contains

Terms

studentcourse

study programme

Vocabulary(SBVR)

Term

Fact Type

ContainsContains

Terms

studentcourse

study programme

Vocabulary(SBVR)

Term

Fact Type

ContainsContains

Terms

studentcourse

study programme

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

Vocabulary(SBVR)

Term

Fact Type

ContainsContains

Connects

Terms

studentcourse

study programme

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

Vocabulary(SBVR)

Term

Fact Type

Is defined according to

ContainsContains

Connects

Rule(SBVR)

Terms

studentcourse

study programme

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

Vocabulary(SBVR)

Term

Fact Type

Is defined according to

ContainsContains

Connects

Rule(SBVR)

Rules

It is necessary that each student is registered for at most five courses

Terms

studentcourse

study programme

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

Vocabulary(SBVR)

Term

Fact Type

Is defined according to

ContainsContains

Connects

Rule(SBVR)

Rules

It is necessary that each student is registered for at most five courses

It is necessary that each course that a student is registered for, is available for a study programme that the student is enrolled in.

Terms

studentcourse

study programme

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

Relational Database

Data

RDBMS

Schema

Structures

Vocabulary(SBVR)

Data

RDBMS

Schema

Defines

Structures

Vocabulary(SBVR)

Data

RDBMS

Schema

Defines

Structures

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

Vocabulary(SBVR)

Data

RDBMS

Schema

Defines

Structures

Student

Study Programme Course

Student_StudyProgramme

1

1

StudyProgramme_Course

1 1

Student_Course

1

1

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

Vocabulary(SBVR)

Data

RDBMS

Schema

Defines

Structures

Student

Study Programme Course

Student_StudyProgramme

1

1

StudyProgramme_Course

1 1

Student_Course

1

1

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

student has name, course has name, study programme has name

Vocabulary(SBVR)

Data

Constrains

Is defined according to

Rule(SBVR)

RDBMS

Schema

Defines

Structures

Student

Study Programme Course

Student_StudyProgramme

1

1

StudyProgramme_Course

1 1

Student_Course

1

1

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

student has name, course has name, study programme has name

Vocabulary(SBVR)

Data

Constrains

Is defined according to

Rule(SBVR)

RDBMS

Schema

Defines

Structures

Student

Study Programme Course

Student_StudyProgramme

1

1

StudyProgramme_Course

1 1

Student_Course

1

1

RulesIt is necessary that each student is registered for at most five

courses

It is necessary that each course that a student is registered for, is available for a study programme that the student is enrolled in.

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

student has name, course has name, study programme has name

REST

Verbs(HTTP)

GET

PUT

POST

DELETE

Verbs(HTTP)

GET

PUT

POST

DELETE

URI

Accesses

Creates

Updates

Destroys

Verbs(HTTP)

Instance

GET

PUT

POST

DELETE

URI

Collection

Represents

Accesses

Creates

Updates

Destroys

Represents

Contains

Verbs(HTTP)

Vocabulary(SBVR)

Term

Instance

GET

PUT

POST

DELETE

URI

REST

Collection

Fact Type

Represents

ContainsContains

Connects

Is Identified by

Describes

Describes

Accesses

Creates

Updates

Destroys

Represents

Contains

Verbs(HTTP)

Vocabulary(SBVR)

Term

Instance

GET

PUT

POST

DELETE

URI

REST

Collection

Fact Type

Represents

ContainsContains

Connects

Is Identified by

Describes

Describes

Accesses

Creates

Updates

Destroys

Represents

Contains

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

student has name, course has name, study programme has name

Verbs(HTTP)

Vocabulary(SBVR)

Term

Instance

GET

PUT

POST

DELETE

URI

REST

Collection

Fact Type

Represents

ContainsContains

Connects

Is Identified by

Describes

Describes

Accesses

Creates

Updates

Destroys

Represents

Contains

Vocabulary

student, course, study programme, name

student is registered for coursestudent is enrolled in study programmecourse is available for study programme

student has name, course has name, study programme has name

URIs

collection of students:http://domain.org/students/

A specific student:http://domain.org/students/John/

list of courses a student is enrolled in:http://domain.org/students/John/courses/

[note: domain could be replaced with an IP address]

The Big Picture

Verbs(HTTP)

Vocabulary(SBVR)

Term

Instance

GET

PUT

POST

DELETE

DataURI

REST

SBVR

Collection

Fact Type

Constrains

Contains

Is defined according to

Represents

ContainsContains

Connects

Is Identified by

Describes

Describes

Accesses

Creates

Updates

Destroys

Rule(SBVR)

RDBMS

Schema

Defines

Structures

Represents

Contains

Case Study Pt 2: Deriving Processes from Rules

What Processes?

Student Study Programme CourseCollection Instance Collection Instance Collection Instance

GET + + + + + +PUT   +   +   +POST +   +   +  DELETE   +   +   +

If we were to write processes…

Is Course available for

student’s SP?no

yes

Does Student have less than

5 courses?

yes

no

Add student to course

Are there students that

will be left with illegal courses?

yes

no

Delete Study Programme

Add Student To Course

addStudentToCourse(studentId,courseId)

Delete Study Programme

deleteSP(spId)

Will course students still be allowed to take

course?

no

yes

Delete Study Programme

Remove Course from Study Programme

RmvCourseFromSP(courseId,spId)

Cost of Change

Rules

It is necessary that each student is registered for at most five courses

It is necessary that each course that a student is registered for, is available for a study programme that the student is enrolled in.

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

Terms

studentcourse

study programme

Cost of Change

Rules

It is necessary that each student is registered for at most five courses

It is necessary that each course that a student is registered for, is available for a study programme that the student is enrolled in.

It is necessary that each student that is under probation, is registered for at most five courses

Fact Types

student is registered for course

student is enrolled in study programme

course is available for study programme

student is under probation

Terms

studentcourse

study programme

The alternative

Goal(x) Generic Method to Reach Goals

Set of Constraints+ = Process (x)+

The alternative

Goal(x) Generic Method to Reach Goals

Set of Constraints+ = Process (x)

Verb Noun

REST(HTTP)

SBVR Vocab.Rel. Database

Meta - Process SBVR Rules

+

Meta-process?

Requests Changes to State (Goal)

Explain Inconsistencies

Will State Be Consistent?

no

yes

Apply Changes

One Rule, Many Processes

Rule Rule Rule Rule

Process Process Process Process

Declarative Programming and DNA

• Rules must be:– Independent– Atomic

In other words, each rule should express exactly one constraint, no more, no less.

This gives them very interesting properties…

Declarative Programming and DNA

• Rules can be:– Deleted– Altered– Mixed

Therefore, having a set of candidate rules and a fitness function, we can generate variants of a model and apply genetic programming techniques

The Arrogant Epistemology of Computing

• Modern Information Systems are not built for change.

• We check requirements at one point in time and build them into processes/code

• Computing has evolved to deal with static problems, look for permanent solutions. We assume that our problem domain is static.

• Changing an information system is a slow, expensive and dangerous process.

• People are therefore tempted to conform to the software rather than having the software conform to their needs.

The Arrogant Epistemology of Computing

• Human society and organizations are constantly shifting. Not only do the challenges change, but people find constantly better ways to solve even relatively static problems.

• When applying computing to human society, we need a different approach

• The model needs to constantly change in order to reflect this organizational evolution. We need to remove the programmer to facilitate flexible system-stakeholder interaction.

• Declarative Information Systems are built for cheap and frequent change. They assume that the problem domain is constantly shifting

Questions?

Extending the model

• The design is modular. The core does not do everything but is focused and extensible.

• Adding Transactions and Querying• Adding Service Description• Adding User Interface• Even altering the persistence system

Verbs(HTTP)

Vocabulary(SBVR)

Term

Instance

GET

PUT

POST

DELETE

DataURI

REST

SBVR

Collection

Fact Type

Constrains

Contains

Is defined according to

Represents

ContainsContains

Connects

Is Identified by

Describes

Describes

Accesses

Creates

Updates

Destroys

Rule(SBVR)

RDBMS

Schema

Defines

Structures

Represents

Contains

Extending the model: Inputs

Automated Annotation

Manual Annotation

Automated Extraction

Other method

XML Annotated SBVR-SE

Text Input in Editor

Unstructured Natural

Language

Other Input

Form Input

Template ApplicationManual

Entry

Integration with DE infrastructure

Application Platform (D.I.S)

Game Rules

Identity &TrustModel

Transaction Model

Dist.Random Number

Gen.

Peer to Peer Client

(Distributed?) Storage System

Presentation (Skin)

Access + Lock System

Data

Community Rules

Application Platform (D.I.S)

Game Rules

Identity &

TrustModel

Transaction Model

DistributedRandom Number

Generator

Peer to Peer Client

(Distributed?) Storage System

Presentation (Skin)

Access + Lock System

Data

Community Rules

Application Platform (D.I.S)

Game Rules

Identity &TrustModel

Transaction Model

Dist.Random Number

Gen.

Peer to Peer Client

(Distributed?) Storage System

Presentation (Skin)

Access + Lock System

Data

Community Rules

Application Platform (D.I.S)

Game Rules

Identity &TrustModel

Transaction Model

Dist.Random Number

Gen.

Peer to Peer Client

(Distributed?) Storage System

Presentation (Skin)

Access + Lock System

Data

Community Rules

Player 2

Internet - REST(HTTP)

Player 1

Player 3 Player 4

As a Use Case for a Digital Ecosystem

Integration with DE infrastructure

Application Platform (D.I.S)

Game Rules

Identity &

TrustModel

Transaction Model

DistributedRandom Number

Generator

Peer to Peer Client

(Distributed?) Storage System

Presentation (Skin)

Access + Lock System

Internet - REST(HTTP)

Data

Player 1

As a Use Case for a Digital Ecosystem

Community Rules

More Questions?