DE69930953T2 - Betriebskommunikationsprotokoll - Google Patents

Betriebskommunikationsprotokoll Download PDF

Info

Publication number
DE69930953T2
DE69930953T2 DE69930953T DE69930953T DE69930953T2 DE 69930953 T2 DE69930953 T2 DE 69930953T2 DE 69930953 T DE69930953 T DE 69930953T DE 69930953 T DE69930953 T DE 69930953T DE 69930953 T2 DE69930953 T2 DE 69930953T2
Authority
DE
Germany
Prior art keywords
target system
command
interface layer
target
data packet
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 - Fee Related
Application number
DE69930953T
Other languages
English (en)
Other versions
DE69930953D1 (de
Inventor
T. Richard Ashland BERTHOLD
M. Dino Natick DIBIASO
Sung-Ho Kevin Waltham LEE
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.)
AUSPICE Inc
Auspice Inc Framingham
Original Assignee
AUSPICE Inc
Auspice Inc Framingham
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
Application filed by AUSPICE Inc, Auspice Inc Framingham filed Critical AUSPICE Inc
Publication of DE69930953D1 publication Critical patent/DE69930953D1/de
Application granted granted Critical
Publication of DE69930953T2 publication Critical patent/DE69930953T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Description

  • 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.
  • 811 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.

Claims (11)

  1. Computerimplementiertes Verfahren für eine Unternehmensverwaltungsmaschine, die Daten und Anweisungen verarbeitet, die zu einem Zielsystem (24) gehören, welches Verfahren folgendes aufweist: (a) in Reaktion auf ein Empfangen von Information für das Zielsystem Erzeugen eines Befehlsdatenpakets, wobei das Befehlsdatenpaket wenigstens einen Befehl für das Zielsystem und eine Netzwerkadresse für eine Schnittstellenschicht (26), durch welche der Befehl zum Zielsystem zu kommunizieren ist, aufweist; (b) Transferieren des Befehlsdatenpakets über ein Netzwerk (22) basierend auf der Netzwerkadresse im Befehlsdatenpaket zu einer Schnittstellenschicht (26); (c) Kommunizieren des Befehls über die Schnittstellenschicht zum Zielsystem, wobei die Schnittstellenschicht (26) mit dem Zielsystem unter Verwendung eines Protokolls des Zielsystems kommuniziert.
  2. Verfahren nach Anspruch 1, wobei die Unternehmensverwaltungsmaschine auf einem Servercomputer (20) läuft und die Schnittstellenschicht auf einem Client-Computer läuft, der entfernt vom Servercomputer ist, wobei der Servercomputer und der Client-Computer mit dem Netzwerk verbunden sind.
  3. Verfahren nach Anspruch 2, wobei das Zielsystem auf dem entfernten Client-Computer läuft.
  4. Verfahren nach Anspruch 3, wobei die Unternehmensverwaltungsmaschine Daten zu der Schnittstellenschicht gemäß einem zweiten Protokoll transferiert.
  5. Verfahren nach Anspruch 1, wobei das Befehlsdatenpaket weiterhin einen Zielsystem-Handhaberidentifizierer aufweist und der Schritt zum Kommunizieren des Befehls zum Zielsystem weiterhin ein Auswählen eines Zielsystem-Handhabers zum Kommunizieren mit dem Zielsystem über die Schnittstellen schicht aufweist, wobei der Zielsystem-Handhaber basierend auf dem Zielsystem-Handhaberidentifizierer ausgewählt wird.
  6. Verfahren nach Anspruch 5, wobei der Zielsystem-Handhaberidentifizierer das Protokoll des Zielsystems identifiziert und der Zielsystem-Handhaber zum Protokoll des Zielsystems gehört.
  7. Verfahren nach Anspruch 5, wobei der Zielsystem-Handhaber ein auf Java basierendes Computerprogrammmodul ist.
  8. Verfahren nach Anspruch 1, wobei ein Transferieren des Befehlsdatenpakets über ein Netzwerk bei der Handlung (b) unter Verwendung eines ersten Protokolls erreicht wird, das unterschiedlich vom Protokoll des Zielsystems ist.
  9. Verfahren nach Anspruch 1, wobei die Handlung (a) weiterhin ein Umsetzen von Information für das Zielsystem in das Befehlsdatenpaket aufweist.
  10. In einem computerlesbaren Speichermedium gespeichertes Computerprogramm, das dann, wenn es auf einem Prozessor ausgeführt wird, derart konfiguriert ist, dass es das Verfahren eines der Ansprüche 1 bis 9 durchführt.
  11. Computersystem, das folgendes aufweist: (a) eine Unternehmensverwaltungsmaschine, die Daten und Anweisungen verarbeitet, die zu Zielsystemen gehören; (b) wenigstens ein Zielsystem (24); (c) ein Modul zum Erzeugen eines Befehlsdatenpakets, wobei das Befehlsdatenpaket wenigstens einen Befehl für das wenigstens eine Zielsystem und eine Netzwerkadresse für eine Schnittstellenschicht (26), über welche der Befehl zu dem wenigstens einen Zielsystem zu kommunizieren ist, aufweist; (d) ein Modul zum Transferieren des Befehlsdatenpakets über ein Netzwerk (22) basierend auf der Netzwerkadresse im Befehlsdatenpaket zu einer Schnittstellenschicht (26); wobei die Schnittstellenschicht angeordnet ist, um mit dem wenigstens einen Zielsystem unter Verwendung eines Protokolls des wenigstens einen Zielsystems zu kommunizieren.
DE69930953T 1998-10-16 1999-10-15 Betriebskommunikationsprotokoll Expired - Fee Related DE69930953T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10465498P 1998-10-16 1998-10-16
US104654P 1998-10-16
US11675499P 1999-01-22 1999-01-22
US116754P 1999-01-22
PCT/US1999/024122 WO2000023876A2 (en) 1998-10-16 1999-10-15 Enterprise communication protocol

Publications (2)

Publication Number Publication Date
DE69930953D1 DE69930953D1 (de) 2006-05-24
DE69930953T2 true DE69930953T2 (de) 2007-01-11

Family

ID=26801796

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69930953T Expired - Fee Related DE69930953T2 (de) 1998-10-16 1999-10-15 Betriebskommunikationsprotokoll

Country Status (10)

Country Link
EP (1) EP1127441B1 (de)
JP (1) JP2002528787A (de)
KR (1) KR20010085931A (de)
CN (1) CN1326634A (de)
AT (1) ATE323997T1 (de)
AU (1) AU769359B2 (de)
CA (1) CA2347148A1 (de)
DE (1) DE69930953T2 (de)
HK (1) HK1040554A1 (de)
WO (1) WO2000023876A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139709B2 (en) 2000-07-20 2006-11-21 Microsoft Corporation Middleware layer between speech related applications and engines
WO2002048935A1 (en) * 2000-12-11 2002-06-20 Skill Development Associates Ltd Integrated business management system
JP4883638B2 (ja) * 2007-10-18 2012-02-22 日本電信電話株式会社 ユーザインタフェース統合システム及びその方法
CN103023765B (zh) * 2012-12-04 2015-09-09 杭州迪普科技有限公司 一种基于脚本语言的报文处理方法和装置
CN110138717B (zh) 2018-02-02 2020-10-30 钟国诚 用于传送电子数据的电子装置和方法
CN109324828B (zh) * 2018-09-21 2023-06-02 山东华芯半导体有限公司 一种在验证平台中实现闪存多命令并行执行的方法
CN110708351A (zh) * 2019-08-30 2020-01-17 深圳鸿智云创科技有限公司 数据传输方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2044022A1 (en) * 1990-06-28 1991-12-29 Miriam A. Nihart Common agent computer management system and method
US5682534A (en) * 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US6052711A (en) * 1996-07-01 2000-04-18 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session web access in an interprise computing framework system.

Also Published As

Publication number Publication date
WO2000023876A2 (en) 2000-04-27
AU6432099A (en) 2000-05-08
ATE323997T1 (de) 2006-05-15
AU769359B2 (en) 2004-01-22
KR20010085931A (ko) 2001-09-07
DE69930953D1 (de) 2006-05-24
HK1040554A1 (zh) 2002-06-14
EP1127441B1 (de) 2006-04-19
JP2002528787A (ja) 2002-09-03
EP1127441A2 (de) 2001-08-29
CN1326634A (zh) 2001-12-12
WO2000023876A3 (en) 2001-05-31
CA2347148A1 (en) 2000-04-27

Similar Documents

Publication Publication Date Title
DE69833777T2 (de) Webschnittstelle für eine programmierbare steuerung
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69837010T2 (de) System und verfahren zum steuern des zugriffs auf eine vermittlungsdatenbank
DE69915661T2 (de) Prozesssteuerung
DE69728178T2 (de) Vorrichtung und verfahren zur fernen datenrückgewinnung
DE69819211T2 (de) Verteilte interfacearchitektur einer programmierbaren industriellen steuerung
DE69929586T2 (de) Fernzugriffserleichternde kraftstoffabgabevorrichtung
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE69832406T2 (de) Kombiniertes internet-und datenzugangssystem
EP2350873B1 (de) Erfassung des visuellen inhalts von browserfenstern
DE69733266T2 (de) Ausfallsicheres und ereignisgesteuertes transaktions-system und verfahren
DE60207155T2 (de) Objektorientiertes Internetschnittstellensystem für eine industrielle Steuereinrichtung
DE60018803T2 (de) Verfahren und apparat zur verwaltung von information der speicheraktivitäten von datenspeichersystemen
DE69837508T2 (de) Verfahren zum Inhaltswiederauffinden über ein Netzwerk
DE69531599T2 (de) Verfahren und Gerät zum Auffinden und Beschaffen personalisierter Informationen
DE69834579T2 (de) Http- sitzung- überwachung
DE19628168A1 (de) Vernetztes multimediales Netz
DE60029334T2 (de) Selbstbedienungsterminals zum anbieten von fremdanwendungen
EP1589416A2 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm
DE69830226T2 (de) Netzwerkkommunikationsbenutzernachrichtenübertragungssystem
DE69930953T2 (de) Betriebskommunikationsprotokoll
EP0990984B1 (de) Verfahren zum Vermitteln von Prozessdaten sowie Verfahren zum Erstellen von anwenderspezifischen Daten und mit diesem Verfahren erstellte Daten
DE10053665A1 (de) Prozeß-Leitsystem zur Fern-Überwachung und -Steuerung von verfahrenstechnischen Prozessen über das Internet
DE10118064A1 (de) Erweiterung Browser-Bezogener Internetseiteninhaltskennzeichen und Kennwortüberprüfung auf Kommunikationsprotokolle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee