-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft
die Bereitstellung von Datendiensten einschließlich Datenspeicherdiensten,
von einem mittig gelegenen Datenzentrum über ein Netzwerk für eine Mehrzahl
von Datenserviceteilnehmern, und die Mechanismen zur Sicherstellung,
daß die
gebotenen Dienste vorbestimmte Sicherheits- und Qualitätsanforderungen
der Dienstleistungsziele erfüllen.
-
HINTERGRUND
DER ERFINDUNG
-
Datenservicezentren bieten Teilnehmern
Zugang zu einer Vielfalt von Datendienstleistungen unter Verwendung
einer Vielfalt von Protokollen. In vielen Fällen umfassen diese Dienstleitungen
den Zugang zu einer zentralen Datenbank, welche aus vielen Datenspeichermitteln
bestehen kann. Die Datenbank, zu welcher die Teilnehmer Zugang suchen, speichert
im Allgemeinen sowohl statische als auch dynamische Inhalte einschließlich Textdateien
und graphische Dateien, Videodateien und Animationsdateien, digitale
Musik, digitale Bibliotheken, Aktienmarktberichte und individuelle
Portfolioberichte, finanzielle Aussagen und viele andere Arten von
Informationen. Die Protokolle, welche für den Zugriff zu den gespeicherten
Informationen verwendet werden, umfassen Hypertext Transfer Protocoll
(HTTP), File Transfer Protocol (FTP), Transmission Control Protocol
(TCP), User Datagram Protocol (UDP), Network File System (NFS),
Web-based NFS (WebNFS), Small Computer System Interface (SCSI) and
Common Internet File System (CIFS) als Protokolle.
-
Ein typisches Datendienstleistungszentrum muß im Allgemeinen
seine Dienstleitungen gleichzeitig für eine große Anzahl von Teilnehmern unter
Verwendung von vielerlei Kombinationen dieser Protokolle verfügbar machen.
Weiter muß das
Zentrum für jeden
Teilnehmer Sicherheitsdienste bieten, welche andere Teilnehmer daran
hindern, unberechtigten Zugriff auf die Teilnehmerdaten zu nehmen.
Das Datenbankzentrum muß weiter
Abrechnungsdienste bieten, um den Teilnehmern die gebotenen Dienstleistungen
in Rechnung zu stellen und ein Verkehrsprofil einstellen zu können.
-
Sämtliche
dieser Dienstleistungen müssen
in Übereinstimmung
mit vorbestimmten Qualitäts-
und Dienstleistungsvorgaben geboten werden, welche mit den Teilnehmern
vereinbart sind. Weiter müssen die
Dienstleistungen in differenzierter Weise durchgeführt werden,
wobei jeder Teilnehmer die Art von Dienstleistung erhält, welche
er abonniert hat.
-
Dienstleistungssysteme nach dem Stande der
Technik verwendeten gesonderte Prozeduren für die individuelle Handhabung
jeder der vielerlei Anforderungen. Dienstleistungssysteme nach dem
Stande der Technik geben nur eine sehr begrenzte Unterstützung für eine Mehrzahl
von Teilnehmern. Sie bieten nicht gesonderte Dienstleistungsqualität und Abrechnungsmodi.
Sie bieten nur eine schwache Auftrennung des Zugriffs. Aus diesem
Grunde müßten praktisch
Datenzentrumsadministratoren körperlich
getrennte Datenservicesysteme für
jeden Teilnehmer aufbauen, was zu einem wesentlich erhöhten Kapitalaufwand
und Aufwand für
Unterhaltung und Administration führen würde.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß den Grundsätzen der
Erfindung verwenden ein Verfahren und eine Einrichtung zur Aufteilung
von Netzwerk-Datendienstleistungen unter vielen Teilnehmern die
Information, die in verschiedenen Tabellen gespeichert ist, um eine
Mehrzahl unabhängiger
Netzwerke zu definieren, wobei jedes unabhängige Netzwerk eine Gruppe
von Zugriffsanschlüssen
und eine einzigartige Gruppe von Bestimmungsadressen ent hält und logisch
von allen anderen unabhängigen
Netzwerken getrennt ist, so daß keine
Information von einem unabhängigen
Netzwerk zu einem anderem unabhängigen
Netzwerk gelangen kann. Wenn ein Teilnehmer eine Anfrage macht,
um ein unabhängiges
Netzwerk zu verwenden, dann wird ein Teilnehmerschlüsselwort,
das auf der Identität
des Teilnehmers und dem Netzwerkzugriffsanschluß basiert, dazu verwendet,
Zugriff auf die Informationen in den Tabellen zu nehmen, um zu bestimmen,
ob der Teilnehmer die Erlaubnis hat, das unabhängige Netzwerk zu verwenden.
-
Wenn der Teilnehmer die Erlaubnis
hat, das unabhängige
Netzwerk zu verwenden, dann wird die aus den Tabellen gewonnene
Information dazu verwendet, zu bestimmen, ob der Ursprungsteilnehmer oder
ein Bestimmungsteilnehmer Kontrolle über die Ressource hat. Wenn
ein Bestimmungsteilnehmer die Kontrolle über die Ressource hat, wird
die in der Anfrage enthaltene Information dazu verwendet, einen
Bestimmungsteilnehmer und einen Antwortanschluß zu identifizieren. Wenn ein
Ursprungsteilnehmer oder Ausgangsteilnehmer die Kontrolle über die Ressource
hat, so wird die Identität
dazu Verwendet, zu bestimmen, ob der Ursprungsteilnehmer Zugriff
zu der Ressource nehmen kann.
-
Gemäß einer anderen Ausführungsform
der Erfindung ermöglicht
es ein integriertes Verfahen einem Datendienstleistungssystem, zwei
Niveaus der Sicherheit zu bieten, um sicherzustellen, daß nichtberechtigte
Benutzer keinen Zugriff zu dem System erhalten oder Zugriff zu dessen
geschützten
Ressourcen zu erhalten.
-
Der erste Sicherheitspegel ist an
der Netzwerkschnittstelle zu dem System gegeben, wo Benutzer, welche
Zugriff auf das System zu nehmen suchen, gegenüber einer Datenbank berechtigter
Benutzer einer Überprüfung unterzogen
werden und nur zugelassen werden, wenn sie in diese Datenbank eingetragen
worden sind. Eine zweite Sicherheitsschranke ist auf dem Niveau
der Ressource vorgesehen, wo eine zweite Datenbank dazu verwendet
wird, die Systemressourcen zu spezifizieren, zur welchen jeder Benutzer
Zugriff hat.
-
Verpflichtungen bezüglich der
Dienstleistungsqualität
werden durch Abteilung von Systemkapazität auf der Basis eines Servicevertrages
eines Teilnehmers berücksichtigt,
wobei sichergestellt wird, daß kein
Teilnehmer mehr als seinen Anteil dieser Kapazität zu dem Preis irgend eines
anderen Teilnehmers erhält,
welcher anderenfalls weniger als seinen gerechten Anteil erhielte.
Zusätzlich
wird jedem Teilnehmer gestattet, vorzuschreiben, wie seine Kapazität unter
seinen verschiedenen Gebrauchsabschnitten oder Sessionen aufzuteilen
ist, und die Prozedur bezüglich
der Dienstleistungsqualität
garantiert eine gerechte Aufteilung unter den Gebrauchsabschnitten oder
Sessionen des Teilnehmers entsprechend diesen Vorschriften. Schließlich werden
die Systemressourcen überwacht
und die Ergebnisse dieser Überwachung
dienen dazu, zu verhindern, daß Anfragen, welche
gegenwärtig
aufgrund ungenügender
Systemressourcen nicht bedient werden können, die Dienstleistung bezüglich solcher
Anfragen blockieren, welche bedient werden können.
-
Andere Ausführungsformen der vorliegenden
Erfindung bieten auch Abrechnungsmerkmale, welche es jedem Teilnehmer
an dem Datenservice ermöglichen,
seine Verwendung des Systems zu überwachen,
sowohl insgesamt als auch unterteilt nach den einzelnen Gebrauchsabschnitten,
oder Sessionen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die obigen und weitere Vorteile der
Erfindung ergebe sich noch deutlicher durch Bezugnahme auf die folgende
Beschreibung in Verbindung mit den begleitenden Zeichnungen. In
diesen stellen dar:
-
1 eine
Wiedergabe der verschiedenen Datenstrukturen, welche verwendet werden,
um die Merkmale der Sicherheit, der Dienstleistungsqualität und der
Abrechnung nach der Erfindung zu verwirklichen, sowie eine Darstellung
der Beziehung unter diesen Strukturen;
-
2 ein
Flußdiagramm,
welches das Ansprechen auf eine Anforderung einer Dienstleistung gemäß den Grundsätzen der
Erfindung zeigt und insbesondere die Prozedur verdeutlicht, durch
welche die Legitimiertheit einer Zugriffsanfrage festgestellt wird;
-
3 ein
Flußdiagramm,
welches die Prozedur darstellt, welche zur Bestimmung verwendet wird,
ob ein Benutzer, welcher Zugriff auf eine bestimmte Systemressource
verlangt, tatsächlich
die Erlaubnis hat, Zugriff auf diese Ressource zu nehmen;
-
4 ein
Flußdiagramm,
welches die Prozedur zeigt, um eine Anfrage, die als legitim festgestellt worden
ist, auf eine geeignete Liste von Anfragen zu setzen, welche auf
einen Service warten;
-
5 ein
Flußdiagramm,
welches die Prozedur einer zyklischen Behandlung einer Gruppe aktiver
Teilnehmer und die Bestimmung des Teilnehmers verdeutlicht, der
als nächster
für die
Dienstleistung erwählt
wird;
-
6 ein
Flußdiagramm,
welches die Prozedur zur zyklischen Behandlung der aktiven Gebrauchsabschnitte
oder Sessionen eines Teilnehmers zeigt, wobei diejenigen Gebrauchsabschnitte identifiziert
werden, die für
eine Dienstleistung ausgewählt
werden und die betreffenden Anfragen der Gebrauchsabschnitte oder
Sessionen einer geeigneten Applikation zu geführt werden;
-
7 ein
Flußdiagramm,
welches die Aktivitäten
zeigt, welche unternommen werden, wenn eine Anforderung oder Anfrage
durch eine Applikation bedient worden ist; und
-
8 ein
Flußdiagramm,
welches die Abrechnungsprozedur verdeutlicht, durch welche Daten,
welche eine Verwendung des Systems durch die Teilnehmer und die
Gebrauchsabschnitte reflektieren, gesammelt und aktualisiert werden.
-
DETAILLIERTE
BESCHREIBUNG
-
Für
die Zwecke der vorliegenden Beschreibung bezeichnet der Ausdruck "Datenservicesystem" oder einfach "System" die Hardware und
die Software, welche zur Verwirklichung der gewünschten Datenbankzentrum-Dienstleistungen
verwendet werden, und der Ausdruck "Teilnehmer" bezieht sich auf einen Kunden, dem
Zugriff auf irgendeine Untergruppe der verfügbaren Dienstleistungen und
der zugehörigen
Daten gewährt
wird. Ein Teilnehmer besteht typischerweise aus einer Anzahl von
Benutzern und Hostrechnern. Jeder Teilnehmer wird durch eine Gruppe
von Attributen identifiziert, welche als Teilnehmerschlüsselwort
bezeichnet werden, welches eindeutig den Teilnehmer von anderen
Teilnehmern unterscheidet.
-
Ein Teilnehmer wird als "registrierter Teilnehmer" bezeichnet, sobald
der Datenbanksystemadministrator ein Teilnehmerschlüsselwort
oder mehrere Teilnehmerschlüsselwörter in
die entsprechenden Datenbank eingeführt hat. Jedes Teilnehmerschlüsselwort
identifiziert Rechnersysteme, welche dem Teilnehmer zugeordnet sind,
durch Attribute in den Eingangsanfragen (beispielsweise eine Ausgangsadresseninformation
und/oder die Systemanschlüsse, über welche
der Teilnehmer Zugriff zu dem Datendiesnstleistungssystem hat. Der
Systemadministrator gibt auch die Systemressourcen ein, zu welchen der
Teilnehmer Zugriff nehmen kann. Der registrierte Teilnehmer kann
dann seine eigenen Ressourcen innerhalb dieses größeren Zusammenhanges
handhaben. Beispielsweise kann ein Teilnehmer zwei oder mehr "virtuelle Teilnehmer" konfigurieren und
der Datenbankzentrum-Systemadministrator kann dann jedem virtuellen
Teilnehmer seine eigenen Gruppe einer IP-Adresse oder mehreren IP-Adressen,
zugehörige
Volumen oder Dateisvsteme, Gruppen von Applikationen und Zugriffsrechte
zuordnen.
-
Ein anderes wichtiges Konzept ist
ein Gebrauchsabschnitt oder ein Session. Eine Session wird entweder
charakteristischer Weise durch ein Protokoll definiert, das von
dem Teilnehmer verwendet wird, um mit dem System zu kommunizieren, oder
aber durch ein Teilnehmer-Ressourcen-Paar d. h., durch eine von
einem Teilnehmer ausgelöste Transaktion,
um Zugriff zu einer bestimmten Systemressource zu erhalten (beispielsweise
ein Dateisystem oder ein logisches Speichervolumen). Ein Gebrauchsabschnitt
oder eine Session wird bei Empfang der ersten Serviceanfrage oder
Dienstleistungsanfrage geöffnet
und bleibt aktiv, solange weiterhin Anfragen unter diesem Gebrauchsabschnitt
empfangen werden. Wenn keine solchen Anfragen schweben, dann wird
die Session oder der Gebrauchsabschnitt als inaktiv bezeichnet.
Ein inaktiver Gebrauchsabschnitt oder eine inaktive Session kann rasch
neu aktiviert werden, wenn unter diesem Gebrauchsabschnitt neue
Anforderungen empfangen werden. Inaktive Gebrauchsabschnitte, welche über eine
vorbestimmte Zeitdauer keine Anfragen empfangen haben, können geschlossen
werden, um Systemressourcen einzusparen. Gebrauchsabschnitte oder
Sessionen können
auch durch eine Vielfalt von Mitteln geschlossen werden, abhängig von
dem Kommunikationsprotokoll, welches verwendet wird, einschließlich überlanger
Leerlaufzeit, Ausschaltungen, administrativen Anforderungen oder
anderen Mechanismen. Ein Teilnehmer wird als "aktiv" bezeichnet, solange irgendeiner seiner
zugeordneten Gebrauchsabschnitte aktiv ist. Anderenfalls wird er als "inaktiv" bezeichnet.
-
Eine Ausführungsform eines Datenservicesystems,
welche gemäß den Grundsätzen der
vorliegenden Erfindung aufgebaut ist, enthält eine Gruppe von integrierten
Prozeduren, welche es einem Datenservicesystem ermöglichen,
in wirkungsvoller Weise Merkmale bezüglich Sicherheit, Dienstleistungsqualität und Abrechnung
zu bieten. Diese Prozeduren arbeiten mit einer Gruppe von miteinander
in Beziehung stehenden Datenstrukturen zum Verfolgen von Teilnehmern
und Sessionen oder Gebrauchsabschnitten und zur Bestimmung ihrer
Zugriffsprivilegien und des Serviceniveaus, zu welchem sie zugelassen
sind. Die Information in diesen Strukturen wird entweder durch den
Datenbankzentrum-Systemadministrator, durch einzelne Teilnehmer oder
durch Errechnung durch das Datenservicesystem geliefert. Um diesen
Prozeß zu
vereinfachen, wird bei einer Ausführungsform diese Information
durch Management-Informations-Basistabellen
(MIB) in Entsprechung mit dem Internet Society RFC 1155-Standanrd repräsentiert.
Da die Tabellen ein Standardformat haben, kann ihr Inhalt unter
Verwendung des breit akzeptierten Simple Network Management Protocol (SNMP)
Gegenstand eines Zugriffs sein und gehandhabt werden.
-
Datenstrukturen, welche bei einer
Ausführungsform
der vorliegenden Erfindung verwendet werden, sind schematisch in 1 gezeigt. Diejenigen Strukturen,
welche als MIB-Tabellen organisiert sind, sind durch schraffierte
Beschriftungsfelder angedeutet und werden als "Tabellen", und nicht mit dem allgemeineren Ausdruck "Datenbank" bezeichnet. Die
Basistabelle 102 enthält
einen Eintrag für
jeden Teilnehmer, und dieser Eintrag enthält den Teilnehmernamen, die
Kontaktinformation und nach Wunsch zusätzliche beschreibende Informationen. Die
Information für
diesen Eintrag wird durch den Datensystemadministrator eingegeben.
Die Eingabe wird durch eine einzigartige Nummer indiziert, welche als "Teilnehmerführung" bezeichnet wird,
welche jedem Teilnehmer zugeordnet wird, wenn dieser registriert
wird. Die Aufzeichnung der Zuordnung vom Teilnehmernamen zur Teilnehmerführung wird
auch in der inversen Tabelle 100 festgehalten, so daß nachfolgende
Bezugnahmen auf den Namen des Teilnehmers leicht in die entsprechende
Teilnehmerführung umgesetzt
werden können.
Die inverse Tabelle wird intern ohne Zutun des Systemadministrators
aufgebaut.
-
In dieser Ausführungsform wird, wenn ein Teilnehmer
auf das System Zugriff zu nehmen sucht, er durch eine einheitliche
Kennzeichnung identifiziert, die unzweideutig für diesen Teilnehmer gilt und als "Teilnehmerschlüsselwort" bezeichnet wird.
Das Teilnehmerschlüsselwort
ist aus teilnehmerspezifischen Attributen zusammengesetzt, die aus
der Eingangsanfrage zusammengetragen sind, wobei deren Natur von
der Kommunikations-Infrastruktur abhängig ist. Beispielsweise umfassen
für Speicher-Bereichsnetzwerke
unter Verwendung von Fibre-Channel die relevanten Attribute, die
Systemanschlußadresse,
die Fibre-Channel-Domäne
und Bereichsidentifizierungen sowie die zugeteilte Schleifenanschlußadresse
(AL-PA). Für
Internetzugriffe ist das Teilnehmerschlüsselwort vom Rechnersystem
aus irgendeiner Untergruppe folgender Gegenstände aufgebaut: Die Identität des Systemanschlusses, über welchen die
Anforderung empfangen wurde, die Markierung, welche das virtuelle
Netz örtlichen
Bereiches (VLAN) identifiziert, über
welches die eingegebene Anfrage übermittelt
wurde, die Ausgangs-Internet-Protokoll-Adresse (IP), die Bestimmungsort-IP-Adresse und
die Ausgangs-TCP- oder -UDP-Anschlußadressen. Ein Teilnehmer kann
einige dieser Parameter als belanglos bezeichnen, wodurch der Teilnehmer
in die Lage versetzt wird, sich durch einen Bereich von Adressen
repräsentieren
zu lassen. Andere Parameter werden mit anderen Protokollen und Kommunikationstopologien
verwendet.
-
Das Teilnehmerschlüsselwort
kann zusätzlich
zur Identifizierung des Teilnehmers dazu verwendet werden, unberechtigten
Zugriff auf Ressourcen zu verhindern, welche dem Teilnehmer zugeordnet sind.
Demgemäß hängt die
spezifische Untergruppe von Attributen, die zur Definition des Teilnehmerschlüsselwortes
verwendet werden, teilweise davon ab, was unter physikalischer Kontrolle
des Datenbankzentrums steht. Wenn beispielsweise das Datenbankzentrum
den körperlichen
Zugriff zu dem virtuellen Netz örtlichen
Bereiches steuert, dann braucht die Systemanschlußadresse
nicht in dem Schlüsselwort
enthalten zu sein, das für
den Internetzugriff verwendet wird, da die Verbindungen vom virtuellen
Netz örtlichen
Bereiches zum Systemanschluß sicher
sind. Wenn das Datenbankzentrum Ursprungs-IP-Adressenfilterungs-Leitanschlüsse zwischen
die Teilnehmer und das virtuelle Netz örtlichen Bereiches setzt, dann
bieten diese Adressen ein Mittel für eine sichere Teilnehmeridentifizierung.
In entsprechender Weise bilden dann, wenn das Datenbankzentrum Einrichtungen
enthält,
welche unabhängig
Teilnehmer identifiziert und sie zu einer bekannten Gruppe von TCP-
oder UDP-Anschlußadressen
zuordnet, diese Adressen ein weiteres Mittel für eine zuverlässige Identifizierung
eines Teilnehmers. Trotzdem können
auch Ursprungs- oder Ausgangsadressen und Netzwerkadressen, welche
nicht unter Steuerung durch das Datenbankzentrum stehen, beispielsweise
Medienzugangssteueradressen (Media Access Control (MAC)) und World Wide
Names zur Identifizierung des Teilnehmers verwendet werden. Während diese
Adressen verhältnismäßig leicht
nachgemacht werden können,
bieten sie doch ein bestimmtes Schutzniveau gegen zufälliges Eindringen.
-
Für
jeden Eintrag in der Basistabelle 102 gibt es einen entsprechenden
Eintrag (ebenfalls durch die Teilnehmerführung indiziert,) in drei anderen
Tabellen und Datenbanken, nämlich
der Teilnehmer-Abrechnungstabelle 118, der Teilnehmer-Verkehrsvertragstabelle 112 und
der Teilnehmer-Uberwachungsdatenbank 122. Die erste dieser
Tabellen, nämlich
die Teilnehmer-Abrechnungstabelle 118, dient zur Aufzeichnung
der Menge von Dienstleistung, die dem einzelnen Teilnehmer geboten
worden ist und wird periodisch durch das Datenbankzentrum-Rechnersystem
mit Statistiken aktualisiert, welche die Verwendung des Systems
durch jeden Teilnehmer über
die jüngste
Abrechnungsperiode hin reflektieren. Typischerweise ist in dieser
Tabelle auch die Zahl von Operationen enthalten, die von dem Teilnehmer
durchgeführt
werden sowie die Menge von Daten, welche während der laufenden Abrechnungsperiode
empfangen und übertragen
worden sind. Jeder Teilnehmer kann seine entsprechende Eintragung
in der Teilnehmer-Abrechnungstabelle ablesen und ist so in die Lage
versetzt, seinen eigenen Pegel von Aktivitäten zu überwachen.
-
Die nächsten beiden Tabellen bzw.
Datenbanken werden in Kombination dazu verwendet jedem Teilnehmer
die Qualität
der Dienstleistung, auf welcher er Anrecht hat, zu garantieren.
Die Teilnehmer-Verkehrsvertragstabelle 112 führt im einzelnen das
Niveau der Dienstleistung auf, welches durch den Teilnehmer vereinbart
worden ist, und enthält den
Bruchteil der Kapazität
des Systems, welcher jedem Teilnehmer gemäß seinem Dienstleistungsvertrag
zukommt. Information kann in diese Tabelle sowohl durch die Teilnehmer
als auch das Datenbankzentrumspersonal eingegeben werden und ermöglicht es
den Teilnehmern, vorzuschreiben, wie die betreffenden Ressourcen über die
verschiedenen Klassen von Gebrauchsabschnitten oder Sessionen hin zu
verteilen sind. Da auf die Tabelle durch einen Teilnehmer Zugriff
genommen werden kann, kann der Teilnehmer das von ihm gewünschte Niveau
der Dienstleistung spezifizieren und kann entsprechend belastet
werden.
-
Die Teilnehmer-Überwachungsdatenbank 122 wird
von dem Datenbankzentrum-Rechnersvstem dazu verwendet, die laufende
Aktivität,
welche zu jedem aktiven Teilnehmer gehört, zu verfolgen. Jede Eintragung
enthält
einen Zählerstand
zum Festhalten der Anzahl von für
den betreffenden Teilnehmer schwebenden Anfragen, eine Dienstleistungsqualitätsgröße, welche
zu dem Bruchteil der dem Teilnehmer zugeordneten Kapazität, welche
verwendet wurde, in Beziehung steht, sowie Zeiger zu anderen Datenstrukturen,
welche die Reihenfolge anzeigen, in welcher seine Arbeitsabschnitte
oder Sessionen zu bedienen sind. Diese Datenstrukturen basieren
wiederum auf Dienstleistungsqualitätsgrößen, welche den Bruchteil der
Kapazität
reflektieren, welche jedem der Bearbeitungsabschnitte oder der Sessionen
des Teilnehmers zugeordnet sind, welcher durch diesen Bearbeitungsabschnitt
gebraucht wurde. Ein einfaches Beispiel einer Bearbeitungsqualitätsgröße, welche
einer Session zugeordnet ist, ist das Verhältnis Cu(i)/f(i)Cs, wobei Cu(i) die
bisher durch den i-ten Bearbeitungsabschnitt des Teilnehmers verbrauchte
Kapazität
ist und f(i) der Bruchteil der dem Teilnehmer zugeordneten Kapazität Cs ist, welcher dem betreffenden Bearbeitungsabschnitt
zugeordnet ist. Die Größe Cu(i) wird typischerweise periodisch renormalisiert,
um die Kapazität
zu reflektieren, welche über
das jüngste
Zeitintervall hinweg verwendet wurde, wobei in diesem Falle Cs die Kapazität repräsentiert, die je Zeitintervall
zugeordnet wurde. Diese Information wird verwendet, um sicherzustellen,
daß jeder
Teilnehmer die Dienstleistungsqualität erhält, welche vertraglich zugesichert
wurde, daß diese
Dienstleistungsqualität über seine
Bearbeitungsabschnitte oder Sessionen entsprechend den Vorschriften
des Teilnehmers verteilt wird und, insbesondere, daß kein Teilnehmer
oder keine Session unter schlechterer Dienstleistung aufgrund einer übergroßen Nachfrage
auf der Seite eines anderen Teilnehmers oder einer anderen Session
leidet.
-
Eine andere Datenstruktur, die Sessionsdatenbank
oder Bearbeitungsabschnitt-Datenbank 120 wird von dem Datenbankzentrum-System
unterhalten und dient zur Förderung
der Verarbeitung einer Anfrage im Zusammenhang mit einer offenen
Session. Hier wird eine „Sessionsführung" als ein Index für einen
Eintrag in der Datenbank verwendet, welche Zeiger zu den Listen
von Anfragen enthält,
welche für die
betreffende Session schweben und, falls zutreffend, zu dem relevanten
Eintrag in der Teilnehmerdateisystem-Aufzeichnungsdatenbank 106 (siehe unten).
Zusätzlich
enthält
jeder Eintrag eine Größe, welche
Beziehung zu dem Bruchteil des Durchsatzes hat, der der Session
zugeordnet ist, von dem zu einer gegebenen Zeit Gebrauch gemacht
worden ist. Jede Session ist eindeutig durch ihre zugeordnete Sessionsführung identifiziert,
die aus der Verkettung der Teilnehmerführung und einem Sessionsschlüsselwort
gebildet ist, das aus anderen Feldern aufgebaut ist, die von dem
Kommunikationsprotokoll-Header extrahiert sind. In einer Ethernet-Umgebung
wird beispielsweise das Sessionsschlüsselwort aus einer Untergruppe
der Protokollidentifizierungs-Ausgangs-und-Bestimmungsadresse (IP)
und den Übertragungsschicht-Ausgangs-und-Bestimmungs-Anschlußfeldadressen
extrahiert. In der Umgebung eines Fibre Chanel Network werden typischerweise
die Knotenpunktidentifizierung (N-ID) und die logische Zieleinheitsnummer
(LUN) verwendet.
-
In einer anderen Ausführungsform
hat ein Teilnehmer die Möglichkeit,
seine Sessionen, unterschieden durch ihre Sessionsschlüsselwörter, verschiedenen
Prioritätsklassen
zuzuordnen und unterschiedliche Bruchteile seines insgesamt zugeordneten
Systemdurchsatzes den Sessionen in jeder Klasse zuzuordnen, indem
die Information in der Teilnehmer-Verkehrsvertragstabelle manipuliert
wird. Beispielsweise kann der Systemadministrator sämtlichen
Sessionen, welche eine bestimmte IP-Bestimmungsadresse haben, einer
hohen Prioritätsklasse zuordnen,
wodurch solchen Sessionen ein größerer Bruchteil
des verfügbaren
Durchsatzes zugeteilt wird, als sie anderenfalls hätten. Um
sich dieser Möglichkeit
anzupassen, wird die Prioritätsklasse
jeder Session aus der Teilnehmer-Verkehrsvertragstabelle 112 bei
Schaffung der Session extrahiert und an die Größe angehängt, die der Session in der
Sessions-Datenbank 120 zugeordnet ist.
-
In wieder einer anderen Ausführungsform wird
ein Konzept der sogenannten Sessionsgruppen eingeführt. Sessionsgruppen
werden verwendet, um eine Verschlechterung des Verhaltens des Systems aufgrund
einer übergroßen Nachfrage
bezüglich
irgendeiner Untergruppe der Systemressourcen zu verhindern, wenn
andere Sessionen, welche diese Untergruppe nicht erfordern, für die Dienstleistung auswählbar sind.
In herkömmlichen
Systemen werden, wenn die Warteschlange von Anfragen für eine spezifische
Ressource (beispielsweise ein physikalisches Plattenlaufwerk oder
einen Kommunikationsanschluß)
einen vorgeschriebenen Grenzwert erreichen, sämtliche nachfol genden Anfragen
blockiert, bis einige jener Anfragen bedient worden sind, obwohl
andere Systemressourcen nicht voll ausgenützt sein können. Gemäß den Grundsätzen der
vorliegenden Erfindung wird bei dieser Ausführungsform, wenn eine Session
durch das Datenbankzentrum-System geschaffen ist, diese einer Sessionsgruppe
zugeordnet, welche durch die Untergruppe der Systemressourcen definiert
ist, welche sie verwendet (Systemanschluß, Speichervolumen, usw.). Die
Gruppe, zu welcher eine Session gehört, wird an ihrem Eintrag in
die Sessionsdatenbank 120 angehängt. Bevor irgendeine Session
bedient wird, wird der Pegel oder das Niveau ihrer Sessionsgruppenaktivität geprüft, um festzustellen,
ob die Sessionsgruppe die Kapazität erreicht hat. Ist dies der
Fall, dann wird die Session zeitweise umgangen und eine andere Session
wird für
die Dienstleistung auswählbar
gemacht. Dies verhindert, daß eine
Session durch eine andere Session blockiert wird, welche auf Ressourcen
wartet, die für
die eine Session tatsächlich
nicht verfügbar
werden müssen.
-
In einer anderen Ausführungsform
hängen eine
Größe der Dienstleistungsqualität und ihre
Verwirklichung von der Betriebsumgebung, der annehmbaren Komplexität des Rechenaufwandes
und der Qualität
der Dienstleistungsfälle
ab. Die Maßgröße selbst
bezieht sich gewöhnlich
auf den Bruchteil der gegenwärtig
verfügbaren
Durchsatzkapazität,
welche dem betreffenden Teilnehmer oder der betreffenden Session
zugeordnet ist, kann jedoch alternativ auch die durchschnittliche
Verzögerung
umfassen, welche eine Anfrage erfährt, oder kann irgendeine Kombination
dieser und anderer Vorgänge
umfassen.
-
Beispielsweise kann eine Durchsatz-Bemessungsgröße mit einer
Struktur geordneter Listen zum Ordnen von Sessionen basierend auf
ihren zugehörigen
Bemessungsgrößen kombiniert
werden. Mit dieser Struktur werden für jeden Teilnehmer bis zu N
Aktiv-Sessionslisten und eine inaktive Liste definiert und die Anzahl
von Sessionen auf jeder Liste und ein Zeiger zu jeder Liste werden
in der Teilnehmer-Uberwachungsdatenbank 122 festgehalten.
Die Listen-Kopfteile geben das erste Mal an, welches irgendeine
Session auf jeder Liste, repräsentiert
durch ihre Sessionsführung,
Anspruch auf Dienstleistung hat. Beispielsweise enthält die Liste
0 die Führungsangaben sämtlicher
Sessionen, welche gegenwärtig für eine Dienstleistung
in Frage kommen, und die Liste k enthält die Führungsangaben jener Sessionen, die
als nächstes
zu der Zeit Tk = T1 +
(k – 1)Δt für eine Dienstleistung
in Frage kommen, wobei Δt
ein vorbestimmtes Zeitintervall ist. Ein Beispiel einer Durchsatzmaßgröße könnte die
Anzahl von Bytes sein, welche zu schreiben oder zu lesen sind. Ein
anderes Beispiel könnte
die Anzahl von 32KB-Blöcken
sein, welche zu schreiben oder zu lesen sind. Ein anderes Beispiel
könnte
die Anzahl von Dateisystem-Basisoperationen sein, welche benötigt werden,
um die Anfrage zu bedienen. Die ersten beiden Beispiele können auf
normale Datenlesevorgänge
und Datenschreibvorgänge
angewendet werden. Das letztere Beispiel trifft gut auf das Lesen
von Verzeichnissen zu, was typischerweise sehr bearbeitungsintensiv
ist, jedoch wenige Bytes erzeugt.
-
Wenn eine auswählbare Session für eine Dienstleistung
ausgewählt
wird, dann werden ihre schwebenden Anfragen der Reihe nach bedient,
entweder, bis ihre zugehörige
Gruppen-, Teilnehmer- oder Sessionsgrenze erreicht ist, oder bis
keine Abfragen mehr übrig
geblieben sind, welche noch nicht bedient worden sind. Die Sessionsgrenze
ist erreicht, wenn der Durchsatz, welcher durch alle bedienten Anfragen
während
des laufenden Serviceintuervalls verbraucht worden ist, als einen
s-Sekundenwert der zugeteilten Kapazität für irgendeinen vorgeschriebenen
Wert s überschreitend
eingeschätzt
wird. Wenn diese Grenze erreicht ist, dann wird der Führungswert
der Session an die Liste i angehängt,
wobei i die größte ganze
Zahl ist, für
welche Ti < t
+ s ist und wobei t die gegenwärtige
Zeit bezeichnet, und es wird dann die nächste zu bedienende Session
ausgewählt.
Wenn alle Anfragen der Session bedient wurden sind, bevor sie diese
Grenze erreicht, dann wird ihre Führungsangabe zusammen mit dem
Header oder Kopfteil der Liste, an welche sie angehängt worden
wäre, wenn
sie noch aktiv wäre,
auf die inaktive Liste gesetzt.
-
Wenn eine Anfrage einer Applikation
vorgelegt wird, dann antwortet die Applikation mit einer Abschätzung der
Kapazität,
welche zur Befriedigung dieser Anfrage erforderlich ist. Die zugehörige Maßgröße des Teilnehmers
wird aktualisiert, um diese Abschätzung wiederzugeben. Wenn auf
diese Aktualisierung folgend der gegenwärtige Teilnehmer immer noch
ungenutzte Kapazität
hat und immer noch Anfragen hat, welche einer Dienstleistung bedürfen, dann
wird seine nächste
auswählbare
Anfrage bedient. Anderenfalls wird der nächste auswählbare Teilnehmer ausgewählt. Sämtliche
Sessionen des neuen Teilnehmers auf irgendeiner Liste j, für welche Tj kleiner als oder gleich der laufenden Zeit
t ist, sind nun für
die Bearbeitung wählbar
und sämtliche
dieser Listen werden demgemäß an die
Liste 0 angehängt. Wenn
sämtliche
dieser Listen einschließlich
der Liste 0 leer sind, dann wird die erste nicht-leere Liste, beispielsweise
die Liste k, die neue Liste 0, selbst wenn Tk>t. Wenn die Liste i
die erste Liste ist, die nicht an die Liste 0 angehängt wird,
dann wird ihr Kopfteil oder Header das neue T1,
der alte Kopfteil oder Header Ti+1, wird
das neue T2 usw., und neue, zeitweise leere Listen
werden mit den Kopfteilen Tj = T1 + jΔt
für N – i < j < N – 1 gebildet.
Die Sessionen werden dann beginnend mit der ersten Session auf der
Liste 0 bedient. Wenn alle Sessionen auf der Liste 0 bedient sind,
bevor der Teilnehmer seine ihm zugeordnete Kapazität erreicht
hat und der Teilnehmer immer noch mindestens eine aktive Session
hat, dann werden wieder eine nicht-leere Liste oder mehrere nicht-leere
Listen an die Liste 0 angehängt
und die verbleibenden Header oder Kopfteile der Listen werden, wie
zuvor gesagt, modifiziert. Hat der Teilnehmer keine aktiven Sessionen,
wird er als inaktiv ausgezeichnet.
-
Die Aufteilung der dem Teilnehmer
bewilligten Kapazität
unter seinen aktiven Sessionen wird im Effekt jedes Mal eingestellt,
wenn der Teilnehmer für die
Dienstleistung auswählbar
wird, in dem Bestreben, die Anzahl von Sessionen auf der Liste 0
annähernd
gleich der Anzahl von Sessionen zu halten, welche bedient werden
können,
bevor der Teilnehmer seine Kapazität erreicht. Wenn zu der Zeit,
zu der ein Teilnehmer für
die Dienstleistung auswählbar wird,
die Liste k die erste nicht-leere Liste ist, wobei Tk größer als
die gegenwärtige
Zeit t ist, dann wird die Zuordnung zu jeder Session proportional
erhöht. Wenn
aber die Zahl von Eintragungen auf der Liste 0 irgendeine vorgeschriebene
Zahl M überschreitet. dann
wird die Zuteilung für
jede Session proportional verringert.
-
In entsprechender Weise wird die
Aufteilung der Systemkapazität
unter den aktiven Teilnehmern periodisch eingestellt, um die gegenwärtig verfügbare Gesamtkapazität wiederzugeben.
Eine Hintergrund-Uberwachungseinrichtung überwacht die Systemparameter,
die sich auf jede Sessionsgruppe beziehen, beispielsweise die Länge der
verschiedenen Systemreihen. Diese Daten werden dann dynamisch jedes
Mal dann aktualisiert, wenn eine Anfrage nach einer Dienstleistung
vorgelegt wird, wodurch eine laufende Abschätzung der Kapazität unterhalten wird,
die für
jede Sessionsgruppe verfügbar
ist. Wenn diese Parameter anzeigen, daß eine Sessionsgruppe sich
der Maximalkapazität
nähert,
dann wird die effektive Zuordnung für diese Gruppe proportional
vermindert. Wenn sie anzeigen, daß eine Sessionsgruppe unterbenutzt
ist, dann wird ihre effektive Zuteilung proportional erhöht. Sessionsgruppenzuteilungen werden
unter den aktiven Teilnehmern entsprechend ihren jeweiligen vertraglich
vereinbarten Dienstleistungsniveaus verteilt.
-
Die Summe der verfügbaren Kapazitäten der Sessionsgruppen
dient zur Definition der verfügbaren
Systemkapazität.
Aktive Teilnehmer werden gemäß einer
sogenannten Round-Robin-Art bedient. Jeder Teilnehmer erhält einen
Teil seines Anteils an der verfügbaren
Systemkapazität
jedesmal zugeordnet, wenn er für
den Service ausgewählt
wird und wenn der gegenwärtige
Teilnehmer die zeitliche Grenze erreicht hat, welche durch diese
Zuordnung auf Systemebene vorgegeben ist, so bewegt sich der Ablauf
der Befriedigung von Anfragen zum nächsten Teilnehmer auf der aktiven
Liste. Der Anteil der Systemkapazität der für einen Teilnehmer während irgendeines
Serviceintervalls verfügbar
gemacht wird, ist im allgemeinen geringer als 100% seines vollen Anteils
an dieser Kapazität.
Die Funktion des Systemkapazitätsparameters
ist es daher die Wahrscheinlichkeit zu begrenzen, daß irgendein
Teilnehmer die für
irgendeine gegebene Sessionsgruppe verfügbare Kapazität erschöpft, bevor
andere Teilnehmer die Chance hatten, Anfragen zu plazieren, welche
Ressourcen erfordern, die zu derselben Sessionsgruppe gehören. Der
Anteil der Systemkapazität,
welcher irgendeiner Runde zugeordnet wird, bedingt einen Kompromiß zwischen
Arbeitsqualität
und Fairneß.
Wenn zuwenig Kapazität
verfügbar
gemacht wird, dann kann jeder Teilnehmer nur eine kleine Zahl von
Anfragen plazieren, bevor sich die Runde bezüglich der Bedienung von Anfragen
zu dem nächsten Teilnehmer
bewegt, was in einer rechnermäßigen Ineffizienz
resultiert. Wenn zuviel Kapazität
verfügbar gemacht
wird, dann kann jeder Teilnehmer praktisch spätere Teilnehmer daran hindern
ihren fairen Anteil an einigen der Ressourcen des Systems zu erhalten.
-
Die verschiedenen Zuteilungen werden selbstverständlich in
geeigneter Weise auch erhöht und
vermindert, wenn sich die Zahlen der aktiven Teilnehmer oder Sessionen
aufgrund der Tatsache ändern,
daß aktive
Teilnehmer oder Sessionen inaktiv werden oder umgekehrt. Das Ergebnis
von all dem ist, daß der
Bruchteil der Systemkapazität,
welche einem Teilnehmer zugeordnet wird, eine Funktion der Anzahl
von Teilnehmern und des vertraglich vereinbarten Niveaus der Dienstleistung
für jeden
Teilnehmer ist. In entsprechender Weise ist der Bruchteil eines
Teilnehmeranteils der Systemkapazität, welcher irgendeiner Session
des Teilnehmers zugeordnet wird, eine Funktion der relativen Priorität, welche
der Session zugeordnet wird, des relativen Bruchteils der System-Gesamtkapazität, welche
für die
Sessionsgruppe verfügbar
ist und der Anzahl von anderen Sessionen des Teilnehmers, welcher
zu der betreffenden Gruppe gehören.
-
Eine weitere Ausführungsform der vorliegenden
Erfindung bietet Teilnehmern zwei Sicherheitspegel. (Ein dritter
Pegel wird typischerweise durch die teilnehmerspezifische Applikation
selbst geboten). Der erste dieser Pegel, der Netzwerksicherheitspegel,
stellt sicher, daß nur
registrierte Teilnehmer in der Lage sind, sich Zugang zu dem System über die
Netzwerkanschlüsse
zu verschaffen, für
welche sie eine vertragliche Vereinbarung haben, oder, in Fällen, in
denen dieser Pegel einer Abschirmung nicht geeignet ist, daß nur diejenigen
Bestimmungsorte, welche durch den Teilnehmer bezeichnet werden,
Information über
jene Anschlüsse
empfangen dürfen.
Der zweite Sicherheitspegel, nämlich
der Ressourcen-Sicherheitspegel, stellt sicher, daß die Ressourcen
jedes Teilnehmers nur in der Weise zugänglich werden können, welche
von jedem Mitglied der Gruppe des Teilnehmers vorgeschrieben wird.
-
Bei dieser Ausführungsform wird der erste Pegel
der Sicherheit (Netzwerksicherheit) durch das Konzept eines "unabhängigen Netzwerkes" geschaffen. Ein
unabhängiges
Netzwerk ist eine Netzwerkkonfiguration, welche logisch getrennt
von allen anderen uunabhängigen
Netzwerken in dem System ist, wodurch die Konfiguration und die
Leitregeln für jedes
derartige Netzwerk unabhängig
definiert werden können.
Jedes unabhängige
Netzwerk ist von allen anderen Netzwerken aus Sicherheitsgründen isoliert.
Keine Informationspakete können
von einem solchen Netzwerk zu einem anderen Netzwerk durch das System
laufen. Darüber
hinaus kann ein unabhängiges
Netzwerk direkt mit einem externen Netzwerk verbunden werden, beispielsweise
dem Internet oder einem eigenen privaten Netzwerk des Teilnehmers,
und kann zu den Konfigurationsforderungen des angefügten Netzwerkes
passend gemacht werden. Dieser Pegel der Sicherheit geht davon aus,
daß die
körperlichen
Komponenten, welche das unabhängige
Netzwerk bilden, unter vollständiger
Kontrolle eines Netzwerkadministrators stehen, welcher das Vertrauen
des Dantenbankzentrumadministrators hat.
-
Die unabhängige Netzwerkstruktur ermöglicht es
dem System, eine Sicherheit auf Netzwerkebene durch Zuordnung einer
einzigartigen Gruppe von Bestimmungs-IP-Adressen zu jedem unabhängigen Netzwerk
zu bieten. Über
ein unabhängiges Netzwerk
wird kein Zugriff auf irgendeine Bestimmungsadresse außer jenen
gewährt,
welche ihr zugeordnet worden sind. Diese Zugriffsregeln werden unter
Verwendung dreier verschiedener MIB-Tabell1en durchgesetzt: die
Tabelle 114 für
die Details unabhängiger
Netzwerke, die Applikationsaddressentabelle 110 und die
Teilnehmer-Netzwerkidentifikationstabelle 116.
-
ie Tabelle 114 für die Details
unabhängiger Netzwerke
enthält
einen Eintrag für
jedes unabhängige
Netzwerk, welcher die Charakteristiken dieses Netzwerks identifiziert.
Er ist durch ein Netzwerkschlüsselwort
indiziert, das aus einer Untergruppe derjenigen Parameter besteht,
welche zur Identifizierung des Teilnehmers verwendet werden (das
zuvor definierte Teilnehmerschlüsselwort).
Für einen
Ethernet-Zugriff können
für diesen
Zweck beispielsweise die VLAN-Markierung
oder die physikalische Verbindung oder beide verwendet werden. Für eine ATM-Verbindung
wird das Netzwerk durch die Gruppe virtueller Schaltungen identifiziert,
welche diese Verbindung enthalten. Für Fibre-Channel wird das Netzwerk
durch den Systemanschluß definiert,
mit welchem es physikalisch verbunden ist.
-
Die in der Tabelle 114 aufgeführte Information
für jedes
unabhängige
Netzwerk enthält
die Attribute dieses Netzwerks (Systemanschlüsse, welche durch das Netzwerk
verwendet werden, geführte Protokolle,
u.s.w.), die Netzwerkführungsgröße, welche
durch das System zugeteilt und weiterhin verwendet wird, um das
unabhängige
Netzwerk zu identifizieren, sowie zwei Flaggen. Die erste dieser
Flaggen zeigt, wenn sie gesetzt wird, an, daß der Ausgangsteilnehmer (der
Teilnehmer, der den Zugriff eingeleitet hat) und der Bestimmungsteilnehmer
(der Teilnehmer, der die Ressourcen kontrolliert, auf die Zugriff
genommen werden soll) identisch sind und daher keine weitere Erlaubnis
für den
Zugriff erforderlich ist. In diesem Falle ist der Teilnehmerführungswert
auch Teil der Eintragung für
das betreffende unabhängige
Netzwerk, so daß keine
zusätzlichen
Tabellenkontrollen zu seiner Identifizierung benötigt werden.
-
Die zweite Flagge zeigt an, daß der steuernde
oder kontrollierende Teilnehmer der Bestimmungsteilnehmer ist, wie
dies beispielsweise für
normale Internetzugriffe zutrifft. In diesem Falle muß die Applikationsadressentabelle 110 zu
Rate gezogen werden, um den Führungswert
des steuernden Teilnehmers, die Zugriffserlaubnisse und den Systemanschluß, welcher
in Reaktion auf diesen Zugriff zu verwenden ist, zu bestimmen. Der
relevante Eintrag in die Tabelle 110 wird durch ein anderes
Schlüsselwort
indiziert, das als "Applikationsschlüssel wort" bezeichnet wird.
Das Applikationsschlüsselwort
besteht aus dem Netzwerkführungswert,
der aus der Tabelle 114 extrahiert wird, kombiniert mit
anderer Information, die zusammen mit der Anfrage empfangen wird. Die
verwendete spezifische Information ist wieder abhängig von
dem wirksam werdenden Kommunikationsprotokoll, enthält jedoch
typischerweise die Bestimmungs-IP-Adresse und die gerade verwendete UDP-
oder TCP-Anschlußnummer.
-
Wenn keine Flagge gesetzt ist, dann
ist der relevante Teilnehmer der Ausgangsteilnehmer und der Teilnehmerführungswert
und die zugehörigen
Zugriffserlaubnisse müssen
von der Teilnehmernetzwerkidentifizierungstabelle 116 extrahiert
werden. Das zuvor definierte Teilnehmerschlüsselwort wird als der Index
für diese
Tabelle verwendet. Die Tabelle 116 hat einen Eintrag, der
ein Feld für
die Erlaubnisse für
jedes gültige
Schlüsselwort
enthält.
Ist das Teilnehmerschlüsselwort
eingetragen, was anzeigt, daß der
betreffende Teilnehmer für
einen Zugriff über
den beschriebenen Systemanschluß unter
Verwendung der vorgeschriebenen Netzwerkadresse registriert ist,
und die Erlaubnis für
die gewünschte
Art des Zugriffs vorliegt, dann wird der Zugriff gewährt. Anderenfalls
wird der Versuch des Zugriffs zurückgewiesen.
-
Zusätzlich zur Schaffung der Sicherheit
auf Netzwerkebene wird die Struktur der unabhängigen Netzwerke auch dazu
verwendet, die Systemverfügbarkeit
zu erhöhen.
Typischerweise hat ein unabhängiges
Netzwerk vielfache körperliche
Anschlüsse
zur Zugriffnahme auf das System. Teilnehmer, die mit dem Datenbankzentrum über ein
geschaltetes Netzwerk verbunden sind, können beispielsweise mehrfache
Systemanschlüsse
verwenden. Die Zuordnung dieser Anschlüsse zu einem unabhängigen Netzwerk gibt
dem Teilnehmer die Möglichkeit.
auf das System über
irgendeinen der Anschlüsse
Zugriff zu nehmen, der zu seinem zugeordneten unabhängigen Netzwerk
gehört.
Anfragen, die über
einen Anschluß kommen,
können über einen
anderen Anschluß desselben
Netzwerkes beantwortet werden, wodurch der Verkehr wirkungsvoller
gehandhabt werden kann. Die Struktur unabhängiger Netzwerke gestattet
es auch, daß ein
anderer Anschluß die
Rolle eines fehlerhaften Anschlusses übernimmt, ohne daß die Verbindungsmöglichkeit
beeinflußt
wird.
-
Bei dieser Ausführungsform wird der zweite Sicherheitspegel,
nämlich
der Ressourcensicherheitspegel, unter Verwendung dreier weiterer MIB-Tabellen
verwirklicht: die Dateisystem-Detailtabelle 104, die Teilnehmer-Dateisystem-Zugriffstabelle 106 und
die Teilnehmer-Dateisystem-Aufzeichnungstabelle 108. Der
Inhalt der ersten beiden dieser Tabellen kann durch einen Datensystemadministrator
beeinflußt
werden, um die Dateisysteme (Tabelle 104) zu definieren
und um Zugriffsrechte zu ihnen (Tabelle 106) zuzuteilen.
Die erste dieser Tabellen wird durch den Dateisystemnamen (d.h.,
der Name, der dem Dateisystem von seinem Schöpfer gegeben worden ist) indiziert,
und die zweite wird durch eine Verknüpfung des Dateisystemnamens
mit dem Führungswert
des Teilnehmers indiziert, für
welchen die Zugriffsprivilegien definiert sind. Wenn der indizierte Eintrag
in der Tabelle 106 vorhanden ist, dann hat der betreffende
Teilnehmer die vorgeschriebenen Zugriffsprivilegien (beispielsweise
NFS-Read, NFS-Write, FTP-Read, FTP-Write, CIFS-Read, CIFS-Write, HTTP-Read,
HTTP-Write).
-
Die Eintragungen in der Teilnehmer-Dateisystem-Aufzeichnungstabelle 108 werden
durch den Teilnehmer bestimmt, doch vergleicht das System diese
Eintragungen mit den Eintragungen in der Tabelle 106, um
zu verhindern, daß irgendein
Teilnehmer versucht, sich Zugriff zu irgendeinem Dateisystem zu
verschaffen, wozu er nicht berechtigt ist. Die Eintragungen in der
Tabelle 108 werden durch ein Dateisystem-Schlüsselwort
und nicht durch einen Dateisystemnamen indiziert. Die Definition
des Dateisystemschlüsselwortes
ist abhängig
von dem Protokoll und der Applikation. Bei einigen Applikationen
versieht beispielsweise der Systemadministrator den Teilnehmer mit
einzigartigen Logikeinheit-Nummern (LUNs), welche zu spezifischen
Speichervolumen führen,
beispielsweise Speicherbereichsnetzwerk-Dateisysteme (SAN). Für Internetapplikationen ist
das Dateisystem-Schlüsselwort
der universellen Ressourcenortungsadresse (URL) gleichgesetzt. In allen
Fällen
jedoch kann das Dateisystem-Schlüsselwort
aus der Information extrahiert werden, welche mit der Anfrage empfangen
wird und kann daher mit dem Teilnehmerführungswert verkettet werden,
um die relevanten Zugriffsprivilegien in der Tabelle 108 zu orten.
-
Die MIB-Tabellen sind sämtlich als
flache Datenbanken gespeichert. Die Verwendung dieser Datenbanken
bewirkt, daß jedes
Mitglied einer Teilnehmergruppe die Ressourcen des Teilnehmers durch beschreibbare
Dateien oder Simple-Network-Management-Protocol
(SNMP-Befehle) überwachen und
steuern kann. Die MIB-Tabellen definieren die Parameter, welche
der Teilnehmer beeinflussen kann und die zulässigen Grenzen für diese
Parameter. Durch Manipulation der Information in der Teilnehmer-Dateisystem-Aufzeichnungstabelle 108 kann beispielsweise
der Teilnehmer verschiedene virtuelle Teilnehmer-Untergruppen definieren,
welche jeweils ihre eigene IP-Adresse haben. Der Teilnehmer kann dann
jeder Untergruppe das Speichervolumen oder das Dateisystem zuordnen,
zu welchem die Untergruppe Zugriff hat, ferner die Anzahl aktiver
Sessionen, welche die Untergruppe zu irgendeiner Zeit unterhalten
kann, ihre URL-Aufzeichnungen (Uniform Resource Locator), ihr Benutzerpaßwort und
die Gruppe, welcher sie zugeordnet ist. Zusätzlich kann der Teilnehmer
auf diese Datenbanken Zugriff nehmen, um seinen Dienstleistungsvertrag
festzulegen und seine Systemnutzungsparameter zu überwachen.
-
Die Verwendung einiger oder aller
dieser verschiedenen Tabellen und Listen kann verdeutlicht werden,
indem das Ansprechen des Systems auf eine Zugriffsanfrage eines
Teilnehmers gemäß einer Ausführungsform
der Erfindung verfolgt wird. Die erste Routine zur Behandlung einer
Anfrage wird als Netzwerkzugriffssteuerroutine bezeichnet und die
in dieser Routine enthaltenen Schritte sind in dem Flußdiagramm
von 2 aufgezeigt.
-
Die Routine beginnt, wenn eine neue
Dienstleistungsanfrage durch das System empfangen wird. In dem Schritt 200 prüft die Netzwerkzugriffskontrolle zuerst
die Sessionsdatenbank 120 bezüglich der Sessionsführungsgröße und im
Schritt 202 bestimmt die Routine, ob die Anfrage Teil einer
laufenden Session oder eines laufenden Arbeitsabschnittes ist. Wenn
die Session bereits existiert, so ist insbesondere ihre Führungsgröße in der
Sessions-Datenbank zu finden und die Netzwerk-Zugriffsberechtigungen
des Teilnehmers sind bereits eingerichtet und geprüft und müssen daher
nicht neu eingerichtet werden. In diesem Falle schreitet die Routine
zu dem Schritt 218 vor, in welchem eine weitere Routine,
welche als Ressourcenzugriffs-Steuerungsroutine zu bezeichnen ist,
dann aufgerufen wird, um den zweiten Pegel der Sicherheit durchzusetzen,
d.h. zu bestimmen, ob der Anfragende die notwendigen Erlaubnisse
für den Zugriff
auf die gewünschte
Ressource hat. Diese letzte Routine wird unten diskutiert und trifft
im Schritt 220 eine Entscheidung, ob der Zugriff zugelassen wird
oder verweigert wird. Wenn die Zugriffsanfrage nicht akzeptiert
wird, dann kehrt die Ressourcen-Zugriffssteuerungsroutine mit einer
Nachricht "Zugriff verweigert" zurück und die
Anfrage wird von der Netzwerk-Zugriffssteuerungsroutine im Schritt 226 zurückgewiesen.
Dann endet die Netzwerk-Zugriffssteuerungsroutine.
-
Wenn in dem Schritt die Zugriffsanfrage
akzeptiert wird, wird in dem Schritt 222 der die schwebenden
Anfragen des Teilnehmers zählende
Zähler inkrementiert
und im Schritt 224 wird eine Bestimmung darüber getroffen,
ob der Zähler
eine vorbestimmte Grenze erreicht hat. Wenn eine Feststellung in
dem Schritt 224 getroffen wird, daß der Zähler den Grenzwert erreicht
hat, dann schreitet die Routine zu dem Schritt 228 fort,
wo für
diesen Teilnehmer die Durchflußkontrolle
in Lauf gesetzt wird, wodurch verhindert wird, daß irgendwelche
neuen Anfragen akzeptiert werden, bis mindestens eine der schwebenden
Anfragen bedient worden ist.
-
In jedem Falle schreitet die Netzwerk-Zugriffssteuerungsroutine
zu dem Schritt 230 fort, in welchem eine Routine aufgerufen
wird, welche als Anfrage-Vorlageroutine zu bezeichnet ist und die Netzwerkzugriffssteuerungsroutine
endet.
-
Wenn in dem Schritt 202 kein
passender Eintrag in der Sessionsdatenbank gefunden wird, dann schreitet
die Routine zu dem Schritt 204 fort, in welchem die Tabelle 114 für die Details
der unabhängigen
Netzwerke befragt wird, wobei das Netzwerkschlüsselwort im ersten Schritt
bei der Identifizierung des steuernden Teilnehmers verwendet wird.
Im Schritt 206 wird eine Feststellung, basierend auf den Ergebnissen
dieser Befragung, getroffen. Wenn eine Eintragung entsprechend dem
Netzwerkschlüsselwort
in der Tabelle 114 nicht gefunden wird, dann schreitet
die Routine zu dem Schritt 216 fort, in welchem die Anfrage
unmittelbar zurückgewiesen
wird. Die Routine endet dann.
-
Anderenfalls wird eine Eintragung
gewonnen und die beiden Flaggen der Eintragung werden, wie oben
in Verbindung mit 1 behandelt,
geprüft.
Abhängig
davon, welche, falls irgendeine, der beiden Flaggen gesetzt ist,
kann die Führungsgröße für den steuernden
Teilnehmer von der Tabelle 114 für die Details der unabhängigen Netzwerke
selbst extrahiert werden, wie im Schritt 208 dargestellt
ist. Alternativ kann die Führungsgröße von der
Applikationsadressentabelle 110 erhalten werden, wie in
dem Schritt 210 aufgezeigt ist, oder die Führungsgröße kann
von der Teilnehmer-Netzwerkidentifikationstabelle 116 erhalten
werden, wie in Schritt 212 aufgezeigt ist.
-
Insbesondere, wenn der Ausgangsteilnehmer
und der Bestimmungsteilnehmer identisch sind, wie durch eine Flaggen,
welche von der Tabelle 114 gewonnen wird, angezeigt wird,
dann kann die Führungsgröße des steuernden
Teilnehmers von der Tabelle 114 extrahiert werden und die
Erlaubnis wird automatisch erteilt, da der Teilnehmer, welcher die Ressource
kontrolliert, auch der Teilnehmer ist, der Zugriff zu der betreffenden
Ressource verlangt. Wenn dies jedoch nicht der Fall ist, dann liefert
die Information, welche entweder aus der Tabelle 110 oder der
Tabelle 116 gewonnen wird, wie durch die zweite Flagge
bestimmt ist, sowohl die Führungsgröße des steuernden
Teilnehmers als auch die Zugriffserlaubnisse, welche durch diesen
Teilnehmer spezifiziert werden, wie zuvor diskutiert wurde.
-
Es wird dann eine Feststellung in
dem Schritt 214 getroffen, ob eine Erlaubnis für den Zugriff
auf die Ressource erteilt wird. Wenn auf der Basis der von den Tabellen 110 und 116 gewonnenen
Information in dem Schritt 214 die Erlaubnis nicht erteilt
wird, dann schreitet die Routine zu dem Schritt 226 fort,
in welchem die Session zurückgewiesen
wird und die Routine endet. Anderenfalls wird, wie im Schritt 216 aufgezeigt,
eine neue Session geschaffen.
-
Die Schaffung einer Session hat verschiedene
Schritte zur Folge. Wenn der Teilnehmer zuvor nicht aktiv war, dann
wird zuerst ein Eintrag für
ihn in die Teilnehmerüberwachungs-Datenbank 122 eingebracht.
Dies wiederum bezieht die Prüfung
der Teilnehmer-Verkehrsvertragstabelle 112 ein, um den vertragsmäßigen Dienstleistungspegel
für diesen Teilnehmer
festzustellen. Zum zweiten wird die Sessions-Führungsgröße an die Eintragung in der
Teilnehmer-Überwachungsdatenbank
für den
Teilnehmer angehängt.
Wenn die zuvor beschriebene Metrik verwendet wird, wird beispielsweise
die neue Session an die Liste 0 des Teilnehmers angehängt. Zum dritten
wird eine Eintragung für
diese Session in die Sessionsdatenbank 120 gemacht, wobei
die neue Anfrage aufgeführt
wird, die Sessionsgruppe der Session identifiziert wird und falls
Prioritätsniveaus verwendet
werden, der zugeordnete Prioritätspegel, wie
er in der Tabelle 112 spezifiziert ist, beschrieben wird.
-
Wenn die Session einmal geschaffen
ist, dann schreitet die Routine über
die Schritte 218 bis 230 fort, wie zuvor beschrieben
wurde.
-
Ein Flußdiagramm, das die Schritte
beschreibt, welche in der zuvor erwähnten Ressourcen-Zugriffssteuerungsroutine
durchgeführt
werden, ist in 3 gezeigt.
Wenn diese Routine im Schritt 300 aufgerufen wird, dann
befragt sie zunächst
die Sessionsdatenbank 120, um festzustellen, ob ein Zeiger
vorhanden ist, welcher verwendet werden kann, um Zugriff zu der
Teilnehmer-Dateisystem-Aufzeichnungsdatenbank 108 zu nehmen.
Wenn ein solcher Zeiger vorhanden ist, was in dem Schritt 302 festgestellt
wird, dann schreitet die Routine zu dem Schritt 204 fort,
wo dieser Zeiger dazu verwendet wird, unmittelbar Zugriff zu einer
Bitaufzeichnungseintragung in der Datenbank 108 zu nehmen,
welche die relevanten Zugriffserlaubnisse enthält. Wenn, basierend auf diesen
Erlaubnissen, der Zugriff in dem Schritt 308 als legitim
festgestellt wird, dann kehrt die Routine mit einem "Zugriff gestattet"-Rückkehrwert zurück, wie
im Schritt 318 dargelegt ist. Wenn alternativ im Schritt 308 festgestellt
wird, daß die
Anfrage nicht legal ist, dann kehrt die Routine mit einem "Zugriff verweigert"-Rückkehrwert
im Schritt 312 zurück.
-
Wenn in dem Schritt 302 kein
Zeiger in der Sessionsdatenbank 120 gefunden wird, dann
schreitet die Routine zu dem Schritt 306 fort, in welchem eine
Verkettung der Teilnehmerführungsgröße und des
Dateisystem-Schlüsselwortes
verwendet wird, um als Index für
eine Nachsuchung in der Teilnehmer-Dateisystem-Aufzeichnungsdatenbank 108 zu dienen,
um die bestimmenden Zugriffserlaubnisse aufzufinden. Wenn der Zugriffsversuch
in dem Schritt 310 sich als illegal herausstellt, dann
schreitet die Routine zu dem Schritt 312 fort und kehrt
mit einem Zugriffsverweigerungs-Rückkehrwert zurück. Wenn der
Zugriff zugelassen wird, was in dem Schritt 310 festgestellt
wird, da die Sessionsdatenbank 120 nicht bereits einen
Zeiger zu der Datenbank 108 enthält (was in dem Schritt 300 bestimmt
wird), dann stellt die Routine zuerst fest, ob die Dateisession
an die Ressource gebunden ist, auf welche zugegriffen wird, Schritt 314.
Eine Session ist an eine Ressource gebunden, wenn alle vorgelegten
Anfragen als Teil der betreffenden Session daran gebunden sind,
Zugriff nur auf diese Ressource zu nehmen. Dies wiederum ist eine
Funktion der Art der Session, welche geschaffen worden ist. NFS-Sessionen,
welche TCP verwenden, sind beispielsweise an ein bestimmtes Dateisystem
oder einen Anhaltspunkt gebunden. NFS-Sessionen, welche UDP verwenden,
sind dies nicht. In entsprechender Weise können HTTP-Sessionen entweder
ausdauernde Sessionen sein, welche nicht an einer Ressource gebunden
sind, oder können
nicht dauerhafte Sessionen sein, welche an einer Ressource gebunden
sind.
-
Wenn, wie in Schritt 314 bestimmt
wird, die Session an eine Ressource gebunden ist, wird ein Zeiger
zu dem relevanten Erlaubniseintrag in der Teilnehmer-Dateisvstem-Aufzeichnunasdatenbank 108 in
die Sessionsdatenbank 120 gesetzt, wodurch das Bedienen
nachfolgender Anfragen, welche während derselben
Session gemacht werden, beschleunigt wird. Wenn die Session nicht
an die Ressource gebunden ist, so kann dies selbstverständlich gemacht werden,
da die nächste
Anfrage unter dieser Session durchaus eine andere Ressource betreffen
kann, so daß der
Eintrag, auf welchen hingewiesen wird, nicht länger relevant wäre. In jedem
Falle kehrt die Routine in dem Schritt 318 mit einem "Zugriff gestattet"-Rückkehrwert
zurück.
-
Die Schritte der Anfragenvorlagenroutine sind
in dem Flußdiagramm
von 4 festgehalten. Bei
ihrem Aufruf schreitet die Routine zu dem Schritt 402 fort,
in welchem eine Feststellung getroffen wird, ob die zugehörige Session
aktiv ist. Wenn die Feststellung getroffen wird, daß die Session
inaktiv ist, so wird sie in dem Schritt 404 dadurch aktiviert,
daß die Session
von der inaktiven Liste, die in dem entsprechenden Eintrag in der
Teilnehmerüberwachungs-Datenbank
identifiziert ist, zu dem entsprechenden aktiven Listenplatz bewegt
wird, wie durch die jüngste
Maßzahl
der inaktiven Session festgelegt ist (nächste wählbare Dienstleistungszeit
unter Verwendung der zuvor beschriebenen Verwirklichung einer Listenordnung).
In dem Schritt 406 wird die Anfrage zu der Anfrageliste
der Session hinzugefügt,
welche durch einen Zeiger in der Sessions-Datenbank 120 bezeichnet
ist. Als nächstes
werden in dem Schritt 208 die zuvor erwähnten Qualitätsparameter, welche
durch die Systempegel-Qualitätsüberwachungs-Hintergrundaufgabeneinrichtung
festgehalten werden, geprüft,
um festzustellen, ob das System mit der Kapazität arbeitet. Wenn das System
mit der Kapazität
arbeitet, dann endet die Routine. Wenn das System nicht mit der
Kapazität
arbeitet, dann ruft die Anfragenvorlageroutine die Anfragen-Bedienungsroutine
im Schritt 410 auf und endet dann.
-
Ein Flußdiagramm für die Anfragenbedienungsroutine
ist in 5 gezeigt. Ein
Teilnehmer oder eine Session wird als Angepaßter oder als Konformant bezeichnet,
wenn seine Maßzahl
nicht den laufenden Maßzahlschwellwert
für den
betreffenden Teilnehmer oder die betreffende Session überschreitet.
Die Anfragen-Bedienungsroutine durchläuft alle der aktiven Teilnehmer
unter Bedienung der aktiven Sessionen jedes Teilnehmers der Reihe
nach, bis entweder alle aktiven Sessionen der Teilnehmer bedient
worden sind oder bis die Teilnehmer nicht länger Konformanten sind. Um
dies möglich
zu machen, können
die Maßzahlschwellwerte
der Sessionen periodisch erhöht
werden, solange der Teilnehmer angepaßt ist oder ein Konformant
ist und immer noch schwebende Anfragen vorhanden sind. Eine Session wird
als für
die Serviceleistung auswählbar
bezeichnet, wenn sie ein Konformant ist.
-
Die Anfragenbedienungsroutine wird
stets mit dem Führungswert
eines Teilnehmers aufgerufen, der als der "anfängliche
Teilnehmer" bezeichnet wird.
Beim Aufruf im Schritt 500 bestimmt die Routine zuerst
das Konformanzkriterium für
jeden aktiven Teilnehmer und setzt dann den gegenwärtigen Teilnehmerzeiger
mit dem anfänglichen
Teilnehmer gleich. Die Bestimmung des Konformanzkriteriums geschieht
in der Weise, daß zuerst
die gegenwärtig verfügbare Kapazität für jede Sessionsgruppe
basierend auf Parametern abgeschätzt
wird, welche durch die Hintergrund-Qualitätsüberwachungs-Aufgabeneinrichtung erzeugt und mit
dem Bedarf aktualisiert werden, der durch die Anfragen repräsentiert
wird, welche vorgelegt wurden, seit die Aufgabeneinrichtung zuletzt
gelaufen ist. Die für
jede Sessionsgruppe verfügbare
Kapazität
wird dann unter den aktiven Teilnehmern in Entsprechung mit ihren
vertragsmäßigen Pegeln
der Dienstleistung aufgeteilt. Schließlich wird die Systemkapazität der Summe
der Kapazitäten
für die
Sessionsgruppen gleichgesetzt und ein Teil dieser Kapazität wird jedem
Teilnehmer zugeteilt, wie oben beschrieben wurde.
-
Sind einmal in dem Schritt 502 die
Konformanzkriterien bestimmt, so wird eine weitere Feststellung
getroffen, ob der gegenwärtige
Teilnehmer ein Konformant ist, d.h., ob er nicht bereits den ihm zugeteilten
Anteil der Systemkapazität überschritten hat.
Wenn der Teilnehmer als Konformant festgestellt worden ist, dann
schreitet die Routine zu dem Schritt 504 fort, wo festgestellt
wird, ob der Teilnehmer irgendwelche schwebenden Anfragen hat.
-
Wenn schwebende Anfragen existieren, dann
wird im Schritt 506 die Sessions-Schwellwertmaßzahl aktualisiert,
so daß mindestens
eine Session angepaßt
oder konform ist. Wenn die zuvor erwähnte Verwirklichung der geordneten
Listen verwendet wird. um Sessionen zu ordern, zieht dieser Schritt
die Neubezeichnung und, wenn nötig, das Verschmelzen
der Sessionslisten auf der Basis der gegenwärtigen Zeit nach sich, wie
oben beschrieben wurde. Die Anfragen-Bedienungsroutine ruft dann die
Anfragen-Ausgaberoutine
(unten beschrieben) im Schritt 508 auf. Wenn die letztgenannte
Routine im Schritt 510 ausgeführt ist, dann setzt die Anfragenbedienungsroutine
den gegenwärtigen
Teilnehmer mit dem nächsten
aktiven Teilnehmer in der Teilnehmer-Uberwachungsdatenbank 122 gleich
und, wenn der gegenwärtige
Teilnehmer wieder der anfängliche Teilnehmer
ist, was im Schritt 512 bestimmt wird, was anzeigt, daß alle aktiven
Teilnehmer bedient worden sind, endet die Routine. Anderenfalls
schleift sich die Routine im Schritt 502 zurück und setzt
sich mit den Schritten 504 bis 510 fort. Immer,
wenn sich herausstellt, daß ein
Teilnehmer entweder nicht mehr ein Konformant ist (was im Schritt 502 festgestellt
wird) oder keine schwebenden Anfragen hat (was im Schritt 504 festgestellt
wird), dann schreitet die Routine unmittelbar zu dem nächsten aktiven
Teilnehmer fort, was durch den Schritt 510 aufgezeigt ist.
-
Die Anfragenausgaberoutine ist durch
das Flußdiagramm
verdeutlicht, das in 6 gezeigt
ist. Diese Routine läuft
durch alle auswählbahren
Sessionen für
den gegenwärtigen
Teilnehmer durch und legt für
jede auswählbare
Session die schwebenden Anfragen der Session eine nach der anderen
vor, bis diese Session für
die weitere Bedienung oder Dienstleistung nicht mehr auswählbar ist.
Nach dem Aufruf wird im Schritt 600 die erste auswählbare nicht
bediente Session des Teilnehmers ausgewählt und im Schritt 602 wird
eine Prüfung
durchgeführt,
um festzustellen, ob die ausgewählte
Session zu einer Gruppe von konformen Sessionen gehört.
-
Wenn die ausgewählte Session zu einer Gruppe
von Konformanten gehört,
dann wird im Schritt 604 die erste schwebende Anfrage der
ausgewählten
Session an die geeignete Applikation ausgegeben und basierend auf
der durch die Applikation rückgelieferten
Informationen werden die Daten bezüglich der Qualität der Dienstleistung
für den
Teilnehmer, die Sessionsgruppe und die Session aktualisiert, um
die abgeschätzte
Durchsatzkapazität
zu reflektieren, welche für
das Bedienen der betreffenden Anfrage benötigt wird.
-
Als nächstes wird in dem Schritt 606 ein
die Anzahl schwebender Anfragen für den betreffenden Teilnehmer
enthaltender Zähler
dekrementiert und, falls der Teilnehmer zuvor unter Durchflußkontrolle stand,
wird diese Beschränkung
beseitigt, da die Vorlage einer seiner Anfragen an die Applikation
Platz für
eine weitere Anfrage in der Schlange von schwebenden Anfragen des
Teilnehmers schafft.
-
Wenn auf die Vorlage der Anfrage
folgend der Teilnehmer entweder keine schwebenden Anfragen mehr
hat, was in dem Schritt 608 festgestellt wird, oder nicht
länger
ein Konformant ist, was in dem Schritt 610 festgestellt
wird, dann kehrt die Routine zurück.
Anderenfalls schreitet die Routine zu dem Schritt 612 fort,
in welchem die Session auf Konformanz geprüft wird. Wenn die Session immer
noch ein Konformant ist und immer noch schwebende Anfragen aufweist,
was in dem Schritt 614 festgestellt wird, dann kehrt die
Routine zu dem Schritt 602 zurück und wiederholt die Folge
von Schritten 602 bis 612. Wenn aber in dem Schritt 614 festgestellt
wird, daß die
Session keine Anfragen mehr hat, dann wird in dem Schritt 616 die
Session auf die Liste inaktiver Sessionen gesetzt.
-
Wenn die Session entweder in dem
Schritt 616 deaktiviert worden ist, nicht mehr ein Konformant ist
(wie im Schritt 612 festgestellt) oder in dem Schritt 602 sich
als zu einer nicht konformen Sessionsgruppe gehörend herausgestellt hat, dann
schreitet die Routine zum Schritt 618 fort, wo eine Feststellung darüber gemacht
wird, ob der Teilnehmer andere auswählbare Sessionen hat. Hat er
solche, dann kehrt die Routine zum Schritt 600 zurück und wählt die
letzte auswählbare
Session. Wenn jedoch keine Sessionen mehr auswählbar sind, dann wird das Auswahlkriterium
in dem Schritt 620 eingestellt, bevor eine Rückkehr zu
dem Schritt 600 erfolgt. Die Auswählbarkeitskriterien werden
geändert,
da der Teilnehmer bereits als Konformant festgestellt worden ist
und schwebende Anfragen hat. Somit müssen die am meisten als nahezu
auswählbar
geltenden Sessionen auswählbar
gemacht werden, um der Dienstleistungsqualität zu genügen, auf welche der Teilnehmer
Anspruch hat. Wenn die zuvor beschriebene Lösung mit den geordneten Listen
verwendet wird, um Sessionen zu ordnen, dann umfaßt der Schritt 620 das
Verbinden der ersten nicht leeren Liste von Sessionen mit der Liste Null
und kann auch eine Neubezeichnung und, wenn nötig ein Verschmelzen der Sessionslisten,
basierend auf der gegenwärtigen
Zeit, nach sich ziehen.
-
Zwei andere Routinen werden benötigt, um eine
Ausführungsform
der vorliegenden Erfindung zu verwirklichen: Eine Anfragenvervollständigungsroutine
und eine Abrechnungsroutine. Flußdiagramme dieser beiden Routinen
sind in 7 bzw. 8 gezeigt. Die Anfragenvervollständigungsroutine
in 7 wird durch die
relevante Applikation aufgerufen, nachdem jede Anfrage, welche ihr
vorgelegt wurde, durch die betreffende Applikation bedient worden ist.
Da die ursprüngliche
Abschätzung
der Kapazität, welche
zur Bedienung einer Anfrage benötigt
wird, welche zu der Anfragenbedienungsroutine (in 6 dargestellt) zurückgegeben wurde, unpräzise sein kann,
da die Durchsatzkapazität,
die zum Bedienen der Anfrage vor dem Bedienen der Anfrage nicht
errechenbar oder vorhersagbar sein kann, aktualisiert der erste
Schritt 700 in der Anfragenvervollständigungsroutine die relevante
Sessionsmeßgröße mit der
Differenz zwischen der abgeschätzten
und der tatsächlichen
Menge von Daten, die bei dem Bedienen der Anfrage übertragen
werden. Dies geschieht durch Veranlassen der Applikation, diese
Differenz zu liefern, wenn sie die Anfragenvervollständigungsroutine
aufruft und danach durch Verwendung dieser Information zum Aktualisieren
der Maßzahl,
welche zusammen mit der Sessionsführungsgröße in der Sessions-Datenbank 120 gespeichert
wird. Diese Information wird nachfolgend verwendet, wenn die Teilnehmerund
Sessions-Maßzahlen
in der Anfragenbedienungsroutine und der Anfragenausgaberoutine aktualisiert
werden. Im einzelnen wird die Differenz zwischen dem abgeschätzten und
dem tatsächlichen Bedarf
dazu verwendet, die neue Kapazitätszuordnung
zu dem betreffenden Teilnehmer bzw. der betreffenden Session zu
inkrementieren oder zu dekrementieren, je nach entsprechenden Verhältnissen.
-
Als nächstes aktualisiert dann die
Anfragenvervollständigungsroutine
die Abschätzung
der Kapazität,
welche für
die betrachtete Sessionsgruppe verfügbar ist. Da die Anfrage bedient
worden ist, kann die Kapazität,
die zuvor für
ihre Bedienung reserviert wurden war, für andere schwebende Anfragen
in derselben Sessionsgruppe freigegeben werden.
-
Eine Abrechnungsroutine, beispielsweise eine
solche, wie sie in 8 gezeigt
ist, läuft
periodisch ab, um die Information in der Teilnehmerabrechnungstabelle 118 zu
aktualisieren. Wenn diese Routine läuft, so aktualisiert sie zuerst
die Abrechnungsinformation für
jede offene Session im Schritt 800 durch Verfolgung durch
die Sessions-Datenbank und Festhalten der jüngsten Durchsatzdaten für jede Session.
Im Schritt 802 werden dann die Daten, die zu jeder Session
der Sessionen eines Teilnehmers gehören, kombiniert, um die Abrechnungsinformation für jeden
aktiven Teilnehmer zu aktualisieren. Als nächstes wird im Schritt 804 die
Liste inaktiver Sessionen für
jeden aktiven Teilnehmer abgetastet und diejenigen Sessionen, welche
für eine
vorbestimmte Zeitdauer inaktiv waren, werden geschlossen, indem sie
von der Sessions-Datenbank 120 gestrichen
werden. Schließlich
werden sämtliche
Teilnehmer, welche keine aktiven Sessionen haben, von der Liste
der aktiven Teilnehmer in dem Schritt 806 entfernt. Diese beiden
letzten Schritte verhindern, daß die
Sessionsdatenbank und die Teilnehmer-Überwachungsdatenbank 122 unnötig groß werden,
wodurch die Recheneffizienz wesentlich verbessert wird.
-
Eine Software-Verwirklichung der
oben beschriebenen Ausführungsform
kann eine Reihe von Rechnerbefehlen enthalten, welche entweder auf
einem berührbaren
Medium, beispielsweise einem computerlesbaren Medium, beispielsweise
einer Diskette, einer CD-ROM, einem ROM-Speicher oder einer Festplatte
fixiert sind, oder zu einem Rechnersystem über ein Modem oder eine andere
Schnittstelleneinrichtung über
ein Übertragungsmedium übertragbar
sind. Das Medium kann entweder ein körperliches Medium sein, einschließlich, jedoch
nicht beschränkt
auf optischen oder analogen Kommunikationsleitungen, oder kann durch
drahtlose Technik verwirklicht werden, einschließlich, jedoch nicht beschränkt auf
Mikrowellentechnik, Infrarotübertragungstechnik
oder andere Übertragungstechniken. Es
kann sich auch um das Internet handeln. Die Reihe von Rechnerbefehlen
verwirklicht die gesamte zuvor bezüglich der Erfindung beschriebene
Funktionalität
oder einen Teil hiervon. Der Fachmann erkennt, daß solche
Rechnerbefehle in einer Anzahl von Programmiersprachen geschrieben
werden können,
um mit vielerlei Rechnerarchitekturen oder Betriebssystemen Verwendung zu
finden. Weiter können
solche Befehle unter Verwendung einer beliebigen, gegenwärtig bekannten
oder zukünftigen
Speichertechnologie einschließlich,
jedoch nicht beschränkt
auf, Halbleiter, magnetische, optische oder andere Speichergeräte gespeichert
werden oder unter Verwendung einer beliebigen Kommunikationstechnologie gegenwärtig bekannter
Art oder zukünftiger
Art übertragen
werden, einschließlich,
jedoch nicht beschränkt
auf, optische Übertragungstechniken,
Infrarotübertragungstechniken,
Mikrowellenübertragungstechniken
oder anderen Übertragungstechniken.
Es ist in Betracht gezogen, daß ein
entsprechendes Computerprogrammprodukt als ein entfernbares Medium
mit zugehöriger
gedruckter oder elektronischer Dokumentation in den Handel gelangt,
beispielsweise als datenkomprimiert eingegebene Software, mit welcher
ein Rechnersystem vorgeladen ist, beispielsweise auf einer System-ROM
oder einer Festplatte, oder von einem Server oder einer elektronischen
Nachrichtenstelle über
ein Netzwerk verteilt, beispielsweise das Internet oder World Wide
Web.
-
Obwohl eine beispielsweise Ausführungsform
der Erfindung geoffenbart wurde, versteht es sich für den Fachmann,
daß zahlreiche Änderungen und
Modifikationen durchgeführt
werden können,
mit welchen einige der Vorteile der Erfindung erreicht werden, ohne
daß hierdurch
der der Erfindung zugrundeliegende Gedanke verlassen wird. Beispielsweise
ist es für
den Fachmann offensichtlich, daß zwar
sich die Beschreibung mit einem bestimmten Hardwaresystem befaßte, daß jedoch
andere Hardware und Systemsoftware in derselben Weise wie die beschriebene
verwendet werden kann. Andere Aspekte, beispielsweise spezifische
Instruktionen, die zum Erreichen einer bestimmten Funktion verwendet werden,
sowie andere Modifikationen des erfinderischen Konzepts sind als
durch die anliegenden Ansprüche
umfaßt
anzusehen.
-
Zusammenfassung
-
Ein Verfahren und eine Einrichtung
zur Aufteilung von Netzwerk-Datendienstleistungen unter einer Mehrzahl
von Teilnehmern verwendet Information, welche in verschiedenen Tabellen
gespeichert ist, zum Definieren einer Mehrzahl von unabhängigen Netzwerken,
wobei jedes unabhängige
Netzwerk eine Gruppen von Zugangsanschlüssen und eine einzigartige
Gruppe von Bestimmungsadressen aufweist und logisch von sämtlichen
anderen unabhängigen
Netzwerken getrennt ist, so daß keine
Information von einem unabhängigen
Netzwerk zu einem anderen unabhängigen
Netzwerk gelangen kann. Wenn ein Teilnehmer eine Anfrage macht,
um ein unabhängiges
Netzwerk zu verwenden, dann wird ein Teilnehmer-Schlüsselwort,
das auf der Teilnehmeridentität
und dem Netzwerkzugangsanschluß basiert, dazu
verwendet, festzustellen, ob der Teilnehmer die Erlaubnis hat, das
unabhängige
Netzwerk zu verwenden. Hat der Teilnehmer die Erlaubnis, das unabhängige Netzwerk
zu verwenden, dann wird Information, die aus den Tabellen gewonnen
wird, dazu verwendet, festzustellen, ob der Ausgangsteilnehmer oder
ein Bestimmungsteilnehmer die Kontrolle über die Ressource hat. Wenn
ein Bestimmungsteilnehmer die Kontrolle über die Ressource hat, wird
die Information in der Anfrage verwendet, um einen Bestimmungsteilnehmer
und einen Antwortanschluß zu identifizieren.
Hat der Ausgangsteilnehmer die Kontrolle über die Ressource, wird die
Identität
verwendet, um festzustellen, ob der Ausgangsteilnehmer Zugriff auf
die Ressource nehmen kann.