AppJet: The Platform behind EtherPad

EtherPad was created and hosted using the AppJet Web Platform, a new platorm we have have developed for building realtime web apps.

Historically, many of the best developer tools have emerged from specific applications that required them. During development, the application and tool progressed symbiotically, each to the other’s benefit. This is how we hope EtherPad and AppJet will evolve.

Although this new version of AppJet is not yet released, here is a preview of some of the cool components we are building into it.

AppJet Features:

JavaScript execution on both the client and server

This enabled us to be more productive by writing all of EtherPad in the same language, and shuttle data between the client, server, and database all using JavaScript objects.

Scalable, cross-browser persistent client sockets

EtherPad changes show up on everyone’s browser in real-time, so we needed to maintain a persistent connection to push data to client at all times. We have client and sever libraries that support « Comet » connections in a scalable and browser-compatible way.

Flexible, memory-cached JavaScript object database

All the objects that the EtherPad application code works with are JavaScript objects, so why on earth would we convert them to and from any other format when storing them in the database? EtherPad stores all its data in the AppJet Database, which automatically scales and caches itself in memory as necessary. This makes it fast to implement EtherPad features, fast to change storage models, and fast to serve requests in production.

Access to the world’s biggest collection of libraries: the JVM

There are more high-quality and well-documented libraries written for the Java VM than for any other runtime. We wanted access to all of them when building EtherPad, so we made an easy way to import Java libraries for use in JavaScript, based on Rhino’s JavaScript/Java bridge.

Obsessive focus on performance

We named it AppJet for a reason. Part of why AppJet is so fast is that it uses Rhino to compile JavaScript to Java bytecodes, which in turn run on top of the JVM. Many man-decades have gone into optimizing the JVM, and all of that work makes AppJet faster. To make the database fast, we automatically cache frequently used segments in memory. The net result is a full-stack platform for building web apps that supports rapid development and rapid performance in production.

Cet article a été publié dans Uncategorized. Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s