-
Ein
Computernetzwerk verbindet mehrere prozessorgesteuerte Vorrichtungen.
Ein Netzwerk ermöglicht,
dass die verbundenen Vorrichtungen verschiedene Funktionen und Dienste
liefern. Bei modernen dienstbasierten Systemen gibt es oft viele
(oft Tausende von) Bestimmungsorte(n), die eine gegebene Aufgabe
implementieren können.
Jeder Bestimmungsort kann jedoch unterschiedliche Fähigkeiten
und Einschränkungen oder
Beschränkungen
bezüglich
der Aufgabe aufweisen. Falls ein Client mit einem Bestimmungsort
vertraut ist, kann der Client diese Informationen verwenden, um
die Konfiguration und den Aufruf der Aufgabe zu führen. Falls
jedoch der Client den Bestimmungsort zu dem Zeitpunkt eines Auftragsaufrufs
nicht ausgewählt
hat (was z. B. mit großer
Wahrscheinlichkeit der Fall ist, wenn ein Dienst zwischen dem Client
und dem Bestimmungsort liegt), hat der Client keine Möglichkeit,
zu verstehen, wie die Aufgabe zu konfigurieren ist. Normalerweise
ist es nicht sinnvoll, dass der Client die Fähigkeiten jedes potentiellen
einzelnen Bestimmungsorts kennt, da es möglicherweise Tausende von potentiellen
Bestimmungsorten geben könnte.
-
Jedesmal
wenn der Endbenutzer oder eine Endbenutzeranwendung eine Aufgabe
ausführt,
besteht das Ziel darin, alle Vorrichtungen, Dienstmerkmale und Optionen,
die in dem Netzwerk verfügbar
sind, genau zu präsentieren.
Verteilte Unternehmensnetzwerkumgebungen sind besonders dynamisch,
und Dienste, die für
einen Endbenutzer verfügbar
sind, können
online und offline sein. Softwareaktualisierungen können die Merkmalssätze verändern, die
in Client-Software, wie z. B. Treibern, verfügbar sind. Netzwerkverwaltungseinrichtungen
müssen
eventuell eine Richtlinie bezüglich
Diensten, die in dem Netzwerk eingesetzt werden, durchset zen und
eine Verwendung der eingesetzten Dienste verfolgen. Aktuelle Netzwerksysteme
erfordern auf Seiten eines Client-Dienstes ein Vorwissen über die
anderen Dienste, die über
das Unternehmen verteilt sind, die dann ihr Verhalten und ihre Merkmalssätze dementsprechend
zuschneiden müssen.
Eine derartige Vorwissensanforderung für Dienste erfordert eine enge
Kopplung von Komponenten und Diensten, Spezialwerkzeugsätzen und
menschlicher Verwaltung. Deshalb wäre es erwünscht, Weiterentwicklungen
der Technik zu liefern, die diese und andere Nachteile überwinden.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zur Fähigkeitenverwaltung,
ein Verfahren zum Verwalten von Fähigkeiten und ein computerlesbares
Medium mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein Verfahren
gemäß Anspruch
11 sowie ein computerlesbares Medium gemäß Anspruch 22 oder 32 gelöst.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung betrifft ein Verfahren eine Fähigkeitenverwaltung
in einem prozessorgesteuerten Netzwerk. Das Verfahren beschreibt
ein Empfangen einer ersten Fähigkeitendatenstruktur,
die zumindest einen ersten Datensatz aufweist, von einem Primärdienst
und ein Empfangen zumindest einer zweiten Fähigkeitendatenstruktur, die
zumindest einen zweiten Datensatz aufweist, von ein oder mehr Sekundärdiensten.
Das Verfahren beschreibt dann ein Kombinieren von zumindest dem
ersten Datensatz der ersten Datenstruktur und zumindest dem zweiten
Datensatz der zumindest zweiten Datenstruktur zu einer kombinierten
Fähigkeitendatenstruktur
und ein Liefern von Diensten in dem Netzwerk basierend auf der kombinierten
Fähigkeitendatenstruktur.
-
Gemäß einem
weiteren Ausführungsbeispiel
betrifft ein Verfahren ein Verwalten von Fähigkeiten, die in einem Netzwerk
verteilt sind. Das Verfahren beschreibt ein Anfor dern eines ersten
Auftragstickets von einem ersten Dienst, wobei das erste Auftragsticket
zumindest einen ersten Auftragsticketknoten umfasst, und ein Anfordern
zumindest eines zweiten Auftragstickets von zumindest einem zweiten
Dienst, wobei das zweite Auftragsticket zumindest einen zweiten
Auftragsticketknoten umfasst. Das Verfahren beschreibt dann ein
Identifizieren zumindest eines ersten Auftragsticketknotens von
dem angeforderten ersten Auftragsticket und zumindest eines zweiten
Auftragsticketknotens von dem zweiten Auftragsticket und ein Bestimmen,
ob der identifizierte erste und zweite Auftragsticketknoten vereinigt
werden können.
Schließlich
beschreibt das Verfahren ein Vereinigen des identifizierten ersten
und zweiten Auftragsticketknotens, die vereinigt werden können, und ein
Erzeugen eines verbrauchbaren Ergebnisauftragstickets, das die vereinigten
ersten und zweiten Auftragsticketknoten umfasst.
-
Gemäß einem
weiteren Ausführungsbeispiel
wird ein System, um eine Fähigkeitenverwaltung
in einem prozessorgesteuerten Netzwerk zu liefern, beschrieben.
Das System liefert ein Netzwerk, das eine Mehrzahl von Dienstvorrichtungen
umfasst, die mit dem Netzwerk gekoppelt sind und Dienste liefern.
Die Vorrichtungen des Systems umfassen eine Diensteinrichtung, eine
Kommunikationsschnittstelleneinrichtung und eine Verarbeitungseinrichtung.
Das System beschreibt ferner eine computerlesbare Speichereinrichtung,
die durch die Verarbeitungseinrichtung lesbar ist. Die computerlesbare
Speichereinrichtung enthält
eine Reihe von durch einen Computer ausführbaren Schritten, die konfiguriert
sind, um zu bewirken, dass die Verarbeitungseinrichtung ein erstes
Auftragsticket von einem ersten Dienst anfordert, wobei das erste
Auftragsticket zumindest einen ersten Auftragsticketknoten umfasst.
Die Speichereinrichtung umfasst ferner eine Reihe von durch einen Computer
ausführbaren
Schritten, die konfiguriert sind, um zu bewirken, dass die Verarbeitungseinrichtung
zumindest ein zweites Auftragsticket von zumindest einem zweiten
Dienst anfordert, wobei das zweite Auftragsticket zumindest einen
zweiten Auftragsticketknoten umfasst. Die Speichereinrichtung umfasst
auch eine Reihe von durch einen Computer ausführbaren Schritten, die konfiguriert
sind, um zu bewirken, dass die Verarbeitungseinrichtung zumindest
einen ersten Auftragsticketknoten von dem angeforderten ersten Auftragsticket und
zumindest einen zweiten Auftragsticketknoten von dem zweiten Auftragsticket
identifiziert und bestimmt, ob der identifizierte erste und zweite
Auftragsticketknoten vereinigt werden können. Schließlich umfasst
die Speichereinrichtung eine Reihe von durch einen Computer ausführbaren
Schritten, die konfiguriert sind, um zu bewirken, dass die Verarbeitungseinrichtung
den identifizierten ersten und zweiten Auftragsticketknoten, die vereinigt
werden können,
vereinigt und ein verbrauchbares Ergebnisauftragsticket erzeugt,
das die vereinigten ersten und zweiten Auftragsticketknoten umfasst.
-
Das
Vorhergehende und andere Merkmale und Vorteile der Erfindung werden
ferner aus der folgenden detaillierten Beschreibung der derzeit
bevorzugten Ausführungsbeispiele,
die zusammen mit den beiliegenden Zeichnungen gelesen wird, ersichtlich.
Es zeigen:
-
1 ein
Blockdiagramm eines verteilten Unternehmenssystems, das eine beispielhafte
Betriebsumgebung für
ein Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
2 eine
Vereinigungsmenge eines Satzes von Datenstrukturen gemäß einem
Ausführungsbeispiel der
vorliegenden Erfindung;
-
3 eine
Schnittmenge eines weiteren Satzes von Datenstrukturen gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung;
-
4 eine
spezielle Vereinigung eines weiteren Satzes von Datenstrukturen
gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung;
-
5 ein
Flussdiagramm, das ein Verfahren gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung zeigt; und
-
6 ein
Flussdiagramm, das ein Verfahren gemäß einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung zeigt.
-
Nicht
einschränkende
Ausführungsbeispiele
der vorliegenden Erfindung liefern Verfahren und Systeme zur verbesserten
Fähigkeitenverwaltung
in einem Netzwerk. Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung liefert ein System eine Fähigkeitenverwaltung
in einem prozessorgesteuerten Netzwerk.
-
1 ist
ein Blockdiagramm eines verteilten Unternehmenssystems, das eine
beispielhafte Betriebsumgebung für
ein Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht. 1 veranschaulicht
ein Netzwerk 100, das zum Implementieren eines Fähigkeitenverwaltungssystems
konfiguriert ist. Beispielhafte Vorrichtungen des Netzwerks 100,
wie dieselben in 1 gezeigt sind, umfassen eine
Client-Vorrichtung 110,
einen Server 130, eine Datenbank 140, ein Faxgerät 150,
einen Drucker 160, einen Scanner 170 und einen
Schalter 180. Verbindungen, die zwischen der Client-Vorrichtung 110,
dem Server 130 und anderen Vorrichtungen gezeigt sind,
veranschaulichen ein verteiltes Unternehmenssystem. Jede Vorrichtung
des Netzwerks 100 weist eine eindeutige Vorrichtungsidentifikation
und Netzwerkadresse auf, derart, dass Vorrichtungen befähigt sind,
miteinander zu kommunizieren und clientseitige, bestimmungsortseitige
und verteilte Dienste zu liefern.
-
1 zeigt
die Client-Vorrichtung 110, die ferner einen Prozessor 111,
eine Benutzerschnittstelle 112, eine Eingangs-/Ausgangs-(I/O-)
Schnittstelle 113 und eine Speichervorrichtung 115 aufweist.
Die Speichervorrichtung 115 ist so gezeigt, dass dieselbe
ein Programm 123, eine Datenstruktur 121, die
einen Datensatz 122 aufweist, eine kombinierte Fähigkeitendatenstruktur 119,
die einen Datensatz 120 aufweist, und einen Vereinigungsdienst 124 umfasst.
Der Prozessor 111 ist ferner so gezeigt, dass derselbe
zu einer bidirektionalen Kommunikation mit der Benutzerschnittstelle 112,
der Eingangs-/Ausgangsschnittstelle 113 und der Speichervorrichtung 115 befähigt ist.
In 1 ist die Client-Vorrichtung 110 so gezeigt,
dass dieselbe zu einer bidirektionalen Kommunikation mit verschiedenen
Vorrichtungen des Netzwerks 100 durch eine Kommunikationsschnittstelle,
wie z. B. die Eingangs-/Ausgangsschnittstelle 113, befähigt ist.
Die Client-Vorrichtung 110 ist eine beliebige Vorrichtung,
die zum Liefern einer Schnittstelle mit verschiedenen Funktionen
und Diensten des Netzwerks 100 konfigurierbar ist. Bei
einem Ausführungsbeispiel
ist die Client-Vorrichtung 110 eine
Vorrichtung, wie z. B. ein Personalcomputer (PC), die verschiedene
Fähigkeiten
umfasst, die durch ein oder mehr Programme 123 geliefert
werden. Der praktizierende Fachmann erkennt, dass die Client-Vorrichtung 110 bei
einigen Implementierungen andere Komponenten umfasst, die für die vorliegende
Erörterung
nicht relevant sind und deshalb keine Ausführung erfordern.
-
Der
Prozessor 111 der Client-Vorrichtung 110 ist ein
beliebiger Mikroprozessor, eine Mikrosteuerung, eine anwendungsspezifische
integrierte Schaltung (ASIC) oder eine Kombination der angeführten Komponenten,
der bzw. die konfiguriert ist, um Computeranweisungen auszuführen. Bei
einem Ausführungsbeispiel
umfasst der Prozessor 111 einen Speicher zum Cache-Speichern
von Daten. Die Speichervorrichtung 115 umfasst einen flüchtigen
und/oder nicht-flüchtigen
computerlesbaren Speicher, wie z. B. einen Direktzugriffsspeicher
(RAM), einen Flash-Speicher und dergleichen. Bei einem Ausführungsbeispiel
ist der Prozessor 111 konfiguriert, um Anweisungen von
ein oder mehr Programmen und Diensten, wie z. B. dem Programm 123 und dem
Vereinigungsdienst 124, die in dem Speicher 115 gespeichert
sind, auszuführen
und digitale Daten, wie z. B. die Datenstrukturen 121 und 119,
zu handhaben. Das Programm 123 umfasst einen oder mehr
durch einen Computer ausführbare
Anweisungssätze,
wie z. B. Vorrichtungstreiber und Programme, die verschiedene Funktionen
durchführen,
wie z. B. ein Steuern von Peripherievorrichtungen, ein Liefern von
Fähigkeiten
an einen Benutzer und ein Verwalten einer Kommunikation mit anderen
Vorrichtungen. Bei einem weiteren Ausführungsbeispiel liefert das
Programm 123 Vereinigungsdienste, um Elemente von zwei
oder mehr Datenstrukturen, wie z. B. der Datenstruktur 121,
zu kombinieren.
-
Bei
einem Ausführungsbeispiel
umfassen die Datenstruktur 121 und der Datensatz 122,
die zusammen als ein „Auftragsticket" bekannt sind, eine
oder mehr Datenstrukturen, die Funktionen von verschiedenen Vorrichtungen
und Diensten des Netzwerks 100 beschreiben. Bei einem weiteren
Ausführungsbeispiel
beschreiben die Datenstruktur 121 und der Datensatz 122 Funktionen
von verschiedenen Diensten der Client-Vorrichtung 110, wie z. B.
des Programms 123. Bei einem weiteren Ausführungsbeispiel
beschreiben die Datenstruktur 119 und der Datensatz 120 eine
Kombination (z. B. Vereinigung) von Funktionen und Daten von einer
Mehrzahl von Datenstrukturen 121. Bei einem Ausführungsbeispiel
ist die Datenstruktur 121 eine Seite einer erweiterbaren
Markup-Sprache (XML)
oder einer entsprechenden erweiterbaren Stilblattsprache (XSL), und
der Datensatz 122 ist eine Sammlung von Knoten der Seite.
Allgemein ist ein „Knoten" eine Referenzeinheit
in einer Datenstruktur, wie z. B. der Datensatz 122 der
Datenstruktur 121. Bei einem Ausführungsbeispiel wird die Datenstruktur 121 von
einer Vorrichtung oder einem Dienst des Netzwerks 100 empfangen.
Bei einem weiteren Ausführungsbeispiel
wird die Datenstruktur 121 durch die Client-Vorrichtung 110 von
einer anderen Vorrich tung oder einem anderen Dienst des Netzwerks 100 angefordert.
-
Die
Benutzerschnittstelle 112 ist eine beliebige Anordnung
von Dateneingabe- und Anzeigevorrichtungen, die konfiguriert sind,
um einem Benutzer Informationen anzuzeigen und eine Benutzereingabe
an die Client-Vorrichtung 110 zu empfangen. Bei einem Ausführungsbeispiel
umfasst die Benutzerschnittstelle 112 Komponenten, wie
z. B. eine Tastatur, eine Zeigevorrichtung und/oder eine Anzeigevorrichtung,
die zum Anzeigen von Bildern für
einen Benutzer geeignet ist.
-
Die
Eingangs-/Ausgangsschnittstelle 113 umfasst eine oder mehr
Kommunikationsschnittstellen, die konfiguriert sind, um eine Signal-
und Dateneingabe und -ausgabe für
eine Client-Vorrichtung 110 zu liefern. Bei einem Ausführungsbeispiel
umfasst die Eingangs-/Ausgangsschnittstelle 113 Schnittstellen
wie z. B. ein Telefonmodem, einen drahtlosen Zugriffspunkt, der
sich an ein oder mehr Protokolle hält, wie z. B. IEEE 802.11 und
die sogenannten „Bluetooth" Protokolle, eine
Netzwerkschnittstellenkarte, eine Direktkabelschnittstelle, wie
z. B. PCI oder EIO, eine Universalserienbuskarte (USB), einen optischen
Port, der in dem ultravioletten oder infraroten Bereich wirksam
ist, und dergleichen. Bei einem weiteren Ausführungsbeispiel ist die Eingangs-/Ausgangsschnittstelle 113 ein
Gateway für
ein lokales Netz (LAN) oder ein weites Netz (WAN), das viele Vorrichtungen
innerhalb einer geografischen Zone, wie z. B. einem verteilten Unternehmenscomputernetzwerk,
das in ein oder mehr Gebäuden
wirksam ist, koppelt. Eine kommunikationsbefähigte Vorrichtung ist eine Vorrichtung,
die einen Kommunikationsgateway umfasst, wie z. B. die Eingangs-/Ausgangsschnittstelle 113, der
ein oder mehr Kommunikationsschnittstellen aufweist, wie es im Vorhergehenden
beschrieben ist.
-
Der
Server 130 ist so gezeigt, dass derselbe ferner einen Prozessor 131,
eine Eingangs-/Ausgangsschnittstelle 133 und eine Speichervorrichtung 135 umfasst.
Die Speichervorrichtung 135 ist so gezeigt, dass dieselbe
einen Zwischendienst 134, eine Datenstruktur 138,
die einen Datensatz 139 aufweist, eine kombinierte Fähigkeitendatenstruktur 136,
die einen Datensatz 137 aufweist, und einen Vereinigungsdienst 124 umfasst. Der
Prozessor 131 ist ferner so gezeigt, dass derselbe zu einer
bidirektionalen Kommunikation mit der Eingangs-/Ausgangsschnittstelle 133 und
der Speichervorrichtung 135 befähigt ist. In 1 ist
der Servercomputer 130 so gezeigt, dass derselbe zu einer
bidirektionalen Kommunikation mit verschiedenen Vorrichtungen des
Netzwerks 100 durch eine Kommunikationsschnittstelle, wie
z. B. die Eingangs-/Ausgangsschnittstelle 133, befähigt ist.
Der Zwischendienst 134 ist ein beliebiger Dienst, der dem
Netzwerk 100 eine Funktion liefert. Bei einem Ausführungsbeispiel
ist der Zwischendienst 134 ein Treiber für eine Vorrichtung,
die mit dem Netzwerk 100 verbunden ist, der eine zusätzliche
Funktionalität
für die
verbundene Vorrichtung liefert.
-
Bei
einem Ausführungsbeispiel
liefert ein Vereinigungsdienst 132 Datenvereinigungsdienste,
um Elemente von zwei oder mehr Datenstrukturen, wie z. B. der Datenstruktur 138,
zu kombinieren. Bei einem weiteren Ausführungsbeispiel umfasst die
Datenstruktur 138 ein oder mehr Datenstrukturen (z. B.
Merkmale, Optionen, Attribute, Einschränkungen, Makros), die Funktionen
von verschiedenen Vorrichtungen und Diensten des Netzwerks 100 beschreiben.
Bei diesem Ausführungsbeispiel
definiert jede Datenstruktur 138 die Fähigkeiten, die ein Dienst oder
eine Vorrichtung auszuführen
in der Lage ist. Bei einem weiteren Ausführungsbeispiel beschreiben
die kombinierte Fähigkeitendatenstruktur 136 und
der Datensatz 137 eine Kombination (z. B. Vereinigung)
von Funktionen und Daten von einer Mehrzahl von Datenstrukturen 138.
Bei einem Ausführungsbeispiel
kann die kombinierte Fähigkeitendatenstruktur 136 die
Merkmale, die jede Vorrichtung oder jeder Dienst auszuführen in
der Lage ist, die Optionen/Bereiche für jedes Merkmal, das die Vorrichtung oder
der Dienst unterstützt,
die ein oder mehr Verfahren zum Aufrufen des Merkmals, die Daten,
die nötig
sind, um eine Benutzerschnittstelle (UI) zu erzeugen, die eine Konfiguration
eines Auftrags ermöglicht,
der der Instanzierung zugeordnet ist, Einschränkungen, die Merkmals-/Optionskombinationen
definieren, die nicht zugelassen sind (z. B. geheftete Transparentfolien),
und Makros definieren, die eine Auswahl eines bestimmten Merkmals/einer bestimmten
Option ermöglichen,
die den Zustand von Merkmalen und Optionen auslöst. Bei einem weiteren Ausführungsbeispiel
wird die Datenstruktur 138 von einer Vorrichtung oder einem
Dienst des Netzwerks 100 empfangen. Bei einem Ausführungsbeispiel
wird die Datenstruktur 136 durch den Server 130 von
einer anderen Vorrichtung oder einem anderen Dienst des Netzwerks 100 angefordert.
Bei einem weiteren Ausführungsbeispiel
(nicht gezeigt) sind zusätzliche
Programme und Dienste in der Speichervorrichtung 135 gespeichert. Der
praktizierende Fachmann erkennt, dass der Servercomputer 130 bei
einigen Implementierungen andere Komponenten umfasst, die für die vorliegenden
Erörterung
nicht relevant sind und deshalb nicht erörtert werden.
-
Die
Datenbank 140 ist eine beliebige kommunikationsbefähigte Massenspeichervorrichtung,
die eine Datenbank enthält.
Bei einem Ausführungsbeispiel
ist die Datenbank 140 eine relationale Datenbank, die Einträge aufweist,
die spezifischen adressierbaren Accounts entsprechen, wie z. B.
Email-Adressen und
dergleichen. Bei einem weiteren Ausführungsbeispiel umfasst die
Datenbank 140 Datenstrukturen, die verschiedene Funktionalitäten von
ein oder mehr netzwerkverbundenen Vorrichtungen beschreiben. Bei
einem weiteren Ausführungsbeispiel
ist die Datenbank 140 befähigt, eine Datenstruktur zu
erzeugen und zu liefern, die spezifische Merkmale und Funktionen
beschreibt, die die Datenbank 140 zu liefern in der Lage
ist.
-
Das
Faxgerät 150 ist
ein beliebiges kommunikationsbefähigtes
Faksimile- (Fax-) Gerät.
Bei einem Ausführungsbeispiel (nicht
gezeigt) umfasst das Faxgerät 150 einen
Mechanismus zum digitalen Abtasten von Dokumenten, einen Prozessor,
einen Kommunikationsport und ein oder mehr Speicherkomponenten.
Bei einem weiteren Ausführungsbeispiel
ist das Faxgerät 150 befähigt, als
eine Dokumentkopiervorrichtung wirksam zu sein. Bei einem weiteren
Ausführungsbeispiel
ist das Faxgerät 150 befähigt, eine
Datenstruktur zu erzeugen und zu liefern, die spezifische Merkmale
und Funktionen beschreibt, die das Faxgerät 150 zu liefern in
der Lage ist. Die Konfiguration und der Betrieb von Faxgeräten sind
Fachleuten bekannt und werden deshalb nicht weiter erörtert.
-
Der
Drucker 160 ist eine beliebige kommunikationsbefähigte Druckvorrichtung,
die zum Wiedergeben von Bild- und Dokumentdatendateien auf greifbare
Medien, wie z. B. Papierblattmaterial, konfiguriert ist. Bei einem
Ausführungsbeispiel
handelt es sich bei dem Drucker 160 um eine Mehrfunktions-Drucker-Scanner-Vorrichtung,
die befähigt
ist, als eine Dokumentkopier- und -sendevorrichtung wirksam zu sein.
Bei einem Ausführungsbeispiel
(nicht gezeigt) umfasst der Drucker 160 einen Prozessor
und Speicherkomponenten. Bei einem weiteren Ausführungsbeispiel ist der Drucker 160 befähigt, eine
Datenstruktur zu erzeugen und zu liefern, die spezifische Merkmale
und Funktionen beschreibt, die der Drucker 160 zu liefern
in der Lage ist. Die Konfiguration und der Betrieb von Druckvorrichtungen
sind praktizierenden Fachleuten bekannt und werden deshalb nicht
genauer erörtert.
-
Der
Scanner 170 ist eine beliebige kommunikationsbefähigte Scan-
bzw. Abtastvorrichtung, die konfiguriert ist, um Bilddateien zu
erzeugen. Bei einem Ausführungsbeispiel
umfasst der Scanner 170 eine digitale, analoge oder eine
beides umfassende Abtasthardware, die konfiguriert ist, um Bilddatendateien
von Medien, die in nächster
Nähe der
Abtasthardware angeordnet sind, zu erzeugen. Bei einem Ausführungsbeispiel
(nicht gezeigt) umfasst der Scanner 170 einen Prozessor
und Speicherkomponenten. Bei einem weiteren Ausführungsbeispiel umfasst der
Scanner 170 ein alphanumerisches Tastenfeld und eine alphanumerische
Anzeige. Bei einem weiteren Ausführungsbeispiel
ist der Scanner 170 befähigt,
eine Datenstruktur zu erzeugen und zu liefern, die spezifische Merkmale
und Funktionen beschreibt, die der Scanner 170 zu liefern
in der Lage ist. Die Konfiguration und der Betrieb von Abtastvorrichtungen
sind praktizierenden Fachleuten bekannt und werden deshalb nicht
genauer erörtert.
-
Bei
einem weiteren Ausführungsbeispiel
(nicht gezeigt) sind zwei oder mehr der im Vorhergehenden beschriebenen
kommunikationsbefähigten
Vorrichtungen (150, 160, 170) kombiniert
oder konfiguriert, um als eine einzige Einheit wirksam zu sein,
wie z. B. eine Mehrfunktionsperipherievorrichtung und eine kommunikationsbefähigte Druck-
und Abtastvorrichtung.
-
2 veranschaulicht
eine Vereinigungsmenge eines Satzes von Datenstrukturen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Gemäß einem
Ausführungsbeispiel
wird eine Datenstruktur, die einen Datensatz aufweist, als ein „Auftragsticket" bezeichnet, das
abhängig
von dem Datensatz der Datenstruktur unterschiedliche Klassen aufweist,
wie z. B. ein „Fähigkeitenauftragsticket" oder ein „Ergebnisauftragsticket". Ein Datensatz eines
Auftragstickets beschreibt verschiedene Elemente, wie z. B. Merkmale,
Optionen, Einschränkungen,
Makros, Attribute und dergleichen. Jedes Element eines Datensatzes
(Knotens) weist eine hierarchische Baumstruktur mit einer Mutter-Tochter-Beziehung auf.
-
Bei
einem Ausführungsbeispiel
ist eine Vereinigung der Prozess eines allgemeinen Zusammenführens von
zwei oder mehr Auftragstickets zu einem resultierenden vereinigten
Ticket. Bei einem weiteren Ausführungsbeispiel
ist eine Vereinigungseinrichtung (Vereinigungsdienst) ein Dienst,
der die Vereinigung aufruft und ein zu vereinigendes Ticket liefert.
Bei einem weiteren Ausführungsbeispiel
ist ein Vereinigungselement ein Dienst, der das Ticket liefert,
das durch eine Vereinigung mit dem Ticket der Vereinigungseinrichtung
erweitert wird. Bei einem weiteren Ausführungsbeispiel ist ein Fähigkeitenticket
ein Auftragsticket, das den spezifischen Operationsbereich dieser
Dienstinstanzierung angibt.
-
Bei
einem Ausführungsbeispiel
ist eine Vereinigung eine Echtzeitzusammenführung der Datensätze von
zwei oder mehr Datenstrukturen (Auftragstickets). Bei einem Ausführungsbeispiel
ist der Vereinigungsprozess implementiert, um datenagnostisch zu
sein, jedoch Strukturaspekte der Auftragstickets zu kennen, die der
Vereinigung zugehörig
sind. Bei einem weiteren Ausführungsbeispiel
führt eine
Vereinigung die „vereinigbaren" (z. B. zum Vereinigen
fähigen)
Knoten einer Datenstruktur (Auftragsticket) mit den „vereinigbaren" Knoten einer weiteren
Datenstruktur ohne eine Duplizierung von Daten in der resultierenden „zusammengeführten" Datenstruktur zusammen.
Bei einem weiteren Ausführungsbeispiel
enthält
die kombinierte Fähigkeitendatenstruktur
(Ergebnisauftragsticket) die „hineinvereinigten" Daten einer zweiten
Datenstruktur, die nahtlos mit allen vorab existierenden Daten einer
ersten Datenstruktur verschachtelt sind, was ein erweitertes Auftragsticket erzeugt.
Bei einem weiteren Ausführungsbeispiel
ist der Vereinigungsalgorithmus datenagnostisch, da derselbe die
Struktur des Tickets anstatt die Datennutzlast selbst verwendet,
um die Zusammenführung
zu erreichen, was dabei hilfreich ist, eine lose Kopplung von Komponenten
in der verteilten Arbeitsflussumgebung zu ermöglichen.
-
Bei
einem Ausführungsbeispiel
führt eine
Vereinigung logisch XML-Fähigkeiten
von disparaten Diensten während
einer sequentiellen Verarbeitung einer komplexen Aufgabe zusammen.
Bei einem weiteren Ausführungsbeispiel
wird der Vereinigungsalgorithmus durch eine Auftragsticket- und
Arbeitsflusstechnologie instantiiert, um eine Möglichkeit zu liefern, Daten
von Diensten, die in einer verteilten Umgebung, wie z. B. dem Netzwerk 100 von 1,
verfügbar
sind, dynamisch zu gewinnen. Bei einem Ausführungsbeispiel nimmt der Vereinigungsalgorithmus
als Eingabe ein oder mehr Fähigkeitentickets
(Datenstrukturen) von nachgeschalteten Diensten und ein „lokales" Fähigkeitenticket,
das die Fähigkeiten
eines lokalen Dienstes beschreibt. Bei einem weiteren Ausführungsbeispiel
führt der
Vereinigungsalgorithmus dann die XML-Daten, die in den Fähigkeitentickets
enthalten sind, wie z. B. Merkmale, Optionen, Attribute, Einschränkungen,
Makros und dergleichen, zusammen. Bei einem weiteren Ausführungsbeispiel
erzeugt der Vereinigungsalgorithmus einen vereinten Datensatz in
der Form einer kombinierten Fähigkeitendatenstruktur
(Ergebnisauftragsticket), um bei einer Benutzerschnittstelle oder
zum Verbrauch durch eine andere Software verwendet zu werden. Auf
diese Weise wird der genaueste vereinte Datensatz von allen Quellen
einem Endbenutzer für
Dienste und Vorrichtungen, die lokal oder nicht lokal sind, geliefert.
Im Betrieb hebt ein lokaler Dienst dann, wenn der Benutzer einen
Auftrag basierend auf kombinierten Fähigkeitendatenstrukturen (Ergebnisauftragstickets)
aufruft, die Vereinigung des Auftrags auf, wobei jegliche lokal
definierten Merkmale bei jedem Dienst oder jeder Vorrichtung aufgelöst werden
und dann die verbleibenden Merkmale an nachgeschaltete Dienste weitergeleitet
werden. Der vorhergehende Prozess hilft dabei, eine Standardisierung
einer Endbenutzererfahrung, einen rationalisierten Einsatz von Diensten,
einfache Softwareaktualisierungen und leistungsstarke Konfigurationsoptionen
zu ermöglichen.
-
Die
Schlüsseloperation
bei einer Vereinigung ist das Identifizieren von äquivalenten
Knoten bei zwei unterschiedlichen Fähigkeitenauftragstickets. Bei
einem Ausführungsbeispiel
liegt der Fokus des Algorithmus auf einem Auflösen der Grundstrukturen bei
Fähigkeitenauftragstickets,
insbesondere Merkmalsknoten. Zum Beispiel können zwei Auftragstickets einige
unterschiedliche und einige identische Knoten aufweisen. Bei einem
Ausführungsbeispiel
wird eine Auftragsticketknotenäquivalenz
hauptsächlich
basierend auf der definierten hierarchischen Struktur bestimmt.
Bei anderen Ausführungsbeispielen
werden jedoch Schlüsselinhalts- und
-attributwerte, die den Knoten identifizieren, gleichgesetzt. Bei
einem Ausführungsbeispiel
werden Knoten, die nicht vereinigbar sind, entweder zusammengeführt, kopiert
oder überschrieben.
Bei einem weiteren Ausführungsbeispiel
werden Knoten, die als nicht zu einer Vereinigung gehörig identifiziert
werden, einfach von einem Ticket oder dem anderen kopiert. Bei dem
augenblicklichen Ausführungsbeispiel
werden die Tickets weder zusammengeführt noch auf Äquivalenz
verglichen. Bei einem weiteren Ausführungsbeispiel werden, falls die
Knoten in beiden Tickets existieren, dieselben von dem Ticket kopiert,
das die aktuellsten oder genauesten Werte für jeden Knotenbaum enthält.
-
Bei
einem Ausführungsbeispiel
stützt
sich die Basis einer Vereinigung auf ein Auffinden einer Äquivalenz
zwischen den vereinigbaren Knoten. Bei einem Beispiel werden Knoten
basierend auf ihren Attributen oder ihrem Inhalt gleichgesetzt.
Bei einem weiteren Beispiel werden Knoten hierarchisch basierend
auf Mutter-Tochter-Knotenbeziehungen gleichgesetzt.
-
Im
Allgemeinen ist ein Identifizierer für jedes Merkmal und jede Option
in einem Auftragsticket nur in einem einzigen Knoten garantiert
eindeutig. Deshalb ist es möglich,
wenn Auftragstickets kombiniert werden, dass Identifizierer dupliziert
werden. Bei einem Ausführungsbeispiel
werden alle Identifiziererwerte für eindeutige Knoten geändert, um
ausreichend Eindeutigkeit während
eines Vereinigungsprozesses zu garantieren. Bei einem Beispiel wird
die Identifiziereränderung
mit einer Kombination von Heuristik und Parser- beziehungsweise
Analysiererwerkzeugen erreicht.
-
Bei
einem Beispiel wird ein Identifizierer verwendet, um auf einen Knoten
an anderer Stelle in dem gleichen Auf tragsticket zu verweisen. Bei
einem Beispiel wird ein Identifizierer in einem Fähigkeitenticket
durch einen „Merkmals"-Knoten verwendet,
um auf einen „Einschränkungs"-Knoten zu verweisen, oder umgekehrt.
-
Bei
einem Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, völlig neue <Gruppe>-Knoten zu einem Fähigkeitenticket
hinzuzufügen.
Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, die <Merkmal>-(<Feature>-)Knoten, die in gemeinsamen <Gruppe>-Knoten verfügbar sind,
einzuschränken.
Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, völlig neue <Merkmal>-Knoten zu einem Fähigkeitenticket
hinzuzufügen.
Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, zusätzliche <Option>-Knoten zu gemeinsamen <Merkmal>-Knoten zusammenzuführen. Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, die <Option>-Knoten, die in gemeinsamen <Merkmal>-Knoten verfügbar sind,
einzuschränken.
Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, <Bereich>-Knotenwerte bei gemeinsamen <Merkmal>-Knoten aufzuheben.
Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, bestimmte entscheidende
Attribute, wie z. B. diejenigen, die auf andere Teile des Tickets
verweisen, zusammenzuführen.
Bei einem weiteren Ausführungsbeispiel
weist ein Vereinigungsdienst die Fähigkeit auf, neue Ausdrücke (Einschränkungen
und Makros) zu Knoten in einem Ergebnisauftragsticket hinzuzufügen.
-
Bei
einem Ausführungsbeispiel
werden eine erste Datenstruktur und eine zweite Datenstruktur gemäß einer
logischen Vereinigungsmenge von identifizierten Knoten in jeder
Datenstruktur kombiniert. Eine erste und eine zweite Fähigkeitendatenstruktur
können
beide als gültige
Fähigkeitentickets
erzeugt sein. Gemeinsame Knoten werden ohne Duplizierung zusammengeführt. Zum
Beispiel ist bei einer Vereini gung, die auf einer logischen Vereinigungsmenge
basiert, falls ein erstes Ticket mit sich selbst vereinigt wird,
das Ergebnis das erste Ticket. Bei anderen Ausführungsbeispielen können unterschiedliche
Typen von Vereinigungsverwendungsfällen verwendet werden. Verwendungsfälle können erzeugt
werden, die den Übersatz
(Vereinigungsmenge) der zwei Ticketknoten erzeugen, oder alternativ
dazu kann eine Vereinigung eine Einschränkung durchsetzen, welche Knoten
bei dem Ergebnis erzeugt werden.
-
Unter
erneuter Bezugnahme auf 2 wird eine logische Vereinigungsmenge 200 einer
ersten Datenstruktur 210 und einer zweiten Datenstruktur 220 zu
einer resultierenden kombinierten Fähigkeitendatenstruktur 230 veranschaulicht.
Bei einem Beispiel wird ein Pseudofähigkeitenticketformat im Folgenden
präsentiert, um
einen logischen Vereinigungsmengenvereinigungsprozess zu veranschaulichen.
Es ist für
einen praktizierenden Fachmann ersichtlich, dass die folgenden Beispiele
von veranschaulichender Natur sind, und dass Datenstrukturen, die
verschiedene Ausführungsbeispiele
der Erfindung implementieren, jedes beliebige Datenformat umfassen,
das eine Funktionsplattform für
die Kombination von Fähigkeiten-
und Absichtsdatenstrukturen, ob über
XML/XSL oder eine beliebige andere Datenstrukturform, liefert. Die
folgenden Beispiele veranschaulichen mit Bezugnahme auf die 2 bis 4 ein
Attribut auf der Merkmal/Option-Ebene. Bei den folgenden Beispielen
handelt es sich bei den Merkmalen jedes Pseudofähigkeitentickets um das gleiche
Merkmal mit unterschiedlichen Optionen. Bei den folgenden Beispielen
ist das Schlüsselattribut,
das eine Vereinigung steuert, „extensionAllowed" (Erweiterung möglich).
Falls das extensionAllowed-Attribut an einem Knoten auf „falsch" (false) gesetzt
ist, kann keine Vereinigungseinrichtung Töchter zu diesem Knoten hinzufügen (damit zusammenführen). Bei
einem weiteren Ausführungsbeispiel
ermöglicht,
falls Erweiterung möglich „wahr" (true) ist, dasselbe
das Zusammenführen
von neuen Tochterknoten zu dem Vereinigungsergebnisticket.
-
Bei
einem veranschaulichenden Beispiel einer logischen Vereinigungsmenge
von Auftragstickets
200 gemäß
2 weist
ein erstes Auftragstickets
210 den folgenden Datensatz
auf:
-
Ein
zweites Auftragsticket
220 weist den folgenden Datensatz
auf:
-
Ein
Vereinigungsprozess, der eine logische Vereinigungsmenge des ersten
und zweiten Datensatzes liefert, erzeugt das folgende Ergebnisticket 230.
-
-
Das
Ergebnisticket 230 umfasst <Optionen> A, B und C des ersten Tickets 210 und <Option> D des zweiten Tickets 220. 3 veranschaulicht
eine Schnittmenge eines weiteren Satzes von Datenstrukturen gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung. Bei einem Beispiel wird ein Pseudofähigkeitenticketformat
im Folgenden präsentiert,
um einen logischen Schnittmengenvereinigungsprozess zu veranschaulichen.
-
Bei
einem veranschaulichenden Beispiel einer logischen Schnittmenge
von Auftragstickets
300 gemäß
3 weist
ein erstes Auftragsticket
310 den folgenden Datensatz auf:
-
Ein
zweites Auftragsticket
320 weist den folgenden Datensatz
auf:
-
Ein
Vereinigungsprozess, der eine logische Schnittmenge des ersten und
zweiten Datensatzes liefert, erzeugt das folgende Ergebnisticket 330.
-
-
Das
Ergebnisticket 330 umfasst <Option> C, die sowohl dem ersten als auch dem
zweiten Datensatz gemeinsam ist, während <Optionen> B des ersten Tickets 310 und <Option> D des zweiten Tickets 320 von dem
Ergebnisticket 330 ausgeschlossen sind.
-
4 veranschaulicht
eine spezielle Vereinigung eines weiteren Satzes von Datenstrukturen
gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung. Eine spe zielle Vereinigung ermöglicht ausgewählte Ausschlüsse von
Merkmalen und Optionen basierend auf einem vorbestimmten Regelsatz.
Der Regelsatz ist z. B. durch eine erfasste Vorrichtungsfähigkeit
oder einen Administrator definiert. Falls das „extensionAllowed"-Attribut an einem
Knoten auf „falsch" gesetzt ist, kann
keine Vereinigungseinrichtung Töchter
zu diesem Knoten hinzufügen.
Bei einem weiteren Ausführungsbeispiel
ermöglicht,
falls das „extensionAllowed"-Attribut „wahr" ist, dasselbe das
Zusammenführen
von neuen Tochterknoten zu dem Vereinigungsergebnisticket.
-
Bei
einem ersten veranschaulichenden Beispiel einer speziellen Vereinigung
von Auftragstickets
400 gemäß
4 weist
ein erstes Auftragsticket
410 den folgenden Datensatz auf:
-
Ein
zweites Auftragsticket
420 weist den folgenden Datensatz
auf:
-
Ein
Vereinigungsprozess, der eine spezielle Vereinigung des ersten und
zweiten Datensatzes liefert, erzeugt das folgende Ergebnisticket 430.
-
-
-
Das
Ergebnisticket 430 umfasst nur <Option> A, B und C, basierend auf der Einschränkung des
Attributs extensionAllowed = 'false' des ersten Tickets 410,
während <Option> D des zweiten Tickets 420 von
dem Ergebnisticket 430 ausgeschlossen ist.
-
Bei
einem zweiten veranschaulichenden Beispiel einer speziellen Vereinigung
von Auftragstickets
400 gemäß
4 weist
ein erstes Auftragsticket
410 den folgenden Datensatz auf:
-
Ein
zweites Auftragsticket
420 weist den folgenden Datensatz
auf:
-
Ein
Vereinigungsprozess, der eine spezielle Vereinigung des ersten und
zweiten Datensatzes liefert, erzeugt das folgende Ergebnisticket 430.
-
-
Im
Gegensatz zu dem obigen ersten Beispiel umfasst das Ergebnisticket 430 nun
nur <Option> C und D, basierend
auf der Einschränkung
des Attributs extensionAllowed = 'false' des zweiten Tickets 420, während <Optionen> A und B des ersten
Tickets 410 nun von dem Ergebnisticket 430 ausgeschlossen
sind.
-
5 ist
ein Flussdiagramm, das ein Verfahren gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung zeigt. 5 veranschaulicht
ein Verfahren 500 zur Fähigkeitenverwaltung
in einem prozessorgesteuerten Netzwerk. Bei einem Ausführungsbeispiel
wird das Verfahren 500 mit Komponenten des exemplarischen
Netzwerks 100 von 1 und unter
Bezugnahme auf die graphischen Darstellungen, die in den 2–4 beschrieben
sind, implementiert. Bei einem weiteren Ausführungsbeispiel sind ein oder
mehr Schritte des Verfahrens 500 in einem computerlesbaren
Medium ausgeführt,
das einen computerlesbaren Code enthält, derart, dass eine Reihe
von Schritten implementiert werden, wenn der computerlesbare Code auf
einer Rechenvorrichtung ausgeführt
wird. Verschiedene Schritte des Verfahrens 500 sind bezüglich einer Client-Vorrichtung
beschrieben, die das Verfahren durchführt. Bei einigen Implementierungen
werden bestimmte Schritte des Verfahrens 500 kombiniert,
gleichzeitig oder in einer anderen Reihenfolge durchgeführt, ohne
von dem Ziel des Verfahrens 500 abzuweichen oder andere
Ergebnisse zu erzeugen. Das Verfahren 500 beginnt bei Schritt 510.
-
Bei
Schritt 510 wird eine erste Fähigkeitendatenstruktur, die
zumindest einen ersten Datensatz aufweist, von einem Primärdienst
empfangen. Bei einem Ausführungsbeispiel
wird die erste Fähigkeitendatenstruktur
zu einem beliebigen Zeitpunkt empfangen, zu dem das Netzwerk 100 wirksam
ist. Bei einem Ausführungsbeispiel
weist der erste Datenstrukturdatensatz ein oder mehr Knoten auf,
die in einer Mutter-Tochter-Hierarchie
angeordnet sind. Bei einem weiteren Ausführungsbeispiel beschreibt die
erste Datenstruktur Funktionsfähigkeiten
eines Dienstes oder einer Vorrichtung des Netzwerks 100.
-
Bei
Schritt 520 wird eine zweite Fähigkeitendatenstruktur, die
zumindest einen zweiten Datensatz aufweist, von ein oder mehr Sekundärdiensten
empfangen. Bei einem Ausführungsbeispiel
wird die zweite Fähigkeitendatenstruktur
zu einem beliebigen Zeitpunkt empfangen, zu dem das Netzwerk 100 wirksam
ist. Bei einem Ausführungsbeispiel
weist der Datensatz der zweiten Datenstruktur ein oder mehr Knoten
auf, die in einer Mutter-Tochter-Hierarchie angeordnet sind. Bei
einem weiteren Ausführungsbeispiel
beschreibt die zweite Datenstruktur Funktionsfähigkeiten eines Dienstes oder
einer Vorrichtung des Netzwerks 100.
-
Bei
Schritt 530 werden der erste Datensatz der ersten Datenstruktur
und der zweite Datensatz der zweiten Datenstruktur zu einer kombinierten
Fähigkeitendatenstruktur
kombiniert. Bei einem Ausführungsbeispiel
werden der erste Datensatz der ersten Datenstruktur und der zweite
Datensatz der zweiten Datenstruktur zu einem beliebigen Zeitpunkt
kombiniert, nachdem die erste Datenstruktur und die zweite Datenstruktur
empfangen worden sind. Bei einem weiteren Ausführungsbeispiel umfasst das
Kombinieren der ersten und der zweiten Fähigkeitendatenstruktur ein
Identifizieren des ersten Datensatzes und der zweiten Datensätze bei
der ersten und der zweiten Fähigkeitendatenstruktur.
Das Ausführungsbeispiel
umfasst auch ein Bestimmen der Kombinierbarkeit des zumindest ersten
und zumindest zweiten Datensatzes und ein Erzeugen der kombinierten
Fähigkeitendatenstruktur,
wobei die kombinierte Fähigkeitendatenstruktur
einen dritten Datensatz aufweist, der auf dem ersten und dem zweiten
Datensatz basiert. Das Ausführungsbeispiel
umfasst ferner ein Kopieren des ersten und des zweiten Datensatzes
in die kombinierte Fähigkeitendatenstruktur,
wenn bestimmt wird, dass der identifizierte erste und zweite Datensatz
nicht kombinierbar sind, und ein Zusammenführen des ersten und des zweiten
Datensatzes zu der kombinierten Fähigkeitendatenstruktur, wenn
bestimmt wird, dass die Datensätze
kombinierbar sind.
-
Bei
einem weiteren Ausführungsbeispiel
umfassen die Datensätze
Daten, die aus der Gruppe ausgewählt
sind, die Attribute, Inhalt und Hierarchien umfasst. Bei einem weiteren
Ausführungsbeispiel
umfasst der Schritt des Bestimmens der Kombinierbarkeit des ersten
und des zumindest zweiten Datensatzes ein Identifizieren ausgewählter Attribute,
Inhalte und Hierarchien des ersten und des zumindest zweiten Datensatzes
und dann ein Bestimmen, ob beliebige der ausgewählten Attribute, Inhalte und
Hierarchien zwischen dem ersten und dem zumindest zweiten Datensatz äquivalent
sind.
-
Ein
weiteres Ausführungsbeispiel
umfasst ferner ein Markieren des ersten und des zweiten Datensatzes
als nicht kombinierbar, wenn bestimmt wird, dass ausgewählte Attribute,
Inhalte und Hierarchien zwischen dem ersten und dem zumindest zweiten
Datensatz nicht äquivalent
sind.
-
Bei
einem weiteren Ausführungsbeispiel
umfasst das Zusammenführen
des ersten und des zweiten Datensatzes zu der kombinierten Fähigkeitendatenstruktur,
wenn die Datensätze
kombinierbar sind, die Schritte eines Vergleichens des identifizierten
ersten Datensatzes mit dem zumindest zweiten Datensatz und dann eines
Integrierens von ausgewählten äquivalenten
Inhalten und Attributen des ersten und des zweiten Datensatzes basierend
auf den identifizierten äquivalenten
Hierarchien des ersten und zweiten Datensatzes.
-
Bei
einem Ausführungsbeispiel
umfasst der Schritt des Zusammenführens des ersten und des zweiten Datensatzes
zu der kombinierten Fähigkeitendatenstruktur,
wenn die Datensätze
kombinierbar sind, ein Bilden einer logischen Vereinigungsmenge
des ersten und des zweiten Datensatzes.
-
Bei
einem weiteren Ausführungsbeispiel
weist der Schritt des Zusammenführens
des ersten und des zweiten Datensatzes zu der kombinierten Fähigkeitendatenstruktur,
wenn die Datensätze
kombinierbar sind, ein Bilden einer logischen Schnittmenge des ersten
und des zweiten Datensatzes auf.
-
Bei
einem weiteren Ausführungsbeispiel
weist der Schritt des Zusammenführens
des ersten und des zweiten Datensatzes zu der kombinierten Fähigkeitendatenstruktur,
wenn die Datensätze
kombinierbar sind, ein Bilden eines speziellen Fähigkeitendatensatzes basierend
auf dem ersten und dem zweiten Datensatz auf.
-
Bei
Schritt 540 werden Dienste in dem Netzwerk basierend auf
der kombinierten Fähigkeitendatenstruktur
geliefert. Bei einem Ausführungsbeispiel
werden die Dienste durch ein Absichtsticket geliefert, das eine
kombinierte Fähigkeitendatenstruktur
gekoppelt mit einem Auftragsaufruf aufweist. Bei einem weiteren Ausführungsbeispiel
umfasst der Schritt des Lieferns von Diensten in dem Netzwerk basierend
auf der kombinierten Fähigkeitendatenstruktur
die Schritte eines Empfangens eines Dienstaufrufs, eines Entkoppelns
ausgewählter
Fähigkeiten
für den
Primärdienst
von der kombinierten Fähigkeitendatenstruktur,
wenn die Fähigkeiten
verbraucht werden, und dann eines Weiterleitens der verbleibenden
Fähigkeiten
in der kombinierten Fähigkeitendatenstruktur
an die ein oder mehr Sekundärdienste.
-
6 ist
ein Flussdiagramm, das ein Verfahren gemäß einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung zeigt. 6 veranschaulicht
ein Verfahren 600 zum Verwalten von Fähigkeiten, die in einem Netzwerk
verteilt sind. Bei einem Ausführungsbeispiel
wird das Verfahren 600 mit Komponenten des exemplarischen
Netzwerks von 1 und den graphischen Darstellungen,
die mit Bezugnahme auf die 2–4 beschrieben
sind, implementiert. Bei einem weiteren Ausführungsbeispiel sind ein oder
mehr Schritte des Verfahrens 600 in einem computerlesbaren
Medium ausgeführt,
das einen computerlesbaren Code enthält, derart, dass eine Reihe
von Schritten implementiert werden, wenn der compu terlesbare Code auf
einer Rechenvorrichtung ausgeführt
wird. Verschiedene Schritte des Verfahrens 600 werden bezüglich einer
Client-Vorrichtung, die das Verfahren durchführt, beschrieben. Bei einigen
Implementierungen werden bestimmte Schritte des Verfahrens 600 kombiniert,
gleichzeitig oder in einer anderen Reihenfolge durchgeführt, ohne
von dem Ziel des Verfahrens 600 abzuweichen oder andere
Ergebnisse zu erzeugen. Das Verfahren 600 beginnt bei Schritt 610.
-
Bei
Schritt 610 wird ein erstes Auftragsticket von einem ersten
Dienst angefordert. Bei einem Ausführungsbeispiel wird das erste
Auftragsticket angefordert, wenn ein Dienst aufgerufen wird. Bei
einem weiteren Ausführungsbeispiel
wird das erste Auftragsticket zu einem beliebigen Zeitpunkt angefordert,
zu dem das Netzwerk 100 wirksam ist. Bei einem Ausführungsbeispiel
weist das erste Auftragsticket ein Fähigkeitenauftragsticket auf,
das ein oder mehr Knoten aufweist, die in einer Mutter-Tochter-Hierarchie
angeordnet sind. Bei einem weiteren Ausführungsbeispiel beschreibt das
erste Auftragsticket Funktionsfähigkeiten
eines Dienstes oder einer Vorrichtung des Netzwerks 100.
Bei einem weiteren Ausführungsbeispiel
umfasst das erste Auftragsticket einen Dienstaufruf für eine Fähigkeitenvereinigung.
-
Bei
Schritt 620 wird ein zweites Auftragsticket von zumindest
einem zweiten Dienst angefordert. Bei einem Ausführungsbeispiel wird das zweite
Auftragsticket angefordert, wenn ein Dienst aufgerufen wird. Bei einem
weiteren Ausführungsbeispiel
wird das zweite Auftragsticket zu einem beliebigen Zeitpunkt angefordert, zu
dem das Netzwerk 100 wirksam ist. Bei einem Ausführungsbeispiel
weist das zweite Auftragsticket ein Fähigkeitenauftragsticket auf,
das ein oder mehr Knoten aufweist, die in einer Mutter-Tochter-Hierarchie angeordnet
sind. Bei einem weiteren Ausführungsbeispiel
beschreibt das erste Auftragsticket Funktionsfähigkeiten eines Dienstes oder
einer Vorrichtung des Netzwerks 100.
-
Bei
Schritt 630 wird ein erster Auftragsticketknoten von dem
angeforderten ersten Auftragsticket identifiziert, und ein zweiter
Auftragsticketknoten wird von dem zweiten Auftragsticket identifiziert.
Bei einem Ausführungsbeispiel
werden der erste und der zweite Auftragsticketknoten zu einem beliebigen
Zeitpunkt identifiziert, nachdem die Tickets angefordert worden
sind. Bei einem weiteren Ausführungsbeispiel
werden der erste und der zweite Auftragsticketknoten durch eine
erste und eine zweite Auftragsticketknotenhierarchie definiert. Das
augenblickliche Ausführungsbeispiel
umfasst ferner die Schritte eines Identifizierens zumindest eines
ersten Auftragsticketknotens von dem angeforderten ersten Auftragsticket
und zumindest eines zweiten Auftragsticketknotens von dem zweiten
Auftragsticket, weist ein Bestimmen der ersten und der zweiten Auftragsticketknotenhierarchie
des ersten und des zweiten Auftragstickets auf. Bei einem weiteren
Ausführungsbeispiel, bei
dem die erste und die zweite Auftragsticketknotenhierarchie durch
einen Knotentyp definiert sind, ist der Knotentyp aus der Gruppe
ausgewählt,
die Optionsknoten, Attributknoten, Einschränkungsknoten und Makroknoten
umfasst.
-
Bei
Schritt 640 wird eine Bestimmung vorgenommen, ob der identifizierte
erste und zweite Auftragsticketknoten vereinigt werden können. Bei
einem Ausführungsbeispiel
wird die Bestimmung zu einem beliebigen Zeitpunkt vorgenommen, nachdem
die jeweiligen Knoten identifiziert worden sind. Bei einem weiteren
Ausführungsbeispiel
umfasst der Schritt des Bestimmens, ob der identifizierte erste
und zweite Auftragsticketknoten vereinigt werden können, ein
Vergleichen der identifizierten ersten und zweiten Auftragsticketknotenhierarchie und
dann ein Markieren von ein oder mehr äquivalenten Knotenhierarchien
zwischen dem ersten und dem zweiten Auftragsticket. Bei einem Ausführungsbeispiel
werden die Knoten durch einen Vereinigungsalgorithmus markiert,
wie z. B. Vereinigungsdienste 124 und 132 des
Netzwerks 100.
-
Bei
Schritt 650 werden der erste und der zweite Auftragsticketknoten,
die vereinigt werden können, dann
vereinigt. Bei einem Ausführungsbeispiel
erfolgt die Vereinigung zu einem beliebigen Zeitpunkt nach der Bestimmung,
dass die Knoten vereinigt werden können. Bei einem weiteren Ausführungsbeispiel
umfasst der Schritt des Vereinigens des identifizierten ersten und
zweiten Auftragsticketknotens, die vereinigt werden können, die
Schritte eines Bestimmens eines ausgewählten ersten und zweiten Auftragsticketknotens,
die Hierarchien aufweisen, die als äquivalent markiert sind, und
dann eines Bestimmens eines aktuellsten Knotens des ersten und des
zweiten Knotens, die als äquivalent
markiert sind.
-
Bei
Schritt 650 wird ein verbrauchbares Ergebnisauftragsticket
erzeugt, das die vereinigten ersten und zweiten Auftragsticketknoten
umfasst. Bei einem Ausführungsbeispiel
handelt es sich bei dem verbrauchbaren Ergebnisticket um eine Datenstruktur,
die Dienstbeschreibungen umfasst, die von der Datenstruktur entkoppelt werden,
wenn der Dienst, der durch die Datenstruktur beschrieben ist, ausgeführt wird.
Bei einem weiteren Ausführungsbeispiel
wird ein verbrauchbares Auftragsticket, das einen Dienstaufruf von
einem Benutzer umfasst (Absichtsticket), durch ein Empfangen einer
Benutzereingabe erzeugt. Bei einem weiteren Ausführungsbeispiel umfasst der
Schritt des Erzeugens eines verbrauchbaren Ergebnisauftragstickets,
das die vereinigten ersten und zweiten Auftragsticketknoten umfasst,
den Schritt eines Kopieren eines ausgewählten ersten und zweiten Knotens
des ersten und zweiten Auftragstickets in das verbrauchbare Ergebnisauftragsticket,
wenn die Knoten nicht vereinigt werden können. Das augenblickliche Ausführungsbeispiel
umfasst auch den Schritt eines Zusammenführens eines ausgewählten ersten
und zweiten Knotens des ersten und des zweiten Auftragstickets zu
der Hierarchie des verbrauchbaren Ergebnisfähigkeitentickets, wenn die
Knoten vereinigt werden können.
-
Ein
weiteres Ausführungsbeispiel
umfasst ferner den Schritt eines Veränderns eines Identifikationstags
eines Knotens, der einer Vereinigung unterzogen wird, um sicherzustellen,
dass ein eindeutiger Knotenidentifizierer nach einer Zusammenführung bewahrt
wird. Bei einem weiteren Ausführungsbeispiel
umfasst der Schritt des Erzeugens eines verbrauchbaren Ergebnisauftragstickets,
das die vereinigten ersten und zweiten Auftragsticketknoten umfasst,
den Schritt eines Bildens einer logischen Vereinigungsmenge des
ersten und des zweiten Knotens des ersten und des zweiten Auftragstickets,
die vereinigt werden können.
Bei einem weiteren Ausführungsbeispiel
umfasst der Schritt des Erzeugens eines verbrauchbaren Ergebnisauftragstickets, das
die vereinigten ersten und zweiten Auftragsticketknoten umfasst,
den Schritt eines Bildens einer logischen Schnittmenge des ersten
und des zweiten Knotens des ersten und des zweiten Auftragstickets,
die vereinigt werden können.
Bei einem weiteren Ausführungsbeispiel
umfasst der Schritt des Erzeugens eines verbrauchbaren Ergebnisauftragstickets,
das die vereinigten ersten und zweiten Auftragsticketknoten umfasst,
den Schritt eines Bildens eines speziellen Ergebnisauftragsticketdatensatzes
basierend auf dem ersten und dem zweiten Knoten des ersten und des
zweiten Auftragstickets, die vereinigt werden können.
-
Ein
weiteres Ausführungsbeispiel
umfasst ferner den Schritt eines Lieferns von Diensten in dem Netzwerk
basierend auf dem verbrauchbaren Ergebnisauftragsticket, wobei ausgewählte Funktionen
des Auftragstickets von dem verbrauchbaren Ergebnisauftragsticket
entkoppelt werden, wenn die ausgewählten Funktionen des Auftragstickets
durch einen Primärdienst
ausgeführt
werden, und wobei ferner die verbleibenden Funktionen in dem verbrauchbaren
Ergebnisauftragsticket nachfolgend an zumindest einen Sekundärdienst
weitergeleitet werden.
-
Das
folgende Szenario liefert ein Beispiel einer Fähigkeitenverwaltung in einem
prozessorgesteuerten Netzwerk. Bei einer exemplarischen Betriebsumgebung
wird ein Drucker 160 in einem Unternehmensnetzwerk 100 (1)
verwendet. Dienste sind zwischen dem Endbenutzer (z. B. der Client-Vorrichtung 110)
und dem Drucker 160 installiert, um einen Bestimmungsort
von Aufträgen
zu verwalten und zusätzliche
Funktionen zu ermöglichen.
Ein Druckertreiber wird bei der Client-Vorrichtung 160 verwendet
(z. B. ein Programm 123), und clientseitige Anwendungen
werden bei der Client-Vorrichtung 160 verwendet
(z. B. ein anderes Programm 123). Eine clientseitige Anwendung,
wie z. B. ein Wortprozessor, wird bei der Client-Vorrichtung 160 verwendet (z.
B. ein weiteres Programm 123). Ein Benutzer ruft einen
Auftrag durch eine Client-Anwendung, wie z. B. einen Wortprozessor,
auf und wünscht,
den Wert des Seiten-pro-Blatt-Merkmals auf 4 zu setzen und in Farbe zu
drucken. Informationen werden von allen verfügbaren Diensten in dem Netzwerk 100 gewonnen.
Der aufgerufene Drucker 160 unterstützt Farbdrucken, unterstützt jedoch
nur 1–2
Seiten pro Blatt. Der Druckertreiber an der Client-Vorrichtung 110 unterstützt 1, 2,
3, 4, 5, 6 oder 7 Seiten pro Blatt. Der Druckertreiber an der Client-Vorrichtung 110 hat
keine Informationen darüber,
was der Drucker 160 unterstützt, und umgekehrt. Der Druckertreiber
erzeugt ein Ticket, das seine eigenen Dienste beschreibt, und andere
Dienste erzeugen zusätzliche
Tickets, die die Dienste beschreiben, die jeder liefert. Der Client
empfängt
ein Fähigkeitenticket
von dem Netzwerk, das die Fähigkeiten
spezifiziert, die von einem Dienst verfügbar sind. Ein Vereinigungsalgorithmus nimmt
das Ticket von den Diensten und vereinigt dasselbe mit dem Ticket
von dem Druckertreiber. Beide Tickets umfassen das Seiten-pro-Blatt-Merkmal, aber
nur eines umfasst das In-Farbe-Drucken-Merkmal. Der Vereinigungsalgorithmus
erzeugt den Übersatz
(Vereinigungsmenge) von Merkmalen, die durch alle Tickets geliefert
werden. Deshalb ist das In-Farbe-Drucken-Merkmal in dem Ergebnis
enthalten. Für
Merkmale, die mehr als einem Ticket gemeinsam sind, bestimmt der
Vereinigungsalgorithmus, wie sich die Optionen innerhalb jedes Merkmals
unterscheiden, und erzeugt einen Übersatz der Optionen bei beiden
Tickets. Die zusätzlichen
Optionen für
das Seiten-pro-Blatt-Merkmal
werden zu dem Seiten-pro-Blatt-Merkmal in dem Druckerticket zusammengeführt, wodurch
ein vereintes Seiten-pro-Blatt-Merkmal bei dem vereinigten Endergebnisticket
erzeugt wird. Dann wird dem Benutzer der vereinigte Merkmalssatz
präsentiert.
Der Benutzer wählt
Farbdrucken, 4 Seiten pro Blatt. Ein Absichtsticket wird basierend
auf empfangenen Benutzerauswahlen erzeugt. Der Auftrag wird dann
an nachgeschaltete Dienste gesendet, wo die Vereinigung desselben
aufgehoben wird. Der Treiber führt
das Seiten-pro-Blatt-Merkmal aus. Der Drucker empfängt das
gültige
Absichtsticket und druckt den Auftrag in Farbe.
-
Bei
einem zweiten Beispiel, das die gleiche Netzwerkkonfiguration wie
das vorhergehende Beispiel aufweist, wird ein neuer Treiber verwendet,
um nur eine Seite pro Blatt zu liefern. Das Einschränkungsmerkmal hebt
die Fähigkeiten
auf, die durch den Drucker 160 und jegliche intervenierende
Treiber geliefert werden, ohne dass eine weitere Handhabung oder
mehr Zeit von einem Netzwerkadministrator erforderlich sind.
-
Bei
einem weiteren Ausführungsbeispiel,
das erneut die gleiche Netzwerkkonfiguration wie das vorhergehende
Beispiel aufweist, geht ein neuer Faxdienst in dem Netzwerk online.
Der Vereinigungsdienst erkennt die neuen Faxdienstmerkmale und vereinigt
dieselben zu einem Ergebnisticket, das die vereinigten Informationen
durch einen Benutzerschnittstelle (z. B. 112) an einen
Benutzer liefert. Bei den Merkmalen des neuen Faxdienstes kann dann
bei einem nachgeschalteten Arbeitsfluss die Vereinigung aufgehoben
werden, und der Auftrag kann an den Faxdienst und den Drucker 160 verteilt
werden.
-
Es
wird erwartet, dass die Erfindung in anderen spezifischen Formen
ausgeführt
wird, die nicht beschrieben sind und die nicht von ihrer Wesensart
oder grundsätzlichen
Charakteristika abweichen. Die beschriebenen Ausführungsbeispiele
sollen in jeder Hinsicht nur als veranschaulichend und nicht als
einschränkend
betrachtet werden, wobei der Schutzbereich der Erfindung durch die
angehängten
Ansprüche
und deren Äquivalente
definiert ist.