OSGi Designrichtlinien

Pascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 242
Registriert: 6. Jun 2007 14:03

OSGi Designrichtlinien

Beitrag von Pascha » 2. Aug 2010 11:54

Hallo,
in beiden alten Klausuren wird gefragt nach welchen Richtlinien und Aspekten man die Funktionalität auf die Bundles verteilt. Ich konnte zwar in den Folien dazu keine direkte Aussage finden, aber nach meiner Ansicht würde man versuchen die Bundles nach Verantwortlichkeiten aufzuteilen, sodass die Elemente innerhalb des jeweiligen Bundles eng zusammenhängen und dazu beitragen der definierten Verantwortlichkeit nachzugehen. Desweiteren soll die Kopplung zwischen den Bundles so gering wie möglich gehalten werden.

Gibt es noch weitere Kriterien, die ich übersehe bzw. liege ich mit meiner Ansicht richtig oder missverstehe ich da etwas?

Benutzeravatar
satabin
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 25. Feb 2010 15:32

Re: OSGi Designrichtlinien

Beitrag von satabin » 2. Aug 2010 12:08

Hallo,

Die Folie 20 gibt eine kleine Idee dazu. Ein Bundle ist eine Entität die Funktionen zur Verfügung stellt. Ein Bundle muss an sich kohärent sein, wenn zwei Funktionalitäten immer zusammen geliefert und gebraucht werden, immer sich zusammen entwickeln usw. macht es Sinn beide Features in zwei verschiedenen Bundles zu packen?
Im Gegenteil, eine Library wird in seinem eigenen Bundle geliefert, um die von verschiedenen anderen Bundles verwenden zu können, und um neuere Versionen einfacher einzusetzen.

Lucas
Arrière les Esquimaux ! Je rentre seul. Un matador rentre toujours seul ! Plus il est grand, plus il est seul. Je vous laisse à vos banquises, à vos igloos, à vos pingouins. ¡ Por favor Señora ! À quelle heure le train pour Madrid ?

eichberg
Dozentin/Dozent
Beiträge: 448
Registriert: 25. Sep 2007 12:12
Kontaktdaten:

Re: OSGi Designrichtlinien

Beitrag von eichberg » 2. Aug 2010 12:46

Sie denken in die richtig Richtung.

Pascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 242
Registriert: 6. Jun 2007 14:03

Re: OSGi Designrichtlinien

Beitrag von Pascha » 2. Aug 2010 13:49

Ok, danke soweit... Ich habe noch kurz zwei Fragen, ebenfalls zu OSGi-Klausuraufgaben:
Einige der zu entwickelnden Bundles benötigen Dienste, die von anderen Bundles zur Verfügung gestellt werden. Beschreiben Sie kurz welche Schritte notwendig sind damit Bundle A einen von Bundle B zur Verfügung gestellten Dienst zur Laufzeit nutzen kann. (2 Punkte)
Meiner Meinung nach ist hier nach dem Import-/Export-Prinzip gefragt, da die Rede von "zu entwickelnden Bundles" ist, sprich wir während der Entwicklung auf die Dienste der anderen Bundles zugreifen müssen, was nur dann geht, wenn die bereitstellenden Bundles ihre Dienste exportieren und unser Bundle diese Dienste importiert, oder?
Jedes Bundle, dass einen Dienst eines anderen Bundles benötigt, muss mit der OSGi Runtime interagieren. Dadurch entsteht eine direkte Abhängigkeit zum OSGi Framework - welche häufig nicht wünschenswert ist. Beschreiben Sie einen alternative Ansatz bei dem es zu keiner Abhängigkeit zum OSGi Framework kommt und bewerten Sie diesen Ansatz in Hinblick auf die Ziele und den gedacht- en Einsatzzweck von OSGi. (4 Punkte)
Hier tu ich mich etwas schwer mich zwischen DI und Whiteboard zu entscheiden. Meiner Meinung nach ist DI der alternative Ansatz nicht von der OSGi-Runtime abzuhängen und den Container dafür zu sorgen, dass die Bundles verdrahtet werden. Beim Whiteboard muss der Dienstverwender, um den es hier geht, immer noch mit der Runtime interagieren, um sich als Listener zu registiere. Oder wird dieser Schritt nicht als Interaktion mit der OSGi-Runtime gewertet, da die Registrierung beim Start stattfindet, wo sowieso eine Interaktion mit OSGi vorhanden ist?

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: OSGi Designrichtlinien

Beitrag von Jo(h)nny » 2. Aug 2010 18:57

