Studienarbeit: "Generierung von Korrektheitstests für den Vergleicher von DIANE Service...

Post on 05-Apr-2015

111 views 1 download

Transcript of Studienarbeit: "Generierung von Korrektheitstests für den Vergleicher von DIANE Service...

Studienarbeit:

"Generierung von Korrektheitstests für den Vergleicher

von DIANE Service Descriptions"

Mirco Stern

Betreuender Mitarbeiter: Michael Klein

Betreuer: Prof. Dr. Dr. h.c. Lockemann

26.11.2004 Mirco Stern 2

Rahmen der SA: DSD

• Übergeordnetes Problem:Zusammenbringen von Dienstnehmer & Dienstgeber

• Ziel von DIANE Service Descriptions:

Vollständige Automatisierung der Dienstnutzung

• Finden eines Dienstgebers (Vergleich Nachfrage- Angebot)• Korrekter Aufruf (Belegung der Schnittstelle)

Semantische Beschreibung von Diensten:„DSD- DIANE Service Descriptions“

Dienstverzeichnis

DG DN

26.11.2004 Mirco Stern 3

Ziele der SA

• Generierung von Dienstbeschreibungen• 1 Nachfrage (Request)

• N Angebote (Offers)

• Zur Prüfung des MatchersDazu: 1) Berechnung des Vergleichsergebnisses

2) Korrekter Aufruf der Schnittstellen

• Zur Prüfung des Konzepts des Matchers• Wie häufig ist die gewählte Schnittstellenbelegung ausführbar?

• Wie optimal ist das gewählte Angebot (pessimistischer Matcher)?

26.11.2004 Mirco Stern 4

Inhalt

• Ziele der Studienarbeit (Thema)

• Überblick über die zugrundeliegende Technologie: DIANE Service Descriptions (DSD)

• Aufbau des Generators für Dienstbeschreibungen

• Probleme/ Schwierigkeiten bei der Umsetzung

• Zusammenfassung

26.11.2004 Mirco Stern 5

Beispielontologie

Drug

price

ONTOLOGY: domain.drug

VegetableDrug

ChemicalDrug

interactionString

name domain.company

Company

domain.indication

Indication

Booleanprescription drug

manufacturer

reason of use

domain.money

Price

domain.substance

Active AgentGroup

active agent group

6

Beispielontologien

Company

ONTOLOGY: domain.company

Stringname

domain.location

Location

domain.sector

Sector

place of business

industrial sector

Drug

price

ONTOLOGY: domain.drug

VegetableDrug

ChemicalDrug

interactionString

name domain.company

Company

domain.indication

Indication

Booleanprescription drug

manufacturer

reason of use

domain.money

Price

domain.substance

Active AgentGroup

active agent group

ass 500: Chemical Drugprice

name ratiopharm :Company

prescription drug

manufacturer

reason of useactive agent group

"ASS-ratiopharm 500"

<false>

interaction

...

...

...

...

ratiopharm :Company

name

place of business

industrial sector

"rationpharm GmbH"

...

...

7

DSD- Request

Dienstnehmer suchteine Funktionalität,keinen bestimmten Dienst!

Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interactionmanufacturer

price

reason of use

Company

== germany

Country

Boolean

== false

Indication

== headache

place ofbusiness

Vegetable Drug super[1, 0.7]

PriceOUT

entity

Drug

!= imodium

Menge

8

DSD- Request

Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interactionmanufacturer

price

reason of use

Company

== germany

Country

Boolean

== false

Indication

== headache

place ofbusiness

Vegetable Drug super[1, 0.7]

PriceOUT

entity

Drug

!= imodium

Direkte Bedingung

Variable

Type Check Strategy

Menge

9

DSD- Request

Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interactionmanufacturer

price

reason of use

Company

== germany

Country

Boolean

== false

Indication

== headache

place ofbusiness

Vegetable Drug super[1, 0.7]

PriceOUT

entity

Drug

!= imodium

Drug

ONTOLOGY: domain.drug

