Nuevas Tecnologias De Windows e Internet
Por Vil_Roach

"If It Moves, Script It "

   Andrew Clinick 
    Program Manager  
     Microsoft Corporation

"If it Scripts , hack it "
    
       Me
        Program Manager  
         Of Noting          


Introduccion
------------

Hola , Como estan , este es mi primer articulo para una e-zine y espero que sirva
para algo ya que si no no lo escribiria , espero algun tipo de reaccion y si este
articulo te sirve para algo me gustaria que me lo agradeciera publicando la tecnica
en un articulo para cualquier e-zine.

Mi objetivo al escribir este articulo es que ustedes , las mentes " libres y pensantes "
del mundo , se interesen en estas tecnologias y consigan material mas tecnico . Los bene-
ficios son muchos por ejmplo : puedes mejorar tu pagina poniendole super efectos o per-
sonalizandola para cada usuario con las famosas cookies , usar y encontrar bugs en las 
tecnologias de los productos de Microsoft para juguetear desde un documento 
html o un mensaje de e-mail con los archivos de todos lo usuarios Microsoft( que son 
demasiados ) e insertarles un virus o un worm u obtener informacion de cualquier 
tipo (y conquistar el mundo?) , protegerte de las personas que quieran ralizar los anteriores 
ataques , o  cambiar el web de algun gran servidor para que siembre un programa
" maligno " , para ellos ,por supuesto , o aun mas excitante cambiar la web de por ejemplo
www.amazon.com para que todos los numeros de tarjetas sean enviados a nuestra cuenta de correo 
electronico , claro esta solamente para revelar la pesima seguridad de un determinado sistema ;)

El Por que de estas tecnologias ?

Buena pregunta , rsulta que cuando Internet estaba lo sufientenmente desarollada como para
comenzar su gloriosa expansion por el mundo solo contaba con imagenes y texto , muchas imagenes 
y muchos texto pero al fin y al cabo simples imagenes y textos , habia necesidad de nuevas 
tecnologias unas tecnologias que permitieran por ejemplo , a un experto programador , cambiar el 
color de fondo de su pagina o bloqueal el navegador del visitante , o realizar consultas en una 
base de datos en la red o simplemente realizar juegos en linea . Para el lado del servidor 
existian las tecnologia cgi y perl que permitian que complejos programas de Unix generalmente 
generararn paginas en tiempo real y las enviaran , pero en el lado del cliente no ninguna 
posibilidad , entonces surge Java , desde los mismisimos confines de Sun microsystems , 
casa del genial billy joel , java es una tecnologia revolucionaria que nos permitia bajar 
un programa desde una web page y ejecutarlo , pero eso no se podia hacer antes ? , pues si ,
pero la diferencia de java es que los programas escritos con este se podian ejecutar en cualquier
tipo de maquina , y al ser una de las caracteristicas de Ineternet la diversidad de maquinas que 
la usan , java era perfecto para las web pages , pero java tenia un gran inconveniente para el 
webmaster comun , su poca capacidad de interaccion con el sistema operativo y el navegador, al 
ser este independiente del S.O ; De esta forma nace el vbScript y el javaScript , creados por 
las compaias Microsoft y netscape respectivamente . El javaScript es un pseudo-lenguaje ,que 
creo Netscape para ser usado con su navegador en Navigator , y su nombre radica en una simple 
jugada publicitaria hecha por netscape , el visual Basic Script es otro pseudo-lenguaje creado 
por Microsoft en respuesta al javaScript para ser usado en su navegador Explorer , y su nombre 
radica en que este "lenguaje" es otra mas de las archiconocidas tecnologias de Microsoft "Visual
Basic " ; cuando los describo digo pseudo-lenguajes por dos razones , ambos son simplemente una
serie de comandos que son mandados a los navegadores y estos los ejecutan , es decir es como 
los archivos batch de dos , una serie de comandos para un programa o S.O y unas estructuras de 
control que nos facilitan el trabajo con ellos , y segundo por que estos nunca son compilados , 
se mantienen en un texto plano que es interpretado por su respectivo navegador ; continuemos con
la historia , aos despues Internet se convierte en la creacion mas grande e importente del 
siglo y todo empieza a girar alrededor de Internet incluyendo los negiocios,claro esta,estos 
exigen mejores formas de recolectar datos y la forma de recuperar informacion de bases de datos;
En ese momento Microsoft se entera por fin de que la red es el FUTURO y comienza 
a crear una serie de estandares para la comunicacion entre aplicacione sin importar su S.O y 
nace la tecnologia com y Active x , Basicamente uno de los inventos mas ambiciosos de Microsoft
me explico , Com existia desde antes , pero era un simple estandard para que las aplicaciones 
de windows intercambiaran informacion entre ellas , pero ahora es algo mucho mas ambicioso es 
un modelo completo de comunicacion entre modulos de software sin importar su procedencia , com 
somplemente conecta los dos modulos y desaparece , quiza esto no sea de mucha importancia pero 
nos ayudara a comprender los objetos Active x , estos objetos son piezas de software que poseen
unas Interfaces , que lo conectan con cualquier otro siftware y este software puede hacer uso 
de todas las funciones necesarias , de esta forma cualquier las paginas web escribiran simples 
piezas de software que llamen a robustos objetos X que realizen las tareas mas pesadas , estos 
objetos pueden ser , controles de Active x de funcionamiento generico ( ASP ) , las aplicaciones
de office , o un controlador de bases de datos OBDC en nuestro web site favorito . De esta 
forma las empresas y los usuarios obtiene lo que quieren y los programadores obtienen un solido 
modelo de interconexion , pero Active x no esta solo ; Billy Joel el genio de sun microsystem 
sprevio esta situacion hace mucho tiempo, la necesidad que componentes tecnologicos de muy 
diversas naturalezas se comunicaren entre ellos y se interconectaran en una gran red , y de ahi 
su lema " " El computador es la red " ,y la respuesta de su compaia es la tecnologua Jini que 
significa "Infraestructura de red inteligente Java " y que consiste en un sistema de 
programacion distribuida conformada por componentes Java interconectada totalmente sin importar
la naturaleza Hardware o Software y que dentro de la red seran vistos como un solo elementeo ,
por ejemplo la  famosa casa inteligente en la que la nevera le diria al porcesador central que 
se acabo la leche y este se comunicaria con el procesador del supermercado que realizaria las 
gestiones en el supermercado para que la leche se le envie al usuari final , ese es el objetivo 
de Jini Y Las tecnologias de Microsoft , que cualquier componente de la red sin importar su 
naturaleza se vea igual alos demas componentes de la red ; El ultimo actor aparecido en este 
escenario es el XML el lenguaje del futuro en Internet , el xml es un intento de acabar con 
todas las limitaciones del html , es decir lo que se ha tratado de hacer con los lenguajes de
Scripts , java ,Active x y plug-in s , pero todo envuelto en un solo paquete y con compatibili-
dad total . Espero que todavia este leyendo , y si no ha entendido algo , no se preocupe en los
 proximas secciones tratare cada punto a fondo e intentare solucionar cualquier duda posible .

