Uni e si ä Ulm | 89069 Ulm | Ge many Fakul ä ü
Ingenieu wissenscha en,
In o ma ik und
Psychologie
Ins i u ü Da enbanken
und In o ma ionssys eme
Konzep und Implemen ie ung eines
F amewo ks zu Ve wal ung on
Digi al Twins
Bachelo a bei an de Uni e si ä Ulm
Vo geleg on:
S en Bihlmaie
s [email p o ec ed]
Gu ach e :
P o . D . Man ed Reiche
Be eue :
Klaus Kamme e
2017
Fassung 3. Augus 2018
c
2017 S en Bihlmaie
This wo k is licensed unde he C ea i e Commons. A ibu ion-NonComme cial-Sha eAlike 3.0
License. To iew a copy o his license, isi h p://c ea i ecommons.o g/licenses/by-nc-sa/3.0/de/
o send a le e o C ea i e Commons, 543 Howa d S ee , 5 h Floo , San F ancisco, Cali o nia,
94105, USA.
Sa z: PDF-L
A
TEX2ε
Ku z assung
Die o sch ei ende Digi alisie ung und dami e bundene Themen wie Indus ie 4.0
we den ü Un e nehmen imme wich ige . So sollen zukün ig beispielsweise digi ale
Abbilde , sogenann e Digi al Twins, on P oduk en hel en, de en Lebenszyklus zu ana-
lysie en. Die hie ü e o de lichen Da en müssen e hoben und gespeiche we den.
Diese können auch ü ande e Au gaben be ei ges ell we den. Die Da en liegen abe
meis in un e schiedlichen Fo ma en und an e schiedenen Endpunk en be ei . De en
E hebung und In eg a ion in bes ehende In o ma ionssys eme is au g und de meis
g oßen Da enmengen zudem au wendig und meis nu mi g oßem Au wand e wal ba .
Im Rahmen diese Bachelo a bei wi d ein g aphbasie es Konzep zu Ve wal ung on
Digi al Twins am Beispiel on Pha ma e packungsmaschinen o ges ell . Zusä zlich wi d
die Machba kei mi eine p o o ypischem Implemen ie ung au gezeig .
iii
Danksagung
Zunächs gil mein Dank He n P o . D . Man ed Reiche ü die Be ei s ellung des The-
mas de Bachelo a bei und den Ressou cen, dieses zu bea bei en. Einen besonde en
Dank widme ich meinem Be eue Klaus Kamme e , de mich wäh end de gesam en
Zei achlich und pe sönlich un e s ü z und mo i ie ha .
Auße dem möch e ich meine Familie danken, die mich a k ä ig mo alisch un e s ü z
ha . Wei e danke ich meinen F eunden, insbesonde e Ad ian und Fabian, die mich
sowohl achlich un e s ü z als auch mo i ie haben.
Mein Dank gil zudem Sa ah, die mich wäh end de A bei sphase imme wiede au den
Boden zu ückgehol ha .
Glossa
API
Applica ion P og amming In e ace. Eine API is eine Schni s elle, mi de en Hil e
Sys eme mi einande kommunizie en können.
CRUD
Das Ak onym s eh ü C ea e, Read, Upda e, Dele e. Dies sind die üblichen
Me hoden, um Da en in pe sis en en Speiche n zu e wal en.
F amewo k
Ein F amewo k is eine Rahmens uk u ü ein So wa ep ojek . Es bie e
wich ige Funk ionali ä en ü die gewünsch en Einsa zgebie e.
HTTP
Hype ex T ans e P o ocol. HTTP is ein P o okoll zu Übe agung on Da en
zwischen Sys emen.
JSON Die Ja aSc ip Objec No a ion is ein Da en anspo -Fo ma .
REST
Rep esen a ional S a e T ans e bezeichne die Möglichkei , Me hoden übe eine
Web-Schni s elle au zu u en.
URL
Ein Uni o m Resou ce Loca o is ein einhei liche Ressou cenzeige in einem
Compu e ne zwe k. Meis auch umgangssp achlich als "In e ne ad esse" genu z ,
können mi URLs Ressou cen eindeu ig iden i izie we den.
XML
Mi de Ex ensible Ma kup Language können hie a chisch s uk u ie e Da en
abgebilde we den. XML is ein s anda disie es Fo ma und kann dazu genu z
we den, Da en zwischen Sys emen zu anspo ie en.
ii
Inhal s e zeichnis
Glossa ii
1 Einlei ung 1
1.1 P oblems ellung ................................ 1
1.2 Zielse zung ................................... 2
1.3 S uk u de A bei ............................... 3
2 An o de ungen und Analyse 5
2.1 UseCases ................................... 5
2.1.1 Use Case 1: P oduk ionsmaschinen . . . . . . . . . . . . . . . . . 5
2.1.2 UseCase2:PKW ........................... 7
2.1.3 Use Case 3: So wa eabhängigkei en . . . . . . . . . . . . . . . . 10
2.2 An o de ungen ................................. 11
3 G undlagen 15
3.1 Digi ale Zwilling ................................ 15
3.2 Da enbankmanagemen sys eme . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 Neo4j G aph Da abase . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 Elas icsea ch.............................. 18
3.3 WebSe ices.................................. 20
3.3.1 Aus ausch o ma e . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.2 Schema isie ung............................ 22
3.3.3 URL................................... 23
3.3.4 Rep esen a ional S a e T ans e (REST) . . . . . . . . . . . . . . . 24
3.4 Sp ingF amewo k ............................... 24
3.4.1 Sp ingBoo ............................... 26
3.4.2 Sp ingDa a............................... 27
4 Lösungskonzep 29
4.1 An o de ungsauswe ung . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
ix
2 An o de ungen und Analyse
we den Da en aus e schiedenen Quellen in ein Sys em gelei e und do in ih em
jeweiligen Fo ma abgespeiche . Um diese Da en dann e gleichen zu können, müssen
die Da ensä ze zue s analysie we den, um die gewünsch en Da en in einem na i en
Fo ma ex ahie en zu können (siehe Abbildung 2.1).
Maschinen-
Bediensys em
Senso -
Messwe e
CAD-Se e
Zeichnungen
(CAD)
Hand-
büche
Ve ah ens-
Anweisungen
Bilde
Da enbank
Maschinen-
au bau
Nu ze
Ala me
Manuelles
Ab u en
de Da en
Abbildung 2.1: Anwendungs alldiag amm P oduk ionsmaschinen
Die e schiedenen Da en we den auße dem meis uns uk u ie in eine Da enbank
gespeiche , sodass bei eine Suche meis die gesam e Da enmenge du chsuch we den
muss, um einen bes imm en Da ensa z zu inden.
6
2.1 Use Cases
Soll dann au die Da en zugeg i en ode sollen die Da en e ände we den, muss ü
jedes Da en o ma eine ande e Bea bei ungsme hode gewähl we den. Meis können
e schiedene Da en o ma e nu au bes imm en Maschinen manipulie we den. Es gib
demnach keine einhei liche Schni s elle, die on den Mi a bei e n genu z we den kann.
Bei einem Aus all eine solchen Maschine muss ein ex e ne Technike hinzugezogen
we den, de du ch die Au agsplanung, das Kennenle nen de Maschine, die Lokali-
sie ung des P oblems und schließlich die P oblemlösung einen langen S ills and de
Maschine e u sach , in dem diese nich a bei en kann. Zudem wi d de Wa ungsp o-
zess meis nu unzu eichend dokumen ie [
4
]. Diese Dokumen a ionen we den dann
wiede um in eine Da enbank hin e leg und do nu im Fehle all noch einmal einge-
sehen. Wich ige S a is iken, die aus diesen Dokumen a ionen e hoben we den können
und sich posi i au die Wa ungsin ensi ä on Sys emen auswi ken, können dahe nich
e ek i ausge üh we den. Wenn ein Technike Einsich in die e schiedenen Da en
eine Maschine bekommen soll e, muss gewäh leis e sein, dass e nu eigegebene
Da en einsehen da . Beispielsweise sind ü einen Technike Da en übe den physikali-
schen Au bau eine Maschine ele an . Ande e Da en wiede um können ü die Wa ung
i ele an sein und soll en dahe nich on einem Technike eingesehen we den.
2.1.2 Use Case 2: PKW
Ähnlich wie bei Maschinen im o he gehenden Anwendungs all bes ehen auch PKW
aus ielen Einzel eilen, Komponen en und Senso en, die wiede um un e schiedliche
Eigenscha en au weisen und Messda en gene ie en können.
Die Da en übe den physikalischen ode logischen Au bau eines PKW können inne halb
de P oduk ion on Nu zen sein, da PKW o in ielen e schiedenen Kon igu a ionen
und mi speziellen Ex aauss a ungen p oduzie we den und die digi ale Abbildung
hie bei mi eine einhei lichen Rep äsen a ion hil eich sein kann.
Besi ze eines PKW müssen diesen o mals wa ungsbeding in eine We ks a b ingen
und ihn au Fah auglichkei ode Schäden und Fehle un e suchen lassen. Je nach
Zus and des PKW is diese Übe p ü ung meh ode wenige au wendig und nimm
en sp echend meh ode wenige Zei und somi Kos en in Ansp uch. O mals ehl eine
7
2 An o de ungen und Analyse
genaue Besch eibung des Fah zeugzus ands o de eigen lichen Un e suchung. Hie -
du ch kann es zu une wünsch en Fehleinschä zungen bezüglich des Wa ungsau wands
kommen.
Anhand im PKW gemessene Senso da en können auße dem beispielsweise auch
In o ma ionen übe das Fah e hal en gewonnen we den. Diese In o ma ionen sind mo-
men an zum Beispiel ü Ve siche ungen in e essan . So bie en manche Ve siche ungen
an, dem Ve siche en in eine We ks a ein kleines Ge ä in den PKW einbauen zu
lassen, mi dem bes imm e We e wie Sei enbeschleunigung (die beispielsweise au
ha e Lenkmanö e hinweisen) ode Beschleunigung (die ha es B emsen au zeigen
kann) gemessen we den, um im Nachhinein die Ve siche ungs a i e an das Fah e -
hal en des Fah e s anzupassen: je siche e ein Fah e äh , des o güns ige kann sein
Ve siche ungs a i einges u we den [
5
]. Die hie bei gesammel en Da en sind momen an
nich einsehba und s ehen ausschließlich de Ve siche ung zu Ve ügung. Diese Da en
we den nich oll ausgenu z , da sie iele In o ma ionen en hal en, die auch in ande en
Teilsys emen Rele anz haben. So können beispielsweise die om Ge ä gemessenen
Senso da en in das Fah zeugsys em eingegeben we den, um so die Nach üs ung on
Fah e assis enzsys emen in al en PKW zu e möglichen.
Allgemein is das Sammeln und übe sich liche Da s ellen diese Fah zeugda en ein wich-
ige Aspek . Übe diese In o ma ionen können iele Aussagen bezüglich de Wa ung
on PKW gesammel und ge o en we den. Anhand de ADAC Pannens a is ik wi d
e sich lich, dass die Wa ung on PKW eine g oße Rolle spiel und iel Au wand mi sich
b ing [
6
]. PKW-He s elle soll en demnach meh in eine höhe e Wa ba kei in es ie en.
Es is momen an zwa möglich, abe dennoch seh schwie ig, P obleme am eigenen
PKW als ach emde Pe son zu beheben. Dies lächendeckend zu ealisie en wä e ü
iele PKW-Besi ze eine ma kan e E spa nis.
Nich nu PKW, sonde n auch LKW können on de Technik p o i ie en. Übe das in e ne
Sammeln de Messda en können hie bei wich ige In o ma ionen wie Ruhezei en ode
Mau gebüh en zen al gespeiche und an die jeweilige Spedi ion wei e gegeben we den.
Na ü lich be i auch LKW de Vo eil de e besse en Wa ba kei .
8
2.1 Use Cases
Da en, die bei den e schiedenen Messungen an allen ode die bei de P oduk ion
eines PKW be ei s hin e leg we den, können zen al in eine digi alen Rep äsen a ion
eines PKW gespeiche we den, sodass alle Da en übe diesen Digi al Twin au einmal
abge u en we den können. Insgesam kann mi dem Digi al Twin de P ad in Rich ung
Wa ungs e besse ung, Telema ik und Fah siche hei wei e geebne und ausgebau
we den. Abbildung 2.2 s ell einen Auszug aus eine Übe sich übe die e schiedenen
Da en da , die on einem Nu ze manuell abge ag we den können.
Nu ze
Manuelle Ab age
de einzelnen
Da en
Beschleunigung
Ku belwellen-
posi ion
Tempe a u
K a , D eh-
momen
Du ch luss
Abgas-
zusammen-
se zung
D uck
Radd ehzahl
D ehzahl,
Geschwin-
digkei
B emsbelag-
e schleiß
Posi ion
Senso en
Abbildung 2.2: Auszug de Da ens uk u eines PKW
9
2 An o de ungen und Analyse
2.1.3 Use Case 3: So wa eabhängigkei en
Bei de So wa een wicklung können Teile ande e So wa e wiede e wende we den,
so e n die zug undeliegende A chi ek u dies zuläss . So wa een wickle p o i ie en so-
mi on be ei ges ell en F amewo ks zu E s ellung komplexe So wa esys eme. Diese
ielen e schiedenen F amewo ks können auch Abhängigkei en un e einande au wei-
sen. Um eine ko ek e Au lösung diese Abhängigkei en gewäh leis en zu können, muss
siche ges ell we den, dass die einzelnen Ve sionen de F amewo ks dies e lauben. Um
die Ve wal ung solche F amewo ks und ih e Ve sionsan o de ungen zu au oma isie en
und zu e ein achen, we den iele un e schiedliche Dependency Managemen Sys eme
angebo en (beispielsweise NuGe ü .NET [
7
] ode Ma en beziehungsweise G adle ü
Ja a [
8
,
9
]. Solche Sys eme übe wachen, so e n möglich, alle o handenen sogenann en
”Dependencies” (Abhängigkei en zu ande e So wa e) und so gen da ü , dass diese
au dem benö ig en und möglichs neues en S and sind. Diese Sys eme schlagen dem
Nu ze o , welche Ve sionen benö ig we den und laden diese (so e n dies e laub
is ) au oma isch in das So wa ep ojek . Du ch die meis gegensei ige Abhängigkei
iele e schiedene Dependencies kann dieses Ne z aus Abhängigkei en als G aph
da ges ell we den, dem sogenann en Dependency G aph.
Auch ü die beiden be ei s genann en Einsa zzwecke (Maschine und PKW) und de en
So wa e we den imme auch F amewo ks genu z , die en wede om He s elle selbs
ode on Zulie e e n en wickel we den.
Abbildung 2.3 zeig ein Beispiel ü einen solchen Dependency G aph ü eine G aph-
Algo i hmik-So wa e. Diese benö ig F amewo ks, um beispielsweise einzelne Kno en
eines G aphen e wal en zu können ode komplexe ma hema ische Be echnungen
du ch üh en zu können. Sowohl Klassen zu E s ellung eines G aphen als auch die
ma hema isch-logischen Pake e we den du ch solche F amewo ks be ei ges ell .
Ein Dependency G aph kann mi Dependency Managemen So wa e e s ell we den.
So können wich ige Ke nkomponen en, meh ach genu z e Pake e ode Abhängigkei en
so o e kann we den.
10
2.2 An o de ungen
P og amm
G aph-
engine
Ma hema ik-
engine
Node-
pake
Algo i hmik-
pake
Nume ik-
pake
Logikpake
Abbildung 2.3: Beispielha e Dependency G aph
2.2 An o de ungen
Die au gezeig en Use Cases behandeln e schiedene P oblems ellungen und Themen-
gebie e. Das zu e s ellende Konzep soll Digi al Twins de o ges ell en Use Cases
e möglichen. Zusä zlich wi d ein Managemen sys em ü die einzelnen Digi al Twins
benö ig , um diese zen al speiche n und e wal en zu können.
Die einzelnen An o de ungen bezüglich de Funk ion de So wa e we den in Tabel-
le 2.1 au gelis e . Des Wei e en e geben sich nich - unk ionale An o de ungen, die in
Tabelle 2.2 besch ieben we den.
11
2 An o de ungen und Analyse
Tabelle 2.1: Funk ionale An o de ungen
F1 He e ogene
Da enmodelle
Da en sollen in e schiedenen Fo ma en ein e en
können und so e a bei e we den, dass sie nachhe
ein einhei liches Fo ma besi zen.
F2 Un e schiedliche
Da enquellen
Da en sollen aus e schiedenen Quellen ein e en
können und wei e e a bei e we den.
F3 Beziehung zwischen
Da ensä zen
Da en übe die physikalische S uk u eines Objek s
sollen mi Messwe en de Senso en dieses Objek s
e bunden we den können, um so wei e e Aussagen
e en zu können.
F4 G uppie ung on
Da en
Messda en sollen di ek an die en sp echenden
Module, in denen sie au genommen wu den,
gekoppel we den können.
F5
Dynamische
Akquisi ion on
Da en
Die So wa e soll selbs s ändig wäh end de Lau zei
Da en sammeln, e a bei en und abspeiche n
können.
F6 E izien e
Such unk ionen
Die So wa e soll so au gebau sein, dass Da en
s uk u ie abgespeiche we den, sodass Suchen
au den Da en möglichs schnell sind.
F7 S anda disie e
Schni s ellen
Mi de So wa e soll möglichs agil kommunizie
we den können. Übe eine Schni s elle soll au die
gesam e So wa e zugeg i en we den können.
F8 Au hen i izie ung
De Zug i au Da en soll besch änk we den
können, sodass ü den Zug i eine bes imm e
Au hen i izie ungss u e nö ig is .
12
2.2 An o de ungen
Tabelle 2.2: Nich - unk ionale An o de ungen
NF1 Da a Awa eness
Un e nehmen sollen sich de Da en bewuss sein, die sie
sammeln und de Möglichkei en, die sie mi els dem
Sammeln de Da en haben. Da ü sollen un e
ande em Modelle de Da en be ei ges ell we den.
NF2 Gene ische Au bau
Das Konzep zu E s ellung on Digi al Twins soll so
gene isch wie möglich we den, um möglichs iele Use
Cases abdecken zu können.
NF3 Geschwindigkei
Alle Suchen und das Laden de Da en sollen so
schnell wie möglich (möglichs un e eine Minu e)
ablau en.
NF4 Wiede e wendba kei
Die So wa e soll so e s ell we den, dass g oße
Teile de So wa e wiede e wende we den können
(S ichwo Schni s ellen).
NF5 Wa ba kei Die So wa e soll ein ach e s ändlich und gu
dokumen ie sein, sodass sie ein ach zu wa en is .
NF6 Skalie ba kei
Die So wa e soll hoch skalie ba sein. Das heiß es
sollen Tools genu z we den, die eine möglichs hohe
Skalie ba kei gewäh leis en können.
13
3
G undlagen
3.1 Digi ale Zwilling
Ein Digi ale Zwilling is ein Modell, das eine physikalische Maschine hinsich lich ih e
Funk ion und ih e Da en digi al abzubilden e such [
10
]. So können ganze Maschinen
mi sam ih e Funk ionali ä und ih en physikalischen Gegebenhei en digi alisie we den.
Zu Un e s ü zung dessen we den de Maschine eigene Senso - ode Me ada en (z.B.
S ando , Anscha ungsjah , le z e Wa ung) angehäng . De Meh we ü das Un e -
nehmen, das den digi alen Zwilling einse z , und den Anwende des Sys ems lieg hie
in de pe manen en Ve ügba kei . So besi z die Fi ma du ch den digi alen Zwilling
eine Maschine an einem gegebenen alls e nen S ando übe diese Maschine o z
de Dis anz alle nö igen In o ma ionen. Beispielsweise kann so p ä en i eine Wa ung
angese z we den, wenn Messda en on Senso en on den bishe gemessenen We en
s a k abweichen. Dies kann das Un e nehmen nu zen, um die Wa ung de eigenen
Maschinen zu übe wachen und zu op imie en.
Zudem kann im Nachhinein übe den s anda disie en Au bau de digi alen Zwillinge
ein ache Da enaus ausch mi ex e nen Un e nehmen gewäh leis e we den. Hie bei
können un e ande em den Mechanike n o O di ek Da en zugänglich gemach
we den, sodass diese mi dem Au bau eine Maschine be ei e au sind, be o sie
die Maschine in de Fi ma gesehen haben. Ein solche Digi ale Zwilling mi einigen
Komponen en und Messwe en zeig Abbildung 3.1.
15
3 G undlagen
3.3.2 Schema isie ung
JSONSchema
JSONSchema is eine Besch eibungssp ache ü Schema a on JSON-Dokumen en
[
16
]. Mi JSONSchema kann beispielsweise es geleg we den, dass in einem Feld
ü eine Jah eszahl kein Buchs abe o kommen da . JSONSchema kann e wende
we den, wenn Objek e aus Da ensä zen gene ie we den und so g da ü , dass diese
den o gegebenen Regeln en sp echen.
OpenAPI In e ace Speci ica ion
Um REST-Me hoden und de en Au u -URLs zu dokumen ie en, bie e sich die OpenAPI
In e ace Speci ica ion an [
17
]. Diese bie e , un e Ve wendung en sp echende F ame-
wo ks, eine Sammlung alle übe eine REST-Schni s elle au u ba en Me hoden an
(siehe Abbildung 3.5).
Abbildung 3.5: OpenAPI Beispiel
Hie bei bie e die OpenAPI In e ace Speci ica ion e schiedene Möglichkei en und Tools
an, um eigene APIs zu e wal en. Es können on G und au neue APIs e scha en
22
3.3 Web Se ices
ode be ei s bes ehende edi ie we den. Zudem bie e Swagge die Möglichkei , APIs
zu sch eiben und dann aus diesen APIs di ek Code zu gene ie en. Swagge bie e
auch eine in e ak i e Dokumen a ion zu den APIs an, die dem Endnu ze zu Ve ügung
ges ell we den kann, sodass diese sich ein ache in dem P og amm zu ech inde .
Des Wei e en bie e Swagge eine Tes umgebung ü APIs an, mi denen eigene REST-
Me hoden au ge u en und ge es e we den können. Swagge kann zudem eine Einsich
in die Me hoden gewäh en und zeig beispielsweise das e o de e JSON Fo ma an,
in dem Da en an einen bes imm en Endpunk gesende we den müssen. Aus diesem
Schema des Au u s kann das Da enmodell he gelei e , da diese In o ma ionen meis
auch den Au bau bes imm e Da enklassen beinhal en.
Wei e hin bie e Swagge auch die Op ion, Rückgabewe e an die eigenen Bedü nisse
anzupassen. So können HTTP Fehle codes au die eigenen Me hoden und Fehle älle
zugeschni en genu z we den, um dem Nu ze ein Ge ühl da ü zu geben, wo de Fehle
beim Au u lag.
3.3.3 URL
Eine URL iden i izie und lokalisie eine Ressou ce. Ein bekann es Beispiel hie ü is
das ad essie en on Sei en im In e ne . Übe die URL is somi ein P ad angegeben, wo
die angezeig e Ressou ce (Websi e) lieg .
Na ü lich lassen sich mi URLs wei meh als nu In e ne ad essen iden i izie en. Du ch
S uk u ie ung bes imm e Teilkomponen en können beispielsweise genaue Iden i ika-
io en zugewiesen we den. Fü ein Au o gäbe es dann beispielsweise eine URL ü
den Mo o : Au o://Mo o innen aum/Mo o und eine URL ü das ech e, hin e e Rad:
Au o://Räde /hin en/ ech s. So können e schiedene Teile eines g oßen Ganzen genau
lokalisie und s uk u ie we den. Beispielsweise kann sich ein Nu ze übe die URL
Au o://Räde alle Räde des Au os ansehen, da alle Räde diesem P ad un e geo dne
sind.
23
3 G undlagen
3.3.4 Rep esen a ional S a e T ans e (REST)
REST bezeichne ein P og ammie pa adigma ü e eil e Sys eme [
18
]. REST soll
hie bei einen A chi ek u s il scha en, de die An o de ungen des mode nen Web besse
da s ell . REST kann genu z we den, um übe das In e ne Da en und Objek e zwischen
wei en e n en Rechne n zu ans e ie en. Zum Beispiel kann übe das HTTP-P o okoll
mi els REST au Funk ionen au ande en Rechne n zugeg i en we den. Diesen so-
genann en REST-Calls kann dann noch ein Payload angehäng we den, de dann
au oma isch an das Zielsys em übe agen wi d. So können beispielsweise mi JSON
e s ell e Da ensä ze zwischen Rechne n übe das In e ne ausge ausch we den. Zu-
dem bie e REST eine wei e e Abs ak ionsebene zwischen Clien und Se e (siehe
Abbildung 3.6), sodass bei Codeände ungen eine Sei e de Schni s elle beibehal en
we den kann, was einen angenehm wa ungs eundlichen Vo eil bie e .
Da REST au HTTP basie , kann au jeden Au u , beziehungsweise jede An age
eine An wo om ande en Rechne olgen, um den Ablau de Ak ion zu kommen ie-
en. Beispiele ü solche An wo en ode “S a uscodes” sind 200-OK ode 404-NOT
FOUND, wenn die gesuch e Ressou ce, zum Beispiel ein Da um in eine Da enbank,
nich ge unden wu de.
Vo gehensweise ohne REST
Clien Code
Se e Code
Call Me hod
Send Response
Vo gehensweise mi REST
Clien Code
Se e Code
REST
Con olle
Call Endpoin
Call Me hod
Send Response
Send Response
Abbildung 3.6: Ablau eines REST-Au u s
3.4 Sp ing F amewo k
Das Sp ing F amewo k is ein quello enes Dependency-Injec ion-F amewo k ü Ja a,
das die Modula isie ung on So wa ekomponen en un e s ü z [
19
]. Das Sp ing F a-
24
3.4 Sp ing F amewo k
mewo k bie e Hil es ellung bei dem gesam en Li ecycle eine Applika ion. Sp ing Boo
e möglich es, eine Applika ion so schnell wie möglich und ohne g oßa ige Kon igu a ion
o ab lau ähig zu machen. Sp ing bie e hie bei ein ache Möglichkei en, beispielsweise
mi wenig Au wand einen REST-Se ice zu e s ellen. Des wei e en bie e Sp ing ein ache
We kzeuge, um eine SQL- ode eine NoSQL-Da enbank mi de eigenen Applika ion
zu e knüp en. Sp ing en häl auch Hil smi el, um Applika ionen di ek in eine Cloud
mi els mic ose ice-s yle zu en wickeln. Zudem bie e Sp ing We kzeuge an, die eige-
ne Applika ion mi Mobilge ä en ode ein achen Senso en zu e binden, sodass diese
kommunizie en können. Dependency-Injec ion is das Schlüsselwo , um die Pa ame e
und Abhängigkei en eines Objek wäh end de Lau zei zu bes immen. Dieses F ame-
wo k bie e also die Möglichkei , Objek en, die bei de E s ellung ein ande es Objek
benö igen, ein zen al hin e leg es Objek als Abhängigkei zu übe geben, sodass das
Objek e s ell we den kann. So wi d die Ve an wo lichkei ü das Ve wal en des Au -
baus de Abhängigkei en zwischen den e schiedenen Ja a-Objek en an eine zen ale
Komponen e übe geben. Das Sp ing F amewo k bie e eine Vielzahl on Me hodiken
und Techniken, um e schiedene Ja a-Einsa zgebie e abzudecken [
20
]. Zudem bie e
das Sp ing F amewo k einige E wei e ungen an, die ü noch spezielle e Fälle ein ach
zu dem bes ehenden F amewo k hinzu ügen we den können.
Die e schiedenen E wei e ungen ü das Sp ing F amewo k sind in Abbildung 3.7 da -
ges ell . Im Folgenden wi d ku z au gezeig , wo ü die einzelnen E wei e ungen genu z
we den können.
Sp ing AMQP bie e Hil smi el, um AMQP-basie e Messaging-Lösungen zu en we en.
Sp ing Ba ch bie e Möglichkei en, obus e Ba ch-P og amme zu en wickeln. Sp ing
BeanDoc is eine E wei e ung, die Sp ing Bean-Fac o ies dokumen ie und G aphen
au den Da en de Beans e s ell . Sp ing Boo bie e ein ache We kzeuge um alleins e-
hende Applika ionen zu p og ammie en, die so schnell wie möglich ausge üh we den
können. Sp ing Ex ensions bie e die Möglichkei , eigene Sp ing-E wei e ungen einzu-
binden. Sp ing IDE is ein Plugin ü die Eclipse IDE, das be ei s o ge e ig e Plugins
ü Eclipse en häl . De Sinn hin e Sp ing Da a is es, ein einhei liches, Sp ing-basie es
P og ammmodell zu en wickeln, mi dem de Zug i au Da en in eine Da enbank e -
25
3 G undlagen
leich e wi d. Sp ing LDAP bie e Hil smi el, mi Sp ing Applika ionen zu en wickeln,
die das Ligh weigh Di ec o y Access P o ocol nu zen. Sp ing In eg a ion e wei e das
Sp ing-F amewo k um eine Möglichkei , Applika ionen zu en wickeln, die En e p ise
In eg a ion Pa e ns nu zen. Sp ing OSGi bie e We kzeuge, Sp ing Applika ionen zu
en wickeln, die das OSGi-F amewo k nu zen. Sp ing Social bie e eine Ve ein achung
ü den Zug i au e schiedene Social Ne wo ks. Sp ing Web Se ices hil bei de
E s ellung on Con ac -Fi s -Webse ices. Sp ing Roo hil bei de aschen Gene ie-
ung on Sp ing-basie en En e p iseanwendungen. Sp ing MVC bie e Möglichkei en
zu E s ellung on Webanwendungen. Sp ing Secu i y (ehemals Sp ing Acegi) bie e
We kzeuge zu Absiche ung on Ja a-Anwendungen und Websei en. ColdSp ing Cold-
Fusion is die Po ie ung des Sp ing-F amewo ks au die ColdFusion-Pla o m. Sp ing
o And oid is eine E wei e ung, die das E s ellen on na i en And oid-Applika ionen
e leich e n soll. Sp ing Web Flow bie e Hil e bei de Implemen ie ung on Abläu en au
eine Websei e. Sp ing Rich-Clien hil bei de E s ellung on Rich Clien s au Basis des
Sp ing-F amewo ks. Sp ing BlazeDS is die Open-Sou ce-Lösung zu E s ellung on
Sp ing-un e s ü z en RIA-Anwendungen mi Adobe Flex. Le z endlich bie e Sp ing .NET
eine Po ie ung des Sp ing-F amewo ks au die .NET Pla o m.
Die beiden implemen ie en E wei e ungen we den im Folgenden genaue e läu e .
3.4.1 Sp ing Boo
Sp ing Boo is eine E wei e ung des Sp ing F amewo ks, das den Anwende in de
P og ammie ung selbs s ändig lau ende P og amme un e s ü zen soll. Solche P og am-
me we den ini ial einmal anges oßen, lau en dann selbs s ändig wei e und wa en
beispielsweise au Be ehle ode Da en ü die Ve a bei ung. Mi solchen P og ammen
können auch REST-Schni s ellen be ieben we den, welche daue ha da au wa en,
dass übe die Schni s elle Be ehle ein e en, die dann bea bei e we den können.
26
3.4 Sp ing F amewo k
Sp ing
F amewo k
Sp ing
IDE
Sp ing
In eg a ion
Sp ing
BeanDoc
Sp ing
Da a
Sp ing
AMQP
Sp ing
OSGi
Sp ing
Ex ensions
Sp ing
LDAP
Sp ing
BlazeDS
Sp ing
MVC
Sp ing Roo
Sp ing
Rich Clien
Sp ing
Social
Sp ing
Web Flow
Sp ing
Secu i y
Sp ing
Web Se ices
ColdSp ing
ColdFusion
Sp ing o
And oid
Sp ing
Ba ch
Sp ing
Boo
Sp ing
.NET
Abbildung 3.7: Übe sich de Sp ing F amewo k Ex ensions
3.4.2 Sp ing Da a
Sp ing Da a is eine E wei e ung des Sp ing F amewo ks, das die Anbindung an eine
Vielzahl e schiedene Da enbanken übe Ja a-Code e möglich . Mi Sp ing Da a können
Da enbanken di ek ges eue we den und ihnen Be ehle ü Speiche o gänge ode die
Suche au Da en übe mi el we den. Au g und de ein achen Anbindung on Ja a-Code
an die Da enbanken können alle wich igen Vo gänge di ek im Ja a-Code ges eue ode
auch Da enbankope a ionen in REST-Schni s ellen au gelis e we den, sodass di ek
übe einen Be ehl im B owse Ände ungen in de Da enbank ollzogen we den.
27
4
Lösungskonzep
Dieses Kapi el s ell ein Konzep zu E s ellung on Digi al Twins un e Be ücksich i-
gung de zu o e hobenen An o de ungen o . Diese An o de ungen we den zunächs
ausgewe e , um einen genauen Übe blick übe das zu e s ellende Sys em zu e hal en.
4.1 An o de ungsauswe ung
Aus den bishe e ass en An o de ungen können bes imm e Funk ionen abgelei e we -
den, die das P ojek zu E üllung de An o de ungen en hal en muss.
F1
Das Sys em benö ig meh e e Pa se , die die eingespeis en Da en zunächs in ein
einhei liches Fo ma übe üh en (hie z.B. JSON).
F2
Es muss eine Möglichkei geben, das Sys em übe Schni s ellen ansp echen
zu können, sodass meh e e e schiedene Quellen Da en an das selbe Sys em
senden können.
F3
Um die Da en des Digi alen Scha ens, also Messwe e und Me ada en, e binden
zu können, wi d eine Da enbank benö ig , die diese Beziehungen da s ellen kann
(hie z.B. Neo4j).
F4
Um die Messda en di ek an Module anhe en zu können, wi d eine gene ische Da -
s ellung benö ig , die Da en ei e binden kann. Dies kann di ek in de Da enbank
geschehen.
29
4 Lösungskonzep
F5
Um Da en selbs s ändig sammeln zu können, wi d eine Schni s elle benö ig , die
im P og ammcode angesp ochen we den und emp angene Da en au oma isch
wei e e a bei en kann.
F6
Eine Da enbank muss gewisse Vo ausse zungen e üllen, um Da en s uk u ie
abspeiche n zu können. Zudem wä e es on Vo eil, wenn die Da enbank selbs
be ei s Such unk ionen au den en hal enen Da en anbie e ( i beides au Neo4j
zu).
F7
Eine Schni s elle, mi de möglichs dynamisch gea bei e we den kann, is REST,
dahe wä e dies pe ek geeigne , um auch on meh e en Pe sonen und Sys emen
gleichzei ig angesp ochen zu we den.
F8 Eine be ei s in eg ie e Au hen i izie ungs echnologie is in Neo4j en hal en.
4.2 A chi ek u
In diesem Kapi el wi d zunächs ein ypische Ablau im Sys em besch ieben. Da au hin
olg eine Besch eibung de einzelnen Sys emkomponen en.
4.2.1 Sys emablau
Eine Maschine p oduzie wäh end ih e Lau zei meis daue ha Senso da en (z.B.
Messwe e). Diese Senso da en we den übe einen Webse ice an den Se e gesende .
De Se e emp äng dann die Senso da en und kon e ie diese in ein einhei lich
benu zba es Fo ma (z.B. JSON). Die Senso da en we den dann nach de Kon e ie ung
übe den Da enbankconnec o an die angeschlossene Da enbank gesende . Diese
Speiche die Senso da en so ab, dass sie schnell und e ek i du chsuch we den und
mi ande en, be ei s bes ehenden Da ensä zen in Ve bindung geb ach we den können.
Ein Nu ze des Sys ems kann dann übe einen Webse ice die e knüp en Da ensä ze
in eine Da enbank einsehen und Analysen und Suchen au den Da ensä zen aus üh en.
Nu ze können zudem auch manuell Da en übe einen Webse ice in die Da enbank
ein ügen. So können bes imm e Me ada en an z.B. Messwe e ange üg we den.
30
4.2 A chi ek u
4.2.2 Da enbankau bau
Im Folgenden we den die einzelnen Komponen en de Da enbank e bindung da ges ell .
Da enschni s elle
Übe die Da enschni s elle kann de Code au dem Se e angesp ochen we den (siehe
Abbildung 4.1).
Möch e ein Nu ze eine gewisse Funk ion au einem Se e aus üh en, muss diese
zunächs den Be ehl an den Se e übe mi eln. Diesem Be ehl müssen gegebenen alls
noch einige Nu zda en mi gesende we den, die de Se e dann e a bei en kann.
Um dem Se e einen Be ehl zu übe mi eln, muss de Nu ze mi diesem übe eine
Da enschni s elle kommunizie en. De Nu ze se z zunächs einen Reques (An age)
übe die Da enschni s elle ab. Diese Reques wi d au dem Se e angenommen und
wei e e a bei e . De Se e se z nun eine An age ab, die om Da abase-Connec o
emp angen wi d. Diese üh die ge o de e Ak ion au de Da enbank aus und emp äng
die Da en on de Da enbank. Diese Da en we den dann om Se e au genommen und
übe die REST-Schni s elle an den Nu ze zu ückgegeben.
Neo4j-Da enmodell
Mi Hil e de g aphenbasie en Da enbank Neo4j lassen sich Da en in einem g aphbasie -
en Fo ma abspeiche n. Dabei wi d das Da um als Kno en gehal en und kann mi jedem
ande en Da um e bunden we den. So können beliebig komplexe G aphen au gebau
we den, die nich nu die Da en selbs , sonde n auch ih e Beziehungen zueinande
da s ellen. Da en we den im Sys em in einem Con aine gehal en. Diese kann alle
Da en da s ellen, egal ob Messwe , Modul ode Senso . Con aine we den anhand
ih e URL ode URI gekennzeichne . Zudem können Con aine mi einem Label e se-
hen we den, um da s ellen zu können, wo um es sich bei dem Da encon aine handel
(z.B. Messwe ). Con aine sind un e einande mi els Rela ionships e bunden. Diese
Rela ionships s ellen da , welche Con aine inwie e n zu einande in Rela ion s ehen.
31
5
Realisie ung
Dieses Kapi el üh die Realisie ung de o he angegebenen An o de ungen au und
wie diese implemen ie wu den.
5.1 Sp ing Class Managemen
Das Sp ing-F amewo k bie e die Möglichkei , bes imm e Ja a-Klassen mi e schiede-
nen Anno a ions zu ma kie en, um ih en Zweck in dem Sys em es zulegen. Zum Beispiel
bie e Sp ing Boo das We kzeug, einen En y-Poin ü das P og amm zu bes immen
(siehe Lis ing 5.1).
1 @Sp ingBoo Applica ion
Lis ing 5.1: En y Poin Anno a ion
De Builde weiß somi genau, wo die S a -Klasse is , bei de ini ial Code ausge üh
we den muss. Diese Klasse s öß dann mi ih en Me hoden säm liche ande en P ozesse
im Sys em an. Dabei kann auch es geleg we den, welche Me hoden zum ini ialen Build
gehö en, und welche e s nach dem Build ausge üh we den sollen (siehe Lis ing 5.2).
1 @Pos Cons uc
2public oid gene a eDe iceT ee () h ows IOExcep ion , URISyn axExcep ion ) {
Lis ing 5.2: Bes immung ob Code o ode nach dem Build ausge üh we den soll
Des Wei e en kann Sp ing Objek e aus einem zen alen Speiche nu zen, be o sie im
Code ini iie we den. Somi können Objek e mi els olgendem Code (siehe Lis ing 5.3)
di ek genu z we den und müssen nich o he übe einen Kons uk o ini iie we den,
ü den ielleich noch nich alle Da en be ei liegen.
39
5 Realisie ung
1 @Au oWi ed
2 Con aine Reposi o y con aine Reposi o y ;
Lis ing 5.3: Sp ing Anno a ion ü REST Schni s elle
5.2 REST-Schni s elle
Die REST-Schni s elle wu de mi Hil e on Sp ing und einigen OpenAPI-Anno a ions
ealisie . Sp ing bie e hie bei meh e e Möglichkei en zu S uk u ie ung eine solchen
REST-Schni s elle. Zunächs kann die Klasse, die die REST-Schni s elle beinhal e , mi
eine simplen Anno a ion ü den Sp ing-Con olle ma kie we den (siehe Lis ing 5.4).
1 @Res Con olle
2public class CapeCon olle {
Lis ing 5.4: Sp ing Anno a ion ü REST Schni s elle
Die einzelnen Me hoden in dem Con olle we den dann mi eine Anno a ion e sehen,
um einige Pa ame e es zulegen. So können sowohl de anzus eue nde Endpunk als
auch de Me hoden yp im HTTP-Fo ma es geleg we den. Zusä zlich können den Me-
hoden auch Da en in de URL ode als Payload mi geschick we den (siehe Kapi el 5.5).
1 @Reques Mapping ( alue = " / con aine / { id } " , me hod = Reques Me hod .GET)
2public ResponseEn i y <Con aine > ge Speci icCon aine ( @Pa hVa iable ( " id " ) Long id ) { . . . }
3
4 @Reques Mapping ( alue = " / con aine " ,me hod = Reques Me hod .POST)
5public ResponseEn i y <Con aine > s o eCon aine Pos (@Reques Body Con aine con aine ) { . . . }
Lis ing 5.5: REST-Me hoden-Anno a ion
Die übe agenen Da en können dann en wede aus dem P ad ex ahie we den (siehe
Lis ing 5.6).
1 @Pa hVa iable ( " id " ) Long id
Lis ing 5.6: Sp ing Anno a ion ü REST Schni s elle
ode im Fo ma eine Ja a-Klasse di ek aus dem Body des HTTP-Calls (siehe Lis ing 5.7)
1 @Reques Body Con aine con aine
Lis ing 5.7: Sp ing Anno a ion ü REST Schni s elle
40
5.3 Neo4j-Da enbank
5.3 Neo4j-Da enbank
Danach wi d die Da enbank ein ach übe eine Konsole ini ialisie und kann dann übe
eine Webobe läche, die s anda dmäßig übe die URL localhos :7474 e eich we den
kann, genu z we den.
Au diese Webobe läche können dann en wede die Da en selbs ode die Ände ungen
an den Da en eingesehen we den. Visualisie we den können die Da en hie bei be ei s
als dynamischen G aph mi allen Kno en und Kan en. Diese Kno en können auße dem
nach Belieben a blich ma kie we den, um eine ein ache e Übe sich zu e eichen. In
de Webobe läche können zudem auch Que ies ausge üh we den, um beispielsweise
den S a us de Da enbank abzu agen ode Da en hinzuzu ügen ode zu manipulie en.
5.4 Da enbankschni s elle mi Sp ing
Sp ing bie e zusä zlich zu den be ei s oben genann en Anno a ions wei e e Ma kie un-
gen, um beispielsweise die Da enklassen des Sys ems zu ma kie en. So können un e
Ande em mi (siehe Lis ing 5.8)
1 @EnableNeo4jReposi o ies
Lis ing 5.8: Reposi o ies ini iie en
die o liegenden Reposi o ies geladen we den, um de Neo4j-Da enbank be ei s die
S uk u den ein e enden Da en übe geben zu können. Auße dem können sich die
Da enklassen, die hie ü in einem sepa a en Package liegen soll en, mi de Anno a ion
(siehe Lis ing 5.9).
1 @En i yScan ( " cape . neo4j . model" )
Lis ing 5.9: Scan nach Da enklassen
selbs s ändig scannen lassen, sodass Neo4j und Sp ing be ei s die da enbeinhal enden
Klassen on den ein unk ionalen Klassen un e scheiden können.
Die be ei s e wähn en Reposi o ies sind o ge e ig e In e aces und bie en die Me hoden,
41
5 Realisie ung
die genu z we den, um mi de Da enbank zu kommunizie en. Sie we den mi de
olgenden Anno a ion e sehen (siehe Lis ing 5.10), sodass übe den REST-Clien de
S a us eines Reposi o ies abge ag we den kann. In diesem Beispiel wi d ma kie , dass
es sich um das Reposi o y handel , das die Da enklasse ”Con aine ” e wal e .
1 @Reposi o yRes Resou ce ( pa h = " con aine s " )
Lis ing 5.10: Reposi o y Anno a ion
Ein gesam es Reposi o y is in Abbildung 5.11 da ges ell .
1 @Reposi o yRes Resou ce ( pa h = " con aine s " )
2public in e ace Con aine Reposi o y ex ends PagingAndSo ingReposi o y <Con aine , Long> {
3 Con aine indByName ( S i ng name ) ;
4
5 Con aine indOne ( Long id ) ;
6
7 L is <Con aine > i n d A l l ( ) ;
8
9 Con aine ind ByU i ( URI u i ) ;
10
11 @Que y( "CALL algo . be weenness . s eam ( ’ { con aine Type } ’ , ’ { edgeType } ’ ,{ d i e c i on : ’ { di ec io n } ’ } ) n" +
12 "YIELD nodeId as id1 , c e n a l i y n" +
13 "MATCH ( n : Con aine ) n " +
14 "WHERE ID ( n) = id1 n" +
15 "RETURN n , c e n a l i y o de by c e n a l i y desc l i m i 20; " )
16 I e able <Map<S ing , In ege >> calcula eBe weenness ( S ing con aine Type , S ing edgeType , S ing di ec io n ) ;
17
18 @Que y( "MATCH ( n : Con aine ) WHERE NOT ( n)<−[:HAS_COMPONENT]−() RETURN n" )
19 Lis <Con aine > indRoo Nodes ( ) ;
20 }
Lis ing 5.11: Reposi o y
Hie bei is zu sehen, dass das Reposi o y on einem sogenann en ”PagingAndSo ingR-
eposi o y” abs amm . Dieses bie e Neo4j die Möglichkei , Da en sei enweise so ie
zu ückzugeben (siehe Lis ing 5.12).
1public in e ace Con aine Reposi o y ex ends PagingAndSo ingReposi o y <Con aine , Long>{
Lis ing 5.12: PagingAndSo ingReposi o y
Des Wei e en sind hie die on Sp ing Da a o gegebenen S anda dme hoden zu sehen,
wie ” indByName” ode ” indOne”. Diese Me hoden we den on Sp ing e kann und
ohne wei e en Au wand ü den P og ammie e passend au die Da en e link (siehe
Lis ing 5.13).
42
5.5 API-Übe sich mi OpenAPI
1 Con aine indByName ( S in g name ) ;
2 Con aine indOne ( Long id ) ;
Lis ing 5.13: S anda dme hoden on Sp ing Da a
Soll en diese Me hoden nich genügen ode soll en bes imm e Algo i hmen ausge üh
we den müssen, bie e das F amewo k die We kzeuge, eigene Me hoden aus Que ies
zu bauen. So inden sich in dem Reposi o y Me hoden mi de Anno a ion ”@Que y”
wiede , welche die in Neo4j auszu üh ende Que y en hal en (siehe Lis ing 5.14).
1 @Que y( "MATCH ( n : Con aine ) WHERE NOT ( n)<−[:HAS_COMPONENT]−() RETURN n" )
2 Lis <Con aine > indRoo Nodes ( ) ;
Lis ing 5.14: Que y Anno a ion
So muss om P og ammie e nu de Rückgabe yp und de Name de Me hode es geleg
we den, um das gewünsch e E gebnis zu e zielen. Aus solchen Que ies he aus können
auch in Neo4j gespeiche e Algo i hmen ausge üh we den, wie in diesem Beispiel de
”be weenness”-Algo i hmus. Diesem we den im Me hodenau u auch di ek Pa ame e
übe geben, die dann au oma isch in die Que y eingese z we den (siehe Lis ing 5.15).
1 @Que y( "CALL algo . be weenness . s eam ( ’ { con aine Type } ’ , ’ { edgeType } ’ ,{ d i e c i on : ’ { di ec io n } ’ } ) n" +
2 "YIELD nodeId as id1 , c e n a l i y n" +
3 "MATCH ( n : Con aine ) n " +
4 "WHERE ID ( n) = id1 n" +
5 "RETURN n , c e n a l i y o de by c e n a l i y desc l i m i 20; " )
6 I e able <Map<S ing , In ege >> calcula eBe weenness ( S ing con aine Type , S ing edgeType , S ing di ec io n ) ;
Lis ing 5.15: Que y Anno a ion ü Algo i hmen
5.5 API-Übe sich mi OpenAPI
OpenAPI bie e die Möglichkei , die be ei s anno ie en REST-Me hoden mi einigen
Pa ame e n zu besch eiben um da aus eine API-Dokumen a ion gene ie en zu lassen
(siehe Lis ing 5.16).
1 @ApiOpe a ion ( alue = " showAllCon aine s " , no es = " P in s ou a l l con aine s in he da abase " ,
2 esponse = S ing . class , esponseCon aine = " L is " , ags = " con aine " )
Lis ing 5.16: OpenAPI Anno a ion
43
5 Realisie ung
Hie bei lassen sich einige We e wie de da ges ell e Me hodenname ( alue), ein eigene
Kommen a (no es), den Rückgabe yp di ek als Ja a-Class ( esponse), bes imm e
Modi ika ionen des Rückgabe yps, z.B. eine Lis e ode ein A ay ( esponseCon aine )
und Tags es legen, aus denen dann eine olls ändig dokumen ie e API gene ie
we den kann.
Um zu beein lussen, wie die API nachhe da ges ell wi d, läss sich dies mi Hil e eine
Con ig-Klasse e ände n (siehe Lis ing 5.17).
1 @Con igu a ion
2 @EnableSwagge 2
3public class Swagge Con ig {
4
5 @Bean
6public Docke api ( ) {
7 e u n new Docke ( Documen a ionType .SWAGGER_2)
8 . sel ec ( )
9 . apis ( Reques Handle Selec o s . any ( ) )
10 . pa hs ( Pa hSelec o s . any ( ) )
11 . build ( ) ;
12 }
13
14 p i a e Ap iIn o a piIn o ( ) {
15 e u n new ApiIn o(
16 " CaPe_Neo4j_Res _API " ,
17 " This is he API o he CaPe_Neo4j−p ojec " ,
18 " 0.1 " ,
19 "These a e some cus om Te msO Se ice " ,
20 new Con ac ( " John Doe" , "www. example .com" , "myeadd ess@company .com" ) ,
21 " License o API " , " API license URL" , Collec ions . emp yLis ( ) ) ;
22 }
23 }
Lis ing 5.17: OpenAPI Con ig
Hie bei kann de Documen a ion-Type e ände we den ode In o ma ionen übe die
API, das Sys em und den He ausgebe hinzuge üg we den.
5.6 Zusammen assung
De in Kapi el 4 konzipie e Lösungsansa z konn e mi Hil e des Sp ing-F amewo ks
p o o ypisch umgese z we den. Sp ing Da a bie e eine g oße Hil es ellung bei de
Kommunika ion eines Sys ems mi eine Da enbank. Zusä zlich is das Sp ing-F amewo k
im Bezug au die P og ammie ung on REST-Schni s ellen seh nü zlich. Hie bie e die
44
5.6 Zusammen assung
OpenAPI zudem iele Möglichkei en, die genu z en REST-Me hoden zu dokumen ie en
und im P og ammcode zu s uk u ie en.
45
6
E aluie ung
In diesem Kapi el olg die Gegenübe s ellung de P oblems ellung und de Use Cases
mi dem e igen P o o ypen. Inwie e n das P ojek die ge o de en Funk ionali ä en
umse z , wi d anhand eine Tabelle au ge üh .
Tabellen 6.1 und 6.2 üh en alle An o de ungen au , die das e a bei e e Sys emkonzep
umse zen soll (siehe Kapi el 2).
Diese unk ionalen An o de ungen wu den in dem Sys em wie in Tabelle 6.3 umgese z ,
die nich - unk ionalen An o de ungen wie in Tabelle 6.4.
47
7 Ve wand e Konzep e
So wa es, die die Bedienung eine Maschine e möglichen, mi einande e binden
können.
Das Un e nehmen Cumuloci y so g mi seine Implemen ie ung da ü , dass die Da en
geschü z we den und ü Analysen au be ei e we den können. Cumuloci y bie e be ei s
in eg ie e Real-Time-S eaming Analysen, die ein e ek i es We kzeug ü z.B. P edic i e
Main enance da s ellen können.
7.2 Wa son IoT
Die Fi ma IBM ha mi Hil e ih es KI-Tools Wa son eine eigene Impleme ie ung ü eine
IoT-Lösung en wickel [
23
]. Die IoT-Lösung on IBM en häl un e ande em Teile wie die
E s ellung eines Digi alen Zwillings ode den Einbau eine Blockchain ü zusä zliche Si-
che hei . Du ch diese Blockchain können beispielsweise Möglichkei en ealisie we den,
wie Geschä spa ne au IoT-Da en eine nu zenden Fi ma zug ei en können, ohne eine
zen ale Ve wal ungs- ode Managemen s elle zu benö igen.
Du ch das Einbinden on IBM Wa son bie e diese IoT-Lösung auch KI-ge iebene
Ansä ze wie die kogni i un e s ü z e De ek suche bei p oduzie en Teilen. So kann diese
Lösung übe das Ve gleichen on op ischen Senso we en mi zu o eingespeis en
Mus e n De ek e in P oduk en e kennen, die einem Menschen nu schwe au allen
wü den.
7.3 AWS IoT
Amazon bie e au Basis de Amazon Web Se ices (AWS) eigene IoT-Lösungen an [
24
].
Diese können en wede als In as uc u e as a Se ice (IaaS-), Pla o m as a Se ice
(PaaS-) ode als So wa e as a Se ice (SaaS-) Lösungen bezogen we den (siehe
Abbildung 7.1).
Das P oduk AWS IoT Co e on Amazon kann die Kommunika ion on e schiedenen Ge-
ä en e möglichen, selbs wenn diese un e schiedliche P o okolle zu Da enübe agung
54
7.3 AWS IoT
nu zen. Dabei kann AWS IoT Messages on e schiedenen Inpu s en gegennehmen,
diese auswe en und an e schiedene Ou pu s wei e lei en. Do können dann ande e
Diens e on AWS wie zum Beispiel AWS Lambda die Nach ich en en gegennehmen
und anhand diese bes imm e Funk ionen aus üh en. So kann mi AWS IoT schnell und
ein ach eine simple Lü e s eue ung mi eingehenden Tempe a u da en ealisie we den
[24].
Zusä zlich bie e Amazon mi AWS G eeng ass die Möglichkei , Ge ä e auch ohne
Ve bindung zum In e ne übe ein lokales Ne zwe k kommunizie en zu lassen, um so
schnell und unabhängig au lokale E en s eagie en zu können.
Auße dem können e en uell gespeiche e Da en mi Amazon S3 mi eine hohen Be-
s ändigkei gespeiche und siche und di ek abge ag we den. Amazon S3 bie e un e
ande em die Möglichkei , komplexe Big-Da a-Analysen au den Da en aus üh en zu
können, ohne die Da en in ein sepa a es Analysesys em e schieben zu müssen. Die
Da en in Amazon S3 können mi els Amazon A hena on-demand mi SQL abge ag
we den. Amazon S3 Selec bie e zusä zlich die Möglichkei , nu Teilda ensä ze aus de
Da enbank abzu u en, um so die Leis ung de meis en Anwendungen, die häu ig au
Da en in S3 zug ei en, um bis zu 400% zu s eige n.
Fü wei e e In o ma ionen zu AWS ode ü Hil e bei de Implemen ie ung eigene AWS
kann das We k “P og amming Amazon Web Se ices” on James Mu y hinzugezogen
we den [25].
55
7 Ve wand e Konzep e
Anwendung
Siche hei
Da enbanken
Be iebssys eme
Vi ualisie ung
Se e
Da enhal ung
Ne zwe k
Da encen e
Anwendung
Siche hei
Da enbanken
Be iebssys eme
Vi ualisie ung
Se e
Da enhal ung
Ne zwe k
Da encen e
Anwendung
Siche hei
Da enbanken
Be iebssys eme
Vi ualisie ung
Se e
Da enhal ung
Ne zwe k
Da encen e
In as uc u e as
a Se ice (IaaS)
Pla o m as a
Se ice (PaaS)
So wa e as a
Se ice (SaaS)
Anwendung
Anwendung
Vom Kunden e wal e
Vom P o ide e wal e
z.B. AWS IoT 1-Click
z.B. AWS IoT Analy ics
z.B. Amazon F eeRTOS
Abbildung 7.1: Übe sich de AWS-P oduk e
56
8
Zusammen assung und Ausblick
8.1 Zusammen assung
Die P oblems ellung um ass e das P oblem, dass physische Objek e digi alisie we den
soll en. Diese digi ale Zwilling soll dann mi Messda en und Me ada en des Objek s
ange eiche we den, um eine möglichs unk ionale und eine möglichs eali ä snahe
Abbildung des Objek es zu ealisie en.
Das e a bei e e Konzep beinhal e die Möglichkei , mi els eine Ja a-Anwendung und
eine Da enbank einen digi alen Zwilling zu e zeugen und zugehö ige Mess- und Me-
ada en zu speiche n. Dazu is eine ein ache Kommunika ion mi dem Sys em übe
eine Webse ice-Schni s elle möglich. So können sowohl Maschinen ih e Messda en
selbs s ändig übe die Webse ice-Schni s elle an das Sys em übe mi eln, als auch
Nu ze mi dem Sys em kommunizie en, um adminis a i e Au gaben auszu üh en ode
Da en manuell hinzu ügen ode löschen zu können.
De e s ell e P o o yp se z die An o de ungen des Konzep es und de P oblems ellung
um. De P o o yp nu z ein Sp ing-F amewo k, um eine e ek i e Aus üh ba kei und
eine ein ache Anbindung an die Da enbank zu ealisie en. Als Da enbank wu de die
g apho ien ie e Neo4j-Da enbank e wende , um die Da en in de Da enbank in Rela ion
se zen zu können und so beispielsweise Messda en mi ih en jeweils zugehö igen
Senso en e binden zu können. Mi dem P o o yp kann zusä zlich übe eine REST-
Schni s elle kommunizie we den, um Da en hinzuzu ügen, zu ände n, zu löschen ode
Algo i hmen (z.B. zu Zen ali ä de einzelnen Kno en im G aphen) au den Da ensä zen
aus üh en zu können.
57
8 Zusammen assung und Ausblick
8.2 Ausblick
Das Sys em se z die bishe igen An o de ungen gu um. Jedoch we den in de Zukun
wei e e Funk ionen on dem Sys em ge o de . Demnach is das Sys em noch nich zu
100% ausgebau . Des Wei e en gib es noch manche Punk e, die e en uelle Nachbes-
se ung bedü en. So können siche lich noch einige Pe o mance e besse ungen am
Code o genommen we den.
Zusä zlich wä e es on Vo eil, wenn zunächs eine pe o man e e Lösung ü die Pa se
ge unden we den könn e, da diese momen an einen Flaschenhals (engl.: Bo leneck)
da s ellen: Das ini iale Laden de Da en läu nich so schnell ab, wie ini ial gewünsch
wa . Des Wei e en soll en die Pa se au meh e schiedene Sys eme und Fo ma e
ausgewei e we den, um so iele Fo ma e wie möglich e a bei en zu können.
Eine ande e E wei e ung s ell die Möglichkei da , die zug undeliegenden G aphen ü
Analysezwecke gewich en zu können. So können G aphen ü e schiedene Analyse-
zwecke nach un e schiedlichen Vo gaben gewich e we den, um ein p äzise es E gebnis
zu e zielen.
58
Li e a u e zeichnis
[1]
Jeschke, S., B eche , C., Song, H., Rawa , D.: Indus ial In e ne o Things: Cy-
be manu ac u ing Sys ems. Sp inge Se ies in Wi eless Technology. Sp inge
In e na ional Publishing (2016)
[2]
Hehenbe ge , P., B adley, D.: Mecha onic Fu u es: Challenges and Solu ions o
Mecha onic Sys ems and hei Designe s. Sp inge In e na ional Publishing (2016)
[3]
Fa hangi, H.: The Pa h o he Sma G id. IEEE Powe and Ene gy Magazine
8
(2010) 18–28
[4]
Reiche , M., Webe , B.: Enabling Flexibili y in P ocess-Awa e In o ma ion Sys ems:
Challenges, Me hods, Technologies. Sp inge (2012)
[5]
Maie , S.C., Tod e, H.: Telema ik–eine Re olu ion in de K z-Ve siche ung. Zei sch i
ü Ve siche ungswesen 23 (2013) 776–782
[6]
ADAC: ADAC Pannens a is ik 2017.
h ps://www.adac.de/in o es a /
un all-schaeden-und-panne/pannens a is ik/
(2017) Zug i sda um:
07.03.2018.
[7] Daki´
c, D., A h, D.: Nuge 2 Essen ials. Pack Publishing (2013)
[8] Media, S.: Ma en: The De ini i e Guide. O’Reilly (2009)
[9] McCullough, M., Be glund, T.: Building and Tes ing wi h G adle. O’Reilly (2011)
[10]
Siemens: De Digi ale Zwilling.
h ps://www.
siemens.com/cus ome -magazine/de/home/indus ie/
digi alisie ung-im-maschinenbau/de -digi ale-zwilling.h ml
(2017) Zug i sda um: 27.02.2018.
[11] Lal, M.: Neo4j G aph Da a Modeling. Pack Publishing (2015)
[12] Chhajed, S.: Lea ning ELK S ack. Pack Publishing (2015)
[13] Haas, B.: W3C Web-Se ices. Websi e (2004)
59
Li e a u e zeichnis
[14]
B ay, T., Paoli, J., Spe be g-McQueen, C.M., Male , E., Ye geau, F.: Ex ensible
Ma kup Language (XML). Wo ld Wide Web Jou nal 2(1997) 27–66
[15] Se e ance, C.: Disco e ing Ja aSc ip Objec No a ion. Compu e 45 (2012) 6–8
[16]
Pezoa, F., Reu e , J.L., Sua ez, F., Uga e, M., V goˇ
c, D.: Founda ions o JSON
Schema. In: P oceedings o he 25 h In e na ional Con e ence on Wo ld Wide Web.
WWW ’16, In e na ional Wo ld Wide Web Con e ences S ee ing Commi ee (2016)
263–273
[17]
Mulligan, C.: Open API S anda disa ion o he NGN Pla o m. In: 2008 Fi s ITU-T
Kaleidoscope Academic Con e ence - Inno a ions in NGN: Fu u e Ne wo k and
Se ices. (2008) 25–32
[18]
Balachanda , B.: REST ul Ja a Web Se ices: A p agma ic guide o designing and
building REST ul APIs using Ja a. Pack Publishing (2017)
[19]
Johnson, R., Hoelle , J., Donald, K., Sampaleanu, C., Ha op, R., Risbe g, T.,
A endsen, A., Da ison, D., Kopylenko, D., Pollack, M., e al.: The Sp ing F amewo k–
Re e ence Documen a ion. In e ace 21 (2004) 27
[20]
Johnson, R., Hölle , J., A endsen, A., Risbe g, T., Sampaleanu, C.: P o essional
Ja a De elopmen wi h he Sp ing F amewo k. Wiley (2007)
[21] Masak, D.: Mode ne En e p ise A chi ek u en. Xpe .p ess. Sp inge (2006)
[22]
So wa eAG: Cumuloci y Homepage.
h ps://www.cumuloci y.com
(2017)
Zug i sda um: 08.04.2018.
[23]
IBM: IBM Wa son IoT Cogni i e P ocesses.
h ps://www.ibm.
com/in e ne -o - hings/indus ies/io -manu ac u ing/
cogni i e-p ocess (2018) Zug i sda um: 18.05.2018.
[24]
Amazon: AWS IoT.
h ps://aws.amazon.com/de/io /
(2018) Zug i sda um:
18.05.2018.
[25]
Mu y, J.: P og amming Amazon Web Se ices: S3, EC2, SQS, FPS, and SimpleDB.
O’Reilly Se ies. O’Reilly (2008)
60
Abbildungs e zeichnis
2.1 Anwendungs alldiag amm P oduk ionsmaschinen . . . . . . . . . . . . . . 6
2.2 Auszug de Da ens uk u eines PKW . . . . . . . . . . . . . . . . . . . . 9
2.3 Beispielha e Dependency G aph . . . . . . . . . . . . . . . . . . . . . . 11
3.1 Beispielha e Digi ale Scha en eine Maschine . . . . . . . . . . . . . . 16
3.2 Au bau Da enbankmanagemen sys em . . . . . . . . . . . . . . . . . . . 17
3.3 Beispielg aph.................................. 19
3.4 Beispiel de Kibana Obe läche . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 OpenAPIBeispiel................................ 22
3.6 Ablau eines REST-Au u s . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.7 Übe sich de Sp ing F amewo k Ex ensions . . . . . . . . . . . . . . . . . 27
4.1 REST-Sequenzdiag amm . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Da enmodell .................................. 33
4.3 Da enbankconnec o .............................. 34
4.4 Sys ema chi ek u ............................... 34
4.5 Komponen endiag amm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.6 Volls ändiges Klassendiag amm des Sys ems . . . . . . . . . . . . . . . . 36
4.7 Lösungskonzep Use Case 1 . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1 Übe sich de AWS-P oduk e . . . . . . . . . . . . . . . . . . . . . . . . . 56
61
Tabellen e zeichnis
2.1 Funk ionale An o de ungen . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Nich - unk ionale An o de ungen . . . . . . . . . . . . . . . . . . . . . . . 13
3.1 Rela ionale Beispielda ensa z . . . . . . . . . . . . . . . . . . . . . . . . 17
6.1 Funk ionale An o de ungen an das Sys em . . . . . . . . . . . . . . . . . 48
6.2 Nich - unk ionale An o de ungen an das Sys em . . . . . . . . . . . . . . 49
6.3 Umse zung de unk ionalen An o de ungen . . . . . . . . . . . . . . . . . 50
6.4 Umse zung de nich - unk ionalen An o de ungen . . . . . . . . . . . . . . 51
63