Open Source im professionellen Einsatz
Linux-Magazin 03/2014
471

Datenhaltung

Meteor speichert Anwendungsdaten in Form von Javascript-Objekten, für Persistenz sorgt das freie NoSQL-Datenbanksystem Mongo DB. Der Datenbankserver liegt der Meteor-Distribution bereits bei und muss nicht zusätzlich installiert werden. Im Browser verfügt Meteor über eine stets aktuelle Kopie des Datenbestands der Mongo DB. Listing 3 zeigt die Speicherung eines Javascript-Objekts in der Datensammlung »Articles« unter Meteor. Zeile 1 öffnet die Datensammlung »Articles« und instanziert dabei ein Objekt vom Typ »Collection« . Zeile 2 speichert das leere Objekt »{}« in »Articles« durch Aufrufen der Methode »insert()« .

Listing 3

Zugriff per Collection-API

01 var Articles = new Meteor.Collection("articles");
02 Articles.insert({});

Reaktivität

Abbildung 4 macht anschaulich, wie sich das Hinzufügen eines Objekts zur Datensammlung »Articles« auswirkt. Den Anstoß gibt das Ausführen von Listing 3 im Browser unten links im Bild. Meteor überträgt das gespeicherte Objekt in Echtzeit in die Mongo DB auf dem Webserver und aktualisiert anschließend die Kopien der Anwendungsdaten in allen anderen Browsersitzungen. Anschließend reagieren in allen Browsern sämtliche Templates, die aus der Datensammlung »Articles« lesen: Sie kalkulieren sich automatisch neu und aktualisieren den DOM-Baum des Browsers.

Abbildung 4: Änderungen breiten sich lawinenartig und in Echtzeit über alle beteiligten Instanzen aus.

Berechnet sich Programmcode selbsttätig neu, wenn sich die Daten ändern, von denen er abhängt, so spricht man von Reactive Programming [4]. Um Daten in Echtzeit auszutauschen, verbindet sich der Webserver jeweils über eine Websocket-Verbindung [5] mit den Browsern. Abbildung 5 zeigt die Auswirkung des reaktiven Verhaltens an der Beispielanwendung. Nach dem Speichern eines neuen Beitrags im rechten Browser erscheint der Beitrag selbsttätig im linken Browser.

Abbildung 5: Die Beispielanwendung bietet eine Artikelliste (links) und einen Editor (rechts).

Meteor-Pakete erweitern den Funktionsumfang einer Webanwendung. Der Befehl »meteor --list« listet in der Shell alle Pakete auf, die der Meteor-Distribution beiliegen. Der Befehl »meteor add Paketname« installiert ein Meteor-Paket, »meteor remove Paketname« entfernt es wieder. Pakete mit den Javascript-Bibliotheken Jquery, Underscore und Handlebars sind standardmäßig in Meteor-Anwendungen eingebunden.

Externe Pakete bindet der Versions- und Paketmanager Meteorite [6] ein. Er kann Pakete aus dem öffentlichen Verzeichnis unter https://atmosphere.meteor.com beziehen. Obwohl das Paketformat von Meteor noch nicht abschließend spezifiziert ist, beherbergt Atmosphere bereits rund 800 Pakete. Listing 4 bringt Meteorite auf ein Ubuntu-12.04-System. Zeile 1 installiert zunächst das erforderliche Softwarekontrollsystem Git mittels Apt. Anschließend nutzt Zeile 3 den Node.js-Paketmanager Npm aus der Meteor-Distribution, um Meteorite einzuspielen. Zuvor fügt Zeile 2 das Verzeichnis mit der Npm-Binärdatei der Umgebungsvariablen »PATH« hinzu. Schließlich installiert Meteorite mit dem Kommando »mrt« die Javascript-Bibliothek Moment aus dem gleichnamigen Meteor-Paket (Zeile 4).

Listing 4

Meteorite bindet externe Pakete ein

01 sudo apt-get install git
02 PATH=$PATH:~/.meteor/tools/0b2f28e18b/bin
03 npm install -g meteorite
04 mrt add moment

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.