En resumen , la programacion de elementos del web ha evolucionado mucho y seguira haciendolo 
porque crealo o no , este es el Futuro  , y al futuro nada lo detiene , la capacidad de conectar
una pieza de software  japonesa con otra puertoriqueza sin ningun tipo de incompatibilidades es
el futuro de los negocios , y del mundo tal vez .

Si no me cree lea algo sobre Microsoft.Net la ultima apuesta de bill gates , que consiste en 
enfocar todos sus productos de software a la red y hacer de estos componentes mas de esta red , 
en los proximos aos saldran productos como Office.Net , VisualStudio.Net y Windows.Net total-
mente enfocados a Internet ,segun Bill Gates su empresa invertira mas del triple de lo que costo
llevar al hombre a la luna y el plan no comenzara a materializarse antes de dos aos , y aunque
las cifras suenan un poco infladas estoy seguro que el hombre que logro hacer de Windows el pro-
ducto de software mas vendido , sabe algo sobre negocios . Y nos guste o no Microsoft es el fu-
turo , hace tres aos un hacker de verdad no podia ineteresarse de verdad en windows , pero 
actualmente las cifras de crecimento de los productos de Microsoft los obligo a cambiar de pos-
tura y una hacker que diga que no le interesa "conocer" un servidor windows Nt es igual de obtu-
so a uno que diga que no le interesa un servidor Unix.

Por eso creo que conocer estas tecnologias es igual de importante que conocimientos avanzados 
de Tcp/Ip y de Unix , y al fin y al cabo aprender un poco no creo que le haga mal a nadie.

Cualquiera podria pensar que estoy halagando a Bill Gates y Microsoft lo cual es completamente 
falso , lo anterior es solo una prueba mas de que el exito de microsofot se debe a su politica
de "copy and improve " ,que consiste en copiar las mas prometedoras tecnologias , mejorarlas y 
comercializarlas con un nombre bonito ,  como lo demuestra los casos windows -> MacOs , 
Explorer-> navigator , Microsoft.net->jini , y similares


Visual Basic Script 
-------------------

Este es el mas reciente miembro de la familia de lenguajes de programacion de Visual Basic , 
creada por Microsoft , extendiendo su filosofia de productos mediocres para usuarios mediocres.

Su principal objetivo es suministrar las herramientas necesarias para proporcionar una automati-
zacion activa de varios productos Microsoft ,
incluyendo el cliente web de Microsoft  Internet explorer , el servodor de informacion para In-
ternet Microsoft Internet information server , el gestor de correo Microsoft Outlook el Window 
Scripting host entre otros.

El principal uso de VBScript en la actualidad es por medios de pequeos Scripts insertados en 
paginas web y que nos sirven para interactuar con el usuario y su entorno , para crear metodos 
de envio de datos e incluso para realizar una interaccion entre todos los visitantes de una 
pagina por medio de ASP .

Aqui hay un ejemplo de este uso , es muy sencillo y solo pretende ensear lo facil que puede ser
prgramar con VBScript , como dije anteriormente esto no es una guia de programacion sino sim-
plemente una presentacion de varias tecnologias .

Ejemplo tomado de la documentacion  de Visual Basic Scripting de Microsoft

Lo unico que hace es validar unos datos introducidos en un formulario antes  de ser enviados a 
el servidor , anteriormente la validacion de estos datos debia realizarse en el servidor , con
la consiguiente perdida de tiempo .

<HTML>
<HEAD><TITLE>Validacin sencilla</TITLE>
<Script LANGUAGE="VBScript"> 
<!--Sub Submit_OnClick 
Dim ElFormulario 
Set ElFormulario = Document.FormularioVlido 
If IsNumeric(ElFormulario.Texto1.Value) Then 
If ElFormulario.Texto1.Value < 1 Or ElFormulario.Texto1.Value > 10 
Then MsgBox "Escriba un nmero entre 1 y 10." 
Else MsgBox "Gracias." 
End If 
Else 
MsgBox "Escriba un valor numrico." 
End If
End Sub--> 
</Script>
</HEAD>
<BODY><H3>Validacin sencilla</H3><HR>
<FORM NAME="FormularioVlido"> Escriba un valor entre 1 y 10: 
<INPUT NAME="Texto1" TYPE="TEXT" SIZE="2">
<INPUT NAME="Enviar" TYPE="BUTTON" VALUE="Enviar">
</FORM>
</BODY> 
</HTML>

La forma de introducir un Script en un documento html  es simple se usa el tag <Script LANGUAGE=
"VBScript">  y se termina con el tag </Script> .

Para enviar los datos al servidor, el cdigo llama al mtodo Submit en el objeto Form cuando el
dato es correcto. A partir de ese momento, el servidor gestiona los datos de la misma manera que
 lo hara normalmenteslo que los datos son correctos antes de llegar a su destino. 

