Resumen Bases de Datos Remotas y otros conceptos   (3 mensajes )

Mensaje enviado por "Oswaldo D'Acevedo" <Oswaldo@heuristika.com>

Estimados amigos:

Esta es la tercera entrega de esta serie y la razon por la que demore en entregarla pasa por una serie de razones entre la que se encuentran, ademas de estar algo ocupado, un poco de cansancio (lease pereza :-)) y algunos contratiempos con mi servidor de WEB.

Sin embargo ya solucionado todo ello y repitiendo las dos primeras entrgas a manera de recordatorio paso a desarrollar la tercera parte.

RDS (remore data service)

A medida que se desarrolla el internet se hace cada vez mas necesario el "exponer" y/o "acceder" a data que no esta en nuestra computadora o en nuestro LAN o en nuestro WAN, se necesita acceder a data que esta en alguna computadora remota en cualquir parte del mundo.

El WEB (o la WEB) ha hecho posible ello en un grado bastante aceptable. Pero que pasa si lo que deseamos es manipular dicha data remota de manera mas agil y mas clasica o mas flexible que lo que nos permirte un browser de WEB ?, que pasa si deseamos hacer un programa o sistema que permita a un cliente manipular la data como hasta ahora hemos venido haciendolo, es decir con programas hechos a la medida; mas aun, que pasa si un cliente nuestro nos pide que le programemos un sistema que debera leer y actualizar data que se encuentra en algun lado remoto y que desea usar la Internet como medio de coneccion.

Como indique en el primer articulo de esta serie, hay muchas maneras de lograr esto. En este articulo explicare el uso de RDS para lograr este objetivo.

Inicialmente RDS fue diseņado para usarlo en conjuncion con un WEB browser (sobre todo para intranet y DHTML) tan es asi que IE4 e IE5 instalan el RDS como parte de su sistema.

Pero RDS puede ser perfectamente usado en ambiente de programacion de VB, es mas, RDS es tratado como si fuera un "provider" mas de ADO, aunque realmente no lo sea.

Para hacer uso de RDS es necesario que la data remota se encuentre en un computador que sea parte de un WEB server que soporte ADO. Esta condicion es cumplida por IIS de microsoft (la tecnologia RDS es abierta por lo que puede que otros WEB server tambien soporten esto).

    Cliente VB WEB Server Data Server
      ADO 2.x ---------\\-------- (IIS, etc) ---------------------- (SQL Server)
  provider RDS Internet RDS Server oledb provider (Acces, etc)
   MS Remote


En el caso que desarrolle como ejemplo y que adjunto a este mail accesa a una base de de datos de Access que se encuentra en un WEB server a que tengo acceso, dicha base de datos solo puede ser leida por efectos de seguridad, pero con los permisos correspondientes uds. podria desarrollar sus sistemas con "full access".

El "string" de connecion para RDS es el siguiente

"Provider=MS REmote;Remote Server=http://www.myweb.com/;remote provider=Microsoft.jet.OLEDB.3.51;data source=d:\www\sysmetric\RDSProject.mdb"

Noten la necesida de contar con un Web site valido en la maquina donde se encuentra la base de datos. Noten tambien que en este caso use el proveedor Microsoft.jet.OLEDB.3.51 para acceder a la base de datos de Access. en el caso de MSSQL el "string de coneccion seria:

"Provider=MS REmote;Remote Server=http://www.myweb.com/;remote provider=SQLOLEDB;server=MySQLServer;database=MyDataBase;UID=MyUser;PWD=MyPassword;"

Como se daran cuenta el "string" de conneccion para la parte remota es la misma que si fuera una coneccion local.

Hay otras consideraciones para el manejo de RDS pero eso ya sera parte de la experiencia y las lecturas que Uds. hagan a partir de esta entrega.

Les recomiendo que ejecuten el proyecto que les adjunto y que lo analicen, veran que es bastante simple. Si tienen dudas y preguntas no duden en hacermelo que con gusto les dare respuesta.


Suerte


Oswaldo

Download rdsproject.zip  

Mensaje enviado por "Oswaldo D'Acevedo" <Oswaldo@heuristika.com>

Desde hace unos dias han habido una serie de preguntas y respuestas acerca del acceso desde programas hechos en VB a Bases de datos Remotas. Al respecto hubieron muchas respuestas que se aproximaban a soluciones o eran soluciones, pero tambien hubieron algunas que no correspondian a lo correcto.

Tambien varios de los aportes se refirieron al uso de ActiveX para acceder a dicha informacion e incluso se menciono la factibilidad de ejecutar dichos ActiveX de manera remota y/o de hacerlo usando los principales Browsers de WEB del mercado (IE y Netscape).

Muchos conceptos involucra dicho tema, puedo de manera aleatoria indicar COM, DCOM, MTS, ASP, ADO, ADOR, RDS, PlugIns, "Security Issues", CORBA, JDBC, etc. Lo que puedo decir es que SI es perfectamente posible acceder a bases de datos remotas usando una miriada de tecnologias disponibles en el mercado. Tambien puedo decir que hay grados de dificultad diversos en el uso de dichas tecnologias. La tecnologia a usar pasara por un analisis del sistema donde se balanceara, no solo su facilidad de desarollo, si no la "extensibilidad", "mantenibilidad" y disponibilidad de tecnologias entre otras consideraciones.

Para centrar un poco mi analisis debo decirles que hare una explicacion solo de aquellas tecnologias que ha desarrollado Microsoft (COM y su cercano pariente DCOM, no considerare COM+ por falta aun de informacion, aunque empezaremos a escuchar de el con mas frecuencia a partir del advenimeinto de Win2000 y su ASP3 e IIS5).

