Mejora de la productividad del desarrollador con el uso de SQL Server 2005

Caso práctico técnico

Publicado: 19 de Diciembre de 2005 | Actualizado: 3 de Agosto de 2006
Logotipo de IT Showcase


El grupo Microsoft Worldwide Licensing and Pricing (WWLP) ha desarrollado recientemente una aplicación de licencias empresariales que resulta fácil de utilizar y que ofrece un mayor rendimiento respecto a la versión anterior. Se aprovechó la compatibilidad con el procesamiento de 64 bits disponible en Microsoft® SQL Server™ 2005 para reducir el elevado tamaño la base de datos de precios de la que disponían a un formato más compacto. Los desarrolladores incorporaron los datos de precios en un componente empresarial cuyo uso resultaba muy sencillo para los profesionales de licencias, favoreciendo con ello el cumplimiento de las directivas de precios. Se economizó en recursos de desarrollo al aprovecharse la compatibilidad con Common Language Runtime (CLR) de SQL Server, que permite la reutilización del componente empresarial del que se nutre la aplicación cliente.

*
**
**
Situación

El grupo Microsoft Worldwide Licensing and Pricing elaboraba los contratos empresariales con una aplicación cliente de difícil creación y distribución, y cuyo uso resultaba complejo para los especialistas en precios. En ocasiones, estos especialistas disponían de información de precios no actualizada para elaborar contratos que, en consecuencia, no cumplían con las directivas vigentes.

Solución

EZPET 2.0 emplea la compatibilidad con el procesamiento de 64 bits disponible en SQL Server 2005 para reducir 4,6 millones de puntos de precio a un conjunto compacto de precios y reglas empresariales muy manejable. La información de precios se encapsula en un componente que se utiliza en el cliente para redactar los contratos de licencia empresariales. Los datos de dicho componente se almacenan en la base de datos de EZPET para su reutilización en la creación de informes.

Ventajas

Disminución del número de recursos de desarrollo necesarios al ofrecer un solo componente que se ejecuta en el cliente y en el servidor.

Reducción de millones de puntos de precio, lo que supone un ahorro considerable en el procesamiento comparado con los sistemas de 32 bits.

Uso y distribución eficaces.

Aumento del cumplimiento con las directivas vigentes.

Mejor rendimiento derivado del componente .NET.

Productos y tecnologías

Microsoft Windows Server 2003

Microsoft Windows XP SP2

Microsoft SQL Server 2005

Microsoft SQL Server Reporting Services

Common Language Runtime de Microsoft SQL Server

Microsoft Visual Studio 2005

Microsoft .NET Framework, versión 2.0

En esta página
IntroducciónIntroducción
SituaciónSituación
SoluciónSolución
VentajasVentajas
ConclusiónConclusión

Introducción

El grupo WWLP necesitaba contar con una solución empresarial que pudiera agilizar el proceso de distribución de la información de precios y de creación de contratos de licencia empresariales. La solución que se implementó puede ayudar a otras organizaciones empresariales a desarrollar soluciones similares para sus profesionales de precios y administradores de cuentas. Este caso práctico se dirige a directores generales de información, técnicos responsables de la toma de decisiones y profesionales de TI implicados en la creación de soluciones de contratos de licencia y precios mejoradas en el ámbito empresarial.

Principio de la páginaPrincipio de la página

Situación

En Microsoft Corporation, el grupo WWLP trabaja para ofrecer soluciones de compatibilidad a los 1.000 especialistas y ejecutivos encargados de la preparación de contratos de licencia para clientes empresariales. El grupo utilizaba EZPET 1.0, una aplicación interna creada con Microsoft Excel®, para facilitar información de precios a los profesionales de licencias, proporcionar estimaciones de precios y distribuir dichas estimaciones a los clientes de contratos empresariales.

Los profesionales recibían mensualmente un libro de Excel que incluía los precios vigentes en ese momento. La producción de este libro de precios resultaba un proceso manual complicado. El depósito de información de las licencias incluye unos 22 millones de puntos de precio (precios relacionados con productos y volumen), de los cuales, 4,6 millones se encuentran activos actualmente. Debido al gran tamaño de esta base de datos de origen, la producción del libro constituía un proceso lento. El libro solía llegar tarde y, puesto que incluía una gran cantidad de información con formato de libro, era de difícil utilización. Con frecuencia, los profesionales de licencias hacían uso de información poco precisa y no actualizada a la hora de crear nuevos contratos. Esta situación condujo a una falta de cumplimiento con las directivas de precios.