Podemos observar la sencillez de ste lenguaje , caracteristica fundamental de la familia visual 
Basic, pero esto no significa que con vbs no se puedan realizar tareas complejas , si utilizamos
 vbs en conjunto con WSH , ASP , o un elemeto del office se pueden realizar tareas mas complejas
 e incluso Scripts de uso para el administrador de una red  , que realizan tareas como matar 
procesos activos o administrira el login de las distintas clases de usuarios.

Hasta aqui todo sobre visual Basic Script , lo unico a resaltar es que la verdadera potencia  de
 Vbs se puede utilizar cuando lo usamos para hacer uso de otros controles Active X mas avanzados
 como  el objeto HTML <FORM> , los objetos ASP , cualquier control Active X (antes llamado obje-
to OLE) o incluso objetos Java .

Java Script
-----------

Este fue el lenguaje de Script creado por Netscape , para ser usado con su browser Navigator , 
es un lenguaje orientado  a objeto puro  , y se programa orientado a eventos , es decir sus 
acciones se disparan interceptando eventos como el movimiento del mouse , la activacion de una 
ventana o similares . Su sintaxis se paraece mas a la del C++ y por lo tanto a la de java , pero
 su nombre fue una jugada publicitaria de Netscape .

Al igual que VbScript la programacion de este lenguaje se basa en conocer detalladamente los 
objetos del navegador y saber como y para que se usan , por ejemplo el objeto Navigator , 
posee propiedades y metodos s relacionadas con la aplicacion actual , una de las propiedades 
es appname  que define el nombre del navegador , y la forma de acceder a ella seria 
navigatro.appname.

La principal diferencia con vbScript es la similaridad de javaScript con c y c++ , por ejemplo 
las subs y function s van entre cprchetes y los parametro de las funciones deben ser pasados 
entre parentesis ,

A continuacion un simple ejemplo de javaScript 

Finction clickme_OnClick

{
   ten = prompt("Enter 10",0)
   if (ten)
     { 
        if (ten = 10)
            StrAlertMesage = "Es un 10 "
        else
            StrAlertMessage = " Eso No es un 10"
     }

   else
       StrAlertMessage = " Cancelado El Input";     
       
   ALert(StrAlertMessage)

}

Aunque es demasiado sencillo nos muestra como es JavaScript y su sintaxis , gracias al nombre 
de la funcion esta se ejecutara en el evento OnClick del boton clickme , esto es lo que se llama 
programacion orientada a eventos .
Por ultimo resaltar la existencia de JScript la version de Microsoft de este lenguaje y que es 
ampliamente usada en las ultimas versiones de Windows para configurar y hacer secuencias de co-
mandos en el explorador de archivos e incluso para el papel tapiz ( porque no habran usado 
VBScript??) , y que este lenguaje tambien se puede usar en conjunto con los objetos Active X que
 soporten Automatizacion.


Java 
----

El  equipo de Sun Microsystems responsable de java , lo creo a principios de los 90 como una 
herramienta para desarrollar software que pudiese utilizarse en electrodmesticos con componentes
 electronicos , debido a esta necesidad una de las principales caracteristicas de los compo-
nentes desarrollados Java debian ser multiplataformas y ejecutarse sobre cualquier  S.O o 
Hardware . Por esta caracteristica java se convertia en el lenguaje ideal para desarrollar 
aplicaciones en modo cliente para Internet . Esta naturaleza de Java se expresa en el logo de 
Sun " Write Once , Run Anywhere " , o sea , escribe tu programa una vez y ejecutalo donde 
quieras,independiente de el procesador , el  sistema operativo o incluso la naturaleza de equipo (un 
PC , una lavadora , un microondas , etc). Pero como se logra esta independencia , simple , Sun 
desarrola o cualquiera desarrolla una maquina virtual para cada sistema en especifico , es decir
 una especie de emulador de un computador java que interpreta el codigo , de esto se deduce que 
el formato de los programas java no es un ejecutable cualquiera sino un archvo especial que se 
interpreta por la maquina virtual , una consecuencia de esto  es que el codigo Bytecode va a 
correr mucho mas lento , debido a que no esta optimizado para un procesador en especifico , un 
inconveniente similar tenia Visual Basic en su primeras 4 versiones donde nisiquiera se producia
 codigo real , sino una seri de llamadas a unas DLL que contienen todas las funciones de Visual 
Basic .


Java como lenguaje 

Java es un lenguaje de programacion orientado a objetos y cuya sintaxis proviene principalmente 
de C++ heredando tambien su mecanismo de orientacion a objetos . Las funcionalidades principales
que en c++ provenian de librerias en Java provienen de una serie  de clase construidas anterior-
mente y que proporcionan toda la funcionalidad posible a java . Sin embargo a pesar de que Java
 resulte similar a C++ , no hereda las caracteristicas que lo hacian mas complejo i enreversado 
como el manejo de punteros y por lo tanto el manejo de memoria es automatico 

Al ser java un lenguaje puro orientado a objetos , todas las variables y procedimientos deben 
ser implementados en clases creadas por el usuario o que vengan con el compilador , es decir 
todo en java es un objeto y por lo tanto debe tener una clase origen , asi que si vamos  a hacer
un programa que muestre un reloj , deberiamos definir en una clase todas las funciones y las 
variables del reloj , y luego desde otra clase llamar estas funciones y utilizar estas variables
,la clase del reloj seria lo que llamamos una clase virtual , ya que su codigo nunca se usara 
desde la misma clse sino que sera usado por otras clases ; Java agrupa las clases en librerias 
que se llaman paquetes y que a su vez tambien pueden contener definiciones de Interfaces , las 
interfaces son simples colecciones de declaraciones de todos los metodos de una clase , sin 
importar que sea virtual o no , y que sirven para que otra clase les haga referncia o para que 
un desarrollador conozca los metodos de una clase sin necesidad de saber como funcionan ,  de 
esta forma la clase se convierte en un componente independiente pero reutilizable por otras 
clases Java , similar a l afilosofia Com ; Java tambien es Garbage Collected es decir , lel 
programa rastrea la memoria que es usada y cunado este no lo necesita mas es liberada automati-
camente , optimizando el desempeo y librando al programado de este trabajo  muchas veces te-
dioso ; otra de las caracteristicas mas important4es de Java es su capacidad de multithreading ,
es decir el programa se puede dividir en diferente threads o sea , en diferentes procesos que se
 ejecutan entre ellos y que incluso se pueden comunicar entre ellos , caracteristica fundamental
 para aprovechar los equipos con multiples procesadores .