Pascha hat geschrieben:Ok, danke soweit... Ich habe noch kurz zwei Fragen, ebenfalls zu OSGi-Klausuraufgaben:
Einige der zu entwickelnden Bundles benötigen Dienste, die von anderen Bundles zur Verfügung gestellt werden. Beschreiben Sie kurz welche Schritte notwendig sind damit Bundle A einen von Bundle B zur Verfügung gestellten Dienst zur Laufzeit nutzen kann. (2 Punkte)
Meiner Meinung nach ist hier nach dem Import-/Export-Prinzip gefragt, da die Rede von "zu entwickelnden Bundles" ist, sprich wir während der Entwicklung auf die Dienste der anderen Bundles zugreifen müssen, was nur dann geht, wenn die bereitstellenden Bundles ihre Dienste exportieren und unser Bundle diese Dienste importiert, oder?
hmm also ich hätte hier das mit dem ServiseRegistry gesagt... in der Ausfgabenstellung gehts es doch um die Dienste(Services)....
Jedes Bundle, dass einen Dienst eines anderen Bundles benötigt, muss mit der OSGi Runtime interagieren. Dadurch entsteht eine direkte Abhängigkeit zum OSGi Framework - welche häufig nicht wünschenswert ist. Beschreiben Sie einen alternative Ansatz bei dem es zu keiner Abhängigkeit zum OSGi Framework kommt und bewerten Sie diesen Ansatz in Hinblick auf die Ziele und den gedacht- en Einsatzzweck von OSGi. (4 Punkte)
Hier tu ich mich etwas schwer mich zwischen DI und Whiteboard zu entscheiden. Meiner Meinung nach ist DI der alternative Ansatz nicht von der OSGi-Runtime abzuhängen und den Container dafür zu sorgen, dass die Bundles verdrahtet werden. Beim Whiteboard muss der Dienstverwender, um den es hier geht, immer noch mit der Runtime interagieren, um sich als Listener zu registiere. Oder wird dieser Schritt nicht als Interaktion mit der OSGi-Runtime gewertet, da die Registrierung beim Start stattfindet, wo sowieso eine Interaktion mit OSGi vorhanden ist?
und hier hätte ich das mit dem import/export gesagt... bei Whiteboard hast du doch ebenfalls Abhängigkeiten zu OSGi, denn du musst ja die Services registrieren und look-upen :) aber keine Gewähr...
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Pascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 242
Registriert: 6. Jun 2007 14:03

Re: OSGi Designrichtlinien

Beitrag von Pascha » 2. Aug 2010 19:42

Jo(h)nny hat geschrieben:
Pascha hat geschrieben:Ok, danke soweit... Ich habe noch kurz zwei Fragen, ebenfalls zu OSGi-Klausuraufgaben:
Einige der zu entwickelnden Bundles benötigen Dienste, die von anderen Bundles zur Verfügung gestellt werden. Beschreiben Sie kurz welche Schritte notwendig sind damit Bundle A einen von Bundle B zur Verfügung gestellten Dienst zur Laufzeit nutzen kann. (2 Punkte)
Meiner Meinung nach ist hier nach dem Import-/Export-Prinzip gefragt, da die Rede von "zu entwickelnden Bundles" ist, sprich wir während der Entwicklung auf die Dienste der anderen Bundles zugreifen müssen, was nur dann geht, wenn die bereitstellenden Bundles ihre Dienste exportieren und unser Bundle diese Dienste importiert, oder?
hmm also ich hätte hier das mit dem ServiseRegistry gesagt... in der Ausfgabenstellung gehts es doch um die Dienste(Services)....
Mhja, war auch zuerst mein Gedanke, aber da steht "zu entwickelnden Bundles". Deswegen klingt es für mich so, als geht es darum, wie man an die Funktionalität der anderen Bundles rankommt, während man selbst eins schreibt... Ich finde es etwas unglücklich formuliert oder ich übersehe da was, deswegen wäre es schön, wenn der Veranstalter zu der Formulierung etwas sagt ;)
Jedes Bundle, dass einen Dienst eines anderen Bundles benötigt, muss mit der OSGi Runtime interagieren. Dadurch entsteht eine direkte Abhängigkeit zum OSGi Framework - welche häufig nicht wünschenswert ist. Beschreiben Sie einen alternative Ansatz bei dem es zu keiner Abhängigkeit zum OSGi Framework kommt und bewerten Sie diesen Ansatz in Hinblick auf die Ziele und den gedacht- en Einsatzzweck von OSGi. (4 Punkte)
Hier tu ich mich etwas schwer mich zwischen DI und Whiteboard zu entscheiden. Meiner Meinung nach ist DI der alternative Ansatz nicht von der OSGi-Runtime abzuhängen und den Container dafür zu sorgen, dass die Bundles verdrahtet werden. Beim Whiteboard muss der Dienstverwender, um den es hier geht, immer noch mit der Runtime interagieren, um sich als Listener zu registiere. Oder wird dieser Schritt nicht als Interaktion mit der OSGi-Runtime gewertet, da die Registrierung beim Start stattfindet, wo sowieso eine Interaktion mit OSGi vorhanden ist?
und hier hätte ich das mit dem import/export gesagt... bei Whiteboard hast du doch ebenfalls Abhängigkeiten zu OSGi, denn du musst ja die Services registrieren und look-upen :) aber keine Gewähr...
Du hast oben geschrieben, dass du da import/export nicht nehmen würdest, da es dort um Dienste geht. Hier aber auch ;) Meiner Meinung nach bezieht sich die Fragestellung hier auf den Zeitpunkt, wo die Bundles bereits deployed wurden und jetzt gegenseitig die Dienste nutzen möchten.

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: OSGi Designrichtlinien

