A API Namespaces no Google App Engine facilita a compartimentação dos seus dados do Google App Engine. Esta API é implementada através da função appengine.Namespace
e está incorporada em determinadas APIs com espaço de nomes.
Quando define um espaço de nomes no gestor de espaços de nomes, estas APIs obtêm o espaço de nomes atual e usam-no globalmente. Pode declarar explicitamente um espaço de nomes localmente, mas tem de ter cuidado ao declarar espaços de nomes explicitamente, porque pode criar inadvertidamente fugas de dados e outros erros. Qualquer pedido do App Engine pode aceder a qualquer espaço de nomes, deixando à aplicação a aplicação de uma política de controlo de acesso em todos os espaços de nomes.
Pode usar a API Namespaces para criar uma vasta gama de aplicações. Uma das utilizações mais convincentes desta API é para aplicações multi-inquilino, conforme descrito abaixo.
Acerca da multitenancy
Multitenancy é o nome dado a uma arquitetura de software em que uma instância de uma aplicação, executada num servidor remoto, serve muitas organizações de clientes (também conhecidas como inquilinos).
A utilização de uma arquitetura multi-inquilino simplifica a administração e o aprovisionamento de inquilinos. Pode oferecer uma experiência do utilizador mais simplificada e personalizada, bem como agregar diferentes silos de dados num único esquema de base de dados. Como resultado, as suas aplicações tornam-se mais escaláveis e mais rentáveis à medida que as escala. Os dados tornam-se mais fáceis de segregar e analisar em vários inquilinos porque todos os inquilinos partilham o mesmo esquema de base de dados. Os diferentes grupos de utilizadores veem conteúdo personalizado integrado numa aplicação mais eficiente.
Criar uma aplicação multiinquilino com a API Namespaces
Com a API Namespaces, pode particionar facilmente os dados entre inquilinos, especificando simplesmente uma string de espaço de nomes exclusiva para cada inquilino. Basta definir o espaço de nomes para cada inquilino globalmente através do gestor de espaços de nomes (em vez de o definir explicitamente para um pedido específico). As APIs com espaço de nomes ativado usam sempre este espaço de nomes atual por predefinição.
A API Namespaces está integrada com o Google Workspace, o que lhe permite usar o seu domínio do Google Workspace como o espaço de nomes atual. Uma vez que o Google Workspace lhe permite implementar a sua app em qualquer domínio que possua, pode definir facilmente espaços de nomes únicos para todos os domínios associados à sua conta do Google Workspace.
Ao criar aplicações multiinquilinas, tem de impedir a fuga de dados entre espaços de nomes. Para mais informações, consulte o artigo Evitar fugas de dados.
APIs do App Engine que usam espaços de nomes
Atualmente, o App Engine suporta espaços de nomes nas seguintes APIs:
Projetos de exemplo que usam espaços de nomes
São fornecidas duas aplicações de livro de visitas de amostra que usam espaços de nomes:
- Python App Engine: appengine-multitenancy – Uma aplicação de livro de visitas de amostra com reconhecimento de espaço de nomes.
- Java App Engine: appengine-gwtguestbook-namespaces-java – Uma aplicação de livro de visitas de exemplo com reconhecimento de espaços de nomes que usa o GWT.
Outras utilizações da API Namespace
Embora a API Namespaces permita a multilocação no App Engine, tem várias outras utilizações, incluindo:
- Compartimentalizar informações do utilizador
- Separar os dados de administrador dos dados da aplicação
- Criar instâncias de armazenamento de dados separadas para testes e produção
- Executar várias apps numa única instância do App Engine