<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Soziotechnische Integration &#187; CommunityMashup</title>
	<atom:link href="https://test.soziotech.org/category/projekte/communitymashup/feed/" rel="self" type="application/rss+xml" />
	<link>https://test.soziotech.org</link>
	<description>Ein Projekt mit der Forschungsgruppe Kooperationssysteme an der Universität der Bundeswehr München</description>
	<lastBuildDate>Mon, 15 Jun 2015 15:24:48 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>CommunityMashup &#8211; Ein erster Überblick</title>
		<link>https://test.soziotech.org/communitymashup-ein-erster-ueberblick/</link>
		<comments>https://test.soziotech.org/communitymashup-ein-erster-ueberblick/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 12:53:53 +0000</pubDate>
		<dc:creator><![CDATA[Peter Lachenmaier]]></dc:creator>
				<category><![CDATA[Berichte]]></category>
		<category><![CDATA[CommunityMashup]]></category>
		<category><![CDATA[Dienstintegration]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Aggregation]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Filtertung]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Modell]]></category>
		<category><![CDATA[personenzentrisch]]></category>
		<category><![CDATA[Service-Orientierte-Architektur]]></category>
		<category><![CDATA[Social Software]]></category>

		<guid isPermaLink="false">http://sevastyanova.cscwlab.de/</guid>
		<description><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/211_crop_940x198_istock_000001551784medium.jpg" width="618" height="130" alt="CommunityMashup &#8211; Ein erster Überblick" /></p>Das CommuntiyMashup ist eine Integrationslösung für Daten aus sozialen Diensten. Es vereinheitlicht und verbindet Daten aus den unterschiedlichsten Quellen. Hierbei steht im Sinne des &#8222;Social Web&#8220; die Person im Vordergrund. Eine definierte Schnittstelle mit vorgefertigen Anwendungskompenten lässt eine einfache Verwendung &#8230; <a href="https://test.soziotech.org/communitymashup-ein-erster-ueberblick/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fcommunitymashup-ein-erster-ueberblick%2F&amp;action_name=CommunityMashup+%26%238211%3B+Ein+erster+%C3%9Cberblick&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class='yarpp-related-rss'>
<h3>Verwandte Artikel:</h3><ol>
<li><a href="https://test.soziotech.org/communitymashup/" rel="bookmark" title="CommunityMashup &#8211; Überblick">CommunityMashup &#8211; Überblick </a></li>
<li><a href="https://test.soziotech.org/communitymashup/service-orientierte-architektur/" rel="bookmark" title="CommunityMashup &#8211; Service-Orientierte-Architektur">CommunityMashup &#8211; Service-Orientierte-Architektur </a></li>
<li><a href="https://test.soziotech.org/communitymashup/model-driven-approach/" rel="bookmark" title="CommunityMashup &#8211; Model Driven Approach">CommunityMashup &#8211; Model Driven Approach </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/211_crop_940x198_istock_000001551784medium.jpg" width="618" height="130" alt="CommunityMashup &#8211; Ein erster Überblick" /></p><p> <em>Das CommuntiyMashup ist eine Integrationslösung für Daten aus sozialen Diensten. Es vereinheitlicht und verbindet Daten aus den unterschiedlichsten Quellen. Hierbei steht im Sinne des &#8222;Social Web&#8220; die Person im Vordergrund. Eine definierte Schnittstelle mit vorgefertigen Anwendungskompenten lässt eine einfache Verwendung der Daten in verschiedensten Anwendungsszenarien zu. Diese Seite gibt einen Überblick über die dem CommunityMashup zugrundeliegenden Konzepte und vermittelt einen Einblick in seine vielfältigen Verwendungsmöglichkeiten.</em></p>
<h2>Ausgangssituation</h2>
<p>Mit dem Erfolg von <a href="https://test.soziotech.org/glossar/web-2-0/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Web 2.0 zu springen." onmouseover="tooltip.show('Teilmenge des soziotechnischen Systems Internet (d.h. Dienste + Menschen, von denen diese genutzt werden). Im Gegensatz zum Web 1.0 steht hier das Individum im Vordergrund (me centricity), es geht um Beteiligung jedes Einzelnen (participation) und um freudvolle(re) Nutzung. Hieraus sind verschiedene spezialisierte Dienste entstanden, die sich für vielfältige und ggf. individuell verschiedene Use Cases einsetzen lassen (Nutzungsoffenheit). ');" onmouseout="tooltip.hide();">Web 2.0</a> im privaten und <a href="https://test.soziotech.org/glossar/2078/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Enterprise 2.0 zu springen." onmouseover="tooltip.show('Der Einsatz von Plattformen und Ideen aus dem Web 2.0-Umfeld in Unternehmen zur Unterstützung ihrer Wissensarbeiter. ');" onmouseout="tooltip.hide();">Enterprise 2.0</a> im unternehmensweiten Bereich veränderte sich die Art und Weise wie Informationen strukturiert und kosumiert werden.</p>
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/stockphotos/istock_000010104241large.jpg" title="
			Digitale Vernetzung der Gesellschaft			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/220__618x_istock_000010104241large.jpg" alt="Social Networking" title="Social Networking" />