Los especialistas en licencias necesitaban contar con información actualizada que además estuviera disponible sin conexión (mientras estuvieran viajando, por ejemplo). El grupo WWLP se vio obligado a reducir de alguna forma la cantidad masiva de datos del depósito a un número que resultara fácil de administrar, de distribuir y de utilizar en equipos locales. La simplificación de los datos de precios para que los usuarios de la aplicación pudieran emplear la información fácilmente requeriría recursos informáticos eficaces. Asimismo, para la creación de informes y el control de los gastos, el nuevo sistema tendría que almacenar los datos de los nuevos contratos de licencia empresariales en la base de datos de EZPET. Dicho sistema requeriría un nuevo software tanto en el cliente como en el servidor.

Principio de la páginaPrincipio de la página

Solución

La aplicación cliente del grupo WWLP incluye el componente EZPET 2.0 BIZ Component, con el que se puede distribuir con eficacia información de precios y reglas empresariales de contratos a equipos de escritorio de 1.000 usuarios. El cliente de EZPET obtiene y conserva la información de los contratos mientras que los profesionales de licencias y precios la utilizan.

La solución EZPET 2.0 se puede resumir del siguiente modo:

Consta de un solo componente que funciona como solución de cliente y de servidor para reducir los requisitos de recursos de desarrollo.

Distribuye un cliente inteligente de EZPET que captura un conjunto compacto de datos y reglas empresariales que posteriormente se envía a los profesionales de precios y administradores de cuentas y con el que estos últimos crean los nuevos contratos empresariales. Los contratos, con datos agregados, se serializan en el lenguaje de marcado extensible (XML) cada vez que se guardan.

Envía los archivos XML que incluyen los nuevos contratos a la base de datos de EZPET 2.0, ubicada en un servidor con SQL Server 2005, y almacena los datos XML serializados en la base de datos de EZPET.

Para la creación de informes, deserializa los datos utilizando CLR de SQL Server 2005 y procesa la información de los contratos empresariales.

Emplea la compatibilidad con el procesamiento de 64 bits disponible en SQL Server 2005 para reducir de forma eficaz los 4,6 millones de puntos de precio de los datos de origen a una colección compacta de precios y reglas empresariales básicos que se capturan en cada instancia de EZPET 2.0 BIZ Component.

Un mismo componente para el cliente y el servidor

Los datos de precios ya reducidos en tamaño se incorporan al cliente inteligente, EZPET 2.0 BIZ Component; éste se encuentra disponible para los profesionales de precios y licencias en un servidor desde el que se puede descargar fácilmente con la tecnología automática ClickOnce de Microsoft Visual Studio® 2005. Los profesionales utilizan la aplicación cliente para elaborar nuevas estimaciones de contratos de licencia empresariales. El cliente se ejecuta en equipos locales con Microsoft Windows® XP Professional SP2 y Microsoft .NET Framework, versión 2.0. Una vez finalizada una estimación de contrato, EZPET 2.0 BIZ Component se serializa en XML y se distribuye a un servidor con SQL Server 2005 para su almacenamiento como tipo de datos XML de SQL Server en la base de datos de EZPET 2.0.

El equipo de desarrollo diseñó el componente EZPET 2.0 BIZ Component para que funcionara como solución de cliente y de servidor. Gracias a la integración de CLR en SQL Server 2005, se pudo desarrollar un componente de C# que funcionaba en el cliente de EZPET y en el servidor de la base de datos de la siguiente manera:

EZPET 2.0 BIZ Component se ejecuta en equipos locales como cliente inteligente, desde donde obtiene datos reutilizables a medida que los profesionales de precios elaboran los nuevos contratos empresariales.

Cuando un usuario guarda un contrato, éste se serializa como XML y se almacena en el equipo local. El contrato serializado se puede volver a abrir en el mismo equipo para un posterior procesamiento, o bien, se puede enviar al servidor que aloja la base de datos de EZPET, donde se almacena como tipo de datos XML.

