Wiki

Clone wiki

BibSonomy / development / modules / opensocial / about

Note

Because two major OpenSocial container systems (iGoogle and Network Nature) stopped their services, there are no plans to extend OpenSocial in near future.

Introduction

This section summarizes the basics concepts of OpenSocial (nothing special for BibSonomy).

Bei OpenSocial muss man zwischen zwei Dingen unterscheiden: Apps (Widgets, Gadgets) und Containern Container sind Server-Dienste die Umgebungen für die (JavaScript-)Apps bereitstellen.

Die Idee hinter der Standardisierung ist, dass Apps in den verschiedensten Containern ohne Änderungen laufen können. D.h., eine "alle-meine-Freunde"-App könnte ohne Änderungen in Containern (wie seinerzeit iGoogle) laufen und meine dortigen Freunde anzeigen, aber ebenso in anderen Containern (wie seinerzeit Network Nature) oder LinkedIn laufen und meine dortigen Freunde anzeigen.

Container

Container sind Server-Dienste, die im Wesentlichen zwei Komponenten bereitstellen: Die ''Laufzeit-Umgebung'' für Apps (inkl. Management, also Hinzufügen, Löschen, Konfigurieren von Apps) sowie eine REST-Schnittstelle als ''Datenquelle''.

Der Begriff "Container" bezieht sich meines Erachtens nach auf die erste Funktionalität. Dienste, welche OpenSocial-konforme REST-Schnittstellen bereitstellen müssen nicht unbedingt eine Umgebung für Apps haben. So könnten wir in BibSonomy eine solche REST-Schnittstelle implementieren, ohne selbst die Einbindung von Apps zu ermöglichen. Die Apps könnten bei iGoogle oder Network Nature (beides tot) laufen und sich Daten von BibSonomy holen.

Andererseits ist es auch möglicherweise (!) nicht zwingend notwendig, diese REST-Schnittstelle zu implementieren, da die Apps u.U. die Daten "händisch" holen und verarbeiten könnten (sie erhalten dann keine Unterstützung vom Container). Eine solche App könnte dann aber nur mit genau dieser Datenquelle arbeiten.

Das naheliegendste Ziel für BibSonomy wäre, eine solche OpenSocial-konforme REST-Schnittstelle zu implementieren. Dann könnten einige existierende Apps (bspw. "zeige-alle-meine-Freunde") sofort mit BibSonomy funktionieren.

Apps

Apps bestehen aus XML- und JavaScript-Dateien und laufen innerhalb der vom Container ausgelieferten (JavaScript-)Umgebung. Mit dieser interagieren sie in (im OpenSocial-Standard) standardisierter Form. Sie erhalten ihre Daten vom Container oder anderen Servern in Form von JSON - ebenfalls über standardisierte REST-Schnittstellen.

BibSonomy and OpenSocial

Currently BibSonomy neither offers an App nor does it serve as an OpenSocial container. However, it uses OAuth, an authorization mechanism which is part of OpenSocial.

Possible future extensions of BibSonomy might involve an app that comunicates with BibSonomy (potentially via an OpenSocial-conforming REST-interface) and shows e.g. publication lists. Such an app could run in all OpenSocial containers.

Thoughts

Possible Problems

  • login?
    • login-user im Container?
    • den Container am besten innerhalb von BibSonomy laufen lassen - dann gibt es den ganzen Security-Unterbau
  • OpenSocial kennt keine gerichteten Freundschafts-Beziehungen
  • BibSonomy-User-Ids sind weniger restriktiv als OpenSocial - es kann also sein, dass eine BibSonomy-UserId keine gültige OpenSocial-Id ist.
    • Das hatte ich schon festgestellt und daraufhin für Neuregistrierungen Restriktionen eingeführt (siehe UserValidator.validateName()). Bei den bestehenden Benutzern haben die allermeisten erlaubte Namen.

Matching of BibSonomy and OpenSocial Concepts

Updated