</a>
			<p class="wp-caption-text">Social Networking</p>
</div>

<h3>Auswirkungen des Erfolg von <a href="https://test.soziotech.org/glossar/social-software/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Social Software zu springen." onmouseover="tooltip.show('Anwendungssysteme, die unter Ausnutzung von Netzwerk- und Skaleneffekten, indirekte und direkte zwischenmenschliche Interaktion (Koexistenz, Kommunikation, Koordination, Kooperation) auf breiter Basis ermöglichen und die Identitäten und Beziehungen ihrer Nutzer im Internet abbilden und unterstützen. ');" onmouseout="tooltip.hide();">Social Software</a></h3>
<p>Im Zuge des immer verbreiteteren Einsatzes von Social Software auch im Unternehmenskontext vollzieht sich eine Entwicklung von einer datenzentrischen Systemsicht hin zu einer personzentrischen Perspektive. Soziale Netzwerke wie Facebook oder <a href="https://test.soziotech.org/glossar/microblogging/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Microblogging zu springen." onmouseover="tooltip.show('Microblogging ermöglicht es seinen Nutzern, kurze Nachrichten zu veröffentlichen. Die Nachrichten sind in der Regel in der Länge beschränkt (z.B. 140 Zeichen bei der bekanntesten Internetplattform Twitter) und erscheinen in einem plattformweiten Nachrichtenstrom. Nachrichten anderer Nutzer können gezielt abonniert werden. ');" onmouseout="tooltip.hide();">Microblogging</a> Dienste wie Twitter sind nur zwei Arten von Diensten die Einzug in unser tägliches Leben gefunden haben. Insgesamt lässt sich beoachten, dass fast jeder Nutzer inzwischen mehr als einen Dienst benutzt, sei es wegen spezieller Funktionalitäten, den Personen die über den jeweiligen Dienst erreichbar sind oder schlichtweg um private und berufliche Nutzung zu trennen. So sind wir unter anderem gezwungen den richtigen Kanal zu wählen um Informationen zu konsumieren bzw. zu verteilen. Dies nährt den Wunsch nach einer Integrationslösung, die unsere Daten aus unterschiedlichen Diensten vereint ohne dabei ein neues zentralisiertes System zu schaffen. Insbesondere muss uns die Wahl der Dienste und die Art und Weise, wie wir diese nutzen wollen offen bleiben.</p>
<h3>Mobile und ubiquitäre Nutzung</h3>
<p>Eine weitere Veränderung der letzten Jahre lässt sich in der Nutzung verschiedenster Geräte, mit denen wir Informationen konsumieren, festhalten. Sei es mit dem Tablet zuhause im Wohnzimmer, unterwegs per <a href="https://test.soziotech.org/glossar/smartphone/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Smartphone zu springen." onmouseover="tooltip.show('Mobiltelefon, das im Vergleich zu herkömmlichen Mobiltelefonen mehr Computerfunktionalität und -konnektivität zur Verfügung stellt. Aktuelle Smartphones lassen sich meist über zusätzliche Programme (sogenannte Apps) vom Anwender individuell mit neuen Funktionen aufrüsten. Häufig vefügt ein Smartphone über einen Touchscreen. ');" onmouseout="tooltip.hide();">Smartphone</a> oder klassisch im Büro mit dem Desktoprechner. Hinzukommen ubiquitäre Systeme wie interaktive Wandbildschirme, welche die letzten Lücken unserer Informationsversorgung schließen. Eine zukunftsfähige Integrationslösung muss daher dem Nutzer die Möglichkeiten der freien Geräte- und Plattformwahl offen lassen.</p>
<h3>Nutzerzentrische Aggregation verschiedener Quellen</h3>
<p>Der Grundgedanke des Web 2.0 beinhaltet die starke Einbeziehung aller Nutzer bei der Erstellung von Inhalten und die Möglichkeit diese mit anderen Personen zu teilen. Mit der Integration von Daten aus uterschiedlichen Diensten entsteht der Wunsch diese untereinander mit zusätzlichen Informationen zu Verknüpfen und diese wiederum mit anderen zu teilen. Hierin liegt auch ein Kritikpunkt an aktuellen Integrationssystemen, die meist nur aus einer Single-User Perspektive getrieben sind. Beispielsweise ist die Verteilung der Information innerhalb einer Gruppe, wer welche Artikel  zu einem gemeinsamen Interessensgebiet gelesen hat, aus dieser Perspektive unmöglich. Wobei die Artikel natürlich aus verschiedensten Quellen stammen können. Zusammen mit der personenzentrischen Sicht auf Daten, der Vielzahl verschiedenster genutzer Dienste und der Verwendung unterschiedlichster Geräte führt dies zum Wunsch einer neuen Integrationslösung für die wir im folgenden die Konzepte und Lösungsansätze vorstellen.</p>
<h2>Grundidee</h2>
<p>Das CommunityMashup verbindet die Inhalte aus verschiedensten sozialen Diensten. Dazu zählen beispielsweise Soziale Netzwerke wie facebook, Microblogging Dienste wie twitter oder Bild-Dienste wie flickr, aber auch spezielere wie beispielsweise der Referenzmanagement-Dienst Mendeley für wissenschaftliche Veröffentlichungen. Die Daten aus diesen Diensten werden über die Schnittstellen der Services abgerufen und über spezielle Adapter vereinheitlicht, so dass sie miteinander vermischt und verbunden werden können (&#8222;mashup&#8220;). Die vereinheitlichten Daten werden anschließen wieder über spezielle Schnittstellen bereitgestellt. Hierbei wird auf unterschiedliche Anwendungsszenarien und deren spezielle Anforderung eingegangen, die insbesondere durch verschiedene Geräte und Plattformen beeinflusst sind. Wir unterscheiden ganz allgemein zwischen Web-Anwendungen, Desktop-Anwendungen und Anwendungen für mobile Geräte. Die folgende Grafik visualisiert diese Zusammenhänge noch einmal grafisch. Hierbei ist vorallem zu beachten, dass Daten nicht nur von den angebunden Diensten zu den Endbenutzer Anwendungen fließen, sondern auch in umgekehrter Richtung.<br />
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/community_mashup_overview_0.png" title="
			Grundidee des CommunityMashup			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/603__618x_community_mashup_overview_0.png" alt="Grundidee des CommunityMashup" title="Grundidee des CommunityMashup" />
</a>
			<p class="wp-caption-text">Grundidee des CommunityMashup</p>
</div>
</p>
<h2>Model Driven Approach</h2>
<p>Ausgehend von der Grundidee einer Integrationslösung für soziale Dienste, die Daten vereinheitlicht und über spezielle Schnittstellen wieder bereitstellt, stellt sich die Frage nach dem passenden Entwicklungsansatz. Erfahrungen haben gezeigt, dass Internetdienste sowie ihre ggf. vorhandenen Schnittstellen einer permanenten Änderung und Weiterentwicklung unterworfen sind. Dienste kommen und gehen bzw. sind populären oder unpopulärer ebenso verhält es sich mit ihren Funktionen und Schnittstellen. Um flexibel auf diesen kontinuierlichen Wandel reagieren zu können und dabei eine stetige Evolution der Integrationslösung zu ermöglichen, schlagen wir einen modellgetriebenen Ansatz vor. Dieser basiert auf einem dafür konzipierten personenzentrischen Datenmodell, das die Zusammenhänge in sozialen Diensten wiedergibt. Dieses Datenmodell und die darauf aufbauenden Anwendungskomponenten stellen wir im weiteren Verlauf näher vor.</p>
<h3>Datenmodell</h3>
<p>Untenstehende Abbildung zeigt die Kernelemente des personenzentrischen CommunityMashup-Datenmodells. Es enthält die drei Kernelmente Person, Organisation und Inhalt (Content). Organisationen wie auch Inhalte können hierarchisch strukturiert werden. Inhalte werden über eine Autor-Beziehung mit Personen verknüpft, diese wiederum können über Organisationen gruppiert werden. Personen-Objekte spiegeln jeweils reale Menschen wieder, d. h. für eine Person wird nicht ein eigenes Element für je benutzten Dienst erzeugt werden, vielmehr bilden alle verteilten Profile zusammen eine digitale Identität ab. Das Selbe gilt auch für die Profile von Organisationen. Jeder weitere Dienst trägt seine zusätzlichen Profilinformationen über Erweiterungs-Objekte (Extensions) bei. So bleibt auch der Bezug zur ursprünglichen Quelle erhalten.<br />
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/data_model.png" title="
			Kernelemente des CommunityMashup Datenmodells			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/600__618x_data_model.png" alt="Kernelemente des CommunityMashup Datenmodells" title="Kernelemente des CommunityMashup Datenmodells" />
</a>
			<p class="wp-caption-text">Kernelemente des CommunityMashup Datenmodells</p>
</div>
</p>
<p>Ein Kernkonzept des Datenmodells ist die bewusst offene Verwendung von Tags für Metainformationen, um ein Minimum von zusätzlichen Attributen für die einzelnen Daten-Objekte fix speichern zu müssen. Beispielsweise erhält eine Person nicht mehr zwei Attribute für die private und die berufliche E-Mail-Adresse, sondern Referenzen zu zwei E-Mail Objekten getaggt mit privat bzw. beruflich. Ein E-Mail Objekt lässt sich dann beispielsweise noch facebook taggen um so deren Verwendung auszuzeichnen. Dieses Verfahren wird auf alle Objekte des Datenmodells angewandt und erlaubt sehr flexible Such- und Filtermethoden und ermöglicht dadurch letztlich eine nutzungsoffene Verwendung der Integrationslösung.</p>
<h3>Anwendungskomponenten</h3>
<p>Mit der aus dem Datenmodell hervorgehend Abbildungsvorschrift, die es erlaubt Daten aus sozialen Diensten zu vereinheitlichen und miteinander zu verbinden, stellt sich die Frage, welche Teile einer konkreten Anwendung direkt vom vorliegenden Datenmodell abängen und somit ebenfalls automatisch aus dem Modell generiert werden können. Um eine nachhaltige und erweiterbare Lösung zu ermöglichen, ist es quasi ein Muss, dass alle diese direkt ableitbaren Teile automatisch bzw. zumindest semi-automatisch generiert werden. Die folgende Grafik gibt einen Überblick über die für das CommunityMashup relevanten, automatisch generierbaren Anwendungskomponenten:<br />
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/model_driven_idea_0.png" title="
			Übersicht über die Modell-Getriebene-Entwicklung von CommunityMashup Komponenten			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/604__618x_model_driven_idea_0.png" alt="Modell-Getriebene-Entwicklung" title="Modell-Getriebene-Entwicklung" />
</a>
			<p class="wp-caption-text">Modell-Getriebene-Entwicklung</p>
</div>
</p>
<p>Viele UML-Werkzeuge unterstützen mittlerweile die automatische Erzeugung einer (Java) Schnittstelle mit zugehörigen leeren Klassen und Methoden. Für eine durchgängige Lösung wird allerdings ausführbare Code mit einer Laufzeitumgebung (RunTime) benötigt. Diese kümmert sich beispielsweise um die Erzeugung von Objekten bzw. um die Bereitstellung von Methoden zur Manipulation solcher Instanzen. Ein zusätzlicher Event-Mechanismus erlaubt das Verfolgen dieser Änderungen. Eine weitere wichtige Anwendungskomponente stellt die Persistierung dar. Diese wird beispielsweise für Caching benötigt. Für die Persistierung von Daten ist eine Serialisierung und Deserialisierung der Objekte notwendig. Diese wird ebenfalls für den Datenaustaustausch über Web-Schnittstellen im <a href="https://test.soziotech.org/glossar/xml/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für XML zu springen." onmouseover="tooltip.show('Extensible Markup Language; Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten.');" onmouseout="tooltip.hide();">XML</a>-Format benötigt. Im Rahmen des CommunityMashup-Projektes wird aktuell eine durchgängige Werkzeugkette aufgebaut, die die automatische Erstellung dieser Komponenten ermöglicht. Wir wenden den gleichen modellgetrieben Ansatz auch auf ein Meta-Modell an, das die möglichen Konfigurationen des CommunityMashup beschreibt. Hierfür werden viele identische Komponenten benötigt, allerdings jeweils bezogen auf ein anderes Modell. Die Verwendung des Meta-Modells erlaubt es, Konfigurationen speichern und laden zu lassen (Persitierung) und beispielsweise aus Gründen der Fernwartung auch über eine Web-Schnittstelle abfragen und verändern zu lassen.</p>
<h2>Service-Orientierte-Architektur</h2>
<p>Alleine durch die oben beschrieben, aus einem Modell erzeugbaren Komponenten lässt sich noch keine gesamte Integrationslösung erstellen. Ziel des CommunityMashups ist nicht nur ein flexibles Entwicklungskonzept das durch den modellgetriebenen Ansatz erreicht wird, sondern auch eine flexible Systemarchitektur die aufgrund von Anforderungen wie Skalierbarkeit, Performance und Ausfallsicherheit eine Verteilung von Systemkomponenten zulässt. Diese Service-Orientierte-Architektur, muss sich dadurch auszeichnen, dass definierte Systemkomponenten als eigenständige Services mit definierten Schnittstellen realisiert werden. So lassen sich selbst zur Laufzeit einzelne Komponenten aktualisieren bzw. austauschen ohne die Verfügbarkeit des Gesamtsystems zu beeinflussen. Nachfolgende Abbildung zeigt ein exemplarisches verteiltes Szenario mit Client- und Server Komponenten.<br />
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/distributed_environment.png" title="
			Exemplarischer Aufbau einer Verteilten Umgebung mit CommunityMashup Komponenten			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/601__618x_distributed_environment.png" alt="Verteilte Umgebung" title="Verteilte Umgebung" />
</a>
			<p class="wp-caption-text">Verteilte Umgebung</p>
</div>
</p>
<p>Die Verbindung der Daten aus den eizelnen Quelldiensten (Source 1 bis Source n) wird auf einem Server durchgeführt und durch eine Konfiguration gesteuert. Jede dieser Quellkomponenten wird als eigener Service realisiert, der sich sich einzeln aktualiseren lässt, beispielsweise um auf die Änderung einer entfernten Schnittstelle zu reagieren.Java Intern überführen die dargestellten Quellkomponenten Daten der externen Dienste in das dem personenzentrische CommunityMashup-Datenmodell und tragen diese hierdurch sukzessive zu einem gemeinsamen Datensatz zusammen. Die zentrale CommunityMashup-Komponente stellt diesen Datensatz (ggf. je nach Bedarf gefiltert) wieder über eine Java Schnittstelle bereit. Darauf aufbauend lässt sich eine <a href="https://test.soziotech.org/glossar/rest/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für REST zu springen." onmouseover="tooltip.show('Representational State Transfer');" onmouseout="tooltip.hide();">REST</a> Schnittstelle hinzufügen, die die aggregierten und gefilterten Daten (zugriffsbeschränkt) über das Web verfügbar macht. Spezielle Anwendungskomponenten lassen nun eine Verwendung der Daten auf Client-Seite über eine identische Java <a href="https://test.soziotech.org/glossar/api/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für API zu springen." onmouseover="tooltip.show('Application Programming Interface (dt. Programmierschnittstelle)');" onmouseout="tooltip.hide();">API</a> zu. Die je nach Client-Typ (im oben abgebildeten Beispiel eine klassische Desktop Anwendung in Kombination mit einem Android Mobile Device) speziell ausgeprägten Anwendungskomponenten kümmern sich im Hintergrund transparent um den Datenaustausch und verlagern je nach Client rechenintensive Aufgaben auf den Server.</p><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fcommunitymashup-ein-erster-ueberblick%2F&amp;action_name=CommunityMashup+%26%238211%3B+Ein+erster+%C3%9Cberblick&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class='yarpp-related-rss'>
<h3>Verwandte Artikel:</h3><ol>
<li><a href="https://test.soziotech.org/communitymashup/" rel="bookmark" title="CommunityMashup &#8211; Überblick">CommunityMashup &#8211; Überblick </a></li>
<li><a href="https://test.soziotech.org/communitymashup/service-orientierte-architektur/" rel="bookmark" title="CommunityMashup &#8211; Service-Orientierte-Architektur">CommunityMashup &#8211; Service-Orientierte-Architektur </a></li>
<li><a href="https://test.soziotech.org/communitymashup/model-driven-approach/" rel="bookmark" title="CommunityMashup &#8211; Model Driven Approach">CommunityMashup &#8211; Model Driven Approach </a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>https://test.soziotech.org/communitymashup-ein-erster-ueberblick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CommunityMashup REST-Schnittstelle</title>
		<link>https://test.soziotech.org/communitymashup-rest-schnittstelle/</link>
		<comments>https://test.soziotech.org/communitymashup-rest-schnittstelle/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 13:13:40 +0000</pubDate>
		<dc:creator><![CDATA[Jan Philipp Fiedler]]></dc:creator>
				<category><![CDATA[CommunityMashup]]></category>
		<category><![CDATA[Dienstintegration]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Studienarbeiten]]></category>
		<category><![CDATA[Authorisierung]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Schnittstelle]]></category>

		<guid isPermaLink="false">http://sevastyanova.cscwlab.de/?p=2015</guid>
		<description><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/632_crop_940x198_fotolia_12446708_subscription_l.jpg" width="618" height="130" alt="CommunityMashup REST-Schnittstelle" /></p>Das CommunityMashup stellt Anwendungen eine auf Web2.0-Inhalte spezialisierte und auf einem personenzentrischen Datenmodell basierende Datenbasis zur Verfügung. Um Anwendern/Entwicklern generische Zugriffsmöglichkeiten auf diese Datenbasis zu ermöglichen, wurde im Rahmen einer Masterarbeit eine REST-Schnittstelle für das CommunityMashup entwickelt, die nachfolgend kurz vorgestellt wird Problemstellung Zu &#8230; <a href="https://test.soziotech.org/communitymashup-rest-schnittstelle/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fcommunitymashup-rest-schnittstelle%2F&amp;action_name=CommunityMashup+REST-Schnittstelle&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class='yarpp-related-rss yarpp-related-none'>

