Das könnte dich auch interessieren

Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 33

Meteor: Einblick in die Full-Stack-JavaScript-Plattform für das Echtzeit-Web

    Meteor: Einblick in die Full-Stack-JavaScript-Plattform für das Echtzeit-Web

Die Anforderungen an Usability, Stabilität, Modularität und Skalierbarkeit nehmen rapide zu – vom kleinen Community-Projekt bis zur Enterprise-Anwendung. Das JavaScript-Framework Meteor liefert einen vielversprechenden Ansatz für die agile Entwicklung der nächsten Generation von Web-Anwendungen.

JavaScript prägt die Web-Entwicklung anno 2013 mehr denn je. Doch man muss schon reichlich Zeit und Geduld mitbringen, um auch nur einen annähernd umfassenden Überblick über die Stärken und Schwächen der zahlreichen JavaScript-Bibliotheken und -Frameworks zu bekommen. Dies ist kaum verwunderlich, denn JavaScript ist zum Stammspieler im Umfeld von HTML5 avanciert. So schauen Entwickler und Projektleiter nicht zuletzt deswegen so angestrengt auf das Anforderungspapier eines neuen Web-Projekts, weil sie auf der einen Seite zwar eine zeitgemäße Usability und professionelle Abbildung in mobilen Browsern bewerkstelligen möchten – aber auf der anderen Seite den Aufwand möglichst klein und die Entwicklungsstrategie agil halten wollen. Da klingt es zunächst vor allem nach Ballast, ein weiteres JavaScript-Framework einbinden zu wollen.

Dieser Artikel stammt aus dem brandneuen t3n Magazin Nr. 33.
Dieser Artikel stammt aus dem brandneuen t3n Magazin Nr. 33.

Frisches Konzept aus dem Valley

Doch zu der JavaScript-Renaissance im Frontend-Bereich gesellt sich seit einigen Jahren der zunehmende JavaScript-Einsatz in serverseitigen Laufzeitumgebungen – insbesondere im Zusammenspiel mit NoSQL-Datenbanken und skalierbaren Cloud-Infrastrukturen. Vor allem Node.js hat sich hier einen festen Platz beim Aufbau zahlreicher Server-Stacks gesichert. Wer sich also die Einsatzbereiche von JavaScript vor Augen führt und über die Vorteile einer Hochzeit von Browser- und Server-Welt nachdenkt, sollte unbedingt einen Blick auf die Plattform Meteor werfen. Ein kleines Team aus San Francisco entwickelt die auf JavaScript basierende Full-Stack-Webentwicklungs-Plattform Meteor seit 2011. Seit 2012 hat es dafür 11,2 Millionen US-Dollar Venture Capital bekommen. Das Ziel: die Entwicklung komplexer Web-Applikationen radikal vereinfachen. Der Meteor-Programmcode selbst ist Open Source und steht unter MIT-Lizenz. Meteor ist vielmehr eine Plattform als nur ein Framework. Das Rad wird nicht neu erfunden, aber es werden eine Reihe etablierter Technologien und Konzepte geschickt zusammengeführt. Dadurch entsteht ein komplexes Standardverhalten out of the box. Die wichtigsten Meteor-Komponenten im Überblick:

  • Webserver / Laufzeitumgebung auf Basis von Node.js
  • NoSQL Datenbank bzw. „Document Store“ mit MongoDB
  • WebSocket-Support / Observer für Echtzeitanwendungen
  • Erweiterungen und Paket-Management mit „Smart Packages“
  • Tools und Infrastruktur für das Building und Deployment

Doch was steckt hinter den Versprechungen? Lohnt es sich, Meteor trotz seines frühen Entwicklungsstadiums (aktueller Stand: v. 0.6.4) zu evaluieren? Nun, mit den folgenden vier Zeilen in der Shell läuft die Beispiel-Applikation und liefert einen ersten Einblick:

Installation der Beispiel-Applikation

$ (sudo) curl https://install.meteor.com | sh
$ meteor create --example leaderboard
$ cd leaderboard
$ meteor

Listing 1

Mit Meteor über die Architekturgrenze hinaus

