Suchen

Definition Was ist Shiny?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Shiny ist eine Software und ein Framework für die Programmiersprache R. Mit Shiny lassen sich interaktive grafische Darstellungen und Webapplikationen realisieren, ohne dass tiefere HTML-, CSS- oder JavaScript-Kenntnisse notwendig sind. Die grafische Darstellung der interaktiven Elemente erfolgt über den Webbrowser. Für das Deployment von Webapplikationen ist ein Shiny Server notwendig.

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com)

Shiny ist ein speziell für die Programmiersprache R vorgesehenes Framework und Softwaretool. Entwickelt wurde es vom Unternehmen RStudio PBC. Die Abkürzung PBC steht für Public Benefit Corporation. RStudio hat seinen Hauptsitz im US-amerikanischen Boston, Massachusetts, und ist spezialisiert auf Open-Source-basierte Software und Tools für wissenschaftliche Anwendungen, Data Science und Kommunikationstechnik.

Webapplikationen und interaktive Grafiken wie verschiedene Diagrammtypen, Landkarten, Graphen oder andere zwei- und dreidimensionale Darstellungen werden in Shiny mit R programmiert und im Web beispielsweise mit einem Shiny Server veröffentlicht. In der Entwicklung kann auf den vollen Funktionsumfang der R-Pakete zugegriffen werden. Die Darstellung auf Client-Seite erfolgt über Standard-Browsertechnologien wie HTML5, CSS und JavaScript. Da in R programmiert wird, sind keine spezifischen HTML-, CSS- oder JavaScript-Kenntnisse notwendig. Allerdings ist es möglich, das Erscheinungsbild der grafischen Darstellungen und der Webapplikationen mit HTML- und CSS-Elementen an individuelle Vorstellungen anzupassen. Das Deployment der Webanwendungen findet über einen Shiny Server statt.

Der Shiny Server ist als kostenpflichtige Enterprise-Version und als freie Open-Source-Version verfügbar. Obwohl es sich bei Shiny um eine noch recht junge Lösung handelt, ist sie unter Datenwissenschaftler bereits sehr beliebt und wird häufig für interaktive Analysen und die Visualisierung von Modellen verwendet. Im Netz existiert eine große Community. Das Shiny-Paket steht unter GPLv3-Lizenz.

Grundkonzept der Shiny-Applikationen

Konzeptionell bestehen Webapplikationen in Shiny aus zwei Grundkomponenten. Diese beiden Komponenten sind das Objekt für das User Interface (Benutzeroberfläche) und die Serverfunktion. Das Objekt für das User Interface legt fest, wie der Anwender mit der Applikation interagiert. Die Serverfunktion übernimmt die Aufgabe, Berechnungen durchzuführen. Um eine Shiny App zu erstellen, werden das Objekt für das User Interface und die Serverfunktion per shinyApp-Funktion miteinander kombiniert. shinyApp verbindet quasi das User Interface mit der Serverfunktion zur ausführbaren Anwendung. Das User-Interface-Objekt, die Serverfunktion und die shinyApp-Funktion sind in einem R-Skript gespeichert.

Der Shiny Server und die Umgebung ShinyApps.io

Um Usern die Interaktion mit einer per Shiny erstellten Webapplikation zu ermöglichen, wird sie auf einem Shiny Server gehostet. Der Shiny Server ist in einer Enterprise- und einer Open-Source-Version erhältlich. Anwender verbinden sich mit ihrem Webbrowser per URL mit der Applikation auf dem Shiny Server. Über den Server lassen sich die Zugriffsberechtigungen der Anwender festlegen. Die Enterprise-Version des Shiny Servers besitzt einen erweiterten Support- und Funktionsumfang. Erweiterte Funktionen sind beispielsweise:

  • die genauere Kontrolle des Zugriffs der Nutzer auf Applikationen
  • die Absicherung von Shiny-Apps per HTTPS
  • eine feinere Ressourcensteuerung der Shiny-Apps

Der Server ist auf verschiedenen Linux-Distributionen lauffähig. Für Entwickler und Betreiber von Shiny Apps, die sich selbst nicht um einen Shiny Server kümmern möchten, existiert mit ShinyApps.io eine voll gemanagte Umgebung für das Hosting und Deployment eigener Webapps. ShinyApps.io ist ein Cloud-basierter Service von RStudio und bietet eine einfache Möglichkeit, mit Shiny erstellte R-Anwendungen einem breiten Anwenderkreis bereitzustellen.

Vorteile von Shiny

Shiny bietet zahlreiche Vorteile und kombiniert die Leistungsfähigkeit von R mit der Interaktivität moderner Internettechnologien. Zum Schreiben von Shiny Apps sind keine speziellen Web-Entwicklungfähigkeiten oder HTML-, CSS- und JavaScript-Kenntnisse notwendig. Applikationen sind einfach in R zu schreiben und über einen Shiny Server oder die Umgebung ShinyApps.io zu deployen. Schon mit wenigen Zeilen Programmcode entstehen nützliche Webapplikationen. Auch das User Interface lässt sich komplett in R schreiben. Zusätzlich ist die Anpassung der grafischen Gestaltung per HTML, CSS und JavaScript möglich. Für Shiny existieren vordefinierte Output-Widgets, mit denen sich Standard-Elemente und R-Objekte anzeigen lassen. Weitere Vorteile von Shiny sind:

  • interaktives Programmiermodell ohne aufwendiges Event-Handling
  • die Möglichkeit eigene Widgets zu entwickeln und anderen zur Verfügung zu stellen
  • Rendering der grafischen Darstellung in Standard-HTML5
  • Nutzung aller gängigen Webbrowser und Geräte möglich
  • freie Open Source Software
  • professionelle Enterprise-Version des Shiny Servers mit erweitertem Funktionsumfang verfügbar
  • große Community im Netz vorhanden
  • professioneller Support bei Bedarf verfügbar
  • kontinuierliche Entwicklung und Erweiterung des Funktionsumfangs von Shiny
  • in der Entwicklung kann auf den vollen Funktionsumfang der R-Pakete zugegriffen werden

(ID:46929053)

Über den Autor