Keine ähnlichen Artikel.
</div>
]]></description>
				<content:encoded><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/632_crop_940x198_fotolia_12446708_subscription_l.jpg" width="618" height="130" alt="CommunityMashup REST-Schnittstelle" /></p><p> <em>Das CommunityMashup stellt Anwendungen eine auf Web2.0-Inhalte spezialisierte und auf einem personenzentrischen Datenmodell basierende Datenbasis zur Verfügung. Um Anwendern/Entwicklern generische Zugriffsmöglichkeiten auf diese Datenbasis zu ermöglichen, wurde im Rahmen einer Masterarbeit eine <a href="https://test.soziotech.org/glossar/rest/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für REST zu springen." onmouseover="tooltip.show('Representational State Transfer');" onmouseout="tooltip.hide();">REST</a>-Schnittstelle für das CommunityMashup entwickelt, die nachfolgend kurz vorgestellt wird</em></p>
<h2>Problemstellung</h2>
<p>Zu Beginn der Entwicklung des <a href="https://test.soziotech.org/communitymashup/" class="link-internal">CommunityMashups</a> wurde der Zugriff auf die Daten des Frameworks lediglich über eine Java-Schnittstelle ermöglicht, d.h. eine es nutzende Anwendung musste in Java implementiert sein und auf der gleichen Maschine wie das CommunityMashup laufen.Eine auf verschiedene Geräte oder Architekturen verteilte Nutzung wurde somit starkt erschwert (vgl. Abbildung links).</p>
<p><div class="ngg-singlepic ngg-left wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/problemstellung.png" title="
			Aufbau des CommunityMashups vor der Erweiterung durch die REST-Schnittstelle.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/582__x270_problemstellung.png" alt="Aufbau des CommunityMashups" title="Aufbau des CommunityMashups" />
