Frage von ck1991, 21

Definition Komponentenbasierte Software?

Hallo Zusammen,

bitte um ne kurze und knackige Definition und den Unterschied zu Frameworks.

Vielen Dank schonmal

Antwort
von grtgrt, 7

Bis fast zur Jahrtausendwende waren Anwendungen in sich abgeschlossene Systeme, deren jedes -- das Betriebssystem und ein geeignetes DBMS mal ausgenommen -- fast nur aus Teilen bestanden, die so stark auf das spezifische Anwendungssystem zugeschnitten waren, dass man sie nicht als Bausteine auch anderer Anwendungen verwenden konnte. [Stichwort: klassische 3-Schichten-Silo-Architektur].

Mit dem Aufkommen sog. Service Oriented Architecture (SOA) hat sich das inzwischen komplett geändert. 

Heute nämlich ist man bestrebt, Anwendungen so zu bauen, dass sie sich zu einem möglichst großen Teil durch Integration applikationsneutraler Software-Bausteine ergeben, die man dann zunächst als Komponenten (genauer: als Reusable Service Components) bezeichnet hat, die man heute aber eher Services im Sinne von SOA nennt.

Im Allgemeinen kommt jede dieser Komponenten von einem anderen Hersteller. 

Mit anderen Worten: Dediziert entworfen und implementiert wird nur noch, was man als passende Komponente auf dem Markt nicht schon vorfindet. 

Und selbst der Teil, den es dann selbst zu implementieren gilt, wird architektonisch so gestaltet, dass er sich als Summe von Softwarebausteinen darstellt, die man mit denselben Mechanismen integrieren kann wie auch die eingekauften Komponenten: als Service oder Microservice (im Sinne von SOA).

Damit hat komponentenbasierte Architektur (SOA-Architektur) die alte, extrem integrationsfeindliche Siloarchitektur verdrängt mit dem Effekt, dass 

die Grenzen zwischen den einzelnen Anwendungen eines Unternehmens sich mehr und mehr zu verwischen beginnen und die eigenen Anwendungen nun auch mit denen von Geschäftspartnern zusammenarbeiten können (Stichwort: unternehmensübergreifende Automatisierung von Geschäftsprozessen).

All das gelingt umso besser, je standardisierter man die Schnittstellen der einzelnen Software-Bausteine gestaltet, d.h. desto mehr sich diese Bausteine als in unterschiedlichsten Anwendungssystemen einsetzbar zeigen.

So speziell, dass sie jeweils nur einer Anwendung dienen können, dürfen sie - als möglichst universell einsetzbare Service Components - nun aber nicht mehr gestaltet sein.

Siehe auch 

http://greiterweb.de/spw/Applikationsarchitektur.htm .

Nochmals: Der Begriff "Komponente" ist mit zu vielen Bedeutungen belegt. Man sollte von Services (im Sinne von SOA) sprechen, wenn es um Komponenten geht, die per HTTP angesprochen werden bzw. von Microservices, wenn sie per API aufgerufen werden, aber nicht an nur eine Anwendung gebunden sein sollen.

Unter einem REST Service versteht man einen stets nur per URL aufgerufenen Service. REST Services ersetzen zunehmend die vormals über das von Microsoft erdachte, recht umständliche SOAP-Protokoll aufgerufenen Services.

Siehe dazu

http://greiterweb.de/spw/REST_and_JSON_replace_SOAP_and_XML.htm .

Antwort
von Zuck3r, 14

Eine Komponentenbasierte Software ist wie der Name schon sagt eine Software die aus mehreren Bausteinen besteht. Die Aufspaltung in einzelne Bausteine machst du mit dem Hintergedanken diese Bausteine wiederverwenden zu können.

Frameworks können dabei zB einer dieser Bausteine sein. Ein Framework bietet dir, wie der Name schon sagt ein Gerüst an, mit dem du etwas bauen kannst. Ein Beispiel für ein Framework ist Apache Camel, damit können  Transporte von Nachrichten zwischen zwei Endpunkten in Java bzw XML realisiert werden.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten