Data ultimo aggiornamento: 25/01/2018

Clicca per accedere al sito di NTS Informatica
Clicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomento
Clicca per accedere al sito di NTS Informatica

Ambienti terminal server, cloud

L'utilizzo di Business CUBE in Terminal Server/Remote App, tipicamente in infrastrutture Cloud, presenta di solito le seguenti problematiche:

  • una volta eseguila la generazione di un file di Microsoft Word (NdR. usando i modelli .DOTX la generazione avviene anche se sulla macchina NON è installato Microsoft Word, al contrario dei modelli .DOT che invece richiedono obbligatoriamente la presenza del programma Microsoft) deve venir aperto il programma Word per, eventualmente, manipolare il file da parte dell'operatore: qui nasce il problema quando sul server terminal NON è presente Word per una scelta di tipo commerciale;
  • sfogliare la rete, salvare un file su disco, aprire un file, con le classiche finestre di dialogo di Windows, si ha accetto alle risorse disco della macchina server remota; il desktop è quello del server (tra l'altro non accessibile se l'applicazione è avviata come Remote App) e non quello della macchina client dell'operatore. Per l'utente 'medio' è molto difficile capire la differenza tra directory locale e directory remota con una Remote App;
  • le stampe dirette su stampante che si lanciano dalla Remote App alla stampante locale sono molto lente, anche in funzione del tipo di rete geografica o meno e dalla qualità, che si ha tra la macchina server remota e la postazione di lavoro client.

Per risolvere questi tipi di problematiche è stato realizzato uno strumento (il Busexec.exe) che consente di lavorare in modo trasparente facendo sì che, ad esempio, quando viene generato un file .DOCX sul server questo viene aperto con l'applicazione Microsoft Word installata localmente sulla postazione di lavoro e non sulla macchina server; le stampe dirette su stampante vengono fatte fluire sul client come file .PDF seguite dalla contestuale stampa sulla stampante locale.

Poter aprire il file con il programma installato sul client, non sul server terminal:

Per operare correttamente il client che si collega al server tramite terminal server o remoteapp deve condividere almeno un disco locale e poter raggiungere il file che si vuole far aprire con il programma installato lato client.

Nota tecnica: se condivido i dischi locali del pc client di terminal server, per accedere al disco c del client devo scrivere \\tsclient\c\ per il disco z:\tmp devo scrivere \\tsclient\z\tmp

Sul client in locale dovrà girare il programma BUSEXEC.EXE, che deve essere installato obbligatoriamente in C:\, ovvero una volta installato il programma deve essere in c:\busexec\busexec.exe.

Questo programma controlla ogni secondo se c'è un file nella sua subdir c:\busexec\tmp che inizia per "busrunxxxx.txt": se c'è ne legge il contenuto (ovvero il nome del file da aprire) e cancella il file. Poi cerca di far aprire il file. Questo programma dovrà essere fatto partire in automatico una volta che l'utente si logga in windows con le operazioni pianificate di windows. Quando questo programma è in esecuzione, nell'area vicino all'orologio di windows appare una icona. Cliccandoci sopra sarà possibile chiudere il programma.

Lato Business, dovranno essere configurate 2 opzioni di registro per fare in modo che, una volta generato il file, venga scritto nella dir remote del client il file "busrunxxxx.txt". Queste opzioni di registro hanno come parte iniziale della proprietà il nome del pc client (nell'esempio 'PC-MENGOZZI').

Particolarità/limiti

Potrò far aprire il file dal programma in locale al pc client solo se il file è raggiungibile dal client, per cui il file dovrà essere salvato in una dir che inizia con "\\" (es \\server\bus\office\a.pdf, oppure \\tsclient\c\bus\office\a.doc). In caso contrario Business farà aprire il file con il programma installato sul server.

Ovviamente nell'opzione di registro di configurazione di questo sistema di comunicazione andrà indicato il percorso per far scrivere dal server il file "busrunxxxx.txt". L'opzione dovrà avere sempre il valore \\tsclient\c\busexec\tmp\.

La directory c:\busexec\tmp deve essere scrivibile dal server.

Prima di segnalare al busexec di aprire il file, buscube verifica se il busexec è in esecuzione. Per farlo, busexec creare un file nella c:\busexec\tmp nominato busexec.cpu e lo tiene aperto fino a che il busexec non si chiude. Business verifica che questo file sia presente e non sia modfiicabile perché aperto dal busexec.exe. Se si è in queste condizioni, Business avvisa il busexec di aprire il file con il programma installato localmente.

Non c'è possibilità di indicare quali file aprire con applicazioni lato client e quali lato server. Se attivato questo automatismo, i programmi 'oggetti ole', 'generazione file pdf', 'stampa su word' cercheranno di aprire il file con il programma installato sul client (se ci si riesce).

Se sul client non è installato il programma per gestire il file (es non è installato winword), ma è in esecuzione busexec.exe, il file "busrunxxxx.txt" verrà comunque rimosso (per cui Business non cercherà di aprire il file con il programma installato sul server) e lato client verrà mostrata la form di windows per scegliere con quale programma visualizzare il file.

Per ora implementato su BN__AOLE, BNPDGENP e BN__STWO.

Miglioramenti in fase di apertura file / salvataggio file / selezione directory

In teminal server la stampa diretta su carta è un problema. Per la selezione della stampante non ci sono problemi di performance, ma quando poi si fa partire la stampa, il flusso dati è talmente alto che il sistema rallenta un sacco.

In questo caso (ovvero stampa diretta su carta) la soluzione è quella di generare un file .PDF, scaricarlo in locale sul pc client e far partire la stampa direttamente dal client sulla stampante scelta, senza obbligare ad installare acrobat sul client.

Il sistema opera solo se si entra in Businesss con terminal server o remoteapp.

Il sistema opera solo se si sceglie come stampante una stampante che il client riesce a "vedere": ad esempio, se sul server è installata la stampante "OKI-AA", ma il client non ha questa stampante configurata (oppure il nome stampante è diverso rispetto a quanto scritto sul server terminal) il sistema verrà ignorato.

Per farlo, occorre settare 2 opzioni di registro:

BUSINESS\TERMINALSERVER\OPZIONI\nomepc_StampaUsaBusexec=S

BUSINESS\TERMINALSERVER\OPZIONI\nomepc_TmpDir=\\tsclient\c\busexec\tmp (NB: QUESTO VALORE AL MOMENTO E' SEMPRE FISSO!)

Sul client, occorre installare BusExec.exe e PrintPdf.exe (che dovrà essere presente nella stessa dir di busexec). Busexec, come da setup, può essere installato solo in c:\.

Per ora il sistema funziona con stampa diretta su stampante. Se si fa anteprima video, poi stampa, il sistema non utilizza questa metodologia di lavoro, questo per evitare che se sul client non gira BusExec, non uscirebbero più le stampe, invece lasciando la stampa diretta da anteprima a video come ora si ha un secondo modo di avere le stampe e quindi una maggiore possibilità di evitare di bloccare il cliente.

 
 
Clicca per accedere al sito di NTS Informatica