Strumenti Utente

Strumenti Sito


documentazione_3di_riservata:extraway:extraway_server

Questa è una vecchia versione del documento!


eXtraWay Server - Documentazione Riservata

Le pagine presenti in questa sezione del manuale non devono essere diffuse alla clientela per nessun motivo1).
In esse sono presenti informazioni sulla struttura interna dei dati ed altri indicazioni su come fare uso degli strumenti o su come configurarli per aggirare limiti o regole di comportamento o per intervenire sui dati in modo trasversale al controllo su di essi esercitato dal server eXtraWay.
Non si tratta quindi di documentazione pensata per essere letta da personale non esperto e neppure da personale esperto nella configurazione di eXtraWay.

La presente pagina è in allestimento.

Manuale di Abilitazione eXtraWay

Lo scopo dell'attivazione

L'attivazione dei programmi eXtraWay viene eseguita per controllare che tali prodotti non vengano impropriamente utilizzati eludendo le licenze d'uso concordate con 3D Informatica. Oltre a questo naturale utilizzo, devono potersi realizzare applicazioni dimostrative o distribuibili in forma chiusa.

Per ottenere quanto detto sono state generate alcune modalità di abilitazione, ereditando da HighWay le basi sulle quali poggiano gli strumenti per riconoscere la validità di un'installazione su una data postazione di lavoro.

Tutte le chiavi di abilitazione sono criptate per mezzo dell'utility key32 e possono quindi essere decriptate, per interpretarle ed eventualmente intervenire su di esse, per mezzo dell'utility 32key.

