In diesem Kapitel werden die Begrifflichkeiten und Technologien behandelt, um für die Gesamtarbeit eine Wissensgrundlage zu schaffen – sowohl für die Verständlichkeit, als auch für die Argumentation.
Die Software-Architektur beschreibt die Strukturen eines Systems – seine Komponenten (Clients und Server, Filter, Objekte und Datenbanken), dessen Verbindungen untereinander und die nach außen sichtbaren Elemente. Die Architektur richtet sich nach den Anforderungen an das System und dessen Qualitätsattributen, wie beispielsweise Produkteinführungszeit, Kosten, geplante Lebensdauer, Marktausrichtung, Endgeräte und Integrationsfähigkeit. Beim Design der Architektur handelt es sich um eine Reihe von Entscheidungen, die auf einer Vielzahl von Faktoren beruhen, wovon jede dieser Entscheidungen erhebliche Auswirkungen auf die Qualität des Systems haben kann.[12]
Ausgehend von der Arbeit von Mary Shaw und David Garlan im Jahre 1996, fanden die Autoren Philippe Kruchten, Grady Booch, Kurt Bittner, and Rich Reitman folgende Definition für die Software-Architektur:
“Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns.” [13]
Die grundlegende Software-Architektur mit ihren Design-Entscheidungen bildet die Basis für sämtliche nachfolgenden Entscheidungen und Möglichkeiten des Systems – daher sind diese Entscheidungen ausschlaggebend für eine gemeinsame Architektur. Durch wiederverwertbare und übertragbare Abstraktionen (Entwurfsmuster, auch Pattern genannt) ermöglicht die Architektur, unabhängig des Systems, die Weitergabe der bereits erstellten Funktionalitäten. So können bei neuen Design-Entscheidungen oder dem Neuaufsetzen des Systems diese Fragmente neu verwendet werden.[14]
Die Software-Architektur eines Systems ist ausschlaggebend für dessen Qualität, Verständlichkeit und Modifizierbarkeit. Sie dient als Kommunikationsmittel, zur Veranschaulichung von früheren Design-Entscheidungen und als wiederverwendbare und übertragbare Abstraktion von Softwaresystemen.[15]
Es gibt, ausschlaggebend an den gesetzten Qualitätsattributen und der Art der Software, verschiedenste Architekturmodelle und Herangehensweisen. In dieser Arbeit wird sich hauptsächlich mit den Plug-In-Architekturen beschäftigt. Diese werden aktuell in der Webentwicklung hauptsächlich angewendet (SOA-Stile)[16] und ermöglichen eine gute Mischung aus der guten Erweiterbarkeit, bedingt durch die modulare Bauweise, und dem großen Funktionsumfang.[17]
Die serviceorientierte Architektur (SOA) ist ein Architekturkonzept (technisch wie geschäftlich), welches auf eine möglichst hohe ökonomische Wertschöpfung abzielt. Durch die vom Konzept der Serviceorientierung durch SOA optimierten Infrastrukturen sollen Prozesse effektiver, sicherer, kostengünstiger und wartungsfreundlicher umgesetzt werden.[18]
Der „ressourcenorientierte“ Architekturstil von SOA stellt die Interaktionsbasis des Internets dar und abstrahiert dabei jede Information als adressierbare Ressource. Dieser Architekturstil greift die Konzepte, der verteilten Architektur als Kommunikationsgrundlage, des „World Wide Web“s (WWW) mit dessen Kerntechnologien, das Netzwerkübertragungsprotokoll „Hypertext Transfer Protocol“ (HTTP) und dem „Uniform Resource Identifier“ (URI), auf.[19] Inspiriert wurde dieses Vorgehen durch die Dissertation von Roy Fiedling[20], der in seiner Untersuchung zum Erfolgsmodell Internet versucht hat, die Prinzipien hinter den Web-Technologien auf die Konstruktion nativer Anwendungen zu replizieren. Aus seinen zusammengetragenen Designkriterien und Erkenntnissen wurde, aufbauend auf die SOA-Prinzipien, „Representational State Transfer“ (REST) geschaffen, auf dessen Idee weite Teile des Zielsystems aufbauen.[21]
„The Web can reach its full potential only if it becomes a place where data can be shared and processed by automated tools as well as by people. For the Web to scale, tomorrow's programs must be able to share and process data even when these programs have been designed totally independently. The Semantic Web is a vision: the idea of having data on the web defined and linked in a way that it can be used by machines not just for display purposes, but for automation, integration and reuse of data across various applications.“[22]
Die Anzahl an elektronischen Daten verschiedensten Typs steigt von Jahr zu Jahr. Besonders im Internet findet sich ein Großteil der Daten an, die zwar öffentlich zugänglich sind, aber nur von Menschen richtig interpretiert werden können; aufgrund ihrer semistrukturierten Art. Semistrukturell, da Webseiten durch „Tags“ und „Anker“ zwar grundlegend strukturiert sind, aber ihre Inhaltswiedergabe, Struktur und Herkunft unstrukturiert sind.[23] Um maschinelles Auslesen der Webseiten und Services zu ermöglichen, stellt die Initiative schema.org ein Markup zur Verfügung, welches semantische Zusammenhänge durch standardisierte Annotationen zur Auszeichnung von Webseiten-Inhalten ermöglicht. Zu diesem Zweck wird beispielsweise ein „Hypertext Markup Language“ (HTML)-Code mit Zusatzinformationen (sogenannten Schemata) zur Auszeichnung des Inhaltes angereichert; für eine maximale Kompatibilität wahlweise in den Formaten: Microdata, JSON-LD oder/ und RDFa.[24] Auf diese Weise können aus semistrukturellen Daten- strukturierte Daten erzeugt werden, die durch Verknüpfungen untereinander komplexe Strukturen abbilden können. [25]
Eine interne Weiterentwicklung der Schema-Modelle wird stets vorangetrieben. Allerdings werden parallel dazu von ausgewählten Unternehmensvertretern Erweiterungen zu den Schemata erstellt, welche für spezifische „Dinge“ angewendet werden können und eine tiefere Beschreibung dieser ermöglichen (beispielsweise die „Health and Lifesciences“-Erweiterung[26], die für medizinische und therapeutische Dinge explizitere Auszeichnungen bereitstellt). Durch die Auszeichnung mit Schemata können nicht nur Webseiteninhalte Maschinen zugänglich gemacht werden, sondern sämtliche Dinge von Interesse – somit ist das semantic web, mit seinem Konzept des „Giant Global Graph“, ein Teil des „Internet of Things“ (IoT).[27]
„Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond. […] “ [28]
Schema.org basiert auf der Absprache zwischen den größten IT-Tech-Unternehmen. Somit können die auf schema.org geschaffenen Veröffentlichungen als Standard angesehen werden, der von den Plattform- und Client-betreibern einheitlich interpretiert werden.[29]
Abb. 3: Beispiel der Domainhierarchie unter schema.org
Das Markup von schema.org bringt eine auf dem Konzept der OOP aufbauende Auszeichnung mit sich: ein hierarchisch strukturiertes Set bestehend aus Typen und Eigenschaften. Mittels Typen werden die inhaltlichen Elemente grob ihrer Kategorie zugeordnet. Eigenschaften versehen diese Typen mit definierten Werten, sodass eine genaue Zuordnung stattfinden kann. Schema.org bestimmt dabei, welche Typen und Eigenschaften verwendet werden können und wie diese untereinander arrangiert- oder auch verlinkt sind. Der Versuch eine Vielzahl der Objekte der Welt mit diesem Modell abzubilden führt zu einer beachtlichen Sammlung an verschiedensten Grundtypen, die, wie in der Abb. 4: Starburst-Visualisierung der Hierarchie auf schema.org zu sehen ist, untereinander hierarchisch organisiert sind.[30]
Abb. 4: Starburst-Visualisierung der Hierarchie auf schema.org[31]
“Structured data is picking up on the Web, particularly in the search world. Semantic structuring of content provides a wide range of advantages compared to unstructured information.“ [32]
Internetseiten mit ihren...