czwartek, 10 kwietnia 2008

Google Engine App

Ponieważ lubię Pythona to mnie ucieszyło że Google zrobiło kolejną usługę tym razem dla programistów. Google Engine App jest usługą pozwalającą hostingować małe aplikacje napisane w Pythonie. Ściągnąłem SDK i pomyślałem, że warto spróbować. Szybko zainstalowałem i przerobiłem to na Windows XP Getting Started Guide. Ale cóż nie ma róży beż kolców. Gdy chciałem obsłużyć statyczne dane pojawiał mi się błąd "regex invalid: unbalanced parenthesis" podczas uruchamiania testowego serwera. Na ich forum znalazłem rozwiązanie.
Trzeba zmienić linie kodu 2369-70 w katalogu SDK\google\appengine\tools\dev_appserver.py z:

regex = os.path.join(re.escape(regex), '(.*)')
path = os.path.join(path, '\\1')

na:

regex = re.escape(regex) + '/(.*)'
path = path + '/\\1'

To dotyczy tych, który używają Windowsa XP. Znalazłem posta o tym jak łączyć PyDev z Google Engine App SDK. Ale najciekawsze były kody źródłowe aplikacji pracujących z Google Engine App SDK. Przykłady w praktyce? muvmuv (kod źródlowy) Django Questbook (kod źródłowy) oraz przykładowy szablon aplikacji w Django. Dla tych. którzy chcieliby stawiać pierwsze kroki w Django ( już znają inne języki programowania) to polecam zapoznanie się z artykułem Shabda Raaj opisujacym jak tworzyć aplikację Django (sondę z kodem źródłowym) w App Engine.

Przypuszczam, że takie podejście Google jest rywalizacją z Amazonem (Simple Storage Service) oraz z Microsoftem (SQLServer Data Service).
No cóż zaczyna być ciekawie. Czyżby zaczynał sie schyłek pisania oprogramowania webowego w klasycznym SQL na rzecz zdalnego hostingu danych i obrabianych ich w jakimś dialekcie SQL (GQL, FBQL, LINQ) a bazy danych zaczynają obsługiwać kilka TB danych (technologie BigTable, SimpleSB).
Warto śledzić takie inicjatywy jak Force.com, dostarczające szereg usług dla programistów.

Trzeba tez zwrócić uwagę na to że są inne usługi Google z których można korzystać przy pomocy API GData. Dla programistów Google Engine App polecałbym bibliotekę Google Data Python Library. Warto przeczytać wprowadzenie do tej biblioteki
Mozna spróbować też użycie wirtualizacji w celu symulowania działania aplikacji na bazie SDK (do ściągnięcia stąd).

Ja nawet przewiduję wbudowanie w przeglądarce serwera WWW na przykład w Pythonie co sprawi że użytkownik ściągnie sobie aplikację i będzie mógł ją udostępniać ją innym do pobrania tak jak w przypadku sieci P2P. W takim rozproszonym modelu klasyczny hosting idzie do lamusa. Dlaczego? Usługi hostingowania aplikacji dostarczą API dzięki której użytkownik będzie miał pewność, że jego dane będą unikalne i w każdym razie nie musi być przechowywane na serwerze a w cache przeglądarki i każdy kto będzie chciał pobierze to z przeglądarki kogoś. Jak będzie wyglądała wtedy strona WWW? Będzie to paczka z kodem dla wbudowanego w przeglądarce serwerze WWW. Pobierasz raz i niejako instalujesz ją i co pozwala na pracę lokalnie z innymi użytkownikami równocześnie. To ma sens jak działalność użytkownika ogranicza się do odczytu danych. Natomiast jak ktoś potrzebuje doda komentarz to są dwa sposoby aktualizacji: wysyła to portem UDP do innych którzy mają uruchomione przeglądarkę i zainstalowaną paczkę z aplikacją co powoduje automatyczna aktualizację. Natomiast hostigodawca aplikacji trzyma informacje o IP przeglądarek z uruchomionym serwerem i przyjmuje dane do zapisania i w ten sposób aktualizuje paczkę jakiś danych. Następnie serwer w przeglądarce pyta sie serwera aplikacji czy są jakieś aktualizacje i wtedy pobiera aktualizację od serwera albo od innej przeglądarki która już ma zaktualizowaną bazę.

1 komentarz:

kormendi pisze...

Czesc, sprobowalismy Google Apps Engine u Jamendo, nasz quiz muzyczny jest w fazie beta, a zrodlo kodowe jest dostepne na naszym google code. Zapraszamy do testowania :)

jamendogame.appspot.com/