</a>
			<p class="wp-caption-text">Aufbau des CommunityMashups</p>
</div>
 <div class="ngg-singlepic ngg-left wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/zielsetzung.png" title="
			Verschiedene Szenarien zur Verwendung der REST-Schnittstelle des CommunityMashups.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/583__x270_zielsetzung.png" alt="Verwendung der REST-Schnittstelle" title="Verwendung der REST-Schnittstelle" />
</a>
			<p class="wp-caption-text">Verwendung der REST-Schnittstelle</p>
</div>
</p>
<p>Um diesem Problem zu begegnen, wurde das CommunityMashup im Rahmen einer Masterarbeit um eine REST-Schnittstelle erweitert. Mit Hilfe dieser Schnittstelle können verschiedenste Arten von Anwendungen (z.B. normale Anwendungen, <a href="https://test.soziotech.org/glossar/smartphone/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Smartphone zu springen." onmouseover="tooltip.show('Mobiltelefon, das im Vergleich zu herkömmlichen Mobiltelefonen mehr Computerfunktionalität und -konnektivität zur Verfügung stellt. Aktuelle Smartphones lassen sich meist über zusätzliche Programme (sogenannte Apps) vom Anwender individuell mit neuen Funktionen aufrüsten. Häufig vefügt ein Smartphone über einen Touchscreen. ');" onmouseout="tooltip.hide();">Smartphone</a>-<a href="https://test.soziotech.org/glossar/app/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für App zu springen." onmouseover="tooltip.show('App (englische Kurzform für application) bezeichnet im Allgemeinen jede Form von Anwendungsprogrammen. Im Sprachgebrauch sind damit mittlerweile jedoch meist Anwendungen für moderne Smartphones und Tablet-Computer gemeint, die über einen in das Betriebssystem integrierten Onlineshop bezogen und so direkt auf dem Smartphone installiert werden können.');" onmouseout="tooltip.hide();">Apps</a> oder Widgets) auf unterschiedlichen Geräten auf die Daten eines oder mehrerer CommunityMashups zugreifen und diese verwenden sowie manipulieren (vgl. Abbildung rechts).</p>
<h2>Verwendung der Schnittstelle</h2>
<p>Die Schnittstelle kann prinzipiell von jeder Anwendung verwendet werden, die entsprechend der Schnittstellen-Dokumentation erstellt/konfiguriert wurde:</p>
<div class="ngg-singlepic wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/mashup_erweitert.png" title="
			Aufbau des CommunityMashups nach der Erweiterung durch die REST-Schnittstelle.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/581__518x_mashup_erweitert.png" alt="Aufbau des erweiterten CommunityMashups" title="Aufbau des erweiterten CommunityMashups" />
