|
|---|
Windows 2000 para programadores
( Gracias a Francisco Charte Ojeda por escribir las novedades de esta versión para El Rinconcito
con mucha antelación a la salida de su libro)
A diferencia de actualizaciones previas de Windows, como Windows 98 o NT 4, la próxima aparición
de Windows 2000, que podría ser presentado oficialmente en noviembre de este mismo año en el Comdex,
va a representar un gran cambio no sólo para los usuarios, sino también para los programadores.
Salvo pequeños detalles, las diferencias existentes entre Windows 95 y 98, desde el punto de vista de un
programador, son mínimas y más estéticas que de fundamento. Windows 2000, por el contrario,
aporta un número ingente de novedades, algunas tan importantes como COM+, WSI o el Directorio activo.
La interfaz de Windows 2000 está basada en la de Windows 98 e Internet Explorer 5, aunque se añaden
algunas novedades como los efectos visuales en la aparición y desaparición de ventanas y menús.
En este breve artículo, que no intenta en absoluto ser exhaustivo, se dan algunas indicaciones acerca de
cuáles son los puntos de mayor interés para un programador respecto a Windows 2000.
NUEVOS SERVICIOS DE COMPONENTES
En Windows 2000 hará su aparición la primera versión de COM+, la nueva generación de
los servicios de componentes en Windows. COM+ sigue siendo compatible, de manera ascendente, respecto a COM, integrando
todas las posibilidades que ya existían en MTS (Microsoft Transaction Server) y otras novedades exclusivas.
Un cambio fundamental, si se compara con COM, es que muchas características de los componentes COM+ no precisan
la escritura de código alguno. Al igual que ocurre con los archivos en una unidad de almacenamiento, los
componentes ahora cuentan con atributos que se almacenan en un catálogo global, conocido como Catálogo
COM+. Windows 2000 cuenta con una interfaz gráfica que permite administrar el Catálogo COM+, añadiendo,
modificando y eliminando componentes.
Los componentes COM+ pueden utilizar transacciones estableciendo simplemente un atributo. De igual manera, puede
indicarse que un componente utiliza colas de mensajes y puede ser usado de forma asíncrona, o que está
preparado para ejecutarse en un sistema de balanceo de cargas.
Otra novedad importante es la existencia de un nuevo modelo de comunicación de eventos, que hace innecesario
el uso de los conocidos puntos de conexión o las interfaces callback a medida. Este nuevo modelo se basa
en la metáfora de los publicadores y suscriptores. Un publicador anuncia que tiene determinados eventos,
especificando cuáles serían las interfaces a implementar y sus métodos. Un suscriptor, puede
explorar el Catálogo COM+ y suscribirse a los eventos que le interesen. En ningún momento el publicador
tiene conocimiento de los suscriptores ni viceversa.
La característica de balanceo de cargas viene a simplificar el mantenimiento y potenciar la escalabilidad
y disponibilidad de los servidores de aplicaciones. Los componentes que funcionan en un sistema de balanceo de
cargas se instalan en múltiples equipos, que forman un clúster de servidores. Todas las peticiones
de los clientes se dirigen hacia un mismo servidor, el que gestiona el sistema de balanceo, que se encargará
de comprobar cuál de las máquinas está más libre y creará en ella el componente
solicitado. Todo esto se efectúa de manera transparente para las aplicaciones y, lo mejor de todo, es que
el desarrollador de componentes casi no tiene que hacer nada para aprovechar estas características.
Otra novedad interesante en este campo, es la posibilidad de utilizar el servidor de colas de mensajes, MSMQ, para
establecer comunicación entre una aplicación y los componentes que necesita utilizar. El cliente,
en realidad, al realizar llamadas a métodos lo hace contra un objeto MSMQ conocido como grabadora, que se
encarga de registrar toda la información. Cuando el componente destino esté disponible, una reproductora
se encargará de enviarle toda esa información, momento en que se ejecutarán los métodos
llamado. Este mecanismo simplifica la creación de aplicaciones que pueden funcionar de manera desconectada,
por ejemplo para usuarios móviles, puesto que la vida del cliente y los componentes que utiliza no tiene
necesariamente que coexistir en el tiempo.
WINDOWS INSTALLER
Parece que Windows 2000 será el fin de los quebraderos de cabeza que plantean los procesos de instalación
y desinstalación de aplicaciones, o al menos eso es lo que pretende Microsoft con los servicios del WSI
(Windows Installer). WSI, que formará parte de Windows 2000, también está disponible para
versiones previas de Windows y, de hecho, se instala automáticamente con algunas aplicaciones, como Microsoft
Office 2000.
A partir de ahora las aplicaciones no deberán instalar ellas mismas los componentes que necesitan, copiando
archivos en lugares tan delicados como el directorio de sistema de Windows. Esta es una tarea que ahora queda en
manos de WSI, un servicio que, al igual que COM+, mantiene una base de datos con información acerca de todas
las aplicaciones instaladas, los paquetes que las componen y los componentes existentes en cada paquete.
La finalidad es evitar que una aplicación pueda sobrescribir componentes actuales con otros más antiguos,
o que deje componentes no usados cuando ya no son necesarios en el sistema. WSI se encarga, en el momento de la
instalación de una aplicación, de realizar las comprobaciones necesarias para evitar la duplicación
de componentes y otros problemas similares.
Aparte de los beneficios indudables que supone el uso de una base de datos centralizada que permite la instalación
y desinstalación segura de las aplicaciones, WSI también aporta a Windows un nuevo conjunto de funciones
que nuestras aplicaciones pueden utilizar en su provecho. Una aplicación puede configurarse para, por ejemplo,
instalar sólo un núcleo y dejar otras opciones sin instalar. En el momento en que se ejecute el programa,
la nueva API del WSI le permitiría comprobar qué opciones son las que están instaladas. Esta
API también puede utilizarse para realizar instalaciones a demanda, por ejemplo en el momento en que el
usuario selecciona una opción que no está disponible en ese momento.
Lo que más impresiona inicialmente de WSI, es su capacidad para restaurar instalaciones corruptas por algún
fallo. Puede instalar una aplicación, a continuación manipular librerías o componentes y,
en el momento de ejecutarla, WSI se encargará de comprobar cuál es el problema, restituyendo la instalación
y permitiendo que el programa se inicie como si nada hubiese ocurrido.
EL DIRECTORIO ACTIVO
Otra de las novedades de Windows 2000 será el Directorio activo, un servicio de directorio compatible con
el estándar de Internet LDAP y que facilita la localización de información en entornos distribuidos.
El Directorio activo puede ser usado por cualquier aplicación para localizar un recurso que necesita, así
como para publicar nuevos recursos o manipular los existentes, siempre que cuente con los permisos necesarios para
ello.
El acceso al Directorio activo desde una aplicación se efectúa a través de ADSI (Active Directorio
Services Interface), un servicio existente con anterioridad y que puede ser instalado también en Windows
95/98. Con ADSI puede accederse no sólo a servidores Windows 2000, sino también a Windows NT o servidores
Novell.
Con el Directorio activo desaparece el concepto de grupo de trabajo o workgroup, que era la unidad de administración
en los servidores NT. En su lugar, se utilizan dominios al estilo de Internet y, de hecho, se cuenta con un servidor
DNS que permite ese tipo de funcionamiento.
El Directorio activo es capaz de gestionar múltiples dominios, ya estén o no relacionados, dando
lugar a la formación de árboles de dominios y bosques, en los cuales existirían múltiples
árboles de dominios. Esto supone un avance impresionante a la hora de administrar y localizar recursos.
NTFS 5
Un aspecto fundamental, en cualquier sistema operativo, es siempre el servicio de almacenamiento de información
o sistema de archivos. Windows 2000 incorpora una nueva versión del conocido NTFS, concretamente la versión
5, que también aporta un conjunto importante de novedades.
Ahora es posible asignar cuotas de disco a los usuarios, limitando así el espacio que pueden utilizar. Esto
afecta al funcionamiento de algunas funciones, como GetDiskFreeSpaceEx(), que ahora diferencian entre el espacio
libre en la unidad y el espacio disponible que tiene el usuario. Para controlar las cuotas se han añadido
una serie de nuevas interfaces COM, que una aplicación podría utilizar según sus necesidades.
La integración de NTFS con CryptoAPI, un conjunto de funciones criptográficas, hace posible la creación
de archivos en los cuales el contenido está encriptado. Esta encriptación se efectúa sobre
la base de unas claves de usuario, que pueden establecerse con un nuevo conjunto de APIs. Es posible tanto crear
archivos encriptados como encriptar los que ya existan, para lo cual existen funciones como EncryptFile() y DecryptFile().
Otra novedad es la posibilidad de crear archivos con espacios vacíos en su interior. Imagine que tiene una
matriz de un millón de elementos, pero que sólo mil de ellos tienen un contenido útil en ese
momento. El almacenamiento de esa matriz en un archivo estándar, sin usar las nuevas características
de NTFS 5, requeriría el espacio necesario para un millón de elementos. Con NTFS 5, por el contrario,
es posible indicar al sistema de archivos que espacios de la matriz no son útiles en ese momento, de tal
forma que, aunque se almacenaría la matriz entera, ésta sólo ocuparía el espacio necesario
en el archivo.
A las anteriores, que son las más importantes, hay que añadir la posibilidad de crear enlaces múltiples
a un mismo archivo, al estilo de UNIX, o la capacidad para almacenar múltiples flujos de datos separados
en un mismo archivo.
COMPONENTES DE ACCESO A DATOS
Windows 2000 será la primera versión de Windows en integrar en el sistema servicios de acceso a datos,
concretamente la versión 2.5 de los MDAC (Microsoft Data Access Components). Esto significa que ya no será
preciso redistribuir con nuestras aplicaciones los motores de acceso a datos, siempre, claro está, que usemos
ADO u OLE DB.
La integración en el sistema de los MDAC debe, con el tiempo, simplificar la instalación de aplicaciones
y evitar conflictos entre diversas versiones de los motores de acceso a datos. Todas las herramientas de Microsoft
usan ADO y OLE DB, siendo los dos exponentes más conocidos Visual Basic y Visual C++. Otras herramientas,
como Delphi 5, ya incorporan nuevos componentes que usan ADO en lugar de BDE para acceder a los datos.
ADO 2.5 y OLE DB 2.5 incorporan también importantes novedades. Es posible acceder no sólo a bases
de datos y sus tablas, como es habitual en cualquier motor de acceso a datos, sino que existe también la
posibilidad de utilizar información de fuentes semi estructuradas. Esto significa que es posible usar ADO
para, por ejemplo, acceder al contenido de una hoja de Excel o los mensajes de Outlook.
También se ha integrado en OLE DB/ADO 2.5 la posibilidad de trabajar con XML, en una apuesta clara por esta
tecnología de representación de datos. Cualquier conjunto de datos puede almacenarse en un archivo
XML y ser recuperador usando ADO u OLE DB 2.5.
OTRAS NOVEDADES
Si bien las citadas en los puntos anteriores podrían considerarse las novedades más importantes,
existen otras muchas que resultarán interesantes para los programadores. Existe, por ejemplo, una nueva
API para acceder a servicios de fax, siendo posible la creación de servidores y clientes para este servicio.
Es posible, como en Windows 98, el uso de múltiples monitores para crear un escritorio virtual, existiendo
un grupo de funciones que permiten a las aplicaciones adaptarse a este tipo de configuración.
El GDI (Graphics Device Interface) cuenta con nuevas posibilidades, como el tratamiento de canales alfa, para la
creación de mapas de bits semitransparentes, o el uso de sombras suaves, con uso de gradientes de color.
Las aplicaciones para ordenadores portátiles también encontrarán nuevas funciones útiles,
como las que les permitirán conocer el estado de la batería. Con ellas, una aplicación podría
guardar la información sensible a pérdida antes de que el sistema quede sin alimentación.
CONCLUYENDO
Para concluir, e insistiendo de nuevo en que las novedades citadas son sólo algunas de las que podrá
encontrar un programador en Windows 2000, decir que esta nueva versión de Windows supondrá un importante
cambio en el proceso de diseño y desarrollo de aplicaciones. Estos cambios afectan al proceso de instalación
de aplicaciones, en el que está implicado el WSI; el acceso a datos, que pasa por el uso de los MDAC; la
forma de usar componentes software, mediante COM+, etc.
Francisco Charte
El Rinconcito Informático: 25/06/2000 - (c) 2000 - 2008 | Creación y mantenimiento : José Luis Freire | Se pretende poder utilizar cualquier navegador. Recomendado 1024x768 |