A continuacion veremos un pequeo ejemplo de Java 

// Implementacin de un contador sencillo
// GRABAR EN UN ARCHIVO	"Contador.java" 	(OJO CON LAS MAYUSCULAS!)
// COMPILAR CON:		"javac Contador.java"	(NO OLVIDAR EL .java!)
// ESTA CLASE NO ES UNA APLICACION, pero nos va a servir enseguida

public class Contador {			// Se define la clase Contador

  // Atributos
  int cnt;					// Un entero para guardar el valor actual

  // Constructor				// Un mtodo constructor
  public Contador() {			// lleva el mismo nombre que la clase
    cnt = 0;				// Simplemente, inicializa (1)
  }

  // Mtodos
  public int incCuenta() {			// Un mtodo para incrementar el contador
    cnt++;				// incrementa cnt
    return cnt;				// y de paso devuelve el nuevo valor
  }
  public int getCuenta() {		// Este slo devuelve el valor actual
    return cnt;				// del contador
  }  
}

El codigo anterior simplemente define una clase llamada contador , y le asigna la propiedad cnt 
y los metodos Inccuenta , y Getcuenta , tambien declara un constructor para los objetos de esta
 clase , epeor en ningun momento es usado algunos de estas caracteristicas , ya que estas deben 
usarse desde otra clase cuyos metodos usen los metodos y las  propiedades de Contador.

// Usemos nuestro contador en una mini-aplicacin
// GRABAR EN UN ARCHIVO	"Ejemplo1.java" 	(OJO CON LAS MAYUSCULAS!)
// COMPILAR CON:		"javac Ejemplo.java"	(NO OLVIDAR EL .java!)
// EJECUTAR CON:		"java Ejemplo1"		(SIN el .java)

import java.io.*;				// Uso la biblioteca de entradas/salidas

public class Ejemplo1 {			// IMPORTANTE: Nombre de la clase
					// igual al nombre del archivo!
  // entero para asignarle el valor del contador e imprimirlo
  // aunque en realidad no me hace falta.
  static int n;
  // y una variable tipo Contador para instanciar el objeto
  static Contador laCuenta;

  // ESTE METODO, MAIN, ES EL QUE HACE QUE ESTO SE COMPORTE
  // COMO APLICACION. Es donde arranca el programa cuando ejecuto "java Ejemplo1"
  // NOTA: main debe ser public & static.
  public static void main ( String args[] ) {
    System.out.println ("Cuenta ");		// Imprimo el ttulo
    laCuenta = new Contador();			// Creo una instancia del Contador
    System.out.println (laCuenta.getCuenta());	// 0 - Imprimo el valor actual (cero!)
    n = laCuenta.incCuenta();			// 1 - Asignacin e incremento
    System.out.println (n);			// Ahora imprimo n
    laCuenta.incCuenta();			// 2 - Lo incremento (no uso el valor
    System.out.println (laCuenta.getCuenta());	// de retorno) y lo imprimo
    System.out.println (laCuenta.incCuenta());	// 3 - Ahora todo en un paso!
  }
}

Este codigo fuente crea una clase llamada Ejemplo1 que implementa la clase Contador haciendo uso
 de sus metodos , de esta forma si algundia mejoraramos el funcionamiento de la clase Contador, 
todos los programas que la usaran mejorarian automaticamente , este es uno de los tantos bene-
ficios de la modularidad
           
            *Estos ejemplos han sido tomados de un curso de java on line de la empresa intermerc 
                      
Esto es a grandes pasos el lenguaje Java , uno de los primeros pasos de la revolucion que se 
aproxima en el que todo el software estara orientado a red.

A continuacion hablare sobre tres conceptos de Java muy en boga actualmente

JDBC : JDBC es a java lo que ODBC es a windows . Es decir JDBC es al igual que ODBC una serie 
de  metodos y funciones definidas enfocadas en el manejo de bases de datos  en general sin 
importar cual sea su naturalez , el truco de esto es que cada tipo de base de datos debe tener 
su propio driver de JDBC , que proporcione la conversion entre las funciones genericas de JDBC 
y las funciones especificas de cada base de datos ; toda la capacidad de conexion de java con 
bases de datos se basa en Sql ( un lenguaje de Scripts orientado a bases de datos ) , por lo 
que un conocimiento de este sera Basico para trabajar con JDBC . El principal uso de JDBC es el
 de organizar y trabajar con los datos de centros de informacion y servicios en linea como 
buscadores , tiendas en linea , bibliotecas , etc.

Java Beans : Los java beans son el equivalente en java a los controles Active X , o sea piezas 
independientes de codigo que pueden ser desde componentes visuales (casillas de seleccion ,
botones , efectos graficos , etc) hasta componentes invisibles pero funcionales como por ejemplo
un Bean que nos conecte a un servidor Irc , o un Bean que sirva de Timer en  algun programa; 
las ventajas de los beans residen en su capacidad de encapsular su funcionamiento al mundo ex-
terior realizandose el acceso a estos por una serie de procedimientos bien controlados por el 
desarrollador , y en su capacidad , como todos los componentes hechos en Java puro , de ejecu-
tarse sobre una gran diversidad de plataformas . librando al desarrollador de una gran carga.


