BDC-Architektur

Letzte Änderung: Donnerstag, 15. April 2010

Gilt für: SharePoint Server 2010

Inhalt dieses Artikels
BDC-Modell und BDC-Metadatenspeicher
Laufzeitobjektmodell
Verwaltungsobjektmodell
Infrastrukturkomponente
BDC-Konnektoren und das Konnektorframework
Secure Store Service und SharePoint-Sicherheitsinfrastruktur
Zwischenspeichern von Metadaten

Der Business Data Connectivity-Dienst (BDC) ist Nachfolger des Geschäftsdatenkatalogs, der mit Microsoft Office SharePoint Server 2007 bereitgestellt wurde; in dieser Version wird BDC über Microsoft SharePoint Foundation 2010 bereitgestellt. BDC ermöglicht Ihnen die deklarative Modellierung externer Systeme, sodass Sie externe Daten in SharePoint 2010 (und in Microsoft Office-Anwendungen über Business Connectivity Services Rich Client-Erweiterungen) anzeigen können. Mithilfe von BDC kann die Lücke zwischen SharePoint-Websites und Ihren externen Systemen geschlossen werden, indem Ihnen ermöglicht wird, Schlüsseldaten aus verschiedenen externen Systemen in SharePoint-Listen (über das neue Feature für externe Listen und Externe Datenspalten), Webparts, Suchvorgängen, Benutzerprofilen und benutzerdefinierten Anwendungen einzufügen.

BDC wird als gemeinsamer Dienst in Microsoft SharePoint Foundation 2010 bereitgestellt und kann vom Zentraladministrator aktiviert werden. Die Basisfunktion von BDC besteht in der Unterstützung der Konnektivität mit den folgenden Arten externer Systeme:

  • Datenbanken

  • Windows Communication Foundation (WCF)-Endpunkte

  • .NET-Verbindungsassemblys

  • Benutzerdefinierte Datenquellen (BDC enthält ein Framework, an das Entwickler Konnektoren für neue externe Systemtypen anschließen und so den Zugriff auf diese neuen Datenquellentypen über BDC ermöglichen können)

Ein wichtiges Entwurfsziel für BDC ist die Möglichkeit des deklarativen Zugriffs auf Daten aus verschiedenen externen Systemen mit minimalem Codierungsaufwand. Zu diesem Zweck bietet BDC den homogenen Zugriff auf die zugrunde liegenden Datenquellen mithilfe eines Metadatenmodells, mit dem ein einheitliches und vereinfachtes Clientobjektmodell bereitgestellt wird.

Microsoft Business Connectivity Services (BCS) bietet Möglichkeiten zur Bereitstellung von Tools sowohl in Microsoft SharePoint Designer als auch in Microsoft Visual Studio. Erfahrene Benutzer, die über vergleichbare Fähigkeiten wie Datenbankentwickler verfügen, können externe Inhaltstypen durch Beschreiben der API von Geschäftsanwendungen mithilfe des Designer für externe Inhaltstypen in SharePoint Designer erstellen. Nachdem der Benutzer den externen Inhaltstyp in SharePoint Designer gespeichert hat, stehen die Daten im externen System den SharePoint-Websites über die anderen Business-Konnektivitätsdienste (Business Connectivity Services)-Features in SharePoint 2010 und das BDC-Objektmodell unmittelbar zur Verfügung.

BDC setzt sich aus einem BDC-Metadatenspeicher und einem Objektmodell zusammen. Diese stellen eine einfache, konsistente und objektorientierte Programmierschnittstelle für Geschäftslogik in verschiedenen Geschäftsanwendungen bereit.

Abbildung 1 enthält eine Übersicht über die oberen Ebenen der Architektur von BDC.

Abbildung 1. Überblick über die oberen Ebenen der BDC-Architektur

Übersicht über BDC

Abbildung 2 stellt die unteren Ebenen der Architektur von BDC dar.

