Designfragen zu modulbasierten Programmen
-
Halloechen zusammen,
Vorgeschichte:
mir ging die Idee durch den Kopf einen Server zu schreiben. Diesem kann man per Client `Module` raufladen, dieses Modul stellt dem Server Funktionen bereit die er danach ausfuehren kann. Eigentlich ein simples Prinzip, wobei ich mir bei der _genauen_ Definition von `Modul` und `Plugin` noch nicht ganz sicher bin.Mir stellen sich folgende technische Fragen:
-
Wie wuerde es aussehen ausssehen, wenn ein Programm auf Funktionen zugreiffen soll von diesen es aber noch nichts weiss. Ich dachte an ein Interface Konzept wie es in Java moeglich ist. Zeit um mit Templates rumzuspielen hatte ich noch nicht. Welche sprachlichen moeglichekeiten bietet mir c++ zu dieser Frage?
-
Gibt es evtl. - am besten Open Source Programme die diese Ideen schon implementiert haben? D.h. keine Theorien hier in der datenbank, sondern funktionierender Code. Das waere eigentlich das beste.....
Leider Kenne ich kein Programm das so funktioniert, netBeans evtl.. aber kein C++, mh und Perl. Soweit wollte ich aber nicht gehen.
Hat das Thema evtl. schon nen eigenen Namen verpasst bekommen in der Informatik?
mh yoah bis jetzt waren das alle, bin mal gespannt auf eure Antworten
-
-
int80h schrieb:
- Wie wuerde es aussehen ausssehen, wenn ein Programm auf Funktionen zugreiffen soll von diesen es aber noch nichts weiss. Ich dachte an ein Interface Konzept wie es in Java moeglich ist
ich könnte mir vorstellen, dass das modul/plugin einen entry und exitpoint hat. also 2 funktionen, die implementiert werden _müssen_. die kannst du dann aufrufen, nachdem du das dings geladen hast. in diesem entrypoint kannst ja dann das sub-programm laufen lassen
-
Unter C++ würde man da wohl auf COM oder CORBA zurückgreifen. Für CORBA gibt's freie Implementierungen.
Was eigenes zu bauen erscheint mir vor dem Hintergrund vorhandener Standards wenig sinnvoll.
Templates oder Interfaces alleine helfen nicht viel weiter, weil diese Dinge eine Verknüpfung auf Quellcodeebene realisieren - Du brauchst aber eine Verknüpfung auf Laufzeitebene.
-