Para la creación de informes, el XML se deserializa y se ejecuta como una aplicación basada en .NET Framework.

Como ya se ha mencionado, la solución de un extremo a otro consta de un componente: EZPET 2.0 BIZ Component. La clave para desarrollar con eficacia esta aplicación radica en que toda la lógica subyacente se debe encapsular en un componente empresarial de C#, que se ejecuta en el equipo cliente, se serializa en XML y se devuelve a SQL Server 2005. CLR de SQL Server permite que el mismo código que se ejecuta en el cliente se ejecute también en el servidor sin programación adicional en C# ni codificación Transact-SQL (T-SQL).

Integración de CLR

Para hacer uso de la información de los contratos empresariales almacenada en la base de datos (por ejemplo, para generar un informe), la aplicación EZPET 2.0 recupera los datos de la base de datos y los procesa con las características de integración de CLR. La integración de CLR es la característica de SQL Server 2005 que admite los servicios principales de .NET.

EZPET sigue los pasos que se describen a continuación para realizar el almacenamiento y la recuperación de datos de contratos empresariales, procesarlos con la integración de CLR de SQL Server 2005 y generar informes:

1.

Almacenar el componente serializado
La aplicación almacena el componente EZPET 2.0 BIZ Component serializado en la base de datos de EZPET como tipo de datos XML. Para usar la serialización y la deserialización del componente con fines de reutilización, los desarrolladores de WWLP aprovecharon la compatibilidad de SQL Server 2005 con el tipo de datos XML. Utilizado en combinación con la capacidad de SQL Server 2005 para comprobar el cumplimiento con el esquema XML, el tipo de datos XML constituye un medio seguro de deserializar el formato XML en componentes de .NET que resultan idénticos a los componentes originales serializados en el cliente.

2.

Deserializar el XML para el procesamiento de .NET
Cuando sea necesario para la creación de un informe, la aplicación recupera y deserializa los datos XML de EZPET almacenados en la base de datos en código C#. Con la deserialización de los datos XML, se crea un componente compatible con .NET que es idéntico al componente EZPET 2.0 BIZ Component utilizado por el profesional de licencias para crear el contrato empresarial. Este paso no requiere desarrollo adicional, ya que el código fuente original se desarrolló en Visual Studio 2005 como código administrado. El módulo deserializado reconstruye el código original, junto con todos los datos agregados durante la creación de los contratos.

3.

Compilar y ejecutar un ensamblado CLR
La aplicación compila el código .NET en un ensamblado de lenguaje intermedio de Microsoft (MSIL). Compilado como ensamblado CLR, el componente se beneficia de todas las ventajas del código administrado .NET. Cuando se ejecuta la aplicación, CLR de SQL Server controla el procesamiento, lo que ayuda a garantizar que las operaciones sean seguras y estables.

4.

Generar un informe
La aplicación envía los datos a SQL Server 2005 Reporting Services.

DevProdSQL2005TCSF1

Figura 1. EZPET y la integración de CLR

En el siguiente ejemplo de código escrito en C#, se muestra el modo en que CLR de SQL Server 2005 asigna clases de contrato empresarial de CLR a tipos de datos XML en un componente EZPET 2.0 BIZ Component serializado que incluye los detalles de la licencia. En este ejemplo se devuelve el número de equipos de escritorio contemplados.

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Xml; 
using System.Xml.Serialization; 
using System.Data.SqlTypes; 
 
namespace DBInterface 
{     
 
   public class DataValues     
   {       
       
     public int getDesktopCount(SqlXml eaXML)         
     {        
           
      XmlSerializer _Serializer =  
        new System.Xml.Serialization.XmlSerializer
        (typeof(DealGenie.EnterpriseAgreement)); 
      XmlTextReader _Reader =  
        new XmlTextReader(eaXML.ToString()); 
      DealGenie.EnterpriseAgreement DeserializedDeal =  
        (DealGenie.EnterpriseAgreement)_Serializer.Deserialize(_Reader); 
      return (int) DeserializedDeal.NumberOfDesktops;         
    
      }   
      
    } 
   
 }