Beitrag von Jo(h)nny » 2. Aug 2010 20:17

Einige der zu entwickelnden Bundles benötigen Dienste, die von anderen Bundles zur Verfügung gestellt werden. Beschreiben Sie kurz welche Schritte notwendig sind damit Bundle A einen von Bundle B zur Verfügung gestellten Dienst zur Laufzeit nutzen kann. (2 Punkte)
hier steht doch, dass der Dienst zur Laufzeit verwendet werden soll. Ich denke hier geht es wirklich um die Dienste, die in der Service-Registry registriert werden.
Jedes Bundle, dass einen Dienst eines anderen Bundles benötigt, muss mit der OSGi Runtime interagieren. Dadurch entsteht eine direkte Abhängigkeit zum OSGi Framework - welche häufig nicht wünschenswert ist. Beschreiben Sie einen alternative Ansatz bei dem es zu keiner Abhängigkeit zum OSGi Framework kommt und bewerten Sie diesen Ansatz in Hinblick auf die Ziele und den gedacht- en Einsatzzweck von OSGi. (4 Punkte)
Du hast oben geschrieben, dass du da import/export nicht nehmen würdest, da es dort um Dienste geht. Hier aber auch ;) Meiner Meinung nach bezieht sich die Fragestellung hier auf den Zeitpunkt, wo die Bundles bereits deployed wurden und jetzt gegenseitig die Dienste nutzen möchten.
genau, die Bundles sind deployed und stellen Services zur Verfügung. Nun zuerst frag ich mich, um was für Abhängigkeiten es sich handeln kann. Ich denke mal es geht darum, die Registry-Aufrufe zu vermeiden. Das kannst du mit White-Board nicht erreichen (wie du das mit DI machen willst ist mir ein wenig rätselhaft :)). Ich würde sagen, dass man diese Abhängigkeiten umgeht, indem man import/export verwendet.
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Pascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 242
Registriert: 6. Jun 2007 14:03

Re: OSGi Designrichtlinien

Beitrag von Pascha » 2. Aug 2010 20:25

mhjoa, macht wohl auch sinn ;)

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: OSGi Designrichtlinien

Beitrag von Jo(h)nny » 2. Aug 2010 20:28

naja, keine Gewähr, eine Aussage von dem Veranstalter wäre natürlich nicht schlecht, aber zu dieser späten Stunde...:)
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

eichberg
Dozentin/Dozent
Beiträge: 448
Registriert: 25. Sep 2007 12:12
Kontaktdaten:

Re: OSGi Designrichtlinien

Beitrag von eichberg » 2. Aug 2010 21:22

Die Frage bezieht sich auf die Entwurfszeit und weniger auf die Laufzeit. solche Fragen können Sie aber ggf. Auch zur Klausur stellen. ich werde anwesend sein.

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: OSGi Designrichtlinien

Beitrag von Jo(h)nny » 2. Aug 2010 21:40

was wäre dann die richtige Antwort?? :)
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Pascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 242
Registriert: 6. Jun 2007 14:03

Re: OSGi Designrichtlinien

Beitrag von Pascha » 2. Aug 2010 21:48

Das wuerde mich auch interessieren, vorallem bei der letzten Frage :)

eichberg
Dozentin/Dozent
Beiträge: 448
Registriert: 25. Sep 2007 12:12
Kontaktdaten:

Re: OSGi Designrichtlinien

Beitrag von eichberg » 2. Aug 2010 22:15

Einige der zu entwickelnden Bundles benötigen Dienste, die von anderen Bundles zur Verfügung gestellt werden. Beschreiben Sie kurz welche Schritte notwendig sind damit Bundle A einen von Bundle B zur Verfügung gestellten Dienst zur Laufzeit nutzen kann. (2 Punkte)

[...]die in der Service-Registry registriert werden.
Richtig. Neben der richtigen Konfiguration (Export der "richtigen" Packages / Klassen in der Manifest Datei) muss natürlich der Dienst auch noch registriert werden bei der Service Registry.

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: OSGi Designrichtlinien

Beitrag von Jo(h)nny » 2. Aug 2010 22:20

ok, und was ist mit der 2. Frage?
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Antworten

Zurück zu „Archiv“