-
Diese
Erfindung betrifft Techniken zum Kommunizieren zwischen mehreren
Computerprogrammmodulen mit unterschiedlichen Datenkommunikationsprotokollen,
und insbesondere zum Kommunizieren zwischen einem Integrations-
und Prozessausführungs-Computerprogramm
auf Unternehmensebene und mehreren Systemen unter einer Steuerung dieses
Programms.
-
Eines
der Probleme, die es gegenwärtig
in der Computerindustrie gibt, ist das Problem eines Integrierens
ungleichartiger Systeme, einschließlich eines Integrierens älterer Altsysteme
mit neueren Systemen. Dieses Problem ist insbesondere dann vorhanden,
wenn ein Management von Operationen in einem Unternehmen, das verschiedene
Systeme verwendet, nämlich
einige ältere
und einige neuere, die oft von unterschiedlichen Herstellern sind
und dazu entwickelt sind, unter Verwendung unterschiedlicher Protokolle
zu kommunizieren, um diese Operationen durchzuführen.
-
Eine
Technik zum Integrieren älterer
Altsysteme besteht im Bilden von Wrappern, die in Wirklichkeit eine
neue Anwendungsprogrammschnittstelle (API) für die Altsysteme zur Verfügung stellen.
Aber es kann teuer sein, solche Wrapper zu bilden.
-
EP-A-0
463 764 offenbart ein System, bei welchem ein Systemmanager mit
Zielsystemen kommuniziert, ohne mit den unterschiedlichen Protokollen
der unterschiedlichen Zielsysteme vertraut zu sein, indem er eine
allgemeine Schnittstelle verwendet, die mit den Zielsystemen unter
Verwendung eines einzigen Protokolls kommuniziert, das ursprünglich zur
allgemeinen Schnittstelle gehört.
-
Gemäß der vorliegenden
Erfindung werden ein computerimplementiertes Verfahren für eine Unternehmenssteuerungsmaschine,
die zu einem Zielsystem gehörende
Daten und Anweisungen verarbeitet, gemäß Anspruch 1 und ein entsprechendes Computersystem
gemäß Anspruch
11 zur Verfügung gestellt.
-
Ausführungsbeispiele
dieses Aspekts der Erfindung können
eines oder mehrere der folgenden Merkmale enthalten.
-
Die
Verwaltungsmaschine läuft
auf einem Servercomputer und die Schnittstellenschicht läuft auf
einem Client-Computer, der vom Servercomputer entfernt ist, wobei
der Servercomputer und der Client-Computer mit dem Netzwerk verbunden
sind. Das Zielsystem läuft
auf dem entfernten Client-Computer. Die Schnittstellenschicht kann
mit dem Zielsystem gemäß einem
Protokoll kommunizieren. Die Unternehmensverwaltungsmaschine sendet
Daten gemäß einem
zweiten Protokoll zur Schnittstellenschicht, wobei das zweite Protokoll
unterschiedlich vom ersten Protokoll ist.
-
Die
Unternehmensverwaltungsmaschine verarbeitet zu einem zweiten Zielsystem
gehörende Daten
und Anweisungen und erzeugt ein zweites Befehlsdatenpaket, wobei
das zweite Befehlsdatenpaket wenigstens einen zweiten Befehl für das zweite Zielsystem
und die Netzwerkadresse für
eine Schnittstellenschicht zum Kommunizieren des Befehls zum zweiten
Zielsystem enthält.
Die Schnittstellenschicht kann mit dem zweiten Zielsystem gemäß einem
zweiten Protokoll kommunizieren. Das zweite Protokoll ist unterschiedlich
vom zuerst genannten Protokoll. Die Unternehmensverwaltungsmaschine
sendet Daten gemäß einem
dritten Protokoll zur Schnittstellenschicht, wobei das dritte Protokoll
unterschiedlich vom ersten und vom zweiten Protokoll ist.
-
Die
Schnittstellenschicht enthält
einen Zielsystem-Handhaber zum Kommunizieren mit dem zuerst genannten
Zielsystem gemäß dem zuerst
genannten Protokoll, wobei das zuerst genannte Datenpaket einen
Zielsystem-Handhaberidentifizierer zum Identifizieren des Zielsystem-Handhabers
enthält. Der
Zielsystem-Handhaber ist verbunden mit dem zuerst genannten Protokoll
und der Zielsystem-Handhaberidentifizierer
identifiziert das zuerst genannte Protokoll. Der Zielsystem-Handhaber kann mit
wenigstens einem anderen Zielsystem gemäß einem dritten Protokoll kommunizieren.
Die Schnittstellenschicht enthält
einen zweiten Zielsystem-Handhaber zum Kommunizieren mit dem zweiten
Zielsystem gemäß dem zweiten
Protokoll, wobei das zweite Datenpaket einen zweiten Zielsystem-Handhaberidentifizierer
zum Identifizieren des zweiten Zielsystem-Handhabers enthält. Der
Zielsystem-Handhaber ist ein auf Java basierendes Computerprogrammmodul.
-
Eine
Eingabe entsprechend dem Befehl wird von einem Anwender empfangen,
wobei die Eingabe ein zweiter Befehl ist, der unterschiedlich vom
zuerst genannten ist. Dann wird auf eine Datenbank, die eine Beziehung
zwischen dem zweiten Befehlsoperator und dem ersten Befehlsoperator
speichert, zugegriffen. Der zweite Befehl ist ein Teil eines Skript-Programms,
wobei auf die Datenbank dann zugegriffen wird, wenn das Skript-Programm
kompiliert wird. Das Zielsystem kann Daten zur Schnittstellenschicht
senden, die Schnittstellenschicht verarbeitet die Daten und sendet
die verarbeiteten Daten zur Unternehmensverwaltungsmaschine.
-
Gemäß einem
weiteren allgemeinen Aspekt hat die Erfindung die Merkmale, dass
eine Schnittstellenschicht von einem Netzwerk ein durch eine Unternehmensverwaltungsmaschine
erzeugtes Befehlsdatenpaket empfängt,
die zu einem Zielsystem gehörende
Daten und Anweisungen verarbeitet und das Befehlsdatenpaket erzeugt,
wobei das Befehlsdatenpaket wenigstens einen Befehl für das Zielsystem
und eine Netzwerkadresse für
die Schnittstellenschicht zum Kommunizieren des Befehls zum Zielsystem
enthält;
und dass die Schnittstellenschicht den Befehl zum System kommuniziert.
-
Gemäß einem
weiteren Aspekt hat die Erfindung die Merkmale, dass ein Eingangsport
von einem Netzwerk ein durch eine Unternehmensverwaltungsmaschine
erzeugtes Befehlsdatenpaket empfängt,
die zu einem Zielsystem gehörende
Daten und Anweisungen verarbeitet und das Befehlsdatenpaket erzeugt,
wobei das Befehlsdatenpaket wenigstens einen Befehl für das Zielsystem
und eine Netzwerkadresse für
die Schnittstellenschicht zum Kommunizieren des Befehls zum Zielsystem
enthält;
und dass ein Ausgangsport den Befehl zum System kommuniziert.
-
Gemäß einem
weiteren allgemeinen Aspekt hat die Erfindung die Merkmale eines
Verarbeitens von zu einem Zielsystem gehörenden Daten und Anweisungen
und eines Erzeugens eines Befehlsdatenpakets, wobei das Befehlsdatenpaket
wenigstens einen Befehl für
das Zielsystem und eine Netzwerkadresse für eine Schnittstellenschicht
zum Kommunizieren des Befehls zum Zielsystem enthält; eines Veranlassens,
dass das Befehlsdatenpaket basierend auf der Netzwerkadresse im
Befehlsdatenpaket über
ein Netzwerk zur Schnittstellenschicht transferiert wird, wobei
die Schnittstellenschicht den Befehl zum Zielsystem kommuniziert.
-
Gemäß einem
weiteren Aspekt hat die Erfindung die Merkmale eines Ausführens eines
ersten Skript-Programms; eines Ausführens eines zweiten Skript-Programms
im Wesentlichen parallel zum ersten Skript-Programm; und eines Lieferns
von Daten zum ersten Skript-Programm in Reaktion auf einen Befehl
vom ersten Skript- Programm,
wobei die Daten den Ausführungszustand
des zweiten Skript-Programms
anzeigen.
-
Gemäß einem
weiteren Aspekt hat die Erfindung die Merkmale eines Ausführens eines
Computerprogramms in Echtzeit, wobei das Computerprogramm eine Ablauffolge
von Anweisungen aufweist und Daten zu einem Anwender in Echtzeit
und im Wesentlichen parallel zur Echtzeitausführung des ersten Programms
liefert, wobei die Daten einen Zustand einer Ausführung des
Computerprogramms und eine Anzeige diesbezüglich, welche der Anweisungen
gerade ausgeführt
wird, anzeigt. Das Computerprogramm kann ein auf einem Skript basierendes
Computerprogramm sein.
-
Gemäß einem
weiteren Aspekt hat die Erfindung die Merkmale, dass eine Schnittstellenschicht Daten
von einem Zielsystem gemäß einem
ersten Protokoll empfängt
und die Daten gemäß einem zweiten
Protokoll zu einer Unternehmensverwaltungsmaschine sendet, wobei
das zweite Protokoll unterschiedlich vom ersten Protokoll ist, und
dass die Unternehmensverwaltungsmaschine die Daten verarbeitet.
-
Weiter
Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten
Beschreibung und aus den Ansprüchen
offensichtlich werden.
-
Solange
es nicht anders definiert ist, haben alle technischen und wissenschaftlichen
Ausdrücke, die
hierin verwendet werden, dieselbe Bedeutung, wie sie gemeinhin von
einem Fachmann auf dem Gebiet verstanden wird, zu welchem diese
Erfindung gehört.
Geeignete Verfahren und Materialien und Komponenten, die bei der
Ausführung
oder beim Testen der vorliegenden Erfindung zu verwenden sind, werden
nachfolgend beschrieben, obwohl auch Verfahren und Materialien,
die gleich oder äquivalent
zu denjenigen sind, die hierin beschrieben sind, verwendet werden
können.
Zusätzlich
sind die Materialien, Verfahren und Beispiele nur illustrativ und
sollen nicht beschränkend
sein.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 und 1A-E
sind schematische Gesamtdiagramme eines Integrations- und Prozessausführungssystems
auf Unternehmensebene, das ein Integrations- und Prozessausführungs-Computerprogramm
auf Unter nehmensebene und mehrere durch das Programm gesteuerte
Zielsysteme enthält.
-
1F ist
ein schematisches Diagramm von Abstraktionsebenen eines Computerprogramms,
mit welchem ein Integrations- und Prozessausführungs-Computerprogramm auf
Unternehmensebene kommuniziert.
-
2 ist
ein schematisches Diagramm des Integrations- und Prozessausführungs-Systems
auf Unternehmensebene der 1.
-
3A-B
sind Darstellungen von Befehls- und Datenobjekt-Tabellen, die in
einer Datenbank des Integrations- und Prozessausführungssystems auf
Unternehmensebene der 1 gespeichert sind.
-
4 ist
ein schematisches Diagramm einer Architektur eines Skript-Programms, das durch
die Integrations- und Prozessausführungsmaschine auf Unternehmensebene
ausgeführt
wird.
-
4A ist
eine Darstellung einer grafischen Anwenderschnittstelle zum Eingeben
eines Skript-Programms.
-
4B ist
ein Beispiel eines Skript-Programms.
-
5 ist
ein schematisches Diagramm einer Beziehung zwischen der Integrations-
und Prozessausführungsmaschine
auf Unternehmensebene und einer Ziel-Schnittstellenschicht.
-
6 ist
ein schematisches Diagramm der Beziehung zwischen der Integrations-
und Prozessausführungsmaschine
auf Unternehmensebene und Paketen menschlicher Interaktion.
-
7A und 7B sind
schematische Diagramme von Architekturen zum Verbinden des Integrations-
und Prozessausführungs-Anwendungsprogramms
auf Unternehmensebene mit zwei oder mehreren Ziel-Schnittstellenschichten.
-
8–11 sind
Darstellungen grafischer Anwenderschnittstellen zum Steuern des
Betriebs eines Integrations- und Prozessausführungssystems auf Unternehmensebene
und eines Integrations- und Prozessausführungs-Computerprogramms auf
Unternehmensebene.
-
DETAILLIERTE
BESCHREIBUNG
-
Nimmt
man Bezug auf die 1 und 1A, interagiert
in einem Unternehmenssystem 10 ein Operator 12 mit
einem Systemintegrations- und Prozessausführungs-Computerprogramm auf Unternehmensebene
(EADIPECP) 14, um verschiedene Skripte 17 einzugeben,
um Prozesse auf Unternehmensebene unter Verwendung von mehreren Zielsystemen 24 zu
implementieren, um Daten zu sammeln und die Schritte der Prozesse
durchzuführen.
Das EADIPECP 14 enthält
einen Clientteil 14A, der auf einem Computer 16 läuft, und
einen Serverteil 14B, der auf einem Integrations- und Prozessserver 20 auf
Unternehmensebene läuft.
Der Computer 16 ist über
ein Netzwerk 18 mit dem Server 20 verbunden. Der
Operator 12 schreibt Skripte 17 in einer Anwenderschnittstellen-Skript-Sprache
(hierin nachfolgend "UI-Skript-Sprache"). Der Serverteil 14B kompiliert
die Skripte 17 und führt
sie aus. Wenn er die Skripte 17 ausführt, sendet der Serverteil 14B des EADIPECP 14 Befehle über ein
Netzwerk 22 zu Zielsystemen 24. Jedes der Zielsysteme 24 kann
ein geeignetes Datenkommunikationsprotokoll erfordern, um dann verwendet
zu werden, wenn mit diesem Zielsystem kommuniziert wird. Das erforderte
Datenkommunikationsprotokoll von wenigstens einem der Zielsysteme
kann von dem erforderten Datenkommunikationsprotokoll von wenigstens
einem der anderen Zielsysteme unterschiedlich sein. Somit müssen Befehle
vom Serverteil 14B des EADIPECP 14, die für jedes
Zielsystem 24 beabsichtigt sind, gemäß einem Protokoll übertragen
werden, das für
das bestimmte Zielsystem geeignet ist (und durch dieses erkannt
wird).
-
Jedoch
kommuniziert der Teil 14B die Befehle nicht direkt mit
den Zielsystemen 24. Statt dessen packt der Teil 14B die
Befehle in ein singuläres
Netzwerkpaket zur Übertragung über das
Netzwerk 22 – beispielsweise
ein Paket für
eine Übertragung über einen
Socket für
ein universelles Datagrammprotokoll/Internetprotokoll (UDP/IP) – zu einer
Ziel-Schnittstellenschicht 26. Auf ein Empfangen eines
Befehlsdatenpakets hin bestimmt die Ziel-Schnittstellenschicht 26 basierend
auf der Information im Paket, wie die Kommunikation zum spezifischen
Zielsystem 24 gehandhabt werden sollte, und fährt damit
fort, den Befehl im Paket gemäß den Erforder nissen
des spezifischen Zielsystems 24 zu kommunizieren. Somit
muss der Teil 14B nur gemäß einem Standardprotokoll über das
Netzwerk 22 kommunizieren, während die Ziel-Schnittstellenschicht 26 gemäß den verschiedenen
Protokollen mit den Zielsystemen 24 kommuniziert.
-
In
Abhängigkeit
von der Art der Zielsysteme 24 und der Skripte 17 kann
des Unternehmenssystem 10 eine Vielfalt von Funktionen
durchführen.
Beispiele für
einige Ausführungsbeispiele
des Unternehmenssystems 10 werden nun beschrieben werden. Nimmt
man nun Bezug auf 1B, kann das Unternehmenssystem 10 über eine
Vielfalt von Netzwerken, wie beispielsweise lokale Netzwerke, weiträumige Netzwerke,
ein Intranet, das Internet oder irgendeinen anderen Netzwerktyp,
verteilt sein und einen Betrieb von Systemen über die Netzwerke integrieren
und steuern bzw. verwalten. Nimmt man Bezug auf 1C kann
das Unternehmenssystem 10 ein intelligentes Audio/Video-System – in anderen Worten
ein intelligenter Fernseher – sein,
was zulässt,
dass ein Anwender mit einem Fernsehgerät interagiert, um eine Vielfalt
von Aufgaben durchzuführen,
einschließlich
eines Einkaufens, einer Erledigung von Bankgeschäften, einer Durchführung einer Videokonferenz,
eines Steuerns von Haushaltsgeräten
und eines Anschauens von verschiedenen Programmen auf eine Anforderung
hin. Das EADIPECP 14 lässt
ein Integrieren der verschiedenen Zielsysteme 24 in ein
einziges System 10 auf Unternehmensebene und ein Durchführen von
Prozessen gemäß Skripten 17 zum
Implementieren von verschiedenen Funktionsweisen zu. Beispiele für solche
Skripte sind in den 4A und 4B gezeigt.
-
Nimmt
man Bezug auf 1D, ist ein weiteres Beispiel
eines Ausführungsbeispiels
des Unternehmenssystems 10 ein Telekommunikationsnetzwerk-Überwachungssystem. Das EADIPECP 14 lässt ein
Integrieren verschiedener Systeme 24, einschließlich von
Telekommunikationsroutern, entfernten Workstations, von Email-Servern
und von externen Modems, zu, um eine Leistungsfähigkeit eines Telekommunikationsnetzwerks
eines Telekommunikations-Clients zu überwachen. Wie es gesehen werden
kann, gibt es mehrere Typen von Systemen, die durch das EADIPECP 14 überwacht
werden, wobei jeder Typ typischerweise ein eindeutiges Kommunikationsprotokoll
erfordert.
-
Nimmt
man Bezug auf 1E, ist ein weiteres Beispiel
eines Ausführungsbeispiels
des Unternehmenssystems 10 ein elektronisches Handelssystem,
das Kunden über
das World Wide Web bzw. Internet bedient. Das EADIPECP 14 lässt in diesem System
zu, dass verschiedene Zielsysteme 24 enthalten sind, die
beispielsweise Altsysteme, Callcentersysteme bzw. Anrufzentrumssysteme,
Finanzgeschäftssysteme
(z.B. Kreditberichtssysteme, Kreditkartentransaktionsbewilligungssysteme,
Leasingsysteme, Bankgeschäftesysteme),
Altdatenbanken, Inventarverwaltungs- und -logistiksysteme und die Web-Browser
von Verkäufern
enthalten, um ein vollständiges
elektronisches Handelssystem unter Verwendung einer Skript-Sprache zu implementieren.
-
Wie
es aus den obigen Beispielen von Unternehmenssystemen 10 klar
wird, können
die Systeme 24 eine Vielfalt von Systemen sein, die folgendes
enthalten, aber nicht darauf beschränkt sind:
- • Computersysteme
(z.B. ein Computersystem einer Kreditauskunftsagentur, ein Computersystem eines
Computerherstellers zum Empfangen von Kaufaufträgen für anwenderkonfigurierte Computer,
ein Bankencomputersystem, etc.),
- • Anwendungsprogramme
(z.B. einen Web-Browser, einen Sprache-zu-Text-Generator, eine Datenbank, eine Videobibliothek,
etc.), elektronisch gesteuerte physikalische Vorrichtungen (z.B.
mikroprozessorgesteuerte Pumpen, Router, elektrische Relais, Lokomotiven,
etc.),
- • Menschen,
die mit einem Computer interagieren (einen Techniker vor Ort, der
mit einer in der Hand gehaltenen Vorrichtung interagiert, einen
Kundendienstvertreter, einen Firmenmanager, etc.), oder
- • irgendein
Computerprogramm, das in irgendeiner der acht Abstraktionsebenen
arbeitet, die in 1F gezeigt sind, nämlich einer
Serverschicht, einer Systemmanagementschicht, einer Betriebssystemschicht,
einer Netzwerkschicht, einer Middleware-Schicht, einer Anwendungsentwicklungs-Programmierwerkzeugeschicht,
einer Anwendungsschicht und einer Anwenderschnittstellenschicht.
-
Natürlich ist
diese Liste nicht erschöpfend und
nur illustrativ für
Beispiele der Systeme 24.
-
Wie
es aus den obigen Beispielen des Systems 10 klar wird,
kann das EADIPECP 14 eine Vielfalt von Architekturen haben.
Beispielsweise kann das EADIPECP 14 eine verteilte Architektur
mit einem Serverteil 14B und einem Clientteil 14A haben, die
auf den Server 20 und den Client-Computer 12 verteilt
sind, oder kann das gesamte EADIPECP 14 auf einem Computer
oder zwischen mehr als zwei Computern auf verteilte Weise laufen.
Die Funktionsweise der verschiedenen verteilten Teile des EADIPECP 14 kann
sich bei verschiedenen Ausführungsbeispielen ändern. Beispielsweise
kann bei einem Ausführungsbeispiel
der Clientteil 14A des EADIPECP 14 eine signifikante
Funktionsweise haben, wie beispielsweise eine Verarbeitung von durch
einen Anwender eingegebenen Skripten 17 und ein Kompilieren
von ihnen vor einem Senden der Skripte 17 zum Serverteil 14B des
EADIPECP 14. Bei einem anderen Ausführungsbeispiel kann der Clientteil 14A des
EADIPECP 14 lediglich als Eingangsanschluss mit beschränkter Funktionsweise
agieren, die nur zum Erlangen von Skripten 17 von einem
Bediener 12 und zum Weiterleiten dieser Skripte zum Serverteil 14B zur
Verarbeitung beabsichtigt ist. In der folgenden Beschreibung wird
kein Unterschied zwischen Teilen gemacht werden, die auf dem Computer 16 und
dem Server 20 laufen, solange es nicht spezifisch angegeben
ist. Es sollte beachtet werden, dass das EADIPECP eines oder mehrere
Programme und Programmmodule aufweisen kann, die dann auf einem
einzigen oder auf mehreren Speichermedien gespeichert werden können, gleichgültig ob
auf einem flüchtigen
oder einem nichtflüchtigen
Medium. Somit beabsichtigen wir, dass dann, wenn auf "Computerprogramm,
das auf einem Speichermedium gespeichert ist" Bezug genommen wird, ungeachtet dessen
ein Computerprogramm enthalten ist, ob es eines oder mehrere Programme
und Programmmodule aufweist und/oder ob es auf einem einzelnen oder
auf mehreren flüchtigen
oder nichtflüchtigen Speichermedien
gespeichert ist.
-
Wie
es weiterhin aus den obigen Beispielen gesehen werden kann, können die
Zielsysteme 24, die in einem Ausführungsbeispiel des Unternehmenssystems 10 enthalten
sind, das EADIPECP 14 erfordern, um mehrere Datenkommunikationsprotokolle
zu verwenden, die zum Kommunizieren mit den Zielsystemen 24 zu
verwenden sind. Wenn auf Datenkommunikationsprotokolle Bezug genommen wird,
beziehen wir uns auf Erfordernisse durch jedes Zielsystem 24 zur
Kommunikation mit diesem Zielsystem. Die Systeme können miteinander
entweder über
in 1F gezeigte Abstraktionsschichten oder innerhalb
dieser Schichten kommunizieren. Datenkommunikationsprotokolle enthalten:
Erfordernisse von APIs der Zielsysteme 24; Java-Methoden-Aufrufprotokolle;
Jini-Protokolle; CORBA- Protokolle; COM-Objektschnittstellen;
ODBC/SQL-Datenbankschnittstellenerfordernisse; offene Directoryprotokolle;
Unix-Socket; SNMP; Internetdatenstandards, wie beispielsweise XML
und HTML; serielle Datenkommunikationsprotokolle, wie beispielsweise
RS-232; andere Netzwerkschnittstellenstandards; oder andere zukünftige Schnittstellenabstraktionen
von Schnittstellen, gleichgültig,
ob sie auf hoher Ebene oder niedriger Ebene sind. Protokolle beziehen
sich nicht auf den Inhalt einer Nachricht, sondern auf die Aufgabe
zum Kommunizieren der Nachricht von einer Vorrichtung zu einer anderen.
Stallings definiert in seinem Buch Data and Computer Communications,
2d ed. (1988), bei 10 ein Datenkommunikationsprotokoll, wie es folgt:
Ein
Protokoll wird zur Kommunikation zwischen Einheiten in unterschiedlichen
Systemen verwendet. Die Ausdrücke "Einheit" und "System" werden in einem sehr
allgemeinen Sinn verwendet. Beispiele für Einheiten sind Anwenderanwendungsprogramme,
Dateientransferpakete, Datenbank-Managementsysteme,
Einrichtungen für
elektronische Mails und ein Endgerät. Beispiele für Systeme
sind Computer, Endgeräte
und entfernte Sensoren. Es soll beachtet werden, dass die Einheit
und das System, in welchem sie sitzt, in einigen Fällen koexistent
sind (z.B. Endgeräte).
Im Allgemeinen ist eine Einheit irgendetwas, das Information senden
oder empfangen kann, und ist ein System ein physikalisch unterschiedliches Objekt,
das eine oder mehrere Einheiten enthält. Sollen zwei Einheiten erfolgreich
kommunizieren, müssen
sie "dieselbe Sprache
sprechen". Was kommuniziert
wird, wie es kommuniziert wird und wann es kommuniziert wird muss
mit einigen wechselseitig akzeptierbaren Übereinkommen zwischen den beteiligten
Einheiten übereinstimmen.
Die Übereinkommen
werden Protokoll genannt, welches als eine Gruppe von Regeln definiert
sein kann, die den Austausch von Daten zwischen zwei Einheiten steuern. Die
Schlüsselelemente
eines Protokolls sind: Syntax: enthält solche Dinge wie Datenformat
und Signalpegel; Semantik: enthält
Steuerinformation zur Koordination und Fehlerhandhabung; und Zeitgabe:
enthält eine
Geschwindigkeitsanpassung und eine Ablauffolgesteuerung.
-
Nimmt
man Bezug auf 2, werden nun die Architektur
und der Betrieb des EADIPECP 14 detaillierter beschrieben
werden. Das EADIPECP 14 enthält eine Metaskript-Entwicklungsumgebung 30 und
eine Integrations- und Prozessausführungsmaschine auf Unternehmensebene.
Die Metaskript-Entwicklungsumgebung 30 enthält eine
Skript-Entwicklungsplattform 32, einen Compiler 34 und
eine Datenbank 36. Die Skript-Entwicklungsplattform 32 ist
ein Computerprogrammmodul, das mit dem Operator 12 interagiert,
um Integrations- und Prozessausführungsschriften 17 auf
Unternehmensebene zu erhalten und die Skripte 17 zum Compiler 34 zuzuführen. Die
Skripte 17 werden in der UI-Schnittstellen-Skript-Sprache
eingegeben und gespeichert. Die UI-Skript-Sprache ist eine Verfahrenssprache
auf hoher Ebene, die eine natürliche
Sprache, wie Anweisungen, verwendet. Somit werden die Skripte 17 zur Ausführung nicht
in eine Sprache niedrigerer Ebene oder eine Assemblersprache kompiliert.
Stattdessen werden die Skripte 17 interpretiert und dann
auf der hohen Ebene ausgeführt,
auf welcher sie geschrieben sind. Wie es bei Programmen in Skript-Sprachen gemeinhin
der Fall ist, wirken die Skripte 17 unter verschiedenen
Komponenten, die durch das EADIPECP 14 gesteuert werden,
als Randlogik auf hoher Ebene. Für
weitere Details in Bezug auf Skript-Sprachen siehe John K. Ousterhout, "Scripting: Higher Level
Program for the 21st Century",
IEEE Computer (März
1998).
-
Die
UI-Skript-Sprache ist eine äußerst flexible
und konfigurierbare Sprache, die zulässt, dass ein Bediener Befehle
auf hoher Ebene zum Bedienen mehrerer ungleichartiger und nicht
kompatibler Zielsysteme 24 verwendet. Beispielsweise können die Zielsysteme 24 mehrere
Anwendungsprogramme enthalten, von welchen jedes einen eindeutigen
Befehl zum Durchführen
derselben Funktion erfordern kann. Beispielsweise können die
Zielsysteme 24 Datenbanken sein, von welchen jede eine
andere API und eine andere Befehlssyntax für eine Schreiboperation hat.
Die UI-Skript-Sprache lässt
zu, dass der Bediener einen einzigen Befehl und eine einzige Befehlssyntax
zum Schreiben in jede und jede einzelne der Datenbanken verwendet.
Beispielsweise kann der Bediener einen Befehl SCHREIBEN zum Einfügen einer
neuen Aufzeichnung in die Datenbanken definieren. Der Bediener kann
den Befehl derart definieren, dass er die folgende Syntax hat: SCHREIBEN <DATEN> IN <DATENBANKNAME>. Der Bediener kann
dann diesen einzigen Befehl ungeachtet der bestimmten Befehle, die
irgendeine der Datenbanken erfordert, zum Schreiben in irgendeine
der Datenbanken verwenden.
-
Um
diesen Aufbau zu implementieren, wird jedes einzelne der Zielsysteme 24 auf
eine Gruppe von Befehlen, Parametern und Eingabe- und Ausgabe-Kommunikationsprotokollerfordernisse
abstrahiert. Diese Befehle, Parameter und Erfordernisse werden dann
in einer Datenbank 36 in Bezug zu dem allgemeinen Befehl
gespeichert. Nimmt man Bezug auf 3A enthält die Datenbank 36 eine Anzahl
von Befehlstabellen, die Beziehungen zwischen Elementen speichern,
die zulassen, dass durch den Bediener 12 eingegebene Skript-Befehle
auf hoher Ebene auf geeignete Befehle abgebildet werden, um zu den Zielsystemen 24 gesendet
zu werden. Eine Befehlstabelle speichert Beziehungen zwischen einem UI-Skript-Sprachenbefehl
hoher Ebene und den Befehlen der Zielsysteme, zu welchen der UI-Skript-Sprachenbefehl
hoher Ebene gehört.
Jeder einzelne der Befehle der Zielsysteme wird wieder in eine Gruppe
von Parametern abstrahiert, die den Befehl definieren. Die Gruppe
von Parametern wird dann in einer Definitionstabelle 80 gespeichert,
die drei separate Tabellen enthält:
eine "Befehle"-Definitionstabelle 82, eine "Schalen Parameter"-Definitionstabelle 84 und
eine "Parameter"-Definitionstabelle 86.
Die Befehle-Definitionstabelle 82 spezifiziert den in der
UI-Skript-Sprache verwendeten Befehlsnamen, den Zielsystem-Handhaber,
um zum Kommunizieren mit diesem Zielsystem verwendet zu werden,
die Adresse der Ziel-Schnittstellenschicht, die für ein Kommunizieren
mit diesem Zielsystem verantwortlich ist (beispielsweise ausgedrückt im herkömmlichen
Internetprotokoll und der Portnummer zum Kommunizieren mit dem Zielsystem)
und dem Typ eines Computerdatenformats für den Computer, der das Zielsystem
steuert. Die Schalen Parameter-Definitionstabelle 84 enthält die Parameter,
die die Befehlssyntax definieren, und eine Parameterdefinition für den Befehl,
der für
das bestimmte Zielsystem geeignet ist, einschließlich eines Befehlsnamens und -typs
und eines Parameternamens und -typs. Die Parameter-Definitionstabelle 86 enthält die Definitionen für Parameter,
die in den Skripten 17 verwendet werden können. Wie
es nachfolgend für
irgendeinen Befehl in dem Skript beschrieben werden wird, greift
der Compiler 34 auf die Datenbank 36 zu, liest
die geeignete Definitionstabelle 80 aus und speichert diese Definitionstabelle
mit der Befehlszeile in der zur Ausführungsmaschine gelieferten
ausführbaren
Datei.
-
Nimmt
man Bezug auf 3B, speichert die Datenbank 36 auch
Datenobjekttabellen 87 für Daten, die von den Zielsystemen 24 zu
empfangen sind. Die Datenobjekttabelle 87 enthält eine
Klassendefinitionstabelle 88, die ein bestimmtes Datenobjekt
definiert, das der Bediener in Skripten 17 verwenden kann,
wie beispielsweise dann, wenn er Daten von einem Zielsystem anfordert.
Die Datenobjekttabelle 87 enthält auch eine Falldefinitionstabelle 89,
die Charakteristiken der von einem bestimmten der Zielsysteme 24 zu
empfangenden Daten speichert. Allgemein können Daten von einem Zielsystem
auf eine von zwei Arten empfangen werden: in Reaktion auf ein Lesen
eines Befehls von der Vorrichtung oder bei einer Übertragung,
die durch das Zielsystem initiiert ist. Ein Lesen von Befehlen von
dem Ziel system kann ein einmaliges Lesen von Befehlen sein, oder
ein wiederholtes Lesen von Befehlen, charakterisiert durch eine
zyklische Rate, die in der Falldefinitionstabelle 89 definiert
ist. Die Falldefinitionstabelle 89 enthält auch Information in Bezug
auf einen zum Kommunizieren mit dem Zielsystem zu verwendenden bestimmten
Zielsystem-Handhaber. In dem Fall, in welchem das Zielsystem Daten
unabhängig
und nicht in Reaktion auf einen Befehl liefert, werden die Daten
durch das Zielsystem zu dem geeigneten Zielsystem-Handhaber gesendet.
-
Nimmt
man Bezug auf 4, ist ein Skript-Programm aus
einem oder mehreren Programmbündeln
gebildet. Jedes Programmbündel, wie
beispielsweise ein Programmbündel 90,
enthält typischerweise
mehrere Sequenzen 92, die parallel zueinander ausgeführt werden.
Jede einzelne der Sequenzen 92 kann veranlassen, dass eine
weitere Sequenz gestartet wird und parallel zu der Start-Sequenz
ausgeführt
wird. Die Sequenzen 92 können auch Aufrufe zu einer
Untersequenz 94 durchführen, um
eine sequentielle Ausführung
einer Aufgabe zu erfordern. 4A zeigt
ein Beispiel einer grafischen Anwenderschnittstelle, die zum Eingeben
eines Skripts verwendet wird. 4B zeigt
ein Beispiel eines Skripts. Die Skripte in den 4A und 4B sind
für das
in 1C gezeigte intelligente Audio/Video-System gültig. Wie
es gesehen werden kann, ist das angezeigte Skript in einer Sprache
hoher Ebene geschrieben und enthält
viele einfach zu verstehende Befehle.
-
Die
Programmbündel 90 werden
durch einen von drei Befehlen gesteuert: ein INSTALLATIONS-Befehl
veranlasst, dass ein Bündel
installiert und ausgeführt
wird; ein ENTFERNUNGS-Befehl veranlasst, dass ein Bündel von
einer Ausführung entfernt
wird; und ein HALTE-Befehl hält
eine Ausführung
eines bestimmten Bündels
an. Die Sequenzen 92 werden durch sechs unterschiedliche
Befehle gesteuert: einen START-Befehl zum Starten einer Ausführung einer
Sequenz; einen STOPP-Befehl zum Stoppen einer Ausführung einer
Sequenz; einen WIEDERAUFNAHME-Befehl zum Wiederaufnehmen einer Ausführung einer
Sequenz, einen EINZELSCHRITT-Befehl zum einzelnen Schreiten durch eine
Ausführung
einer Sequenz; einen HALTEN-BEI-Befehl zum Anhalten einer Ausführung bei einer
bestimmten Zeile in der Sequenz; und einen SPRINGEN-ZU-Befehl zum
Veranlassen, dass eine Ausführung
einer Sequenz zu einer unterschiedlichen Anweisung von derjenigen
herausspringt, die gerade ausgeführt
wird.
-
Die
UI-Skript-Sprache hat auch zwei wichtige Eigenschaften: als Erstes
sorgt die UI-Skript-Sprache für
eine Schnittstellenbildung mit einer Person auf derselben Ebene
und auf ähnliche Weise
wie bei einer Schnittstellenbildung mit einem der Zielsysteme 24.
Nimmt man auch Bezug auf 1, sind die Zielsysteme 24 derart
gezeigt, dass sie einen menschlichen Bediener bzw. Operator enthalten,
der mit einem Computer interagiert. Die UI-Skript-Sprache lässt ein
Interagieren mit diesem Operator auf dieselbe Weise wie mit einem
Zielsystem zu: Befehle können
zu diesem Operator gesendet werden, der Operator kann gefragt werden,
Daten zu lesen, der Operator kann gefragt werden, eine Beobachtung
zu machen, oder irgendeine andere Vielfalt von Aufgaben. Die UI-Skript-Sprache
stellt eine Gruppe von einfachen Befehlen hoher Ebene zur Verfügung, um
eine solche Kommunikation zu ermöglichen.
Zwei der Befehle erfordern Antworten vom Operator: ein BESTÄTIGUNGS-Befehl
erfordert eine Antwort von entweder "ja" oder "nein" und ein ANFRAGE-Befehl
erfordert eine detailliertere Antwort. Drei der Befehle erfordern
keine Antworten vom Operator: ein NACHRICHTEN-Befehl liefert eine nicht
dringliche Nachricht, ein WARNUNGS-Befehl liefert eine dringende
Nachricht und ein NICHT-BEACHTEN-Befehl informiert den Bediener
darüber,
einen vorherigen ANFRAGE- oder BESTÄTIGUNGS-Befehl zu ignorieren.
Ein PAUSE-Unterbefehl kann optional zu irgendeinem dieser Befehle
hinzugefügt
werden. Der PAUSE-Unterbefehl
hält die Ausführung einer
Sequenz an, bis der Bediener einen WIEDERAUFNAHME-Befehl sendet,
oder einen ANTWORT-Befehl, wenn es geeignet ist.
-
Als
Zweites sorgt das EADIPECP 14 für die Fähigkeit durch eine Sequenz,
den Ausführungszustand
einer anderen Sequenz zu überwachen.
Dadurch muss ein Operator nur einen einfachen STATUS-Abfragebefehl
in einer Sequenz enthalten. Basierend auf den Ergebnissen von einer
solchen Statusabfrage kann der Bediener bzw. Operator 12 dann die
Abfragesequenz erfordern, um eine Reihe von Aufgaben durchzuführen. Der
Operator 12 kann auch auswählen, irgendeinen der oben
beschriebenen sechs Sequenzbefehle mit einer Beantwortung der abgefragten
Sequenz in Abhängigkeit
von ihrem Zustand ausführen,
wie beispielsweise eines Anhaltens der Sequenz aufgrund eines Fehlerzustands.
Weitere Merkmale und Fähigkeiten
der UI-Skript-Sprache werden hier nicht detailliert beschrieben
werden. Eine Beschreibung kann in der vorläufigen US-Anmeldung mit der
seriellen Nr. 60/116,754, eingereicht am 22. Januar 1999, und in
der vorläufigen
US-Anmeldung mit der seriellen Nr. 60/104,654, eingereicht am 16.
Oktober 1998, gefunden werden.
-
Nimmt
man wieder Bezug auf 2, kann der Operator 12 nach
einem Eingeben von Skripten 17 den Prozess zum Kompilieren
der Skripte starten. Der Compiler 34 kompiliert Skripte 17 in
ASCII-Skript-Listendateien 40 und binäre ausführbare Skript-Daten 42.
Beim Kompilieren von Skripten 17 greift der Compiler 34 auf
die Datenbank 36 zu, wie es nötig ist. Der Compiler 34 zerlegt
die Skripte 17 und verifiziert, dass die Skripte eine richtige UI-Skript-Sprachsyntax
haben. Der Compiler 34 identifiziert dann die UI-Skript-Sprachanweisungen (z.B.
WENN/WANNIMMER-Anweisungen) und die kundenangepassten Befehle (z.B. <NAME> ZU KUNDENDATENBANK
SCHREIBEN).
-
In
Bezug auf die kundenangepassten Befehle greift der Compiler 34 auf
die Datenbank 36 zu, die die Befehlstabellen speichert
(4). Der Compiler 34 speichert mit jedem
Befehl mit einer entsprechenden von Befehlsdefinitionstabellen 80.
Der Compiler 34 speichert auch jede Datenwiedergewinnungsanforderung
mit einer entsprechenden von Datenobjekt-Definitionstabellen 87.
-
Nach
einem Kompilieren der Skripte 17 sendet der Compiler 34 ASCII-Skript-Listendateien 40 und
Binärausführungsschriftzeichendateien 42 zu
einer Ausführungsmaschine 52,
die beispielsweise auf dem Server 20 läuft. Die Ausführungsmaschine 52 führt die
binären
Skript-Ausführungsdateien 42 aus und
sendet die Befehlsdatenpakete zu den Zielsystemen 24 über eine
Ziel-Schnittstellenschicht 26. Die Ausführungsmaschine 52 liefert
auch Befehle zu einem Überwachungs-
und Steuerungs-Anzeigemodul 56, das wiederum diese Eingaben
zu verschiedenen Anzeigen und Ausgangs-Zielsystemen liefert, die vorzugsweise
einen Text-zu-Sprache-Generator 58 enthalten.
-
Die
Ausführungsmaschine 52 führt Sequenzen
durch Ausführen
von ihnen in zyklischen Durchläufen
parallel aus. Während
jedes Durchlaufs führt die
Ausführungsmaschine 52 eine
Anzahl von "nicht blockierenden" Anweisungen bis
zu einer ausgewählten
Grenze in der Reihenfolge aus, in der sie in jeder der Sequenzen
erscheinen. Nicht blockierende Anweisungen sind diejenigen Anweisungen,
die nicht veranlassen, dass sich die Ausführungsmaschine 52 zu
einer anderen Sequenz weiterbewegt. Nach einem zyklischen Durchlaufen
aller Sequenzen läuft die
Ausführungsmaschine 52 zyklisch
durch das nächste
installierte Bündel,
wenn es eines gibt. Nach einem Ausführen des letzten Bündels schläft die Ausführungsmaschine 52,
bis sie durch das Betriebssystem des Servers 20 aufgerufen
wird. Die Häufigkeit der
Durchläufe
kann durch einen Operator entweder als Teil eines Skripts oder durch
eine Operator-Anfrage ausgewählt
werden. In Reaktion darauf veranlasst das Betriebssystem des Servers 20,
dass die Ausführungsmaschine 52 jeden
ihrer Durchläufe – das heißt es führt ein "Aufwecken" der Maschine 52 durch – gemäß der durch
den Operator ausgewählten
Häufigkeit
beginnt. Es ist zu beachten, dass es möglich ist, mehrere Ausführungsmaschinen
zu haben, die mit unterschiedlichen Häufigkeiten bzw. Frequenzen
arbeiten.
-
Nimmt
man auch Bezug auf 5, ersetzt die Ausführungsmaschine 52 dann,
wenn die Ausführungsmaschine 52 auf
einen Befehl trifft, den Befehl (z.B. WRITE <NAME> ZU
KUNDENBESCHWERDEN-DATENBANK SCHREIBEN) mit einem zu der Ziel-Schnittstellenschicht 26 zu
sendendes Datenpaket, die für
ein Kommunizieren mit dem geeigneten Zielsystem 24 verantwortlich
ist. Das Befehlsdatenpaket hat wenigstens zwei Typen von Information.
Als Erstes enthält
das Paket den zu dem bestimmten Zielsystem zu sendenden Befehl,
einschließlich
des Befehlsnamens und irgendwelcher Parameterwerte. Der Compiler 34 übersetzt
die Anwender-Eingabevariablen (z.B. NAME) in Werte, die durch das
Zielsystem gefordert sind, und in das Datenformat, das durch das
Zielsystem gefordert ist. Als Zweites enthält das Paket die Adresse der
geeigneten Ziel-Schnittstellenschicht 26 und einen Identifizierer
mit einem bestimmten Handhaber, der zu einem Zielsystem-Handhabermodul innerhalb
dieser Ziel-Schnittstellenschicht 26 gehört (4).
Der Identifizierer kann ein eindeutiger Identifizierer sein, der
zu dem bestimmten Handhaber gehört.
Der Identifizierer kann auch ein Protokoll-Flag sein, das ein durch
die Ziel-Schnittstellenschicht 26 zu verwendendes Datenkommunikationsprotokoll
anzeigt, wenn mit dem Zielsystem kommuniziert wird und dadurch der
Handhaber indirekt identifiziert wird. Das Befehlsdatenpaket kann
auch einen Identifizierer enthalten, der das Zielsystem identifiziert.
Es kann auch Daten und Befehle für
den Zielsystem-Handhaber, wie beispielsweise die Häufigkeit
eines Durchführens
von Leseoperationen, um Daten von dem Zielsystem zu erhalten.
-
Nach
einem Ausbilden der Befehlsdaten, die für eines der Zielsysteme 24 beabsichtigt
sind, legt die Ausführungsmaschine 52 das
Befehlsdatenpaket auf einen UDP/IP-Socket 100 für die Ziel-Schnittstellenschicht 26 zum
Auslesen bzw. Wiedergewinnen. Der UDP/IP-Socket kann veranlassen,
dass das Befehlsdatenpaket über
ein Netzwerk, wie beispielsweise das weltweite Netz, zu der Stelle
der Ziel-Schnittstellenschicht 26 transferiert
wird, die durch die IP-Adresse in dem Befehlsdatenpaket identifiziert
ist. Auf ein Auslesen des Befehlsdatenpakets von dem Socket 100 hin
zerlegt der Ziel-Schnittstellenserver 102 der Ziel- Schnittstellenschicht 26 das
Befehlsdatenpaket. Basierend auf der Zielsystem-Handhaberinformation (die in der Befehlsdefinitionstabelle 82 in 3A als "Protokolltyp" identifiziert ist)
greift der Ziel-Schnittstellenserver 102 auf eine Ziel-Schnittstellenbibliothek 104 zu,
um einen bestimmten Zielsystem-Handhaber 105 zu bestimmen,
der für
ein Kommunizieren mit dem adressierten Zielsystem verantwortlich
ist. Die Ziel-Schnittstellenbibliothek 104 speichert Zielsystem-Handhaber 105,
die beispielsweise in der Java-Programmiersprache von Sun Microsystems
geschrieben sind, zum Kommunizieren mit den Zielsystemen 24.
Jeder Zielsystem-Handhaber 105 kann
mit einer vorbestimmten Gruppe von Zielsystemen 24 gemäß Protokollen kommunizieren,
die durch diese Systeme gefordert werden. Einige Zielsystem-Handhaber 105 können unter
Verwendung von nur einem einzigen Protokoll kommunizieren und der
Protokolltyp kann als Ersatz bzw. Stellvertreter zum Identifizieren
des Handhabers zu dem Ziel-Schnittstellenserver 102 verwendet werden.
Der Ziel-Schnittstellenserver 102 ruft das geeignete Modul
auf, das in einer virtuellen Java-Maschine läuft, verbindet mit dem Zielsystem
und sendet den Befehl zu dem Zielsystem 24, um den Befehl zu
kommunizieren.
-
Nimmt
man auch Bezug auf 6 werden, wie es angezeigt ist,
die Befehle NACHRICHT, WARNUNG, BESTÄTIGEN, ANFRAGE, NICHT BEACHTEN
zum Kommunizieren mit menschlichen Bedienern verwendet. Diese Befehle
werden mit einem API-Handhaberidentifizierer kompiliert, der den API-Handhaber
anzeigt, der zum Kommunizieren mit dem Text-zu-Sprache-Generator 58 zu
verwenden ist. Das API-Handhaber-Flag kann beispielsweise einfach
ein Indikator sein, der eine Industriestandard-API, wie beispielsweise
die Java-Sprache API (JSAPI) oder die Microsoft-Sprache API (MSAPI) oder
eine nicht standardmäßige paketspezifische
Java- oder C-Sprache API identifiziert, und dadurch einen geeigneten
Handhaber indirekt identifizieren.
-
Während einer
Ausführung
legt die Ausführungsmaschine 52 ein
sprachenbezogenes Befehlsdatenpaket auf einen Socket 106 für ein Skript-Überwachungs-
und -Steuerungs-Anzeigemodul 60 zum Auslesen. Das Modul 60 leitet
dann das Paket weiter zu einem Sprachschnittstellen-Clientmodul 108 über einen
(vorzugsweise TCP/IP-)Socket 110. Der Sprachschnittstellen-Client 110 verwendet
das API-Flag zum Auslesen eines geeigneten Java-Moduls zum Kommunizieren
mit dieser API und eines Falls, dass das Java-Modul in eine virtuelle
Java-Maschine geladen ist. Das Java-Modul sendet dann die Nachricht
zum Text-zu-Sprache-Generator 58 auf die Weise, die durch
die API des Text-zu-Sprache-Generators 58 erforderlich
ist.
-
Wie
es oben angegeben ist, werden Daten von den Zielsystemen 24 entweder
in Reaktion auf einen Befehl von der Ausführungsmaschine 52 empfangen
oder von den Zielsystemen 24 gesendet, und zwar unabhängig. Wenn
Daten von einem der Zielsysteme 24 empfangen werden, empfängt der
Zielsystem-Handhaber, der in der Schnittstellenschicht 26 läuft und
mit dem Zielsystem kommuniziert, die Daten basierend auf dem Protokoll,
das durch dieses Zielsystem erforderlich ist. Wenn die Daten in
Reaktion auf einen Befehl empfangen werden, werden die Daten gemäß der Datenobjektinformation
in dem Befehlsdatenpaket neu formatiert und dann über den Socket 100 zur
Ausführungsmaschine 52 gesendet. Wenn
jedoch die Daten nicht in Reaktion auf irgendeinen Befehl gesendet
werden, werden die Daten lediglich in einem Paket platziert und über den Socket 100 zur
Ausführungsmaschine 52 gesendet. Die
Ausführungsmaschine 52 kann
dann eine bestimmte Sequenz initiieren, die zum Handhaben solcher
Daten entwickelt ist. Daten von einem Spracherkennungsmodul 62 werden
auf gleiche Weise verarbeitet.
-
Es
sollte beachtet werden, dass der Sprachschnittstellen-Client 108 als
beschränkter
und spezieller Fall einer Ziel-Schnittstellenschicht 26 angenommen
werden kann. Somit kann die Ziel-Schnittstellenschicht 26 zum
Implementieren derselben Funktionsweise wie der Sprachschnittstellen-Client 108 verwendet
werden.
-
Wie
es offensichtlich ist, trennt die obige Architektur im Wesentlichen
die Ausführungsmaschine 52 von
der Aufgabe eines Handhabens einer Kommunikation mit einer Vielfalt
von ungleichartigen Zielsystemen. Stattdessen kapselt die obige
Architektur verschiedene Kommunikationsprotokollanforderungen in
Datenstrukturen ein, die in den ausführbaren Dateien enthalten sind.
Die Inhalte dieser Datenstrukturen werden dann durch die Ausführungsmaschine 52 in
Befehlsdatenpakete eingebaut, ohne dass die Ausführungsmaschine 52 auf
sie einwirkt, eine Kommunikation zu initiieren. Kurz gesagt wird die
Datenkommunikation mit Systemen 24 transparent und relativ
einfach für
die Ausführungsmaschine 52,
indem gefordert wird, dass die Ausführungsmaschine 52 lediglich
die Befehlsdatenpakete verpackt und sie gemäß einem einheitlichen Kommunikationsprotokoll,
hier UDP/IP, sendet. Diese Architektur lässt ein Trennen der Aufgabe
eines Treffens von regelbasierenden Entscheidungen auf hoher Ebene
von der Aufgabe einer Schnittstellenbildung mit Zielsystemen 24 zu,
die die Ergebnisse von diesen regelbasierenden Entscheidungen implementieren,
um dadurch die Erweiterbarkeit, die Flexibilität und die Robustheit des Unternehmenssystems 10 zu
erhöhen.
Zusätzlich
lässt diese Architektur
ein Platzieren der Ziel-Schnittstellenschicht 26 und der
Zielsystem-Handhaber 105 bei
dem Client-Computer zu, wo die Infrastruktur zum Kommunizieren mit
der Vielzahl von Zielsystemen 24 typischerweise bereits
angeordnet ist, während
die Kommunikation zwischen der Ausführungsmaschine 52 und
den Zielsystem-Handhabern auf eine Kommunikation gemäß einem
robusten Netzwerkprotokoll (wie beispielsweise UDP/IP oder TCP/IP) über ein
robustes Netzwerk (wie beispielsweise das Internet und WWW beschränkt ist).
-
Nimmt
man Bezug auf die 7A und 7B, kann
die Ausführungsmaschine 52 mit
einer oder mehreren Ziel-Schnittstellenschichten 26 kommunizieren.
Zusätzlich
ist ein Befehlsdatenpaket über
eine Ziel-Schnittstellenschicht 26A zu einer anderen Ziel-Schnittstellenschicht 26B weiterzuleiten, die
tatsächlich
mit einem bestimmten Zielsystem 24 kommuniziert. Somit
kann die Ziel-Schnittstellenschicht 26A in 7A Befehle,
die für
Zielsysteme der anderen Ziel-Schnittstellenschicht 26B beabsichtigt
sind, über
einen Ziel-Schnittstellen-Clienthandhaber 105A weiterleiten.
Der Datenbankeintrag eines über
die Ziel-Schnittstellenschicht 26A weiterzuleitenden Befehls
enthält
lediglich Einträge,
die vorschlagen, dass das Befehlsdatenpaket zu einem Zielsystem-Handhaber 105B der
Ziel-Schnittstellenschicht 26A gesendet werden sollte.
Der Clientsystem-Handhaber 105B ist einzig zum Weiterleiten
von Paketen zu anderen Ziel-Schnittstellenschichten entwickelt.
Auf ein Empfangen des Befehlsdatenpakets hin verarbeitet der Zielsystem-Handhaber
das Befehlsdatenpaket, um basierend auf der eigenen Information
des Handhabers zu bestimmen, zu welcher Ziel-Schnittstellenschicht
das Befehlsdatenpaket weitergeleitet werden sollte. Dies ist insbesondere
für bestimmte
Typen von Anwendungen nützlich,
wo der Zielort eines Befehls von Faktoren abhängt, die für die Ausführungsmaschine 52 unbekannt
sind. Beispielsweise kann es sein, dass der Befehl zum Erhalten
eines Kreditberichts für
einen Kunden von einer von drei Kreditauskunftsagenturen dient.
Der Clientsystem-Handhaber 5B kann eine hohe Ebene an Intelligenz
haben, die beispielsweise basierend auf neuesten Daten bestimmt,
welche der drei die schnellste Turn-Around-Time hat, und vorzugsweise das
Befehlsdatenpaket zu dieser bestimmten Kreditauskunftsagentur senden.
Wie es einem Fachmann auf dem Gebiet klar werden würde, können andere Typen
von intelligenten Führungsfähigkeiten
auf einfache Weise in den Zielsystem-Handhaber 105B und die
Ziel-Schnittstellenschicht 26A eingebaut
werden.
-
Eine
Ziel-Schnittstellenschicht 26 kann auch mit einer anderen
Ausführungsmaschine
interagieren, um den Betrieb dieser anderen Maschine zu steuern,
zu über wachen
und zu beeinflussen. Somit kann die Ausführungsmaschine 52 auf
ein Starten, ein Stoppen oder ein Beeinflussen des Betriebs einer anderen
Maschine auf andere Weise zu richtende Befehle ausgeben. Ein solcher
Befehl kann dann zur anderen Ausführungsmaschine über die
Ziel-Schnittstellenschicht 26 zu einem mit der anderen
Ausführungsmaschine
verbundenen Socket 112 ausgesendet werden. Zusätzlich kann
die andere Maschine Zustandsdaten zur Ausführungsmaschine 52 über ihren
Socket 106 zur Ziel-Schnittstellenschicht 26 der Ausführungsmaschine 52 senden.
-
Nimmt
man Bezug auf 8 veranlasst die Ausführungsmaschine 52,
dass ein Modul 60 eine grafische Anwenderschnittstelle 150 anzeigt,
um zuzulassen, dass ein Anwender den genauen Zustand eines Skripts
anschaut, das gerade ausgeführt
wird. Somit kann der Anwender an jeder Stelle anschauen, welche
von Zeilen eines bestimmten Skripts gerade ausgeführt wird.
Dies ist durch Ziehen eines Vorteils aus der Eigenschaft der Ausführungsmaschine
implementiert, dass Programme hoher Ebene interpretiert und ausgeführt werden,
was entgegengesetzt zu einem Ausführen einer Kompilation einer
Assemblersprache eines Programms hoher Ebene ist. Bei der Beendigung
jeder Anweisung werden die aktuelle Sequenzangabennummer und Parameterwerte
in einer Anzahl von Sequenzzustandswertpuffern gespeichert. Da es
eine Eins-zu-Eins-Beziehung zwischen einer Zeile, die gerade durch
die Ausführungsmaschine 52 ausgeführt wird,
und dem Skript-Sprachprogramm
gibt, wird eine einfache Korrelation zwischen den gespeicherten
Daten und dem Skript-Sprachprogramm hergestellt. Somit sieht der Operator
nicht nur die bestimmte Anweisung, die gerade ausgeführt wird,
sondern auch den zu verschiedenen Parametern gehörenden Wert, und welche bedingten
Verzweigungen ausgeführt
wurden, oder in der Zukunft ausgeführt werden können.
-
Wie
es oben angegeben ist, lässt
die UI-Skript-Sprache zu, dass eine Sequenz den Zustand einer anderen
Sequenz bestimmt. Um diese Eigenschaft zu implementieren, prüft die Ausführungsmaschine 52 die
am Ende einer Ausführung
jeder Anweisung gespeicherten Daten, um den Ausführungszustand einer Sequenz
zu bestimmen. Daten, die den Ausführungszustand zeigen, werden
dann zu der Abfragesequenz gesendet. Basierend auf einem Prüfen der
Ergebnisse der Zustandsprüfung
kann die Abfragesequenz eine Bestimmung diesbezüglich durchführen, wie
die abgefragte Sequenz ausgeführt werden
sollte. Beispielsweise kann die abgefragte Sequenz angehalten, beendet,
in einzelnen Schritten durchlaufen oder wieder aufgenommen werden,
indem die oben beschriebenen Befehle zum Steuern von Operationen
der Sequenzen verwendet werden.
-
Die
GUI 150 zeigt den Zustand von verschiedenen Ausführungsbündeln und
-skripten. Die GUI 150 hat fünf Bereiche: den Titelbalken,
den Menübalken,
den Programmierwerkzeugbalken, den Anmerkungsbereich und den Nachrichtendatenbereich.
Der Titelbalken 405 zeigt den aktuellen Zustand der Ausführungsmaschine 52 an,
d.h. AKTIV oder EINGEFROREN. Der Menübalken am obersten Ende enthält acht
Menüs auf
oberster Ebene: Datei, Befehl, Anmerkung, Betriebsmittel, Nachrichten,
Fenster, Schrift und Hilfe. Das Dateienmenü enthält die folgenden Optionen: Öffnen einer
Auflistdatei, was eine Bündellistendatei,
die nicht mit einem installierten Bündel verbunden ist, in die
Verfahrensseite lädt; eine
Druckdatei, welche die in der Verfahrensseite angezeigte Listendatei
druckt; Vorgabeeinstellungen, was Anwenderpräferenzen, wie beispielsweise
ein Anschauen von Anmerkungen und ein Verfolgen einer Ausführung (diese
Elemente werden nachfolgend diskutiert) rücksetzt; Editier-Ids, was die
Steuerungs- und Überwachungs-Ids
editiert; und Abbruch, was ein Programm beendet. Das Befehlsmenü lässt zu,
dass der Anwender die folgenden Befehle zur Ausführungsmaschine 52 sendet:
Installieren, alles Einfrieren, Einfrieren rücksetzen, Bündel anhalten, Bündel entfernen,
Sequenz starten, Sequenz stoppen, Sequenz wiederaufnehmen, schrittweises Durchlaufen,
Anhalten bei und Springen zu. Befehle werden freigegeben, wenn der
Zustand des Elements, das den Befehl empfängt, für diesen Befehl gültig ist.
Wenn beispielsweise eine Sequenz AKTIV ist, wird ein Starten einer
Sequenz und eine Wiederaufnahme einer Sequenz gesperrt. Die Option
für ein Einschalten
eines Überschreitens
lässt zu,
dass der Anwender diese Sicherheitseigenschaft umgeht, wenn es nötig ist.
Die Vorgabe für
diese Option ist AUS.
-
Das
Anmerkungsmenü enthält die folgenden Optionen:
Anmerkungen, was Anmerkungen in der Verfahrensseite anzeigt, wenn
es eingeschaltet ist (Vorgabe ist EIN); und Anmerkungszeile, was
den Anmerkungseditor (nachfolgend diskutiert) öffnet. Das Betriebsmittelmenü zeigt das
Ausmaß an
verfügbaren
Betriebsmitteln, nämlich
Speicher, Bündelslots
und Sequenzslots, an. Das Nachrichtenmenü 411 lässt zu,
dass der Anwender die im Nachrichtendatenbereich angezeigten Nachrichten
filtert. Dieses Menü enthält auch
Steuerungen zum Bestimmen der Anzahl von hörbaren Alarmpiepsern, die dann
ausgegeben werden, wenn verschiedene Nachrichten empfangen werden.
Das Fenstermenü lässt zu,
dass der Anwender den Anschaumode auswählt. Verfügbare Optionen sind Zusammenfassungsseite,
Verfahrens seite und Erleuchtung (die alle nachfolgend diskutiert
sind). Dieses Menü wird
auch dazu verwendet, zu steuern, ob die Verfahrensseite die Ausführung des
Skripts in Echtzeit verfolgen sollte. Eine Vorgabe für diese
Option ist EIN. Das Schriftmenü 413 lässt zu,
dass der Anwender die Schriftgröße für eine Information
auswählt,
die gerade angezeigt wird. Die verfügbaren Optionen sind klein
(Vorgabe), mittel und groß.
Das Hilfsmenü 414 lässt zu,
dass der Anwender Hilfe in Blasen freigibt (Vorgabe) und sperrt. Der
Programmierwerkzeugsbalken 415 enthält Befehlstasten zum Steuern
der Ausführungseinheit
des EADIPECP 14 und Navigationstasten zum Steuern der Anzeigenansicht
des EADIPECP 14. Es gibt vier Gruppen von Befehlstasten:
Ausführungseinheitsbefehle
(alles Einfrieren und Einfrieren rücksetzen), Bündelbefehle
(Bündel
anhalten, Bündel
installieren und Bündel
entfernen), Sequenzbefehle (Sequenz starten, Sequenz stoppen und
Sequenz wiederaufnehmen) und Anweisungsbefehle (Halten bei und Springen
zu). Die drei Navigationstasten (Zusammenfassungsseite, Verfahrensseite
und Erleuchtet) sind zusammen auf der rechten Seite gruppiert. Der Notizbuch-
bzw. Anmerkungsbereich wird zum Anzeigen von zwei unterschiedlichen
Gruppen von Daten verwendet, und zwar in Abhängigkeit von den Notwendigkeiten
des Anwenders zu einem gegebenen Zeitpunkt. Eine Option besteht
im Anschauen der Bündel-
und Sequenz-Zustandsdaten 402, 403 in der Zusammenfassungsseite,
während
eine weitere Option darin besteht, die Auflistung eines bestimmten Bündels in
der Verfahrensseite anzuzeigen. Der Anwender kann zwischen den zwei
Seiten unter Verwendung des Fenstermenüs oder der Navigationstasten
in dem Programmierwerkzeugsbalken umschalten. Jede der Seiten wird
nachfolgend detaillierter beschrieben werden.
-
Der
Nachrichtendatenbereich 404 besteht aus dem Nachrichtenlistenkasten,
der die allerletzten Nachrichten anzeigt, die durch die Ausführungseinheit
ausgegeben sind, und dem Nachrichtenfilter, das zum Ausfiltern bestimmter
Nachrichten verwendet werden kann (diese Funktion ist auch in dem
Nachrichtenmenü vorgesehen).
Der Anwender kann Nachrichten durch das aktuelle Bündel, die
aktuelle Sequenz, die aktuelle Überwachungs-ID
oder das aktuelle Bündel
und die aktuelle Überwachungs-ID filtern.
Jede Zeile enthält
einen Bündelnamen,
der der Name des Bündels
ist, das die Nachricht ausgab (Blank, wenn es eine Fehlernachricht
der Ausführungseinheitsebene
ist), einen Sequenznamen, der ein Name der Sequenz ist, die die
Nachricht ausgab (Blank, wenn sie eine Fehlernachricht auf Ausführungseinheitsebene
oder Bündelebene
ist, oder eine Bündelinstallierungs-Bestätigungsnachricht),
Bun#, was die Slotnummer ist, Seq#, was die Sequenznummer ist, Typ,
was der Nachrichtentyp ist, Datum & Zeit, was anzeigt, wann die Nachricht
durch die Anzeigen empfangen wurde, und Nachricht, was der Text
der Nachricht ist. Jede Nachricht ist basierend auf dem Typ der
Nachricht farbcodiert, wobei A der Typenindikator für eine Bündelinstallierungsbestätigung ist,
die in Blau erscheint, C für
eine Bestätigung steht,
die in Orange erscheint, E für
eine Fehlernachricht steht, die in Rot erscheint, M für eine Skript-Nachricht
steht, die in Blau erscheint, Q für eine Abfrage steht, die in
Orange erscheint, und W für
eine Warnungsnachricht steht, die in Gold erscheint. Ein Hochfahren
und Herunterfahren einer Anzeige sind auch in Gold angezeigt.
-
Die
Zusammenfassungsseite 401 lässt zu, dass der Anwender den
Zustand aller Bündel
beobachtet, die gegenwärtig
in der Ausführungseinheit
installiert sind (5). Diese Bündelzustandsdaten
können in
der Listenanzeigekomponente am obersten Ende der Seite angeschaut
werden. Die Daten in dieser Anzeigekomponente enthalten eine Slotnummer
(wo das Bündel
installiert ist), einen Bündelnamen,
einen Bündelzustand,
eine Anzahl von im Bündel
definierten Sequenzen, eine Bündelinformation
und ein Bündelverfolgungs-Tag.
Anhalt- und Entfernungsbefehle können
gegen das ausgewählte
Bündel
in der Listenanzeigenkomponente verwendet werden. Die Sequenzlistenanzeigenkomponente
ist unterhalb der Bündellistenanzeigekomponente
angeordnet. Diese Anzeigenkomponente enthält Sequenzdaten für alle Sequenzen,
die in dem aktuell ausgewählten
Bündel definiert
sind. Die Daten in dieser Anzeigenkomponente enthalten eine Sequenznummer,
einen Sequenznamen, einen Sequenzzustand, eine aktuelle Anweisungsnummer,
ein Anhalten bei einer Anweisungsnummer, eine Startzeit der Sequenz,
eine Stoppzeit der Sequenz und Sequenzinformation. Start-, Stopp-
und Wiederaufnahmebefehle können gegen
die ausgewählte
Sequenz in der Listenanzeigenkomponente verwendet werden.
-
Eine
Verfahrensseiten-GUI 451, die in 9 gezeigt
ist, lässt
zu, dass ein Anwender eine Bündellistendatei
anschaut. Wenn die Listendatei für
ein installiertes Bündel
ist, wird der Zustand der aktuellen Sequenz und die letzte ausgeführte Anweisung
am obersten Ende der Seite angezeigt. Das Pulldown-Menü für ein Bündel ist
vorgesehen, um zuzulassen, dass ein Anwender eine andere Auflistungsdatei
des EADIPECP 14 in die Auflistungsanzeigenkomponente lädt. Ein
Auswählen
eines Elements im Pulldown-Menü für eine Sequenz
veranlasst, dass die Auflistungsanzeigenkomponente zu der ausgewählten Sequenz
gerollt wird. Wenn der Anwender ein Verfolgen eingeschaltet hat,
wird die am aktuellsten ausgeführte
Anweisung in der ausgewählten
Sequenz hervorgehoben und wird die Auflistungsanzeigenkomponente
gerollt, so dass diese Anweisung in der Mitte der Ansicht positioniert
wird. Wenn das Verfolgen aus ist, wird die automatische Rollfunktion
gesperrt, was zulässt,
dass der Anwender frei durch die Bündelauflistungsdatei rollt.
Wenn der Anwender die Maus verwendet, um auf eine Auflistungszeile
zu klicken, wird diese Zeile als die ausgewählte Stmt# angezeigt. Dies
ist die Zeilennummer, die verwendet wird, wenn der Anwender einen
Befehl Halten bei oder Springen zu ausgibt oder eine Anmerkung hinzufügt, editiert
oder löscht.
-
Wenn
Anmerkungen (mit einer Anweisung des EADIPECP 14 verbundene
Anwenderkommentare) eingeschaltet ist, werden alle mit dieser Bündelauflistungsdatei
verbundenen Anmerkungen in der Auflistungsanzeigenkomponente zusammen
mit den Daten von der Auflistungsdatei angezeigt. Jede Anmerkung
wird in unterschiedlichem Text 502, wie beispielsweise
in Buchstaben mit unterschiedlichen Farben, direkt oberhalb der
mit einer Anmerkung versehenen Anweisung angezeigt. Ein Anwender
kann ein Skript mit Anmerkungen versehen, wenn das Skript ausführt. Da
das Skript auf hoher Ebene ausführt,
wie es zuvor angegeben ist, entspricht die Anmerkung den Skript-Anweisungen,
die durch den Bediener eingegeben sind.
-
Um
eine Anmerkung zu editieren, muss der Anwender zuerst das Anmerkungsmenüelement auswählen, um
die Anmerkungen für
ein ausgewähltes
Bündel
anzuschauen, dies veranlasst, dass die Anmerkungen in die Auflistungsanzeigenkomponente
zusammen mit der Bündelauflistungsdatei
geladen werden. Nachdem die Anmerkungsdateidaten auf dem Bildschirm
angezeigt sind, kann der Anwender eine Anmerkung für eine spezifische
Anweisung innerhalb der Bündelauflistungsdatei
editieren. Dies wird dadurch erreicht, dass zuerst die erwünschte Anweisung
mit der Maus ausgewählt
wird. Die ausgewählte
Anweisung wird hervorgehoben und die Anweisungsnummer erscheint
als die ausgewählte Stmt#
in der oberen rechten Ecke. Ein Auswählen des Anmerkungszeilenmenüelements
aus dem Anmerkungsmenü oder
ein Doppelklicken auf die Zeile öffnet
den Anmerkungseditor, der in 21 gezeigt ist.
Ein Speichern bzw. Sichern, ein Löschen und ein Beenden bzw.
Verlassen sind in diesem Editor für den Anwender verfügbar. Ein
Drücken
der Sicherungstaste veranlasst, dass die Anmerkungs-(.TLN-)Datei
lokal gesichert wird. Ein Drücken der
Löschtaste
veranlasst, dass die aktuelle Anmerkung gelöscht wird. Ein Drücken der
Austrittstaste schließt
den Editor. Wenn die Anmerkung modifiziert worden ist, wird ein
Warnungsfenster angezeigt. Dieses Warnungsfenster gibt dem Anwender
eine Option, die Anmerkungsänderungen
zu sichern oder den Anmerkungseditor ohne ein Sichern zu verlassen.
-
Das
beleuchtetes bzw. hervorgehobenes Fenster 650, das in 11 gezeigt
ist, lässt
zu, dass der Anwender eine Synopse bzw. Übersicht über den Ausführungseinheitszustand
sieht. Der Anwender kann einen farbigen Zustandskasten für jedes
installierte Bündel
und ihre Sequenzen anschauen. Der Anwender kann auch Nachrichten
auf dieselbe Weise wie in dem Hauptfenster anschauen und Operatorantwortsanforderungen
durch ein Doppelklicken auf die Nachrichten handhaben. Der Programmierwerkzeugsbalken
für das
hervorgehobene Fenster (654) besteht aus drei Gruppen von
Befehlstasten. Die erste Gruppe lässt zu, dass der Anwender Befehle
für alles
einfrieren und einfrieren rücksetzen
ausgibt. Die mittlere Gruppe steuert den Anschaumode des hervorgehobenen
Fensters, wobei der erste Mode zum Anschauen von nur den Nachrichten dient,
der zweite Mode zum Anschauen von nur Zustandslichtern dient und
der dritte Mode zum Anschauen von sowohl den Nachrichten als auch
den Lichtern 652 dient. Die Gruppe auf der rechten Seite der
Befehlstasten lässt
zu, dass der Anwender zu dem Hauptfenster mit entweder der Zusammenfassungsseite
oder der Verfahrensseite zurückspringt. Ein
Doppelklicken auf irgendeines der Lichter schaltet auch zu dem Hauptfenster
mit der Verfahrensseite, wobei der Text bei der aktuellen Anweisung
für die ausgewählte Sequenz
zentriert ist. Die 19 zeigt die für den Bediener
vorgesehene Hauptsequenzsteuerungsanzeige.
-
Andere
Ausführungsbeispiele
der Erfindung sind innerhalb des Schutzumfangs der nachfolgenden
Ansprüche.
-
Beispielsweise
kann der Ziel-Schnittstellenserver 102 bei einigen Ausführungsbeispielen
auf eine entfernte Ziel-Schnittstellendatenbank zugreifen, wie beispielsweise
irgendwo in dem Cyberspace, und ein geeignetes Java-Modul herunterladen.
-
Jedes
der Zielsysteme 24 kann durch eine virtuelle Adresse identifiziert
werden, die dann durch die Ziel-Schnittstellenschicht 26 auf
die physikalische Adresse des Zielsystems abgebildet wird. Die physikalischen
Adressen können
in einer zentralen oder verteilten Datenbank angeordnet sein, die
lokal oder entfernt von der Ziel-Schnittstellenschicht 26 angeordnet
ist.
-
Das
Unternehmenssystem 10 ist ein sehr flexibles und fähiges Programmierwerkzeug
zum Ausgliedern bzw. Outsourcen einer Wartung und einer Überwachung
von Systemen, die in Unternehmen verwendet werden. Ein Dienstlieferer
bzw. Serviceprovider kann in eine Beziehung eintreten, um Systeme
eines Unternehmens zu warten und zu überwachen. Der Serviceprovider
installiert ein Integrations- und Prozessausführungssystem auf Unternehmensebene.
Der Serviceprovider installiert die Ziel-Schnittstellenschicht bei
dem Unternehmen und verbindet die Systeme des Unternehmens mit der Schnittstellenschicht.
Die Schnittstellenschicht lässt zu,
dass der Integrations- und Prozessausführungsteil auf Unternehmensebene
des EADIPECP 14 auf der Serviceprovider-Seite läuft und
mit verschiedenen Systemen bei dem Unternehmen interagiert. Skripte,
die durch den Serviceprovider geschrieben sind, können dann
zum Überwachen
und Warten des Unternehmenssystems verwendet werden. Daten zwischen
dem Serviceprovider und der Schnittstellenschicht auf der Client-Seite
können über irgendeinen
Kanal, wie beispielsweise das Internet, beispielsweise durch Verwenden
eines virtuellen privaten Netzwerks (VPN) zu Sicherheitszwecken
gesendet werden.
-
Die
Befehle können
Befehle zum Starten von einem oder mehreren Anwendungsprogrammen
bei einem Client-Computer und zum Senden von Daten zu diesen Anwendungsprogrammen
enthalten. Beispielsweise können
die Befehle veranlassen, dass beispielsweise ein Web-Browser, eine
visuelle Darstellungsanwendung oder ein Wortprozessor gestartet
werden. Andere Befehle können
dann veranlassen, dass Daten zu denjenigen Paketen gesendet werden,
die einem Anwender anzuzeigen sind.
-
Computersysteme
zum Implementieren der Systeme der 1, 1A-E
und 2 enthalten typischerweise eine Haupteinheit,
die mit sowohl einer Ausgabevorrichtung, die Information zu einem Anwender
anzeigt, auch einer Eingabevorrichtung, die eine Eingabe von einem
Anwender empfängt, verbunden
ist. Die Haupteinheit enthält
allgemein einen Prozessor, der mit einem Speichersystem über einen
Verbindungsmechanismus verbunden ist. Die Eingabevorrichtung und
die Ausgabevorrichtung sind auch mit dem Prozessor und dem Speichersystem über den
Verbindungsmechanismus verbunden.
-
Eine
oder mehrere Ausgabevorrichtungen können mit dem Computersystem
verbunden sein. Ein Beispiel für
Ausgabevorrichtungen enthält
Anzeigen aus einer Kathodenstrahlröhre (CRT), Flüssigkristallanzeigen
(LCD), Drucker, Kommunikati onsvorrichtungen, wie beispielsweise
Modems, und Audioausgaben. Eine oder mehrere Eingabevorrichtungen
können
mit dem Computersystem verbunden sein. Beispielhafte Eingabevorrichtungen
enthalten eine Tastatur, ein Tastenfeld, einen Trackball, eine Maus,
einen Stift und ein Tablett, eine Kommunikationsvorrichtung und
Dateneingabevorrichtungen, wie beispielsweise Sensoren. Es sollte
verstanden werden, dass die Erfindung nicht auf die bestimmten Eingabe-
oder Ausgabevorrichtungen beschränkt
ist, die in Kombination mit dem Computersystem verwendet werden,
oder auf diejenigen, die hierin beschrieben sind.
-
Das
Computersystem kann ein allgemeines Computersystem sein, welches
unter Verwendung einer Computerprogrammiersprache, wie beispielsweise
C++, Java oder einer anderen Sprache, wie beispielsweise einer Skript-Sprache
oder eine Assemblersprache, programmierbar ist. Das Computersystem
kann auch speziell programmierte Hardware für spezielle Zwecke enthalten.
In einem Computersystem für
allgemeine Zwecke ist der Prozessor typischerweise ein auf dem Markt
verfügbarer
Prozessor, von welchem Celeron der Serie x86, und Pentiumprozessoren,
die von Intel erhältlich
sind, und ähnliche
Vorrichtungen von AMD und Cyrix, die Mikroprozessoren der Serie
680X0 von Motorola, der Leistungs-PC-Mikroprozessor von IBM und
die Prozessoren der Alphaserie von Digital Equipment Corporation
Beispiele sind. Viele andere Prozessoren sind erhältlich.
Ein solcher Mikroprozessor führt
ein Programm aus, das Betriebssystem genannt wird, für welches
Windows NT, Linux, UNIX, DOS, VMS und OS8 Beispiele sind und welches
die Ausführung
von anderen Computerprogrammen steuert und eine Zeitplanung, ein
Austesten bzw. eine Fehlersuche, eine Eingabe/Ausgabe-Steuerung,
ein Kontieren, eine Kompilation, eine Speicherzuordnung, ein Datenmanagement
und ein Speichermanagement und eine Kommunikationssteuerung und
zugehörige Dienste
zur Verfügung
stellt. Der Prozessor und das Betriebssystem definieren eine Computerplattform, für welche
Anwendungsprogramme in Programmiersprachen auf hoher Ebene geschrieben
sind.
-
Ein
Speichersystem enthält
typischerweise ein computerlesbares und -beschreibbares nichtflüchtiges
Aufzeichnungsmedium, von welchem eine Magnetplatte, ein Flash-Speicher
und ein Band Beispiele sind. Die Platte kann entfernbar sein, was
als Diskette bekannt ist oder permanent, was als Festplatte bekannt
ist. Eine Platte hat eine Anzahl von Spuren, in welchen Signale
typischerweise in binärer Form,
d.h. einer Form, die als Sequenz von Einsen und Nullen interpretiert
wird, gespeichert sind. Solche Signale können ein durch den Mikroprozessor aus zuführendes
Anwendungsprogramm definieren, oder auf der Platte gespeicherte
Information, um durch ein Anwendungsprogramm oder das Betriebssystem
verarbeitet zu werden. Typischerweise veranlasst der Prozessor im
Betrieb, dass Daten von dem nichtflüchtigen Aufzeichnungsmedium
in ein Speicherelement einer integrierten Schaltung gelesen werden,
welches typischerweise ein flüchtiger
Direktzugriffsspeicher, wie beispielsweise ein dynamischer Direktzugriffsspeicher
(DRAM) oder ein statischer Speicher (SRAM) ist. Das Speicherelement
aus einer integrierten Schaltung lässt einen schnelleren Zugriff auf
die Information durch den Prozessor zu, als es die Platte lässt. Der
Prozessor manipuliert allgemein die Daten innerhalb integrierten
Schaltungsspeichers und kopiert dann die Daten zu der Platte, wenn
eine Verarbeitung beendet ist. Eine Vielfalt von Mechanismen ist
zum Managen einer Datenbewegung zwischen der Platte und dem Speicherelement
aus einer integrierten Schaltung bekannt, und die Erfindung ist nicht
darauf beschränkt.
Es sollte verstanden werden, dass die Erfindung nicht auf ein bestimmtes Speichersystem
beschränkt
ist.
-
Die
Datenbank 36 kann irgendeine Art von Datenbank sein, einschließlich einer
Bezugsdatenbank einer objektorientierten Datenbank, einer unstrukturierten
Datenbank oder einer anderen Datenbank. Beispielhafte Bezugsdatenbanken
enthalten Oracle 8i von Oracle Corporation aus Redwood City, California,
Informix Dynamic Server von Informix Software, Inc. aus Menlo Park,
California; DB2 von International Business Machines aus Yorktown Heights,
New York; und Access von Microsoft Corporation aus Redmond, Washington.
Eine beispielhafte objektorientierte Datenbank ist ObjectStore von
Object Design aus Burlington, Massachusetts. Eine beispielhafte
unstrukturierte Datenbank ist Notes von Lotus Corporation aus Cambridge,
Massachusetts. Eine Datenbank kann auch unter Verwendung eines flachen
Dateiensystems aufgebaut sein, wie beispielsweise durch Verwenden
von Dateien mit zeichenbegrenzten Feldern, wie beispielsweise bei
frühen
Versionen von dBASE, was nun als visuell dBASE bekannt ist, von
Inprise Corp., aus Scotts Valley, California, ehemals Borland International
Corp.
-
Verschiedene
Computerplattformen, Prozessoren oder Programmiersprachen auf hoher
Ebene können
zur Implementierung verwendet werden. Zusätzlich kann das Computersystem
ein Mehrprozessor-Computersystem sein oder kann mehrere Computer
enthalten, die über
ein Computernetzwerk verbunden sind. Jedes Modul (z.B. 34, 52 und 26)
in 1 kann ein getrenntes Modul eines Computerprogramms
sein oder kann separate Computerprogramme sein. Solche Module können auf separaten Computern
betreibbar sein. Daten können
in einem Speichersystem gespeichert werden oder zwischen Computersystemen übertragen
werden. Die Erfindung ist nicht auf irgendeine bestimmte Implementierung
unter Verwendung einer Software oder einer Hardware oder einer Firmware
oder irgendeiner Kombination davon beschränkt. Die verschiedenen Elemente
des Systems, entweder einzeln oder in Kombination, können als
Computerprogrammprodukt implementiert sein, das gegenständlich in
einer maschinenlesbaren Speichervorrichtung zur Ausführung durch
einen Computerprozessor verkörpert
ist. Verschiedene Schritte des Prozesses können durch einen Computerprozessor
durchgeführt
werden, der ein Programm ausführt,
das gegenständlich
auf einem computerlesbaren Medium verkörpert ist, um Funktionen durch
eine Betätigung
auf einer Eingabe hin und ein Erzeugen einer Ausgabe durchzuführen. Computerprogrammiersprachen,
die zum Implementieren eines solchen Systems geeignet sind, enthalten
Verfahrensprogrammiersprachen, objektorientierte Programmiersprachen
und Kombinationen der beiden.
-
Die
Beschreibung der hierin enthaltenen Ausführungsbeispiele zeigt detailliert
einige der vielen Arten, auf welche die vorliegende Erfindung ihre beabsichtigten
Zwecke zur Verfügung
stellen kann. Während
einige Ausführungsbeispiele
beschrieben sind, ist es offensichtlich, dass verschiedene Änderungen
daran durchgeführt
werden könnten,
ohne von dem Schutzumfang der Erfindung abzuweichen.