I’m happy to announce the immediate availability of my thesis! It was handed in in July 2010 as my diplom thesis in the academic program of Media Informatics at Beuth Hochschule für Technik Berlin (University of Applied Sciences). A German Diplom is comparable to a combined bachelor’s and master’s degree. Originally it has been written in German, so I’m very happy it’s also available for English speaking readers now: thanks a lot to the awesome Sander Van de Moortel for translating it into English, and to CouchOne for sponsoring the translation. Read also my thank you notes for more gratefulness.
I hope the thesis is an interesting read and useful for your research or development!
Contents
The title is “Implementation of a distributed application using the document-oriented database CouchDB — An outliner as a replicable distributed system” (originally “Umsetzung einer verteilten Anwendung mit der dokumentenorientierten Datenbank — CouchDB Ein Gliederungseditor als replizierbares Verteiltes System”).
What is it about? I wrote a couple of words about that for the Upstream blog. Here is also the abstract — all the contents in ten sentences:
Modern web browsers and mobile devices are capable of running complex applications that allow collaboration and data exchange between their users. Laptops and mobile phones, however, cannot be expected to keep their internet connections alive at all times. This problem can be sidestepped using data replication, which means that data are regularly synchronised and kept consistent. This thesis describes the drafting and prototypical development of a JavaScript application that uses the document-oriented database CouchDB to form distributed outliner software. Outliners can be used to record thoughts or concepts in a hierarchically structured manner. Apart from categorising the system to be developed and analysing possible approaches, the thesis will also examine the technologies used. Special focus lies on CouchDB with its built-in master-master replication and its ability to implement complex applications without the use of middleware. The final application runs locally in the browser and is therefore also usable when off-line. Conflicts are resolved when the system is synchronised, sometimes steered by user input. The thesis also evaluates the applicability of CouchDB in distributed applications with particular regard to the use case at hand.
Download
- Read the English version and the German version online,
- check out the English LaTeX sources or the German LaTeX sources on github, or
- download the pdf in English or in German.
BibTeX
In case you want to quote me in your paper/thesis/homework, here’s the BibTeX entry:
@mastersthesis{herrmann:couchdb,
author = {Lena Herrmann},
title = {Realisation of a Distributed Application Using the Document-Oriented Database CouchDB - An Outliner as a Replicable Distributed System},
school = {University of Applied Sciences Berlin},
year = {2010},
month = {July}
}
@mastersthesis{herrmann:couchdb,
author = {Lena Herrmann},
title = {Umsetzung einer verteilten Anwendung mit der dokumentenorientierten Datenbank CouchDB - Ein Gliederungseditor als replizierbares Verteiltes System},
school = {Beuth Hochschule für Technik Berlin},
year = {2010},
month = {Juli}
}The Application
The hands-on part is an outliner that allows people to collaborate on documents even when they don’t have continuous internet access. If you want to read/clone/try out/improve/take apart/whatever the source code, it’s here on github. The github README contains installation and usage instructions, for more details read chapter 9, “Application”, in the thesis.
You can also try out the outliner online. Though, in order to enjoy the replication and conflict resolution features, you have to (also) install it locally. But it’s a couchapp - when you have CouchDB running you’re almost there already.
I hope you all like it!
Trackbacks
Use the following link to trackback from your own site:
http://lenaherrmann.net/trackbacks?article_id=19
about 1 hour later:
The version of Erlang is more likely R12/R13/R14. 5.6.5 seems to be the version of the ERTS.
about 2 hours later:
Interessante Arbeit, Danke für die Publizierung!
In deinem BibText ist irgendwie deutsch und englisch gemischt (deutscher Titel + englischer Schulname + englischer Monat, bzw. englischer Titel + deutscher Schulname + deutscher Monat).
about 4 hours later:
@Astro Thank you. It probably won’t be a problem in the wild.
@PHPGangsta Danke, hab’s gefixt!
about 6 hours later:
Da bin ich ja mal gespannt. Arbeite auch gerade ein einer App mit CouchDB. Danke für’s Publizieren.
about 8 hours later:
Super Sache! Eine ganz kleine Sache zu dem BibTex würde ich aber gern noch anmerken.. Ich glaube, dass ‘University of Applied Sciences Berlin’ ist nicht ganz eindeutig ist. Sowohl Beuth Hochschule als auch HTW benutzen diesen Titel als englische Bezeichnung. ;) Aber gut, spätestens in der Arbeit steht es ja dann nochmal. Die Arbeit werde ich mir mal bei Gelegenheit anschauen. Interessant ist das Thema allemal!
about 17 hours later:
Denis und ich danken dir nochmal herzlich für die interessante Präsentation und gratulieren zur Veröffentlichung deiner Arbeit! Ich freue mich schon darauf, sie zu lesen.
3 days later:
Großartige Arbeit und Glückwunsch!
about 1 month later:
Hi, I tried to download your document (in English), but it seems to be corrupt.
I am very interested to use your code/application to detect possible bugs related to causality of events (eg. deadlocks).
Thank in advance!
about 1 month later:
Hey Paul, downloading the english document works fine for me. Here is another link: http://dl.dropbox.com/u/2940774/Lena_Herrmann_CouchDB_thesis.pdf - I hope this one works for you!