Gerenciando Arquivos em um Cluster de Server Farm
Existem três tipos de recursos em uma aplicação uniGUI:
Recursos estáticos
Recursos dinâmicos na pasta global da aplicação
Recursos dinâmicos na pasta local da sessão
Recursos estáticos
Estes são arquivos que estão estaticamente disponíveis em seu servidor. Exemplos: biblioteca Ext JS, vários outros arquivos JavaScript, temas, arquivos JS e CSS de terceiros e arquivos colocados na pasta /files da sua aplicação.
A maioria desses arquivos será instalada em seu servidor ao instalar o uniGUI Runtime e o uniGUI Theme Pack. Principalmente, você deve instalar esses recursos no PC onde o HyperServer master é executado. Instalar o uniGUI Runtime e o uniGUI Theme Pack nos ServerNodes é opcional. O único caso em que você precisa instalar esses recursos em cada ServerNode é quando deseja testar localmente sua aplicação web individualmente em cada ServerNode.
Arquivos estáticos que você deseja compartilhar sob /files devem ser mantidos na pasta /files do seu HyperServer master. As pastas /files dos ServerNodes não são acessíveis por uma URL externa, portanto quando uma sessão web tenta acessar um arquivo na URL http:/domain/files/common.pdf, o uniGUI HyperServer procurará na pasta /files do master para encontrar o arquivo chamado common.pdf.
Não use a pasta /files para criar conteúdo dinâmico, pois as pastas /files dos ServerNodes não são acessíveis por uma URL externa. Em geral, pastas globais como /files nunca devem ser usadas para criar arquivos dinâmicos. Fazer isso pode causar problemas de concorrência a menos que você use um mecanismo de bloqueio para proteger o conteúdo criado dinamicamente. O lugar correto para criar e salvar conteúdo dinâmico de uma sessão é a pasta local da sessão.
Recursos dinâmicos na pasta de cache global da aplicação
A pasta de cache global é o local onde recursos comumente usados são criados dinamicamente. Isso é feito automaticamente pelo uniGUI. Normalmente, você não precisa criar arquivos na pasta de cache global. O uniGUI usa mecanismos especiais de bloqueio para evitar problemas que possam surgir do acesso concorrente ao mesmo recurso enquanto ele está sendo criado. O HyperServer master é capaz de localizar e encaminhar esses recursos ao cliente requisitante mesmo que eles residam em um ServerNode remoto.
Use estes métodos para acessar informações do cache global:
UniServerModule.GlobalCachePath— obtém a pasta de cache global para sua aplicação.UniServerModule.GlobalCacheURL— obtém a URL do cache global.
Recursos dinâmicos na pasta de cache local da sessão
A pasta de cache local é usada pelo uniGUI para criar e manter recursos que não são compartilhados entre sessões. Recursos colocados na pasta de cache local são privados e só podem ser acessados por essa sessão. O cache local é o local correto para criar arquivos temporários que pertencem à sessão atual. O HyperServer master é capaz de localizar e encaminhar esses recursos de cache local aos clientes requisitantes mesmo que residam em ServerNodes remotos.
Use estes métodos para acessar informações do cache local:
UniServerModule.LocalCachePath— obtém a pasta de cache local para a sessão atual.UniServerModule.LocalCacheURL— obtém a URL do cache local.UniServerModule.NewCacheFileUrl— obtém um nome de arquivo de cache local único que você pode usar para armazenar diversos arquivos.
Assinatura da função:
Exemplo — obtenha um nome de arquivo de cache local para criar um arquivo PDF:
O parâmetro var retornado AUrl pode ser usado para redirecionar uma aba do navegador ou um frame do navegador para exibir o arquivo PDF.
Para mais detalhes sobre como criar arquivos de cache local, revise as demos do FastReport ou do Report Builder.