Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: Pascalman - Marzo 03, 2013, 11:15:27 pm

Titolo: Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 03, 2013, 11:15:27 pm
Salve a tutti.
Utilizzo degli oggetti nella form per collegare il mio database (sqlconnection,clientdataset,sqltable,datasource,datasetprovider) e ho collegato il mio database nella form e tutto funziona.
Adesso vorrei poter collegare la mia form ad un database che si trova in un altro pc situato in un altro edifico dove si trova il database principale su cui dovranno lavorare più computer contemporaneamente.
Come posso fare? (aiutatemi vi prego T__T)
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: nomorelogic - Marzo 03, 2013, 11:33:49 pm
bisogna prima di tutto sapere se si può fare una vpn
in questo caso il collegamento col db remoto è più semplice e sicuro

in alternativa, senza vpn... beh si procede per passi:
1) l'indirizzo dove risiede il db è un IP statico?
2) bisogna sapere se il db remoto è raggiungibile e se è raggiungibile firebird
3) bisogna vedere se tu puoi uscire con le richieste

Per il punto (1) diamo per scontato che sia così: il db è su un server raggiungibile da un IP statico. Se non è così facci sapere che troviamo una soluzione.

Per il punto (2) bisogna fare la conta di quanti router, firewall e antivirus rompiballe ci sono a partire dall'indirizzo pubblico. Attraverso questi si dovrà passare usando la porta TCP 3050. Diciamo che un buon inizio è quello di trovare un sito web che ti permetta di fare il port scanning di un IP statico. Devi lavorare per fare in modo che lo scanning da web ti rilevi come aperta la porta di cui sopra (3050).

Una volta certi che da IP pubblico firebird è raggiungibile si passa al punto  (3). Questa volta bisogna lavorare (sempre su firewall, router, ecc... a partire dal tuo pc) per poter fare richieste sulla porta remota 3050 via TCP. Quà puoi usare telnet per vedere se raggiungi l'host remoto.
Esempio: telnet "IP pubblico" 3050
Quando telnet non rifiuta la connessione sei pronto a lanciare il tuo programma.


Edit:
senza vpn, si rende il database accessibile dalla rete e non è proprio sicuro lasciare la porta 3050 aperta a tutti.
Se non ci sono altre via (insisto: vpn è meglio ;) ) sarebbe meglio che il firewall dietro il quale c'è il database accetti esclusivamente richieste da IP client noti. In alternativa si può creare un tunnel sicuro via ssh o zebedee (http://www.winton.org.uk/zebedee/ (http://www.winton.org.uk/zebedee/)).

Edit 2:
Accedere ad un db remoto porta molti nodi al pettine in una applicazione...
Query tipo: "select * from table" possono essere drammatiche. ;)
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 12:03:21 am
ok io non ho mai lavorato con tutto quello che hai scritto potresti aiutarmi passo passo e dirmi cosa devo fare ?? di tutto quello che hai scritto non ho capito cosa intendi per vpn e non so cosa sia ssh e zebedee
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: nomorelogic - Marzo 04, 2013, 09:41:39 am
VPN sta per Virtual Private Network e fondamentalmente serve a creare un tunnel sicuro tra 2 LAN remote per farle funzionare come se virtualmente fosse una unica LAN.

Dovresti innanzitutto verificare se nella LAN dell'edificio di fronte ci sia già un server capace di accettare connessioni VPN in ingresso. Se c'è un server ti conviene parlare col sistemista che saprà guidarti.
Se non c'è un server e ti devi arrangiare... armati di pazienza :)

Individua un pc che possa fare da parte finale del tunnel (accettare connessioni VPN in ingresso) e segui una guida (su internet ce ne sono moltissime).
Io ho trovato queste:
se windows 7: http://www.ilsoftware.it/articoli.asp?tag=Creare-una-semplice-rete-VPN-con-Windows-7-e-Windows-XP_7223 (http://www.ilsoftware.it/articoli.asp?tag=Creare-una-semplice-rete-VPN-con-Windows-7-e-Windows-XP_7223)
se windows xp: http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=1395&Itemid=33 (http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=1395&Itemid=33)

Appena hai configurato un server per la VPN, dal tuo edificio per connetterti puoi seguire questa procedura
http://www.italiasw.com/windows-7-setup-connessione-vpn/ (http://www.italiasw.com/windows-7-setup-connessione-vpn/)

Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 02:42:47 pm
ok e per i percorsi del database server come li gestisco nelle componenti del delphi?
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Stilgar - Marzo 04, 2013, 02:46:06 pm
nomorelogic ... mamma mia ... subito VPN .... ti ha detto che è in un altro edificio.... ma siamo sicuri che non siano nella stessa rete?
Stilgar ;)
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 02:47:55 pm
se era la stessa rete mi veniva facile a mettere in condivisione penso... in ogni caso non sono nella stessa rete...
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Stilgar - Marzo 04, 2013, 02:48:48 pm
Ok, devi passare per rete pubblica (esempio internet..)?
EDIT:
Mettere in condivisione cosa? I file? Sarebbe stata una strada sbagliata.
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 02:50:47 pm
allora mi dovete dare la strada piu semplice io devo solo fare dei test utilizzando due reti diverse un pc server e i vari pc client che si collegano al database server (contemporaneamente) il server si trova in un altro pc con diversa connessione ok? mi scuso se non sono stato chiaro
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Stilgar - Marzo 04, 2013, 02:52:54 pm
Pascalman ... le configurazioni di rete possono essere così diverse che la bacchetta magica con la soluzione aurea non è facile da trovare ;)