VegetableDrug

ChemicalDrug

26.11.2004 10

DSD- Offer

:Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interaction

manufacturer

price

reason of use<false>

Drug

active agentgroup

currencyamount

StringOUT name

PriceOUT

Double

> 2.35< 8.00

Currency

== eur

Active Agent Group

== anticoagulants

entity

Chemical Drug

Company

== ratiopharm

Indication

in {headache,thrombosis}

IN

Aufgaben des Vergleichers:

1) Vergleichsergebnis 2) Belegen der Variablen

26.11.2004 Mirco Stern 11

Vergleich Nachfrage- Angebot

• Ergebnis є [0, 1]

• Vergleich rekursiv entlang der Nachfrage:

„Ist das Angebot ein Element der Nachfragemenge“

1) Typ

2) Direkte Bedingungen

3) Attribute

interaction

manufacturer

Drug

active agentgroup

Active Agent Group

== anticoagulants

...

...

...

...

interaction

manufacturer

place ofbusiness

...

...

...

...

Company

== germany

Country

Vegetable Drug super[1, 0.7]

(Request:)

(Offer:)

Drug

!= imodium

Company

== ratiopharm

Chemical Drug

26.11.2004 Mirco Stern 12

Inhalt

• Ziele der Studienarbeit (Thema)

• Überblick über die zugrundeliegende Technologie: DIANE Service Descriptions (DSD)

• Aufbau des Generators für Dienstbeschreibungen

• Probleme/ Schwierigkeiten bei der Umsetzung

• Zusammenfassung

26.11.2004 Mirco Stern 13

Allgemeines Vorgehen:

1) Erzeugung einer Nachfrage (Request) - zufällig2) Erzeugung eines Angebots (Offer) entlang der

Nachfrage

Motivation:

Bei nur einer Abweichung ist das Vergleichsergebnis 0.0!

• Vorgehen grundsätzlich gleich!

Veranschaulichung des Vorgehens am Beispiel des Angebots (Aufbau eines Offers)

26.11.2004 Mirco Stern 14

Ausgangspunkt:

:Service

:ServiceProfile

presents

effect

<State>

Gerüst des Angebots:Die fertigeNachfrage:

Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interactionmanufacturer

price

reason of use

Company

== germany

Country

Boolean

== false

Indication

== headache

place ofbusiness

Vegetable Drug super[1, 0.7]

PriceOUT

entity

Drug

!= imodium

26.11.2004 Mirco Stern 15

Vorgehen beim Aufbau des Angebots:

(wesentliche Schritte:)1) Attribut im Request enthalten??? JA:

2) Soll es gesetzt werden??? JA:

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

26.11.2004 Mirco Stern 16

Vorgehen beim Aufbau des Angebots:

(wesentliche Schritte:)

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

:Service

:ServiceProfile

presents

effect

<State>

26.11.2004 Mirco Stern 17

Vorgehen beim Aufbau des Angebots:

(wesentliche Schritte:)

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

:Owned

:Service

:ServiceProfile

presents

effect

entity

<Thing>

26.11.2004 Mirco Stern 18

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten??? JA:

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

:Owned

:Service

:ServiceProfile

presents

effect

entity

<Thing>

26.11.2004 Mirco Stern 19

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden??? JA:

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

:Owned

:Service

:ServiceProfile

presents

effect

entity

<Thing>

26.11.2004 Mirco Stern 20

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributsa) Direkte Bedingung oder

Instanzb) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

Drug

ONTOLOGY: domain.drug

VegetableDrug

ChemicalDrug

:Owned

:Service

:ServiceProfile

presents

effect

entity

<Thing>

26.11.2004 Mirco Stern 21

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributsa) Direkte Bedingung oder

Instanzb) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

:Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interaction

manufacturer

price

reason of use

Chemical Drugname

entity <Indication>

<Company>

<Drug><Price>

<String>

<Boolean>

22

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

:Owned

:Service

:ServiceProfile

presents

effect

presciptiondrug

interaction

manufacturer

