Diccionario Informático Ampliado

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