Ogni chiave di abilitazione è composta da 4 parti, accoppiate in coppie di valori sottoposte alla codifica e decodifica via key32. La prima delle quattro parti rappresenta sempre il numero di licenze abilitate. La seconda, terza e quarta parte assumono un diverso significato a seconda della piattaforma (Win32 o Unix nel caso dell'abilitazione standard) o del tipo di abilitazione da attivare.

Il codice corrispondente alle quattro parti indicate si trova nel file xw.ini (applicazioni eXtraWay) ovvero nel file highway.ini (applicazioni HighWay). Il primo si trova nella directory conf, parallela a quella degli eseguibili, il secondo nella directory stessa del server HighWay. La decodifica di quei valori si ottiene applicando l'anti-algoritmo noto come 32key.exe, contrario appunto all'algoritmo key32.exe che si usa per codificare i valori

Abilitazione Standard

L'Abilitazione Standard deve poter riconoscere esattamente la postazione sulla quale si trova. Per fare questo sono stati adottati due stili differenti sulle piattaforme Win32 e Unix. In origine il sistema prevedeva di valutare sempre l'Ip Address della postazione Server per determinare se esso fosse cambiato ma ciò è stato considerato fastidioso (commercialmente capitava troppo spesso e/o troppo facilmente di perdere l'abilitazione) quindi per Win32 si è adottato un metodo differente basato sul numero di serie del disco C della macchina sulla quale si compie l'installazione, il valore, per intenderci, che si ottiene con il comando DIR e che viene indicato come Numero di serie del volume.

L'abilitazione standard viene effettuata direttamente dai server, richiedendo il numero di licenze da abilitare ed un codice di risposta che viene solitamente richiesto telefonicamente a 3D Informatica. Il codice si ottiene sottoponendo a key32 la chiave proposta dal server stesso.

Per ottenere l'abilitazione ci sono metodi diversi a seconda della piattaforma

Windows In Windows sarà sufficiente avviare, come servizio o manualmente il modulo xw (eXtraWay Server) e fare un semplice click sulla sua icona nella Tray Bar. Viene presentato un dialogo che mostra lo stato dell'installazione e presenta in esso un bottone Attiva Licenza ovvero Aggiorna Licenza a seconda che si tratti della prima abilitazione o di una successiva. Premere il bottone e seguire i passi successivi.
Linux/Unix In Unix l'abilitazione del server si ottiene richiamando il modulo xw (eXtraWay Server) con parametro '-r' (registrazione). Prima di compiere una simile operazione si può verificare lo stato dell'abilitazione del server evocandolo con parametro '-v'. Seguire i passi successivi.

L'abilitazione, una volta entrati nella procedura, si effettua seguendo questi passi. In primo luogo il server richiede il numero di licenze da abilitare. Per le licenze illimitate inserire il valore 998.

Attenzione: I sistemi Windows NT Wordstatoin, Windows 2000 Professional e Xp Home possono essere limitati, a seconda della versione del server, ad una sola connessione. In tal caso il server non richiede il numero di licenze ma passa direttamente al punto successivo. In questo caso il server va abilitato per una sola postazione poi, eventualmente, riabilitato per più posti intervenendo direttamente sul file di configurazione.

Le informazioni impostate verranno salvate in apposite voci della sezione [highway] del file di configurazione (come detto xw.ini per eXtraWay ed highway.ini per HighWay) e da lì possono essere modificate alla bisogna.

Si noti che il codice riportato nella voce Config non ha attinenza con quanto impostato all'atto dell'abilitazione ma rappresenta una codifica, spiegata meglio nei paragrafi successivi, di come sia stato abilitato il server.

Abilitazione Server Windows

L'abilitazione del server su piattaforma Win32 si compone con i seguenti 4 valori:

  1. Numero di licenze da abilitare
  2. Prima metà del numero di serie del disco C
  3. Seconda metà del numero di serie del disco C
  4. Le 9 cifre meno significative del numero di serie del Server.

Abilitazione Server Linux/Unix

L'abilitazione del server su piattaforma Unix si compone con i seguenti 4 valori:

  1. Numero di licenze da abilitare
  2. Numero corrispondente alla parte alta dell'Ip Address (due cifre superiori) (ad esempio, partendo dall'indirizzo 194.243.52.20 esso corrisponde alla sequenza 0xC2, 0xF3, 0x34, 0x14, quindi le due cifre superiori sono 0xC2F3 pari a 49907)
  3. Numero composto dalle ultime due cifre, espresse in 3 cifre, invertite e semplicemente accodate. Partendo dall'indirizzo dell'esempio precedente avremo 20052.
  4. Numero calcolato parendo dal tempo di creazione, in secondi, della directory 'hw' che viene prodotta entro la directory 'conf'. Questo valore viene poi diviso per 100.000.000 e se ne assume il resto.

Abilitazione Server Windows o Linux/Unix in Cluster

L'abilitazione in Cluster consta nel compiere un'abilitazione standard su uno dei due server che compongono il Cluster ed introdurre un'ulteriore chiave che indichi al server che, qualora ci si trovi sulla seconda macchina, la chiave di abilitazione valida per la prima deve essere considerata valida anche per la seconda.

L'effetto desiderato si ottiene affiancando alla voce diconfigurazione Config una specifica voce Alias che deve essere composta con una coppia di valori estratti dagli Ip address delle due macchine (Caso Unix) o dai numeri di serie dei due dischi C (caso Win32).

In tutti e due i casi, tanto l'Ip address quanto il numero di serie dell'uno e dell'altro disco, possono essere ricondotti ad un valore esadecimale pari ad un valore esprimibile in 4 bytes, eventualmente da rappresentare come valore negativo. Una volta calcolato il valore decimale corrispondente ai due valori esposti, sottoponendo a key32 i due valori si ottiene al voce da indicare in Alias.

Esempio Unix: Avendo una postazione server con indirizzo 194.243.52.20 esso corrisponde ai valori 0xC2, 0xF3, 0x34 e 0x14 quindi ad un valore pari a 0xC2F33414 che tradotto in forma decimale è -1024248812. Ipotizziamo ora di dover abilitare in cluster con quella appena indicata (sulla quale sia stata compiuta un'abilitazoine standard) un'altra macchina nella rete con indirizzo 194.243.52.80 (pari a 0xC2F33450 e quindi pari a -1024248752). La risposta al comando…

key32 -1024248812--1024248752

…darà il codice da impostare in Alias

Esempio Win32: Avendo una macchina con numero di serie del disco C pari a 789A-0D6f il valore corrispondente a 0x789A0D6f è 2023361903. Dopo aver abilitato in modo standard questa macchina e volendone abilitare in cluster un'altra avente numero di serie del disco C pari a 5301-AF31 (0x5301AF31 ovvero 1392619313) si dovrà evocere…

key32 2023361903-1392619313

… ed impostare il valore risultante nella voce Alias

Abilitazione a Tempo

L'abilitazione a tempo comporta l'abilitazione incondizionata del server sino ad una data stabilita, oltre la quale le funzionalità del server vengono meno e si passa alla Versione Dimostrativa. Per codificare e criptare la data voluta essa deve essere espressa in forma YYYYMMDD e deve essere sottoposta al comando di frazionamento key32bs. Questo comando viene evocato per spezzare in due parti un valore numerico compiendo una combinazione dei bytes del valore originario. I due valori ottenuti andranno a far parte della chiave calcolata partendo da:

  1. Numero licenze da abilitare
  2. Prima cifra tornata dal comando key32bs partendo dalla data di scadenza dell'abilitazione
  3. Seconda cifra tornata dal comando key32bs partendo dalla data di scadenza dell'abilitazione
  4. Il valore fisso 4 che indica il tipo di abilitazione

Esempio: Volendo abilitare un server per 10 posti sino al 31/12/2004 si sottopone il valore 20041231 al comando key32bs che torna 462 e 12559. A questo punto si calcolano i valori di key32 per la coppia 10-462 e 12559-4 ottenendo la chiave da porre nella voce Config del file di configurazione. Nel nostro caso la chiave avrà valore: 537985297-257 1343230224-1077936128

Abilitazioni Limitate

Le abilitazioni limitate sono tutte quelle che non hanno una scadenza temporale ma che non consentono di operare con archivi di dimensioni superiori ad una soglia fissata. In sostanza, il comportamento della versione dimostrativa è un particolare tipo di abilitazione limitata dove, per default, si limita l'utilizzabilità del server a 2 licenze per un massimo di 3000 unità informative per archivio.

La limitazione che è possibile imporre, con un metodo identico a quello della limitazione a tempo descritta precedentemente, comporta fondamentalmente la dimensione dell'archivio (numero di unità informative) ovvero la dimensione del vocabolario (numero delle chiavi). Il numero di documenti o il numero di chiavi va sottoposto, come nel caso precedente, al comando key32bs per frazionarlo in due parti irriconoscibili.

Limitazioni sulle dimensioni dell'Archivio

La limitazione sulla dimensione dell'archivio si ottiene combinando:

  1. Numero licenze da abilitare
  2. Prima cifra tornata dal comando key32bs partendo dal numero di unità informative massime
  3. Seconda cifra tornata dal comando key32bs partendo dal numero di unità informative massime
  4. Il valore fisso '8' che indica la limitazione per dimensione dell'archivio.

Esempio:
Volendo limitare il server per 15 licenze ad archivi con al massimo 15000 unità informative si conbineranno i valori 15-58 e 152-8 (dal momento che key32bs di 15000 da 58 e 152).
Config = 269553681-16842752 17-268435472

Limitazione sulle dimensioni del Vocabolario

La limitazione sulla dimensione del vocabolario si ottiene combinando:

  1. Numero licenze da abilitare
  2. Prima cifra tornata dal comando key32bs partendo dal numero di chiavi massime
  3. Seconda cifra tornata dal comando key32bs partendo dal numero di chiavi massime
  4. Il valore fisso 16 che indica la limitazione per dimensione del vocabolario.

Esempio:
Volendo limitare il server per 18 licenze ad archivi con al massimo 100000 chiavi si combineranno i valori 18-134 e 416-16 (dal momento che key32bs di 100000 da 134 e 416).
Config = 1114368-268435457 1073741824-17825808

Limitazione "Personal Server"

La limitazione Personal Server è in tutto e per tutto identica alla limitazione sulla dimensione dell'archivio ma aggiunge ai controlli che vengono effettuati una limitazione all'Ip Address del client che deve risultare locale. Per locale si intende il classico 127.0.0.1 o uno qualsiasi degli indirizzi della macchina, anche se piùà di uno ed anche se assegnati da un server DHCP. Differisce dal caso della limitazione per dimensione per il fatto che il valore fisso da impostare è '32' anzichè '8'.

Esempio:
Volendo limitare il server per 11 licenze ad archivi con al massimo 30000 unità informative come Personal Server si conbineranno i valori 11-117 e 48-32 (dal momento che key32bs di 30000 da 117 e 48).
Config = 286261520-16843008 0-269549568

Limitazione al file di configurazione o per CD

La limitazione vincolata al file di configurazione di uno o più archivi o alla modalità Read Only degli stessi è legata, in sostanza, al contenuto del file nomerachivio.conf.xml ed eventualmente anche al contenuto del file nomearchivio.stat.xml. Nel primo caso, ovvero in caso di sola configurazione d'archivio, l'abilitazione viene regolata sulla base del solo .conf.xml e l'archivio può essere elaborato aggiungendo o modificandone il contenuto.
Nel secondo caso, ovvero quando entra in gioco anche il file .stat. xml, l'archivio non è più modificabile, o meglio, alla prima modifica che viene apportata al file .stat.xml l'archivio non è più accessibile.
Le abilitazioni che conducono a questo comportamento del server differiscono da tutte le altre in quanto la chiave di abilitazione deve prevedere esclusivamente il valore fisso '64' per l'accesso vincolato al solo file di configurazione ed il valore fisso '128' per l'accesso vincolato anche al file .stat.xml. Come nei casi precedentemente visti la chiave di abilitazione viene creata unendo 4 parti numeriche ma in questo caso solo la prima e l'ultima sono significative, le altre possono (e diciamo per futuri sviluppi devono) essere nulle. Avremo quindi la chiave ottenuta dalla combinazione del numero di licenze, due valori nulli ed il codice fisso che indica la modalità d'accesso.

Esempio:
L'attivazione per archivi auto protetti con vincolo al solo file di configurazione per 5 posti viene dalla di 5-0 0-64 mentre la stessa abilitazione per archivi non modificabili viene dalla key32 di 5-0 0-128.

Una volta fatto quanto detto si deve produrre per ogni archivio che si intende auto proteggere una chiave di abilitazione che consenta di accedere all'archivio stesso e che lo segue in un file nomerachivio.licence. Il formato di tale file avrà il seguente aspetto:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE xwconf SYSTEM "http://www.3di.it/extraway/xwconf_20031128.dtd">
<xwconf>
   <section name="licence">
      <profile type="autoconf" value="CAB4E20DE5175730D2D783FD48FC0BFD"/>
   </section>
</xwconf>

ed il valore da indicare all'interno di questo file va richiesto a 3D Informatica e prodotto tramite il modulo xwpasswd.

Gli Archivi

Il file di struttura

Ogni archivio eXtraWay ha come perno centrale un file di struttura che dichiara i contenuti e regola tutti i files che appartengono all'archivio.
Dalla versione '23' del server si adotta una struttura binaria del file per ragioni legate alle prestazioni ed alla sicurezza del file stesso (in alcune versioni ed in alcune condizioni limite s'è letteralmente perso il contenuto del file stess) mente in precedenza esso era un file dal contenuto XML.

Soffermiamoci a parlare di queste due modalità in quanto quasi tutto quanto dichiarato nel file XML trova collocazione anche nel file binario che descriveremo.

Ogni struttura archivio indica una serie di valori. Parte di questi valori ha un significato che s'è perso nel tempo e che è stato introdotto per compatibilità con strumenti di una tecnologia passata. Essi verranno man mano rimossi e vengono indicati in questa sede in colore grigio.

LabelValore
attrSi riferisce agli “attributi” dell'archivi, ovvero quelle che si potrebbero considerare le sue capabilites. Ha un valore fisso, pari a 2011. Viene espresso in valore esadecimale ed in realtà indica il valore 8209.
l_accessLivello d'autorizzazione richiesto agli operatori per poter accedere all'archivio. Obsoleto, valore 100.
l_eraseLivello d'autorizzazione richiesto agli operatori per poter cancellare documenti nell'archivio. Obsoleto, valore 100.
l_configLivello d'autorizzazione richiesto agli operatori per poter modificare la configurazione dell'archivio. Obsoleto, valore 100.
docsNumero documenti fisici presenti nell'archivio. Questo numero comprende anche gli eventuali documenti cancellati.
erasedNumero documenti fisici cancellati.
indexedNumero documenti fisici indicizzati. Questo valore è normalmente corrispondente a quello di docs ma può eventualmente essere inferiore ad esso. In tal caso, parte delle funzionalità del sistema potrebbe non essere disponibile2).
findexedNumero dei documenti fisici per i quali sono state realizzate le chiavi secondarie, se e laddove configurate. Il valore non può essere superiore a quanto indicato da indexed e quindi a sua volta sarà al valore di docs. Trattandosi di chiavi secondarie non si hanno impatti significativi sulle funzionalità del sistema se non per alcune attività di ricerca.
keysNumero delle chiavi complessive3) rilevate nei documenti indicizzati.
main_serialIn caso di archivi che utilizzino una regola di distribuzione di tipo single, questo contatore server ad enumerare il prossimo4) file XML che verrà generato.
timestampIndicazione dell'ultima operazione modificante effettuata sull'archivio. Si esprime in anno, mese, giorno, ora, minuto, secondo e millisecondo.