Abbildung 2. Überblick über die unteren Ebenen der BDC-Architektur

Basisarchitektur von BDC

BDC-Modell und BDC-Metadatenspeicher

In BDC werden Metadaten zur Beschreibung der APIs von externen Anwendungen verwendet. Nach der Registrierung der API-Beschreibung einer externen Anwendung in BDC stellt BDC dynamische Datenzugriffsverbindungen mit externen Daten bereit, ohne dass zusätzlicher Code erforderlich ist. Wenn Sie beispielsweise Daten aus der AdventureWorks-Datenbank in Ihren SharePoint-Listen und Webparts anzeigen möchten, definieren Sie die Metadaten für die SQL-Abfragen, die auf Daten in der AdventureWorks-Datenbank zugreifen.

Erfahrene Benutzer oder Entwickler definieren die Metadaten für die einzelnen Datenquellen durch Definieren der Geschäftsentitäten, mit denen Geschäftsanwendungen kommunizieren, und der Methoden, die in den Anwendungen zur Verfügung stehen. Im AdventureWorks-Beispiel könnten Sie beispielsweise die Metadaten für die folgenden Entitäten definieren: Customer, SalesOrder und Product. Für jede Entität, die Sie in BDC zur Verfügung stellen möchten, definieren Sie Metadaten für die Methoden, die zum Abrufen der Daten vom externen System verwendet werden.

Beim Metadatenmodell werden die zugrunde liegenden physischen Quellen abstrahiert und ein konsistentes sowie einfaches Modell für Autoren von Metadaten bereitgestellt, die mit verschiedenen Arten von Geschäftsanwendungen arbeiten.

Das BDC-Modell definiert semantische Metadaten, wie z. B. externe Inhaltstypen und Zuordnungen, die der API zusätzliche Bedeutung geben. Nach dem Erstellen der Metadaten ist es für Entwickler, die benutzerdefinierte Lösung mithilfe von BDC programmieren, nicht notwendig, die Back-End-API zu verstehen; sie können anstelle dessen die vereinfachten BDC-Objektmodelle verwenden. So werden beispielsweise vom BDC-Laufzeitobjektmodell Aufrufe wie System.Entity, Entity.FindFiltered und Entity.FindAssociated bereitgestellt, durch die es sehr einfach ist, die erforderlichen Back-End-Daten abzurufen. Dieser Entwurf vereinfacht sowohl für Autoren von Metadaten als auch für Entwickler das Arbeiten mit externen Systemen, die in der Regel komplexe APIs aufweisen.

BDC-Modelle werden in einer relationalen Datenbank gespeichert und in den Arbeitsspeicher geladen oder materialisiert, ehe sie von der BDC-Laufzeit interpretiert werden können. Die Gruppe der Datenbanktabellen und gespeicherten Prozeduren zum Aufbewahren, Lesen und Bearbeiten des BDC-Modells bilden die Komponente BDC-Metadatenspeicher. Diese Komponente ist nur Bestandteil der Serverbereitstellungen von Business-Konnektivitätsdienste (Business Connectivity Services). Das Verwaltungsobjektmodell sollte zum Bearbeiten der Elemente eines BDC-Modells verwendet werden, anstatt die Datenbank direkt zu bearbeiten. Sie sollten die Datenbank NIEMALS bearbeiten. Auf dem Client wird diese Komponente durch eine nicht dauerhafte In-Memory-Deserialisierung des BDC-Modells in einer Microsoft SQL Server 2005 Compact Edition-Datenbank ersetzt.

HinweisHinweis

Der BDC-Metadatenspeicher enthält keinen externen Daten; er enthält nur Metadaten zum externen System.

Weitere Informationen finden Sie unter Infrastruktur des BDC-Modells.

Laufzeitobjektmodell