</a>
			<p class="wp-caption-text">Aufbau des erweiterten CommunityMashups</p>
</div>

<p>Da die Kommunikation mit der REST-Schnittstelle über das HTTP-Protokoll und damit potentiell dem gesamten Internet geschehen kann, ist die Anwendungsentwicklung sowohl was den Ort als auch die Architektur des Zielsystems betrifft vom CommunityMashup unabhängig.</p>
<p>Die REST-Schnittstelle wird vom CommunityMashup in Form eines Java-Servlets bereitgestellt, welches ebenfalls die Dokumentation der Schnittstelle enthält.</p>
<p>Beide können über die <a href="https://test.soziotech.org/glossar/url/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für URL zu springen." onmouseover="tooltip.show('Unter URLs (Uniform Resource Locator) versteht man eindeutige menschenlesbare Adressen, die Inhalte wie beispielsweise Webseiten im Internet identifizieren und dadurch zugreifbar machen. URLs werden meist als Internetadressen bezeichnet. ');" onmouseout="tooltip.hide();">URL</a> des CommunityMashup-REST-Services erreicht werden, der eine selbsterklärende Beschreibung der angebotenen Dienste bereithält. Unter anderem kann die Syntax der REST-Anfragen nachgeschlagen werden und die Anfragen können im Browser getestet werden, was bei der Entwicklung kompatibler Anwendungen hilft.</p>
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/welcome.png" title="
			Der Einstieg in die Nutzung der REST-Schnittstelle des CommunityMashups ist serlbsterklärend.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/595__618x_welcome.png" alt="Webeinstieg der REST-Schnittstelle" title="Webeinstieg der REST-Schnittstelle" />
