Ciao a tutti,
Vorrei sapere cosa stanno facendo gli altri per proteggere i propri script come proprietà intellettuale aziendale e se i gruppi registrano l'utilizzo degli script. La registrazione degli script è utile per vedere quali sono i nostri script più utilizzati e per indirizzare gli sforzi di conseguenza.
Il nostro metodo attuale consiste nel registrare l'utilizzo di script crittografati su un'unità di rete, il che richiede che un utente sia già autenticato sulla rete. Se lo script JMP non riesce ad accedere all'unità di rete, termina. Se ci riesce, registra le informazioni sull'utilizzo dello script, come nome dello script, nome utente e data/ora, scrivendo un file di testo nella directory di rete. Il tempo necessario per eseguire questa operazione è piuttosto lungo, a volte più di 10 secondi, a seconda della posizione dell'utente rispetto al server e delle condizioni di rete. Credo che la maggior parte del tempo sia dovuto all'operazione di scrittura del file. Dal punto di vista dell'utente, questo non è un granché... sembra che JMP stia impiegando una quantità eccessiva di tempo cercando di aprire le interfacce grafiche degli script, ma in realtà è tempo impiegato per connettersi al server e scrivere il file. Non riesco a risolvere i nostri problemi di rete e ho alcune idee per aggirare il problema, ma vorrei vedere se qualcuno di voi ha suggerimenti alternativi dopo aver letto questo articolo.
Nota: crittografiamo i nostri script per visualizzarli, ma non li crittografiamo per eseguirli.
Attuale:
- Esegui script
- Controlla se esiste un percorso di rete
- Se esiste, registra le informazioni di utilizzo (ci vuole molto tempo) e continua con lo script. Usa il comando save text file() con il testo in un file csv.
- In questo modo si verifica sia l'autenticazione che l'utilizzo del log. Se avessimo bisogno solo di verificare l'autenticazione, sarebbe sufficiente controllare se la directory esiste, e sembra essere un'operazione piuttosto rapida.
- Altrimenti, termina lo script
Proposta 1:
- Esegui script
- Se authentication_namespace non esiste (prima verifica dell'autenticazione all'interno della sessione JMP)
- Nota: "authentication_namespace" qui si riferisce a uno spazio dei nomi che può essere creato e alle variabili create al suo interno. Qualsiasi script in una sessione JMP può verificare se è stato creato o se non esiste ancora. Possiamo usare questo per creare questo spazio dei nomi dopo l'autenticazione.
- Se esiste una directory di rete (verificare che l'utente sia sulla rete aziendale)
- creiamo authentication_namespace. Potremmo creare una variabile al suo interno, ma non credo sia necessario. Ne verificheremo l'esistenza più tardi.
- Individuare il file di registrazione locale e caricare sul server tutti i dati di utilizzo degli script registrati in precedenza a livello locale.
- Eseguire questa operazione solo durante l'autenticazione riduce almeno il tempo impiegato per la scrittura a una volta per sessione JMP
- Problemi: quanti file esaminare? Li terrei in una cartella "log" nella directory predefinita per limitarmi ai nostri file di log, ma cosa succede se c'è un file corrotto? O se viene aperto separatamente da un utente? O se un utente fa doppio clic su uno script e vengono creati più file con lo stesso timestamp (che è il più recente)? O se ci sono più sessioni di JMP aperte? Una futura sessione di JMP non avrà accesso al riferimento dello spazio dei nomi, ma solo al nome che gli diamo, ecc. ecc.
- Se la directory di rete non esiste, termina, poiché l'utente non è sulla rete
- Se authentication_namespace esiste (l'utente è stato precedentemente verificato come autenticato in questa sessione JMP), registrare l'utilizzo localmente nella directory predefinita \ cartella log.
- se il file non esiste, crealo e salva le informazioni del registro
- se il file esiste, aggiungi le informazioni del registro
- (si noti l'avvertenza sopra indicata, file multipli, ecc.)
- Non è necessario trasferire le informazioni al server ora, farlo solo quando si verifica l'autenticazione la prima volta all'interno della sessione JMP
Quanto sopra è possibile, ma diventa complesso e credo che causerà problemi. Con centinaia di utenti, sarà un incubo eseguire il debug se qualcosa va storto.
Proposta 2:
Simile al nostro metodo attuale, ma la verifica della rete viene eseguita controllando se la directory di rete esiste (veloce) e la registrazione viene eseguita avviando un'attività di registrazione che JMP non deve attendere. Non sono sicuro che ciò sia possibile. JMP può avviare un'attività per scrivere su un file in remoto senza attendere il suo completamento? Questo semplificherebbe notevolmente il problema.
Fatemi sapere se avete idee alternative su questo argomento.
Grazie
Microfono
Penso che potresti avviare un'attività e non aspettare che venga completata utilizzando Run Program() .
Nel complesso, non farei questo tipo di logging perché diventa rapidamente complicato. E se proprio dovessi farlo, creerei un sistema adeguato per supportarlo (un server HTTP con API e database per l'archiviazione dei log) e userei la nuova richiesta HTTP di JMP per inviare i dati.
"si complica rapidamente" -- questo copre MOLTO terreno non tecnico.