Newsgroup: it.comp.lang.delphi
Titolo: Rete e sicurezza

Ciao a tutti,
    ho letto il post "connessione a db remoto" e sono nati dei dubbi su come 
poter lavorare su di un db in rete (lan).
Premesso che ho una marea di limiti, ne senso che non sono 
diplomato/laureato in informatica e che quel poco che e' tutto autodidatta 
(letture, applicazioni) nel poco tempo che, lavoro e famiglia, mi rimane a 
disposizone. Detto cio' ho un programma che gira su server in una data 
directory, al server sono collegate n utenze e su queste n utenze c'e' il 
collegamento che fa girare il programma.
Il collegamento e' del tipo \\Server\Nome_ Programma\Programma.Exe
Una volta lanciato da remoto, all'intenro del programma, tutte le operazoni 
di data base puntano a quella directory dove si modicano, aggiungno, 
cancellano record giorno dopo giorno.
Considerato il commento di Alberto, dove dice senza mezzi temrini che una 
cosa del genere e' da evitare in tutti i modi, com'e' possibile lanciare 
un'applicazione residente su server da pc remoto???
Per il momento il problema e' arginable perche' la rete non e' aperta 
all'esterno (web) ma lo poterbbe diventare, quindi meglio sapere prima che 
poi !!!!
Mi scuso per la domanda che in risposta chiede un ragionamento, ma dati i 
miei (scarsi) limiti mi sono visto costretto a questa chiaccherata, anche 
perche' la fame di sapere mi sta portando sempre di piu' alle applicazioni 
web (gia'.... il tutto e' nato dalla semplice domanda .... "ma come fanno 
quelli a fare questo ??"), ma questo e' un altro post !!!!
Grazie a tutti coloro che troveranno il tempo di aiutarmi a fugare questi 
dubbi.
Ciao, Daniele 
__________ Information from ESET Smart Security, version of virus signature database 3958 (20090324) __________
The message was checked by ESET Smart Security.
http://www.eset.com

 
Non lo fai.
La tua aplicazione è un Client che invia richieste al Server il quale le
invia i dati, senza cartelle condivise.
Questo usando un database appropriato (Firebird,MySql...)
Mario

 Questo usando un database appropriato (Firebird,MySql...)
e' qui che salta fuori la mia carenza, ma com'e' possibile fare una 
richiesta al server e poi avere la risposta ????
Esistono degli esempi in rete da poter studiare ??? (assumendo di utilizzare 
firebird o mysql), infine quando si installa il software e' necessario anche 
installare firebird-mysql ???
Possono sembrare domande buttate li cosi', ma per me sono argomenti nuovi 
!!!
Grazie ancora
Ciao, Daniele
__________ Information from ESET Smart Security, version of virus signature database 3960 (20090325) __________


Il Wed, 25 Mar 2009 07:56:42 +0100, Daniele ha scritto:
Allora , rapidamente, prova questa ricetta 
ingredienti:
2 PC, 1 DB 
http://www.firebirdsql.org/index.php?op=files&id=engine_211
,
1 Delphi.
si può usare per comodità un solo PC che fa da server e ospita
l'aplicazione Client
installare DB , ed eseguire, a questo punto il server è in ascolto delle
eventuali richieste.
Apri IDE delphi ed utilizzare i componenti dbexpress
http://delphi.about.com/gi/dynamic/offsite.htm?zi=1/XJ&sdn=delphi&cdn=compute&tm=3&f=22&su=p284.9.336.ip_p504.1.336.ip_&tt=2&bt=0&bts=0&zu=http%3A//conferences.codegear.com/article/33217
servire calda ;)
mario


Ciao sembra più complicato di quello che sembra.
In parole povere ci saranno due programmi che girano.
Il primo viene installato sul server, e parte automaticamente all'avvio del 
PC
E' il database server che avrà sostanzialmente tre caratteristiche:
    a. un indirizzo IP del PC su cui è installato
    b. una porta su cui rimane in ascolto delle richieste dei PC client
    c. una cartella sul server NON CONDIVISA su cui risiedono gli archivi
Il secondo è il TUO programma che non accederà alla cartella x del server y 
ma
inoltrerà le sue richieste ad un certo indirizzo IP e ad una certa porta 
(quelle del server)
Il DB server riceverà la richiesta, verificherà le credenziali (login e 
password) ed eseguirà
le richieste provenienti dal tuo programma.
Il tuo PC utilizzerà per tutte le operazioni sui dati delle opportune 
richieste SQL.
Ciao
C. 

 un'applicazione residente su server da pc remoto???
La domanda si basa su presupposti errati in quanto DA PER SCONTATO che
quello
che descrivi sia l'unico modo di lavorare, cosa non vera. Ti faccio un
esempio cretino...
Tu vai sul web, giusto? Quando usi google di fatto interroghi un
"qualcosa" che somiglia ad una base di dati, ok?
Bene...Mica ti connetti ad una cartella condivisa su qualche server di
google, giusto?
Questo perchè esiste una applicazione, il WEB SERVER, al quale tramite
un client, nel caso specifico Firefox, tu invii
delle richieste e lui risponde.
Lo stesso principio vale per i database client/server.
In una lan hai un server dotato di hw ultrapotente sul quale installi
il SERVER di Oracle, per esempio...
Ma potrebbe essere Sybase, Db2, ForeBird, Postgres....
Poi, sui pc client installi il CLIENT di Oracle.
Questa modalità di lavoro non richiede cartelle condivise..
A prescindere dai diritti dell'utente che so collega al db etc etc,
gli basta che ci sia un protocollo di rete, tipicamente TCP/IP,
funzionante
che permetta ai client e al server di scambiarsi dati.. Tutto qua.
Il "prezzo" da pagare è che salvo qualche eccezione e salvo
peculiarita specifiche del database che usi, ti tocca installare un
client di database sui tuoi pc, operazione per altro non
particolarmente complessa.
Una eccezione tipica è SqlServer, di sicuro fino alla versione 2000,
i  quanto il client è integrato in MDAC.
In un contesto WAN, la cosa si complica un pochino.
Puoi usare una VPN e quindi chi sta "fuori" alla lan è come si fosse
"dentro" la lan.
Potresti avere il server database installato su una macchina con IP
pubblico e collegarti da remoto, cosa che
personalmente non ho mai ne fatto ne visot fare, quindi mi astendo dal
dire "va bene" oppure "è una follia"...
Oppure puoi cambiare l'approccio, mettendo su un web server che
accetta richieste dai client, le processa e se necessario,
manda delle risposte al client che ha inviato la richiesta.
In quest'ultimo caso, ovviamente, sui pc non serve installare il
client del db.
Le "richieste" possono essere gestite via web services esposti dal
server web o tramite richieste http.
A tal proposito c'è un th su soap di pochi giorni fa dove puoi trovare
qualche informazione utile.
A.

 quello che descrivi sia l'unico modo di lavorare, cosa non vera.
[CUT]
Grazie a tutti per avermi chiarito questo argomento che non avevo mai 
trattato ne pensato.
Ora, prima di metterci le manine e modificare il programma mi dedichero' a 
fare qualche tentativo a scopo di studio.
Ho tutto in casa, server con lan e portatile in rete wifi.
Grazie ancora e alla prossima
Daniele
__________ Information from ESET Smart Security, version of virus signature database 3962 (20090325) __________
