2009-07-18 15 views
8

Obecnie tworzę aplikację Java w Google AppEngine (GAE), ale z powodu wielu ograniczeń mają obawy, że będę musiał przejść z GAE na mój własny serwer, na którym działa Glassfish (lub w razie potrzeby mogę skonfigurować dowolny inny serwer). Planuję także uruchomić bazy danych Oracle lub MySql. Co muszę zrobić, aby przełączyć się z GAE na mój serwer? Czy muszę przepisać mój kod? Czy powinienem nadal używać Datanucleus lub przełączać się na coś innego? Coś jeszcze?Przełącz się z Google AppZostań na inny serwer

+1

tylko z ciekawości, co było głównym ograniczającym czynnik gae, który nie działał dla ciebie? –

+0

1) Ograniczenie rozmiaru pliku 2) Niektóre funkcje JEE5 3) Baza danych (chciałbym używać Oracle lub MySql) 4) Kontrola nad moją infrastrukturą serwerową Są to cztery główne. Nie zdecydowałem jeszcze, czy chcę się przełączyć, tylko zbieram informacje i decyduję. – Maksim

Odpowiedz

4

Nie będziemy w stanie udzielić bardzo dobrej rady, nie wiedząc, jak napisałeś swoją aplikację. Czy utworzyłeś warstwę dostępu do danych, która oddziela twój dostęp do bazy danych od logiki biznesowej? A może przesyłasz obiekty specyficzne dla silnika aplikacji w każdym miejscu? Czy korzystasz z usługi użytkownika GEA? lub memcache?

Pierwszą rzeczą, którą powinieneś zrobić, to przejrzeć wszystkie swoje instrukcje importowania. Za każdym razem, gdy zobaczysz tam com.google.something, musisz to zmienić. Nie podałeś wielu szczegółów na temat tego, jak napisałeś swoją aplikację, ale jeśli pytasz o datanukleus, prawdopodobnie korzystałeś z JDO lub JPA, co oznacza, że ​​możesz ponownie wykorzystać większość swojej warstwy danych. Możesz mieć kilka kluczowych pól, które będziesz musiał zmienić, a może kilka adnotacji specyficznych dla gae. Prawdopodobnie będziesz musiał dwukrotnie sprawdzić, w jaki sposób traktujesz transakcje, ponieważ prawdopodobnie jest inaczej w bazie danych SQL, która nie używa grup encji takich jak GAE.

6

Dlaczego nie zastosować informacji podanych w oryginalnym ognisku Google? Firma IBM przedstawiła sposób uruchomienia aplikacji AppEngine przy użyciu DB2. Po prostu upuścili słoik datanucleus-rdbms w zmiennej CLASSPATH, zmienili adres URL połączenia itp. I uruchomili go. Podobnie jak w tym PDF http://download.boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/GAE_Java_Interoperability.pdf

--Andy (DataNucleus)

+1

Wow. To super. Zaimplementowali usługi User i UrlFetch. Poza konfiguracją, jedynymi prawdziwymi zmianami kodu są refaktoryzacja pewnych typów kluczy i zmiana instrukcji importowania. –

Powiązane problemy