Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
SQL Server Analysis Services-Personalisierungserweiterungen sind die Grundlage für die Implementierung einer Plug-In-Architektur. In einer Plug-In-Architektur können Sie neue Cubeobjekte und -funktionen dynamisch entwickeln und problemlos für andere Entwickler freigeben. Als solche bieten Analysis Services-Personalisierungserweiterungen die Funktionalität, die es ermöglicht, Folgendes zu erreichen:
Dynamisches Design und dynamische Bereitstellung Unmittelbar nach dem Entwerfen und Bereitstellen von Analysis Services-Personalisierungserweiterungen haben Benutzer Zugriff auf die Objekte und Funktionen zu Beginn der nächsten Benutzersitzung.
Schnittstellenunabhängigkeit Unabhängig von der Schnittstelle, die Sie zum Erstellen der Analysis Services-Personalisierungserweiterungen verwenden, können Benutzer eine beliebige Schnittstelle verwenden, um auf die Objekte und Funktionen zuzugreifen.
Sitzungskontext Analysis Services-Personalisierungserweiterungen sind keine dauerhaften Objekte in der vorhandenen Infrastruktur und erfordern keine erneute Verarbeitung des Cubes. Sie werden für den Benutzer zum Zeitpunkt der Verbindung mit der Datenbank verfügbar gemacht und für den Benutzer erstellt und bleiben für die Dauer dieser Benutzersitzung verfügbar.
Schnelle Verteilung Teilen Sie Analysis Services-Personalisierungserweiterungen mit anderen Softwareentwicklern, ohne detaillierte Spezifikationen darüber zu erhalten, wo oder wie Sie diese erweiterte Funktionalität finden können.
Analysis Services-Personalisierungserweiterungen haben viele Verwendungsmöglichkeiten. Beispielsweise verfügt Ihr Unternehmen über Verkäufe, die unterschiedliche Währungen umfassen. Sie erstellen ein berechnetes Element, das den konsolidierten Umsatz in der lokalen Währung der Person zurückgibt, die auf den Cube zugreift. Sie erstellen dieses Mitglied als Personalisierungserweiterung. Anschließend geben Sie dieses berechnete Mitglied für eine Gruppe von Benutzern freigegeben. Nach der Freigabe haben diese Benutzer unmittelbaren Zugriff auf das berechnete Mitglied, sobald sie eine Verbindung mit dem Server herstellen. Sie haben Zugriff, auch wenn sie nicht dieselbe Schnittstelle wie die Schnittstelle verwenden, die zum Erstellen des berechneten Elements verwendet wurde.
Analysis Services-Personalisierungserweiterungen sind eine einfache und elegante Änderung an der vorhandenen verwalteten Assemblyarchitektur und werden im gesamten Analysis Services Microsoft.AnalysisServices.AdomdServer-Objektmodell , der MDX-Syntax (Multidimensional Expressions) und schema rowsets verfügbar gemacht.
Logische Architektur
Die Architektur für Analysis Services-Personalisierungserweiterungen basiert auf der verwalteten Assemblyarchitektur und den folgenden vier grundlegenden Elementen:
Das benutzerdefinierte Attribut [PlugInAttribute]
Beim Starten des Diensts lädt Analysis Services die erforderlichen Assemblys und bestimmt, welche Klassen das benutzerdefinierte Attribut "Microsoft.AnalysisServices.AdomdServer.PlugInAttribute " aufweisen.
Hinweis
Das .NET Framework definiert benutzerdefinierte Attribute als Eine Möglichkeit, Ihren Code zu beschreiben und das Laufzeitverhalten zu beeinflussen. Weitere Informationen finden Sie im Thema "Attributes Overview" im .NET Framework Developer's Guide auf MSDN.
Für alle Klassen mit dem benutzerdefinierten Attribut "Microsoft.AnalysisServices.AdomdServer.PlugInAttribute " ruft Analysis Services ihre Standardkonstruktoren auf. Das Aufrufen aller Konstruktoren beim Start stellt einen gemeinsamen Speicherort bereit, an dem neue Objekte erstellt werden sollen und die unabhängig von jeder Benutzeraktivität sind.
Zusätzlich zum Erstellen eines kleinen Caches mit Informationen zum Erstellen und Verwalten von Personalisierungserweiterungen abonniert der Klassenkonstruktor in der Regel die Ereignisse "Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened " und "Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing ". Wenn Sie diese Ereignisse nicht abonnieren, wird die Klasse möglicherweise nicht für die Bereinigung durch den Garbage Collector für die Common Language Runtime (CLR) gekennzeichnet.
Sitzungskontext
Für Objekte, die auf Personalisierungserweiterungen basieren, erstellt Analysis Services während der Clientsitzung eine Ausführungsumgebung und erstellt dynamisch die meisten dieser Objekte in dieser Umgebung. Wie jede andere CLR-Assembly hat diese Ausführungsumgebung auch Zugriff auf andere Funktionen und gespeicherte Prozeduren. Wenn die Benutzersitzung endet, entfernt Analysis Services die dynamisch erstellten Objekte und schließt die Ausführungsumgebung.
Ereignisse
Die Objekterstellung wird durch die Sitzungsereignisse On-Cube-OpenedCubeOpened und On-Cube-ClosingCubeClosing.
Die Kommunikation zwischen dem Client und dem Server erfolgt über bestimmte Ereignisse. Diese Ereignisse machen den Client auf die Situationen aufmerksam, die dazu führen, dass die Objekte des Clients erstellt werden. Die Umgebung des Clients wird dynamisch mit zwei Ereignisgruppen erstellt: Sitzungsereignisse und Cubeereignisse.
Sitzungsereignisse sind dem Serverobjekt zugeordnet. Wenn sich ein Client auf einem Server anmeldet, erstellt Analysis Services eine Sitzung und löst das Ereignis "Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened" aus . Wenn ein Client die Sitzung auf dem Server beendet, löst Analysis Services das Ereignis "Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing" aus .
Cubeereignisse werden dem Verbindungsobjekt zugeordnet. Durch das Herstellen einer Verbindung mit einem Cube wird das Ereignis "Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened" ausgelöst . Wenn Sie die Verbindung mit einem Cube schließen, indem Sie entweder den Würfel schließen oder zu einem anderen Cube wechseln, wird ein Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing-Ereignis ausgelöst.
Rückverfolgbarkeit und Fehlerbehandlung
Alle Aktivitäten können mithilfe von SQL Server Profiler nachverfolgt werden. Unbehandelte Fehler werden dem Windows-Ereignisprotokoll gemeldet.
Die gesamte Objekterstellung und -verwaltung ist unabhängig von dieser Architektur und liegt in der alleinigen Verantwortung der Entwickler der Objekte.
Infrastrukturstiftungen
Analysis Services-Personalisierungserweiterungen basieren auf vorhandenen Komponenten. Im Folgenden finden Sie eine Zusammenfassung der Verbesserungen und Verbesserungen, die die Personalisierungserweiterungsfunktionen bereitstellen.
Assemblys
Das benutzerdefinierte Attribut Microsoft.AnalysisServices.AdomdServer.PlugInAttribute kann Ihren benutzerdefinierten Assemblys hinzugefügt werden, um Analysis Services-Personalisierungserweiterungsklassen zu identifizieren.
Änderungen am AdomdServer-Objektmodell
Die folgenden Objekte im Microsoft.AnalysisServices.AdomdServer-Objektmodell wurden dem Modell erweitert oder hinzugefügt.
Neue AdomdConnection-Klasse
Die Microsoft.AnalysisServices.AdomdServer.AdomdConnection-Klasse ist neu und macht mehrere Personalisierungserweiterungen über Eigenschaften und Ereignisse verfügbar.
Eigenschaften
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.SessionID*, ein schreibgeschützter Zeichenfolgenwert, der die Sitzungs-ID der aktuellen Verbindung darstellt.
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.ClientCulture*, ein schreibgeschützter Verweis auf die Clientkultur, die der aktuellen Sitzung zugeordnet ist.
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.User*, ein schreibgeschützter Verweis auf die Identitätsschnittstelle, die den aktuellen Benutzer darstellt.
Ereignisse
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing
Neue Eigenschaften in der Context-Klasse
Die Microsoft.AnalysisServices.AdomdServer.Context-Klasse verfügt über zwei neue Eigenschaften:
Microsoft.AnalysisServices.AdomdServer.Context.Server*, ein schreibgeschützter Verweis auf das neue Serverobjekt.
Microsoft.AnalysisServices.AdomdServer.Context.CurrentConnection*, ein schreibgeschützter Verweis auf das neue Microsoft.AnalysisServices.AdomdServer.AdomdConnection-Objekt .
Neue Serverklasse
Die Microsoft.AnalysisServices.AdomdServer.Server-Klasse ist neu und macht mehrere Personalisierungserweiterungen über Klasseneigenschaften und Ereignisse verfügbar.
Eigenschaften
Microsoft.AnalysisServices.AdomdServer.Server.Name*, ein schreibgeschützter Zeichenfolgenwert, der den Servernamen darstellt.
Microsoft.AnalysisServices.AdomdServer.Server.Culture*, ein schreibgeschützter Verweis auf die globale Kultur, die dem Server zugeordnet ist.
Ereignisse
AdomdCommand-Klasse
Die Microsoft.AnalysisServices.AdomdServer.AdomdCommand-Klasse unterstützt jetzt die folgenden MDX-Befehle:
MDX-Erweiterungen und Verbesserungen
Der BEFEHL CREATE MEMBER wird mit der caption Eigenschaft, der display_folder Eigenschaft und der associated_measure_group Eigenschaft erweitert.
Der Befehl UPDATE MEMBER wird hinzugefügt, um die Neuerstellung von Membern zu vermeiden, wenn eine Aktualisierung mit dem daraus resultierenden Verlust der Rangfolge bei der Lösung von Berechnungen erforderlich ist. Aktualisierungen können den Bereich des berechneten Elements nicht ändern, das berechnete Element auf ein anderes übergeordnetes Element verschieben oder eine andere solveorderdefinieren.
Der BEFEHL CREATE SET wird mit der caption Eigenschaft, der display_folder Eigenschaft und dem neuen STATIC | DYNAMIC Schlüsselwort erweitert.
Statisch bedeutet, dass der Satz nur zur Erstellungszeit ausgewertet wird.
"Dynamisch" bedeutet, dass der Satz jedes Mal ausgewertet wird, wenn der Satz in einer Abfrage verwendet wird. Der Standardwert ist STATIC , wenn ein Schlüsselwort weggelassen wird.
CREATE KPI- und DROP-KPI-Befehle werden der MDX-Syntax hinzugefügt. KPIs können dynamisch aus jedem MDX-Skript erstellt werden.
Schema Rowsets-Erweiterungen
Auf MDSCHEMA_MEMBERS Bereichsspalte wird hinzugefügt. Bereichswerte sind wie folgt: MDMEMBER_SCOPE_GLOBAL=1, MDMEMBER_SCOPE_SESSION=2.
On MDSCHEMA_SETS set_evaluation_context column is added. Legen Sie Werte für die Auswertung wie folgt fest: MDSET_RESOLUTION_STATIC = 1, MDSET_RESOLUTION_DYNAMIC = 2.
Auf MDSCHEMA_KPIS Bereichsspalte wird hinzugefügt. Bereichswerte sind wie folgt: MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2.