DE69635337T2 - Erweiterbares und austauschbares system von netzwerkkomponenten - Google Patents

Erweiterbares und austauschbares system von netzwerkkomponenten Download PDF

Info

Publication number
DE69635337T2
DE69635337T2 DE69635337T DE69635337T DE69635337T2 DE 69635337 T2 DE69635337 T2 DE 69635337T2 DE 69635337 T DE69635337 T DE 69635337T DE 69635337 T DE69635337 T DE 69635337T DE 69635337 T2 DE69635337 T2 DE 69635337T2
Authority
DE
Germany
Prior art keywords
network
objects
components
layer
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69635337T
Other languages
English (en)
Other versions
DE69635337D1 (de
Inventor
A. Michael CLERON
Stephen Fisher
Timo Bruck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23728138&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69635337(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Application granted granted Critical
Publication of DE69635337D1 publication Critical patent/DE69635337D1/de
Publication of DE69635337T2 publication Critical patent/DE69635337T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf Computernetzwerke, und genauer auf eine Architektur zum Erstellen internetspezifischer Dienste. Softwarearchitekturen des gleichen Typs können im IBM Systems Journal, Bd. 30, Nr. 3, 1991, Seiten 259–279, "A Base For Portable Communications Software", S. H. Goldberg et al., und in EP-A-0631456 vom 28.12.1994 gefunden werden.
  • HINTERGRUND DER ERFINDUNG
  • Das Internet ist ein System geographisch verteilter Computernetzwerke, die durch Computer verbunden sind, die Netzwerkprotokolle ausführen, die es Benutzern erlauben, über die Netzwerke zu interagieren und Information gemeinsam zu nutzen. Wegen solch weitverbreiteter gemeinsamer Nutzung von Information hat sich das Internet allgemein in ein "offenes" System entwickelt, für welches Entwickler Software entwerfen können, um spezialisierte Operationen, oder Dienste, im wesentlichen ohne Beschränkung durchführen zu können. Diese Dienste sind typischerweise gemäß einer Client/Server-Architektur implementiert, wobei die Clients, z.B. Personalcomputer oder Workstations, für die Interaktion mit den Benutzern verantwortlich sind, und die Server Computer sind, die konfiguriert sind, um die Dienste, wie sie von den Clients angewiesen werden, auszuführen.
  • Es überrascht nicht, dass jeder der Dienste, der über das Internet verfügbar ist, im allgemeinen durch sein eigenes Netzwerkprotokoll definiert ist. Ein Protokoll ist ein Satz von Regeln, die das Format und die Bedeutung von Nachrichten oder "Paketen", die über die Netzwerke ausgetauscht werden, bestimmen. Indem man Dienste gemäß den Protokollen implementiert, arbeiten Computer zusammen, um verschiedene Operationen, oder ähnliche Operationen auf verschiedene Weisen, für Benutzer durchzuführen, die mit den Netzwerken "interagieren" möchten. Die Dienste reichen typischerweise vom Durchstöbern oder Suchen unter Verwendung eines bestimmten Protokolls nach Information, die ein bestimmtes Datenformat hat, bis zum tatsächlichen Erwerb von Information eines anderen Formats gemäß einem anderen Protokoll.
  • Zum Beispiel erleichtert der File Transfer Protokoll (FTP) Dienst den Transfer und die gemeinsame Nutzung von Dateien über das Internet. Der Telnet-Dienst erlaubt es Benutzern, sich auf Computern einzuloggen, die an die Netzwerke angeschlossen sind, während das Netnews-Protokoll seinen Teilnehmern einen Schwarzen-Brett-Dienst bietet. Außerdem umfassen die verschiedenen Datenformate der Information, die über das Internet verfügbar ist, JPEG-Bilder, MPEG-Filme und μ-Law Klangdateien.
  • Mit dem Entwurf dieser Dienste ist die Entwicklung von Anwendungen einhergegangen, um die Dienste auf der Client/Server-Architektur zu implementieren. Dementsprechend sind Anwendungen unter Verwendung des FTP-Protokolls für Benutzer verfügbar, um Dateien von Computern, die mit dem Internet verbunden sind, zu erhalten. Auf ähnliche Weise erlauben einzelne Anwendungen Benutzern, sich auf entfernte Computer unter Verwendung des Telnet-Protokolls einzuloggen (als ob sie sich von Terminals, die mit diesen Computern verbunden sind, einloggen würden), und ferner, um JPEG-Bilder und MPEG-Filme anzusehen. Als Ergebnis existiert eine Verbreitung von Anwendungen, die auf Benutzeraktivität auf dem Internet gerichtet ist.
  • Ein Problem mit dieser riesigen Sammlung anwendungsspezifischer Protokolle ist, dass diese Anwendungen im allgemeinen unorganisiert sind und deshalb Benutzer sich durch sie durch plagen müssen, um auf zufriedenstellende Weise und profitabel das Internet zu nutzen. Ein derartiger Mangel an Einheitlichkeit ist zeitraubend und verwirrend für Benutzer, die auf bestimmte Informationsarten zugreifen wollen, aber gezwungen sind, unbekannte Anwendungen zu verwenden. Wegen der enormen Menge verschiedener Informationsarten, die im Internet verfügbar ist und der Mannigfaltigkeit von Anwendungen, die man benö tigt, um auf diese Informationsarten zuzugreifen, kann die Erfahrung, das Internet zu verwenden, für diese Benutzer beschwerlich sein.
  • Eine Alternative zu dem Sortiment offener Anwendungen, für den Zugriff auf Information im Internet, ist ein "geschlossenes" Anwendungssystem, wie z.B. Prodigy, CompuServe oder America Online. Jedes dieser Systeme stellt eine volle Bandbreite gut organisierter Dienste ihren Teilnehmern zur Verfügung; jedoch erlegen sie auch Beschränkungen auf die Dienste auf, die Entwickler für diese Systeme anbieten können. Solche Beschränkung "neuer" Dienstentwicklung kann eine unangemessene Alternative für viele Benutzer sein.
  • Zwei moderne Dienste, um auf Information über das Internet zuzugreifen, sind Gopher und das World-Wide Web ("Web"). Gopher besteht aus einer Reihe von Internetservern, die eine "listenorientierte" Schnittstelle zu Information, die auf den Netzwerken verfügbar ist, zur Verfügung stellen; die Information wird als Menüpunkte auf eine hierarchische Weise dargestellt. Enthalten in der Hierarchie von Menüs sind Dokumente, die dargestellt oder gespeichert werden können, und durchsuchbare Indizes, die es Benutzern erlauben, Schlüsselwörter einzutippen und Suchen durchzuführen.
  • Einige der Menüpunkte, die von Gopher angezeigt werden, sind Verknüpfungen zu Information, die auf anderen im Netzwerk befindlichen Server verfügbar ist. In diesem Fall wird dem Benutzer eine Liste zur Verfügung stehender Informationsdokumente gezeigt, die geöffnet werden können. Die geöffneten Dokumente können zusätzliche Listen darstellen oder sie können unterschiedliche Datentypen, wie z.B. Bilder oder Text, umfassen; gelegentlich können die geöffneten Dokumente den Benutzer zu einem anderen Computer im Internet "transportieren".
  • Der andere populäre Informationsdienst im Internet ist das Web. Anstatt dem Benutzer eine hierarchische listenorientierte Informationsansicht zu bieten, bietet das Web dem Benutzer eine "verknüpfte-Hypertext" Ansicht. Bildlich gesprochen nimmt das Web das Internet als ein riesiges Buch von Seiten wahr, von de nen jede Bilder, Text, Töne, Filme oder verschiedene andere Datentypen in der Form von Dokumenten enthalten kann. Webdokumente sind in HyperText Markup Language (HTML) geschrieben, und Webserver übertragen HTML-Dokumente untereinander durch das Hypertext Transfer Protokoll (HTTP).
  • Der Webdienst ist im wesentlichen ein Mittel, um Informationsquellen auf dem Internet zu benennen. Bewaffnet mit solch einer allgemeinen Benennungskonvention, die das ganze Netzwerksystem aufspannt, sind Entwickler in der Lage, Informationsserver zu bauen, auf die potentiell jeder Benutzer zugreifen kann. Dementsprechend wurden Gopher-Server, HTTP- Server, FTP-Server und Email-Server für das Web entwickelt. Außerdem ermöglicht die Namenskonvention Benutzern auf jedem dieser mit dem Internet verbundenen Servern Ressourcen (wie z.B. Verzeichnisse und Dokumente) zu identifizieren und erlaubt Zugriff auf diese Ressourcen.
  • Als ein Beispiel "durchquert" ein Benutzer das Web, indem er gefragten Punkten einer Seite folgt, die auf einem graphischen Webbrowser dargestellt wird. Diese gefragten Punkte sind Hypertextverknüpfungen, deren Vorliegen auf der Seite durch visuelle Hinweise, z.B. unterstrichene Wörter, Icons oder Schaltflächen, angegeben ist. Wenn ein Benutzer einer Verknüpfung folgt (indem er gewöhnlich auf den Hinweis mit einer Maus klickt), zeigt der Browser das Ziel an, worauf der Link deutet, welches in einigen Fällen ein anderes HTML-Dokument sein kann.
  • Die Gopher- und Webinformationsdienste stellen völlig unterschiedliche Ansätze dar, um mit Information im Internet zu interagieren. Einer folgt einem Listenansatz zur Information, der wie ein Telefonbuchdienst "aussieht", während der andere analog einer kleinformatigen Zeitung einen Seitenansatz übernimmt. Jedoch umfassen beide diese Ansätze Anwendungen, um es Benutzern zu ermöglichen, Information, die auf Internetservern verfügbar ist, zu durchstöbern. Zusätzlich hat jede dieser Anwendungen eine einzigartige Art und Weise, die Information auf den Servern anzuschauen und darauf zuzugreifen.
  • Netscape Navigator® ("Netscape") ist ein Beispiel einer monolithischen Webbrowser-Anwendung, die konfiguriert ist, um mit vielen der vorhin beschriebenen Protokollen, einschließlich HTTP, Gopher und FTP, zu interagieren. Wenn es angewiesen wird, eine Anwendung aufzurufen, die eines dieser Protokolle verwendet, "übersetzt" Netscape das Protokoll in Hypertext. Diese Übersetzung platziert den Benutzer weiter weg vom Protokoll, das entworfen wurde, um die Anwendung auszuführen, und wirkt in einigen Fällen dem Interneterlebnis des Benutzers entgegen. Zum Beispiel kann ein Diskussionssystem, das einen interaktiven Austausch zwischen Teilnehmern verlangt, durch Hypertextübersetzungen ins Stocken geraten.
  • Die Gopher- und Webdienste können ferner zusätzliche Anwendungen verlangen, um spezifische Funktionen, wie z.B. das Abspielen von Tönen oder das Ansehen von Filmen, im Hinblick auf die in den Dokumenten enthaltenen Datentypen, durchzuführen. Netscape verwendet z.B. Hilfsanwendungen, um Anwendungen auszuführen, die Datenformate haben, die er nicht "versteht". Die Ausführung dieser Funktion auf einem Computer erfordert eine Verarbeitungsunterbrechung und Kontextumschaltung (d.h. Abspeichern des Zustandes) vor dem Aufrufen der entsprechenden Anwendungen. Falls ein Benutzer, der innerhalb der Netscape-Anwendung arbeitet, einen MPEG-Film öffnet, muss diese Browsing-Anwendung deshalb gespeichert werden (z.B. auf Diskette), bevor eine entsprechende MPEG-Anwendung geöffnet wird, z.B. Sparkle, um das Bild zu betrachten. So eine Anordnung ist ineffizient und eher unterbrechend in Bezug auf das Verarbeiten von Operationen des Computers.
  • Typischerweise umfasst ein Computer ein Betriebssystem und Anwendungssoftware, die als Gesamtheit die Operationen des Computers steuern. Die Anwendungen sind vorzugsweise aufgabenspezifisch und unabhängig, z.B. bereitet eine Textverarbeitungsanwendung Text auf, eine Zeichenanwendung bereitet Zeichnungen auf, eine Datenbankanwendung interagiert mit Information, die auf einer Datenbankspeichereinheit gespeichert ist. Obwohl ein Benutzer Daten von einer Anwendung zur anderen bewegen kann, wie z.B. durch Kopieren einer Zeichnung in eine Textverarbei tungsdatei, müssen die unabhängigen Anwendungen aufgerufen werden, um sodann diese Daten zu manipulieren.
  • Im allgemeinen präsentiert das Anwendungsprogramm dem Benutzer Information durch ein Fenster einer graphischen Benutzerschnittstelle durch das Zeichnen von Bildern, Graphiken oder Text innerhalb des Fenstergebietes. Der Benutzer wiederum kommuniziert mit der Anwendung, indem er auf graphische Objekte in dem Fenster mit einem Zeiger zeigt, der durch ein handbetriebenes Zeigegerät gesteuert wird, wie z.B. eine Maus oder durch Drücken von Tasten einer Tastatur.
  • Die graphischen Objekte, die typischerweise in jeder Fensterregion beinhaltet sind, sind größenverstellbare Boxen, Schaltflächen und Bildlaufleisten. Diese Objekte stellen Benutzerschnittstellenelemente dar, auf die der Benutzer mit dem Zeiger (oder dem Cursor) deuten kann, um auszuwählen oder zu manipulieren. Der Benutzer kann z.B. diese Elemente manipulieren, um die Fenster auf dem Bildschirm zu bewegen, und ihre Größen und Erscheinungen zu verändern, um das Fenster günstig anzuordnen. Wenn die Elemente ausgewählt oder manipuliert werden, wird das darunter liegende Anwendungsprogramm über die Fensterumgebung informiert, dass eine Steuerung durch den Benutzer bestimmt wurde.
  • Ein Menübalken ist ein weiteres Beispiel eines Benutzerschnittstellenelementes, das eine Liste von Menüs, die dem Benutzer zur Verfügung stehen, bereitstellt. Jedes Menü wiederum stellt eine Liste von Befehlsoptionen zur Verfügung, die allein dadurch ausgewählt werden, dass man auf sie mit dem mausgesteuerten Zeiger zeigt. Das heißt, die Befehle können erteilt werden, indem man die Maus betätigt, um den Zeiger auf oder neben die Befehlsauswahl zu bewegen und indem man drückt und schnell loslässt, d.h. "Klicken" einer Taste auf der Maus.
  • Im Gegensatz zu dieser typischen anwendungsbasierten Rechenumgebung bietet eine Softwarekomponentenarchitektur eine modulare dokumentenbasierte Rechenanordnung unter Verwendung von Werkzeugen, wie z.B. Ansichtseditoren. Der Schlüssel zu dokumentenbasiertem Rechnen ist das Verbunddokument, d.h. ein Do kument, das aus vielen verschiedenen Datentypen zusammengesetzt ist, die dieselbe Datei teilen. Die Datentypen, die in einem Verbunddokument enthalten sind, können von Text, Tabellen und Graphiken bis hin zu Video und Ton reichen. Mehrere Editoren, jeder dafür entworfen, mit einem speziellen Datentyp oder -format umzugehen, können auf dem Inhalt des Dokuments gleichzeitig arbeiten, anders als die anwendungsbasierte Rechenumgebung.
  • Da viele Editoren auf demselben Dokument zusammenarbeiten können, ist das Verbunddokument in einzelne Inhaltsmodule zur Manipulation durch die Editoren unterteilt. Die zusammengesetzte Natur des Dokuments wird realisiert, indem man diese Module untereinander einbindet, um ein Dokument zu schaffen, das eine Mischung von Datentypen aufweist. Die Softwarekomponentenarchitektur bietet die Grundlage zum Zusammenbauen von Dokumenten unterschiedlicher Inhalte, und die vorliegende Erfindung ist auf ein System gerichtet, um diese Fähigkeit auf netzwerkorientierte Dienste zu erweitern.
  • Deshalb ist es unter den Zielen der vorliegenden Erfindung eine Erfahrung des Benutzers auf Computernetzwerken zu vereinfachen, ohne die Flexibilität zu opfern, die von dem Benutzer geleistet wird, indem er existierende Protokolle und auf diesen Netzwerken verfügbare Datentypen verwendet.
  • Ein anderes Ziel der Erfindung ist es, ein System für Benutzer zur Verfügung zu stellen, um Information auf dem Internet zu suchen und auf sie zuzugreifen, ohne ausgedehntes Verständnis oder Wissen über die darunterliegenden Protokolle und Datenformate, die benötigt werden, um auf diese Information zuzugreifen.
  • Noch ein weiteres Ziel der Erfindung ist es, ein dokumentenbasiertes Rechensystem zur Verfügung zu stellen, das es Benutzern ermöglicht, Module für Dienste zu entwickeln, die auf Information gerichtet ist, die auf Computernetzwerken verfügbar ist.
  • Und noch ein weiteres Ziel der Erfindung ist es, eine Plattform bereitzustellen, die es Drittentwicklern erlaubt, ein geschichtetes Netzwerkkomponentensystem zu erweitern, indem sie neue Komponenten bauen, die nahtlos mit den Systemkomponenten interagieren.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Kurz gesagt umfasst die Erfindung ein erweiterbares und austauschbares netzwerkorientiertes Komponentensystem, das eine Plattform bereitstellt, um Netzwerknavigationskomponenten zu entwickeln, die auf einer Mannigfaltigkeit von Hardware- und Softwarecomputersystemen operieren. Diese Navigationskomponenten umfassen schlüsselintegrierende Komponenten zusammen mit Komponenten, wie z.B. Gopher-spezifische und Web-spezifische Komponenten, die konfiguriert sind, um konventionelle Dienste, die auf Computernetzwerke gerichtet sind, zu liefern. Kommunikation unter diesen Komponenten wird durch neue Anwendungsprogrammierschnittstellen (APIs) erreicht, um Integration mit einer darunterliegenden Softwarekomponentenarchitektur zu erleichtern. Solch eine hochmodular operierende geschichtete Anordnung zwischen dem Netzwerkkomponentensystem und der Komponentenarchitektur erlaubt es, dass jede existierende Komponente ersetzt wird, und erlaubt, dass neue Komponenten hinzugefügt werden, ohne den Betrieb des neuen Netzwerkkomponentensystems zu beeinflussen.
  • Entsprechend einem Aspekt der vorliegenden Erfindung stellt das neue System einen Netzwerknavigationsdienst zur Verfügung, um Information, die auf den Computernetzwerken zur Verfügung steht, aufzustöbern und darauf zuzugreifen. Die Information kann unterschiedliche Datentypen umfassen, die aus einer Mannigfaltigkeit von Quellen verfügbar sind, die an die Computernetzwerke angeschlossen sind. Nach Zugriff auf die gewünschte Information stehen Komponentenansichtseditoren zur Verfügung, um Inhalte der Datentypen zu modifizieren oder anzuzeigen, entweder visuell oder akustisch, ungeachtet der Quelle der darunterliegenden Daten. Zusätzliche Komponenten und Komponentenansichtseditoren können in Zusammenhang mit der darunterlie genden Softwarekomponentenarchitektur erzeugt werden, um Integration verschiedener Datentypen und Protokolle zu erlauben, um mit Information im Internet zu interagieren.
  • Gemäß einem anderen Aspekt der Erfindung ist das Komponentensystem vorzugsweise als ein kundenspezifisches Rahmenwerk verkörpert, das eine Menge von untereinander verbundenen abstrakten Klassen aufweist, um netzwerkorientierte Objekte zu definieren. Diese abstrakten Klassen umfassen CyberItem, CyberStream und CyberExtension, und die Objekte, die sie definieren, werden verwendet, um die neuen Navigationskomponenten zu bauen. Interaktionen unter diesen letzteren Komponenten und existierenden Komponenten der darunterliegenden Softwarearchitektur stellen die Basis für die Erweiterbarkeits- und Ersetzbarkeitsmerkmale des Netzwerkkomponentensystems dar.
  • Insbesondere CyberItem ist eine Objektabstraktion, die eine "Ressource auf einem Computernetzwerk" repräsentiert, die weiter erweitert werden kann, um Ressourcen, die an einem beliebig zugänglichen Ort verfügbar sind, zu umfassen. CyberStream ist eine Objektabstraktion, die eine Methode zum Herunterladen von Information von einem entfernten Ort in dem Computernetzwerk darstellt, während CyberExtension zusätzliche Verhaltensweisen repräsentiert, die für die existierenden Komponenten zur Integration mit dem Netzwerkkomponentensystem bereitgestellt werden.
  • Das neue Netzwerksystem bringt das Wesentliche eines "komponentenbasierten" Ansatzes zum Durchstöbern und Wiederfinden netzwerkorientierter Information ein, im Gegensatz zu dem monolithischen anwendungsorientierten Ansatz früherer Browsersysteme. Solch ein komponentenbasiertes System hat eine Anzahl von Vorteilen. Erstens, falls ein Benutzer es nicht mag, wie eine spezielle Komponente operiert, kann diese Komponente durch eine andere Komponente, die von einem anderen Entwickler zur Verfügung gestellt wird, ersetzt werden. Demgegenüber, falls es ein Benutzer nicht mag, wie eine monolithische Anwendung mit bestimmten Protokollen umgeht, besteht die einzige Zuflucht darin, einen anderen Dienst zu benutzen, weil der Benutzer die An wendung nicht modifizieren kann, um die Protokollfunktionen auf eine andere Weise auszuführen. Klarerweise bietet die Ersetzbarkeitseigenschaft des neuen Netzwerkkomponentensystems dem Benutzer eine flexible Alternative.
  • Zweitens ist die Verwendung von Komponenten im wesentlichen weniger unterbrechend als das Verwenden von Hilfsanwendungen in Situationen, wo eine monolithische Anwendung unterschiedliche Datentypen und -formate gegenüberstellt. Anstatt zwischen Anwendungsschichten zu "wechseln", ruft das neue Netzwerksystem lediglich die geeignete Komponente und den Komponentenansichteditor auf, der konfiguriert ist, um mit dem Datentyp und -format zu operieren. Solch "Nahtlos"-Integration unter Komponenten ist ein bedeutendes Merkmal der hierin beschriebenen modularen kooperierenden Architektur.
  • Ein dritter Vorteil des neuen Netzwerksystems ist auf die kooperierende Beziehung zwischen dem System und der darunterliegenden Softwarekomponentenarchitektur gerichtet. Insbesondere die neuen Netzwerkkomponenten sind auf der Komponentenarchitekturtechnologie basiert, um deshalb die Zusammenarbeit zwischen allen Komponenten in einer integrierten Weise zu gewährleisten. Die Softwarekomponentenarchitektur ist konfiguriert, um auf einer Vielzahl von Computern zu operieren und ist vorzugsweise als eine an das Betriebssystem angrenzende Softwareschicht implementiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und weiteren Vorteile der Erfindung können besser verstanden werden, indem man sich auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen bezieht, in denen:
  • 1 ein Blockdiagramm eines Netzwerksystems einschließlich einer Sammlung von Computernetzwerken, die durch Client- und Servercomputer miteinander verbunden sind, ist;
  • 2 ein Blockdiagramm eines Clientcomputers, wie z.B. eines Personalcomputers ist, auf dem die Erfindung vorteilhaft arbeiten kann;
  • 3 ein Blockdiagramm eines Servercomputers von 1 ist;
  • 4 ein hochschematisiertes Blockdiagramm einer geschichteten Komponentenberechnungsanordnung gemäß der Erfindung ist;
  • 5 eine schematische Veranschaulichung der Interaktion einer Komponente, einer Softwarekomponentenschicht und eines Betriebssystems des Computers der 2 ist;
  • 6 eine schematische Veranschaulichung der Interaktion zwischen einer Komponente, einer Komponentenschicht und einem Fenstermanager gemäß der Erfindung ist;
  • 7 ein vereinfachtes Klassenhierarchiediagramm ist, das eine Basisklasse CyberItem veranschaulicht und seine assoziierten Unterklassen, die verwendet werden, um Netzwerkkomponentenobjekte gemäß der Erfindung zu konstruieren;
  • 8 ein vereinfachtes Klassenhierarchiediagramm ist, das eine Basisklasse CyberStream veranschaulicht und seine zugeordneten Unterklassen gemäß der Erfindung; und
  • 9 ein vereinfachtes Klassenhierarchiediagramm ist, das eine Basisklasse CyberExtension veranschaulicht und seine assoziierten Unterklassen gemäß der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG EINER VERANSCHAULICHENDEN AUSFÜHRUNGSFORM
  • 1 ist ein Blockdiagramm eines Netzwerksystems 100, welches eine Sammlung von Computernetzwerken 110 umfasst, die durch Clientcomputer ("Clients") 200, z.B. Workstations oder Personalcomputer, und Servercomputer ("Servers") 300 untereinander verbunden sind. Die Server sind typischerweise Computer, die Hardware- und Softwareelemente aufweisen, die Ressourcen oder Dienste zur Verwendung durch die Clients 200 bereitstellen, um die Effizienz ihrer Operationen zu vergrößern. Es wird von Fachleuten verstanden, dass in einer alternativen Ausführungsform der Client und Server auf demselben Computer existie ren kann; jedoch sind für das veranschaulichende Ausführungsbeispiel, das hierin beschrieben ist, der Client und der Server getrennte Computer.
  • Mehrere Typen von Computernetzwerken 110, einschließlich lokaler Netzwerke (Local Area Networks, LANs) und landesweiter Netze (Wide Area Networks, WANs) können in dem System 100 angewendet werden. Ein LAN ist ein begrenztes Flächennetzwerk, das typischerweise ein Übertragungsmedium, wie z.B. Koaxialkabel oder verdrilltes Leitungspaar, umfasst, während ein WAN eine öffentliche oder private Telekommunikationseinrichtung sein kann, die weit verstreute Computer untereinander verbindet. In der veranschaulichenden Ausführungsform ist das Netzwerksystem 100 das Internetsystem geographisch verteilter Computernetzwerke.
  • Computer, die an das Internet angeschlossen sind, kommunizieren typischerweise, indem sie diskrete Informationspakete entsprechend vordefinierter Netzwerkprotokolle austauschen. Ausführung dieser Netzwerkprotokolle erlaubt es den Benutzer zu interagieren und Information über die Netzwerke hinweg gemeinsam zu nutzen. Als eine Veranschaulichung sendet der Client 200 in Reaktion auf eine Anfrage eines Benutzers nach einem speziellen Dienst ein geeignetes Informationspaket an den Server 300, der den Dienst ausführt und ein Ergebnis zurück an den Client 200 schickt.
  • 2 veranschaulicht eine typische Hardwarekonfiguration eines Clients 200, die eine Zentraleinheit (CPU) 210 umfasst, die zwischen einem Speicher 214 und Eingabe/Ausgabe (E/A)-Schaltungen 218 durch bidirektionale Busse 212 und 216 angeschlossen ist. Der Speicher 214 umfasst typischerweise einen Direktzugriffsspeicher (RAM) für temporäres Speichern von Information und einen Festspeicher (ROM) für permanentes Speichern der Computerkonfiguration und grundlegender Bedienkommandos, wie z.B. Teile eines Betriebssystems (nicht gezeigt). Wie hierin weiter beschrieben wird, steuert das Betriebssystem die Operationen der CPU 210 und des Clientcomputers 200.
  • Die E/A-Schaltungen 218 wiederum verbinden den Computer mit Computernetzwerken, wie z.B. den Internetcomputernetzwerken 250, über einen bidirektionalen Bus 222 und mit Cursor/Zeigersteuergeräten, wie z.B. eine Tastatur 224 (über Kabel 226) und eine Maus 230 (über Kabel 228). Die Maus 230 umfasst typischerweise zumindest eine Taste 234, die von einem Benutzer des Computers betätigt wird. Ein herkömmlicher Anzeigemonitor 232, der einen Bildschirm 235 aufweist, ist ebenfalls mit den E/A-Schaltungen 218 über Kabel 238 verbunden. Ein Zeiger (Cursor) 240 wird auf Fenstern 244 des Bildschirms 235 angezeigt, und seine Position ist über die Maus 230 oder die Tastatur 224 steuerbar, wie gut bekannt ist. Typischerweise empfangen die E/A-Schaltungen 218 Information, wie z.B. Steuer- und Datensignale von der Maus 230 und Tastatur 224 und stellen diese Information der CPU 210 zur Anzeige auf dem Bildschirm 235 zur Verfügung, oder wie hierin weiter beschrieben wird, zum Transfer über das Internet 250.
  • 3 veranschaulicht eine typische Hardwarekonfiguration eines Servers 300 des Netzwerksystems 100. Der Server 300 hat viele der gleichen Einheiten, wie sie im Client 200 eingesetzt werden, einschließlich einer CPU 310, eines Speichers 314 und E/A-Schaltungen 318, von denen alle durch bidirektionale Busse 312 und 316 untereinander verbunden sind. Die E/A-Schaltungen verbinden den Computer mit Computernetzwerken 350 über einen bidirektionalen Bus 322. Diese Einheiten sind konfiguriert, um Funktionen ähnlich derer, die von den entsprechenden Einheiten in dem Computer 200 zur Verfügung gestellt werden, auszuführen. Zusätzlich umfasst der Server typischerweise eine Massenspeichereinheit 320, wie z.B. ein Diskettenlaufwerk, die mit den E/A-Schaltungen 318 über bidirektionalen Bus 324 verbunden ist.
  • Es versteht sich, dass die E/A-Schaltungen innerhalb der Computer 200 und 300 die nötige Hardware umfassen, z.B. Zwischenspeicher und Adapter, die benötigt werden, um sich an die Steuergeräte, den Anzeigemonitor, die Massenspeichereinheit und die Netzwerke anschließen zu lassen. Außerdem umfasst das Betriebssystem die notwendigen Softwaretreiber, um z.B. Netzwerkadapter innerhalb der E/A-Schaltungen zu steuern, wenn man E/A- Operationen, wie z.B. den Transfer von Datenpaketen zwischen dem Client 200 und Server 300, durchführt.
  • Die Computer sind vorzugsweise Personalcomputer der Macintosh® Computerserie, die von Apple Computer Inc. verkauft werden, obgleich die Erfindung auch im Kontext anderer Computertypen einschließlich der IBM® Computerserie, die von International Business Machines Corp. verkauft werden, ausgeführt werden kann. Diese Computer haben und werden gesteuert und koordiniert durch Betriebssystemsoftware, wie z.B. das Apple® System7®, IBM OS2® oder die Microsoft® Windows® Betriebssysteme.
  • Wie erwähnt, ist die vorliegende Erfindung auf einer modularen Dokumentenberechnungsanordnung basiert, wie sie von einer darunterliegenden Softwarekomponentenarchitektur bereitgestellt wird, anstelle der typischen anwendungsbasierten Umgebung früherer Rechensysteme. 4 ist ein hochschematisiertes Diagramm der Hardware- und Softwareelemente einer geschichteten Komponentenberechnungsanordnung 400, die das neue netzwerkorientierte Komponentensystem der Erfindung umfasst. Auf der untersten Stufe ist die Computerhardware, die als Schicht 410 gezeigt ist. Angeschlossen an die Hardware ist eine gewöhnliche Betriebssystemschicht 420, die einen Fenstermanager, ein graphisches System, ein Dateisystem und netzwerkspezifische Schnittstellen, wie z.B. einen TCP/IP-Protokollstapel und einen Apple-Talk-Protokollstapel, umfasst.
  • Die Softwarekomponentenarchitektur ist vorzugsweise als eine Komponentenarchitekturschicht 430 implementiert. Obwohl sie als das Betriebssystem 420 überlagernd gezeigt ist, ist die Komponentenarchitekturschicht 430 eigentlich unabhängig von dem Betriebssystem und befindet sich genauer gesagt Seite an Seite mit dem Betriebssystem. Diese Beziehung erlaubt der Komponentenarchitektur auf mehreren Plattformen zu existieren, die unterschiedliche Betriebssysteme einsetzen.
  • Entsprechend der vorliegenden Erfindung umfasst eine neue netzwerkorientierte Komponentenschicht 450 die darunterliegende Technologie, um das erweiterbare und austauschbare Netzwerkkomponentensystem zu implementieren, das Dienste liefert und Ent wicklung von Navigationskomponenten, die auf Computernetzwerke, wie das Internet, gerichtet sind, erleichtert. Wie hierin ferner beschrieben wird, umfasst diese Technologie neue Anwendungsprogrammierschnittstellen (APIs), die Kommunikation unter Komponenten erleichtert, um Integration mit der darunterliegenden Komponentenarchitekturschicht 430 zu gewährleisten. Diese neuen APIs werden vorzugsweise in der Form von Objekten in einer Klassenhierarchie geliefert.
  • Es sollte erwähnt werden, dass die Netzwerkkomponentenschicht 450 mit einer beliebigen existierenden systemweiten Komponentenarchitektur, wie z.B. die Object Linking and Embedding (OLE)-Architektur, die von der Microsoft Corporation entwickelt wurde, operieren kann; jedoch ist in dem erläuternden Ausführungsbeispiel die Komponentenarchitektur vorzugsweise OpenDoc, der anbieterneutrale offene Standard für Verbunddokumente, der u.a. von Apple Computer, Inc. entwickelt wurde.
  • Unter Verwendung von Werkzeugen, wie z.B. Ansichtseditoren, erzeugt die Komponentenarchitekturschicht 430 ein Verbunddokument, das aus Daten zusammengesetzt ist, die unterschiedliche Typen und Formate aufweisen. Jeder/s unterschiedliche Datentyp und -format ist in einer Fundamentaleinheit enthalten, die Berechnungsteil, oder allgemeiner, "Berechnungskomponente" 460 genannt wird, die einen Ansichtseditor zusammen mit dem Dateninhalt umfasst. Ein Beispiel der Berechnungskomponente 460 kann eine MacDraw-Komponente umfassen. Der Editor ist auf der anderen Seite analog zu einem Anwendungsprogramm in einem herkömmlichen Computer. Das bedeutet, der Editor ist eine Softwarekomponente, die die notwendige Funktionalität bereitstellt, um Inhalt einer Komponente darzustellen und, wo angemessen, um eine Benutzerschnittstelle zu präsentieren, um diese Inhalte zu modifizieren. Zusätzlich kann der Editor Menüs, Steuerelemente und andere Benutzerschnittstellenelemente enthalten.
  • Entsprechend der Erfindung erweitert die Netzwerkkomponentenschicht 450 die Funktionalität der darunterliegenden Komponentenarchitekturschicht 430, indem sie netzwerkorientierte Komponenten 480 definiert. Eingeschlossen unter diesen Kompo nenten sind schlüsselintegrierende Komponenten (wie z.B. Notizbuch, Protokoll und Verbindungsdialogkomponenten) zusammen mit Komponenten, die konfiguriert sind, um gewöhnliche Dienste zu liefern, die auf Computernetzwerke gerichtet sind, wie z.B. Gopher-spezifische und Web-spezifische Komponenten. Außerdem können die Komponenten FTP-spezifische Komponenten zum Transferieren von Dateien über die Netzwerke, Telnet-spezifische Komponenten, um sich entfernt auf anderen Computern einzuloggen, und JPEG-spezifische und MPEG-spezifische Komponenten enthalten, um Bild- und Filmdatentypen und -formate anzusehen.
  • Ein Merkmal der Erfindung ist die Fähigkeit, beliebige der Komponenten der geschichteten Berechnungsanordnung 400 mit einer anderen Komponente einfach zu erweitern oder zu ersetzen, um einem Benutzer kundenspezifische netzwerkbezogene Dienste zu bieten. Wie hierin beschrieben wird, wird dieses Merkmal durch die kooperierende Beziehung zwischen der Netzwerkkomponentenschicht 450 und ihrer darunterliegenden Komponentenarchitekturschicht 430 möglich gemacht. Die integrierenden Komponenten kommunizieren und interagieren mit diesen verschiedenen Komponenten des Systems in einer "nahtlos integrierten" Weise, um grundlegende Werkzeuge zum Navigieren auf Internetcomputernetzwerken zur Verfügung zu stellen.
  • 4 veranschaulicht auch die Beziehung der Anwendungen 490 zu den Elementen der geschichteten Berechnungsanordnung 400. Obwohl sie sich in demselben "Benutzerraum" wie die Komponenten 460 und die Netzwerkkomponenten 480 befinden, interagieren die Anwendungen 490 mit diesen Elementen nicht und sind deshalb direkt an die Betriebssystemschicht 420 angeschlossen. Weil sie als monolithische, autonome Module entworfen sind, interagieren Anwendungen (wie z.B. bisherige Internetbrowser) oft nicht einmal untereinander. Demgegenüber sind die Komponenten der Anordnung 400 entworfen, um über die gemeinsame Komponentenarchitekturschicht 430 oder, in dem Fall der Netzwerkkomponenten, über die neue Netzwerkkomponentenschicht 450 zusammenzuarbeiten.
  • Insbesondere weist die Erfindung die Bereitstellung des erweiterbaren und austauschbaren netzwerkorientierten Komponentensystems auf, das bei Antwort Handlungen stattfinden läßt, die die Fähigkeit eines Benutzers zur Interaktion mit dem Computer verbessern, um Information zu suchen und zu erhalten, die über Computernetzwerke, wie z.B. das Internet, verfügbar ist. Die Information wird einem Benutzer über eine Fensterumgebung dargeboten, wie z.B. die graphische Benutzerschnittstelle, die von System 7 oder Windows bereitgestellt wird, die vorzugsweise auf dem Bildschirm 235 (2) als eine graphische Anzeige angezeigt wird, um Interaktionen zwischen dem Benutzer und dem Computer, wie z.B. dem Client 200, zu erleichtern. Dieses Systemverhalten wird durch die Interaktion der Netzwerkkomponenten mit einer Reihe von Systemsoftwareroutinen, die mit dem Betriebssystem 420 assoziiert sind, zuwege gebracht. Diese Systemroutinen wiederum interagieren mit der Komponentenarchitekturschicht 430, um die Fenster und graphischen Benutzerschnittstellenelemente zu erzeugen, wie sie hierin weiter beschrieben werden.
  • Die Fensterumgebung ist im allgemeinen Teil der Betriebssystemsoftware 420, die eine Sammlung von Dienstprogrammen zur Steuerung des Betriebs des Computers 200 umfasst. Das Betriebssystem wiederum interagiert mit den Komponenten, um höhere Levelfunktionalität einschließlich einer direkten Schnittstelle mit dem Benutzer zu bieten. Eine Komponente macht Gebrauch von Betriebssystemfunktionen, indem sie eine Reihe von Aufgabenbefehlen an das Betriebssystem über die Netzwerkkomponentenschicht 450 oder, wie es häufig typischerweise der Fall ist, durch die Komponentenarchitekturschicht 430 ausgibt. Das Betriebssystem 420 führt dann die angefragte Aufgabe aus. Zum Beispiel kann die Komponente verlangen, dass ein Softwaretreiber des Betriebssystems den Transfer eines Datenpakets über die Netzwerke 250 initiiert oder, dass das Betriebssystem bestimmte Information auf einem Fenster zur Präsentation dem Benutzer anzeigt.
  • 5 ist eine schematische Veranschaulichung der Interaktion einer Komponente 502, einer Softwarekomponentenschicht 506 und eines Betriebssystems 510 eines Computers 500, der ähnlich dem Clientcomputer 200 aus 2 ist und äquivalente Elemente von diesem hat. Wie erwähnt, ist die Netzwerkkomponentenschicht 450 (4) mit der Komponentenarchitekturschicht 430 integriert, um eine kooperierende Architektur zu bieten, die einer beliebigen Komponente erlaubt, ersetzt oder erweitert zu werden, und neuen Komponenten gestattet, hinzugefügt zu werden, ohne den Betrieb des Netzwerkkomponentensystems zu beeinflussen; entsprechend können die Schichten 430 und 450 zu Zwecken der vorliegenden Diskussion als eine einfache Softwarekomponentenschicht 506 behandelt werden.
  • Die Komponente 502, die Komponentenschicht 506 und das Betriebssystem 510 interagieren, um die Operationen des Computers 500 zu steuern und zu koordinieren, und ihre Interaktion ist schematisch durch Pfeile 504 und 508 veranschaulicht. Um Information auf einem Bildschirm 535 anzuzeigen, kooperieren die Komponente 502 und die Komponentenschicht 506, um Anzeigebefehle an einen Fenstermanager 514 und das Betriebssystem 510 zu generieren und zu schicken. Der Fenstermanager 514 speichert Information direkt (über Pfeil 516) in einen Bildschirmzwischenspeicher 520.
  • Der Fenstermanager 514 ist eine Systemsoftwareroutine, die im allgemeinen verantwortlich für das Verwalten von Fenstern 544 ist, die der Benutzer während des Betriebs des Netzwerkkomponentensystems sieht. Das heißt, es ist allgemein die Aufgabe des Fenstermanagers, den Ort und die Größe des Fensters und Fensterflächen zu verfolgen, die in Verbindung mit dem Netzwerkkomponentensystem der vorliegenden Erfindung gezeichnet und wiedergezeichnet werden müssen.
  • Unter Steuerung vielfältiger Hard- und Software in dem System werden die Inhalte des Bildschirmzwischenspeichers 520 aus dem Zwischenspeicher ausgelesen und einem Anzeigenadapter 526 bereitgestellt, wie schematisch durch Pfeil 522 angezeigt wird. Der Anzeigenadapter umfasst Hard- und Software (manchmal in der Form von Firmware), die die Information in den Bildschirmzwischenspeicher 520 in eine Form konvertiert, die ver wendet werden kann, um einen Bildschirm 535 eines Monitors anzusteuern. Der Monitor 532 ist über Kabel 528 mit dem Anzeigenadapter 526 verbunden.
  • Um Information als ein Paket über die Computernetzwerke zu transferieren, kooperieren die Komponente 502 und Komponentenschicht 506 auf ähnliche Weise, um Netzwerkbefehle zu erzeugen und zu schicken, wie z.B. entfernte Prozeduraufrufe zu einer netzwerkspezifischen Schnittstelle 540 des Betriebssystems 510. Die Netzwerkschnittstelle umfasst Systemsoftwareroutinen, wie z.B. "Gerüst"-Prozedursoftware und Protokollstapel, die im allgemeinen für das Formatieren der Information in ein vorbestimmtes Paketformat entsprechend des verwendeten spezifischen Netzwerkprotokolls, z.B. TCP/IP oder Apple-Talk Protokoll, verantwortlich sind.
  • Insbesondere speichert die Netzwerkschnittstelle 540 das Paket direkt (über Pfeil 556) in einen Netzwerkzwischenspeicher 560. Unter Steuerung der Hardware und Software in dem System wird der Inhalt dem Netzwerkzwischenspeicher 560, wie schematisch durch Pfeil 562 angegeben ist, einem Netzwerkadapter 566 zur Verfügung gestellt. Der Netzwerkadapter vereinigt die Software und Hardware, d.h. elektrische und mechanische Austausschaltkreise und Charakteristika, die benötigt werden, um an die speziellen Computernetzwerke 550 angeschlossen zu werden. Der Adapter 566 ist mit den Computernetzwerken 550 durch Kabel 568 verbunden.
  • In einer bevorzugten Ausführungsform ist die hierin beschriebene Erfindung in einer objektorientierten Programmiersprache (OOP) implementiert, wie z.B. C++, unter Verwendung von System Objekt Modell (SOM)-Technologie und OOP-Techniken. Die C++ und SOM-Sprachen sind gut bekannt und viele Artikel und Texte sind verfügbar, die die Sprachen im Detail beschreiben. Zusätzlich sind C++ und SOM Compiler kommerziell von mehreren Anbietern erhältlich. Dementsprechend werden aus Klarheitsgründen die Details der C++ und SOM-Sprachen und Operationen ihrer Compiler hierin nicht weiter im Detail diskutiert.
  • Wie von Fachleuten verstanden wird, beziehen OOP-Techniken die Definition, Erschaffung, Verwendung und Löschung von Objekten mit ein. Diese Objekte sind Softwareentitäten, die Datenelemente und Routinen umfassen oder Funktionen, die die Datenelemente manipulieren. Die Daten und dazugehörige Funktionen werden von der Software als eine Entität behandelt, die erzeugt, verwendet und gelöscht werden kann, als wäre sie ein einzelner Gegenstand. Zusammen ermöglichen die Daten und Funktionen Objekte, um praktisch jede beliebige Reale-Welt-Entität in Bezug auf ihre Charakteristika, die durch die Datenelemente repräsentiert werden können, und ihr Verhalten, das durch ihre Manipulationsfunktionen repräsentiert werden kann, zu modellieren. Auf diese Weise können Objekte konkrete Dinge, wie z.B. Computer, modellieren, während sie auch abstrakte Konzepte, wie z.B. Zahlen oder geometrische Entwürfe, modellieren.
  • Objekte werden definiert durch die Erschaffung von "Klassen", die selbst keine Objekte sind, die aber wie Vorlagen agieren, die dem Computer Anweisungen geben, wie er ein tatsächliches Objekt konstruieren kann. Eine Klasse kann z.B. die Anzahl und Typen von Datenvariablen spezifizieren und die Schritte, die in den Funktionen involviert sind, die die Daten manipulieren. Ein Objekt wird in dem Programm mittels einer speziellen Funktion geschaffen, die "Konstruktor" genannt wird, die die entsprechende Klassendefinition und zusätzliche Information verwendet, wie z.B. Argumente, die während der Objekterzeugung zur Verfügung gestellt werden, um das Objekt zu konstruieren. Gleichermaßen werden Objekte durch eine spezielle Funktion gelöscht, welche "Destruktor" genannt wird. Objekte können verwendet werden, indem man ihre Daten manipuliert und ihre Funktionen aufruft.
  • Die grundsätzlichen Vorteile von OOP-Techniken entstehen aus drei grundlegenden Prinzipien heraus. Kapselung, Polymorphismus und Vererbung. Insbesondere können Objekte entworfen werden, um ihre gesamte oder einen Teil ihrer internen Datenstruktur und internen Funktionen zu verstecken oder zu kapseln. Genauer gesagt, kann während eines Programmentwurfs ein Programmentwickler Objekte definieren, in denen alle oder einige der Datenvariablen und alle oder einige der darauf bezogenen Funktionen als "privat" oder als zur Verwendung nur durch das Objekt selbst betrachtet werden. Andere Daten oder Funktionen können als "öffentlich" oder als zur Verwendung durch andere Programmen verfügbar deklariert werden. Zugang zu den privaten Variablen durch andere Programme kann gesteuert werden, indem man öffentliche Funktionen für ein Objekt definiert, die auf die privaten Daten des Objekts zugreifen. Die öffentlichen Funktionen bilden eine kontrollierte und konsistente Schnittstelle zwischen den privaten Daten und der "Außenwelt". Jeder Versuch, Programmcode zu schreiben, der direkt auf die privaten Variablen zugreift, bewirkt, dass der Compiler einen Fehler während der Programmkompilierung erzeugt, welcher den Kompilierungsprozess stoppt und das Programm davon abhält, ausgeführt zu werden.
  • Polymorphismus ist ein Konzept, das Objekten und Funktionen erlaubt, die das gleiche Gesamtformat haben, aber die mit unterschiedlichen Daten arbeiten, unterschiedlich zu funktionieren, um konsistente Ergebnisse zu produzieren. Vererbung, auf der anderen Seite, erlaubt Programmentwicklern, vorher existierende Programme einfach wiederzuverwenden und zu vermeiden, Software ganz von vorne zu erschaffen. Das Prinzip der Vererbung erlaubt einem Softwareentwickler, Klassen als verwandt zu deklarieren (und die Objekte, die später aus ihnen erzeugt werden). Insbesondere können Klassen als Unterklassen von anderen Basisklassen gekennzeichnet werden. Eine Unterklasse "erbt" und hat Zugriff auf alle der öffentlichen Funktionen ihrer Basisklasse, genauso als ob diese Funktionen in der Unterklasse auftreten würden. Alternativ kann eine Unterklasse einige oder alle ihre geerbten Funktionen überschreiben oder kann einige oder alle ihre geerbten Funktionen modifizieren nur durch Definieren einer neuen Funktion mit derselben Form (Überschreiben oder Modifizierung verändert nicht die Funktion in der Basisklasse, sondern modifiziert nur die Verwendung der Funktion in der Unterklasse). Die Erzeugung einer neuen Unterklasse, die einiges der Funktionalität (mit selektiver Modifi kation) einer anderen Klasse hat, erlaubt Softwareentwicklern, bestehenden Code einfach an Kunden individuell anzupassen, um ihre spezifischen Bedürfnisse zu befriedigen.
  • Gemäß der vorliegenden Erfindung sind die Komponente 502 und Fenster 544 "Objekte", die von der Komponentenschicht 506 bzw. dem Fenstermanager 514 erzeugt werden, von denen der letztere ein objektorientiertes Programm sein kann. Interaktion zwischen einer Komponente, Komponentenschicht und einem Fenstermanager ist in größerem Detail in 6 veranschaulicht.
  • Im allgemeinen ist die Komponentenschicht 606 an den Fenstermanager 614 durch Erzeugen und Manipulieren von Objekten angeschlossen. Der Fenstermanager selbst kann ein Objekt sein, das erzeugt wird, wenn das Betriebssystem gestartet wird. Insbesondere erzeugt die Komponentenschicht Fensterobjekte 630, die den Fenstermanager veranlassen, assoziierte Fenster auf dem Bildschirm zu erschaffen. Dies wird schematisch durch einen Pfeil 608 gezeigt. Zusätzlich erzeugt die Komponentenschicht 606 einzelne graphische Schnittstellenobjekte 650, die in jedem Fensterobjekt 630 gespeichert sind, wie schematisch durch Pfeile 612 und 652 gezeigt wird. Da viele graphische Schnittstellenobjekte erzeugt werden können, um viele Schnittstellenelemente auf dem Bildschirm anzuzeigen, kommuniziert das Fensterobjekt 630 mit dem Fenstermanager mittels einer Sequenz von Zeichenbefehlen, die vom Fensterobjekt an den Fenstermanager 614 ausgegeben werden, wie durch Pfeil 632 veranschaulicht wird.
  • Wie erwähnt, funktioniert die Komponentenschicht 606, um Komponenten ineinander einzubetten, um ein Verbunddokument zu bilden, das gemischte Datentypen und -formate aufweist. Viele verschiedene Ansichtseditoren können zusammenarbeiten, um den Dateninhalt des Dokuments anzuzeigen oder zu modifizieren. Um Tastenanschläge und Mausereignisse, die vom Benutzer initiiert worden sind, den echten Komponenten und Editoren zuzuordnen, umfasst die Komponentenschicht 606 einen Arbitrator 616 und einen Dispatcher bzw. Abfertiger 626.
  • Der Dispatcher ist ein Objekt, der mit dem Betriebssystem 610 kommuniziert, um den richtigen Ansichtseditor 660 zu identifizieren, während der Schiedsrichter ein Objekt ist, das den Dispatcher informiert, welcher Editor den Strom von Tastenanschlägen oder Mausereignissen "besitzt". Insbesondere erhält der Dispatcher 626 diese "Mensch-Schnittstelle"-Ereignisse von dem Betriebssystem 610 (wie schematisch durch Pfeil 628 gezeigt wird) und liefert sie zu dem richtigen Ansichtseditor 660 über Pfeil 662. Der Ansichtseditor 660 modifiziert dann oder zeigt den Inhalt der Datentypen entweder visuell oder akustisch an.
  • Obwohl OOP bedeutende Verbesserungen über andere Programmierkonzepte bietet, erfordert die Softwareentwicklung immer noch erhebliche Zeitaufwendungen und Anstrengungen, besonders, falls keine vorher existierende Software zur Modifikation zur Verfügung steht. Infolgedessen war es ein Ansatz aus dem Stand der Technik, dem Entwickler eine Menge vordefinierter, untereinander verbundener Klassen zur Verfügung zu stellen, die eine Menge von Objekten und zusätzliche verschiedenartige Routinen erzeugen, die alle darauf gerichtet sind, häufig angetroffene Aufgaben in einer speziellen Umgebung durchzuführen. Solche vordefinierten Klassen und Bibliotheken werden typischerweise "Rahmenwerke" genannt und bieten im wesentlichen eine vorgefertigte Struktur für ein Arbeitsdokument. Zum Beispiel könnte ein Rahmenwerk für eine Benutzerschnittstelle eine Menge von vordefinierten graphischen Schnittstellenobjekten bereitstellen, die Fenster, Bildlaufleisten, Menüs etc. erzeugen und die Unterstützung und das "Standard"-Verhalten für diese Schnittstellenobjekte bereitstellen. Da Rahmenwerke auf objektorientierten Techniken basieren, können die vordefinierten Klassen als Basisklassen verwendet werden, und die eingebauten Normalverhalten können durch entwicklerdefinierte Unterklassen vererbt und entweder modifiziert oder überschrieben werden, um Entwicklern zu erlauben, das Rahmenwerk zu erweitern und kundenspezifische Lösungen in einem speziellen Fachgebiet zu schaffen. Dieser objektorientierte Ansatz bietet einen größeren Vorteil gegenüber traditioneller Programmierung, da der Programmierer nicht das Originalprogramm verändert, sondern stattdessen die Fähigkeiten dieses Originalprogramms erweitert. Zusätzlich arbeiten sich Entwickler nicht blind durch Schichten von Code, weil das Rahmenwerk eine architektonische Führung und Modellierung bietet und gleichzeitig die Entwickler von spezifischen Handlungen befreit, die nur zu der Problemdomäne passen.
  • Viele Arten von Rahmenwerken sind verfügbar, abhängig von dem Level des Systems, das involviert ist und der Art des Problems, das gelöst werden soll. Die Rahmenwerksarten reichen von Rahmenwerken einer hohen Ebene, die Unterstützung hinten beim Entwickeln einer Benutzerschnittstelle, zu Rahmenwerken einer niedrigen Ebene, die grundlegende Systemsoftwaredienste, wie z.B. Kommunikation, Drucken, Dateisystemunterstützung, Graphik etc. zur Verfügung stellen. Kommerzielle Beispiele von anwendungsartigen Rahmenwerken umfassen MacApp (Apple), Bedrock (Symantec), OWL (Borland), NeXT Step App Kit (NeXT) und Smalltalk-80 MVC (ParcPlace).
  • Während der Rahmenwerksansatz alle Prinzipien von Kapselung, Polymorphismus und Vererbung in der Objektschicht verwendet und eine beträchtliche Verbesserung gegenüber anderen Programmiertechniken ist, gibt es Schwierigkeiten, die auftreten. Diese Schwierigkeiten werden durch die Tatsache verursacht, dass es für Entwickler einfach ist, ihre eigenen Objekte wieder zu verwenden, aber es schwierig für die Entwickler ist, Objekte zu verwenden, die von anderen Programmen erzeugt wurden. Ferner bestehen Rahmenwerke im allgemeinen aus einer oder mehreren "Objektschichten" an der Spitze eines monolithischen Betriebsystems und selbst mit der Flexibilität der Objektschicht ist es immer noch oft notwendig, mit den darunterliegenden Systemen mittels umständlicher Prozeduraufrufe direkt zu interagieren.
  • Auf gleiche Weise wie ein Rahmenwerk dem Entwickler eine vorgefertigte Funktionalität für ein Dokument zur Verfügung stellt, kann ein Systemrahmenwerk, wie das, das in der bevorzugten Ausführungsform umfasst ist, eine vorgefertigte Funktionalität für Systemleveldienste bieten, die Entwickler modifizieren oder überschreiben können, um kundenspezifische Lösungen zu erzeugen und dabei die umständlichen Prozeduraufrufe zu ver meiden, die bei Rahmenwerken aus dem Stand der Technik notwendig sind. Man betrachte z.B. ein kundenanpassbares Netzwerkschnittstellenrahmenwerk, das die Grundlage für das Aufstöbern und den Zugriff auf Information über ein Computernetzwerk bieten kann. Ein Softwareentwickler, der diese Fähigkeiten benötigte, müsste gewöhnlich spezifische Routinen schreiben, um sie bereitzustellen. Um dies mit einem Rahmenwerk zu machen, braucht der Entwickler nur die Besonderheit und das Verhalten der fertigen Ausgabe zur Verfügung zu stellen, während das Rahmenwerk die eigentlichen Routinen, die die Aufgaben durchführen, bereitstellt.
  • Eine bevorzugte Ausführungsform übernimmt das Konzept von Rahmenwerken und wendet es über das gesamte System hinweg einschließlich des Dokuments, der Komponente, Komponentenschicht und des Betriebssystems an. Für den gewerblichen oder unternehmerischen Entwickler, Systemintegrator oder OEM bedeutet dies, dass die gesamten Vorteile, die für ein Rahmenwerk veranschaulicht wurden, wie z.B. MacApp nicht nur auf der Anwendungsstufe für Dinge, wie Text und graphische Benutzerschnittstellen, wirksam eingesetzt werden können, sondern auch auf der Systemstufe für solche Dienste, wie Drucken, Graphik, Multimedia, Dateisysteme und, wie hierin beschrieben, netzwerkspezifische Operationen.
  • Wieder unter Bezugnahme auf 6 sind das Fensterobjekt 630 und das graphische Schnittstellenobjekt 650 Elemente einer graphischen Schnittstelle eines Netzwerkkomponentensystems, das ein kundenanpassbares Rahmenwerk, zum erheblichen Verbessern der Möglichkeit eines Benutzers, durch Information zu navigieren oder zu browsen, die auf an das Netzwerk angeschlossenen Servern gespeichert ist. Außerdem bietet das neue Netzwerksystem eine Plattform zum Entwickeln von Netzwerknavigationskomponenten für den Betrieb auf zahlreichen Hardware- und Softwarecomputersystemen.
  • Wie erwähnt, sind die Netzwerkkomponenten vorzugsweise als Objekte implementiert, und eine Kommunikation unter den Netzwerkkomponentenobjekten wird durch neue Anwendungsprogrammier schnittstellen (APIs) durchgeführt. Diese APIs werden vorzugsweise in der Form von Objekten in einer Klassenhierarchie geliefert, die erweiterbar ist, so dass Entwickler neue Komponenten und Editoren erzeugen können. Aus einer Implementierungssichtweise können die Objekte in Unterklassen eingeteilt werden und können aus Basisklassen erben, um kundenangepasste Komponenten zu bauen, die es Kunden erlauben, unterschiedliche Arten von Daten unter Verwendung unterschiedlicher Arten von Protokollen zu sehen, oder um Komponenten zu erzeugen, die anders als existierende Komponenten funktionieren.
  • Gemäß der Erfindung hat das kundenangepasste Netzwerk eine Menge untereinander verbundener abstrakter Klassen, um netzwerkorientierte Objekte zu definieren, die verwendet werden, um diese kundenangepassten Netzwerkkomponenten zu bauen. Diese abstrakten Klassen umfassen CyberItem, CyberStream und CyberExtension und die Objekte, die sie definieren, werden verwendet, um die neuen Netzwerkkomponenten zu bauen. Interaktionen unter diesen letzteren Komponenten und existierenden Komponenten der darunterliegenden Softwarearchitektur bieten die Basis für die Erweiterbarkeits- und Ersetzbarkeitsmerkmale des Netzwerkkomponentensystems. Um weiter diese Operationen dieser Netzwerkkomponentenobjekte zu verstehen, kann es hilfreich sein, ihre Konstruktion zusammen mit den Hauptfunktionsroutinen zu untersuchen, die das Verhalten der Objekte umfassen. Wenn man diese Objekte untersucht, ist es auch hilfreich, die Klassen zu untersuchen, die verwendet werden, um die Objekte zu konstruieren (wie vorher erwähnt, dienen die Klassen als Vorlagen für die Konstruktion von Objekten). Deshalb kann die Beziehung der Klassen und Funktionen, die den Klassen innewohnen, verwendet werden, um das Verhalten eines Objekts vorherzusagen, wenn es erst konstruiert ist.
  • 7 veranschaulicht ein vereinfachtes Klassenhierarchiediagramm 700 der Basisklasse CyberItem 702, das verwendet wird, um das Netzwerkkomponentenobjekt 602 zu konstruieren. Im allgemeinen ist CyberItem eine Abstraktion, die Ressourcen darstellen kann, die an einem beliebigen Ort, der von dem Client 200 aus zugänglich ist, vorhanden sind. Jedoch ist gemäß dem veranschaulichenden Ausführungsbeispiel ein CyberItem vorzugsweise ein kleines in sich geschlossenes Objekt, das eine Ressource, wie z.B. einen Dienst, der auf dem Internet verfügbar ist, repräsentiert, und Unterklassen der CyberItem-Basisklasse werden verwendet, um verschiedenartige Netzwerkkomponentenobjekte zu konstruieren, die konfiguriert sind, um solche Dienste für das neue netzwerkorientierte Komponentensystem zur Verfügung zu stellen.
  • Zum Beispiel kann die Klasse GopherItem 704 verwendet werden, um ein Netzwerkkomponentenobjekt zu konstruieren, das ein "Ding im Gopherraum" repräsentiert, wie z.B. ein Gopherverzeichnis, während die Unterklasse WebItem 706 von CyberItem abgeleitet ist und ein Netzwerkkomponentenobjekt kapselt, das ein "Ding im Webspace", z.B. eine Webseite repräsentiert. Auf ähnliche Weise kann die Unterklasse NewsGroupItem 708 verwendet werden, um ein Netzwerkobjekt zu konstruieren, das eine Newsgroup repräsentiert und die Klasse Article 710 ist konstruiert, um ein Netzwerkkomponentenobjekt zu kapseln, das eine Artikelressource auf einem Internetserver repräsentiert.
  • Da alle Klassen, die verwendet werden, um diese Netzwerkkomponentenobjekte zu konstruieren, Unterklassen der CyberItem-Basisklasse sind, erbt jede Klasse die funktionalen Operatoren und Methoden, die von dieser Basisklasse verfügbar sind. Zum Beispiel werden Methoden, die mit der CyberItem-Basisklasse assoziiert sind, um eine Iconfamilie und einen Namen zurückzugeben, von den Unterklassen übernommen, um den Netzwerkkomponenten zu erlauben, CyberItemobjekte auf eine konsistente Art und Weise anzuzeigen. Die Methoden, die mit der CyberItem-Basisklasse assoziiert sind, umfassen (die Argumente wurden aus Gründen der Einfachheit weggelassen):
    Figure 00270001
    Figure 00280001
  • In einigen Beispielen kann es für ein CyberItemobjekt erforderlich sein, ein CyberStreamobjekt hervorzubringen, um die eigentlichen Daten für das Objekt, das es repräsentiert, zu erhalten. 8 veranschaulicht ein vereinfachtes Klassenhierarchiediagramm 800 der Basisklasse CyberStream 802. Wie erwähnt, ist CyberStream eine Abstraktion, die als eine API dient, zwischen einer Komponente, die konfiguriert ist, um ein spezielles Datenformat anzuzeigen und der Methode zum Erhalt der tatsächlichen Daten. Dies erlaubt Entwicklern Ansichtseditoren zu entwerfen, die den Inhalt der Daten anzeigen können, ungeachtet des Protokolls, das benötigt wird, um die Daten zu erhalten.
  • Zum Beispiel kann ein Entwickler einen Bildansichtseditor entwerfen, der die CyberStream-API verwendet, um Datenbytes zu erhalten, die ein Bild beschreiben. Die eigentlichen Datenbytes werden von einer Unterklasse von CyberStream erhalten, die konfiguriert ist, um ein Komponentenobjekt zu konstruieren, das ein spezielles Protokoll implementiert, wie z.B. Gopher und HTTP. Das heißt, das CyberStreamobjekt umfasst die Softwarebefehle, die nötig sind, um einen "Datenstrom" zum Transferieren von Information von einem Objekt zu einem anderen zu schaffen. Entsprechend der Erfindung ist eine GopherStream-Unterklasse 804 von der CyberStream-Basisklasse abgeleitet und kapselt ein Netzwerkobjekt, das das Gopherprotokoll implementiert, während die Klasse WebStream 806 verwendet werden kann, um eine Netzwerkkomponente zu konstruieren, die konfiguriert ist, um gemäß dem HTTP-Protokoll zu operieren.
  • Die Methoden, die mit der CyberStreamklasse assoziiert sind, und die in den Objekten enthalten sind, die aus den Unterklassen konstruiert wurden, umfassen (die Argumente wurden aus Gründen der Einfachheit weggelassen):
    Figure 00290001
  • 9 ist ein vereinfachtes Klassenhierarchiediagramm der Basisklasse CyberExtension 902, die zusätzliche Verhaltensweisen repräsentiert, die Komponenten der darunterliegenden Softwarekomponentenarchitektur zur Verfügung gestellt werden. Insbesondere sind CyberExtensions die Mechanismen zum Hinzufügen von Funktionalität zu bestehenden Netzwerkkomponenten und zum Erweitern der APIs bestehender Netzwerkkomponenten, so dass sie mit den neuen Netzwerkkomponenten kommunizieren können. Als Ergebnis operiert die CyberExtension-Basisklasse 902 in Verbindung mit einer Komponentenbasisklasse 906 durch ihre entsprechenden Unterklassen BaseExtension 904 und BaseComponent 908.
  • Die CyberExtension-Basisklasse bietet eine API für den Zugriff auf andere netzwerkspezifische Komponenten, wie z.B. Notebooks und Protokolle, und für die Unterstützung der Elemente von graphischen Benutzerschnittstellen, wie z.B. Menüs. CyberExtensionsobjekte werden von Komponenten verwendet, die die Inhalte von CyberItemobjekten anzeigen. Dies umfasst browser ähnliche Komponenten, wie z.B. einen Gopherbrowser oder Webbrowser, sowie JPEG-spezifische Komponenten, die spezielle Datentypen, wie z.B. Bilder, anzeigen. Die CyberExtensionsobjekte beobachten auch die CyberItemobjekte, für deren Anzeige diese Komponenten verantwortlich sind.
  • Gemäß der Erfindung kann die Klasse GopherBrowser 910 verwendet werden, um eine gopherähnliche Netzwerkbrowsingkomponente zu konstruieren, und die Klasse Webbrowser 912 kann verwendet werden, um eine webähnliche Netzwerkbrowsingkomponente zu konstruieren. Gleichermaßen kann eine Textviewer-Unterklasse 918 eine Netzwerkkomponente kapseln, die konfiguriert ist, um Text anzuzeigen, und eine PictureViewer-Unterklasse 920 kann eine Komponente konstruieren, um Bilder anzuzeigen. Die Methoden, die mit der CyberExtensionklasse assoziiert sind, umfassen (die Argumente wurden aus Gründen der Einfachheit weggelassen):
    Figure 00300001
    Figure 00310001
  • Zusammenfassend umfasst das neue hierin beschriebene Netzwerksystem das wesentliche eines "komponentenbasierten" Ansatzes zum Durchstöbern und Wiederauffinden von netzwerkorientierter Information im Gegensatz zum monolithischen anwendungsorientierten Ansatz früherer Browsersysteme. Die Vorteile eines solchen komponentenbasierten Systems umfassen die Fähigkeit, Komponenten wegen der kooperierenden Beziehung zwischen dem neuen netzwerkorientierten Komponentensystem und der darunterliegenden Komponentenarchitektur leicht zu ersetzen und zu erweitern. Diese Beziehung erleichtert auch die "nahtlose" Integration und Kooperation zwischen Komponenten und Komponentenansichtseditoren, wenn sie mit sich unterscheidenden Datentypen und -formaten konfrontiert sind.
  • Während ein veranschaulichendes Ausführungsbeispiel zum Implementieren eines erweiterbaren und austauschbaren Netzwerkkomponentensystems gezeigt und beschrieben wurde, versteht sich, dass verschiedene andere Anpassungen und Veränderungen im Rahmen der Erfindung gemacht werden können. Zum Beispiel können zusätzliche Systemsoftwareroutinen verwendet werden, wenn man die Erfindung in verschiedenen Anwendungen implementiert. Diese zusätzlichen Systemroutinen umfassen Dynamic Link Libraries (DLL) , was Programmdateien sind, die Sammlungen von Fensterumgebung und Netzwerkfunktionen enthalten, die entworfen wurden, um spezifische Klassen von Operationen durchzuführen. Diese Funktionen werden bei Bedarf von der Softwarekomponentenschicht aufgerufen, um die gewünschten Operationen durchzuführen. Insbesondere können DLLs, die im allgemeinen gut bekannt sind, verwendet werden, um mit der Komponentenschicht und dem Fens termanager zu interagieren, um netzwerkspezifische Komponenten und Funktionen bereitzustellen.
  • Die vorangehende Beschreibung war auf spezifische Ausführungsformen dieser Erfindung gerichtet. Es ist jedoch offensichtlich, dass andere Variationen und Modifikationen bzgl. der beschriebenen Ausführungsformen mit der Erreichung einiger oder aller ihrer Vorteile gemacht werden können. Deshalb ist es das Ziel der angefügten Ansprüche, alle solche Variationen und Modifikationen abzudecken, wie sie in den Schutzbereich der Erfindung fallen.

Claims (13)

  1. Computerimplementiertes Verfahren zum Ankoppeln an ein Netzwerk, wobei der Computer ein Betriebssystem (420) aufweist zum Steuern der Operationen des Computers und einer darauf befindlichen erweiterbaren und austauschbaren Berechnungsanordnung geschichteter Komponenten, wobei die Berechnungsanordnung geschichteter Komponenten eine Softwarekomponentenarchitekturschicht (430) umfasst, die eine Vielzahl von Berechnungskomponenten (460) definiert und an das Betriebssystem und eine Netzwerkkomponentenschicht (450) angeschlossen ist, die an die Softwarekomponentenarchitekturschicht (430) angeschlossen ist, dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Instantiieren eines oder mehrerer CyberItem-Objekte aus einer ersten objektorientierten Programmierklasse OOP CyberItem (702), die durch die Netzwerkkomponentenschicht definiert ist, wobei jedes der instantiierten CyberItem-Objekte eine entsprechende Ressource auf dem Netzwerk repräsentiert, die nicht von einem einzelnen Netzwerkort abhängig ist, und Erzeugen, auf der Softwarekomponentenarchitekturschicht, eines oder mehrerer Verbunddokumente, die die instantiierten CyberItem-Objekte umfassen.
  2. Verfahren nach Anspruch 1, welches ferner den Schritt des Instantiierens eines oder mehrerer CyberStream-Objekte aus einer zweiten OOP Klasse CyberStream (802) umfasst, die durch die Netzwerkkomponentenschicht definiert ist, wobei jedes der instantiierten CyberStream-Objekte einen Datenstrom zum Obertragen von Information repräsentiert.
  3. Computersystem nach Anspruch 2, bei welchem die instantiierten CyberStream-Objekte im Verbunddokument enthalten sind, das von der Softwarekomponentenarchitekturschicht erzeugt wurde.
  4. Verfahren nach Anspruch 3, welches ferner den Schritt des Erhaltens von Information, mittels eines gegebenen CyberStream-Objekts, von der Netzwerkressource umfaßt, die durch ein entsprechendes CyberItem repräsentiert ist.
  5. Verfahren nach Anspruch 2, welches ferner den Schritt des Instantiierens eines oder mehrerer CyberExtension-Objekte aus einer dritten OOP Klasse CyberExtension (902) umfasst, die durch die Netzwerkkomponentenschicht definiert ist, wobei jedes CyberExtension-Objekt zusätzliche Verhaltensweisen bereitstellt, um die Netzwerkressource, die mit einem gegebenen CyberItem-Objekt assoziiert ist, mit der Softwarekomponentenarchitekturschicht zu integrieren.
  6. Erweiterbare und austauschbare Berechnungsanordnung geschichteter Komponenten zum Bereitstellen von Diensten, die auf einem Computernetzwerk verfügbarer Information gerichtet sind, wobei die Berechnungsanordnung einen Prozessor (210), ein Betriebssystem (420) zum Steuern der Operationen des Prozessors und eine Softwarekomponentenarchitekturschicht (430) aufweist, die entsprechend den Prinzipien objektorientierter Programmierung, OOP, konfiguriert ist, wobei die Softwarekomponentenarchitekturschicht an das Betriebssystem angeschlossen ist und konfiguriert ist, um eine Vielzahl von Berechnungskomponenten (460) zu definieren und um ein Verbunddokument zu erzeugen, welches die Vielzahl von Berechnungskomponenten enthält, wobei die Berechnungsanordnung weiterhin umfasst: eine Netzwerkkomponentenschicht (450), die an die Softwarekomponentenarchitekturschicht durch eine Anwendungsprogrammierschnittstelle angeschlossen ist; wobei die Anwendungsprogrammierschnittstelle Mittel zum Instantiieren eines oder mehrerer CyberItem-Objekte aus einer CyberItem-Klassendefinition innerhalb der Netzwerkkomponentenschicht umfasst, wobei jedes der instantiierten CyberItem-Objekte eine Ressource repräsentiert, die auf dem Computernetzwerk verfügbar und in einem Verbunddokument enthalten ist.
  7. Berechnungsanordnung nach Anspruch 6, wobei die Netzwerkkomponentenschicht und die Softwarekomponentenarchitekturschicht eingerichtet sind, miteinander zu kooperieren, um Kom ponenten einzubetten, die gemischte Datentypen und -formate im Verbunddokument haben.
  8. Berechnungsanordnung nach Anspruch 6, wobei die Anwendungsprogrammierschnittstelle ferner Mittel umfasst, um ein oder mehrere CyberStream-Objekte aus einer CyberStream-Klassendefinition innerhalb der Netzwerkkomponentenschicht zu instantiieren, wobei jedes der instantiierten CyberStream-Objekte einen Datenstrom zum Übertragen von Information repräsentiert.
  9. Berechnungsanordnung nach Anspruch 7, wobei die Anwendungsprogrammierschnittstelle ferner Mittel umfasst, um ein oder mehrere CyberExtension-Objekte aus einer CyberExtension-Klassendefinition innerhalb der Netzwerkkomponentenschicht zu instantiieren, wobei jedes CyberExtension-Objekt zusätzliche Funktionalität zu einer Komponente bereitstellt, die im Verbunddokument enthalten ist.
  10. Berechnungsanordnung nach Anspruch 9, wobei die Komponenten, die im Verbunddokument enthalten sind, einen Ansichtseditor und Dateninhalt aufweisen.
  11. Berechnungsanordnung nach Anspruch 6, wobei die instantiierten CyberItem-Objekte funktionieren, entweder Dateien über die Netzwerke zu übertragen oder sich entfernt auf andere an das Netzwerk angeschlossene Computer einzuloggen, oder Bilder auf einem Bildschirm der Berechnungsanordnung zu betrachten.
  12. Berechnungsanordnung nach Anspruch 9, wobei die Netzwerkkomponentenschicht angepaßt ist, um eine oder mehrere Browsingkomponenten zu konstruieren.
  13. Berechnungsanordnung nach Anspruch 9, wobei die Netzwerkkomponentenschicht angepaßt ist, um Komponenten für entweder das Anzeigen von Text oder das Anzeigen von Filmen auf einem Bildschirm der Berechnungsanordnung zu konstruieren.
DE69635337T 1995-05-05 1996-04-02 Erweiterbares und austauschbares system von netzwerkkomponenten Expired - Lifetime DE69635337T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/435,377 US6212575B1 (en) 1995-05-05 1995-05-05 Extensible, replaceable network component system
US435377 1995-05-05
PCT/US1996/004556 WO1996035285A1 (en) 1995-05-05 1996-04-02 Extensible, replaceable network component system

Publications (2)

Publication Number Publication Date
DE69635337D1 DE69635337D1 (de) 2005-12-01
DE69635337T2 true DE69635337T2 (de) 2006-07-27

Family

ID=23728138

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69635337T Expired - Lifetime DE69635337T2 (de) 1995-05-05 1996-04-02 Erweiterbares und austauschbares system von netzwerkkomponenten

Country Status (5)

Country Link
US (3) US6212575B1 (de)
EP (1) EP0777943B1 (de)
AU (1) AU5384196A (de)
DE (1) DE69635337T2 (de)
WO (1) WO1996035285A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222005A (zh) * 2011-07-12 2011-10-19 铜陵玉成软件科技有限责任公司 面向业务模型的软件运行平台及其运行方式

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
EP0825506B1 (de) * 1996-08-20 2013-03-06 Invensys Systems, Inc. Verfahren und Gerät zur Fernprozesssteuerung
US6230193B1 (en) * 1996-10-31 2001-05-08 3Com Corporation Method and apparatus supporting network communications
US5907843A (en) * 1997-02-27 1999-05-25 Apple Computer, Inc. Replaceable and extensible navigator component of a network component system
US5864850A (en) * 1997-02-27 1999-01-26 Apple Computer, Inc. Asynchronous-event opening component of a network component system
FR2765363B1 (fr) * 1997-06-30 2000-02-18 Actikey Procede et systeme de controle de l'utilisation d'un logiciel
US6598093B1 (en) * 1998-05-14 2003-07-22 Sun Microsystems, Inc. Method and apparatus for a core application programming interface
US6604150B1 (en) * 1999-02-06 2003-08-05 International Business Machines Corporation Integration of GUI application with external application extensions
WO2000070417A1 (en) * 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
US7089530B1 (en) * 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6658018B1 (en) * 1999-06-30 2003-12-02 Intel Corporation Method and system of providing advanced teaming functionality capable of utilizing heterogeneous adapters to improve utility and performance
US20030093581A1 (en) * 2001-11-09 2003-05-15 Adc Dsl Systems, Inc. Telecommunications system architecture
US20030184581A1 (en) * 2002-04-02 2003-10-02 Bawa Satvinder Singh Application level integration in support of a distributed network management and service provisioning solution
US6938239B2 (en) * 2002-04-18 2005-08-30 Wind River Systems, Inc. Automatic gopher program generator
US20040090613A1 (en) * 2002-07-17 2004-05-13 Goix Philippe J. Method for measuring the volume of cells or particles
US7237225B2 (en) * 2002-08-29 2007-06-26 Sap Aktiengesellschaft Rapid application integration using reusable patterns
US7257818B2 (en) * 2002-08-29 2007-08-14 Sap Aktiengesellschaft Rapid application integration using functional atoms
US7225425B2 (en) * 2002-08-29 2007-05-29 Sap Aktiengesellschaft Rapid application integration
US7213227B2 (en) * 2002-08-29 2007-05-01 Sap Aktiengesellschaft Rapid application integration using an integrated development environment
JP2006505973A (ja) 2002-11-07 2006-02-16 フラクタス・ソシエダッド・アノニマ 微小アンテナを含む集積回路パッケージ
US20040225657A1 (en) * 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
US7478141B2 (en) * 2003-06-26 2009-01-13 Intel Corporation Accessing firmware of a remote computer system using a remote firmware interface
US7779430B2 (en) * 2004-12-15 2010-08-17 International Business Machines Corporation Method, system, and article of manufacture for providing service components
US7739656B2 (en) * 2004-12-15 2010-06-15 International Business Machines Corporation Generating asynchronous interfaces and methods from synchronous interfaces and methods
US20060129560A1 (en) * 2004-12-15 2006-06-15 Adams Greg D Architecture for enabling business components to access middleware application programming interfaces (APIs) in a runtime environment
US20060242640A1 (en) * 2005-04-22 2006-10-26 Heinz Pauly System and method for business software integration
US8108851B2 (en) * 2006-01-30 2012-01-31 International Business Machines Corporation External registration for function configuration within a client platform application
US8370372B2 (en) * 2007-11-05 2013-02-05 Jones Scott A Method and system of promoting human-assisted search
RU2495476C2 (ru) 2008-06-20 2013-10-10 Инвенсис Системз, Инк. Системы и способы для иммерсивного взаимодействия с действительными и/или имитируемыми техническими средствами для управления технологическим процессом, контроля состояния окружающей среды и производственного контроля
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US20120030577A1 (en) * 2010-07-30 2012-02-02 International Business Machines Corporation System and method for data-driven web page navigation control
US8886703B2 (en) 2012-06-12 2014-11-11 Dell Products, L.P. Advertising and facilitating management access to added capabilities of intelligent devices in a system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2242293A (en) 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
DE69032348T2 (de) * 1990-07-31 1998-09-24 Hewlett Packard Co Objektbasiertes System
US5297249A (en) * 1990-10-31 1994-03-22 International Business Machines Corporation Hypermedia link marker abstract and search services
US5339430A (en) 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
WO1994014115A2 (en) * 1992-12-01 1994-06-23 Microsoft Corporation A method and system for in-place interaction with embedded objects
WO1994027228A1 (en) * 1993-05-10 1994-11-24 Apple Computer, Inc. System for automatically determining the status of contents added to a document
WO1994029803A1 (en) * 1993-06-03 1994-12-22 Taligent, Inc. Place object system
CA2124379C (en) 1993-06-25 1998-10-27 Thomas F. La Porta Distributed processing architecture for control of broadband and narrowband communications networks
US5481666A (en) * 1993-08-25 1996-01-02 Taligent, Inc. Object-oriented navigation system
US5548722A (en) * 1993-10-14 1996-08-20 Apple Computer, Inc. User-centric system for choosing networked services
US5537526A (en) * 1993-11-12 1996-07-16 Taugent, Inc. Method and apparatus for processing a display document utilizing a system level document framework
US5499343A (en) * 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
US5530852A (en) * 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222005A (zh) * 2011-07-12 2011-10-19 铜陵玉成软件科技有限责任公司 面向业务模型的软件运行平台及其运行方式

Also Published As

Publication number Publication date
USRE39486E1 (en) 2007-02-06
DE69635337D1 (de) 2005-12-01
WO1996035285A1 (en) 1996-11-07
EP0777943B1 (de) 2005-10-26
EP0777943A1 (de) 1997-06-11
USRE43438E1 (en) 2012-05-29
AU5384196A (en) 1996-11-21
US6212575B1 (en) 2001-04-03

Similar Documents

Publication Publication Date Title
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69637436T2 (de) Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen
US5781189A (en) Embedding internet browser/buttons within components of a network component system
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
US6344855B1 (en) Encapsulated network entity reference of a network component system for integrating object oriented software components
DE69734545T2 (de) Verfahren und Vorrichtung zur Verbesserung der Portierbarkeit einer objektorientierten Schnittstelle zwischen verschiedenen Umgebungen
US5724506A (en) Replaceable and extensible connection dialog component of a network component system
US5864850A (en) Asynchronous-event opening component of a network component system
US5729739A (en) Persistent object mapping system and method with abstract schema mapper
US5907843A (en) Replaceable and extensible navigator component of a network component system
AU5184301A (en) Human machine interface
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
JPH10105392A (ja) 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング
Dance et al. The run-time structure of UIMS-supported applications
Fox et al. Overview of grid computing environments
DE60213969T2 (de) Vorrichtung und verfahren für lightweight unterstützung in einer set top box
US8204920B2 (en) Method and system for accessing software-based systems
US6122675A (en) Replaceable and extensible log component of a network component system
Bao et al. A new approach to software tool interoperability
DE69633430T2 (de) Netzwerkkomponentensystem
AU2006201207B2 (en) Human machine interface
JP2007293904A (ja) オブジェクト指向カーソル・ツール
van den Berg Web-based collaborative modelling with SPIFF
Newell et al. Interoperable object models for large scale distributed systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: APPLE INC., CUPERTINO, CALIF., US

8328 Change in the person/name/address of the agent

Representative=s name: DERZEIT KEIN VERTRETER BESTELLT