Dentro de esas tecnologias, finalmente tomare a ADO y su RDS para desarrollar un ejemplo de como acceder a Bases de Datos Remotas mediante codigo de VB, incluso expondre una base de datos en un WEB al que tengo acceso para que puedan ejecutar el ejemplo, claro que por razones de seguridad solo permitire leer la data, no escribir en ella. Mediate esta tecnologia veran que es realmente sencillo conectarser a dichas bases de datos, lo unico a tener en cuenta es que se debe disponer de un WEB server que soporte RDS, el IIS de Microsoft (uno de los mas populares) esta perfectamente capacitado para esto.

Primero algunos conceptos:

COM (component object model) : Estandar desarrollado por Microsoft que permite a los objetos y componentes de programacion "comunicarse" entre ellos independientemente del lenguaje en que fueron desarrollados. OLE y ActiveX hacen uso de esta tecnologia para comunicarse entre ellos, de esa manera por ejemplo, nuestros controles ActiveX pueden exponer sus propiedades y metodos entre ellos.

DCOM (Distrubuted COM) : Es una extencion a la tecnologia COM que permite "exponer" los objetos en ambientes "distribuidos" (difrentes maquinas) no solo en un ambiente de LAN y WAN si no (y aca su poder) a traves de la Internet. El uso de esta tecnologia no viene de una manera "simple" ya que implica muchas consideracion casi todas relacionadas a "security issues".
A traves de DCOM es como se puede acceder a bases de datos remotas (entre otras cosas).

ADO (Active Data Object): ya ampliamente conocido por muchos de nosotros, es una tecnologia que recientemente esta alcanzando su madures y que a decir de su fabricante (Microsoft) debe ser un estandar en su tecnologia COM, DCOM y COM+ para el acceso de diversos tipos de Datos (Universal data access) a traves de "providers" OLE-DB, entre este tipo de data se encuentran claramente las de Access Data base, SQL, Oracle SQL, ODBC data y muchas de las otras del tipo "relacional", ademas de otro tipo de data como Mail-data, Index server data, etc.

RDS (Remote Data Service) : hace uso de DCOM para "exponer" a traves de un WEB server (hasta ahora IIS, aunque esta abierto a que otros tambien lo "expongan") y cualquier tipo de data que ADO y OLEDB puendan exponer.
Aunque hace uso de un WEB server para localizar una base de datos esto no significa que se tenga que usar un "Browser" de WEB para su uso. Es mas, el ejemplo que pondre en la ultima entrega de esta serie sera usando un "cliente remoto" desarrollado integramente en VB. La gran ventaja adicional de RDS es que encapsula muchos de los problemas de configuracion de DCOM (los problemas de seguridad sobre todo) haciendo que su uso sea muy facil para aquellos que han estado accediendo a bases de datos locales.

Mensaje enviado por "Oswaldo D'Acevedo" <Oswaldo@heuristika.com>

ActiveX Es muy dificil hablar de ActiveX sin caer en confusion o malentender alguna explicacion, incluso el empezar este aporte me esta tomando algo de tiempo para determinar la mejor manera de introducir este concepto sin contribuir a ese maremundo de definiciones.

ActiveX es ahora parte impotantisima de VB y Microsoft a dejado claro que VB esta centrado alrededor de su tecnologia de ActiveX.

Existen muchos tipos de ActiveX, el mas conocido es tal vez los ActiveX control u OCX que, ademas de exponer sus propiedades y metodos, pueden ser manipulados de manera Grafica.

Existen ademas los ActiveX EXE, ActiveX dll, ActiveX Document EXE y ActiveX Document dll.

Cada uno de ellos merece una especial atencion y estudio que recomiendo se haga para entender sus diferencias (sobre todo en lo que respecta a los del tipo EXE o "out of process" y los del tipo dll o "in process"

No pasare a definir cada uno de ellos si no mas bien dire que todos ellos lleval el prefijo o la nominacion de ActiveX debido a que hacen uso de la Tecnologia COM de Microsoft.

La posibilidad de que un ActiveX pueda ser "instanciado" de manera remota no recae en una propiedad particular de dicho ActiveX si no en la utilizacion de DCOM para instanciarlo.

Debemos decir tambien que todo ActiveX necesita un ambiente en que instanciarse, Un CONTAINER (un programa de VB, IE browser, Excel, Word, entre otros).

Respecto a si un ActiveX puede ser instanciado en IE browser y Netscape la respuesta es que SI definitivamente a Internet Explorer y que "Puede Ser" en Netscape.

Netscape en si no es un "container" para un ActiveX, esto seguramente pasa por una cuestion de estrategia de mercado. Sin embargo existen los llamados "Plug Ins" que permitirian eventualmente poder exponer un ActiveX en Netscape. Pero debo concluir que
para efectos practicos o de estrategia de distribucion no se debe considerar a Netscape como un container de ActiveX a no ser, claro esta, que alguna vez decida aceptar dicha tecnologia como parte estandar del browser tal como lo ha hecho con los Applet de Java.
Sin ahondar mas al respecto, y estando conciente que mi explicacion sobre los ActiveX ha sido muy ligera, pasare a desarrollar la proxima entrega en que explicare a manera de "tutorial" una de las maneras mas simples y eficientes de acceder a bases de datos remotas haciendo uso de ADO (que es finalemnte un activeX) y su "pseudo provider" RDS que es en realidad un "data concumer".



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com