Wie im Diagramm der unteren Ebenen weiter oben dargestellt, verfügt die offene Schnittstelle von BDC über zwei Gruppen von APIs: das Laufzeitobjektmodell und das Verwaltungsobjektmodell.

Das Laufzeitobjektmodell wurde für BDC-Clients und -Anwendungen entwickelt. Es zeichnet sich durch die folgenden zwei Hauptfunktionen aus:

  • Bereitstellen einer intuitiven, objektorientierten Schnittstelle zur Abstraktion der zugrunde liegenden Datenquellen. Mithilfe des Laufzeitobjektmodells werden Clientanwendungen davor geschützt, Back-End-spezifische Codierparadigmen zu erlernen, und Clients wird die Möglichkeit gegeben, auf alle externen Systeme über eine einzelne einheitliche Schnittstelle zuzugreifen. Aufgrund des Laufzeitobjektmodells ist das Aufrufen einer Methode in einer SAP-Anwendung mit dem Aufrufen einer Methode in einer Siebel-Anwendung oder dem Ausführen einer Abfrage in Microsoft SQL Server vergleichbar. Mithilfe des Laufzeitobjektmodells können Anwendungen Back-End-Daten lesen, schreiben und aktualisieren.

    HinweisHinweis

    Die eigentliche Methodenausführung wird von BDC nicht durchgeführt, sondern nur die Clientaufrufe an den entsprechenden ADO.NET-Anbieter für Datenbanken, den Webdiensteproxy für Webdienste und das .NET Framework-Assembly für .NET Framework-Assemblys delegiert.

  • Ermöglichen des Lesens (ausschließlich) von Metadatenobjekten in der Metadaten-Datenbank und Ausführen der dort beschriebenen Geschäftslogik. Da im Arbeitsspeicher zwischengespeicherte Metadaten von Laufzeitobjektmodell verwendet werden, arbeitet es äußerst schnell. Clients, die nur Metadateninformationen aus der Metadaten-Datenbank abfragen müssen, verwenden das Laufzeitobjektmodell.

Der Runtime-Namespace besitzt zwei Schlüsselobjekte:

  • IEntityInstance. Eine Entitätsinstanz ist vom Konzept her eine einzelne Datenzeile, die von einer Back-End-Geschäftsanwendung in BDC zurückgegeben wird. Die zugrunde liegenden Datenquellen werden von der IEntityInstance-Schnittstelle abstrahiert und die Clients davor geschützt, anwendungsspezifische Codierparadigmen erlernen zu müssen. Die Instanz ermöglicht es ihnen, auf alle Geschäftsdaten auf einheitliche, vereinfachte Weise zuzugreifen. Mithilfe der IEntityInstance-Schnittstelle können Sie eine Datenzeile in einer Datenbank auf dieselbe Art bearbeiten wie eine von einem Webdienst zurückgegebene komplexe .NET Framework-Struktur.

    Eine Entitätsinstanz in BDC weist eine spezielle Semantik auf. So besitzt sie beispielsweise die Fähigkeit, zu erkennen, welches Feld bzw. welche Felder in der Zeile den Bezeichner für die Entitätsinstanz darstellen und ermöglicht es Ihnen, Methoden wie GetAssociated, GetIdentifierValues und Execute für diese Entitätsinstanz aufzurufen.

  • IEntityInstanceEnumerator. Enumeratoren können zum Lesen der Daten in der Auflistung verwendet werden. Sie können jedoch nicht zur Bearbeitung der zugrunde liegenden Auflistung verwendet werden. IEntityInstanceEnumerator unterstützt das Streaming und ist deshalb sehr nützlich, wenn umfangreiche Datenmengen von der Back-End-Anwendung zurückgegeben werden.

Verwaltungsobjektmodell