</a>
			<p class="wp-caption-text">Webeinstieg der REST-Schnittstelle</p>
</div>

<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/screenshot.png" title="
			Ein Screenshot der Dokumentation der REST-Schnittstelle des CommunityMashups.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/584__618x_screenshot.png" alt="Dokumentation der Schnittstelle" title="Dokumentation der Schnittstelle" />
</a>
			<p class="wp-caption-text">Dokumentation der Schnittstelle</p>
</div>

<h2>Technische Umsetzung</h2>
<p>Um die REST-Schnittstelle mit der modellgetriebenen Entwicklung des CommunityMashups <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-2015-1" href="#note-2015-1" onmouseover="tooltip.show('Vgl. https://test.soziotech.org/communitymashup/model-driven-approach/.');" onmouseout="tooltip.hide();"><sup>1</sup></a> im Einklang zu halten, werden die dynamischen (vom Datenmodell des CommunityMashups anhängigen) Methoden und Funktionen mit Hilfe angepasster <a href="http://www.eclipse.org/modeling/m2t/?project=jet#jet" title="JET-Templates" target="_blank" class="link-external">JET-Templates</a> automatisch aus dem Modell generiert, was eine spätere manuelle Anpassung der Schnittstelle an Änderungen des CommunityMashups überflüssig macht:</p>
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/communitymashup/jet.png" title="
			Die Verwendung von JET-Templates im Eclipse Modelling Framework und in der REST-Schnittstelle des CommunityMashups.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/589__618x_jet.png" alt="Die Verwendung von JET-Templates" title="Die Verwendung von JET-Templates" />