Stilgar
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 02:54:04 pm
va be tu come avresti fatto? come mi ha consigliato nomorelogic?
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Stilgar - Marzo 04, 2013, 02:56:48 pm
Si ... ma è una strada che non è molto veloce e semplice se è la prima volta che ti ci metti a sbattare la testa.
Se sono 2 reti diverse, ma della stessa ditta, si possono vagliare altre opzioni.
Il casino è che non conoscendo le policy di sicurezza delle reti in questione ... la VPN è quella che ti mette in una botte di ferro.

Chiedi agli amministratori di rete se possono aiutarti e darti una mano.

Stilgar
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 02:58:50 pm
quindi una soluzione standard non c'è ?
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Stilgar - Marzo 04, 2013, 03:00:19 pm
hahaha non esiste una rete standard ;)
Stilgar
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 03:01:21 pm
capito  :(
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: nomorelogic - Marzo 04, 2013, 03:13:20 pm
infatti se c'è un sistemista fai meglio a chiedere a lui
far dialogare 2 reti tira sempre in ballo un sacco di prolematiche e, se devi fare da solo, la strada "più standard" è quella della VPN: quantomeno trovi molta documentazione in giro
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 04, 2013, 05:57:15 pm
ok ma per il database come gestisco il percorso dopo aver fatto quello che mi hai detto tu? (per collegarlo con gli oggetti del delphi)
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: nomorelogic - Marzo 04, 2013, 06:23:03 pm
se non ricordo male la sintassi è: IP:path

ad esempio
87.251.12.253:c:\path\database.fdb


Edit:
puoi già provare il formato giusto usando:
127.0.0.1:c:\path\database.fdb
che sostanzialmente è un indirizzo di rete che punta alla macchina locale
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Stilgar - Marzo 05, 2013, 09:46:39 am
Pian e ben ...
A questo punto si può usare un alias firebird ... altro che path ...
La configurazione facciamola un attimo sicura ;)

Stilgar
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: xinyiman - Marzo 05, 2013, 09:53:41 am
Allora se non necessiti di chissà quali livelli di protezione puoi usare anche un dns dinamico.

Io lo uso spesso e funziona bene per questo tipo di evenienze. Ciao
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 05, 2013, 04:42:10 pm
e potresti spiegarmi come fai? tanto devo fare solo dei test =) grazie
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: xinyiman - Marzo 05, 2013, 06:21:55 pm
Ti registri qui: http://dyndns.it/

Configuri il router della rete che vuoi raggiungere in maniera tale che il nome dns d te scelto sia raggiungibile anche se cambia l'ip e poi da li tutto il resto è come la connessione classica solo che al posto di localhost o 127.0.0.1 metti il nome dns che hai scelto.

Buon test :)
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 05, 2013, 06:49:34 pm
perdonatemi se sto rompendo =( non ho mai lavorato in rete potresti essere un po piu dettagliato =(
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: nomorelogic - Marzo 05, 2013, 07:44:30 pm
Pascalman, se non lo hai mai fatto (e deduco che non hai un amministratore di rete a cui rivolgerti) le cose si complicano un po'...
Siamo fondamentalmente in un forum di programmazione lazarus/pascal e: passi il fatto che usi Delphi (bene o male tutti lo usiamo o lo abbiamo usato e comunque le problematiche e le soluzioni sono pressoché le stesse), passi il fatto che il programma ti funziona e non hai bisogno del ns supporto per farlo funzionare e passi anche il fatto che non sai come raggiungere un db remoto (nel senso che è un problema di rete), stiamo però andando OT con lo spirito del forum intero, non solo del 3D :)

Non leggere la cosa come "non ti daremo più una mano": la mano ti verrà data. E' però ora che inizi a decidere quale soluzione adottare e che studi come potresti raggiungerla. Non è possibile per noi scendere in dettaglio nella tua situazione finché non ci dici che hai iniziato e come.

Il problema, per parlare in termini da programmatori :) è un problema di socket: la tua applicazione è il client e deve raggiungere un server remoto (firebird).
Bisogna aprire una strada. E' chiaro che non avendolo mai fatto non sai dove mettere le mani, ma quale strada adottare non possiamo deciderlo noi per te: non abbiamo idea dell'infrastruttura che c'è dietro.

Ad esempio abbiamo parlato di IP statico o dinamico ma ancora non ci hai detto com'è... Anche solo per decidere come partire è una informazione basilare.
Se è dinamico sei obbligato a seguire il consiglio di xiniyman (dyndns), se statico te lo puoi risparmiare (nulla vieta di farlo è comunque comodo e gratis).
Quindi un buon inizio è quello di sapere che tipo di ADSL hanno nell'edificio che ospita il database (e prega che non sia fastweb ;) ).
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: Pascalman - Marzo 24, 2013, 10:49:11 pm
Nomorelogic io sto facendo solo dei test(non devo fare il programma per aziende)  partiamo da una cosa semplice solo per farmi capire come funziona poi cercherò di fare da me
Titolo: Re:Firebird Flame robin e delphi XE3
Inserito da: xinyiman - Marzo 25, 2013, 08:29:03 am
mi sa che non hai capito il post di nomore. se non ci dici qualcosa di piu' sulla rete che vi lega noi non possiamo aggiungere altro a quello gia' detto.