|
|
pl:dydaktyka:ztb:2010:projekty:nosql_couch:start [2010/06/13 14:43] ztb2010 |
pl:dydaktyka:ztb:2010:projekty:nosql_couch:start [2019/06/27 15:50] |
Sebastian Nanek | |
| |
snanek //posiadający konto w domenie// gmail.com | |
| |
//Wstępna wersja wstępu do projektu.// | |
| |
====== Praca z CouchDB ====== | |
| |
1. Instalacja pakietu CouchDB w systemie operacyjnym GNU/Linux Ubuntu: | |
| |
''$sudo aptitude install couchdb'' | |
| |
2. Uruchomienie CouchDB z poziomu konta superużytkownika: | |
| |
''$ sudo couchdb'' | |
''Apache CouchDB is running as process 31654. Time to relax.'' | |
| |
Alternatywnie, można program uruchamiać z poziomu konta zwykłego użytkownika, wcześniej upewniając się, że użytkownik będzie miał dostęp do zapisu w katalogu /var/lib/couchdb/0.8.0 (lub innym, odpowiadającym ustawieniom CouchDB i lokalnemu środowisku systemowemu). | |
| |
3. Sprawdzenie poprawności instalacji | |
| |
| |
3.a. Z konsoli | |
| |
''$curl -X PUT http://127.0.0.1:5984/albums'' | |
''{"ok":true}'' | |
| |
3.b. Przy użyciu przeglądarki internetowej | |
| |
Wejście na stronę www: | |
| |
''http://localhost:5984/'' | |
| |
zwraca: | |
| |
''{"couchdb":"Welcome","version":"0.8.0-incubating"}'' | |
| |
====== Podsumowanie ====== | |
| |
1. Zalety | |
| |
* wersjonowanie dokumentów dostępne "od ręki" | |
* komunikacja poprzez łatwy w implementacji i wykorzystaniu protokół http (mechanizm REST [2]) | |
* dane przekazywane w "lekkiej" formie plików YAML | |
| |
2. Wady | |
| |
* brak wbudowanych mechanizmów autoryzacji oraz list kontroli dostępu, konieczność wykorzystania zabezpieczeń na poziomie protokołów komunikacyjnych [3] | |
* konieczność budowania własnych rozwiązań, które mają na celu zabezpieczanie nieautoryzowanego dostępu do bazy danych | |
| |
3. Możliwości wykorzystania | |
| |
* aplikacje internetowe korzystające ze sporej ilości dokumentów o zmiennej strukturze (np. portale internetowe) [1] | |
* oprogramowanie, które wymaga dostępności wszystkich wersji i historii zmian danego dokumentu lub rekordu | |
| |
====== Projekt ====== | |
| |
Celem projektu jest napisanie prostej aplikacji w oparciu o zorientowany na dokumenty system zarządzania bazami danych //CouchDB//. Aplikacja będzie umożliwiała wzorców tworzenie serii dokumentów (//formularzy//), a następnie tworzenie samych dokumentów (//rekordów//) w formie podobnej, jak można to robić np. w programach do zarządzania dokumentami. | |
| |
Całość zostanie zaimplementowana w języku //Ruby//, z wykorzystaniem mikroframeworka do tworzenia aplikacji internetowych //SinatraRB//[4]. W tym przypadku framework zapewni w zasadzie jedynie funkcjonalność dynamicznego serwera http i mapowania adresów na odpowiednie akcje. Do komunikacji zostanie wykorzystana przykładowa biblioteka klienta, znaleziona na wiki twórców CouchDB[4]. | |
| |
Aby uprościć tworzenie warstwy widoku aplikacji, zostaną wykorzystane następujące biblioteki: | |
| |
* BluePrintCSS | |
* jQuery | |
* jQueryUI | |
====== Bibliografia ====== | |
| |
* [0] http://couchdb.apache.org/ | |
* [1] http://en.wikipedia.org/wiki/Document-oriented_database | |
* [2] http://en.wikipedia.org/wiki/Representational_State_Transfer | |
* [3] http://britg.com/2008/09/23/accessing-couchdb-admin-without-exposing-it-to-a-public-port/ | |
* [4] http://www.sinatrarb.com/ | |
* [5] http://wiki.apache.org/couchdb/Getting_started_with_Ruby | |
* [6] http://news.cnet.com/8301-13846_3-10412528-62.html?tag=mncol;title | |
* [7] http://news.cnet.com/8301-13846_3-10451248-62.html | |
* [8] http://s3.amazonaws.com/data.tumblr.com/tumblr_kzjk0rvrer1qb4af9o1_1280.png?AWSAccessKeyId=0RYTHV9YYQ4W5Q3HQMG2&Expires=1276519367&Signature=Gy20aGtjIZbbUGgNA4yIPagxTl4%3D | |
| |
| |