2010-09-11 8 views

Odpowiedz

13

Przestrzenie nazw umożliwiają wdrożenie segregacji danych dla aplikacji dla wielu dzierżawców. official documentation łączy się z przykładowymi projektami, aby dać wyobrażenie o tym, jak można go użyć.

-3

Przestrzeń nazw może być używana do tworzenia różnych baz danych dla różnych użytkowników. Pomaga w tworzeniu hierarchii w bazie danych.

0

Patrząc, w kierunku tego pytania nie jest tak dobrze ocenione i odpowiedział, więc stara się dać ten.

Używając przestrzeni nazw, możemy mieć najlepszą praktykę rozdzielania klucza i wartości w danym obszarze nazw. Oto najlepszy przykład dokładnego podania informacji o przestrzeni nazw.

from google.appengine.api import namespace_manager 
from google.appengine.ext import db 
from google.appengine.ext import webapp 

class Counter(db.Model): 
    """Model for containing a count.""" 
    count = db.IntegerProperty() 


def update_counter(name): 
    """Increment the named counter by 1.""" 
def _update_counter(name): 
    counter = Counter.get_by_key_name(name) 
    if counter is None: 
     counter = Counter(key_name=name); 
     counter.count = 1 
    else: 
     counter.count = counter.count + 1 
    counter.put() 
# Update counter in a transaction. 
db.run_in_transaction(_update_counter, name) 

class SomeRequest(webapp.RequestHandler): 
"""Perform synchronous requests to update counter.""" 
def get(self): 
    update_counter('SomeRequest') 
    # try/finally pattern to temporarily set the namespace. 
    # Save the current namespace. 
    namespace = namespace_manager.get_namespace() 
    try: 
     namespace_manager.set_namespace('-global-') 
     update_counter('SomeRequest') 
    finally: 
     # Restore the saved namespace. 
     namespace_manager.set_namespace(namespace) 
    self.response.out.write('<html><body><p>Updated counters') 
    self.response.out.write('</p></body></html>') 
1

Przestrzenie nazw jest używany w Google App Engine do tworzenia Multitenant Applications. W aplikacjach wielodostępnych pojedyncza instancja aplikacji działa na serwerze, obsługując wiele organizacji klientów (dzierżawców). Dzięki temu można zaprojektować aplikację tak, aby wirtualnie dzieliła dane i konfigurację (logika biznesowa), a każda organizacja klienta współpracuje z niestandardową instancją aplikacji wirtualnej. Możesz łatwo podzielić dane na dzierżawców po prostu przez określenie unikalnego ciągu nazw dla każdego dzierżawcy. .

Inne zastosowania nazw:

  1. Compartmentalizing informacje o użytkowniku
  2. Oddzielenie danych administratora z danymi aplikacji
  3. tworząc osobne instancje magazynu danych dla testowania i produkcji
  4. uruchamiania wielu aplikacji w jednym app silnika instancja

Więcej informacji acji odwiedź poniższe linki:

http://www.javacodegeeks.com/2011/12/multitenancy-in-google-appengine-gae.html 
https://developers.google.com/appengine/docs/java/multitenancy/ 
http://java.dzone.com/articles/multitenancy-google-appengine 

http://www.sitepoint.com/multitenancy-and-google-app-engine-gae-java/