Um die besonderen Möglichkeiten von Meteor besser zu verstehen, soll vorweg nochmal der Blick auf die Eigenschaften von JavaScript-Frameworks der MVC-Klasse gelenkt werden: Ember.js, Angular.js, Backbone.js, ExtJS/Sencha – all diese Frameworks verfolgen im Detail recht unterschiedliche Ansätze und doch vereint sie der Status als reine Client-Frameworks, gemacht für den Einsatz im Webbrowser. Zwar lassen sich mit ihnen auch komplexe Datenmodelle bis hin zu DataStore-Definitionen abbilden, doch endet eine direkte Kontrolle über den Verbleib und Zustand der Daten spätestens beim nächsten Server-Roundtrip – typischerweise durch XHR-Requests an eine serverseitige REST-Schnittstelle. Dies versteckt die Architekturgrenze, anstatt sie vollständig und transparent zu überbrücken. Entwickler müssen deshalb sowohl auf Client- als auch auf Server-Seite unabhängig voneinander eine vergleichbare Geschäftslogik implementieren und testen. Auch wenn es gute Gründe für die architektonische Grenze geben mag – für agile Entwicklungsvorhaben ist das ein oft lästiger und redundanter Implementierungsaufwand und damit einen klarer Verstoß gegen das Don't-Repeat-Yourself-Prinzip (DRY). Um dem Problem zu entgehen, bietet das Meteor-Team einen radikal neuen Weg: Von Beginn an hat es die Plattform konsequent für den client- und serverseitigen Einsatz des JavaScript-Codes konzipiert. Das heißt, Entwickler müssen mit Meteor nur ein Modell, eine Validierung oder sonstige Geschäftslogik implementieren, und die XHR-Aufrufe des Browsers verstecken sich gänzlich – so als existierte eine direkte Datenbank-Verbindung. Die Beschleunigung im Bootstrapping moderner Web-Applikationen beginnt also mit einer zwischen Server und Browser geteilten Code-Basis. Und das ist nur der erste Baustein des Gesamtkonzepts.

Full Stack Reactivity

Meteor geht in der engen Verzahnung der Kommunikation zwischen Server und Client noch einen deutlichen Schritt weiter und bietet Kontrollmechanismen nach dem Publish/Subscribe(Pub/Sub)-Prinzip. Zudem hält der Browser durch den Einsatz von WebSockets eine bidirektionale Verbindungen zum Server aufrecht: Der Server informiert Meteor über Ereignisse, etwa Änderungen in der Datenbasis, sodass die Plattform Views neu rendern, also live aktualisieren kann. Pub/Sub-Deklarationen ermöglichen zudem Ereignis-getriebene und flexible Kopplungen aller beteiligten Komponenten nach dem Observer-Muster. Vereinfacht gesagt bedeutet dies, dass jede Ebene der Anwendung – von der Datenbank bis hin zum HTML-Template – ad-hoc auf Veränderungen reagieren kann. Übrigens: So ganz nebenbei lernt der Entwickler dabei das Konzept der reaktiven Programmierung im deklarativen Stil. Das Meteor-Team nennt dieses Zusammenspiel „Full Stack Reactivity“ und trifft damit die zentrale technische Besonderheit der Plattform als wichtigen Kandidaten für die Entwicklung von Echtzeitanwendungen. Die Anwendungsszenarien hierfür sind vielfältig, wenn auch bislang im Wesentlichen assoziiert mit Chat-Systemen, Admin-Dashboards oder Börsenkurs-Monitoren. Facebook oder Twitter zeigen jedoch deutlich, an wie vielen Stellen Echtzeit-Updates bereits eine Selbstverständlichkeit sind und vom User erwartet werden.

Finde einen Job, den du liebst zum Thema TYPO3, JavaScript

3 Reaktionen
Marc Wensauer
Marc Wensauer

Hier sind noch 2 hilfreiche Informationsquellen:

http://www.discovermeteor.com
https://www.eventedmind.com

Antworten

Thomas
Thomas

Hört sich ja sehr interessant an!

Antworten

P
P

hab heute noch gegoogelt obs zu dem Projekt was neues gibt. Danke für die (deutsche) anschauliche Zusammenfassung und weiter so!

Folgender Link fehlt mir aber: http://yauh.de/articles/376/best-learning-resources-for-meteorjs

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen