Ramón:
Una de las ENORMES ventajas y marvillas de ADS es la facilidad de
montarlo y usarlo con cualquier tipo de servidor.
Para usar el AIS, primero tienes que configurar un puerto con el
Advantage Configuracion Utility, selecciona la pestaña CONFIGURATION
UTILITY y dentro la subpestaña COMMUNICATIONS, ahi es donde tienes que
moverle, asinga un puerto para la comunicacion por la red interna (yo
uso el 2000) y otro para comunicarse por la internet (yo uso el 2001),
dale a APPLY y listo, eso es todo.
¿ Tan simple ?, si si si, ADS es maravilloso en ese aspecto, ahora
debemos trabajar con el programa:
En tu codigo fuente selecciona el tipo de servidor 7
(AdsSetServerType(7)), si estas usando DataSets, entonces selecciona en
el ADS DataSource, nServerType "asANY".
ADS intentara primero conectarse por el servidor remoto, en caso de que
no detecte un servidor remoto en un lan, intentara conectarse via
internet, y en caso de que no existan las circunstancia adecuadas para
conectarse a internet, entonces lo hara usando el servidor local, la
idea es que una sola pieza de codigo sirva para cualquier tipo de servidor.
En tu programa ya se ha acabado todo, no hay mas que hacer... ¿ Tan
simple como eso ?, faltan 3 detalles que veremos a continuacion.
Para la conexión a internet server FORZOSAMENTE debe de existir un
diccioanrio de datos, que albergue a TODAS las tablas que vayas a usar
en tu aplicacion, el diccionario de datos realiza las validaciones de
seguridad para que el usuario se pueda conectar via internet, ademas de
que facilita enormemente el trabajo con tablas posteriormente.
Usando el ARC tienes que crear un diccionario de datos (en el menu
Database / New Database), tienes que dar de alta al usario ADSSYS con su
respectivo password, y luego dar de alta todas las tablas que estes
usando en tu proyecto, si vas a hacer acceso por internet, entonces
deberas darle privilegios de acceso via internet al diccionario y a los
usuarios que vayas creando para dicho diccionario. Esto suena mas
complicado de lo que parece, pero un DD puede quedar listo en menos de 5
mintuos y todo se hace visualmente.
Una vez que tengas listo tu diccionario de datos, vamos de vuelta al IDE
de Xailer, a donde tienes tu DataSource ADS, deberás realizar la
siguiente modificacion en el inspector de objetos:
* lUseDictionary lo pones a .T.
* cConnect lo camibas e indicas la ruta completa y el nombre a donde
creaste tu diccionario de datos, por ejemplo c:pruebasdatosprueba.add
(ADD son las iniciales de Advantage Data Dictionary), si vas a hacerlo
por internet entonces tendras que hacerlo asi:
servidorrecursocarpetadiccionario.add (en un momento veremos porque
es necesario hacerlo así)
* En cPassword y cUser deberás indicar el nombre del usuairo y el
password al diccionario de datos, o AdsSys y su respectivo password.
* lRightsCheck lo pones en .F.
Y ya estamos listos.
El siguiente paso consiste simplemente en abrir puertos del router, abre
el puerto 2001 para TCP y para UDP y redireccionalo a la direccion IP
dentro de la intranet de la computadora que este corriendo el servidor ADS.
Y ahora la magia.... quien en realidad hace toda la magia es un archivo
..INI llamado ADS.INI, que debe de existir EN LA MISMA CARPETA DONDE ESTA
TU ARCHIVO EXE y que tiene la siguiente informacion:
[servidor]
LAN_IP=192.168.2.1
LAN_PORT=2000
INTERNET_IP= 200.67.137.11
INTERNET_PORT=2001
Para empezar, el archivo .INI es utilizado no por tu programa, sino por
el cliente ads, el DLL AXCWS32.DLL, quien se intentara conectar al
servidor ADS usando la informacion que existe en ese archivo .INI.
Cuando se active el DataSource ADS en tu programa Xailer, este
internamente hace una llamada la funcion de ADS AdsConnect60() que sirve
para conectarse con un diccionario de datos ADS para validar usuarios
(mismo que especificaste en la propiedad cConnect), y aqui viene el
truco, como tu utilizaste la UNC para indicar la ruta al diccionario, es
decir servidorrecursocarpetadiccionario.add, entonces ADS va y
sustituye "servidor", por los valores que se encuentren en la seccion
"[servidor]" del ADS.INI, de tal forma que tu puedes poner
[ciberteserver] [myserver] o lo que quieras en la direccion de tu
diccionario de datos: cibertecserveradsdemosdatosprueba.add y como
dijo Porky, eso es to, eso es to, eso es tototodo amigos.
Al ejecutar tu programa Xailer, primero ADS buscara en tu red local la
direccion IP especificada en LAN_IP y su respectivo puerto que tu ya haz
configurado previamente con el Advantage Configuration Utility, si no
encuentra un servidor ADS en dicha direccion, entonces solito, se en
ruta por internet a la dirección especificada en INTERNET_IP, que no
necesariamente tiene que ser una IP, puede ser el nombre de un dominio,
y tambie es válido utilizar redireccionadores de ips como NoIp o D2G.
Por ejemplo en mi demo de AIS tengo en el archivo ADS.INI:
[cibertecserver]
LAN_IP=192.168.2.2
LAN_PORT=2000
INTERNET_IP=ciber-tec.d2g.com
INTERNET_PORT=2001
Y listo, la idea es simple, el mismo EXE tiene que servir para cualquier
tipo de servidor y con diccionarios de datos es muy simple hacerlo sin
tener que tocar todo el codigo fuente que ya tienes hecho.
Saludos
Rene Flores
http://www.ciber-tec.com
------------------------
Nos vemos en Santiago de Chile el 13 de Octubre
En Buenos Aires del 3 al 5 de Noviembre.
Zea escribió:
> Mil gracias maestro, ya he entendido el tema, entonces, mil veces mejor usar
> el AIS, sol oque tengo un problema, en todo lo que he hayado de ADS sobre
> instalacion y configuracion, nada explica como hacerlo para funcionar bajo
> Internet, lo unico que haye fue la configuracions de los puertos y algunas
> cosas que has puesto en el foro, pero..., no he podico realizar el acceso.
>
> Podrias iluminarlos un poco?
>
> Mil gracias de nuevo.