AFC : ( application fundation clases ) Cuando Sun creo java estaba consciente sobre la necesidad
de cualquier pieza de software de tener un interfaz atractivo o siquiera familiar para el usua-
rio , es decir que un programa windows deberia tener el tipico look windows para triunfar al 
igual que en un Mac o similares . Para solucionar este problema creo el AWT ( abstract window 
toolkit )una serie  de librerias que nos permitian desarrollar aplicaciones visuales indepen-
diente del S.O. Luego Microsft en su deseo de hacer todo a su modo y no recibir ordenes de nadie
(lease Sun Microsystems) , creo el AFC unas bibliotecas enfocadas en windows y que proporcionan
unas ventajas similares a las MFC( Microsoft Foundation Classes) , es decir una integracion 
total con Windows y el aprovechamiento de todas sus caracteristicasObviamente el usar estas 
caracteristicas y otras exclusivas del compilador Microsoft Visual J++ , harian de nuestro 
applet , exclusivo para windows perdiendo de esta forma la independencia de plataforma una de 
las caracteristicas mas valiosas de Java.


Active X
--------

Active X es la tecnologia de Microsoft , que pretende llevar a la red los objetos del modelo COM
 , es decir una serie de paquetes de Software programados como objetos OLE , o sea con capacidad
 de comunicarse con otro objetos OLE , pero enfocados parar la distribuicion por Internet y por 
lo tanto con capacidad de interactuar con el navegador y otras aplicaciones , ya que estos son 
objetos Active X . Pero no solo podemos encontrar controles Active X en Internet , de hecho 
muchos de los programas creados hoy en dia son objetos Active X , cuya funcionalidad es explota-
da por el progarma principal , un control Active X es como una DLL pero con capacidad de comuni-
carse con sus similares , y ser usado como un componente mas y no una serie de funciones simple-
mente . 

Realmente Active X a diferencia de los temas anteriores no es un lenguaje de programacion sino 
que es mas bien la implementacion de unos estandares para que los programas que los cumplan 
puedan comunicarse y usarse entre ellos  , un control Active X puede hacerse desde muchos len-
guajes de programacion ,visual C++ , visual Basic , visual J++ , y la forma de acceder a ellos 
es variada , por ejemplo desde un compilador podemos acceder a sus propiedades visualmente , y 
hacer referncia a sus metodos como si fuera un componente estandar , otra forma de acceder a 
estos controles es por medio de un lenguage de Script como VBScript , y JavaScript (por supuesto
el objeto Active X debe definir sus propiedadesy sus metodos de comunicacion con estos Scripts 
,ejemplos de programas y objetos Active X que se puedan usar desde un leguaje de Script s son 
Microsoft Outlook , Las aplicaciones de Office , los objetos ASP y el objeto WSH entre muchos 
otros.

Una de las tecnologias derivadas de Active X son los documentos activos , pero que son estos 
documentos Active X , estos son en realidad aplicaciones realizadas en Visual Basic que tienen 
la apariencia de un documento y se ejecutan en el interior de una aplicacion contenedora . Las 
aplicaciones contenedora pueden ser cualquier programa que tenga en su interior el control web 
browser de visual Basic , el Internet explorer  , el cuaderno de Microsoft ofice e incluso el 
mismo IDE de visual Basic .Un documento activo es Basicamente una serie de datos junto con un 
programa que puede formatear , organizar e incluso modificar estos datos .

Active X se convierte por lo tanto en una de las principales herramientas de Microsoft para el 
futuro , proporcionando unas cuantas de las caracteristicas principales del software del futuro,
la modularidad , el encapsulamiento , la reutilizacion y la intercomunicacion.


ASP : (Active Server Pages) 
--------------------------


ASP es Basicamente una coleccion de & objetos Active X para ser usados desde lenguajes de Script
,y que tienen la particularidad que se ejecutan desde el lado del servidor , sobre el Internet
Information Server , lo que nos permite realizar desde un simple Script paginas web que inter-
conecten entre si a los usuarios actualmente conectados , podemos recibir datos desde un form y 
consultar bases de datos (con la ayuda de visual Interdev por supuesto) , o incluso manejar fa-
cilmente las famosas cookies para personalizar nuestra pagina segun los gustos del usuario .

Los objetos ASP al ser ejecutados nos proporcionan unas ventajas nuca nates vistas sin necesidad
de hacer programas en C para UNIX o trabajar con CGI o Perl . Y por supuesto estos objetos no 
solo pueden ser usados con VBScrip o JavaScript , estos pueden interactuar con otros controles 
Active X , con applets Java , ser usados junto con HTML dinamico y muchas mas posibilidades ; 
quiza el sector donde las paginas ASP son mas usadas es junto con las bases de datos creadas por
productos Microsoft como visual Interdev e Internet Information Server , de hecho los objetos 
ASP nacen como una herramienta para manipular estas bases de datos con un simple lenguaje de 
Scripts.

La forma de usar ASP es sencila . lo unico que necesitamos es que el servidor del web se el 
Internet Information Server , y construir los Scripts que usen ASP , ni siquiera hay que decla-
ra los objetos anteriormente ya que estos estan preconstruidos.Los Scripts se guardaran en ar-
chivos .asp ,y tambien puede existir un archivo .asa que es un archivo global para todos los 
.asp de nuestra pagina y que puede definir Scripts que se deben ejcutar cuando sucedan eventos 
especiales y declarar objetos que seran usados por una sesion o por toda la aplicacion.

A continuacion una lista detalllada de los objetos ASP :

* Application : El objeto application puede ser uisado para compartir informacion entre los 
-------------- visitantes actuales de la aplicacion ASP , Una aplicacion ASP esta definida por 
todos los archivos .asp en un directorio virtual y todos sus subdirectorios , a causa de que el
 objeto application sera usado al mismo tirmpo por todo los usarios de nuestra aplicacion ASP 
existen los metodos Lock y Unlock que nos aseguran que una propiedad de un objeto Application 
sea manipulada por un solo usuario a la vez .
El objeto Application tambien nos sirve para guardar variables , en forma de variables de arrays
 , que seran globales en toda la aplicacion y que seran usadas en toda una sesion .
Por ejemplo =
Application("Saludo") = "Bienvenido Al Web Page!" 
Application("num") = 25

*Object Context : El objeto objectcontext sera usado para ejecutar o abortar una transaccion 
----------------- manejada por el Microsoft Transaction Server  , y que haya sido creada por
un Script contenido en una pagina ASP .

*Request : El objeto request recupera valores enviados por el cliente HTTP al servidor durante 
---------  un intercambio de datos HTTP. La sintaxis es la siguiente : 
Request[.collection Variable Method]variable).Por ejemplo la forma de obtener una variable 
introducida en un formulario HTML con un caja de texto llamada nombre y luego enviadas con el 
metodo SUBMIT se recuperara de la forma Request.form("nombre") , y si guardaramos esta variable 
en el objeto application lo podriamos usar durante toda la visita del usuario a nuestro Web Site
 , sin importar si cambia de archivo .asp , otra posibilidad es recuperar los valores de una 