Como ventaja adicional, el código .NET que se ejecuta en CLR de SQL Server funciona mejor que T-SQL, ya que el código de la aplicación .NET se compila y se almacena en caché. El rendimiento del código T-SQL no es mejor, dado que se ejecuta en un intérprete.

Procesamiento de 64 bits

Como paso previo a la creación de una instancia de EZPET 2.0 BIZ Component, se reduce el tamaño de una base de datos de SQL Server con 4,6 millones de puntos de precio a tan sólo unos cientos de precios y reglas empresariales básicos. Para ello, el grupo WWLP implementó un servidor de 64 bits con SQL Server 2005 Analysis Services, que admite este tipo de procesamiento.

El problema real que suponía la reducción de tal cantidad de puntos de precio había sido la falta de RAM disponible en los sistemas de 32 bits. Un sistema de este tipo no cuenta con suficiente memoria para almacenar todos los datos. Por ello, se produce un aumento de la carga de E/S en el disco, lo que ralentiza las consultas de investigación. Al cambiar a un sistema de 64 bits, el grupo WWLP pudo incluir todos los datos en memoria y analizarlos rápidamente para determinar cuáles eran redundantes. Consultas que hubieran tardado horas en un servidor de 32 bits, no necesitaban más que unos pocos minutos en un servidor de 64 bits debido al aumento de RAM.

Arquitectura de la solución

EZPET 2.0 se diseñó para procesar de forma eficaz una base de datos de precios de gran tamaño y reducirla a un componente compacto y reutilizable que se pudiera ejecutar sin conexión en equipos cliente. La arquitectura de la aplicación consta de los siguientes componentes:

Servidor de base de datos. Servidor con Windows Server™ 2003, Enterprise x64 Edition y SQL Server 2005. Esta plataforma extrae los 4,6 millones de puntos de precio activos de una base de datos de 22 millones almacenada en los servidores de datos de origen. SQL Server 2005 destina un espacio de memoria suficientemente amplio para filtrar y reducir los 4,6 millones a unos pocos cientos de registros básicos y reglas empresariales relacionadas. Los datos reducidos son tan compactos que se pueden incorporar a instancias de EZPET 2.0 BIZ Component.

Cliente. Equipo local con Windows XP Professional y .NET Framework 2.0. EZPET 2.0 BIZ Component se descarga en un equipo local, donde se ejecuta sin conexión para crear los nuevos contratos empresariales. El cliente de EZPET 2.0 guarda los contratos en el equipo local, serializándolos en XML. Una vez finalizado el proceso, los contratos se vuelven a transferir al servidor como XML.

Servidor de análisis de datos. Servidor con Windows Server 2003 y SQL Server 2005 Reporting Services. En este servidor, las características de CLR de SQL Server 2005 utilizan código .NET para deserializar los componentes EZPET 2.0 BIZ Component, permitiendo de ese modo ejecutar el mismo código .NET que se utilizó en el cliente de EZPET. SQL Server 2005 Reporting Services ofrece la plataforma para la creación de informes.

En la figura 2 se muestra la arquitectura de la solución.

DevProdSQL2005TCSF2

Figura 2. Arquitectura de la solución EZPET 2.0

Principio de la páginaPrincipio de la página

Ventajas

Gracias a las nuevas características que ofrece SQL Server 2005, el grupo WWLP de Microsoft pudo desarrollar e implementar con rapidez una aplicación que resolvía problemas empresariales relevantes.

Reducción de los requisitos de desarrollo

Al desarrollar una aplicación que utiliza las características de CLR de SQL Server 2005, el grupo de desarrollo WWLP pudo ofrecer un único componente EZPET 2.0 BIZ Component. Este componente alimenta al cliente de EZPET y se ejecuta en el servidor de base de datos de EZPET que, a su vez, ejecuta SQL Server 2005. Debido a que CLR de SQL Server admite la deserialización de EZPET 2.0 BIZ Component desde XML, SQL Server 2005 no requiere ninguna programación adicional.