Questi valori, opportunamente combinati tra loro, producono un checksum che consente di verificare che nel file XML non siano stati fatti interventi manuali non autorizzati. Tale checksum si trova nell'attributo global dell'elemento crc ed è espresso sotto forma di impronta MD5 di un valore composto da quelli elencati. In caso di intervento manuale nel file, si deve ricalcolare tale Checksum5).

Oltre a quanto indicato il server ha una serie di indicatori di stato che assumono diversi valori.

Tipo di StatoDescrizione
idxverIndica la versione del file IDX. Se assente o con valore pari a '0' si indica il BTree storico, con nodi di 512 bytes. Se assume il valore 1 ci si riferisce al BTree modificato con nodi da 4Kb configurabili sino a 64Kb. In seguito, con l'adozione del B+Tree6), questo valore presumibilmente verrà rimosso.
statusSi tratta di un valore a bits che vanno interpretati come segue:
0x00000001Indica che l'archivio è stato sottoposto a Validazione. Ciò comporta che una figura che ne ha l'autorità, ha stabalito che esso è valido per essere pubblicato. Ovviamente, qualsiasi intervento modificante per l'archivio causa il decadimento di questo stato. Si applica, solitamente, in presenza di Back Office e Front Office distinti in cui l'aggiornamento di questi ultimi debba avvenire in modo controllato ed ancor di più se essi risultano essere in batteria7).
0x00000002Indica che la mappa dell'archivio è stata sottoposta a compattamento per migliorare spazio occupato e performances.
0x00000004Indica che gli indici dell'archivio sono stati sottoposti a compattamento per migliorare spazio occupato e performances.
0x00000008Indica che l'archivio è stato sottoposto ad un blocco globale di sola lettura. Ciò comporta che a nessun operatore, indipendentemente dai diritti ad essi assegnati, potrà compiere operazioni modificanti per l'archivio8). La loro attività verrà limitata alla sola consultazione.
0x00000010Analogamente al caso precedente, indica che l'archivio è stato sottoposto ad un blocco globale di tipo amministrativo. Oltre alle limitazioni di sola lettura non saranno ammesse altre operazioni e quindi verrà negata anche la consultazione. Viene usato in particolari casi di amministrazione straordinaria.
0x00000020Indica che l'archivio è stato sottoposto a calcolo e conservazione dei Titoli Esterni9). Nelle versioni più recenti del server10) questo flag diviene meno importante in quanto tutta la gestione dei Titoli è stata snellita e modificata.
0x00000040Indica che gli XML che compongono i veri dati dell'archivio sono stati compattati. In questo caso il compattamento comporta l'eliminazione di spazi vuoti dovuti a documenti cancellati o più semplicemente spostati. I documenti residui vengono riscritti nei files XML applicando loro il dovuto spazio per le successive correzioni. Si può compiere anche un compattamento stretto che elimina lo spazio in eccesso. Esso si presta principalmente per le applicazioni distribuite su supporto ottico.
0x00000080Indica che quest'archivio è composto da files XML che potrebbero essere modificati da strumenti esterni. In tal caso il concetto di Monitoring consiste nella capacità di verificare quali files sono cambiati senza che sia stato compiuto un'intervento a livello di server eXtraWay per provvedere dinamicamente alla ricostruzione o integrazione della mappa dei documenti. Questa funzionalità verrà rimossa quanto prima possibile
0x00000100Indica che la costituzione degli indici dei valori che ospitano i campi data possono comprendere anche un'indicazione di 'tempo' e che per essa viene realizzato un set di chiavi apposito.
0x00000200Indica che gli indici dell'archivio sono corrotti. Questo si verifica quando l'inserimento o modifica di un documento causa un problema in costituzione/modifica degli indici. In presenza di questi bit alto, il server si rifiuta di compiere una serie di attività tra le quali l'inserimento di nuovi documenti o allegati che prevedano l'assegnazione di un valore seriale in quanto il server non sarebbe più in grado di verificarne la necessaria univocità.
0x00000400Indica che l'indicizzazione degli attributi viene svolta in una modalità semplificata e quindi con un diverso calcolo delle posizioni dei singoli termini estratti dal documento. Ciò comporta un risparmio in termini di dimensioni delle catene dei riferimenti e può comportare un minor carico computazionale in modifica di un documento. Trattandosi di due modalità diverse di fare la stessa cosa è necessario che il server tenga traccia di quale metodo è in uso in un determinato archivio.
0x00000800Indica che la costituzione degli indici per il campo UD non tiene conto delle posizioni che, di fatto, sono del tutto inutili. Come nel caso precedente i benefici sono tangibili in quanto a spazio occupato dalle catene dei riferimenti ed in performance in sede di modifica dei documenti.
0x00001000Indica che per l'archivio in essere si fa uso esclusivo di un respository esterno dei dati
0x00002000alternateioalso
0x00004000wrong second index
0x00008000blind mode
1)
3D Informatica non ha reali segreti industriali che potrebbero essere svelati con questa documentazione, ma il rischio che si cela nella diffusione di queste informazioni è forse più serio: gli utenti con un minimo d'esperienza potrebbero decidere di intervenire autonomamente sui dati creando danni anche irreparabili o aggirando regole che renderebbero impossibile, ad esempio, ricostruire rigorosamente la cronistoria degli eventi occorsi
2)
Aggiunta di allegati o inserimenti di nuovi documenti sono ad esempio negate in tale condizione
3)
Primarie e Secondarie
4)
Registra l'ultimo valore assegnato quindi il successivo sarà quello indicato +1
5)
Avvalendosi del tool xwpasswd
6)
In fase di sperimentazione
7)
In tal caso si prenda in esame il modulo “xwsprd - eXtraWay Spreader”
8)
Ad eccezione di attività amministrative svolte dall'utente di alto livello che ha impostato tale locking
9)
Essi sono una sintetica rappresentazione dei documenti utilizzata per visualizzazione sintetica delle selezioni, ma rappresentano spesso per le applicazioni stesse una cache dei contenuti da utilizzare ai fini applicativi. Il server si avvale di tale cache anche per attività quali l'ordinamento dei documenti quando possibile
10)
A partire dalla '22'
/data/attic/documentazione_3di_riservata/extraway/extraway_server.1257769655.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)