Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las extensiones de personalización de SQL Server Analysis Services son la base de la idea de implementar una arquitectura de complemento. En una arquitectura de complemento, puede desarrollar nuevos objetos de cubo y funcionalidad dinámicamente y compartirlos fácilmente con otros desarrolladores. Por lo tanto, las extensiones de personalización de Analysis Services proporcionan la funcionalidad que permite lograr lo siguiente:
Diseño e implementación dinámicos Inmediatamente después de diseñar e implementar extensiones de personalización de Analysis Services, los usuarios tienen acceso a los objetos y la funcionalidad al principio de la siguiente sesión de usuario.
Independencia de la interfaz Independientemente de la interfaz que use para crear las extensiones de personalización de Analysis Services, los usuarios pueden usar cualquier interfaz para acceder a los objetos y la funcionalidad.
Contexto de sesión Las extensiones de personalización de Analysis Services no son objetos permanentes en la infraestructura existente y no requieren que se vuelva a procesar el cubo. Se exponen y crean para el usuario en el momento en que el usuario se conecta a la base de datos y permanecen disponibles durante la duración de esa sesión de usuario.
Distribución rápida Comparta extensiones de personalización de Analysis Services con otros desarrolladores de software sin tener que ir a especificaciones detalladas sobre dónde o cómo encontrar esta funcionalidad extendida.
Las extensiones de personalización de Analysis Services tienen muchos usos. Por ejemplo, su empresa tiene ventas que implican diferentes monedas. Cree un miembro calculado que devuelva las ventas consolidadas en la moneda local de la persona que tiene acceso al cubo. Este miembro se crea como una extensión de personalización. A continuación, comparta este miembro calculado a un grupo de usuarios. Una vez compartidos, esos usuarios tienen acceso inmediato al miembro calculado en cuanto se conectan al servidor. Tienen acceso incluso si no usan la misma interfaz que la que se usó para crear el miembro calculado.
Las extensiones de personalización de Analysis Services son una modificación simple y elegante de la arquitectura de ensamblado administrada existente y se exponen en todo el modelo de objetos Microsoft.AnalysisServices.AdomdServer , la sintaxis de expresiones multidimensionales (MDX) y los conjuntos de filas de esquema.
Arquitectura lógica
La arquitectura de las extensiones de personalización de Analysis Services se basa en la arquitectura de ensamblado administrado y en los cuatro elementos básicos siguientes:
Atributo personalizado [PlugInAttribute]
Al iniciar el servicio, Analysis Services carga los ensamblados necesarios y determina qué clases tienen el atributo personalizado Microsoft.AnalysisServices.AdomdServer.PlugInAttribute .
Nota:
.NET Framework define atributos personalizados como una manera de describir el código y afectar al comportamiento en tiempo de ejecución. Para obtener más información, vea el tema "Información general sobre atributos" en la Guía del desarrollador de .NET Framework en MSDN.
Para todas las clases con el atributo personalizado Microsoft.AnalysisServices.AdomdServer.PlugInAttribute , Analysis Services invoca sus constructores predeterminados. Invocar todos los constructores al inicio proporciona una ubicación común desde la que crear nuevos objetos y que es independiente de cualquier actividad de usuario.
Además de crear una pequeña memoria caché de información sobre la creación y administración de extensiones de personalización, el constructor de clase normalmente se suscribe a los eventos Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened y Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing . Si no se suscribe a estos eventos, el recolector de elementos no utilizados de Common Language Runtime (CLR) puede marcar la clase de forma inapropiada para la limpieza.
Contexto de sesión
Para aquellos objetos basados en extensiones de personalización, Analysis Services crea un entorno de ejecución durante la sesión de cliente y compila dinámicamente la mayoría de esos objetos en este entorno. Al igual que cualquier otro ensamblado CLR, este entorno de ejecución también tiene acceso a otras funciones y procedimientos almacenados. Cuando finaliza la sesión de usuario, Analysis Services quita los objetos creados dinámicamente y cierra el entorno de ejecución.
Eventos
Los eventos de sesión desencadenan la creación de objetos On-Cube-OpenedCubeOpened y On-Cube-ClosingCubeClosing.
La comunicación entre el cliente y el servidor se produce a través de eventos específicos. Estos eventos hacen que el cliente tenga en cuenta las situaciones que conducen a que se compilan los objetos del cliente. El entorno del cliente se crea dinámicamente mediante dos conjuntos de eventos: eventos de sesión y eventos de cubo.
Los eventos de sesión están asociados al objeto de servidor. Cuando un cliente inicia sesión en un servidor, Analysis Services crea una sesión y desencadena el evento Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened . Cuando un cliente finaliza la sesión en el servidor, Analysis Services desencadena el evento Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing .
Los eventos de cubo están asociados al objeto de conexión. La conexión a un cubo desencadena el evento Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened . Al cerrar la conexión a un cubo, cerrando el cubo o cambiando a otro cubo, se desencadena un evento Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing .
Seguimiento y control de errores
Toda la actividad es rastreable mediante SQL Server Profiler. Los errores no controladas se notifican al registro de eventos de Windows.
Toda la creación y administración de objetos es independiente de esta arquitectura y es responsabilidad exclusiva de los desarrolladores de los objetos.
Fundamentos de la infraestructura
Las extensiones de personalización de Analysis Services se basan en componentes existentes. A continuación se muestra un resumen de las mejoras y mejoras que proporcionan la funcionalidad de las extensiones de personalización.
Ensamblados
El atributo personalizado , Microsoft.AnalysisServices.AdomdServer.PlugInAttribute, se puede agregar a los ensamblados personalizados para identificar las clases de extensiones de personalización de Analysis Services.
Cambios en el modelo de objetos AdomdServer
Los siguientes objetos del modelo de objetos Microsoft.AnalysisServices.AdomdServer se han mejorado o agregado al modelo.
New AdomdConnection (clase)
La clase Microsoft.AnalysisServices.AdomdServer.AdomdConnection es nueva y expone varias extensiones de personalización a través de propiedades y eventos.
Propiedades
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.SessionID*, un valor de cadena de solo lectura que representa el identificador de sesión de la conexión actual.
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.ClientCulture*, una referencia de solo lectura a la referencia cultural de cliente asociada a la sesión actual.
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.User*, una referencia de solo lectura a la interfaz de identidad que representa al usuario actual.
Eventos
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing
Nuevas propiedades en la clase Context
La clase Microsoft.AnalysisServices.AdomdServer.Context tiene dos nuevas propiedades:
Microsoft.AnalysisServices.AdomdServer.Context.Server*, una referencia de solo lectura al nuevo objeto de servidor.
Microsoft.AnalysisServices.AdomdServer.Context.CurrentConnection*, una referencia de solo lectura al nuevo objeto Microsoft.AnalysisServices.AdomdServer.AdomdConnection .
Nueva clase Server
La clase Microsoft.AnalysisServices.AdomdServer.Server es nueva y expone varias extensiones de personalización a través de propiedades de clase y eventos.
Propiedades
Microsoft.AnalysisServices.AdomdServer.Server.Name*, un valor de cadena de solo lectura que representa el nombre del servidor.
Microsoft.AnalysisServices.AdomdServer.Server.Culture*, referencia de solo lectura a la referencia cultural global asociada al servidor.
Eventos
Clase AdomdCommand
La clase Microsoft.AnalysisServices.AdomdServer.AdomdCommand ahora admite los siguientes comandos MDX:
Mejoras y extensiones MDX
El comando CREATE MEMBER se mejora con la caption propiedad , la display_folder propiedad y la associated_measure_group propiedad .
El comando UPDATE MEMBER se agrega para evitar la nueva creación de miembros cuando se necesita una actualización con la consiguiente pérdida de prioridad en la resolución de cálculos. Las actualizaciones no pueden cambiar el ámbito del miembro calculado, mover el miembro calculado a otro elemento primario o definir otro solveorder.
El comando CREATE SET se mejora con la caption propiedad , la display_folder propiedad y la palabra clave new STATIC | DYNAMIC .
Static significa que el conjunto se evalúa solo en tiempo de creación.
Dinámica significa que el conjunto se evalúa cada vez que se usa el conjunto en una consulta. El valor predeterminado es STATIC si se omite una palabra clave.
Los comandos CREATE KPI y DROP KPI se agregan a la sintaxis MDX. Los KPI se pueden crear dinámicamente a partir de cualquier script MDX.
Extensiones de conjuntos de filas de esquema
En MDSCHEMA_MEMBERS columna de ámbito se agrega. Los valores de ámbito son los siguientes: MDMEMBER_SCOPE_GLOBAL=1, MDMEMBER_SCOPE_SESSION=2.
En MDSCHEMA_SETS columna set_evaluation_context se agrega. Los valores de contexto de evaluación establecidos son los siguientes: MDSET_RESOLUTION_STATIC = 1, MDSET_RESOLUTION_DYNAMIC = 2.
En MDSCHEMA_KPIS columna de ámbito se agrega. Los valores de ámbito son los siguientes: MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2.