</a>
			<p class="wp-caption-text">Die Verwendung von JET-Templates</p>
</div>

<p>Um den unauthorisierten Zugriff auf das CommunityMashup einzuschränken, wurde ein Sicherheitssystem entwickelt, das nur registrierten Anwendungen den Zugriff auf die Daten und Funktionen des CommunityMashups gestattet. Die Absicherung der REST-Anfragen geschieht durch eine Signatur, welche die Anfrage vor einer Manipulation schützt und den Absender der Anfrage eindeutig identifiziert.</p>
<h2>Sicherheitssystem der Schnittstelle</h2>
<p>Die Sicherheit der Daten des CommunityMashups wird durch die Verwendung sogenannter <a href="http://en.wikipedia.org/wiki/Message_authentication_code" title="Wikipedia: Message Authentication Code" target="_blank" rel="nofollow" class="link-external">Message Authentication Codes</a> (MAC) sichergestellt, welche auch bei anderen (REST)-Schnittstellen namhafter Online-Dienstanbieter wie Amazon, GoogleMaps oder Flickr verwendet wird. Dabeiwird neben der eigentlichen Anfrage der Hashcode der Anfrage und eines geheimen Schlüssels übermittelt, wodurch zum einen die Integrität der Nachricht und zum anderen die Identität des Absenders sichergestellt sind.</p>
<h2>REST-Zugriff</h2>
<p>Die folgenden Prozessdiagramme liefern einen kurzen Überblick über die Zugriffsmöglichkeiten auf das CommunityMashup über die REST-Schnittstelle, darunter auch über den Ablauf einer gesicherten REST-Anfrage:</p>