El componente se serializa en el cliente y, posteriormente, se deserializa en el servidor y se procesa mediante CLR; por ello, el tiempo de desarrollo se vio reducido en un 50%. Si los desarrolladores hubieran tenido que generar soluciones independientes en el cliente y el servidor, el proyecto hubiera necesitado las horas de trabajo de 500 profesionales. En su lugar, el grupo invirtió las horas equivalentes al trabajo de 250 personas en total en el desarrollo de EZPET 2.0, pudiendo destinar de esa forma la mitad de los recursos restante a otros proyectos.

Reducción eficaz de los datos

Al ejecutarse en un equipo de 64 bits, SQL Server 2005 Analysis Services aprovecha el significativo aumento de memoria disponible comparado con los sistemas de 32 bits. Para la reducción a 4,6 millones de los puntos de precio se tardan tan sólo unos minutos en el sistema de 64 bits, mientras que la misma operación llevaría horas en un sistema de 32. Este aumento en velocidad implica una mejora en el rendimiento de al menos un 95%.

Uso y distribución eficaces

EZPET 2.0 BIZ Component se monta en un servidor del que 1.000 profesionales de licencias y precios pueden obtenerlo fácilmente. Este pequeño componente sustituyó al extenso libro de precios de Excel que resultaba tan complejo en su uso y distribución.

Con EZPET 2.0 BIZ Component se obtienen las siguientes ventajas:

La carga de red se reduce en gran medida puesto que no es necesario enviar el libro de precios a través de la red para su actualización.

Los usuarios de EZPET 2.0 ahorran una media de al menos 15 minutos diarios, ya que no necesitan esperar para:

Terminar de descargar en el equipo una copia del libro de precios desde el servidor.

Abrir el libro en Excel.

Guardar el libro automáticamente si la función de almacenamiento automático está activada en Excel.

Guardar el libro al almacenar los cambios actualizados.

Cargar un contrato completo en el servidor.

En función de ocho horas diarias, cinco días a la semana, cuatro semanas al mes y 12 meses al año, los 15 minutos ganados suponen un ahorro de 62,5 horas al año por usuario. Si los 1.000 usuarios aprovechan este ahorro de tiempo, el grupo ahorra 62.500 horas anualmente. No obstante, la cifra de 15 minutos al día es un valor mínimo. El beneficio real puede ser superior.

Mejoras en el cumplimiento

Al ejecutarse en un servidor de 64 bits, SQL Server 2005 Analysis Services reduce los 4,6 millones de puntos de precio actuales a un conjunto compacto de precios y reglas empresariales básicos que posteriormente se encapsulan en EZPET 2.0 BIZ Component. Para los profesionales de precios, la obtención y el uso de este componente resultan mucho más sencillos que el libro de precios de Excel utilizado anteriormente.

Con el aumento en el uso de la información actual de precios, el cumplimiento por parte de los profesionales con los precios y las reglas empresariales actuales se ha duplicado de un 50% hasta casi un 100% desde la incorporación de EZPET 2.0.

Mejor rendimiento del componente .NET

El componente EZPET 2.0 BIZ Component deserializado se ejecuta como código .NET, que se compila y almacena en caché. Esta tecnología supone una mejora de rendimiento respecto a T-SQL, que es un lenguaje interpretado.

Principio de la páginaPrincipio de la página

Conclusión

La aplicación EZPET 2.0 utiliza las características de SQL Server 2005 para resolver problemas empresariales relevantes para el grupo WWLP de Microsoft. La admisión de servidores de 64 bits eliminó los "cuellos de botella" de memoria y posibilitó que la aplicación redujera una base de datos de gran tamaño a un componente compacto y fácil de utilizar. La compatibilidad con la serialización y la deserialización de XML permitió a los desarrolladores ahorrar recursos, al tiempo que generó un componente empresarial reutilizable que mejora enormemente el cumplimiento con las directivas de precios.

Muchas organizaciones pueden aplicar fácilmente las mismas características de SQL Server 2005 para crear soluciones para problemas empresariales similares.


Para obtener más información

Para obtener más información sobre SQL Server 2005, visite la página de inicio de este producto:

http://www.microsoft.com/spain/sql/default.mspx

Si desea realizar alguna pregunta, comentario o sugerencia sobre este documento, o bien obtener información adicional sobre Microsoft IT Showcase, envíe un correo electrónico a:
showcase@microsoft.com.


Principio de la páginaPrincipio de la página