price

reason of use

Chemical Drugname

entity <Indication>

<Company>

<Drug><Price>

<String>

<Boolean>

23

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

interaction

manufacturer

reason of use

Chemical Drug

entity <Indication>

<Company>

<Drug>

...

24

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

interaction

manufacturer

reason of use

Chemical Drug

entity

<Company>

<Drug>

...

Indication

in {headache,thrombosis}

26.11.2004 Mirco Stern 25

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

interaction

manufacturer

reason of use

Chemical Drug

entity

<Company>

<Drug>

...

Indication

in {headache,thrombosis}

IN

26.11.2004 Mirco Stern 26

Probleme bei OffIn-Variablen

Indication

== headache

Entsprechende Stelle im Request:

Problem 1: Änderung des Vergleichsergebnisses:

Vergleichsergebnis: 0.0

Vergleichsergebnis: 1.0

interaction

manufacturer

reason of use

Chemical Drug

entity

<Company>

<Drug>

...

Indication

in {headache,thrombosis}

IN

26.11.2004 Mirco Stern 27

Probleme bei OffIn-Variablen

Problem 2: Einschränkung der Belegungsmöglichkeiten:

interaction

manufacturer

reason of use

Chemical Drug

entity

<Drug>

...

Indication

in {headache,thrombosis}

IN

Company

in {ratiopharm, bayer}

IN

26.11.2004 Mirco Stern 28

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUTinteraction

manufacturer

reason of use

Chemical Drug

entity

<Company>

<Drug>

...

Indication

in {headache,thrombosis}

IN

29

Vorgehen beim Aufbau des Angebots:

1) Attribut im Request enthalten???

2) Soll es gesetzt werden???

3) Typwahl (Abhängig von Type Check Strategy)

4) Einschränkung des Attributs

a) Direkte Bedingung oder Instanz

b) Attributbedingungen

5) Setzen von Variablen: OffIN, OffOUT

6) Binden von ReqOUT

interaction

manufacturer

reason of use

Drug

active agentgroup

Active Agent Group

== anticoagulants

entity

...

Indication

in {headache,thrombosis}

IN

Company

== ratiopharm

Chemical Drug

Company

== germany

Country

Drug

!= immodium

26.11.2004 Mirco Stern 30

ReqOUT-Variablen

6) Binden von ReqOUT

• OffOUT:• Ausgabe übernehmen

• Instanz:• Instanz ausgeben

• OffIn:• Gewählte Instanz ausgeben

• Menge:• Problem: Mehrelementige Mengen

presciptiondrug

interaction

manufacturer

price

reason of use

Chemical Drug

<false>

Drug

active agentgroup

currencyamount

StringOUT name

PriceOUT

Double

> 2.35< 8.00

Currency

== eur

Active Agent Group

== anticoagulants

entity

...

...

...

26.11.2004 Mirco Stern 31

Inhalt

• Ziele der Studienarbeit (Thema)

• Überblick über die zugrundeliegende Technologie: DIANE Service Descriptions (DSD)

• Aufbau des Generators für Dienstbeschreibungen

• Probleme/ Schwierigkeiten bei der Umsetzung

• Zusammenfassung

26.11.2004 Mirco Stern 32

Schwierigkeiten

• Request:• Keine leeren Mengen erzeugen

(Zusammenhänge der Beschreibungselemente von DSD herausfinden und umsetzen)

• (Request & Offer:) Sonderfall Entitätsmengen

• Offer:• In jedem Schritt: Menge ins Request einpassen- Vergleichsergebnis!

• OffIN:• Neuberechnung des Vergleichsergebnisses• Belegung der Variablen (Schnittstellen)

• Z.T. wie der Vergleicher agieren

26.11.2004 Mirco Stern 33

Zusammenfassung

• Generierung von Anwendungsbeispielen für den Vergleicher von Dienstbeschreibungen

• Zentraler Ansatz:– Aufbau der Nachfrage– Generierung der Angebote „entlang“ der

Nachfrage