Rechtsprechung / BPatG / 2023
BPatG Beschluss vom 07.11.2023 – 17 W (pat) 9/20
17. Senat · ECLI:DE:BPatG:2023:071123B17Wpat9.20.0
BUNDESPATENTGERICHT
17 W (pat) 9/20 _______________________
(Aktenzeichen)
B E S C H L U S S
In der Beschwerdesache
betreffend die Patentanmeldung 11 2016 001 075.3
…
hat der 17. Senat (Technischer Beschwerdesenat) des Bundespatentgerichts am
7. November 2023 unter Mitwirkung des Vorsitzenden Richters Dipl.-Phys.
Dr. Morawek, des Richters Dipl. Ing. Hoffmann, der Richterin Akintche und des
Richters Dipl.-Phys. Dr. Städele beschlossen:
ECLI:DE:BPatG:2023:071123B17Wpat9.20.0
Auf die Beschwerde der Anmelderin wird der Beschluss der
Prüfungsstelle für Klasse G 06 F des Deutschen Patent- und
Markenamts vom 25. Juli 2018 aufgehoben und das Patent mit
folgenden Unterlagen erteilt:
Patentansprüche 1 bis 10, eingereicht am 10. Juli 2023,
Beschreibung Seiten 1 bis 78, eingereicht am 06. Juli 2023,
31 Blatt Zeichnungen mit Figuren 1A bis 10C vom 04. April 2023.
G r ü n d e
I.
Die vorliegende Patentanmeldung ist eine PCT-Anmeldung in nationaler Phase,
welche als WO 2017 / 019 794 A1 (im Folgenden als WO 2017 bezeichnet) in
Englisch und als DE 11 2016 001 075 T5 (im Folgenden als DE-T5 bezeichnet) in
deutscher Übersetzung veröffentlicht wurde.
Ihr PCT-Anmeldetag
ist der
27. Juli 2016. Sie nimmt die Priorität von zwei US-Voranmeldungen vom
27. Juli 2015 sowie von drei US-Voranmeldungen vom 26. Juli 2016 in Anspruch.
In der deutschen Übersetzung trägt sie die Bezeichnung
„Verteiltes Speichern und Abrufen von Datensätzen“.
Die Anmeldung war in der Anhörung vom 25. Juli 2018 durch Beschluss der
Prüfungsstelle für Klasse G 06 F des Deutschen Patent- und Markenamts mit der
Begründung zurückgewiesen worden, dass die Gegenstände der jeweiligen
Patentansprüche 1 nach dem (damals geltenden) Hauptantrag sowie den
Hilfsanträgen 1 bis 3 nicht auf einer erfinderischen Tätigkeit des Fachmanns
beruhten, soweit sie ein technisches Problem mit technischen Mitteln lösten.
Gegen diesen Beschluss ist die Beschwerde der Anmelderin gerichtet. Auf einen
Zwischenbescheid des Senats vom 17. Mai 2022 hin hat diese eine überarbeitete
Fassung der Patentansprüche eingereicht, um die unter Schutz zu stellende
Erfindung klar und deutlich zu umschreiben und um sich gegen den bekannten
Stand der Technik abzugrenzen; die Beschreibung und die Zeichnungen wurden
entsprechend angepasst. Mit der Eingabe vom 10. Juli 2023 stellt die Anmelderin
den Antrag,
den Zurückweisungsbeschluss der Prüfungsstelle aufzuheben und
ein Patent zu erteilen auf Basis der folgenden Unterlagen:
Patentansprüche 1 bis 10, eingereicht am 10. Juli 2023,
Beschreibung Seiten 1 bis 78, eingereicht am 06. Juli 2023,
31 Blatt Zeichnungen mit Figuren 1 bis 10C vom 04. April 2023.
Das geltende Patentbegehren, hier bezüglich des Hauptanspruchs mit einer
möglichen Gliederung versehen, lautet:
1. Computerimplementiertes Verfahren, welches Folgendes umfasst:
VS1 ein Datensatz umfasst mehrere Datensatzteile,
VS2 gespeicherte Metadaten geben die Organisation von Daten innerhalb
des Datensatzes an,
VS3 eine oder mehrere Speichervorrichtungen halten einen Datensatz in
einer Datendatei,
VS4 Zuordnungskartendaten, gespeichert in der einen oder mehreren
Speichervorrichtungen, geben die Organisation des Datensatzes in
mehrere Datenblöcke innerhalb der Datendatei an,
VS5 die Zuordnungskartendaten umfassen mehrere Zuordnungskarteneinträge,
VS6 die Metadaten oder die Zuordnungskartendaten geben eine zweite
Anzahl von Knotenvorrichtungen an, die zuletzt am Speichern des
Datensatzes innerhalb der Datendatei beteiligt waren,
VS7 die Metadaten oder die Zuordnungskartendaten geben an, ob der
Datensatz partitionierte Daten umfasst,
VP wenn der Datensatz partitionierte Daten umfasst:
VP1 die Daten innerhalb des Datensatzes sind zu mehreren Partitionen
organisiert,
VP2 die Daten innerhalb jeder Partition müssen gemeinsam verarbeitet
werden, entsprechend muss
jede Partition einer einzigen
Knotenvorrichtung zugewiesen werden, um die Daten innerhalb jeder
Partition für eine gemeinsame Verarbeitung zusammen zu halten,
VP3
jeder Partition ist ein eindeutiges Partitionsetikett zugeordnet, von
welchem eine entsprechende gehashte Kennung abgeleitet wird,
welche die Partition identifiziert,
VP4
jeder Datenblock der mehreren Datenblöcke enthält zumindest einen
Datenunterblock,
VP5
jeder Datenunterblock enthält Daten einer einzelnen Partition,
VP6
jeder Datenunterblock entspricht einem einzelnen Datensatzteil der
mehreren Datensatzteile
VP7
jeder der Zuordnungskarteneinträge entspricht einem einzigen
Datenblock der mehreren Datenblöcke,
VP8
jeder der Zuordnungskarteneinträge enthält einen oder mehrere
Zuordnungskartenuntereinträge,
VP9
jeder Zuordnungskartenuntereintrag entspricht einem einzelnen
Datenunterblock,
VP10 jeder Zuordnungskartenuntereintrag enthält eine Datenunterblockgröße und eine gehashte Kennung der Partition des
entsprechenden Datenunterblocks,
VM wobei folgende Schritte durch die Prozessorkomponente einer
Steuervorrichtung durchgeführt werden:
VM1 Empfangen von Angaben von mehreren Knotenvorrichtungen, welche
von
ihnen
verfügbar
sind
für
die Ausführung
einer
Verarbeitungsaufgabe mit wenigstens einem Datensatzteil der
mehreren Datensatzteile,
VM2 Abrufen der Metadaten und der Zuordnungskartendaten von der einen
oder den mehreren Speichervorrichtungen über ein Netzwerk,
VM3 ansprechend auf die Angabe innerhalb der Metadaten oder der
Zuordnungskartendaten, dass der Datensatz partitionierte Daten
umfasst:
VM3.1
Bestimmen einer ersten Anzahl der verfügbaren
Knotenvorrichtungen aus den empfangenen Angaben,
welche Knotenvorrichtungen verfügbar sind,
VM3.2
Zuweisen, jeder der verfügbaren Knotenvorrichtungen,
eines Wertes aus einer Reihe positiver ganzzahliger
Werte als ein Festlegungswert, wobei sich die Reihe von
einem ganzzahligen Wert von 0 bis zu einem positiven
ganzzahligen Wert, der gleich der ersten Anzahl minus
dem ganzzahligen Wert von 1 ist, erstreckt,
VM3.3
Abrufen der zweiten Anzahl von Knotenvorrichtungen
aus den Metadaten oder den Zuordnungskartendaten,
VM3.4
Vergleichen der ersten und der zweiten Anzahl von
Knotenvorrichtungen,
um
eine Übereinstimmung
zwischen der ersten und der zweiten Anzahl zu
erkennen,
VM3.5
wenn der Datensatz partitionierte Daten umfasst und
wenn die erste und die zweite Anzahl übereinstimmen,
werden für jeden Zuordnungskarteneintrag der Zuordnungskartendaten folgende Schritte durch die Prozessorkomponente durchgeführt:
a1) Abrufen,
aus
einem
einzigen
Zuordnungskartenuntereintrag
des
Zuordnungskarteneintrags,
der
gehashten
Kennung
für einen einzigen Datenunterblock
innerhalb des entsprechenden Datenblocks,
a2) Abrufen,
aus
Zuordnungskartenuntereintrag,
jedem
einer
Datenunterblockgröße
für
jeden der Datenunterblöcke innerhalb des entsprechenden Datenblocks,
b)
Bestimmen einer Stelle des entsprechenden
Datenblocks innerhalb der Datendatei,
c)
Dividieren der gehashten Kennung durch die erste
Anzahl, um einen Modulo-Wert zu erhalten,
d)
Vergleichen des Modulo-Werts mit dem jeder der
verfügbaren Knotenvorrichtungen zugewiesenen
Festlegungswert, um eine verfügbare Knotenvorrichtung zu
identifizieren, der ein Festlegungswert zugewiesen ist, welcher mit dem
Modulo-Wert übereinstimmt, und
e)
Übertragen
eines
Zeigers,
von
der
Steuervorrichtung
an
die
verfügbare
Knotenvorrichtung, welcher der Festlegungswert
zugewiesen
ist, der mit dem Modulo-Wert
übereinstimmt, wobei der Zeiger Folgendes
umfasst:
e1)
eine Angabe zur Stelle des entsprechenden
Datenblocks und
e2)
eine Summe der Datenunterblockgrößen aller
Datenunterblöcke innerhalb des entsprechenden
Datenblocks.
2. Computerimplementiertes Verfahren nach Anspruch 1, wobei ansprechend auf
die Angabe, dass der Datensatz partitionierte Daten umfasst, und ansprechend
auf die Erkennung eines Fehlens einer Übereinstimmung zwischen der ersten
und der
zweiten Anzahl
für
jeden Zuordnungskarteneintrag der
Zuordnungskartendaten werden von der Prozessorkomponente die folgenden
Schritte ausgeführt:
für
jeden Zuordnungskartenuntereintrag
innerhalb des Zuordnungskarteneintrags:
Abrufen der Datenunterblockgröße und der gehashten Kennung des
entsprechenden Datenunterblocks innerhalb des entsprechenden Datenblocks
aus dem Zuordnungskartenuntereintrag,
Bestimmen einer Stelle des entsprechenden Datenunterblocks innerhalb der
Datendatei,
Dividieren der gehashten Kennung durch die erste Anzahl, um einen Modulo-
Wert zu erhalten,
Vergleichen des Modulo-Werts mit dem
jeder der
verfügbaren
Knotenvorrichtungen zugewiesenen Festlegungswert, um eine verfügbare
Knotenvorrichtung zu identifizieren, der ein Festlegungswert zugewiesen ist,
welcher mit dem Modulo-Wert übereinstimmt, und
Übertragen, von der Steuervorrichtung, eines Zeigers an die verfügbare
Knotenvorrichtung, welcher der Festlegungswert zugewiesen ist, der mit dem
Modulo-Wert übereinstimmt, wobei der Zeiger Folgendes umfasst:
eine Angabe zur Stelle des Datenunterblocks und die Datenunterblockgröße.
3. Computerimplementiertes Verfahren nach Anspruch 1, welches Folgendes
umfasst:
ansprechend auf eine Angabe
innerhalb der Metadaten oder der
Zuordnungskartendaten, dass der Datensatz keine partitionierten Daten umfasst,
werden für jeden Zuordnungskarteneintrag der Zuordnungskartendaten von der
Prozessorkomponente die folgenden Schritte ausgeführt:
Abrufen einer Datenblockgröße und einer Datenblockanzahl aus dem
Zuordnungskarteneintrag, wobei
die Datenblockanzahl
eine Anzahl
benachbarter Datenblöcke in der Datendatei, die dem Zuordnungskarteneintrag
entsprechen, angibt, und
für jeden Datenblock, der dem Zuordnungskarteneintrag entspricht:
Bestimmen einer Stelle des entsprechenden Datenblocks innerhalb der
Datendatei,
Auswählen einer der verfügbaren Knotenvorrichtungen und
Übertragen eines Zeigers an die ausgewählte der verfügbaren Knotenvorrichtungen, wobei der Zeiger Folgendes umfasst:
eine Angabe zur Stelle des entsprechenden Datenblocks innerhalb der
Datendatei und die Datenblockgröße.
4. Computerimplementiertes Verfahren nach Anspruch 3, wobei die Auswahl einer
der verfügbaren Knotenvorrichtungen eine Ringauswahl einer der verfügbaren
Knotenvorrichtungen umfasst.
5. Computerimplementiertes Verfahren nach Anspruch 1, wobei, ansprechend
darauf,
dass
der Datensatz
partitionierte Daten
umfasst,
die
Prozessorkomponente der Steuervorrichtung als eine der verfügbaren Knotenvorrichtungen agiert, indem eine Angabe der Stelle und einer entsprechenden
Summe der Datenunterblockgrößen sämtlicher Datenunterblöcke eines
Datenblocks entsprechend einem der Zuordnungskarteneinträge verwendet
werden, um den Datenblock aus der Datendatei zumindest teilweise parallel zu
zumindest einer anderen der verfügbaren Knotenvorrichtungen abzurufen.
6. Computerimplementiertes Verfahren nach Anspruch 5, wobei eine
Verarbeitungsaufgabe mit jedem Datenunterblock innerhalb des Datenblocks als
die eine der verfügbaren Knotenvorrichtungen zumindest teilweise parallel zu
zumindest einer anderen der verfügbaren Knotenvorrichtungen ausgeführt wird.
7. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Abrufen der
Zuordnungskartendaten aus der einen oder mehr als einen Speichervorrichtung
Folgendes umfasst:
Abrufen einer Basiszuordnungskarte aus der Datendatei,
Analysieren der Basiszuordnungskarte zum Feststellen, ob zumindest ein Teil
der Zuordnungskartendaten
innerhalb einer oder mehr als einer
Zuordnungskartenerweiterung innerhalb der Datendatei gespeichert ist, und
ansprechend auf eine Feststellung, dass zumindest ein Teil der
Zuordnungskartendaten innerhalb einer oder mehr als einer Zuordnungskartenerweiterung gespeichert ist:
Abrufen der einen oder mehr als einen Zuordnungskartenerweiterung aus der
Datendatei und
Abrufen zumindest einer Untermenge der Zuordnungskarteneinträge aus der
einen oder mehr als einen Zuordnungskartenerweiterung.
8. Computerimplementiertes Verfahren nach Anspruch 7, wobei beim Abrufen der
Zuordnungskartendaten von der einen oder mehr als einen Speichervorrichtung
ansprechend auf eine Feststellung, dass kein Teil der Zuordnungskartendaten
innerhalb einer oder mehr als einer Zuordnungskartenerweiterung gespeichert
ist, alle Zuordnungskarteneinträge aus der Basiszuordnungskarte abgerufen
werden.
9. Computerimplementiertes Verfahren nach Anspruch 1, wobei beim Empfang von
Angaben, welche Knotenvorrichtungen von den mehreren Knotenvorrichtungen
verfügbar sind, Folgendes ausgeführt wird:
wiederholtes Empfangen von Angaben zum Status von den mehreren
Knotenvorrichtungen und
wiederholtes Aktualisieren einer gespeicherten Angabe zur Verfügbarkeit jeder
Knotenvorrichtung von den mehreren Knotenvorrichtungen.
10. Computerimplementiertes Verfahren nach Anspruch 1, wobei eine Angabe zu
einer mit dem Datensatz auszuführenden Aufgabe den mehreren
Knotenvorrichtungen bereitgestellt wird, um es zumindest einer ersten
Knotenvorrichtung von den mehreren Knotenvorrichtungen zu ermöglichen, die
Aufgabe mit einem ersten Datensatzteil des Datensatzes auszuführen, und es
zumindest
einer
zweiten Knotenvorrichtung
von
den mehreren
Knotenvorrichtungen zu ermöglichen, die Aufgabe mit einem zweiten
Datensatzteil des Datensatzes zumindest teilweise parallel auszuführen.
Eine konkrete Aufgabe ist in der Anmeldung nicht angegeben.
Aus der Anmeldung ist zu entnehmen, dass eine Verbesserung des verteilten
Speicherns und Abrufens eines von mehreren Knotenvorrichtungen verarbeiteten
Datensatzes von den beschriebenen Ausführungsformen umfasst sei (vgl. DE-T5-
Schrift, Absatz [0073]).
II.
Die Beschwerde wurde rechtzeitig eingelegt und ist auch sonst zulässig. Sie hat
Erfolg, da das nunmehr geltende Patentbegehren durch den bekannt gewordenen
Stand der Technik nicht vorweggenommen oder nahegelegt ist und auch die übrigen
Kriterien für eine Patenterteilung erfüllt sind (PatG §§ 1 bis 5, § 34).
1.
Die vorliegende Patentanmeldung betrifft die Nutzung verteilter Rechen-
Ressourcen in einem Netz von Rechenknoten (Knotenvorrichtungen) und genauer
die Koordination zwischen Rechenknoten und Speichern sowie die Organisation
des Speicherns von Datensätzen, um das verteilte Speichern und Abrufen eines
von mehreren Rechenknoten verarbeiteten Datensatzes zu verbessern. Die
Ausführung von Analysen großer Datensätze („Big Data“) werde auf verschiedenen
Gebieten wie z.B. Simulationen, Prozessüberwachung, Entscheidungstreffung,
Verhaltensmodellierung und Vorhersagebildung zunehmend üblich. Solche Analysen würden häufig durch Rechen-Netze („Grids“) mit unterschiedlicher Anzahl verfügbarer Knotenvorrichtungen (= Rechenknoten) ausgeführt, während die zu verarbeitenden Datensätze häufig innerhalb eines separaten Satzes von Speichervorrichtungen gespeichert seien. Dies bringe die Herausforderung mit sich, solche
großen Datensätze zwischen Speichervorrichtungen und verschiedenen Rechenknoten des Netzes auf effektive Weise auszutauschen (vgl. DE-T5, Absätze [0002],
[0003]).
Der neue Patentanspruch 1 betrifft ein computerimplementiertes Verfahren
(Merkmal 1.) und soll die Effektivität beim Datenaustausch erhöhen.
Im ersten Merkmalskomplex (VS) sind die Datensätze, die Speicherung sowie die
Metadaten und Zuordnungskartendaten spezifiziert.
Konkret umfasst ein Datensatz mehrere Datensatzteile, d.h. es erfolgt eine
Organisation bzw. Strukturierung der Daten (vgl. DE-T5, Absatz [0194] – Merkmal
VS1).
Die Metadaten beschreiben, wie die Daten innerhalb eines Datensatzes organisiert
sind (vgl. DE-T5, Absatz [0192], Fig. 12A-12C – Merkmal VS2), wobei die
Datensätze in einem oder mehreren Speichern abgelegt sind (vgl. DE-T5, Absatz
[0192], Fig. 12A-12C – Merkmal VS3).
Weiter sind in den Speichern Zuordnungskartendaten abgelegt, die die Aufteilung
der Datensätze in Datenblöcke angeben (vgl. DE-T5, Absatz [0197], Fig. 12A-12C –
Merkmal
VS4).
Dabei
weisen
die
Zuordnungskartendaten
Zuordnungskarteneinträge auf, mit denen bspw. die Größe eines Datenblocks
definiert wird (vgl. DE-T5, Absatz [0206], Fig. 12A-12C – Merkmal VS5).
Die Metadaten oder die Zuordnungskartendaten geben zum einen eine zweite
Anzahl von Knotenvorrichtungen an, die zuletzt am Speichern des Datensatzes
innerhalb der Datendatei beteiligt waren, und zum anderen, ob der Datensatz
partitionierte Daten umfasst (vgl. DE-T5, Absatz [0011] – Merkmale VS6 und VS7).
Eine Knotenvorrichtung ist in der Lage, eine Verarbeitungsaufgabe mit wenigstens
einem Datensatzteil auszuführen (vgl. DE-T5, Absatz [0011]).
Bei den folgenden Merkmalen wird die Partitionierung für den Fall, dass der
Datensatz partitionierte Daten aufweist (Merkmal VP), präzisiert.
Dementsprechend erfolgt eine Aufteilung der Daten eines Datensatzes in mehrere
Partitionen, wobei die Daten jeder Partition einer Knotenvorrichtung zugewiesen und
von dieser gemeinsam verarbeitet werden müssen. Um die Zuordnung zu der
Knotenvorrichtung zu gewährleisten,
ist
jeder Partition ein eindeutiges
Partitionsetikett zugeordnet, von dem wiederum ein Hash-Wert (eine „gehashte
Kennung“) abgeleitet wird, der die Partition identifiziert (vgl. DE-T5, Absatz [0249] –
Merkmale VP1 bis VP3).
Weiter ist beansprucht, dass jeder Datenblock mindestens einen Datenunterblock
enthält, der Daten einer einzelnen Partition umfasst und einem einzelnen
Datensatzteil entspricht (vgl. DE-T5, Absatz [0261] – Merkmale VP4 bis VP6).
Zusätzlich entspricht
jeder der Zuordnungskarteneinträge einem einzigen
Datenblock. Dabei enthält der Zuordnungskarteneintrag einen oder mehrere
Zuordnungskartenuntereinträge, von denen jeder einem einzelnen Datenunterblock
entspricht. Jeder Zuordnungskartenuntereintrag enthält eine Datenunterblockgröße
und eine gehashte Kennung der Partition des entsprechenden Datenunterblocks
(vgl. DE-T5, Absatz [0206] – Merkmale VP7 bis VP10).
Im Folgenden (vgl. DE-T5, Fig.20A-20C, Absätze [0275]-[0284]) werden die Schritte
des Verfahrens, die durch die Prozessorkomponente einer Steuervorrichtung
durchgeführt werden, weiter konkretisiert (Merkmal VM).
Zu Beginn werden Angaben von mehreren Knotenvorrichtungen, welche für die
Ausführung einer Verarbeitungsaufgabe mit wenigstens einem Datensatzteil der
mehreren Datensatzteile verfügbar sind, empfangen – Merkmal VM1.
Weiter werden Metadaten und Zuordnungskartendaten von der einen oder den
mehreren Speichervorrichtungen über ein Netzwerk abgerufen – Merkmal VM2.
Wenn die Metadaten oder die Zuordnungskartendaten angeben, dass der Datensatz
partitionierte Daten umfasst (Merkmal VM3), wird eine erste Anzahl der verfügbaren
Knotenvorrichtungen aus den empfangenen Angaben bestimmt (Merkmal VM3.1).
Jeder der verfügbaren Knotenvorrichtungen wird ein Wert aus einer Reihe positiver
ganzzahliger Werte als ein Festlegungswert zugewiesen. Dabei erstreckt sich die
Reihe von 0 bis zu einem positiven ganzzahligen Wert, der gleich der ersten Anzahl
minus 1 ist (Merkmal VM3.2).
Als nächstes wird eine zweite Anzahl von Knotenvorrichtungen bestimmt (Merkmal
VM3.3). Die zweite Anzahl umfasst alle Knotenvorrichtungen, die zuletzt am
Speichern des Datensatzes innerhalb der Datendatei beteiligt waren (Absatz [0016]).
Anschließend werden die erste und die zweite Anzahl der Knotenvorrichtungen
dahingehend überprüft, ob eine Übereinstimmung vorliegt (VM3.4).
Sind alle Bedingungen erfüllt, d.h. der Datensatz umfasst partitionierte Daten und die
erste und die
zweite Anzahl stimmen überein, werden
für
jeden
Zuordnungskarteneintrag der Zuordnungskartendaten die folgenden Schritte durch
die Prozessorkomponente ausgeführt (Merkmal VM3.5):
Aus einem einzigen Zuordnungskartenuntereintrag wird die gehashte Kennung für
einen einzigen Datenunterblock ermittelt
(Merkmal a1)) und aus
jedem
Zuordnungskartenuntereintrag wird die Datenunterblockgröße für jeden der Datenunterblöcke innerhalb des entsprechenden Datenblocks ermittelt (Merkmal a2)).
Anschließend wird
für die Bereitstellung eines Zeigers eine Stelle des
entsprechenden Datenblocks innerhalb der Datendatei bestimmt (Merkmal b)).
Danach wird die gehashte Kennung durch die erste Anzahl der Knotenvorrichtungen
dividiert, um einen Modulo-Wert zu erhalten (Merkmal c)), und dieser Modulo-Wert
wird mit allen Werten, die den verfügbaren Knotenvorrichtungen zugewiesen worden
sind, auf Übereinstimmung verglichen, um eine verfügbare Knotenvorrichtung zu
ermitteln (Merkmal d)). An diese Knotenvorrichtung wird ein Zeiger übertragen
(Merkmal e)). Dabei umfasst der Zeiger eine Angabe zur Stelle des entsprechenden
Datenblocks (Merkmal e1)) und eine Summe der Datenunterblockgrößen aller
Datenunterblöcke innerhalb des entsprechenden Datenblocks (Merkmal e2)).
Im Ergebnis ermöglicht die beanspruchte Lehre eine Verbesserung des verteilten
Speicherns und Abrufens eines von mehreren Knotenvorrichtungen verarbeiteten
Datensatzes (vgl. DE-T5 Abs. [0073]), so dass ein großer Datensatz für eine
Verarbeitungsaufgabe, die auf mehrere Rechenknoten verteilt wird, partitioniert,
gespeichert und abgerufen werden kann, womit eine möglichst effektive
Verarbeitung der gespeicherten Datensätze möglich wird.
Als Fachmann, der mit der Aufgabe einer derartigen Verbesserung betraut wird,
sieht der Senat einen Informatiker mit Hochschulabschluss an, der über eine
mehrjährige Berufserfahrung auf dem Gebiet der Datenverarbeitung in verteilten
Rechen-Netzen – insbesondere auch unter dem Gesichtspunkt der koordinierten
Speicherung von Datensätzen in einem verteilten Speichersystem – verfügt.
2.
Das geltende Patentbegehren ist zulässig. Die Patentansprüche und die
überarbeitete Beschreibung bleiben innerhalb des Rahmens der ursprünglichen
Offenbarung. Auch andere Mängel liegen nicht vor.
2.1 Die Änderungen, die in den in der Anmeldung enthaltenen Angaben
vorgenommen worden sind, erweitern den Gegenstand der Anmeldung nicht.
2.1.1 Der Senat hat die von der Anmelderin in der Beschwerdebegründung vom
29. Januar 2019 als (damaligen) Hauptantrag beanspruchte Anspruchsfassung (Ansprüche 1 bis 30, eingegangen am 18. Juli 2018) im Zwischenbescheid vom
17. Mai 2022 als mängelbehaftet angesehen, weil die unter Schutz zu stellende
Erfindung diesen Patentansprüchen nicht klar und deutlich entnehmbar war. Er hat
festgestellt, dass die Lehre der Anmeldung und insbesondere der damals geltenden
Patentansprüche an vielen Stellen ungenau, mehrdeutig oder teilweise auch gar
nicht im Detail nachvollziehbar ist. Im Zwischenbescheid wurden zahlreiche Fragen
dazu gestellt, wobei auf konkrete Unklarheiten und Widersprüche hingewiesen
wurde.
Denn im Patent-Erteilungsverfahren ist für Patentansprüche zu sorgen, die die unter
Schutz gestellte Erfindung klar und deutlich umschreiben (BGH GRUR 1988, 757 –
Düngerstreuer, Abschnitt V Absatz 3) und geeignet sind, den Anmeldungsgegenstand eindeutig zu kennzeichnen und vom Stand der Technik abzugrenzen
(BGH GRUR 1979, 461 – Farbbildröhre, II. 2d). Der Schutzbereich muss, ggf. unter
Auslegung mittels der Beschreibung, so klar und eindeutig definiert sein, dass er
„für Außenstehende hinreichend sicher vorhersehbar ist” (BGH GRUR 1989, 903 –
Batteriekastenschnur, III.2.). Die Beseitigung vermeidbarer Unklarheiten hat im
Prüfungsverfahren zu erfolgen (BGH GRUR 2013, 1210 – Dipeptidyl-Peptidase-
Inhibitoren, III. 1a)). Diese Grundsätze gelten auch
für die Erteilung
im
Beschwerdeverfahren.
Die Anmelderin hat daraufhin die Patentansprüche überarbeitet und eine neue
Anspruchsfassung vorgelegt.
Die vorliegende Patentanmeldung erfolgte in englischer Sprache. Als Ursprungsunterlagen sind die am Anmeldetag eingereichten englischsprachigen Unterlagen
anzusehen. Zum Beleg der ursprünglichen Offenbarung wird auf die ursprüngliche
Anmeldung (WO 2017) Bezug genommen.
2.1.2 Zum Hauptanspruch
Der geltende Hauptanspruch geht zurück auf den Claim 21 der WO 2017.
Die Merkmalsgruppe VS basiert auf dem Claim 21, den Fig. 12A-12C und den
Absätzen [0011], [0013], [0072], [0073], [00190]-[00195], [00204].
Die Merkmalsgruppe VP ergibt sich aus dem Claim 21 und den Absätzen [0021],
[0026], [0032], [0041], [0073], [0075], [0081], [00200], [00203], [00204], [00205],
[00247], [00259] sowie [00271].
Die Merkmalsgruppe VM ist aus dem Claim 21, den Figuren 20A-20C und den
Absätzen [00273]-[00282] zu entnehmen.
Den mit der Anmeldung ursprünglich formulierten Patentansprüchen kommt im
Rahmen des Erteilungsverfahrens keine eine weitergehende Offenbarung in der
Beschreibung einschränkende Bedeutung zu (BGH GRUR 2005, 1023 –
Einkaufswagen II). Vielmehr ist es (lediglich) erforderlich, dass der Fachmann die
im Anspruch bezeichnete technische Lehre den Ursprungsunterlagen unmittelbar
und eindeutig als mögliche Ausführungsform der Erfindung entnehmen kann; dabei
ist eine unangemessene Beschränkung des Anmelders bei der Ausschöpfung des
Offenbarungsgehalts der Anmeldung zu vermeiden (BGH GRUR 2015, 976 –
Einspritzventil, Rn 45).
Zusammenfassend behebt die geltende Fassung des Anspruchs 1 Unstimmigkeiten
und Ungenauigkeiten der ursprünglichen Fassung, stellt letztlich aber nur eine
etwas andere Übersetzung der englischen Anspruchsfassung dar, ohne den
Schutzbereich inhaltlich zu verändern. Die ursprüngliche Offenbarung lässt sich, wie
ausgeführt, nachvollziehbar belegen.
2.1.3 Zu den Unteransprüchen 2 bis 10
Die Unteransprüche 2 bis 10 basieren auf den Claims 22 bis 30.
Damit ist auch für diese Patentansprüche die ursprüngliche Offenbarung gegeben.
2.1.4 Die Beschreibung wurde unter Berücksichtigung des entgegengehaltenen
Standes der Technik in zulässiger Weise daran angepasst. Insbesondere wurden
die ursprünglichen Figuren 1 bis 10 und die zugehörige Beschreibung gestrichen,
weil sie sich auf andere Aspekte des verteilten Speicherns beziehen.
2.2 Der Gegenstand des geltenden Patentanspruchs 1 ist durch den bekannt
gewordenen Stand der Technik weder vorweggenommen noch nahegelegt.
2.2.1 Im Prüfungsverfahren wurden entgegengehalten:
D1 US 2011 / 0 099 351 A1
D2
Intagly: „How Could I Have the Index of an Array 'Roll Over'
When
Incrementing“, Juli 2011,
im
Internet <URL:
https://stackoverflow.com/questions/6826826/how-could-ihave-the-index-of-an-array-roll-over-when-incrementing>
Die D1 betrifft ein Verfahren zur Deduplizierung von Daten
in einem
Speichersystem. Dabei werden Werte berechnet, die den Inhalt der Daten
repräsentieren und jeweils als sogenanntes geometrisches Zentrum für einen
Knoten bezeichnet werden. Wenn eine Schreibanforderung empfangen wird, wird
der Knoten
für das Speichern ausgewählt, dessen Daten die größte
Übereinstimmung mit bereits gespeicherten Daten aufweist. Damit soll das
Speichern von unnötigen Duplikaten von Daten über verschiedene Knoten im
Speichersystem hinweg vermieden werden (Absatz [0013]).
Bei dem Verfahren wird ein Block („chunk“) in mehrere Datensegmente unterteilt
(Absätze [0014], [0067]-[0069] – Merkmal VS1).
Zum Auffinden der Segmente wird eine clusterweite Datenbank verwendet (Absätze
[0072]-[0074]). Weiter ist in diesen Absätzen die Organisation der Daten, das
Speichern in einer Datendatei, sowie die Verwendung von Einträgen für die
Adressierung gezeigt – Merkmale VS2 bis VS5 und VM2).
Schließlich ist beschrieben, dass ein Knoten, dessen gespeicherte Datenmenge
sich der physischen Grenze des Speichers nähert, nicht mehr für die Speicherung
verwendet wird, d.h. es
findet eine Prüfung der Verfügbarkeit von
Knotenvorrichtungen statt (Absatz [0065] – Merkmale VM und VM1).
Aus der Druckschrift ist jedoch nicht zu entnehmen, dass die Einträge eine Angabe
über die zuletzt für das Speichern verwendeten Knoten enthalten. Somit ist das
Merkmal VS6 nicht gezeigt.
Der Begriff „Partition“ ist nur in Absatz [0020] der D1 zu finden, bezieht sich aber
auf die Verteilung der Datenblöcke über die Knoten des Speicherclusters.
Partitionen i. S. d. Anspruchs 1, die jeweils einer Knotenvorrichtung zugewiesen
werden müssen, gehen nicht aus der Druckschrift hervor. Sonach ist die
Merkmalsgruppe VP nicht gezeigt.
Das gleiche gilt auch für die Merkmale VS7 und VM3 bis VM3.5 e2), die ebenfalls
auf dem Vorliegen partitionierter Daten basieren.
Die Druckschrift D2 zeigt einen Blog-Eintrag aus dem Jahr 2011 („asked Jul 26,
2011 at 7:45 - user avatar: intagli“). Auf die Frage eines Programmierers: „So I have
an Array with the length of 4. When I increment it by 1 and the number gets bigger
than the length of the array, I'd like it to rollover“ wird ihm der „Modulo-Operator“
vorgeschlagen: „You can use the modulo operator: current_index = (current_index
+ n) % 4;“. Insofern belegt diese Druckschrift lediglich, dass ein Programmierer die
Modulo-Funktion und ihre Anwendung, um einen Index beim Hochzählen innerhalb
des Bereichs der Array-Größe zu halten, kannte. Weitere Einzelheiten zu der
beanspruchten Speicherung und Verarbeitung partitionierter Daten fehlen. In Bezug
auf den neuen Patentanspruch 1 sind der Druckschrift somit allenfalls Teile der
Merkmale VM3.5c) bis VM3.5e) zu entnehmen.
2.2.2 Mit dem Zwischenbescheid vom 17. Mai 2022 hat der Senat nachträglich
noch die folgenden Druckschriften ins Verfahren eingeführt:
D3 US 2015 / 0 134 796 A1
D4 US 2004 / 0 015 478 A1
Die Druckschrift D3 betrifft die dynamische Partitionierung von Datenströmen (vgl.
Titel). Der Datenstrom besteht aus einer Folge von Datensätzen („data records“,
vgl. Absatz [0054]). Zur Speicherung der Stream-Datensätze ist angegeben, dass
hierfür Richtlinien vorgegeben werden, welche bspw. Sequenznummern (für die
einzelnen Datensätze) beinhalten können, die Bestandteil des Datensatzes sind
(vgl. Absätze [0044], [0054], [0100]). Ausgeführt wird die Speicherung durch ein
Stream-Management-System (SMS), welches u.a. ein „SMS control subsystem“
und ein „storage subsystem“ für die Durchführung des Speichervorgangs umfasst
(vgl. Absatz [0058]). Jedes SMS kann einen oder mehrere Knoten oder
Komponenten umfassen, die Datensätze basierend auf den Richtlinien empfangen
und an das SMS-Subsystem zum Speichern weiterleiten, wobei mehrere
Verarbeitungsvorgänge an den Datensätzen auch gleichzeitig, d.h. parallel
durchgeführt werden können (vgl. Absatz [0058]). Für die Speicherung der
Datensätze kann der Sender („data producer“) einen expliziten Partitionsschlüssel
angeben, es kann aber auch ein Partitionsschema oder eine Hash-Funktion
verwendet werden (vgl. Absatz [0071]). Bei der Verwendung einer Hash-Funktion
erfolgt eine Unterteilung in Bereiche positiver Zahlen, von denen jeder einen
Teilbereich einer Partition kennzeichnet (vgl. Absätze [0071], [0107]). Weiter ist die
Möglichkeit beschrieben, dass ein Knoten eines SMS-Subsystems derart
konfiguriert ist, dass er Datensätze von mehr als einer Partition verarbeitet (vgl.
Absatz [0072]). Ebenso können Datensätze einer Partition von mehr als einem
Knoten gespeichert werden (vgl. Absatz [0072]). Zudem wird auch der Abruf von
gespeicherten Datensätzen anhand von Sequenznummern angesprochen (vgl.
Absätze [0099] bis [0104] i. V. m. Figuren 13 und 14; s. auch Absätze [0082] bis
[0084] sowie Figur 8). Schließlich ist als Beispiel die Ausführung von sogenannten
„Big Data-Anwendungen“ angegeben (vgl. Absatz [0168]).
Hinsichtlich des neuen Anspruchs 1 sind demnach einzelne Elemente bei einer
isolierten Betrachtung wie bspw. die Organisation von Daten (Merkmal VS2), das
Halten bzw. Speichern eines Datensatzes in einer Datendatei (Merkmal VS3), die
Organisation der Daten in Partitionen, deren Verarbeitung sowie die Vorgabe eines
Partitionierungsetiketts (Merkmal VP1, teilweise Merkmale VP2 und VP3) und die
Speicherung auf Basis einer Hash-Funktion (Merkmal VM3.5a1)) in der Druckschrift
D3 gezeigt.
Aus den Absätzen [0072] und [0086] sowie Fig.15 ist eine Zuordnung von Knoten
zu den zu speichernden Partitionen zu entnehmen. Eine Unterscheidung zwischen
ersten und zweiten Knotenvorrichtungen, die insbesondere darauf beruht, welche
Knotenvorrichtungen zuletzt am Speichern beteiligt waren, geht aus der Druckschrift
nicht hervor. Somit sind zumindest die Merkmale VS6 sowie VM3.1 bis VM3.5
nicht zu entnehmen.
In der Druckschrift D4 ist eine Datenbank-Struktur beschrieben, die einen
besonderen Index für einen einfacheren Zugriff auf die Elemente der Datenbank
aufweist. Gemäß den Absätzen [00134] bis [0139] werden Hash-Funktionen benutzt, um den Offset, d.h. die Position eines Elementes K in einem Array mit N Elementen zu bestimmen. Demnach waren derartige Berechnungen und insbes. die
Nutzung der „Modulo“-Funktion für eine bestimmte, begrenzte Anzahl von
Elementen (= Array) dem Fachmann hinlänglich bekannt. Neben der Verwendung
einer „Hash-Funktion“ entnimmt der Fachmann jedoch allenfalls die Merkmale VS1
bis VS4 sowie VP und VP1 des Anspruchs 1 aus der Druckschrift D4 (vgl. Absätze
[0268] bis [0273] i. V. m. Figur 23).
2.2.3 Demnach nimmt keine der in Betracht gezogenen Druckschriften die Lehre
des geltenden Patentanspruchs 1 vorweg, und es sind auch keine Anregungen
erkennbar, die in naheliegender Weise zu dieser Lehre führen würden.
3.
Der geltende Patentanspruch 1 ist sonach gewährbar. Seine Unteransprüche 2 bis 10 sind ebenfalls gewährbar.
Das Patent war daher so wie nunmehr beantragt zu erteilen.
Rechtsmittelbelehrung
Gegen diesen Beschluss steht den am Beschwerdeverfahren Beteiligten das Rechtsmittel
der Rechtsbeschwerde zu. Da der Senat die Rechtsbeschwerde nicht zugelassen hat, ist
sie nur statthaft, wenn gerügt wird, dass
1. das beschließende Gericht nicht vorschriftsmäßig besetzt war,
2. bei dem Beschluss ein Richter mitgewirkt hat, der von der Ausübung des
Richteramtes kraft Gesetzes ausgeschlossen oder wegen Besorgnis der
Befangenheit mit Erfolg abgelehnt war,
3. einem Beteiligten das rechtliche Gehör versagt war,
4. ein Beteiligter im Verfahren nicht nach Vorschrift des Gesetzes vertreten war, sofern
er nicht der Führung des Verfahrens ausdrücklich oder stillschweigend zugestimmt
hat,
5. der Beschluss aufgrund einer mündlichen Verhandlung ergangen ist, bei der die
Vorschriften über die Öffentlichkeit des Verfahrens verletzt worden sind, oder
6. der Beschluss nicht mit Gründen versehen ist.
Die Rechtsbeschwerde ist innerhalb eines Monats nach Zustellung des Beschlusses beim
Bundesgerichtshof, Herrenstr. 45 a, 76133 Karlsruhe durch eine beim Bundesgerichtshof
zugelassene Rechtsanwältin oder durch einen beim Bundesgerichtshof zugelassenen
Rechtsanwalt einzulegen.
Dr. Morawek
Hoffmann
Akintche
Dr. Städele