cookie de la forma Request.Cookies("micookie"), en resumen la forma de usar este objeto es 
usando la propiedad indicada como un array que contiene todos los elemntos de su clase , en el
siguiente ejemplose mostraran todas las cookies de un cliente 

 For Each cookie in Request.Cookies 
  If Not cookie.HasKeys Then 
   'Print out the cookie string 
 %> 
     <%= cookie %> = <%= Request.Cookies(cookie)%>
<%Else 
  
   For Each key in Request.Cookies(cookie)
%> 
   <%= cookie %> (<%= key %>) = <%= Request.Cookies(cookie)(key)%>
<% 
  Next 
End If
Next 
 
La propiedad de la coleccion cookies .HasKeys nos permite saber si una cookie tien informacion 
o no si no la tuviera seria inutil tratar de imprimir algo ya que no saldria nada .

*Response = El objeto Response nos permite enviar informacion al cliente . Su sintaxis es muy 
parecida a la de request pero los tipos de datos que podemos enviar son mucho mas amplios . 
Aqui veremos de nuevo ejemplos relacionados con cookies , porque son muy utiles , aah y tambien 
son los mas faciles .

Ejemplo 1 Enviar una simple Key con dos valores distintos , cada valor se llama Key 

Response.Cookies("Micookie")("type1") = "Verde"
Response.Cookies("Micookie")("type2") = "Pizza"
De esta forma podriamos guardar para usos posteriores el color y la comida favorita del usuario 
y simplemente obtenerlo con el onjeto Request

Ejemplo 2 Establecer una propiedad en todas las cookies del directorio

For Each cookie in Response.Cookies
      response.Cookie(cookie).expires = #November,20 2030#    
Next

Ejemplo 3 A continuacion se mostraran todas las propiedades que puede tener un cookie 

Response.Cookies("Type").Expires = "July 31, 1997" 
Response.Cookies("Type").Domain = "Pepe.com" 
Response.Cookies("Type").Path = "/www/home/" 
Response.Cookies("Type").Secure = FALSE

*Server : El objeto Server nos provee acceso a los metodos y las propiedades ubicadas en el ser-
vidor , la mayoria de estos metodos y propiedades son utilidades de uso general .
Estas propiedades y metodos son  : 
-Script Time Out : propiedad que determina la cantidad de veces que un Script puede usarse antes
 de "jubilarse"

-CreateObject : Metodo que crea una instancia de un componente servidor .

-HtmlEncode : Metodo que aplica la codificacion Html a una cadena especificada o sea la convier-
              te en una cadena en  HTML. 

-MapPath  : Convierte el Path virtual especificado en un path fisico del servidor .

-UrlEncode : Metodo que aplica la codificacion Html a una Url especificada o sea la convierte en
             una url en formato HTML. 

*Sesion : Este objeto se puede usar para guardar informacion relativa a la sesion de un solo 
usuario . estos datos no se destruyen cuando el usuario salta de pagina en pagina sino que se 
mantienen durante toda la sesion que tenga el usuario en nuestra pagina . El servidor Web 
construye automaticamente un objeto Session cada vez que un usuario nuevo se conecta a la pagina
 y es destruido cuando el usuario se desconecta  .

Los principales usos de este objeto son por ejemplo guardar las preferncias de un usario para 
tenerla en cuenta durante toda su visita (Sin graficos,sin sonido,gustos temticos,etc)
, otro uso es por ejemplo guardar informacion personal del usuario para no tener que preguntar-
sela varias veces , por ejemplo : 
Session("Nombre") = "Pepe Puerta"
Session("age") = 34

Estos son todos los objetos que conforman ASP (Active Sever Pages) y aunque son pocos les asegu-
ro que son muy sustanciosos y nos permiten hacer muchas cosas , si alguien continua interesado 
en ASP puede enviarme un E-Mail y pedirme un interesante archivo de Ayuda que define detallada-
mente todos estos objetos .



WSH (Window Scripting Host )
--------------------------------

Window Scripting Host es un host independiente del lenguaje que permite correr archivos Script 
desde el mismo windows sin necesidad de otro programa y que ademas proporciona una serie de 
objetos que mejoran las prestaciones de VBScript y de JavaScript .

El porgrama Basicamente lo que hace es mirar la extension del archivo y deducir el lenguje en 
la que esta escrito ,  luego abre el archivo y lo ejecuta automaticamente , como si se ejecutara
 un archivo ; segun esto un archivo .vbs estara escrito en VBScript y se usara el motor de 
VBScript, un .js estara escrito en JavaScript y se usara el motor de JScript .

Esro proporciona una herramienta principalmete al administrador y le permite crear Script que 
hagan mantenimiento del sistema , que maten procesos activos o incluso manejar el login de los 
diferentes tipos de usuarios . Los objetos que proporciona WScript para ser usados desde los 
lenguajes de Script son los siguientes :

Network : Estw objeto de WSH nos proporciona una serie de propiedades y metodos que nos permiten
cubrir los aspectos mas Basicos del tratamiento de redes en windows  , el siguiente ejemplo nos
permite conectar un usuario a la impresoras y al directorio compartido u: 
set WSHNet = createobject("WScript.Network")
WSHNet.addprinterconnection "lpt1"
WSHNet.mapnetworkdriver "u:" ,"\\server\sharename"
WScript.echo "Usted Esta conectado a la impresora y a la unidad u:"