<div class="ngg-galleryoverview" id="ngg-gallery--20150">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-585" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/communitymashup/access.png" title="
			Dieses Schaubild zeigt den Ablauf eines Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle, welche lediglich als Vermittler zwischen dem Nutzer und dem CommunityMashup dient.			"  >
								<img alt="Dieses Schaubild zeigt den Ablauf eines Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle, welche lediglich als Vermittler zwischen dem Nutzer und dem CommunityMashup dient." src="https://test.soziotech.org/wp-content/uploads/communitymashup/thumbs/thumbs_access.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Zugriff über die REST-Schnittstelle</p>
		</div>
	</div>
			
	<div id="ngg-image-586" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/communitymashup/access_auth.png" title="
			Dieses Schaubild zeigt den Ablauf eines gesicherten Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle. Die REST-Anfrage wird zunächst auf ihre Integrität getestet, danach wird geprüft ob die anfragende Anwendung über ausreichende Rechte verfügt. Trifft beides zu wird die Anfrage an das CommunityMashup weitergeleitet.			"  >
								<img alt="Dieses Schaubild zeigt den Ablauf eines gesicherten Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle. Die REST-Anfrage wird zunächst auf ihre Integrität getestet, danach wird geprüft ob die anfragende Anwendung über ausreichende Rechte verfügt. Trifft beides zu wird die Anfrage an das CommunityMashup weitergeleitet." src="https://test.soziotech.org/wp-content/uploads/communitymashup/thumbs/thumbs_access_auth.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Gesicherter Zugriff über die REST-Schnittstelle</p>
		</div>
	</div>
			
	<div id="ngg-image-587" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/communitymashup/access_auth_nonce.png" title="
			Dieses Schaubild zeigt den Ablauf eines mit einer Nonce gesicherten Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle. Der Ablauf entspricht dem des normalen gesicherten Zugriffs, durch die Verwendung einer Nonce (Number used Once), welche nur für eine Anfrage gültig ist wird ein Replay-Angriff, d.h. das wiederholte senden der gleichen Anfrage, verhindert.			"  >
								<img alt="Dieses Schaubild zeigt den Ablauf eines mit einer Nonce gesicherten Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle. Der Ablauf entspricht dem des normalen gesicherten Zugriffs, durch die Verwendung einer Nonce (Number used Once), welche nur für eine Anfrage gültig ist wird ein Replay-Angriff, d.h. das wiederholte senden der gleichen Anfrage, verhindert." src="https://test.soziotech.org/wp-content/uploads/communitymashup/thumbs/thumbs_access_auth_nonce.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Gesicherter Zugriff über die REST-Schnittstelle</p>
		</div>
	</div>
			
	<div id="ngg-image-588" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/communitymashup/access_unauth.png" title="
			Dieses Schaubild zeigt den Ablauf eines unauthorisierten Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle.			"  >
								<img alt="Dieses Schaubild zeigt den Ablauf eines unauthorisierten Zugriffs auf die Daten des CommunityMashups über die REST-Schnittstelle." src="https://test.soziotech.org/wp-content/uploads/communitymashup/thumbs/thumbs_access_unauth.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Unauthorisierter Zugriff auf die REST-Schnittstelle</p>
		</div>
	</div>
		
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

<img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fcommunitymashup-rest-schnittstelle%2F&amp;action_name=CommunityMashup+REST-Schnittstelle&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class="simple-footnotes"><h2 class="notes">Quellen und Fußnoten:</h2><ol><li id="note-2015-1">Vgl. <a href="https://test.soziotech.org/communitymashup/model-driven-approach/" class="link-internal">https://test.soziotech.org/communitymashup/model-driven-approach/</a>. <a class="simple-footnote-backlink" href="#return-note-2015-1">&#8617;</a></li></ol></div><div class='yarpp-related-rss yarpp-related-none'>
<p>Keine ähnlichen Artikel.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://test.soziotech.org/communitymashup-rest-schnittstelle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
