Ivano ha scritto:
Se ricordo bene ci fu' qualcuno che provo anche a realizzare una
web-application che tramite un fork chiamava word, eseguiva dei lavori
con visual-basic e restituiva i risultati.
Ciao,
io so che c'è chi lo fa, non con Word, ma è pur sempre un exe anche se
di una applicazione di una azienda molto famosa nel GIS (che fa
software proprietari), e aggancia il tutto via web con asp/php. Il
tutto in barba alle licenze software. Licenze che spesso vietano
appunto questi utilizzi, specie se la software house distribuisce
anche prodotti server.
Ciao
L'aspetto della violazione di licenza e' un altro aspetto.
Li' la questione diviene complessa.
Se ad esempio si prende un applicativo come arcgis e per ipotesi si facesse una web-application che lo usasse per effettuare analisi spaziali, restituendo i risultati via internet.
Poiche' la licenza di arcgis e' basata sull'utente.
La violazione e' implicita. E non so' se eventuali meccanismi che permettano l'accesso a un solo utente per volta possano risolvere il problema.
Ma questo problema non e' limitato alle web application.
Infatti in altro ambiente ove questi problemi di licenza sono trascurati ma ci sono eccome e' quello degli ambienti multi-utente.
Con i softwares di accesso remoto ad esempio si accede a una macchina come se si fosse presenti sul posto.
Se sulla macchina e' installato un software ad accesso single-user, ovviamente, ogni utente di tale macchina lo potrebbe usare, e la contemporaneita' e' evidente. Per cui e' sempre una palese violazione del licensing.
Io pero' preferivo soffermarmi sull'aspetto tecnico, ove e' interessante il problema dell'utilizzo delle risorse e dell'isolamento tra gli utenti. Come fare per evitare che l'utilizzo di un software da parte di un utente ne limiti l'utilizzo da parte di altri.
E non e' solo un problema di licenze.
Ad esempio:
se il software apre in modalita' esclusiva e magari in lettura/scrittura uno shapefile, come gestire un evento analogo e contemporaneo da parte di un altro utente?
Li' i DB aiutano, ma non tanto di piu'.
E qui pongo una domanda a chi ne sa' di piu' di postgres:
Postgres e' in grado di effettuare un lock a livello di record o lo effettua solo a livello di tabella ?
Certo nel primo caso il compito e' piu' facile, visto il minor rischio di collisioni. Pero' esiste sempre. E per questo occorre gestirle.
E nella gestione va tenuto conto anche che un ambiente come internet e' session-less ovvero la sua grande differenza e' che in un ambiente desktop vero, con l'utente davanti al computer,
il software si collega al DB e rimane collegato per tutto il tempo che serve per il lavoro (1 ora o 10 ore).
In questo lasso di tempo la risorsa e' lock-ata in esclusiva e nessuno interferisce.
Su internet l'ambiente e' session-less ovvero la sessione dura lo spazio di 10,20 secondi quando dura tanto .
Poi tutto si chiude, compreso il collegamento al server DBMS e quindi il lock esclusivo non serve praticamente a niente.
E non finisce qui, infatti ad esempio si potrebbe anche dire che gli ambienti desktop non implementano soluzioni come i connection-pooling per velocizzare l'avvio di una colloquio con un dbms.
Perche' ovviamente non ne hanno bisogno non sono progettati per aprire e chiudere connessioni in continuazione, ma aprirne 1 e tenerla aperta per ore.
Per queste e per altre considerazioni analoghe dico che l'uso di applicazioni desk per sistemi web mi lascia sempre un po' perplesso e dubbioso.
Ciao,
Andrea Peri.