El anterior Script esta escrito en VBScript y como se observa la forma de crear un objeto de wsh
es : 
Set NombreObjeto  = createobject(WScript.Objetoacrear) . Y a las propiedades se accede de la 
forma usual con un punto luego del nombre del objeto.

WShell : Su principal uso es el de proporcionar una forma de acceder y modificar el registro de 
Windows , tambien contiene la coleccion SpecialFolders que nos permite acceder a Folders 
especiales de Windows independiente del lenguaje .

Este ejemplo muestra las funciones relacionadas con el registro de windows ( ojala sepan que es 
el registro de windows porque sino deberian averiguarlo ahora mismo )
set WshShell=WScript.CreateObject ("WScript.Shell")
WshShell.RegWrite "HKLM\ Hardware\DeScription\System\ CentralProcessor\0\VendorIdentifier", _
"Genuine Intel"
WshShell.Popup WshShell.RegRead("HKLM\ Hardware\DeScription\System\ CentralProcessor\0\Vendor _
Identifier") 
Este ejemplo demuestra lo facil que es conocer las carpetas especiales de Windows

Set Shell = CreateObject("WScript,Shell")
Path_Escritorio = Shell.SpecialFolders("Desktop")
Path_MisDocumentos = Shell.SpecialFolders("MyDocuments")

File System : Este objeto permite desde el Script obtener una variada informacion acerca de 
todos los archivos y drivers del sistema o de la red y nos permite manipularlos . Por ejemplo 
podemos  chequear facilmente el espacio disponible en disco ,tambien podemos leer un archivo y 
escribir en el , incluso nos permite observar la version de una dll o de un exe con el metodo 
GetFileVersion , en definitiva uno de los objetos mas utiles para cualquier proposito sea 
benigno o maligno ;)

El siguiente ejemplo investiga cual la unidad de disco disponible en este momento :

set objFS=CreateObject ("Scripting.FileSystemObject")
set colDrives=objFS.Drives
letter=Asc("c")
while objFS.DriveExists(Chr(letter)+":")
   letter=letter+1
wend
WScript.Echo "use "+Chr(letter)+":"


Este ejemplo nos permite leer un archivo de texto : 

set objFS=CreateObject ("Scripting.FileSystemObject")
set listFile = objFS.OpenTextFile ("c:\windows\system\oeminfo.ini")
do while listFile.AtEndOfStream <> True
   WScript.Echo listFile.ReadLine
loop
 
Siguiente Objeto


ADSI (Active Directory Service Interfaces)

Este objeto nos proporciona las capacidades de varios servicios de directorios de diferentes 
desarroladores de software para red y nos lo presenta como una simple collecion de interfaces 
de servicios de directorio para la administracion de redes . De esta forma los desarroladores 
tienen una simple interfaz para acceder a todos los servicios y aspectos de una red, sin 
importar el origen de los servicios de directorio del sistema.
Esto significa para los desarrolldores que podemos hacer complejas consultas acerca de la red 
sin necesidad de usar objetos Visual Basic o escribir complejos programas en C++ , en definitiva
una simplificacion de los mas complejos metodos que se puedan llevar a cabo sobre una red .

Este ejmplo aade un usuario a la red

set objDS=GetObject("@Namespace!Company \TopOU\NextLowerOU") 'Organizacion propia de cada compa-
ia

set objUser=objDS.Create ("User","JaneDoe") ' metodo de crear usuario

objUser.AccountRestrictions.SetPassword ("password") ' asignarle un password

objUser.SetInfo ' Y establecer los cambios .

Y el ultimo Objeto 

WMI (Windows Management Information)

Este es un objeto demasiado util y que resumidamente te permite acceder a simplemente toda la 
informacion sobre la maquina desde la configuracion del Bios Hasta La informacion de la reso-
lucion del monitor .

Este ejemplo nos muestra todo su poder 

' Nos informa la cantidad de memoria libre en nuestro computador
strQuery = "Select TotalPhysicalMemory From Win32_LogicalMemoryConfiguration"
'Ejecuta la consulat , creada anteriormente
Call ExecuteQuery(objService, strQuery)
Private Sub ExecuteQuery(objService, strQuery)

    ON ERROR RESUME NEXT

    Dim objEnumerator, objInstance, strMessage

    Set objEnumerator = objService.ExecQuery(strQuery)

    For Each objInstance in objEnumerator
        If Err.Number Then
            Err.Clear
        Else
            If objInstance is nothing Then
                Exit Sub
            Else
                strMessage = Space(6) & objInstance.TotalPhysicalMemory & " KB"
                WScript.Echo strMessage
            End If
        End If
    Next

End Sub

WMI puede ser una herramienta util pero al principio se convierte en algo demasiado complejo , 
pero cinforme se vaya entendiendo el modelo sobre el que trabaja WMI se podran realizar podero-
sos Scripts que pueden reiniciar maquinas o incluso matar procesos .

Este es el resumen de una de las herramientas mas poderosas para trabajar con windows , yo la 
he encontrado muy util , si alguien quiere mas informacion que se dirija al Microsoft Scripting 
Web site .

Por ultimo resaltar que el Windows Scripting Host 2.0 ya no usalas descripciones de archivo in-
dividuales sino que reune todo en un archivo .XML lo que nos permite usar varios lenguajes 
dentro de un solo Script , tener archivo Include , y declarar forms , objetos y todo lo rela-
cionado con el XML.


XML (eXtesible Markup Language)
------------------------------


Cuando el HTML se creo , este se creo en un mundo mucho mas simple , sin transacciones en linea
,cookie, juegos en linea , portales , etc . Este simplemete se creo pensando en la posibilidad
de describir documentos multimedia con hipertexto y no mas . Entonces cuando el mundo se revo-
uciono y el WWW se convirtio en algo mas que una biblioteca gigante comenzaro a crearse comple-
entos para el HTML y sus navegadores , de esta forma nacieron los lenguajes de Script , los 
applets de Java , El HTML dinamico , el VRML , los Plug-Ins y muchas mas aberraciones . Pero 
despues de tanto complmento creado sin estandarizacion alguna es hora de poner juntar todo y 
ponerlo en orden , de esta forma el WC3 (World Wide Web Consourtium)  crea el XML como nuevo 
standard de descripcion de componentes en el WWW.