Mithilfe des Verwaltungsobjektmodells können Sie Metadatenobjekte im BDC-Metadatenspeicher erstellen, lesen, aktualisieren und löschen. Es stellt die umfassende Überprüfung von Metadaten zum Zeitpunkt der Veröffentlichung bereit und sorgt für die referenzielle Integrität innerhalb des Speichers. Zur Leistungssteigerung werden die Metadaten im Arbeitsspeicher vom Modell zwischengespeichert. Deshalb ist seine Latenz relativ hoch, und es kann bis zu einer Minute dauern, bis der Cache in allen Front-End-Webservern und Anwendungsservern in der Bereitstellung von BDC aktualisiert wird. Diese Komponente ist Teil der Serverbereitstellungen von Business-Konnektivitätsdienste (Business Connectivity Services). Auf dem Client ist eine Clientversion des Verwaltungsobjektmodells enthalten.

Infrastrukturkomponente

Die Infrastrukturkomponente ist im Microsoft.BusinessData.Infrastructure-Namespace der Microsoft.SharePoint.dll definiert.

Wie weiter oben im Diagramm mit der Architektur der unteren Ebenen von BDC dargestellt, benötigt das Laufzeitobjektmodell die Infrastrukturkomponente, um Verbindungen mit der physischen Datenquelle zu erstellen und zu verwalten. Die Infrastrukturkomponente stellt die Laufzeitverbindungsverwaltung sowie gemeinsame Sicherheitsdienste für BDC-Clients bereit.

BDC-Konnektoren und das Konnektorframework

In Business-Konnektivitätsdienste (Business Connectivity Services) werden Konnektoren für alle unterstützten Datenquelltypen bereitgestellt. Darüber hinaus wird die Erweiterbarkeit über ein Anbietermodell unterstützt. ISVs und Partner können BDC-Konnektoren für die Back-End-Typen entwickeln, die nicht von BDC unterstützt werden.

Secure Store Service und SharePoint-Sicherheitsinfrastruktur

Die Authentifizierung für Back-End-Systeme wird von BDC über die integrierte Authentifizierung oder über das Feature für einmaliges Anmelden (Single Sign-On, SSO) in Office SharePoint Server 2007 bereitgestellt. In SharePoint Server 2010 wird auch die anspruchs- oder tokenbasierte Authentifizierung unterstützt. SSO wird durch Secure Store Service ersetzt; dieser Dienst ist ebenfalls austauschbar. Wenn also SharePoint Secure Store Service von einem Drittanbieter nicht verwendet werden soll, sondern ein benutzerdefiniertes oder sonstiges Feature eines ISV, wird dieses von BDC vollständig unterstützt.

Zwischenspeichern von Metadaten

Zur Leistungssteigerung werden alle Metadatenobjekte von BDC zwischengespeichert. Auf diese Weise werden alle Metadatenobjekte aus dem Cache materialisiert und dem Laufzeitobjektmodell gleichzeitig bereitgestellt, anstatt für jeden Methodenaufruf einzeln Roundtrips zur Metadaten-Datenbank auszuführen. Durch die Zwischenspeicherung von Metadaten erhalten Clients einen schnelleren Zugriff auf die Metadatenobjekte, die sie aufrufen.

HinweisHinweis

Mithilfe des Objektsmodells können Sie die Zwischenspeicherung einzeln auf der Ebene der Metadatenobjekte aktivieren oder deaktivieren. Folglich ist es nicht notwendig, Objekte, die selten verwendet werden, zwischenzuspeichern.

Die Objekte werden von BDC beim erstmaligen Laden zwischengespeichert. Ein Zeitgeber auf jedem Server sucht einmal pro Minute nach Änderungen an den Metadatenobjekten. Erkennt er eine Änderung an einem Metadatenobjekt, wird der Cache geleert und anschließend neu geladen. Deshalb müssen Sie nach dem Ändern von Metadaten bis zu eine Minute warten, bis die Änderungen an alle Server in der Farm verteilt sind. Die Änderungen werden auf dem Server, auf dem Sie diese durchführen, sofort angezeigt.