La sintaxis del XML recuerda a la del HTML , basada en tags , pero sus mejoras frente a estas 
son muchas , a continuacion vamos a ver los principales componentes del XML , una serie de com-
ponentes  realizados cada uno con una tecnologia particular en mente , son sublenguajes con la 
misma sintaxis del XML . Estos Son :

MathMl(Mathematical Markup Lenguage) 

Complemeto creado con el fin de facilitar la creacion de documentos web que deban representar y 
tratar con complejas formulas matematicas , Ideal para cientificos y mtematicos .

SMIL (Synchronized Multimedia Integration LAnguage)

Uno de los puntos principales del XML , ya que las tecnologias multimedia eran las que habian 
creado la mayor necesidad de Plug-Ins , SMIL permite crear documentos multimedia utilizando 
avanzadas funciones para la sincronizacion de imagene y sonidos , generando animaciones 
perfectas . La multimedia producida con este lenguaje resulta ideal para su distribuicion en 
linea y utiliza un formato estandar que de terminar integrandose haria innnecesario el uso de 
Plug-Ins .


XSL (eXtensible Stylesheet Language) 

Este es un lenguaje de transicion entre el XML y las CSS (hojas en estilo de cascada) que 
intepreta el CSS y lo amplia agregando nuevas posibilidades , es una de las principales bazas 
de la estrategia XML , y su sintaxis es similar a la de CSS .

SVG (Scalable Vector Graphics)

Este es el leguaje encargado de solucionar las carencias de las paginas web de construir grafi-
cos vectoriales , teniendo estos la ventaja sobre los graficos GIF que si se amplian su resolu-
cion , la calidad de la imagen se mantiene , y permite hacer animaciones mas complejas y de me-
nor tamao , excelnte complemento para el SMIL .

XFORMS

Los formularios vistos desde la tecnologia XML , permite hacer unos formularios mas integrados 
con el lenguaje en si , prescindiendo de Scripts auxiliares , y facilitando la tarea de trabajar
 con los datos introducidos en ellos.

Coomon Markup fot Micropays per-fee-links

Esta tecnologia provee los metodos necesarios para incluir dentro de una pagina web,toda la in-
formacion necesaria para la realizacion de una transaccion en linea de forma facil y segura , 
permite definir termino que abarca cantidades de pago , tipos de moneda , sistema de pago (mhh 
muy interesante) . 

XHTML (eXtensible Hyper Text Markup Language)

Es la ultima revision del HTML  la  4.0 tambien conocida como DHTML o HTML Dinamico . Parte fun-
damental de este son las CSS que definian las web pages de una forma totalmente nueva , una de 
sus caracteristicas es que esta orientado tambien a los NEt-Devices , es decir , a toda la gama 
de aparatos nuevos que aparecen en el mercado con capacidad de conexion a Internet.

Existen muchas mas tecnologias del XML como el RDF ,Xlink ,WML , ebXML , VoiceXml Tv-Web entre 
otras , todas igual de promisorias para el futuro siendo esta una de las caracteristicas mas 
importantesdel XML : que se ha creado pensando no solo en las necesidades presentes sino en 
todas las necesidades futruras , lo que le augura un gran futuro y una gran importancia;uno 
de los hecho que confirma esto es que el XML es uno de los pilares mas importantes mas 
importantes de la estrategia Microsoft.Net y en la que actualmente se basn tecnologias como el 
Window Scripting Host , y en un futuo lo hara Microsoft Visual Studio.net


Palabras Finales
----------------

Si alguien se pregunta para que sirve todo esto les dire que para mucho , solo necesitan 
imaginacion , curiosidad y cerebro (hey 2 de 3 , no esta nada mal!). Pero de todas formas 
nombrare algunos casos , estos son solo los que conozco yo , pero deben haber muchisimos mas.

-Worms Famosos : Has oido hablar de Morris o de I Love You , claro , y si no , son unos famosos 
worms o gusanos que se expandieron por todo el mundo en menos de 48 horas e incluso aparecieron
en CNN (CNN!!) ; Tecnologia detras de Melissa ? automatizacion Active X que permitia la comuni-
cacion entre el Word y el Outlook ;Tecnologia detras de I Love You ?, Visual Basic Script y el 
Window Scripting Host , y aun mas sorprendente , el worm Bubbleboy un worm de Outlook que se 
reproduce simplemente abriendo el E-Mail , sin necesidad de que el usuario ejecute nada !!, 
tecnologia detras ? visual Basic Script y Active X dentro de un mensaje de E-Mail en formato 
HTML .

-Virus De Java : Landing Camel un Virus-Coder austarliano logro hacer un virus que se insertaba 
dentro de los applets de java al ser ejecutados estos desde un navegador , luego cuando el 
applet se ejecutaba en linea , este se comunicaba con un applet rey y este le daba las ordenes 
necesarias , simplemente increible , se imaginan donde un applet de yahho fuera infectado , 
yahoo seria nuestro y nadie sospecharia de un simple applet .

-Controles Active X : Luego del lanzamiento de la tecnologia Active x en Internet . el famosisi-
mo , respetado (con muchisima razon )grupo Chaos Computer CLub logro construir un control Active
X que se comunicaba con la aplicacion para administrar finazas Quiken , y lograba que la 
proxima vez que el usuario se conectara por medio de esta a su banco , la cuenta de su dinero 
seria transmitida a otra cuenta establecida por los Hackers , Simplemete Impresionante .

Cosas como estas son las que le quitan el sueo a uno y lo obligan a vivir .

Espero que les haya gustado y que no hayan quedado dusas ,cualquier duda/felicitacion/insulto 
/propuesta indecente de origen femenino/donacion debe ser llevada a cabo por medio de mi E-Mail.


Informacion del autor
---------------------
 
Tengo 17 vivo en Colombia (por el momento) y mi E-Mail es samsonov@uole.com

Gracias y a la orden 

