DE69838139T2 - Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen - Google Patents
Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen Download PDFInfo
- Publication number
- DE69838139T2 DE69838139T2 DE69838139T DE69838139T DE69838139T2 DE 69838139 T2 DE69838139 T2 DE 69838139T2 DE 69838139 T DE69838139 T DE 69838139T DE 69838139 T DE69838139 T DE 69838139T DE 69838139 T2 DE69838139 T2 DE 69838139T2
- Authority
- DE
- Germany
- Prior art keywords
- application
- database
- software application
- target software
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Description
- 1. Hintergrund der Erfindung
- Die vorliegende Erfindung betrifft die Computerprogrammierung und insbesondere die automatische Erzeugung von datenbankinteraktiven Softwareanwendungen. Insbesondere betrifft die vorliegende Erfindung die softwarebasierte Erzeugung von kundenspezifischen Anwendungen auf der Grundlage eines Mensch-Maschinen-Dialogs auf hoher Ebene im Gegensatz zur herkömmlichen Computerprogrammierung oder computerunterstützten System-Engineering-Technologie (CASE).
- Stand der Technik
- Komplexe, betriebsnotwendige Softwareanwendungen umfassen normalerweise eine große Anzahl von Transaktionen, neben einer anspruchsvollen Endbenutzer-Schnittstelle für jede Transaktion, eine komplexe relationale Datenbank, die Fähigkeit zur Erstellung von wiederkehrenden und Ad-hoc-Berichten, serverbasierte, rechenintensive Softwarekomponenten und zusätzliche Softwareintegrationskomponenten. Aufgrund der Komplexität der Anwendung und der Komponenten, der Schwierigkeiten verbunden mit dem Beschaffen, Management und Erhalt von technisch hoch qualifiziertem Personal sowie der Unsicherheit bei der Verwaltung von großen Projekten in komplizierten und sich verändernden Betriebsumgebungen ist der Entwurf, die Entwicklung und die Realisierung von betriebsnotwendigen Softwareanwendungen teuer, mit hohen Risiken verbunden und häufig erfolglos.
- Ferner werden betriebsnotwendige Softwareanwendungen, nachdem sie verbessert und weiterentwickelt wurden, zunehmend komplexer und erfordern deshalb zusätzlichen Einsatz von Geld und Arbeitskräften zur Verbesserung, Fehlerbeseitigung und Instandhaltung. Selbst relativ einfache oder geringfügige Änderungen an betriebsnotwendigen Softwareanwendungen erfordern hohe Intelligenz und zahlreiche Testdurchläufe der geänderten Softwareanwendungen.
- Darüber hinaus haben sich die Programmiermethoden, die mit der Entwicklung von Softwareanwendungen verbunden sind, in den letzten beiden Jahrzehnten kaum geändert. Obwohl der kommerzielle Markt eine Vielzahl von Entwicklungswerkzeugen und neuen Programmiersprachen bietet, erfordern betriebsnotwendige Softwareanwendungen nach wie vor viel Programmierung in mindestens einer Programmiersprache. Verbesserung der Programmierproduktivität wird durch traditionelle Paradigmen, verbunden mit traditionellen Aufgaben wie mühsames und zeitaufwändiges Entwurfsunterlagen-Design, Anwendungskodierung auf niederer Ebene, manuelles Testen und Fehlerbeseitigung in den schriftlichen Codes und die Fehleranfälligkeit bei Korrekturen und Verbesserungen von Softwareanwendungen verhindert. Weitere Mängel im Zusammenhang mit der Entwicklung von traditionellen, komplexen Softwareanwendungen ergeben sich aus Änderungen in der Qualität in sämtlichen Phasen der Entwicklung, wie Definition der Anforderungen, Designspezifikation, Programmierung, Test und alle damit verbundenen Kommunikationen zwischen Kunden, Endbenutzern, Designern, Systemanalysten, Programmierern und Testern. So sind Softwareanwendungsprogrammierer häufig isoliert oder durch das Management oder Marketing von einer direkten Interaktion mit den Endbenutzern oder Kunden abgeschirmt, so daß sie die vom Endbenutzer antizipierten Designanforderungen nicht vollständig kennen oder verstehen. Des weiteren können sich die Designanforderungen, wenn die Softwareentwicklung sich über viele Monate oder Jahre hinzieht, ändern, wenn sich die Markttrends oder die Businessbedürfnisse der Endbenutzer ändern. Wenn das Design der Softwareanwendung nicht in der Lage ist, der Businessdynamik zu folgen, veraltet die Softwareanwendung.
- Darüber hinaus können die Endbenutzer das gewünschte Softwareanwendungsendprodukt möglicherweise nicht vollständig erfassen oder vor Augen haben oder – noch schlimmer – notwendige Designanforderungen können möglicherweise gar nicht in Erscheinung treten, bevor die Softwareanwendung getestet, vervollständigt oder ausgeliefert wurde. Häufig geschieht es auch, daß die Endbenutzer von kundenspezifischen Anwendungen das gewünschte "look und feel" oder die Funktion der gewünschten kundenspezifischen Anwendungssoftware nicht oder auf unzureichende Weise ausdrücken, solange sie nicht die erste Version des "Endprodukts" gesehen haben. Hierbei ist der Endbenutzer im allgemeinen eher in der Lage, negative Präferenzen durch Aufzählen jener Aspekte zum Ausdruck zu bringen, die seiner Ansicht nach bei der "Endversion" geändert werden müßten. Wenn nun an dieser Stelle, wie es meist der Fall ist, bereits große Beträge in die "Endversion" investiert wurden, muß der Endbenutzer entweder eine weniger ideale "Endversion" des Produkts akzeptieren oder es müssen weitere Ressourcen (d.h. Zeit und Geld) investiert werden, um die "Endversion" mit den neu entdeckten oder unzureichend mitgeteilten Präferenzen auszustatten.
- Zusätzlich zu den Kommunikationspannen kommt es häufig zu Qualitätsschwankungen bei Softwareanwendungen aufgrund der unterschiedlichen Fähigkeiten von Softwareprogrammierern. So passen manche Softwareprogrammierer weniger auf Details auf, weshalb es zu Defekten oder Fehlern in der Softwareanwendung kommt, die sich direkt auf die Qualität auswirken. Andere Programmierer wiederum stilisieren hingegen ihre Software-Komponenten, die hierdurch funktionell und optisch nicht mit den übrigen Teilen der Softwareanwendung übereinstimmen, was zu einem widersprüchlichen "look-and-feel" der Softwareanwendung führt. Derartige personenabhängige Unstimmigkeiten können die empfundene und tatsächliche Qualität und Leistung beeinträchtigen.
- Bezüglich des Designs und der Entwicklung von komplexen Softwareanwendungen werden, da die Hardware-Entwicklungsleistung wirtschaftlich zunimmt, neue Softwareanwendungen immer komplexer und anspruchsvoller, so daß ältere Softwareanwendungen veralten. Demzufolge führen traditionelles Softwareanwendungsdesign und Programmiertechniken zu weniger vorhersehbaren und dauerhaften Ergebnissen bei einem unannehmbar hohen Kostenniveau und damit verbundenen Entwicklungsrisiken.
- Daraus entsteht der Bedarf nach einer Methode und einem System für automatisches oder hochautomatisches Erzeugen von komplexen Datenbanksoftwareanwendungen ohne eingehende, traditionelle und detaillierte Programmierung. Das automatische Erzeugen von komplexen Softwareanwendungen ohne damit verbundene Unstimmigkeiten und Qualitätsschwankungen, bedingt durch unterschiedliche Programmierer, unterstützt die Implementierung oder das Prototyping von komplexen Softwareanwendungen auf eine im Vergleich zur traditionellen Programmierphilosophie schnellere Weise. Die automatische Erzeugung von Softwareanwendungen ermöglicht es einem Anwendungsdesigner, in relativ kurzer Zeit Softwareanwendungen zu prototypisieren und dadurch eine fast endgültige Version der kundenspezifischen Softwareanwendung zur unmittelbaren Bewertung durch einen Endbenutzer herzustellen. Darüber hinaus ermöglicht die automatische Softwareerzeugung dem Anwendungsdesigner auf zweckdienliche Weise Feedback, sowohl Vorlieben als auch Abneigungen, in die nachfolgenden Iterationen der Softwareanwendungen einzubauen, in die die überarbeiteten Präferenzen aufgenommen werden.
- Die
US-Patentschrift 5,495,567 offenbart ein computerimplementiertes Verfahren und ein Computersystem gemäß dem Oberbegriff der unabhängigen Ansprüche. - ZUSAMMENFASSUNG DER ERFINDUNG
- Erfindungsgemäß wird ein Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung zur Verwendung bei der Interaktion mit einer Anwendungsdatenbank bereitgestellt, mit den folgenden Schritten:
- a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor, um eine die Zielsoftwareanwendung repräsentierende Beschreibung abzuleiten;
- b) gegebenenfalls Verfeinern der Beschreibung;
- c) Speichern der Beschreibung der Zielsoftwareanwendung; und
- d) bei Ausführung der Zielsoftwareanwendung wird die Beschreibung aufgerufen;
- Gemäß einem weiteren Aspekt der Erfindung wird ein System zur computerunterstützten Erzeugung einer Zielsoftwareanwendung zur Datenbankverwaltung einer Anwendungsdatenbank bereitgestellt, wobei das System folgendes umfaßt:
- a) einen Anwendungs-Editor zum Durchführen eines Dialogs auf hoher Ebene, um eine die Zielsoftwareanwendung repräsentierende Beschreibung abzuleiten;
- b) Mittel zum Verfeinern der Beschreibung;
- c) einen Speicher zum Speichern der Beschreibung der Zielsoftwareanwendung zur nachfolgenden Referenzierung während der Ausführung der Zielsoftwareanwendung;
- Gemäß einem dritten Aspekt der Erfindung wird außerdem ein computerlesbares Medium zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung zur Interaktion mit einer Anwendungsdatenbank bereitgestellt, wobei das computerlesbare Medium computerausführbare Anweisungen zur Ausführung der folgenden Schritte aufweist:
- a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor, um eine die Zielsoftwareanwendung repräsentierende Beschreibung abzuleiten;
- b) gegebenenfalls Verfeinern der Beschreibung;
- c) Speichern der Beschreibung der Zielsoftwareanwendung; und
- d) bei Ausführung der Zielsoftwareanwendung wird die Beschreibung aufgerufen;
- Weitere Vorteile der Erfindung werden in der nachfolgenden Beschreibung erläutert und treten teilweise aus der Beschreibung klar zutage oder können bei der Umsetzung der Erfindung erfahren werden. Die Vorteile der Erfindung können mit den Instrumenten und Kombinationen realisiert und erzielt werden, die in den beiliegenden Ansprüchen besonders herausgestellt werden.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Um besser zu verstehen, auf welche Weise die oben zitierten und weitere Vorteile der Erfindung erzielt werden, wird eine eingehende Beschreibung der zuvor kurz erläuterten Erfindung unter Bezugnahme auf die speziellen Ausführungsformen derselben vorgelegt, die in den beiliegenden Zeichnungen dargestellt sind. Es versteht sich, daß diese Zeichnungen nur eine typische Ausführungsform der Erfindung darstellen und deshalb keine einschränkende Wirkung besitzen; die Erfindung wird mit Hilfe der beiliegenden Zeichnungen eingehender und detaillierter beschrieben und erläutert. Es zeigen:
-
1 ein vereinfachtes Flußdiagramm, in dem der Entwicklungsprozeß einer Zielanwendung gemäß einer Ausführungsform der vorliegenden Erfindung erläutert wird; -
2 ein Blockdiagramm auf hoher Ebene eines beispielhaften Systems zur automatischen Erzeugung einer zieldatenbankbasierten Softwareanwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; -
3 ein vereinfachtes Flußdiagramm, in dem das Verfahren zur Erzeugung einer zieldatenbankbasierten Softwareanwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung erläutert wird; -
4 ein vereinfachtes Diagramm zur Abbildung einer Satzebene der vorliegenden Erfindung auf ein physisches Datenbankschema einer Anwendungsdatenbank gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; -
5 ein vereinfachtes Blockdiagramm zur Darstellung der Komponenten eines Anwendungs-Editors zur Erzeugung einer zieldatenbankbasierten Softwareanwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; -
6 ein vereinfachtes Blockdiagramm der Komponenten eines Anwendungswörterbuches gemäß einer Ausführungsform der vorliegenden Erfindung; -
7 ein vereinfachtes Blockdiagramm der Komponenten einer universellen Anwendung gemäß einer Ausführungsform der vorliegenden Erfindung; -
8 ein vereinfachtes Diagramm zur Darstellung einer beispielhaften Schichtung der Beziehungen zwischen den verschiedenen Ebenen des Wörterbuches und der Anwendungsdatenbank des vorliegenden Systems gemäß einer Ausführungsform der vorliegenden Erfindung; -
9 zeigt ein vereinfachtes Diagramm zur Darstellung der Ausführung einer interaktiven Online-Transaktion gemäß einer Ausführungsform der vorliegenden Erfindung; und -
10 ein vereinfachtes Diagramm einer Client-Server-Partitionierung der Ausführung einer Zielanwendung gemäß einer Ausführungsform der vorliegenden Erfindung. - DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
- Der im folgenden gebrauchte Ausdruck „Prototyp" bezieht sich auf den Vorgang der Erzeugung eines Softwareprogramms oder Softwaremoduls oder eines Anteils hiervon. Die Prototypsoftware kann die Form eines sofort verfeinerten Zielsoftwareprogramms oder einer zum Abschluss gebrachten, auslieferbaren Zielsoftwareanwendung annehmen.
- Der im folgenden gebrauchte Ausdruck „universelle Anwendung" bezieht sich auf ein Softwaremodul, das in der Lage ist, angepaßte oder Zielsoftwareanwendungen durch Referenzieren einer anwendungsspezifischen Datei, die im folgenden als „Wörterbuch" bezeichnet wird, zu offenbaren. Die universelle Anwendung kann in einer Client-Server-Anordnung partitioniert werden, wobei ein Anteil der universellen Anwendung in einer Client-Umgebung, andere Anteile hingegen in einem Server-Bereich untergebracht sein können.
-
1 ist ein vereinfachtes Flußdiagramm, in dem ein neu gestaltetes Verfahren zur Softwareentwicklung und -verwendung gemäß der vorliegenden Erfindung dargestellt ist. Die traditionelle Softwareentwicklung war durch ständige Fehlkalkulation, sowohl in der Ablaufplanung als auch bei den mit der Entwicklung der Zielanwendung verbundenen Kosten gekennzeichnet. Die vorliegende Erfindung verwendet sowohl Technologien als auch Methoden zur Veränderung des Paradigmas zur Implementierung der Zielanwendungssoftware. Dieses Paradigma ändert die auf mehrere Jahre geplante Softwareentwicklung in einen Softwareentwicklungsplan, der sich über vier bis acht Monate erstreckt. Um ein solches Softwareentwicklungsparadigma zu ändern, beruht die vorliegende Methodik auf mindestens drei methodologischen Parametern. Als erstes vermindert die vorliegende Erfindung die mit der Softwareentwicklung verbundenen Risiken durch Verkürzung der zur Softwareentwicklung erforderlichen Zykluszeiten. Durch Verminderung der Projektdauer können die Risiken, die mit sich verändernden Unternehmensanforderungen oder Fähigkeiten wie der Finanzierung verbunden sind, vermindert oder gar vermieden werden. Zweitens ist die vorliegende Erfindung dank der Verwendung der nachstehend beschriebenen Technologie in der Lage, eine Anfangsversion der Zielanwendung in sehr kurzer Zeit zu erzeugen und vereinfacht dadurch den schrittweisen Ansatz zur Verbesserung der Zielanwendung gemäß den Präferenzen des Zielanwendungsbenutzers. Diese schrittweisen Ansätze haben gezeigt, daß sie zu größerer Kundenzufriedenheit bei der Endversion der Zielanwendung hauptsächlich dank der zeitlichen Interaktion mit dem Benutzer während der Verbesserung der Zielanwendung führen. Drittens ist es mit der Zielanwendungsentwicklungsmethodik der vorliegenden Erfindung möglich, die Zielanwendung in einer verfeinerten Form fertigzustellen oder zu produktisieren, so daß (i) der Zielanwendungsbenutzer oder Kunde eine Lösung höherer Qualität erhält, (ii) die Anwendung einen längeren Lebenszyklus aufweist, (iii) die Komponenten der Zielanwendung für andere Zielanwendungen wieder verwendet werden können und (iv) die Zielanwendung an andere Kunden vermarktet werden kann. - Diese Entwicklungsmethodik bietet eine Ausgangsbasis, um den evolutionären Lebenszyklus von Zielanwendungen zu beenden und Zielanwendungen zum Zwecke der anschließenden Wiederverwendung und des Wiederverkaufs zu produktisieren. Die Designmethodik der vorliegenden Erfindung kann in drei unterschiedliche Stufen unterteilt werden, wie in
1 gezeigt wird. Jede Stufe besitzt eine Reihe von miteinander verknüpften Phasen mit Tätigkeiten, die entweder dem Anwendungsdesigner oder dem Zielanwendungsbenutzer oder beiden zugewiesen ist. In Kombination mit der nachstehend beschriebenen Technologie bietet die vorliegende Methodik einen erfinderischen Ansatz zur Softwareimplementierung.1 zeigt einen Zielanwendungsentwicklungsprozeß10 , der einen evolutionären Lebenszyklus zur Implementierung von Zielanwendungen bereitstellt und Zielanwendungen produktisiert. Der Zielanwendungsprozeß10 umfaßt drei verschiedene Stufen, eine Stufe12 zur Entwicklung der Anwendung12 , eine Stufe36 zur Nutzung der verpackten Anwendung und eine Stufe44 zur Unterstützung der Anwendung. - Die Stufe
12 zur Entwicklung der Anwendung umfaßt die Tätigkeiten oder Schritte, die erforderlich sind, um die Anforderungen einer Zielanwendung festzulegen, die Zielanwendung vorzubereiten und die Zielanwendung zu nutzen. Die Stufe12 zur Entwicklung der Anwendung ist die erste Stufe für die Implementierung von neuen Zielanwendungen, obwohl der Implementierungsprozeß die drei Stufen auf zyklische Weise durchläuft. Die Stufe14 zur Entwicklung von exekutiver Auswertung ist die erste Phase der Stufe12 zur Entwicklung der Anwendung und umfaßt die Schritte (i) Festlegung des Umfangs der Zielanwendung und Klärung sowie Überwachung von Meilensteinen, wie die eindeutige Identifizierung der Unternehmenserfordernisse, (ii) Demonstration der Technologie, (iii) Erzeugung eines formalen exekutiven Auswertungsdokuments und (iv) Vorstellung eines Projektvorschlags samt Kosten und Ablaufplan. Das exekutive Auswertungsdokument grenzt die Zielanwendung klar ab und kann mit einer intensiven Interaktion mit dem Benutzer verbunden sein, um den Umfang der Zielanwendung genau darzustellen. - Die zweite Phase innerhalb der Stufe
12 zur Entwicklung der Anwendung beinhaltet die Phase16 zur Festlegung der Anforderungen zur Entwicklung einer sehr spezifischen Beschreibung der letzten Implementierung der Zielanwendung. Die Phase16 zur Festlegung der Anforderungen stützt sich auf den Umfang der Anforderungen, die in der exekutiven Auswertung enthalten sind, die in der Phase14 zur Entwicklung der exekutiven Auswertung entwickelt wurde. Die Phase16 zur Festlegung der Anforderungen definiert ferner die Ziele und beschreibt die Zielprozesse für jede funktionelle und technische Komponente der Zielanwendung. Der eigentliche Zweck bei der Ermittlung dieser Informationen liegt in der Maximierung der Nutzbarkeit sämtlicher erzeugter Software, indem dafür gesorgt wird, daß Anteile der Zielanwendung erst dann erzeugt werden, wenn die Zielanwendung vollständig beschrieben wurde. - Die Phase
16 zur Festlegung der Anforderungen umfaßt ferner eine Konzepttrainingsphase18 , eine Konzepthandbuchphase20 , eine Anwendungsdemonstrations-Aufzeichnungsphase22 , eine Phase24 zur Entwicklung der Teststrategie und eine Datenbankdesignphase26 . Die Konzepttrainingsphase18 stellt das erste größere, auslieferbare Produkt der Phase16 zur Festlegung der Anforderungen dar. Die Konzepthandbuchphase20 stellt eine dokumentierte Version der detaillierten Leistungen der Zielanwendung bereit. Dieses zweite wichtige, auslieferbare Produkt führt die Zielanwendungskomponenten wie beispielsweise die Unternehmensfunktionen, Unterstützungsfunktionen, Transaktionen, Smart Codes, Menüs, Berichte, Verantwortlichkeiten, Server und Analysen auf, die nachstehend beschrieben werden. Es muß angemerkt werden, daß auch andere Tätigkeiten während der Konzepthandbuchphase20 beginnen, wie beispielsweise die Datenbankdesignphase26 und die Teststrategieentwicklung24 . Die Anwendungsdemonstrations-Aufzeichnungsphase22 beschreibt eine Demonstration, die letztlich zu einem effektiven Werkzeug zur Übertragung von zwingend erforderlichen Leistungen und Funktionen der Zielanwendung wird. Dieses dritte auslieferbare Produkt innerhalb der Phase16 zur Festlegung der Anforderungen ist eine Demonstrationsaufzeichnung, die mit den Leistungen gegengeprüft werden kann, die in der Konzepthandbuchphase20 erzeugt werden. Die Phase24 zur Entwicklung der Teststrategie definiert eindeutig zusammenhängende Tests zur Gewährleistung der funktionellen Übereinstimmung, dauerhaften Stabilität und Vollständigkeit der Zielanwendung. Der Benutzer oder Kunde der Zielanwendung stellt Beispielszenarien und Daten samt repräsentativen, operationalen Eingaben und Ausgaben zur Verfügung, die bei der Entwicklung von Regressionstests verwendet werden, die zur Verifizierung der gleichbleibenden Funktionstüchtigkeit der Zielanwendung während der Entwicklungs- und Nutzungsprozesse eingesetzt werden müssen. Die Datenbankdesignphase26 verwendet in der bevorzugten Ausführungsform Daten-Beziehungs-Modelle, um die wichtigsten Datengruppierungen und Zusammenhänge zu beschreiben, um ein logisches Datenbankmuster herzustellen. Obwohl viele Zielanwendungen die Integration von existierenden Datenbankanwendungen erfordern, bietet die Datenbankdesignphase26 einen Einblick in die Verwaltung und Wartungsaspekte innerhalb einer normalisierten Datenbank. - Die Phase
28 zur Vorbereitung der Anwendung, d.h. die dritte, wichtige Phase innerhalb der Anwendungsentwicklungsstufe12 , sieht eine Phase vor, in der die Zielanwendung aus den Definitionen entwickelt wird, die in der vorhergehenden Phase16 zur Festlegung der Anforderungen erfasst wurden. In dieser Phase wird die Zielanwendung durch Verwendung der nachstehend beschriebenen Architektur vorbereitet, die die zeitgerechte Erzeugung der Zielanwendung erleichtert. Innerhalb der Anwendungsvorbereitungsphase28 werden Menüs, Sätze, Transaktionen, Serverprogramme und Analysen erzeugt, die die zugrundeliegenden Transaktionen innerhalb der Zielanwendung unterstützen. Das Konzept der Menüs, Sätze, Transaktionen, Serverprogramme und Analysen wird in der nachfolgenden Beschreibung und den Figuren detailliert erläutert. Die Phase32 verhaltensbezogener Tätigkeiten wird gleichzeitig mit der Anwendungsvorbereitungsphase28 ausgeführt. Die Phase32 der verhaltensbezogenen Tätigkeiten wird beinahe ausschließlich vom Benutzer der Zielanwendung durchgeführt. Innerhalb der Phase32 der verhaltensbezogenen Tätigkeiten bereitet der Zielanwendungsbenutzer die Umgebung vor, in welcher die Zielanwendung eingesetzt werden soll. Diese Vorbereitung umfaßt die Definition von Benutzerrollen und Verantwortlichkeiten, die Beschaffung von Entwicklungshardware und -software, die Bewertung und Genehmigung auslieferbarer Produkte, die Bestätigung von Unternehmensprozessen, die Herstellung von technischen Infrastrukturen zur Unterstützung der Zielanwendung und den Zugang zur Unternehmenskultur, um festzulegen, wie die Zielanwendung am besten in die Unternehmensfunktionen eingebaut werden kann. Die Projektverwaltungsphase34 , die gleichzeitig mit den vorhergehenden Phasen ausgeführt wird, sieht einen Mechanismus zur Festlegung des Zweckes des Projekts, zur Entwicklung eines Projektstatuts, die Festlegung der Rollen und Verantwortlichkeiten aller Teammitglieder, die Bewertung und Ablaufplanung der Projektaufgaben, die Berichterstattung über den Projektstatus und die Überwachung des Fortschritts und der mit jeder Phase verbundenen Abhängigkeiten vor. Die Stufe36 zur Nutzung der verpackten Anwendung ist die zweite Stufe innerhalb des Zielanwendungsentwicklungsprozesses10 . Die Stufe36 zur Nutzung der verpackten Anwendung dient zur Vorbereitung und Nutzung der Zielanwendung zwecks Freigabe. Auf dieser Stufe wird die Zielanwendung "produktisiert", weshalb eine Entwicklungs-Umgebungs-Zielanwendung in eine verpackte Zielanwendung verwandelt wird. Die Stufe36 zur Nutzung der verpackten Zielanwendung umfaßt eine Aktualisierung der Konzepthandbuchphase38 , eine Aktualisierung der Datenbankdesignphase40 und eine Aktualisierung der Teststrategie42 . - Die Stufe
44 zur Unterstützung der Anwendung sorgt für laufende Unterstützung der Benutzer der produktisierten Zielanwendungen. Es muß angemerkt werden, daß die Stufe44 zur Unterstützung der Anwendung auf die Anwendungsentwicklungsstufe12 zurückgreift, um Funktionen und Leistungen aufzunehmen, die aus der Anwendungsunterstützungsstufe44 abgeleitet sind. Der Prozeß10 zur Entwicklung der Zielanwendung vereinfacht die Erzeugung von anspruchsvollen Zielanwendungen in einer wesentlich kürzeren Zeitspanne, wenn er unter Verwendung des oben beschriebenen Entwicklungsprozesses zusammen mit der nachstehend beschriebenen Architektur zur Entwicklung von Zielanwendungen entwickelt wird. -
2 ist ein vereinfachtes Blockdiagramm auf hoher Ebene, das zur Ausführung der vorliegenden Erfindung verwendet wird. Eine kundenspezifische Zielsoftwareanwendung100 sieht Leistungen vor, die eine Benutzerschnittstelle und Datenmanipulation von Daten umfaßt, die in einer Anwendungsdatenbank102 enthalten sind. Komplexe, betriebsnotwendige Unternehmensanwendungen enthalten normalerweise eine große Anzahl von Online-Transaktionen, serverbasierte Transaktionen, Berichte, Analysen und Serverprogramme, die alle jeweils zahlreiche Funktionen bereitstellen. Die Datenbank102 kann bereits vor der Erzeugung der Zielanwendung100 vorhanden sein oder aber gleichzeitig mit der Erzeugung der Zielanwendung100 erzeugt werden. Ein Anwendungs-Editor104 erleichtert das Prototyping einer neuen Anwendung wie zum Beispiel der Zielanwendung100 durch Erzeugung einer Spezifikation mit Beschreibungen der Transaktionen, Berichte, Analysen, Serverprogramme und Gruppierungen von "Datensätzen" aus der Datenbank102 , die die Basis für solche Transaktionen, Berichte, Analysen und Serverprogramme bildet. In der vorliegenden Erfindung bedeutet Prototyping, schnell eine vollständige, ablaufende Anwendung mit geringst möglicher Programmierung – sofern erforderlich – zu erstellen. Prototyping impliziert außerdem das Ablaufen oder Ausführen einer Anwendung, das Testen der Anwendung, um ihr korrektes Verhalten zu verifizieren, das Beobachten der Anwendung während der Ausführung und das Feststellen der bevorzugten Funktionen, um diese in einer anschließenden Revision einbauen oder ändern zu können. - Die Zielanwendung
100 umfaßt ein Wörterbuch106 , das in Übereinstimmung mit einer universellen Anwendung108 operiert. Das Wörterbuch106 wird unter Verwendung eines Anwendungs-Editors104 erstellt, um die individuellen Merkmale der Zielanwendung100 zu beschreiben. Das Wörterbuch106 hat in der bevorzugten Ausführungsform die Form einer Datenbank, die als Ablage zur Speicherung einer Anwendungsspezifikation fungiert. Transaktionen, die die Operationen an Daten beschreiben, operieren an Daten aus einer oder mehreren Datenbanktabellen und stellen dem Endbenutzer eine "Ansicht" von Daten vor. In der bevorzugten Ausführungsform sind Datenansichten in Form von Eltern-, Kind-, Geschwister-, Enkelbeziehungen usw. ohne Einschränkungen hierarchisch strukturiert und bilden Datensätze wie ferner in3 beschrieben ist. In der bevorzugten Ausführungsform ist der Anwendungs-Editor104 selbst eine Zielanwendung100 , die rekursiv erzeugt wurde und gemäß der Beschreibung des vorliegenden Abschnitts funktioniert. Die universelle Anwendung108 umfaßt einen reichhaltigen Satz an Anwendungskomponenten (7 ), die, wenn sie für eine besondere Anwendung im Wörterbuch106 beschrieben sind, die Ausführung der Zielanwendung100 anpassen. Die universelle Anwendung108 "offenbart" dem Endbenutzer kundenspezifische Zielanwendungen100 , wie sie im Wörterbuch106 beschrieben sind. Wie in2 gezeigt wird, kann die universelle Anwendung108 Client- und Server-Anteile umfassen. Die Partitionierung der Funktionen der universellen Anwendung108 auf Client- und Server-Anteile variiert je nach der spezifischen Betriebsumgebung der Anwendung100 . Bei Betriebsumgebungen wie zum Beispiel Local Area Networks, bei denen der Netzwerkzugang aufgrund von hohem Verkehrsaufkommen oder unzureichenden Ressourcen verstopft oder limitiert ist, kann die Leistung erhöht werden, wenn zusätzliche Funktionen auf den Server-Anteil verteilt werden, so daß der zusätzliche Datentransfer zwischen den Datenbankressourcen (.z.B. Server) und einem Client (z.B. Endbenutzerarbeitsplatz) erleichtert wird. Es muß außerdem angemerkt werden, daß sowohl der Client- als auch der Serveranteil zusammen mit der Datenbank102 in derselben physischen Hardware, zum Beispiel einem Computer, koexistieren können. Darüber hinaus kann auch das Wörterbuch106 zusammen mit der Datenbank102 in derselben physischen Hardware, z.B. einem Computer, koexistieren. Für das Prototyping einer Anwendung beschreibt der Anwendungsdesigner unter Verwendung des Anwendungs-Editors104 die Zielanwendung durch Beschreiben der Menüstruktur, die in der Ausführung einer Transaktion mit einer definierbaren Datengruppe endet, die als Datensatz bekannt ist. "Ansichten" der Daten werden dem Endbenutzer über Präsentationsmittel vorgestellt, die als ein oder mehrere "Rahmen" bezeichnet werden. In der vorliegenden Erfindung kann Prototyping naturgemäß ein iterativer Prozeß sein. Durch Vereinfachung der zeitgerechten Erzeugung einer Prototyp-Zielanwendung können Präferenzen bei Verbesserungen schneller festgestellt und bearbeitet werden. - Wenn der Anwendungsdesigner beginnt, die Anwendung
100 zu entwerfen, muß der Anwendungsdesigner die antizipierte Anwendungsdatenbank102 im Wörterbuch106 unter Verwendung des Anwendungs-Editors104 beschreiben. Wenn eine bereits existierende Anwendungsdatenbank102 eingebaut werden soll, unterstützt der Anwendungs-Editor104 den automatisierten Nachbau der existierenden Datenbankinformationen direkt im Wörterbuch106 . Wenn der Anwendungsdesigner auch die Anwendungsdatenbank102 als Teil der Zielanwendung100 konzipiert, verwendet der Anwendungsdesigner den Anwendungs-Editor104 , um die Datenbank zu beschreiben. Nach der Beschreibung im Wörterbuch106 unterstützt der Anwendungs-Editor104 die automatisierte Vorwärtskonstruktion der gewünschten Zielanwendungsdatenbank102 durch Definition und Erzeugung des relationalen Datenbankschemas.3 stellt ein vereinfachtes Flußdiagramm zur Erzeugung einer kundenspezifischen Zielanwendung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung dar. Die Zielanwendung100 (2 ) wird mit Hilfe des Anwendungs-Editors104 erzeugt (2 ), wie ferner detailliert in5 dargestellt ist. Kurz gesagt, stellt der Anwendungs-Editor104 eine Umgebung zum Editieren und Erzeugen von kundenspezifischen Anwendungen bereit. - Innerhalb des Anwendungs-Editors
104 beginnt das Erzeugen des Anwendungsprozesses120 mit einem Namensanwendungsschritt122 , der die Zielanwendung eindeutig identifiziert. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor104 (Figur 5) eine graphische Schnittstelle zur bequemen Ausführung des Namensanwendungsschrittes122 durch Erzeugen eines separaten Wörterbuches106 oder eines logischen Bereiches innerhalb eines bestehenden Wörterbuches106 bereit, in dem Beschreibungen mit Transaktionen und bestimmten Definitionen der Zielanwendung für spätere Änderungen durch den Anwendungs-Editor104 oder zur späteren Verwendung durch die universelle Anwendung108 gespeichert werden. Die vorliegende Erfindung schließt Sicherheitsleistungen ein, die einen Verantwortlichkeitsassoziierungsschritt124 und einen Benutzeridentifizierungsschritt126 umfassen. Der Veranwortlichkeitsassoziierungsschritt124 ermöglicht es dem Anwendungsdesigner, den Zugang oder die Ausführungsanteile der Zielanwendung unter zugriffsbeschränkten Benutzerklassen aufzuteilen. So kann zum Beispiel eine Zielanwendung, die auf die Verkaufs- und Marketinganwendung gerichtet ist, definierbare Benutzerverantwortlichkeiten wie Verkäufer, Verkaufsleitung, Unternehmensleitung und Systemadministratoren einschließen. Im Benutzeridentifizierungsschritt126 wird bestimmten Endbenutzern der Zugang zu bestimmten Verantwortlichkeiten erteilt, so daß die Endbenutzer nicht verwirrt sind, wenn sie später in ihrem Menü eine Teilmenge von Transaktionen sehen, die zum Teil die Privilegien eines bestimmten Benutzers überschreiten können. - Außerdem sind die einem bestimmten Benutzer nicht verfügbaren Transaktionen durch Verknüpfung der Transaktionen mit Verantwortlichkeiten diesem Benutzer verborgen.
- In der vorliegenden Erfindung verwendet die Zielanwendung eine Menüstruktur zum Navigieren zwischen verschiedenen Menüniveaus und Transaktionen innerhalb der Zielanwendung. Der Menüdefinitionsschritt
128 dient zum Definieren und Festlegen der Beziehungen zwischen den Hauptmenüeinträgen der Zielanwendung. Der Untermenüdefinitionsschritt130 erzeugt Untermenüs oder Kindermenüs in Hauptmenü-Einträgen, wobei Verantwortlichkeiten auf Menüs und Untermenüs abgebildet werden, die dann allen Benutzern innerhalb einer Verantwortlichkeitsklasse in gleicher Weise präsentiert werden. Außerdem können Menüs und Untermenüs in der bevorzugten Ausführungsform während der vorbereitenden Phasen der Anwendungsentwicklung grob definiert werden, wodurch ein hierarchisches Design der Zielanwendung ermöglicht wird. Darüber hinaus ist in der bevorzugten Ausführungsform das Konzept der Verantwortlichkeiten, Menüs und Untermenüs ausreichend abstrakt, so daß verschiedene Mittel optisch darstellen können, was die Technik zur Identifizierung des Geschäftszweckes des Benutzers zur Verwendung der Zielanwendung104 (Verantwortlichkeit), zur Identifizierung der dem Benutzer zur Verfügung stehenden Funktionen (Menüs) und zur Identifizierung der dem Benutzer zur Verfügung stehenden Unterfunktionen (Untermenüs) umfaßt. - Der Datenbankdefinitionsschritt
132 erlaubt es einem Anwendungsdesigner, eine Anwendungsdatenbank zum Gebrauch durch die Zielanwendung zu beschreiben. Der Datenbankdefinitionsschritt132 erlaubt es dem Benutzer, Tabellenspalten für eine logische Datenbank zu definieren und Spaltennamen sowie weitere datenbankbezogene Details aufzuführen. Einheiten und Attribute in der Anwendungsdatenbank können in logische Gruppen zur Aufnahme in die Tabellen unterteilt werden. In der vorliegenden Erfindung können Anwendungsdatenbanken prototypisiert oder von einem Dialog auf hoher Ebene erzeugt werden und physische Tabellen mit entsprechenden Spalten und Beschränkungen umfassen. Im Datenbankdefinitionsschritt132 definiert ein Anwendungsdesigner innerhalb eines Anwendungs-Editors104 (5 ) die Tabellen innerhalb der Anwendungsdatenbank, die bei der Bildung von Transaktionen und Datensätzen verwendet werden, an denen die Transaktionen operieren sollen. Der Datenbankdefinitionsschritt132 sorgt ferner für die Abbildung zwischen einer physischen Datenbankebene und einer logischen Abbildungsebene, die zum Definieren von Transaktionen und Sätzen verwendet wird (siehe8 ). - Der Satzdefinitionsschritt
134 definiert einen Satz oder eine Sammlung von Datenelementen, die in Transaktions-, Berichts-, Analyse- oder Serverprogrammschritten verwendet werden. In der bevorzugten Ausführungsform definiert der Satzerzeugungsschritt134 einen Satz als eine Liste von Feldern (Spalten) und deren Beziehungen. Zur Erzeugung von Sätzen verwendet der Anwendungsdesigner einen Anwendungs-Editor104 (2 ), um Informationen innerhalb des Wörterbuches106 zu erzeugen, das die Beschreibung der Satzdefinitionen enthält. Der Satzerzeugungsschritt134 definiert und verfeinert ein Satzanwendungsobjekt im Wörterbuch106 . Der Satzerzeugungsschritt134 ermöglicht das Definieren von Sätzen, die beim Bilden von Transaktionen, Berichten, Analysen und Serverprogrammen verwendet werden. Durch den Gebrauch von Sätzen kann der Anwendungsdesigner ein hierarchisches Design von Anwendungsobjekten beibehalten, die in Transaktionen, Berichten, Analysen und Serverprogrammen verwendet werden. Ein Satz kann eine oder mehrere Ansichten enthalten, die auf entsprechenden relationalen Datenbanktabellen basieren. Des weiteren kann der Anwendungsdesigner einen Satz durch Basieren dieses Satzes auf einem bereits definierten Satz festlegen, wodurch das Vererbungsprinzip aufgerufen wird. Die Vererbung impliziert, daß alle Attribute eines bestehenden Satzes auf den neuen Satz vererbt werden, ohne daß diese Attribute nochmals angegeben werden müssen. Relationale Datenbanken speichern Daten in Tabellen, die sich zum schnellen Speichern, Aktualisieren und Auffinden eignen. Designer von relationalen Datenbanken drängen auf "Normalisierung" von Tabellen, um den Datenspeicher zu minimieren und die Datenflexibilität zu maximieren. Wenn zum Beispiel eine Bestellung in einer relationalen Datenbank gespeichert wird, werden die Daten für eine einzige Bestellung durch Hinzufügen von Reihen in Mehrfachtabellen, einer Reihe in einer Kopftabelle, Lieferantentabelle, Bestellungs-Einzelposten usw. normalisiert. Da die Daten über Mehrfachtabellen verteilt werden, operiert die Zielanwendung an "Datensätzen", wobei ein Satz aus all den Daten besteht, an denen Operationen vorgenommen werden sollen. Deshalb ist ein Satz eine Assoziierung von Daten in einer für den Anwendungsprozeß geeigneten Form. - Unter Bezugnahme auf
4 , in der ein vereinfachtes Diagramm zum Abbilden einer Satzebene der vorliegenden Erfindung auf ein physisches Datenbankschema einer Anwendungsdatenbank gezeigt wird, kann man sich Sätze bildlich als Geschäftsobjekt zum Sammeln von Daten vorstellen, die eine definierte Gruppe von Beziehungen besitzen. Ein Lieferantenbestellungssatz144 ist innerhalb einer Satzebene zum logischen Abbilden von Ebene206 definiert und umfaßt das Lieferantenkennzeichen, den Lieferantennamen, die Bestellungszeile, Bestellungszeilenbeschreibung und Bestellungsbeschreibung. Die Instanzen146 und148 umfassen dieselben Elemente wie der Lieferantenbestellsatz144 , aber die Instanzen146 und148 bilden auf andere physische Bestellungen ab. Die vorliegende Erfindung erleichtert deshalb das Definieren von Beziehungen als eine Satzeinheit, wie zum Beispiel Lieferantenbestellung, und ermöglicht es dem Benutzer dann mit Hilfe der Satzbezeichnung zu referenzieren oder abzufragen. So kann ein Benutzer in der vorliegenden Erfindung eine Abfrage nach Bestellung Nr. 1 mit der Architektur der vorliegenden Erfindung unter Referenzierung der Satzdefinition und Herausnehmen der entsprechenden Daten aus der Anwendungsdatenbank102 vornehmen. Durch Erleichterung der Definition von Beziehungen in Sätzen stellt die vorliegende Erfindung eine Abstraktion einer Benutzerschnittstellenebene208 von einer physischen Ebene202 bereit. Zusätzlich erleichtert diese Leistung die Kopplung einer neuen Zielanwendung mit einer geerbten Anwendungsdatenbank. Eine von logisch auf physisch erfolgende Abbildungsebene204 stellt eine Abbildung von Sätzen auf die physischen Anwendungsdatenbankelemente162 ,164 ,166 und168 durch die Ansichten152 ,154 ,156 und158 bereit. Während ein Satz eine Sammlung von einer oder mehreren Ansichten ist, kennt ein Satz auch die Beziehung zwischen den Ansichten. So kann der Bestellungssatz Ansichten enthalten, die als Bestellungskopf, Bestellungsdetailzeilen, Bestellungsdetailzeilenbeschreibung und Bestellungsbeschreibung bezeichnet werden. Die Ansichten enthalten Aufzeichnungen, die Instanzen von Ansichten darstellen. Im unmittelbaren Beispiel gibt es eine Bestellungskopfaufzeichnung und mehrere Bestellungsdetailzeilen, Bestellungsdetailzeilenbeschreibung und Bestellungsbeschreibungsaufzeichnungen in der Bestellung. Darüber hinaus enthalten Aufzeichnungen und Ansichten Felder. Im unmittelbaren Beispiel kann der Bestellungskopf Felder enthalten wie Menge, Lieferanschrift usw. Beim Suchen von Bestellungen einer bestimmten Firma würde eine Instanz des Satzes Bestellungen für jede Bestellung in der Datenbank zurückgesendet. In der vorliegenden Erfindung erlaubt das Satzkonzept dem Anwendungsdesigner, alle Daten zu definieren, an denen die Zielanwendung möglicherweise operieren wird. Die Datenbankbibliothek238 (7 ) erzeugt automatisch eine strukturierte Abfragesprache, die zur Manipulation der Anwendungsdatenbank102 erforderlich ist (2 ). Unter erneuter Bezugnahme auf3 werden im Transaktionsdefinitionsschritt136 Informationen über eine bestimmte Beziehung oder Sammlung von Informationen erfasst und aufrechterhalten. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor104 eine graphische Benutzerschnittflächen umgebung zum Konfigurieren und Definieren von Transaktionen bereit. Eine Transaktion kann den Benutzer auffordern, einen Datenwert zur Speicherung in der Datenbank einzugeben, bestehende Daten in einer Datenbank zu manipulieren, Daten aus einer Datenbank aufzusuchen und einem Benutzer zu präsentieren oder die vorhergehenden Funktionen auszuführen, ohne einem Benutzer Informationen zu präsentieren. Darüber hinaus kann eine Transaktion eine Vielfalt an Geschäftsregeln aufrufen, die der Anwendungsentwickler als Schnipsel beschreiben kann (5 ). - Der Berichtdefinitionsschritt
138 sorgt für das Erfassen und Aufrechterhalten von Informationen über einen bestimmten Bericht. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor104 eine graphische Benutzerschnittstellenumgebung zum Konfigurieren und Definieren der Berichte bereit. Ein Benutzer kann bei Bedarf oder auf einem wiederkehrenden Formular, das in der bevorzugten Ausführungsform in einem Server erzeugt wird, einen Bericht anfordern. Zusätzliche Leistungen der universellen Anwendung108 ermöglichen es dem Benutzer, einen Bericht an einen bestimmten Drucker direkt auszugeben, einen Bericht an den Client-Arbeitsplatz zur Bewertung auszugeben, den Bericht nach der Bewertung auszudrucken, den Bericht nach der Bewertung zu löschen, den Bericht an andere Benutzer zu senden, eine Berichtanforderungen zusammenzufassen, so daß der Benutzer Mehrfachberichte wie Monatsabschlußberichte mit einer Anforderung erhalten und die Definition einer Berichtgruppe aufrechterhalten kann. Darüber hinaus unterstützen alle Berichtanforderungen flexible Optionen wie zum Beispiel Datenbereiche für die im Bericht enthaltenen Daten. In der bevorzugten Ausführungsform können Berichte auch durch Verwendung einer Beschreibungssprache auf hoher Ebene zur genauen Festlegung der Berichtbeschreibung definiert werden. - Der Analysedefinitionsschritt
140 sorgt für das Erfassen und Aufrechterhalten von Informationen über bestimmte Analysen. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor104 eine graphische Benutzerschnittstellenumgebung zum Konfigurieren und Definieren der Analysen bereit. Eine Analyse fragt wichtige Daten aus einer Anwendungsdatenbank102 ab und präsentiert diese Daten zur interaktiven Manipulation für die Datenanalyse und Entscheidungsunterstützung. Um die Datenanalyse zu vereinfachen, kann der Benutzer die Daten aufwärts oder abwärts sortieren, sich in den verschiedenen Niveaus zusammenfassender Informationen nach oben oder nach unten bewegen, die Daten abwechslungsweise in jeweils zwei von drei Dimensionen zur Analyse ansehen, aufschließen, um Details hinter allen Summen zu sehen, Mehrfachattribute der Daten ansehen, eine Analyse zwecks direkter optischer Analyse kopieren, Analyseinformationen in eine Industriestandardtabelle übertragen oder die Analyse ausdrucken. - Der Serverprogrammdefinitionsschritt
142 sorgt für das Erfassen und Aufrechterhalten von Informationen über ein bestimmtes Serverprogramm. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor104 eine graphische Benutzerschnittstellenumgebung zum Konfigurieren und Definieren von Serverprogrammen bereit. Ein Serverprogramm läuft normalerweise auf einem Server ab oder führt einige Geschäftsfunktionen interaktiv als Teil einer Transaktion, auf einem Formular oder auf Anfrage an einigen Datensätzen der Anwendungsdatenbank102 aus. -
5 zeigt ein vereinfachtes Blockdiagramm des Anwendungs-Editors104 mit seinen assoziierten Softwaretransaktionen, die bei der Erzeugung einer kundenspezifischen Zielanwendung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet werden. In der bevorzugten Ausführungsform ist der Anwendungs-Editor104 selbst eine Anwendung, die aus einem Wörterbuch106 (2 ) und einer universellen Anwendung108 (2 ) erzeugt wurde. Der Anwendungs-Editor104 ist eine Anwendung, die eingesetzt wird, um das Wörterbuch106 zu erzeugen und aufrechtzuerhalten, das Informationen enthält, die die Zielanwendung beschreiben. Der Anwendungs-Editor104 erlaubt es dem Anwendungsdesigner, Anwendungsdesigns auf hierarchische Weise einzugeben, so daß noch nicht definierte Anwendungsobjekte in höhere Blöcke referenziert werden können. - Wie zuvor kurz angesprochen wurde, erlaubt eine Prototyping-Anwendungs-Transaktion
150 , eine neue Anwendung zu benennen oder zu definieren oder eine bestehende Anwendung gemäß einem zuvor definierten Anwendungsnamen zu referenzieren. In einer bevorzugten Ausführungsform loggt sich der Anwendungsdesigner in einen Anwendungs-Editor ein und wählt die Prototyping-Anwendungs-Transaktion150 über eine menügeführte Schnittstelle. Der Anwendungsdesigner kann einen Namen für eine neue Anwendung bereitstellen oder den Namen einer bestehenden Anwendung für Editierzwecke liefern. Wie zuvor kurz angedeutet wurde, umfaßt die Prototyping-Anwendungs-Transaktion150 den Schritt des Partitionierens von Verantwortlichkeiten gefolgt von der Zuweisung von verschiedenen, zuvor definierten Verantwortlichkeiten an die Benutzer. Es muß angemerkt werden, daß in der bevorzugten Ausführungsform den Anwendungsdesignern während der Entwicklung alle in der Anwendung definierten Verantwortlichkeiten zugewiesen werden, wodurch die Designer in der Lage sind, alle mit den definierten Verantwortlichkeiten verbundenen Transaktionen zu erstellen und zu testen. In der bevorzugten Ausführungsform wird dem Anwendungsdesigner ein softwaregeführtes Menüfenster präsentiert, um eine Suite von Verantwortlichkeiten einzugeben, die mit der in Entwicklung befindlichen Anwendung verbunden sind. Diese Verantwortlichkeiten können in diesem Fenster geordnet werden, indem jeder Verantwortlichkeit eine laufende Nummer, wie zum Beispiel eine Präsentationsordnungsnummer zugewiesen wird. Die Prototyping-Menü-Transaktion160 wird vom Anwendungs-Editor104 eingesetzt, um Menüs und Untermenüs zu definieren, die mit der in Entwicklung befindlichen Anwendung verbunden sind. - Die Prototyping-Menü-Transaktion
160 definiert und aktualisiert Menü-Anwendungsobjekte, die sich im Wörterbuch106 befinden. In der bevorzugten Ausführungsform wird die Prototyping-Menü-Transaktion160 in einem softwaregeführten Fenster präsentiert, das die Eingabe eines eindeutigen Namens des Menüs aufnimmt, das einer zuvor definierten Verantwortlichkeit beigefügt ist. Ein weiteres Feld im Prototyping-Menü-Transaktion-Fenster macht es möglich, ein Menü mit einem anderen Menü zu assoziieren, das zur Erzeugung von Untermenüs verwendet werden kann. In der bevorzugten Ausführungsform bildet das Eingabemodul auch einen Anteil der Prototyping-Menü-Transaktion160 und definiert Untermenüs und Transaktionen oder andere Arten von Menüprozessen. In der bevorzugten Ausführungsform ermöglicht das Prototyping-Menü-Eingabefenster die Eingabe des Menünamens gefolgt von einer oder mehreren Menüeingaben zur Benennung der Menüoptionen. Die Reihenfolge dieser Menüoptionen kann auch durch Bereitstellung einer Auftragsnummer oder einer fortlaufenden Nummer zur Präsentation der Menüeingaben gewählt werden. Beispielsweise können auch andere Felder wie Schnelltasten und separate Textfelder zur Bereitstellung von isolierten Kommandozeilen eingebaut werden. - Die Prototyping-Datenbank-Transaktion
170 nimmt die Definition und die Verfeinerung eines Tabellenanwendungsobjekts im Wörterbuch106 auf. Die Prototyping-Datenbank-Transaktion170 vereinfacht die Definition von Datenbanktabellen, die referenziert werden können, wenn ein Satz definiert wird. In der bevorzugten Ausführungsform wird die Prototyping-Datenbank-Transaktion170 durch einen Anwendungs-Editor104 über ein interaktives Fenster präsentiert, in dem verschiedene Attribute einer Tabelle angezeigt und aktualisiert werden können. Außerdem ermöglicht die Prototyping-Datenbank-Transaktion170 ein hierarchisches Design eines Tabellenanwendungsobjekts über die interaktive Fensterumgebung. Die Prototyping-Datenbank-Transaktion170 bietet eine geeignete Umgebung zum Definieren einer Tabelle durch das Bereitstellen von Tabellennamen und Beschreiben der Basiskomponenten der Tabelle. Durch diese vereinfachte Interaktion ist ein schnelles Prototyping über eine intuitive Umgebung möglich. Darüber hinaus bietet die Prototyping-Datenbank-Transaktion170 in der bevorzugten Ausführungsform eine intuitive Umgebung für die Datenbankentwicklung. So vereinfacht beispielsweise ein Spaltenmodul die Beschreibung von Tabellen und Spalten durch Bereitstellung von Dateneingabefeldern wie Tabellenname, laufende Nummer für die Spalten, Spaltenname, Datentyp der Spalte, Länge der Spalte in Anschlägen, Beachtung der Groß- und Kleinschreibung in der Spalte, Dezimalformatierung in numerischen Spalten, Dateneingabe-Mußflag, Zulassen von Flag-Änderungen, Vorgabe von Defaultwerten und Beschreibung des Spaltenwertes. Darüber hinaus machen Hierarchie-Module es möglich, verbundene Daten zur effizienteren Verwendung von Sätzen zu gruppieren. Eine Hierarchie kann eine Satzgruppierung innerhalb einer Datenbank oder eine Gruppierung von Datenbanken umfassen. In der bevorzugten Ausführungsform sieht die Prototyping-Datenbank-Transaktion170 außerdem eine interaktive Umgebung vor, um sowohl Primär- als auch Fremdschlüssel mit Tabellenspalten zu assoziieren. Darüber hinaus sieht die Prototyping-Datenbank-Transaktion170 ein Verbindungsmodul vor, um zwei oder mehr logische Tabellen innerhalb der Datenbank zu verknüpfen. Die Prototyping-Datenbank-Transaktion170 kann auch für die Aufnahme von Zeitbeziehungsinformationen in der Datenbank verwendet werden. Für die Bereitstellung von Zeitbeziehungsinformationen kann der Benutzer Daten in einer Tabelle definieren, die eines oder alle der folgenden Kriterien erfüllen: 1) für einen bestimmten Zeitraum wirksam, 2) für einen Zeitraum gültig, 3) tatsächlich in der Datenbank für einen Zeitraum aufgezeichnet oder 4) mit anderen Daten in anderen Tabellen kombiniert, die auf Datumsbereichen basieren. So kann beispielsweise eine tatsächliche Zeitbeziehung durch Verwendung des Anfangs- und des Enddatums in einer Tabelle definiert werden. In der bevorzugten Ausführungsform umfaßt die Prototyping-Datenbank-Transaktion 170 außerdem ein Tabellenimplementierungsmodul, in dem die physische Implementierung der definierten Datenbanktabelle beschrieben ist. - Das Mehrfacheinheiten-Modul besitzt die Fähigkeit, auf der Anwendungsdatenbankebene zu definieren, welche Daten in die Anwendungsdaten für eine Einheit und nicht in die Ansicht einer zweiten Einheit eingeschlossen werden soll. So können Datenelemente sich innerhalb der Hierarchie eines Benutzers befinden und diesem Benutzer Zugang zu den Daten ermöglichen, aber seitens einer zweiten Einheit keinen Zugang zu denselben Daten ermöglichen, da diese Daten in der zweiten Hierarchie nicht vorhanden sind.
- Die Prototyping-Satz-Transaktion
180 erleichtert das Definieren, Verfeinern und Beschreiben von Sätzen im Wörterbuch106 . Die Prototyping-Satz-Transaktion180 ermöglicht nützliche Satzdefinitionen zur Bildung von Transaktionen, Rahmen, Berichten, Analysen und Serverprogrammen. In der bevorzugten Ausführungsform können Sätze leicht gemäß der Struktur und dem Inhalt eines Satzes durch Bereitstellen eines Satznamens und Beschreiben der Basiskomponenten definiert werden. Die Prototyping-Satz-Transaktion180 erleichtert ein schnelles Satzdesign, da sie dem Anwendungsdesigner die Flexibilität bietet, so wenig oder so viele Details wie gewünscht bei einem Satz bereitzustellen. Darüber hinaus erlaubt die Prototyping-Satz-Transaktion180 , Änderungen bei einem Satz durch Bereitstellen eines schnellen Zugangs und durch Verfeinerung der wichtigsten Komponenten des Satzes vorzunehmen. - Die Prototyping-Satz-Transaktion
180 umfaßt ferner ein Ansichtsmodul zur Beschreibung einer oder mehrerer Ansichten eines Satzes. In der bevorzugten Ausführungsform fordert eine graphische Schnittstelle zur Beschreibung einer besonderen Ansicht den Anwendungsdesigner auf, den Namen des zu prototypisierenden Satzes, eine fortlaufende Nummer oder Auftragsnummer zur Differenzierung zwischen Eltern- und Kindansichten, einen eindeutigen Ansichtnamen innerhalb eines Satzes, eine Basistabelle zur Bezeichnung einer die Basis der vorliegenden Ansicht bildenden Tabelle, den Namen einer Elternansicht der vorliegenden Ansicht, den Namen einer Referenz, die die vorliegende Ansicht mit einer Elternansicht verbindet, und ein allgemeines Beschreibungsfeld einzugeben. Wenn eine neue Ansicht definiert wird, können alle mit der Ansicht assoziierten Felder und Referenzen aufgeführt werden oder in einer bevorzugten Ausführungsform kann ein Benutzer eine Ansichtsskizzierfunktion benutzen, die automatisch eine Definition der vorliegenden Ansicht skizziert. Die Ansichtsskizzierfunktion erzeugt für jede Spalte und Verbindung, die in der Ansichtsbasistabelle definiert ist, ein Feld und eine Referenz. Beim Definieren der Felder und Referenzen bildet die Prototyping-Satz-Transaktion180 Hypothesen darüber, wie die Felder und Referenzen definiert werden sollten und zeigt automatisch die neuen Felder und Referenzen an, die anschließend editiert werden können. Die Prototyping-Satz-Transaktion180 umfaßt ferner ein Bedingungsmodul zur Aufnahme der Definition eines Feldes mit unterschiedlichen Berechnungsdefinitionen, die verwendet werden, wenn besondere Bedingungen erfüllt sind. So kann beispielsweise eine Bedingung eingegeben werden, in der festgelegt wird, wann der "Berechnungs"-Wert auf das Feld angewendet werden soll; wenn beispielsweise der Bedingungsausdruck als wahr beurteilt wird, wird das Feld auf den Wert des "Berechnungs"-Ausdrucks gesetzt. In der bevorzugten Ausführungsform wird der Defaultwert, wenn eine Bedingung nicht festgelegt ist, in dem Feld eingesetzt, wenn alle anderen Bedingungen als falsch bewertet werden. Die Prototyping-Satz-Transaktion180 umfaßt ferner ein Referenzmodul zum Definieren von verbindungsähnlichen Beziehungen, allerdings eher auf der Satzebene als auf der logischen Tabellenebene einer Verbindung. - Die Prototyping-Transaktionen-Transaktion
190 definiert Transaktionen, die die Sätze verwenden, die zuvor definiert wurden. Mit dem Anwendungs-Editor104 kann ein Satz definiert und eine diesen Satz verwendende Transaktion beschrieben werden. In der vorliegenden Erfindung erleichtert die Prototyping-Transaktionen-Transaktion190 das Beschreiben von Rahmen, Feldanzeigeattributen und Feldverhalten. In der bevorzugten Ausführungsform sieht die Prototyping-Transaktionen-Transaktion190 eine interaktive Schnittstelle zum Beschreiben einer Transaktion durch Definieren eines Anfangszustands und Bereitstellen von Transaktionsattributen für Felder im ausgewählten Satz vor. Solche Transaktionen können auch verwendet werden, um einen oder mehrere Rahmen für die vorliegende Transaktion zu definieren. Wenn Rahmen prototypisiert werden, zeigt der Anwendungs-Editor104 die Felder in Rahmen unter Verwendung von Defaultrahmendefinitionen an. Obwohl die Prototyping-Transaktionen-Transaktion190 das Anzeigen und Aktualisieren von verschiedenen Attributen einer Transaktion erleichtert, können auch andere Leistungen verwendet werden, um wichtigere Verfeinerungen schnell einzugliedern. Die Prototyping-Transaktionen-Transaktion190 ermöglicht außerdem die Anzeige einer ganzen Transaktion. - Ein Aktionsmodul definiert den Anteil von Transaktionen, die ausgeführt werden sollen, wie beispielsweise Aufgaben oder Logiksätze, die zu bestimmten Zeiten innerhalb einer Transaktion ausgeführt werden können. Ein Tastenmodul aktiviert Aktionen, die vom Benutzer gestartet werden können, während andere Aktionen, die nicht vom Benutzer gestartet werden können, durch einen Funktionsaufruf innerhalb der Transaktion aktiviert werden.
- Die Prototyping-Transaktionen-Transaktion
190 enthält Rahmendesign-Defaultwerte zum Erzeugen von Transaktionsrahmen und Anzeigen von Feldern. Durch Verwendung der Defaulttransaktionsrahmenkonventionen bieten die Transaktionsrahmen dem Anwendungsbenutzer innerhalb einer Anwendung eine einheitliche "look-and-feel"-Umgebung. Die Prototyping-Transaktionen-Transaktion190 vereinfacht Änderungen der Defaultrahmenkonfiguration durch Zulassen von Änderungen, die im Wörterbuch106 aufgezeichnet und gespeichert werden, um von einer universellen Anwendung108 benutzt werden zu können (2 ). Darüber hinaus ist ein Bereich eine benannte Sammlung von Feldern, die das Gruppieren von zugehörigen Daten zur Referenzierung und Manipulation ermöglichen. - Die Prototyping-Transaktionen-Transaktion
190 umfaßt ein Smart-gicks-Modul, um dem Benutzer eine Domäne gültiger Werte zu präsentieren, die mit dem fraglichen Feld assoziiert sind, das aus der Smart-Code-Tabelle referenziert ist (siehe nachstehend unter Prototyping-Smart-Code-Transaktion195 ). Wenn beispielsweise das in einer Transaktion zu konfigurierende Feld einem Residenzzustand entspricht, referenziert das Smartpick-Modul eine Smart-Code-Tabelle und sucht nach der Liste gültiger Werte, die in der Smart-Code-Tabelle eingeschränkt sind. Der Endbenutzer ist gezwungen, im fraglichen Feld einen Wert einzugeben, der innerhalb der Domäne von gültigen Werten vorkommt, wie sie vom Smart-pick-Modul präsentiert werden. Ein Validierungsmodul definiert die Regeln für Validierungsfelder, und zwar entweder einzeln oder als eine Gruppe von Feldern. - Die Prototyping-Smart-Code-Transaktion
195 vereinfacht das Hinzufügen einer neuen Smart-Code-Transaktion, die einen Smart-Code-Satz erzeugt und einen neuen Smart-pick durch Verwendung des Smart-Code-Satzes definieren kann. Durch Verwendung von Smart-Codes können Defaultwerte als Präferenzen festgelegt und bei der Anwendungserzeugung verwendet werden. Smart-Codes sehen eine zentralisierte Position für Wertelisten in einer kundenspezifischen Zielanwendung vor. Smart-Codes kann man sich allgemein als Referenzdaten vorstellen. So weiß der Anwendungsdesigner beispielsweise, daß eines der Felder in einer Transaktion sich in einem Residenzzustand befindet. Eine Folge von Wahlmöglichkeiten kann programmiert werden und die Einschränkungen für die Domäne eines gültigen Wertes können für eine bestimmte Spalte in einer Tabelle vorsehen werden. Der Anwendungsprogrammierer begrenzt hiermit die Domäne von gültigen Wahlmöglichkeiten, die der Endbenutzer in die Datenbank eingeben kann. Die Bericht-Transaktion200 sieht ein automatisches Verfahren zum Erzeugen von Berichtunterlagen vor. Der Anwendungsdesigner legt die Felder und Informationsdaten fest, die in den ausgegebenen Bericht aufgenommen werden sollen und kodiert diese Felder innerhalb der Berichtspezifikation. Berichte können automatisch aus Sätzen erzeugt werden, die zuvor in der Prototyping-Satz-Transaktion180 festgelegt wurden. Die Analyse-Transaktion175 sieht ein hierarchisches Verfahren zum Analysieren von Datensätzen im Bereich der vorliegenden Erfindung vor. Die Daten können anfangs in einer hochzusammengefassten Form präsentiert werden, die zunehmend stärker detaillierte Datenebenen besitzt. So können Daten beispielsweise in Jahresform präsentiert werden, wobei dieses Format in vierteljährliche Datendarstellungen aufgefächert oder zerlegt werden kann. Vierteljährliche Datendarstellungen können weiter in monatliche Summen innerhalb des jeweiligen Quartals zerlegt werden. Diese monatlichen Summen können weiter in wöchentliche und tägliche Summen zerlegt werden, bis einzelne Einträge oder Geschäftstransaktionen aufgeführt werden. Ein solches Analysewerkzeug ermöglicht es dem Benutzer, Tendenzen und Anomalien auf zeitsparende Weise zu beurteilen. - Die Server-Transaktion
185 sieht Mittel zum Partitionieren von Anteilen einer Anwendung vor, die möglicherweise eine eindeutige Verarbeitung von rechenintensiven Anteilen oder komplexen algorithmischen Anteilen in ein diskretes Serverprogramm zur Ausführung dieser Logik erfordert. Traditionelle Batch-Programme ähneln den Server-Programmen der vorliegenden Erfindung darin, daß es sich bei beiden um eigenständige Programme zum Ausführen bestimmter Programmfunktionen handelt. Allerdings sind in der vorliegenden Erfindung die meisten Server-Programme von den bestehenden Server-Programmen aus einer Komponenten-Server-Bibliothek entworfen oder nach diesen bearbeitet. In der vorliegenden Erfindung werden die Server-Programme normalerweise als Konsequenz einer Transaktionstätigkeit aufgerufen, die entweder durch eine Endbenutzer-Aktion oder als Ergebnis der elektronischen Ankunft einer Transaktion von einer anderen Anwendung oder einem Informationsprovider eintreten. -
6 stellt ein vereinfachtes strukturelles Blockdiagramm einer Wörterbuch-Datenbank gemäß einer Ausführung der vorliegenden Erfindung dar. Wie oben kurz erläutert wurde, ist das Wörterbuch106 in der bevorzugten Ausführungsform eine relationale Datenbank bestehend aus der Datenbeschreibung von Struktur, Komponenten, Logik und Verhalten der Zielanwendung sowie den Anwendungsobjekten, die zur Zielanwendung beitragen. Wenn die universelle Anwendung108 (2 ) die Ausführung startet, referenziert die universelle Anwendung108 das Wörterbuch106 , um die zuvor erwähnten, auf die kundenspezifische Natur der Zielanwendung bezogenen Beschreibungen abzufragen. Das Wörterbuch106 ist in vier Hauptkategorien von Objekten eingeteilt: (i) gemeinsam benutzte Objekte, die auch als Componentware bezeichnet werden, (ii) eindeutige Zielanwendungsobjekte, (iii) Umgebungsobjekte und (iv) Standardobjekte. Die gemeinsam benutzten Objekte410 umfassen Unter-Anwendungen, die wieder verwendet oder in Anwendungen eingegliedert werden können, die gebräuchliche Funktionen umfassen. Zu den wichtigen Objekten zählen das Buchhaltungsobjekt412 , das einen Hauptbuch-Eintragerzeuger bereitstellt, der in jeder Anwendungsdatenbank operieren kann, auch wenn er nicht als mit der Zielanwendung gleichlaufend vorgesehen ist. Auch das Fakturierungsobjekt414 stellt die gemeinsam genutzte Fähigkeit bereit, Rechnungen und Gebühren zu erzeugen und zu kalkulieren. Das Fakturierungsobjekt414 stellt ein elementareres Objekt bereit, aus dem ein umfassenderes Verständnis der gemeinsam genutzten Objekte gewonnen werden kann. So besteht beispielsweise eine der Funktionen, die ein Allzweck-Fakturierungsobjekt erfüllt, aus der Erzeugung von Rechnungen. Zur Rechnungserzeugung ist es erforderlich, Daten zu sammeln, diese in Rechnungen zu kompilieren und ein Event zu definieren, das den Start des Fakturierungsprozesses veranlaßt. Beim Fakturierungsobjekt414 besteht ein Teil des Objekts aus der Beschreibung der innerhalb der Anwendungsdatenbank zu sammelnden Daten und aus einer Beschreibung des Events, das das Fakturierungsobjekt ansteuert. Es ist anzumerken, daß alle wichtigen gemeinsam benutzten Objekte gleichzeitig operieren. Wenn das Fakturierungsobjekt ausgeführt wird, wird das Fakturierungsdatum in seiner eigenen Ursprungs- oder Fakturierungsdatenbank gesammelt, die abwechselnd verwendet wird, um die Rechnungen zu erzeugen. Das Arbeitsablauf-Objekt416 ist noch ein weiteres wichtiges Objekt, das Routing-Anwendungen für die Datenverarbeitung bereitstellt. Wenn ein Verarbeitungsprozeß gestartet wird, kann das Arbeitsablauf-Objekt416 die eingegebenen Daten beispielsweise einem Komplex von Bewertungen unterwerfen, um die anschließende Verarbeitung der eingegebenen Daten festzulegen. So können im Versicherungswesen beim Verarbeiten einer Versicherungsanwendung beispielsweise die Versicherungsanwendungsinformationen gemäß dem Arbeitsablauf-Objekt eingegeben werden, das die Ablaufsteuerung zur Bewertung der eingegebenen Informationen enthält. Zuerst wird vielleicht die Höhe der erforderlichen Deckung bewertet, gefolgt von der Bewertung des Kredits der Person, die die Police anfordert. Darüber hinaus können auch mit der Police assoziierte Abzweigungen festgelegt werden, um einen normalerweise nicht interaktiven Datenfluß zu vervollständigen. - Weniger wichtige Objekte innerhalb der gemeinsam benutzten Objekte
410 umfassen das Kalender-Objekt418 zum Eingliedern der Zeit und zur Zeiteinteilung in der Zielanwendung. Das Kalender-Objekt418 bietet ferner verschiedene Verfahren zum Teilen und Präsentieren der in die Zielanwendung einzugliedernden Zeit. Das geographische Objekt420 sieht eine vorab festgelegte Struktur zum eindeutigen Definieren der geographischen Anteile der Zielanwendung vor. Das Planungsobjekt422 stellt die Funktion für die Planung von Aktivitäten wie den Zeitplangeber für zeitaktivierte Tätigkeiten bereit. Das Maßeinheiten-Objekt424 stellt die Fähigkeit bereit, verschiedene Maßeinheiten für verschiedene Zwecke zu definieren, wovon einige absolute Maßeinheiten, z.B. Dutzend, andere hingegen relative Maßeinheiten sein können. - Die eindeutige Zielanwendungsobjekt-Kategorie
430 von Wörterbuch-Objekten umfaßt wichtige und weniger wichtige, von der Zielanwendung verwendbare Objekte. Das Analyse-Objekt432 sieht ein Verfahren zum Aufschließen oder Zerlegen einer Präsentation von Daten vor, wie sie oben in der Analyse175 von5 erläutert wurde. Wenn eine Analyse im Wörterbuch106 definiert ist, ist eine Dimension der Analyse entsprechend in Reihen, Spalten und Seiten definiert, die die Elemente umfassen, die in jedem ihrer Schnittpunkte berechnet werden. - Weitere wichtige eindeutige Zielanwendungsobjekte umfassen das Anwendungsobjekt
434 , das eine Konfiguration der Kennzeichnung für die Zielanwendung und für andere Anwendungen vorsieht, die von der Zielanwendung verwendet werden können. Das Hierarchieobjekt436 sieht Funktionen zum Definieren von hierarchischen Beziehungen und von Elementen wie Eltern-Kind-Beziehungen vor, die zur Hierarchie beitragen. Das logische Tabellen-Objekt438 sieht einen Speicherplatz für die Speicherung des verwendeten Anwendungsdatenbankschemas vor. Das Menü-Objekt440 sieht Menünamen, einschließlich einer Liste von Untermenüs und Transaktionen vor, die mit den genannten Menüs assoziiert sind. Das Verantwortlichkeiten-Objekt442 sieht das Partitionieren der Menüs in der Zielanwendung vor. Wenn eine Verantwortlichkeit vom Anwendungs-Editor definiert wurde, entspricht die Verantwortlichkeit der Spitze eines Menü-Baumes mit Untermenüs und Transaktionen. Darüber hinaus ist die Anwendungsdatenbank dazu bestimmt, festzulegen, in welcher Anwendungsdatenbank ein Benutzer sich anmelden muß. Das Satz-Objekt444 sieht die Speicherung der definierten Satzelemente vor, die im Prototyp-Satz180 aus5 definiert sind. Das Transaktionsobjekt446 sieht die Speicherung von definierenden Anzeigeinformationen, wie z.B. von Bereichen und Rahmen vor, die sich auf eine Transaktion beziehen. Weniger wichtige Objekte innerhalb der eindeutigen Zielanwendungsobjekte430 umfassen das Funktionsobjekt448 zur Bereitstellung von Funktionen, die im allgemeinen Ablaufparameter umfassen. In der vorliegenden Erfindung enthält das Funktionsobjekt448 eine übergeordnete Sprachprogrammierung statt einer untergeordneten traditionellen Quellcodeprogrammierung. Das Job-Objekt450 umfaßt vordefinierte Aufgaben, die aufgerufen werden können, wie beispielsweise Berichte oder andere nicht vom Benutzer gestartete Prozesse. Das Bericht-Objekt452 beschreibt das Format des auf Anfrage zu erzeugenden Berichts. Die Bericht-Objekte452 sind wie viele andere Objekte in einer übergeordneten, erfindungsimmanenten Programmiersprache geschrieben. Das Reihungsobjekt454 wird von logischen Tabellen als Konstrukt verwendet, das in einer Datenbank üblicherweise als Ersatzschlüssel bezeichnet wird. Das Smart-Code-Objekt456 sieht eine Sammlung von üblicherweise kryptischen Werten vor, die einem anzuzeigenden, benutzerfreundlicheren Wert entsprechen. Das Smart-Field-Objekt458 sieht Definitionen von strukturellen Validierungen von Feldern innerhalb einer Datenbank vor. Das Schnipsel-Objekt460 sieht funktionsartige Fähigkeiten vor, die als Teil eines Verarbeitungsabflusses integriert und initiiert werden können. Der Schnipsel ist unbenannt, das heißt, er wird nicht durch Referenz zu seinem Bezeichner aufgerufen, sondern ist inline und kann daher innerhalb des Ausführungsprozesses ausgeführt werden. Das Transformationsobjekt462 sieht die Fähigkeit vor, ein Datenstück einem anderen zu beschreiben sowie Geschäftsanwendungsdaten, beispielsweise auf Fakturierungsdaten und ferner auf Fakturierungsevents abzubilden. Das Trips-Objekt464 ermöglicht es, Daten von einer Datenbank zu einer anderen mit Hilfe des Datenbewegers230 aus7 zu bewegen. - Das Umgebungsobjekt
470 als Kategorie von Wörterbuchobjekten umfaßt wichtige und weniger wichtige Objekte, die in der Zielanwendung verwendet werden können. Umgebungsobjekte sind Objekte, die eine Zielanwendung auf eine bestimmte Umgebung zuschneiden. Das Geschäftseinheiten-Objekt472 sieht die Fähigkeit vor, Daten durch Geschäftseinheiten in der Anwendungsdefinition durch Definieren der Geschäftseinheiten und Verbinden derselben mit der Zielanwendung zu teilen. Das Konfigurationsobjekt474 sieht eine benannte Sammlung von Wörterbuchobjekten vor. Das Konfigurationsobjekt474 verhält sich ähnlich wie herkömmliche Konfigurationsdateien, die in Personal Computerumgebungen üblich sind. Das Datenbank-Objekt476 sieht die Plazierung des Namens der Anwendungsdatenbank vor, die von der Zielanwendung referenziert wird. Das Endbenutzer-Objekt478 sieht das Auflisten von individuellen Benutzern der Zielanwendung vor. Das Host-Objekt480 identifiziert die Art von Hardware, die die entsprechende Zielsoftware aufnimmt. Hosts können Kunden- und Server-Hosts umfassen. Es ist unerläßlich, die Host-Adresse einzugliedern, um Funktionen, wie beispielsweise Trips, zu unterstützen. Das Netzwerkobjekt482 sieht eine Beschreibung der Abhängigkeiten zwischen den Hosts vor. Das Präferenzeinstellungs-Objekt484 sieht veränderbare Defaultwerte vor, um Daten einem Benutzer zu präsentieren. Beispiele hierfür sind Tageszeiten und Anzeigepräferenzen. Das Sicherheit-durch-Wert-Objekt486 sieht Sicherheiten für bestimmte Datensätze durch Zugangsbeschränkung für andere Benutzer vor. Beispielsweise verhindert der Sicherheit-durch-Wert-Schutz in einem Verkaufsauftragsystem, daß ein Verkäufer in die Kundenaufträge eines anderen Verkäufers oder in andere damit zusammenhängende Daten Einsicht nimmt. Diese Fähigkeit ist strukturimmanent und die Einstellung der Beschränkungen hat keinen Einfluß auf das Anwendungsdesign. Eine solche Sicherheit wird der Datenstruktur beim Design auferlegt und erlaubt im angeführten Beispiel dem Verkäufer nur die Daten einzusehen, die mit den Kunden des Verkäufers verbunden sind. Das Summenobjekt488 ermöglicht es, Ergebnisse von Datensammlungen wie Summen der Verkäufe eines Monats oder eines Jahres einmal zu erzeugen und für einen späteren Zugang durch andere zu speichern, ohne die Summe der gewünschten Datensammlungen erneut berechnen zu müssen. Zusätzliche Funktionen innerhalb des Summenobjekts488 verlangen, daß Summen beispielsweise ungültig gemacht werden, wenn sich Datenwerte innerhalb der Sammlung ändern. Weniger wichtige Objekte innerhalb der Umgebungsobjekte470 umfassen das Client-Vorprozessierungsobjekt490 , das Regeln vorsieht, um die Client-Server-Umgebung schneller und effizienter beim Verarbeiten von großen Datenmengen zu machen. Deshalb können Summenwerte, die von einem Server häufig über das Netz abgefragt werden, im Cachespeicher des Client-Site lokal gespeichert und im Server-Site aktualisiert werden, wenn die Werte sich ändern. Das Communities-Objekt492 stellt eine Namenssammlung von Hosts für das Datenrouting in einer Netzwerkinstallation bereit. Das Dateien-Objekt494 sieht einen Mechanismus zum Speichern der Betriebssystemdateien im Wörterbuch vor, um diese beispielsweise über Trips464 an andere Systeme für andere allgemeine Zwecke zu senden. Ein Jobstream-Objekt496 stellt eine Namenssammlung von Jobs bereit, die über eine Einzelabfrage ausgeführt werden können. Wenn beispielsweise ein Jobstream definiert ist, wird die Job-Ordnung und die Beziehung zwischen den Jobs (z.B. Zeit- und Datenabhängigkeiten) festgelegt. Das Reise-Objekt498 legt eine Liste von auszuführenden Trips464 fest und kann auch Zeitaktivierungsinformationen umfassen, um festzulegen, wann die Reise aufgerufen werden soll. Das vorprozessierte Datenobjekt500 ähnelt der Client-Vorprozessierung490 , allerdings entstehen vorprozessierte Daten500 im Server-Anteil der Konfiguration, wo der Server häufige Daten – ähnlich wie beim Cache-Speichern – im vorhinein abrufen kann, um sie dem abfragenden Client rascher zur Verfügung stellen zu können. Das Berichtgruppen-Objekt502 sieht ein Auflisten einer Sammlung von Berichten vor, die als Gruppe ausgeführt werden. Durch Verwendung des Berichtgruppen-Objekts502 können mit einem Einzelberichtsbefehl Mehrfachberichte erzeugt werden. Das Abfrage-Objekt504 sieht ein Auflisten der tatsächlichen Job-, Jobstream- oder Berichtgruppen-Aufrufe vor. So kann beispielsweise eine Berichtgruppe definiert und 25mal ausgeführt werden, wobei jede Ausführung eine Abfrage darstellt, die durch eine andere gestartet wird. Das Abfrage-Objekt504 zeichnet zugehörige Informationen auf, z.B. wann die Abfrage gestartet wurde, ob sie erfolgreich abgeschlossen wurde, wann sie abgeschlossen wurde und welche Ressourcen eingesetzt wurden. - Die Standardobjektkategorie
510 von Wörterbuchobjekten umfaßt wichtige und weniger wichtige Objekte, die in der Zielanwendung verwendet werden. Wesentliche Objekte umfassen Präferenz-Objekte512 , die ein Auflisten der in der Zielanwendung eingegliederten Präferenzen vorsehen. Eine zuvor festgelegte Form von Hauptkassenbüchern ist ein solches Beispiel für Präferenzen. Ein System-Objekt514 sieht das Speichern von Variablen vor, die vom System eingestellt werden, wie beispielsweise Tageszeit und -datum, Systembenutzer, Veranwortlichkeiten-Name und Sessionsnummer. Diese Werte werden von der Umgebung während der Laufzeit geladen. Das Nachrichten-Objekt516 strukturiert Daten, die zwischen den Verarbeitungen durchlaufen. So kann beispielsweise eine Dateneingabe (z.B. die Datenquelle618 aus10 ) neue Lagerverkaufspreise vorsehen, die in der Anwendungsdatenbank angewendet werden, die mit der Zielanwendung assoziiert ist. Die Preisdaten werden durch das Nachrichten-Objekt516 in eine Nachrichtenstruktur umgewandelt, die ein standardisiertes Mittel zur Kommunikation zwischen den Verarbeitungen darstellt. Nachdem die Nachricht übermittelt wurde, weiß die Empfangsverarbeitung, wie die Nachricht dekodiert und verarbeitet werden muß, da sie im Nachrichtenformat präsentiert wurde. - Weniger wichtige Objekte innerhalb der Standard-Objekte
510 umfassen das Aktionsart-Objekt518 , das ein Definieren von Standardaktionen vorsieht. Es muß angemerkt werden, daß Transaktionen Aktionen aufrufen können, die unter eine begrenzte Anzahl von Aktionsarten fallen. Diese Standardaktionsarten können bei Mehrfachzielanwendungen üblich sein. Das Implementierungsart-Objekt520 sieht einen Deskriptor für die Art und die Version der Anwendungdatenbank software vor, die in der Zielanwendung verwendet wird. Beispiele für Datenbankarten und -versionen umfassen unter anderem Oracle7 , Oracle8 und Sybase System11 . Das Sprachenobjekt511 sieht einen Deskriptor für die Benutzerschnittstellen-Sprache vor, die in der vorliegenden Konfiguration der Zielanwendung verwendet wird. Das Konstantenobjekt524 sieht das Auflisten von zuvor definierten Buchstabenwerten vor, die in der Zielanwendung verwendet werden. Das Tastenart-Objekt526 sieht das Auflisten von ausgewählten bevorzugten Tastenarten vor, die von der Rahmenerstellung angezeigt werden. Das Transaktionsstil-Objekt528 sieht das Definieren der optischen Präsentation einer Transaktion vor. Transaktionen können so definiert werden, daß sie einen bestimmten Stil enthalten. Das Anzeigestil-Objekt530 sieht Definitionen eines Stils vor, in dem Daten, wie z.B. Optionslisten oder Listen mit Kästchen zum Markieren der getroffenen Wahl, präsentiert werden. Das Gerätemarken-Objekt532 definiert die Hardware, mit der die Zielanwendung ausgeführt wird, während das Betriebssystem-Objekt534 das Betriebssystem definiert, mit dem die Zielanwendung ausgeführt wird. -
7 zeigt ein vereinfachtes Blockdiagramm von Software-Komponenten und Standards in der universellen Anwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Die universelle Anwendung108 bildet eine ausführbare Infrastruktur zur Ausführung von wieder verwendbaren und anpassbaren Verarbeitungen bei sukzessiven Zielanwendungen. - Das Analysatormodul
224 sieht ein Analysewerkzeug zur Bewertung der Inhalte eines Satzes durch Bereitstellung einer tabellenartigen Schnittstelle vor. Wenn der Anwendungdesigner die Analysatortransaktion224 startet, fragt die Analysatortransaktion224 Daten ab, die einem Suchkriterium entsprechen, und erstellt ein Analyseblatt, das in der bevorzugten Ausführungsform eine Reihe für jeden verschiedenen, in ein Reihenfeld zurückgeführten Wert und eine Spalte für jeden verschiedenen, in ein Spaltenfeld zurückgeführten Wert enthält. - Das Selbsttestmodul
226 sieht eine interaktive Möglichkeit zum automatischen Testen der Zielanwendungen durch Simulation von Interaktionen wie z.B. Tastenanschläge und Mouseklicks vor, die die Interaktion durch einen Endbenutzer repräsentieren. Bei Ausführung des Selbsttestmoduls226 erzeugt ein interner Berichter einen Bericht, der jede simulierte Endbenutzer-Interaktion mit der Zielanwendung dokumentiert, zusätzlich zu jeder Antwort, die von der Zielanwendung als Antwort auf eine Benutzerdateneingabe gestartet wurde. In der bevorzugten Ausführungsform umfaßt das Selbsttestmodul226 ferner ein Dienstprogramm, das automatisch die laufenden Testergebnisse mit bestätigten Testergebnissen vergleicht und einen Bericht erstellt, in dem die Unterschiede aufgeführt sind. Das Selbsttestmodul226 sieht das automatische Testen vor und trägt dadurch zu kürzeren Softwareentwicklungszyklen und zu erheblich verbesserter Qualität der Anwendung im Vergleich zum gegenwärtigen Brauch in der Industrie bei. - Das Berichtermodul
228 vereinfacht die Erzeugung von datenbankbasierten Berichten. In der vorliegenden Ausführungsform interpretiert das Berichtermodul228 eine Beschreibung von Berichten in höherer Programmiersprache, fragt dementsprechend Daten ab und erzeugt Berichte wie beschrieben. Wie z.B. mit der Entwicklung von Rahmen, entwirft das Berichtermodul228 automatisch Berichte von einer Berichtbeschreibung und sieht ein automatisches Formatieren vor, wobei es sich auf interne Defaultparameter des Berichtermoduls228 stützt. Allerdings akzeptiert das Berichtermodul228 Formatierungsanweisungen, um die bevorzugte Verschiebung von Datenelementen innerhalb eines Berichts zu ermöglichen. Anders als die übrigen Datenbankberichterzeuger, erzeugt das Berichtermodul228 Berichte von Ablaufdatenwerten, die in der Anwendungsdatenbank lokalisiert sind – im Gegensatz zu potentiell veralteten, aus Berichten hervorgehenden Datenwerten, die aus gelagerten Daten erzeugt werden. Darüber hinaus verwendet das Berichtermodul228 logische Datenbankdefinitionen, die im Wörterbuch106 enthalten sind (3 ), im Gegensatz zu physischen Datenbankdefinitionen, die häufig obskur sind. Da physische Datenbankimplementierungen sich entwickeln können, bleiben Berichte, die durch das Berichtermodul228 erzeugt werden, konsistent mit den im Wörterbuch106 residenten Datendefinitionen. - Das Datenbewegermodul
230 vereinfacht das Bewegen von Daten von einer Datenbank zur anderen und das Bewegen von datenbankfremden Dateien von einem Knoten zum anderen. Aufgrund der Komplexität von Datenbanksystemen erfordert das Bewegen oder das Wandern von Daten von einem Computer zum anderen, wie z.B. zu Altsystemen hin oder weg, im allgemeinen ein ausgeklügeltes manuelles Programmieren. Das Datenbewegermodul230 vereinfacht das Bewegen von Daten über verschiedene Datenbankdesigns, heterogene Datenbanken, Zugangsverfahren oder Dateiensysteme innerhalb eines Netzwerks. Das Datenbewegermodul230 vereinfacht das Vergleichen, Sammeln und Konsolidieren von Daten, die Datenreplikation und verschiedene andere datenbewegungsbezogene Funktionen. - Das Client-Modul
232 ist ein konfigurierbarer, datengesteuerter, client-basierter Transaktionsprozessor, der Informationen über Transaktionen liest, um die Transaktionsverarbeitung und die hiermit verknüpften Benutzerschnittstellenrahmen zu verwalten. Das Client-Modul232 bewertet die Informationen über die Transaktionen und die ihnen zugrundeliegenden Sätze und legt das optimale Verfahren zur Erzeugung des SQL-Codes zur Koppelung mit der Anwendungsdatenbank fest. In einer Client-Server-Konfiguration koppelt das Client-Modul232 an einen Server mit Anteilen der universellen Anwendung an, die dort lokalisiert sind, durch Erzeugung von Nachrichten zur Übertragung zwischen Client- und Server-Anteil der universellen Anwendungen. Das Rahmenbaumodul234 , das Rahmenstandards und Inhaltsbeschreibungen aus dem Wörterbuch106 verwendet, entwirft Präsentationsfenster oder -rahmen für den Endbenutzer während der Ausführung der Zielanwendung. Moderne, hochentwickelte Zielanwendungen müssen intuitiv, konsistent und leicht benutzbar sein, um die Kundenerwartungen zu erfüllen. Die Zielanwendungen verwenden graphische Benutzerschnittstellen, um diesen Erwartungen zu entsprechen. In der vorliegenden Erfindung umfassen die Rahmen Fenster, Eingabefelder oder Bildschirme, die für die Wahrnehmung des Endbenutzers erzeugt werden. Aufgrund der großen Anzahl von Rahmen in komplexen Anwendungen speichert die vorliegende Erfindung eine Beschreibung des Rahmens und erzeugt oder baut den Rahmen mit Hilfe des Rahmenbaumoduls234 , anstatt eine Reihe von zuvor gezeichneten Rahmen zu speichern. Da das vorliegende System Rahmen aus einer Beschreibung innerhalb des Wörterbuches106 zusammenbaut, besitzen nachfolgende Rahmen darüber hinaus ein konsistentes Rahmenthema statt stilistisch unterschiedlicher Rahmen, wie dies häufig geschieht, wenn Rahmen von verschiedenen Anwendungsprogrammierern gezeichnet oder erzeugt werden. - Das Verwaltermodul
236 ist ein konfigurierbarer, datengesteuerter, serverbasierter Planer, der die Ausführung der Serveraufgaben aufruft und verwaltet. Eine Aufgabe, wie sie in der vorliegenden Erfindung definiert wird, ist ein autonomes Serverprogramm oder Unterprogramm, das das Verwaltermodul236 ausführt. Der Anwendungsdesigner definiert zulässige Aufgaben und speichert jede zulässige Aufgabe in einer serverresidenten Verwalter-Datenbank, einschließlich einer Beschreibung dessen, wie das Verwaltermodul236 die Aufgaben aufrufen sollte, z.B. Aufrufen der Aufgabe als Unterprogramm, als autonomes Programm oder durch Delegieren des Aufrufens an ein anderes Verwaltermodul, im allgemeinen an einen anderen Server. Beispiele für Standardaufgaben, die vom Verwaltermodul236 aufgerufen werden, umfassen Aufgaben, die benannt werden, um sowohl in einer Anwendungsdatenbank102 als auch im Wörterbuch106 zu lesen und zu operieren. - Das Datenbankbibliothekmodul
238 führt Datenbankoperationen an anderen Modulen oder Bibliotheken aus. Wenn beispielsweise eine Zielanwendung Zugang benötigt, um an Daten aus der Datenbank zu operieren, ruft die Zielanwendung Funktionen aus dem Datenbankbibliothekmodul238 auf und fordert den gewünschten Dienst an. In der vorliegenden Erfindung erlaubt das Datenbankbibliothekmodul238 eine externe Definition der Anwendungsdatenbank, an der die Zielanwendung im Wörterbuch106 operiert. Wie bereits erläutert wurde, speichert das Wörterbuch106 darüber hinaus eine Definition von Basisdatengruppen, die als Sätze bezeichnet werden, an denen die Zielanwendung operiert. Die Zielanwendung ruft dann Datenbankbibliothek-Anwendungsprogrammierschnittstellen (APIs) auf, um an Daten in der Anwendungsdatenbank zu operieren. - Das Transport-Gerät-Modul
240 sieht eine Transportbewertungfähigkeit vor, um die Art des Transportprotokolls festzulegen, das beim Transfer zwischen physischen Plattformen aufgerufen wird, beispielsweise ob TCP und wann ein solches Protokoll aufgerufen werden soll. Darüber hinaus legt das Transport-Gerät-Modul240 das effizienteste Routing für Nachrichten und die Transferterminierung solcher Nachrichten fest. Das Transport-Gerät-Modul240 ist in Verbindung mit der Netzwerkbibliothek264 die Komponente, die die Kommunikation zwischen verschiedenen Computern unterstützt. - Das Compiler-Modul
242 wandelt eine Beschreibung in höherer Programmiersprache in tragbare Metafile-Daten um. In der vorliegenden Erfindung wird eine höhere Programmiersprache definiert, die ein schnelles Prototyping aufgrund der hohen Ebene der Sprache erleichtert. Die von der vorliegenden Erfindung verwendete höhere Programmiersprache ermöglicht alltägliche Programmierfunktionen wie beispielsweise Variablendeklaration und I/O-Verarbeitung, die von der Softwarearchitektur durchgeführt werden muß, ohne ein Programmieren auf niederer Ebene für jede Transaktion oder Aktion unter Einbeziehung der Datenbank zu erfordern. - Das Sprachenmodul
244 sieht eine höhere Sprachsyntax vor, die von der Zielanwendung bei Transaktionen wie Berichterzeugung und Datenbankverwaltung aufgerufen werden kann. Die höhere Sprache ist keine traditionelle Verfahrenssprache, weshalb die Sprachmechanismen auf niederer Ebene dem Zielanwendungsdesigner verborgen bleiben. - Das Metafile-Bibliothek-Modul
246 sieht das Gruppieren von Beschreibungen auf hoher Sprachebene in einem kompilierten Format vor, das von der Zielanwendung ausgeführt werden kann. Wie oben offenbart wurde, erfordert traditionelles Programmieren eine erhebliche Menge an Variablendeklarationen. Das Metafile-Bibliothek-Modul246 umfaßt die Variablendefinitionen, um den Gebrauch von höherer Sprache zu unterstützen, die vom Anwendungsdesigner für das begrenzte Programmieren von Berichten verwendet wird. - Das Regressionstest-Bibliothek-Modul
248 unterstützt die Anlage, das System und den Regressionstest von Bibliotheken, Geräten, Setzern, Serverprogrammen, universellen Anwendungskomponenten und der gesamten Zielanwendung. Die Tests können regelmäßig ausgeführt werden und werden automatisch auf den Testkriterien basierend ausgeführt, die durch Erzeugung von der zu testenden Zielanwendung oder Komponente festgelegt werden. Da die Testkriterien vorab festgelegt werden, können sich Revisionen der Zielanwendung nach wie vor auf früher festgelegte Testwerte stützen, ohne weitere Änderungen an den Testparametern zu erfordern. Das Optionsdateien-Bibliothek-Modul250 umfaßt Funktionen und genaue Angaben zur Betriebsumgebung der Zielanwendung. Die Angaben können Präferenzen wie beispielsweise benutzerdefinierte Einstellungen und Konfigurationen wie Datum/Zeit-Formatpräferenzen und Währungspräferenzen umfassen. - Das Validierungsbibliothek-Modul
252 führt Feldvalidierungen und Cross-Feld-Validierungen gemäß benutzerdefinierten Bedingungen aus, die auf bestimmten Datenfeldern angebracht werden. Diese Bedingungen, beispielsweise die für relationale Datenbanksysteme üblichen Bedingungen, sehen Datenkontrollen für die Daten vor, die in den Transaktionen zur Speicherung innerhalb eines Feldes einer Anwendungsdatenbank eingegeben werden. Validierungen vermindern Datenfehler und Verwirrung, wenn Werte kombiniert oder manipuliert werden, indem die angeforderten Werte angezeigt werden, und helfen dadurch beim diagnostischen Testen, bei der Leistungsevaluation und Anwendungsabstimmung der Zielanwendung. - Das Drehknopf- und Drehscheiben-Bibliothek-Modul
254 ermöglicht es dem Anwendungsdesigner, die Fehlerdiagnose für verschiedene Ebenen der universellen Anwendung108 einzuschalten, je nachdem, in welcher ein Fehlverhalten festgestellt wird oder welche Analyse und Abstimmung benötigt. So kann beispielsweise die für einen Anteil der Technologie erzeugte SQL ebenso wie das mit der Ausführung der SQL durch die Datenbanksoftware z.B. Oracle, verknüpfte Timing zur Evaluation angezeigt werden. - Das Fehler-Bibliothek-Modul
256 sieht die Anforderungsfunktion zum Abfangen und Berichten von Fehlern vor, die von der Architektur der vorliegenden Erfindung aufgedeckt werden und zeigt dem Anwendungsdesigner eine Warnung bei solchen Bedingungen an. - Das Übliche-Routinen-Bibliothek-Modul
258 sieht eine Ebene zwischen dem Betriebssystem-Bibliothek-Modul260 vor, die den Anteil darstellt, der zwischen verschiedenen Betriebssystemen portiert wurde, damit alle anderen Anteile der universellen Anwendung direkt portieren. - Das Betriebssystem-Bibliothek-Modul
260 kann Anpassungen und ein erneutes Kompilieren zwischen den Betriebssystemplattformen erforderlich machen. Das Betriebssystem-Bibliothek-Modul260 gewährleistet die Übertragbarkeit der universellen Anwendung108 durch Unterstützung verschiedener Betriebssysteme wir Unix, Windows95 , Windows NT usw. - Das Datascope-Modul
262 sieht ein analytisches Werkzeug vor, das beim Testen der Inhalte eines zuvor definierten Satzes in einem optischen Format verwendet wird. Wenn beispielsweise ein Satz erzeugt wird und der Anwendungsdesigner den Inhalt eines Satzes optisch sehen will, ohne eine wirkliche Transaktion zu bilden und einen Bericht zu schreiben, um die Daten des Satzes zu präsentieren, stellt das Datascope-Modul262 ein Werkzeug zum Öffnen und Lesen des Inhalts eines bestimmten Satzes bereit. - Das Netzwerk-Bibliothek-Modul
264 sieht einen Routine-Satz zum Unterstützen verschiedener Industrie-Standard-Protokolle wie DCOM, CORBA und TCP/IP vor. Das Transport-Gerät-Modul240 verwendet die Routinen des Netzwerk-Bibliothek-Moduls264 . - Das Nachrichten-Bibliothek-Modul
266 sieht einen Satz von Routinen zum Manipulieren von Nachrichten vor. Wenn beispielsweise eine Transaktion durch Einfügen eines Datenelements in eine Datenbank ausgeführt wird, würde ein Nachrichtentyp zugewiesen und das Nachrichten-Bibliothek-Modul266 würde die Definition der Nachricht aus dem Nachrichten-Bibliothek-Modul266 lesen, um die Struktur der zu übersendenden Nachricht festzulegen. Das Nachrichten-Bibliothek-Modul266 sieht einen Satz von APIs zum Bestücken, Lesen, Erzeugen und Senden von Nachrichten vor. - Das Vollständigkeitskontroll-Modul
268 stellt eine Reihe von Routinen dar, die die Daten in einer Anwendungsdatenbank102 ansehen und prüfen, um zu verifizieren, daß die Daten eine definierte Qualität oder Vollständigkeit besitzen. So können die in einer relationalen Anwendungsdatenbank gespeicherten Daten beispielsweise von einem Datenbankmanipulationsdienstprogramm auf unangemessene Weise aktualisiert und verändert werden. Solche Dienstprogramme können möglicherweise den in der Anwendungsdatenbank eingegebenen Datenwerten keine angemessenen Beschränkungen auferlegen. Das Vollständigkeitskontroll-Modul268 führt eine Verarbeitungsfunktion durch Verifizierung der Vollständigkeit der in einer Anwendungsdatenbank residenten Daten gemäß den zuvor definierten Beschränkungen für solche Daten aus. Das Vollständigkeitskontroll-Modul268 erhält diese Datenbeschränkungen durch Lesen der Definition der Anwendung im Wörterbuch102 . - Das Server-Modul
270 sieht eine Reihe von Server-Verarbeitungen oder -Komponenten vor, die von den in der Zielanwendung operierenden Servern gemeinsam benutzt werden können. Die Server, wie sie in der vorliegenden Erfindung verstanden werden, sind in10 detailliert aufgeführt. - Das Transaktions-Server-Modul
272 sieht eine allgemeinere Version eines Servers für Verarbeitungstransaktionen vor. Server, wie sie in10 detailliert aufgeführt sind, sehen eine kundenspezifische Verarbeitung von Verarbeitungsanteilen vor. Transaktions-Server sehen ähnliche Funktionen beim Client-Anteil der universellen Anwendung vor, ohne eine Benutzerschnittstelle zum Starten oder Aktivieren von Transaktionen erforderlich zu machen. - Das Summengerät-Modul
274 sieht einen Vorgang zum Sammeln und Erzeugen von Zusammenfassungen einer Sammlung von Datenelementen vor, wenn dies angefordert wird und bewahrt außerdem die Ergebnisse des Zusammenfassungsvorgangs für spätere Summenabfragen auf. - Das Hierarchie-Gerät-Modul
276 sieht die Fähigkeit vor, eine Hierarchie, wie zuvor in6 beschrieben, zu definieren und zu verwenden. So kann ein Benutzer beispielsweise eine Liste von Geschäftsstellen innerhalb eines bestimmten Gebiets bewerten wollen. Anschließend will der Benutzer vielleicht diese Auswahl in ihre Unterelemente aufschließen oder zerlegen, um kleinere Gebiete zu bewerten, wobei dieser Vorgang bis in die untersten, in dieser Hierarchie definierten Ebenen fortgesetzt werden kann. - Das Umwandlungs-Server-Modul
278 sieht die Fähigkeit vor, die als erste Struktur definierten Daten in die Daten zu übertragen, die als zweite Struktur definiert wurden. So kann beispielsweise ein Benutzer in einer Kauf-Zielanwendung einen Kaufauftragssatz festlegen, um Daten hierin zu empfangen und anschließend vielleicht diesen Kaufauftragssatz in einen genehmigten Kaufauftragssatz zu verwandeln. - Das Umwandlungs-Server-Modul
278 sieht die Regeln vor, die notwendig sind, um einen Datensatz in einen anderen Datensatz zu verwandeln. - Der C-Kodierstandard
280 definiert das Format zum Kodieren von kundenspezifischen Anteilen der Zielanwendung. Durch Anfordern eines Standards zum Kodieren von kundenspezifischen Anteilen der Zielanwendung wird die Übertragbarkeit zwischen Plattformen wie UNIX und Windows-Umgebungen auf ein Höchstmaß gebracht. Außerdem werden durch die Erzwingung eines Standards für kodierte Module die Lesbarkeit und die Verständlichkeit von kundenspezifischen Anteilen maximiert und dadurch die Aufrechterhaltung und Integration von kundenspezifischen Software-Modulen durch andere erleichtert. - Die Benutzer-Schnittstellen-Bibliothek
282 sieht einen Satz von Benutzer-Schnittstellen-Routinen vor, die das graphische Front-End für eine Vielfalt von graphischen Schnittstellen wie Motif, Windows und andere bereitstellen. Durch Bereitstellen einer Benutzer- Schnittstellen-Bibliothek können die anderen Komponenten der universellen Architektur mit der Bibliothek, die angesteuert wird, vereinigt werden, je nachdem, welches Benutzer-Front-End verwendet wird. Der Nachrichten-Standard284 sieht einen Schnittstellen-Mechanismus zum Informationsaustausch zwischen der Architektur, wie beispielsweise der Zielanwendung, und anderen externen Komponenten vor. Während APIs für den Informationsaustausch und die Kommunikation zwischen Abläufen innerhalb der Zielanwendung verwendet werden, werden Nachrichten benutzt, um mit anderen Komponenten oder Einheiten außerhalb der Architektur zu kommunizieren. Der graphische Schnittstellen-Standard286 sieht einen Standard für die Entwicklung von Menüs, Tasten und anzeigebezogenen Informationen vor, um den präsentierten Daten einheitliche "look-and-feel"-Merkmale zu verleihen. Eine graphische Schnittstellen-Bibliothek288 stellt die effektiven Routinen bereit, die verwendet werden, um die aufgenommenen Informationen anzuzeigen und die Benutzer-Schnittstellen-Bibliothek282 aufzurufen, um festzulegen, wie die Informationen auf dem Bildschirm zur Präsentation der Zielanwendung für den Benutzer plaziert werden sollen. - Die Verwaltungsfreigabe-Komponente
290 sieht die Versions- oder Konfigurationskontrolle von späteren Wiederholungen oder Revisionen von individuellen Komponenten innerhalb der universellen Anwendung sowie eine Verwaltung und Kontrolle für andere Komponenten, wie beispielsweise die Zielanwendungs-Bibliothek, vor. Die Verwaltungsfreigabe-Komponente290 verifiziert, daß alle Versionen der Komponenten innerhalb der universellen Anwendung mit dem Betriebssystem des Host kompatibel sind, auf dem die Zielanwendung ausgeführt wird. - Ein Übersetzer
292 liest die Architektursprache durch Referenzieren der Metafile-Bibliothek246 und Extrahieren eines Pseudocodes für das Übersetzen durch den Übersetzer292 in einen ausführbaren Code zur Ausführung seitens der Architektur. Der Metafile-Standard294 sieht einen Standard für das Kodieren von Funktionen auf höherer Ebene unter Verwendung der Architektursprache vor, die in der Metafile-Bibliothek246 für das Ausführen durch die Architektur gespeichert und cross-referenziert sind. - Der Präferenz-Standard
296 sieht ein Verfahren zum Erzeugen von Ablaufparametern vor, die als Parameter soft-kodiert sind, um die Ausführung der Architektur bei Ablauf zu ändern, ohne die Struktur des Architekturcodes zu ändern. -
8 ist ein vereinfachtes Diagramm, das eine beispielhafte Schichtung der Beziehungen der vorliegenden Erfindung gemäß einer Ausführung dieser Erfindung darstellt. Das Wörterbuch106 kann als geschichtet oder auf verschiedenen Ebenen angeordnet betrachtet werden, die durch definitorische Verknüpfungen miteinander verbunden sind. Die Zielanwendung100 umfaßt eine Reihe von Transaktionen, die in8 beispielhaft als eine Verkäufertransaktion210 und eine Firmentransaktion212 gezeigt werden, die eine Auftragseingangs-Zielanwendung100 bilden. Eine Benutzerschnittflächenebene208 beschreibt prototypisierte Transaktionen, die zuvor im Prototyping-Transaktions-Modul190 beschrieben wurden (5 ). Da Transaktionen, Berichte, Analysen oder Serverprogramme an Daten aus einer Datenbank operieren, die in eine oder mehrere Sätze gruppiert wurden, umfaßt das Wörterbuch106 ferner eine Definition dieser Sätze. Wie in8 gezeigt wird, umfassen beispielhafte Beschreibungen von Sätzen einen Verkäufersatz214 und einen Firmensatz216 , die jeweils einer Verkäufertransaktion210 und einer Firmentransaktion212 entsprechen. Eine Satzebene zum logischen Abbilden von Ebene206 wird durch Verwendung des Prototyping-Satz-Moduls180 (5 ) bereitgestellt, um die Gruppierung oder Sammlung von transaktional relevanten Daten in einem Satz festzulegen. - Das Prototyping-Datenbank-Modul
170 (5 ) vereinfacht das Abbilden von der logischen zur physischen Ebene204 , wobei Datenelemente, die innerhalb eines Satzes enthalten sind und logische Definitionen auf physische Datenspeicherplätze oder Strukturen abgebildet werden. Eine physische Ebene204 umfaßt physische Datenelemente, die in einem Schema in der Anwendungsdatenbank102 organisiert sind. Die Anwendungsdatenbank102 kann unter Verwendung von wohlbekannten Techniken wie Dritte Normalform (eine Designtechnik), Datendefinitionssprache (DDL) oder andere Datenbank-Partitionierungstechniken, wie die von Oracle oder Sybase, konfiguriert werden. -
9 zeigt ein vereinfachtes Diagramm, das die Ausführung einer interaktiven Transaktion gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Wie in2 dargelegt wurde, kann eine universelle Anwendung108 in einen Client- und einen Server-Anteil partitioniert werden. Ein Client-Anteil oder Vorgang300 startet in der bevorzugten Ausführungsform die Ausführung einer interaktiven Transaktion. An einem Endbenutzer-Arbeitsplatz auf der Betriebssystemebene wird dem Endbenutzer ein Symbol präsentiert, das eine zuvor definierte Zielanwendung bezeichnet. Der Endbenutzer wählt und startet daraufhin die Zielanwendung. In der bevorzugten Ausführungsform ist das Zielanwendungssymbol mit einer .bat-Datei (in Windows 95® und in ähnlicher, aber anderer Weise in Windows NT®, OpenLook, Motif® oder anderen Fenster-Betriebssystemen) verknüpft, die abwechselnd das Client-Modul232 (7 ) mit der Anweisung startet, um das festgelegte Zielanwendungswörterbuch106 zu verwenden, um ein angepaßtes Verhalten für die universelle Anwendung zu erhalten. Der Client-Vorgang300 besitzt ein Anmeldeverfahren301 , in dem der Endbenutzer aufgefordert wird, einen zuvor festgelegten Benutzernamen und ein Paßwort einzugeben. Wenn der Benutzername und das Paßwort richtig sind, zeigt der Client-Vorgang300 den Verantwortlichkeitsvorgang302 an, der dem Endbenutzer die Auswahl der Verantwortlichkeiten bietet, zu denen der Endbenutzer auf der Grundlage der zuvor festgelegten, mit dem Benutzernamen und dem Paßwort des Endbenutzers verbundenen Befugnisse berechtigt ist. Wenn der Endbenutzer zu nur einer Verantwortlichkeit berechtigt ist, wählt der Client-Vorgang300 diese automatisch aus. Sobald der Endbenutzer eine Verantwortlichkeit ausgewählt hat, zeigt der Client-Vorgang300 dem Endbenutzer einen Rahmen mit Optionen oder Menüs an, in denen der Endbenutzer im Wahl-Transaktionsschritt305 erfolgreich durch eine Menühierarchie navigiert, um zur gewünschten Transaktion zu gelangen. - Der Client-Vorgang
300 erzeugt im Schritt310 die geeignete SQL zur Abfrage der Wörterbuch-Datenbank. Wie oben beschrieben wurde, ist das Wörterbuch106 in der bevorzugten Ausführungsform als eine Datenbank implementiert, in der das Datenbankgerät SQL-Befehle für das Abfragen und Zurücksenden von Daten vom Wörterbuch106 zum Client-Vorgang300 verwendet. In der bevorzugten Ausführungsform nimmt der Client-Vorgang300 im Schritt315 eine lokale Cache-Speicherung oder Speicherung der Beschreibung der Transaktion am lokalen Arbeitsplatz oder auf der Festplatte des Computers vor. Durch diese lokale Cache-Speicherung benötigt der Client-Vorgang300 keinen Fernzugriff mehr auf das Wörterbuch106 und erleidet folglich keine Leistungseinbuße. Im Client-Vorgang300 erzeugt der Schritt320 einen Transaktionsrahmen durch Verwendung des Rahmenbaumoduls234 (7 ) in der universellen Anwendung108 . Wenn eine Anwendung auf Daten in einer Anwendungsdatenbank zugreift oder diese aktualisiert, muß ein SQL-Code für die Abfrage der Anwendungsdatenbank325 erzeugt werden. Die Anwendungsdatenbank325 verwendet anschließend den SQL-Code beim Zurücksenden von Datenbankdatenwerten, die durch die Transaktion präsentiert wurden. Die dem Endbenutzer präsentierte Transaktion umfaßt eine oder mehrere Transaktionen, die vom Endbenutzer gewählt werden können und Funktionen wie das Abfragen oder Aktualisieren der Anwendungsdatenbank325 in einem Schritt330 ausführen. Derartiges Abfragen oder Aktualisieren von Datenwerten innerhalb der Anwendungsdatenbank325 stützt sich auch auf die Erzeugung des SQL-Codes für den Zugriff auf die Daten in der Datenbank325 . -
10 ist ein vereinfachtes Diagramm einer Client-Server-Partitionierung der Ausführung einer Zielanwendung gemäß einer Ausführungsform der vorliegenden Erfindung. Wie oben in2 kurz dargestellt wurde, umfaßt die Zielanwendung ein Wörterbuch106 und eine universelle Anwendung108 (2 ), die einen Client-Anteil und einen Server-Anteil aufweist, der mit einer Anwendungsdatenbank102 gekoppelt ist. Bei Anwendungskonfigurationen, die eine umfangreiche Verarbeitung erfordern, sieht eine dezentralisierte Architektur eine effizientere Verteilung der Aufgabenausführung vor. In10 ist eine eher auf dem Peer-to-Peer-Prinzip basierende, dezentralisierte Architektur gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. So kann der Anwendungsdesigner bei der Erzeugung einer Zielanwendung oder der Systemadministrator einer vollständigen Zielanwendung Anteile der universellen Anwendung gemäß der Verarbeitungskapazität der Zielinstallations-Hardware, des Betriebssystems und der Kommunikationssoftware konfigurieren und verteilen. Diese Verteilung der universellen Anwendung erscheint dem Benutzer der Zielanwendung transparent. In10 koppelt sich ein Benutzer an eine Zielanwendung über einen Client-Arbeitsplatz614 an, der die Form eines Personal Computers oder einer anspruchsvolleren, rechenbetonten Umgebung wie z.B. eines Unix-Arbeitsplatzes besitzen kann. Der Benutzer ruft die Ausführung der Zielanwendung auf, die abwechselnd den Client-Anteil620 einer universellen Anwendung108 startet (2 und7 ). In der bevorzugten Ausführungsform enthält der Client-Anteil620 den Client232 (7 ), der eine Folge von Datentransfer-APIs umfaßt, um den Austausch von Verarbeitungsanweisungen und -daten innerhalb der Client-Server-Architektur600 zu unterstützen. Die Datentransfer-APIs616 stellen eine übliche Schnittstelle mit dem Server-Anteil622 bereit, der physisch im Client-Arbeitsplatz614 untergebracht werden oder – wie in der bevorzugten Ausführungsform – sich in einem separaten Server-Gerät befinden kann, der mit dem Client-Arbeitsplatz614 über standardisierte Netzwerktechniken verbunden ist. - Während des Ausführungsverlaufs einer Zielanwendung wird dem Benutzer eine Reihe von Menüs präsentiert, die entweder in Zusatzmenüs oder Transaktionen enden, wie oben beschrieben wurde. Der Client-Anteil
620 sendet Transaktionsanforderungen über Datentransfer-APIs616 , die von einem Dispatcher604 evaluiert werden. Der Dispatcher604 evaluiert die Nachrichten, um zu bestimmen, welcher Server die übertragenen Anforderungen bearbeitet. Der Dispatcher604 überträgt die Anforderungen an die zugewiesenen Server zur Verarbeitung oder zu einer anderen Instanz des Dispatchers604 , die sich auf einem anderen Server befinden kann. Wenn die Anteile der Zielanwendung spezielles oder anspruchsvolles Bearbeiten erfordern, kann ein Anwendungsdesigner einen Custom-Server624 zur Bearbeitung einer spezifischen Anforderung oder einer Reihe von Anforderungen erstellen.10 zeigt zwei solcher angepaßter Server, und zwar einen Margen-Server608 und einen Gebühren-Server610 , die in einer beispielhaften Börsen-Zielanwendung verwendet werden. Wie oben erläutert wurde, wird die Ausführung einer Zielanwendung durch die Inhalte des Wörterbuches106 angepaßt. Deshalb muß, wenn ein Benutzer die Zielanwendung startet, regelmäßig das Wörterbuch106 konsultiert werden. Um das Auffinden von Daten aus der Wörterbuch-Datenbank zu erleichtern, gibt der Client-Anteil620 Datentransfer-APIs aus, die mit der vorherigen Besprechung mit dem Server-Anteil622 konsistent sind. Neben der Abwicklung von nicht ausdrücklich angeforderten Server-Anfragen überträgt der Transaktions-Server612 Nachrichtenabfragen an die Nachrichtenbibliothek266 , die selbständig den abgefragten SQL-Code präsentiert, der benötigt wird, um eine Anwendungsdatenbank102 zum Auffinden von Elementen des Wörterbuches106 abzufragen. Diese Nachrichtenverarbeitung erleichtert das Eingeben, Auffinden oder Ändern von Daten innerhalb einer Anwendungsdatenbank102 . - Die vorliegende Architektur erleichtert auch das Empfangen und Präsentieren von Daten bei einer Drittquelle, wie beispielsweise der Datenquelle
618 , ohne daß Interaktionen seitens des Benutzers am Client-Arbeitsplatz614 erforderlich sind. Die Datenquelle618 kann die Form einer flachen Datei für das Verarbeiten durch die Zielanwendung oder anderer Datenversorgungen besitzen, von denen die Zielanwendung Daten empfangen oder übertragen kann.
die Zielsoftwareanwendung aus einer wieder verwendbaren universellen Softwareanwendung erzeugt wird;
die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank definiert und eine Anpassung der universellen Softwareanwendung in die Zielsoftwareanwendung repräsentiert;
das Verfahren ferner den Schritt des Prototyping der Zielsoftwareanwendung auf der Basis der Beschreibung umfaßt und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert;
die Beschreibung in einem Wörterbuch in Form einer durch die universelle Softwareanwendung zu referenzierenden Datenbank gespeichert wird; und
das Wörterbuch von der universellen Softwareanwendung bei Ausführung der Zielsoftwareanwendung aufgerufen wird, um die universelle Softwareanwendung anzupassen, damit sie die Zielsoftwareanwendung wird.
die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank definiert und eine Anpassung einer universellen Softwareanwendung in die Zielsoftwareanwendung repräsentiert;
die Beschreibung in einem Wörterbuch in Form einer Datenbank gespeichert ist;
die universelle Softwareanwendung wieder verwendbare Softwaremodule umfaßt; und
das System ferner einen an den Anwendungs-Editor gekoppelten Prototyping-Mechanismus umfaßt, um einen Prototypen der Zielsoftwareanwendung auf der Basis der Beschreibung zu erstellen, wodurch gegebenenfalls eine Verfeinerung der Beschreibung ermöglicht wird; und die universelle Softwareanwendung dafür ausgelegt ist, bei Ausführung der Zielsoftwareanwendung das Wörterbuch zu referenzieren, um einen angepaßten Betrieb der universellen Softwareanwendung abzuleiten, um wie im Anwendungs-Editor beschrieben zu der Zielsoftwareanwendung zu werden.
die Zielsoftwareanwendung aus einer wieder verwendbaren universellen Softwareanwendung erzeugt wird;
die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank definiert und eine Anpassung der universellen Softwareanwendung in die Zielsoftwareanwendung repräsentiert;
die computerausführbaren Anweisungen ferner die Schritte des Prototyping der Zielsoftwareanwendung auf der Basis der Beschreibung durchführen und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert;
die Beschreibung in einem Wörterbuch in Form einer durch die universelle Softwareanwendung zu referenzierenden Datenbank gespeichert wird; und das Wörterbuch von der universellen Softwareanwendung bei Ausführung der Zielsoftwareanwendung aufgerufen wird, um die universelle Softwareanwendung anzupassen, damit sie die Zielsoftwareanwendung wird.
Claims (27)
- Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) zur Verwendung bei der Interaktion mit einer Anwendungsdatenbank (102 ), mit den folgenden Schritten: a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor (104 ), um eine die Zielsoftwareanwendung (100 ) repräsentierende Beschreibung abzuleiten; b) gegebenenfalls Verfeinern der Beschreibung; c) Speichern der Beschreibung der Zielsoftwareanwendung (100 ); und d) bei Ausführung der Zielsoftwareanwendung (100 ) wird die Beschreibung aufgerufen; dadurch gekennzeichnet, daß die Zielsoftwareanwendung (100 ) aus einer wieder verwendbaren universellen Softwareanwendung (108 ) erzeugt wird; die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank (102 ) definiert und eine Anpassung der universellen Softwareanwendung (108 ) in die Zielsoftwareanwendung repräsentiert; das Verfahren ferner den Schritt des Prototyping der Zielsoftwareanwendung (100 ) auf der Basis der Beschreibung umfaßt und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert; die Beschreibung in einem Wörterbuch (106 ) in Form einer durch die universelle Softwareanwendung (108 ) zu referenzierende Datenbank gespeichert wird; und das Wörterbuch (106 ) von der universellen Softwareanwendung (108 ) bei Ausführung der Zielsoftwareanwendung (100 ) aufgerufen wird, um die universelle Softwareanwendung (108 ) anzupassen, damit sie die Zielsoftwareanwendung (100 ) wird. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 1, wobei der Schritt des Durchführens eines Dialogs auf hoher Ebene die folgenden Schritte umfaßt: a) eindeutiges Identifizieren der Zielsoftwareanwendung (100 ) mit einem Namen; b) Ausstatten der eindeutig identifizierten Zielsoftwareanwendung (100 ) mit Zugangssicherheit; c) Definieren von Menüs zum Navigieren in der gesamten Zielsoftwareanwendung (100 ), um die Transaktionen auszuführen. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 2, wobei der Schritt des Ausstattens mit Zugangssicherheit die folgenden Schritte umfaßt: a) Festlegen von Verantwortlichkeiten, um Endbenutzer in der Zielsoftwareanwendung (100 ) einzuteilen, auf für ihre festgelegte Verantwortlichkeit exklusive Teile der Zielsoftwareanwendung (100 ) zuzugreifen und diese auszuführen; b) Identifizieren der Endbenutzer der Zielsoftwareanwendung (100 ); und c) Assoziieren der Endbenutzer der Zielsoftwareanwendung (100 ) mit mindestens einer der Verantwortlichkeiten. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 2, wobei die Datensätze aus der Anwendungsdatenbank (102 ) eine Teilmenge von Daten aus der Anwendungsdatenbank (102 ) bilden. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 4, ferner mit dem Schritt des Definierens einer logischen Anwendungsdatenbank gemäß einem Schema, aus dem die Sätze abgeleitet werden. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 5, ferner mit dem Schritt des Abbildens der logischen Anwendungsdatenbank auf die Anwendungsdatenbank (102 ). - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 6, ferner mit dem Schritt des Definierens der Anwendungsdatenbank (102 ) gemäß einem Schema, wenn die Anwendungsdatenbank (102 ) vor der Erzeugung der Zielsoftwareanwendung (100 ) nicht existiert. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftware anwendung (
100 ) nach Anspruch 4, wobei der Transaktionsdefinitionsschritt ferner die folgenden Schritte umfaßt: a) Definieren von Ansichten von Daten aus den Sätzen, wobei die Ansichten eine dem Endbenutzer zu präsentierende Ansammlung der Daten innerhalb der Sätze bilden; b) Definieren von Rahmen aus den Ansichten von Daten, um die Daten aus der Anwendungsdatenbank (102 ) anzuzeigen und anzuordnen. - Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) nach Anspruch 8, ferner mit den folgenden Schritten: a) Definieren einer intelligenten Codetabelle, die aus einer eingeschränkten Domäne gültiger Werte für die Daten aus der Datenbank besteht; b) Präsentieren der eingeschränkten Domäne von gültigen Werten in den Rahmen, aus denen der Endbenutzer auswählen kann. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ), wobei das System folgendes umfaßt, a) einen Anwendungs-Editor (104 ) zum Durchführen eines Dialogs auf hoher Ebene, um eine die Zielsoftwareanwendung (100 ) repräsentierende Beschreibung abzuleiten, b) Mittel zum Verfeinern der Beschreibung; c) einen Speicher zum Speichern der Beschreibung der Zielsoftwareanwendung (100 ) zur nachfolgenden Referenzierung während der Ausführung der Zielsoftwareanwendung (100 ); dadurch gekennzeichnet, daß die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank (102 ) definiert und eine Anpassung einer universellen Softwareanwendung (108 ) in die Zielsoftwareanwendung repräsentiert; die Beschreibung in einem Wörterbuch (106 ) in Form einer Datenbank gespeichert ist; die universelle Softwareanwendung wieder verwendbare Softwaremodule umfaßt und daß das System ferner einen an den Anwendungs-Editor (104 ) angekoppelten Prototyping-Mechanismus umfaßt, um einen Prototypen der Zielsoftwareanwendung (100 ) auf der Basis der Beschreibung zu erstellen, wodurch gegebenenfalls eine Verfeinerung der Beschreibung ermöglicht wird; und die universelle Softwareanwendung dafür ausgelegt ist, bei Ausführung der Zielsoftwareanwendung (100 ) das Wörterbuch (106 ) zu referenzieren, um einen angepaßten Betrieb der universellen Softwareanwendung (108 ) abzuleiten, um wie dem Anwendungs-Editor (104 ) beschrieben, zu der Zielsoftwareanwendung (100 ) zu werden. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 10, wobei der Anwendungs-Editor (104 ) folgendes umfaßt: a) ein Modul zum eindeutigen Identifizieren der Zielsoftwareanwendung (100 ) mit einem Namen; b) ein Modul zum Ausstatten der eindeutig identifizierten Zielsoftwareanwendung (100 ) mit Zugangssicherheit; c) ein Modul zum Definieren von Menüs zum Navigieren in der gesamten Zielsoftwareanwendung (100 ) um Transaktionen auszuführen; und d) ein Modul zum Definieren der an der Anwendungsdatenbank (102 ) in der Zielsoftwareanwendung (100 ) durchzuführenden Transaktionen. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 11, wobei das Modul zum Ausstatten mit Zugangssicherheit folgendes umfaßt: a) ein Modul zum Festlegen von Verantwortlichkeiten, um_ Endbenutzer in der Zielsoftwareanwendung (100 ) einzuteilen, auf für ihre festgelegte Verantwortlichkeit exklusive Teile der Zielsoftwareanwendung (100 ) zuzugreifen und diese auszuführen; b) ein Modul zum Identifizieren der Endbenutzer der Zielsoftwareanwendung (100 ); und c) ein Modul zum Assoziieren der Endbenutzer der Zielsoftwareanwendung (100 ) mit mindestens einer der Verantwortlichkeiten. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 11, wobei das Modul zum Definieren der Transaktionen ferner ein Modul zum Erzeugen von Datensätzen aus der Anwendungsdatenbank (102 ), auf die die Transaktionen einwirken, umfaßt, wobei die Sätze eine Teilmenge der Daten aus der Anwendungsdatenbank (102 ) bilden sollen. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 13, wobei der Anwendungs-Editor (104 ) ferner ein Modul zum Definieren einer logischen Anwendungsdatenbank gemäß einem Schema, aus dem die Sätze abgeleitet werden, umfaßt. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 14, wobei der Anwendungs-Editor (104 ) ferner ein Modul zum Abbilden der logischen Anwendungsdatenbank auf die Anwendungsdatenbank (102 ) umfaßt. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 15, wobei der Anwendungs-Editor (104 ) ferner ein Modul zum Definieren der Anwendungsdatenbank (102 ) gemäß einem Schema, wenn die Anwendungsdatenbank (102 ) vor der Erzeugung der Zielsoftwareanwendung (100 ) nicht existiert, umfaßt. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 13, wobei das Modul zum Definieren von Transaktionen ferner folgendes umfaßt: a) ein Modul zum Definieren von Ansichten von Daten aus den Sätzen, wobei die Ansichten eine dem Endbenutzer zu präsentierende Ansammlung der Daten innerhalb der Sätze bilden; b) ein Modul zum Definieren von Rahmen aus den Ansichten von Daten, um die Daten aus der Anwendungsdatenbank (102 ) anzuzeigen und anzuordnen. - System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (
100 ) zur Datenbankverwaltung einer Anwendungsdatenbank (102 ) nach Anspruch 17, wobei der Anwendungs-Editor (104 ) ferner folgendes umfaßt: a) ein Modul zum Definieren einer intelligenten Codetabelle, die aus einer eingeschränkten Domäne gültiger Werte für die Daten aus der Datenbank besteht; b) ein Modul zum Präsentieren der eingeschränkten Domäne von gültigen Werten in den Rahmen, aus denen der Endbenutzer auswählen kann. - Computerlesbares Medium zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (
100 ) zur Interaktion mit einer Anwendungsdatenbank (102 ), wobei das computerlesbare Medium computerausführbare Anweisungen zur Ausführung der folgenden Schritte aufweist; a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor (104 ), um eine die Zielsoftwareanwendung (100 ) repräsentierende Beschreibung abzuleiten; b) gegebenenfalls Verfeinern der Beschreibung; c) Speichern der Beschreibung der Zielsoftwareanwendung (100 ); und d) bei Ausführung der Zielsoftwareanwendung (100 ) wird die Beschreibung aufgerufen. dadurch gekennzeichnet, daß die Zielsoftwareanwendung (100 ) aus einer wieder verwendbaren universellen Softwareanwendung (108 ) erzeugt wird; die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank (102 ) definiert und eine Anpassung der universellen Softwareanwendung (108 ) in die Zielsoftwareanwendung repräsentiert; die computerausführbaren Anweisungen ferner den Schritt des Prototyping der Zielsoftwareanwendung (100 ) auf der Basis der Beschreibung durchführen und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert; die Beschreibung in einem Wörterbuch (106 ) in Form einer durch die universelle Softwareanwendung (108 ) zu referenzierende Datenbank gespeichert wird; und das Wörterbuch (106 ) von der universellen Softwareanwendung (108 ) bei Ausführung der Zielsoftwareanwendung (100 ) aufgerufen wird, um die universelle Softwareanwendung (108 ) anzupassen, damit sie die Zielsoftwareanwendung (100 ) wird. - Computerlesbares Medium nach Anspruch 19, wobei die computerausführbaren Anweisungen zum Durchführen eines Dialogs auf hoher Ebene ferner computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) eindeutiges Identifizieren der Zielsoftwareanwendung (
100 ) mit einem Namen; b) Ausstatten der eindeutig identifizierten Zielsoftwareanwendung (100 ) mit Zugangssicherheit; c) Definieren von Menüs zum Navigieren in der gesamten Zielsoftwareanwendung (100 ), um die Transaktionen auszuführen. - Computerlesbares Medium nach Anspruch 20, wobei die computerausführbaren Anweisungen zum Ausstatten mit Zugangssicherheit computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) Festlegen von Verantwortlichkeiten, um Endbenutzer in der Zielsoftwareanwendung (
100 ) einzuteilen, auf für ihre festgelegte Verantwortlichkeit exklusive Teile der Zielsoftwareanwendung (100 ) zuzugreifen und diese auszuführen; b) Identifizieren der Endbenutzer der Zielsoftwareanwendung (100 ); und c) Assoziieren der Endbenutzer der Zielsoftwareanwendung (100 ) mit mindestens einer der Verantwortlichkeiten. - Computerlesbares Medium nach Anspruch 20, wobei die computerausführbaren Anweisungen zum Definieren von Transaktionen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Erzeugen von Datensätzen aus der Anwendungsdatenbank (
102 ), woran die Transaktionen operieren, wobei die Sätze eine Teilmenge von Daten aus der Anwendungsdatenbank (102 ) bilden sollen. - Computerlesbares Medium nach Anspruch 22, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Definieren einer logischen Anwendungsdatenbank gemäß einem Schema, aus dem die Sätze abgeleitet werden.
- Computerlesbares Medium nach Anspruch 23, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Abbilden der logischen Datenbank auf die Anwendungsdatenbank (
102 ). - Computerlesbares Medium nach Anspruch 24, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Definieren der Anwendungsdatenbank (
102 ) gemäß einem Schema, wenn die Anwendungsdatenbank (102 ) vor der Erzeugung der Zielsoftwareanwendung (100 ) nicht existiert. - Computerlesbares Medium nach Anspruch 22, wobei die computerausführbaren Anweisungen zum Definieren von Transaktionen ferner computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) Definieren von Ansichten von Daten aus den Sätzen, wobei die Ansichten eine dem Endbenutzer zu präsentierende Ansammlung der Daten innerhalb der Sätze bilden; b) Definieren von Rahmen aus den Ansichten von Daten, um die Daten aus der Anwendungsdatenbank (
102 ) anzuzeigen und anzuordnen. - Computerlesbares Medium nach Anspruch 26, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) Definieren einer intelligenten Codetabelle, die aus einer eingeschränkten Domäne gültiger Werte für die Daten aus der Datenbank besteht; b) Präsentieren der eingeschränkten Domäne von gültigen Werten in den Rahmen, aus denen der Endbenutzer auswählen kann.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/932,255 US6016394A (en) | 1997-09-17 | 1997-09-17 | Method and system for database application software creation requiring minimal programming |
US932255 | 1997-09-17 | ||
PCT/US1998/019108 WO1999014651A2 (en) | 1997-09-17 | 1998-09-15 | Method and system for database application software creation requiring minimal programming |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69838139D1 DE69838139D1 (de) | 2007-09-06 |
DE69838139T2 true DE69838139T2 (de) | 2008-05-08 |
Family
ID=25462034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69838139T Expired - Lifetime DE69838139T2 (de) | 1997-09-17 | 1998-09-15 | Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen |
Country Status (7)
Country | Link |
---|---|
US (1) | US6016394A (de) |
EP (1) | EP1015969B1 (de) |
AT (1) | ATE368252T1 (de) |
AU (1) | AU733773B2 (de) |
CA (1) | CA2304020C (de) |
DE (1) | DE69838139T2 (de) |
WO (1) | WO1999014651A2 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202014006343U1 (de) | 2014-08-07 | 2014-08-21 | Db Systel Gmbh | Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme |
WO2015185328A1 (de) | 2014-06-06 | 2015-12-10 | Rode Oliver | Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens |
Families Citing this family (354)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6158044A (en) * | 1997-05-21 | 2000-12-05 | Epropose, Inc. | Proposal based architecture system |
US6099317A (en) * | 1998-10-16 | 2000-08-08 | Mississippi State University | Device that interacts with target applications |
US6442572B2 (en) * | 1998-01-28 | 2002-08-27 | International Business Machines Corporation | Method of and computer system for performing a transaction on a database |
US7197534B2 (en) * | 1998-09-01 | 2007-03-27 | Big Fix, Inc. | Method and apparatus for inspecting the properties of a computer |
US8914507B2 (en) * | 1998-09-01 | 2014-12-16 | International Business Machines Corporation | Advice provided for offering highly targeted advice without compromising individual privacy |
US6263362B1 (en) * | 1998-09-01 | 2001-07-17 | Bigfix, Inc. | Inspector for computed relevance messaging |
US6170081B1 (en) * | 1998-09-17 | 2001-01-02 | Unisys Coporation | Method and system for interfacing to a variety of software development tools |
US6308146B1 (en) * | 1998-10-30 | 2001-10-23 | J. D. Edwards World Source Company | System and method for simulating user input to control the operation of an application |
US6237003B1 (en) * | 1998-11-30 | 2001-05-22 | Platinum Technology Ip, Inc. | Method and apparatus for supporting dynamic run-time object definition in a relational database management system |
US20070162420A1 (en) * | 2004-01-21 | 2007-07-12 | Oracle International Corporation | Techniques for automatically discovering a database device on a network |
US6487547B1 (en) * | 1999-01-29 | 2002-11-26 | Oracle Corporation | Database appliance comprising hardware and software bundle configured for specific database applications |
US7277919B1 (en) * | 1999-03-19 | 2007-10-02 | Bigfix, Inc. | Relevance clause for computed relevance messaging |
US8151242B1 (en) * | 1999-04-06 | 2012-04-03 | Ns Solutions Corporation | Description support apparatus and method for requisition sheet, and recording medium |
US6768985B1 (en) * | 1999-08-30 | 2004-07-27 | Unisys Corporation | Method and apparatus for administration of database partitions |
US6842906B1 (en) | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US6742015B1 (en) | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
US6571282B1 (en) | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
US6549949B1 (en) | 1999-08-31 | 2003-04-15 | Accenture Llp | Fixed format stream in a communication services patterns environment |
US6601192B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Assertion component in environment services patterns |
US6640249B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US6615253B1 (en) | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US7289964B1 (en) | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
US6578068B1 (en) | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
US6954220B1 (en) | 1999-08-31 | 2005-10-11 | Accenture Llp | User context component in environment services patterns |
US6601234B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
US6715145B1 (en) | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
FR2799855A1 (fr) * | 1999-10-15 | 2001-04-20 | Sual E | Procede pour creer une structure hierarchique variable d'acces a des actions dans un systeme informatique |
US6301701B1 (en) * | 1999-11-10 | 2001-10-09 | Tenfold Corporation | Method for computer-assisted testing of software application components |
WO2001048636A1 (en) * | 1999-12-28 | 2001-07-05 | Computer Associates Think, Inc. | Method and apparatus for maintaining multi-instance database management systems with hierarchical inheritance and cross-hierarchy overrides |
US7849117B2 (en) * | 2000-01-12 | 2010-12-07 | Knowledge Sphere, Inc. | Multi-term frequency analysis |
US7617491B1 (en) | 2000-01-20 | 2009-11-10 | Priceline.Com Incorporated | Apparatus, system, and method for validating network communications data |
US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
US7505762B2 (en) | 2004-02-27 | 2009-03-17 | Fusionone, Inc. | Wireless telephone data backup system |
US8156074B1 (en) * | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
US8620286B2 (en) * | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
US7082609B2 (en) * | 2000-03-31 | 2006-07-25 | Schlumbergersema Telekom Gmbh & Co. Kg | Meta application system and method |
US20020087341A1 (en) * | 2000-03-31 | 2002-07-04 | Jochen Kappel | Customer care and billing system |
US6460041B2 (en) | 2000-04-26 | 2002-10-01 | Inshift Technologies, Inc. | Browser-based database-access engine apparatus and method |
DE60119934D1 (de) | 2000-05-25 | 2006-06-29 | Manyworlds Inc | Netzwerkverwaltungs- und zugriffssystem für unscharfe inhalte |
US6742001B2 (en) * | 2000-06-29 | 2004-05-25 | Infoglide Corporation | System and method for sharing data between hierarchical databases |
US6694392B1 (en) * | 2000-06-30 | 2004-02-17 | Intel Corporation | Transaction partitioning |
US7895334B1 (en) | 2000-07-19 | 2011-02-22 | Fusionone, Inc. | Remote access communication architecture apparatus and method |
US8073954B1 (en) | 2000-07-19 | 2011-12-06 | Synchronoss Technologies, Inc. | Method and apparatus for a secure remote access system |
US6785805B1 (en) | 2000-08-08 | 2004-08-31 | Vi Technology, Inc. | Network-based configuration method for systems integration in test, measurement, and automation environments |
US6738765B1 (en) | 2000-08-11 | 2004-05-18 | Attensity Corporation | Relational text index creation and searching |
FR2813132B1 (fr) * | 2000-08-16 | 2003-01-31 | Marc Vogel | Systeme d'interface d'acces aux donnees d'une base de donnees |
US7386495B2 (en) * | 2001-03-23 | 2008-06-10 | International Business Machines Corporation | System and method for processing tax codes by company group |
US7155403B2 (en) * | 2001-03-22 | 2006-12-26 | International Business Machines Corporation | System and method for leveraging procurement across companies and company groups |
US7283976B2 (en) * | 2001-03-22 | 2007-10-16 | International Business Machines Corporation | System and method for invoice imaging through negative confirmation process |
US8027892B2 (en) | 2001-03-28 | 2011-09-27 | International Business Machines Corporation | System and method for automating invoice processing with positive confirmation |
US7356496B2 (en) * | 2001-03-22 | 2008-04-08 | International Business Machines Corporation | System and method for synchronizing ledger accounts by company group |
US7197480B1 (en) * | 2000-09-07 | 2007-03-27 | International Business Machines Corporation | System and method for front end business logic and validation |
US6772167B1 (en) * | 2000-09-07 | 2004-08-03 | International Business Machines Corporation | System and method for providing a role table GUI via company group |
US6795830B1 (en) | 2000-09-08 | 2004-09-21 | Oracle International Corporation | Techniques for providing off-host storage for a database application |
US7536686B2 (en) * | 2000-09-08 | 2009-05-19 | Oracle International Corporation | Techniques for automatically installing and configuring database applications |
US6993657B1 (en) | 2000-09-08 | 2006-01-31 | Oracle International Corporation | Techniques for managing database systems with a community server |
US6640231B1 (en) * | 2000-10-06 | 2003-10-28 | Ontology Works, Inc. | Ontology for database design and application development |
US6832226B1 (en) * | 2000-10-11 | 2004-12-14 | Bruce H. Parker | Method of providing data dictionary-driven web-based database applications |
WO2002033505A2 (en) * | 2000-10-16 | 2002-04-25 | Vidius Inc. | A method and apparatus for supporting electronic content distribution |
US8161081B2 (en) | 2001-03-16 | 2012-04-17 | Michael Philip Kaufman | System and method for generating automatic user interface for arbitrarily complex or large databases |
US6775825B1 (en) * | 2000-10-31 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Common software application definition for resource management |
US7885981B2 (en) * | 2000-10-31 | 2011-02-08 | Michael Philip Kaufman | System and method for generating automatic user interface for arbitrarily complex or large databases |
EP1364313A2 (de) * | 2000-10-31 | 2003-11-26 | Michael Philip Kaufman | System und verfahren zum automatischen erzeugen von benutzerschnittstellen für beliebig komplexe oder grosse datenbanken |
US7587446B1 (en) * | 2000-11-10 | 2009-09-08 | Fusionone, Inc. | Acquisition and synchronization of digital media to a personal information space |
US7818435B1 (en) | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
CA2329559A1 (en) * | 2000-12-22 | 2002-06-22 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for generating serialization code for representing a model in different type systems |
JP2002236583A (ja) * | 2001-02-07 | 2002-08-23 | Fujitsu Ten Ltd | 組込み用ソフトウェアモジュール |
US7243077B2 (en) | 2001-03-02 | 2007-07-10 | International Business Machines Corporation | Method and computer program product for managing an internet trading network |
US6938053B2 (en) * | 2001-03-02 | 2005-08-30 | Vality Technology Incorporated | Categorization based on record linkage theory |
US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
US7302634B2 (en) * | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
US7188091B2 (en) * | 2001-03-21 | 2007-03-06 | Resolutionebs, Inc. | Rule processing system |
US7761397B2 (en) * | 2001-03-21 | 2010-07-20 | Huelsman David L | Rule processing method and apparatus providing automatic user input selections |
US6965887B2 (en) * | 2001-03-21 | 2005-11-15 | Resolutionebs, Inc. | Rule processing methods for automating a decision and assessing satisfiability of rule-based decision diagrams |
US8615566B1 (en) | 2001-03-23 | 2013-12-24 | Synchronoss Technologies, Inc. | Apparatus and method for operational support of remote network systems |
US7543269B2 (en) * | 2001-03-26 | 2009-06-02 | Biglever Software, Inc. | Software customization system and method |
US20020169738A1 (en) * | 2001-05-10 | 2002-11-14 | Giel Peter Van | Method and system for auditing an enterprise configuration |
US7134122B1 (en) | 2001-05-31 | 2006-11-07 | Oracle International Corporation | One click deployment |
WO2003014927A2 (en) * | 2001-08-08 | 2003-02-20 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
US20030061106A1 (en) * | 2001-09-21 | 2003-03-27 | Sunday Orhomuru | Data transfer or transfer of data using wireless mobile phone and any other wireless mobile devices |
CA2357937A1 (en) | 2001-09-28 | 2003-03-28 | Ibm Canada Limited-Ibm Canada Limitee | Database diagnostic system and method |
US6944855B2 (en) * | 2001-10-25 | 2005-09-13 | Siemens Medical Solutions Health Services Corporation | System, method, and article of manufacture for creating and updating an application using software application elements |
US7904504B2 (en) * | 2001-10-31 | 2011-03-08 | Hewlett-Packard Development Company, L.P. | Policy enforcement and access control for distributed networked services |
EP1310887A1 (de) * | 2001-11-07 | 2003-05-14 | Concreto S.R.L. | Prozess und System für die automatische Verwaltung von Verfahren, Aktivitäten und Arbeitsabläufen in der Bauindustrie |
US20030093433A1 (en) * | 2001-11-14 | 2003-05-15 | Exegesys, Inc. | Method and system for software application development and customizible runtime environment |
US7937281B2 (en) * | 2001-12-07 | 2011-05-03 | Accenture Global Services Limited | Accelerated process improvement framework |
US20030115570A1 (en) * | 2001-12-13 | 2003-06-19 | International Business Machines Corporation | Development environment for building software applications that mimics the target environment |
US20030172368A1 (en) * | 2001-12-26 | 2003-09-11 | Elizabeth Alumbaugh | System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology |
US7062502B1 (en) * | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US7587379B2 (en) | 2002-03-20 | 2009-09-08 | Huelsman David L | Method and system for capturing business rules for automated decision procession |
US6944627B2 (en) * | 2002-04-23 | 2005-09-13 | International Business Machines Corporation | Content management system and methodology employing a tree-based table hierarchy featuring arbitrary information retrieval from different locations in the hierarchy |
US7082455B2 (en) * | 2002-04-23 | 2006-07-25 | International Business Machines Corporation | Method and apparatus of parameter passing of structured data for stored procedures in a content management system |
US7035854B2 (en) * | 2002-04-23 | 2006-04-25 | International Business Machines Corporation | Content management system and methodology employing non-transferable access tokens to control data access |
US6999966B2 (en) * | 2002-04-23 | 2006-02-14 | International Business Machines Corporation | Content management system and methodology for implementing a complex object using nested/recursive structures |
US6947948B2 (en) * | 2002-04-23 | 2005-09-20 | International Business Machines Corporation | Version-enabled, multi-typed, multi-targeting referential integrity relational database system and methodology |
US6950815B2 (en) * | 2002-04-23 | 2005-09-27 | International Business Machines Corporation | Content management system and methodology featuring query conversion capability for efficient searching |
US6938050B2 (en) * | 2002-04-23 | 2005-08-30 | International Business Machines Corporation | Content management system and methodology employing a tree-based table hierarchy which accomodates opening a dynamically variable number of cursors therefor |
US6895409B2 (en) * | 2002-06-17 | 2005-05-17 | Adaptik Corporation | Method and apparatus for creating an adaptive application |
US20040002958A1 (en) | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for providing notification(s) |
US7698276B2 (en) | 2002-06-26 | 2010-04-13 | Microsoft Corporation | Framework for providing a subscription based notification system |
US20040006564A1 (en) * | 2002-06-28 | 2004-01-08 | Lucovsky Mark H. | Schema-based service for identity-based data access to category data |
US9886309B2 (en) | 2002-06-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Identity-based distributed computing for device resources |
AU2003259453A1 (en) * | 2002-07-19 | 2004-02-09 | Sap Aktiengesellschaft | Business solution management (bsm) |
EP1437662A1 (de) * | 2003-01-10 | 2004-07-14 | Deutsche Thomson-Brandt Gmbh | Verfahren und Vorrichtung zum Zugriff auf eine Datenbank |
US7392246B2 (en) * | 2003-02-14 | 2008-06-24 | International Business Machines Corporation | Method for implementing access control for queries to a content management system |
US7890938B2 (en) * | 2003-02-26 | 2011-02-15 | Novell, Inc. | Heterogeneous normalization of data characteristics |
US20080320054A1 (en) * | 2003-04-09 | 2008-12-25 | Cindy Howard | Database and Software Conversion System and Method |
US7383257B2 (en) * | 2003-05-30 | 2008-06-03 | International Business Machines Corporation | Text explanation for on-line analytic processing events |
US7433878B2 (en) * | 2003-06-23 | 2008-10-07 | American Express Travel Related Services Company, Inc. | Method and system for interfacing with accounting systems |
WO2005010715A2 (en) | 2003-07-21 | 2005-02-03 | Fusionone, Inc. | Device message management system |
US7814093B2 (en) * | 2003-07-25 | 2010-10-12 | Microsoft Corporation | Method and system for building a report for execution against a data store |
US20050021538A1 (en) * | 2003-07-25 | 2005-01-27 | Activeviews, Inc. | Method and system for displaying a relational abstraction of a data store |
US20050038786A1 (en) * | 2003-08-11 | 2005-02-17 | International Business Machines Corporation (Ibm) | Self-configuration of database tables |
US7587380B2 (en) * | 2003-09-29 | 2009-09-08 | Huelsman David L | Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection |
US7552102B2 (en) * | 2003-09-29 | 2009-06-23 | Huelsman David L | Rule processing method, apparatus, and computer-readable medium to provide improved selection advice |
US7565337B2 (en) * | 2003-09-29 | 2009-07-21 | Huelsman David L | Batch validation method, apparatus, and computer-readable medium for rule processing |
US20050091184A1 (en) * | 2003-10-24 | 2005-04-28 | Praveen Seshadri | Personalized folders |
US7669177B2 (en) * | 2003-10-24 | 2010-02-23 | Microsoft Corporation | System and method for preference application installation and execution |
US7137099B2 (en) * | 2003-10-24 | 2006-11-14 | Microsoft Corporation | System and method for extending application preferences classes |
US20050102276A1 (en) * | 2003-11-06 | 2005-05-12 | International Business Machines Corporation | Method and apparatus for case insensitive searching of ralational databases |
US7376665B2 (en) * | 2003-11-06 | 2008-05-20 | At&T Delaware Intellectual Property, Inc. | Systems, methods and computer program products for automating retrieval of data from a DB2 database |
US7788638B2 (en) * | 2003-11-21 | 2010-08-31 | Citigroup Global Markets Inc. | Method and system for data file processing |
US7539652B2 (en) | 2003-11-28 | 2009-05-26 | Manyworlds, Inc. | Adaptive self-modifying and recombinant systems |
US8600920B2 (en) * | 2003-11-28 | 2013-12-03 | World Assets Consulting Ag, Llc | Affinity propagation in adaptive network-based systems |
US7606772B2 (en) | 2003-11-28 | 2009-10-20 | Manyworlds, Inc. | Adaptive social computing methods |
US7526459B2 (en) | 2003-11-28 | 2009-04-28 | Manyworlds, Inc. | Adaptive social and process network systems |
US20090018918A1 (en) | 2004-11-04 | 2009-01-15 | Manyworlds Inc. | Influence-based Social Network Advertising |
US7526458B2 (en) | 2003-11-28 | 2009-04-28 | Manyworlds, Inc. | Adaptive recommendations systems |
US7526464B2 (en) * | 2003-11-28 | 2009-04-28 | Manyworlds, Inc. | Adaptive fuzzy network system and method |
USRE45770E1 (en) | 2003-11-28 | 2015-10-20 | World Assets Consulting Ag, Llc | Adaptive recommendation explanations |
US8566263B2 (en) * | 2003-11-28 | 2013-10-22 | World Assets Consulting Ag, Llc | Adaptive computer-based personalities |
DE60325076D1 (de) * | 2003-12-18 | 2009-01-15 | Sap Ag | Verfahren und Rechnersystem zur Bestimmung der Komplexität einer Benutzerschnittstelle |
US7467386B2 (en) * | 2004-01-16 | 2008-12-16 | International Business Machines Corporation | Parameter passing of data structures where API and corresponding stored procedure are different versions/releases |
US7853665B1 (en) * | 2004-02-18 | 2010-12-14 | Microsoft Corporation | Content targeting with audiences |
US20080082421A1 (en) * | 2004-05-12 | 2008-04-03 | Richard Onyon | Monetization of an advanced contact identification system |
US9542076B1 (en) | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
EP1759521B1 (de) * | 2004-05-12 | 2016-06-29 | Synchronoss Technologies, Inc. | Erweitertes kontaktidentifikationssystem |
US20060020501A1 (en) * | 2004-07-22 | 2006-01-26 | Leicht Howard J | Benefit plans |
US20060041930A1 (en) * | 2004-08-23 | 2006-02-23 | Hafeman Joseph E | Accessing personal information |
US7328222B2 (en) * | 2004-08-26 | 2008-02-05 | Oracle International Corporation | Method and apparatus for preserving data coherency in a database by generating a command object that includes instructions for writing a data record to a local cache |
CN101052948A (zh) * | 2004-09-10 | 2007-10-10 | 图形公司 | 对象过程图应用程序开发系统 |
US7734559B2 (en) * | 2004-09-28 | 2010-06-08 | Huelsman David L | Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice |
US7565640B2 (en) * | 2004-10-01 | 2009-07-21 | Microsoft Corporation | Framework for seamlessly authoring and editing workflows at design and runtime |
US20060074735A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Ink-enabled workflow authoring |
US7805324B2 (en) * | 2004-10-01 | 2010-09-28 | Microsoft Corporation | Unified model for authoring and executing flow-based and constraint-based workflows |
US8170901B2 (en) * | 2004-10-01 | 2012-05-01 | Microsoft Corporation | Extensible framework for designing workflows |
US7631291B2 (en) * | 2004-10-01 | 2009-12-08 | Microsoft Corporation | Declarative representation for an extensible workflow model |
US7464366B2 (en) * | 2004-10-01 | 2008-12-09 | Microsoft Corporation | Programming interface for a componentized and extensible workflow model |
US20060074704A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Framework to model cross-cutting behavioral concerns in the workflow domain |
US7451432B2 (en) * | 2004-10-01 | 2008-11-11 | Microsoft Corporation | Transformation of componentized and extensible workflow to a declarative format |
KR20080017313A (ko) * | 2005-05-19 | 2008-02-26 | 퓨전원 인코포레이티드 | 원격 무선 전화기 자동 파괴 |
US7747894B2 (en) * | 2005-06-06 | 2010-06-29 | Microsoft Corporation | Transport-neutral in-order delivery in a distributed system |
US9015652B2 (en) * | 2005-12-21 | 2015-04-21 | Sap Se | Dynamically-generated operating system for sensor networks |
US7992128B2 (en) * | 2006-01-27 | 2011-08-02 | Sap Ag | Computer software adaptation method and system |
US20070192152A1 (en) * | 2006-02-13 | 2007-08-16 | Itt Manufacturing Enterprises, Inc. | Software phase sequencer editor and method of editing |
US8069439B2 (en) * | 2006-03-30 | 2011-11-29 | Microsoft Corporation | Framework for modeling continuations in workflows |
US7739135B2 (en) * | 2006-03-30 | 2010-06-15 | Microsoft Corporation | Asynchronous fault handling in process-centric programs |
US20070239505A1 (en) * | 2006-03-30 | 2007-10-11 | Microsoft Corporation | Abstract execution model for a continuation-based meta-runtime |
US8024405B2 (en) * | 2006-03-30 | 2011-09-20 | Microsoft Corporation | Declarative model for concurrency-control across lightweight threads |
US20070250295A1 (en) * | 2006-03-30 | 2007-10-25 | Subx, Inc. | Multidimensional modeling system and related method |
US20070239498A1 (en) * | 2006-03-30 | 2007-10-11 | Microsoft Corporation | Framework for modeling cancellation for process-centric programs |
US20070244910A1 (en) * | 2006-04-12 | 2007-10-18 | Microsoft Corporation | Business process meta-model |
US20070288890A1 (en) | 2006-05-17 | 2007-12-13 | Ipreo Holdings, Inc. | System, method and apparatus to allow for a design, administration, and presentation of computer software applications |
US7890921B2 (en) | 2006-07-31 | 2011-02-15 | Lifecylce Technologies, Inc. | Automated method for coherent project management |
US8381180B2 (en) * | 2006-09-08 | 2013-02-19 | Sap Ag | Visually exposing data services to analysts |
US8032566B2 (en) * | 2006-12-04 | 2011-10-04 | Teradata Us, Inc. | Tools for defining and using custom analysis modules |
US8285732B2 (en) * | 2006-12-18 | 2012-10-09 | Sap Ag | Method and system for providing themes for software applications |
CN101606144A (zh) * | 2007-01-26 | 2009-12-16 | 富盛旺公司 | 用于备份内容以供移动设备使用的系统和方法 |
US7870169B2 (en) * | 2007-06-29 | 2011-01-11 | International Business Machines Corporation | Method for enabling traceability and recovery from errors during migration of software applications |
US8260714B2 (en) * | 2007-08-09 | 2012-09-04 | Panasonic Corporation | Terminal apparatus and system thereof |
US8429645B2 (en) * | 2007-08-14 | 2013-04-23 | International Business Machines Corporation | Method for optimizing migration of software applications to address needs |
US20090049064A1 (en) * | 2007-08-15 | 2009-02-19 | Lori Alquier | Data and application model for configurable tracking and reporting system |
AU2008229743A1 (en) * | 2007-10-03 | 2009-04-23 | Britesoft Solutions (M) Sdn Bhd | Cutomizable Application System |
US8181111B1 (en) | 2007-12-31 | 2012-05-15 | Synchronoss Technologies, Inc. | System and method for providing social context to digital activity |
US8370795B1 (en) * | 2008-01-31 | 2013-02-05 | Intuit Inc. | Method and system for explaining a value of a field in a form |
DE102009019319A1 (de) | 2009-04-30 | 2011-01-05 | Sascha Lehner | Verfahren zur Erzeugung mindestens einer Anwendungsbeschreibung |
US9524345B1 (en) | 2009-08-31 | 2016-12-20 | Richard VanderDrift | Enhancing content using linked context |
US9703550B1 (en) * | 2009-09-29 | 2017-07-11 | EMC IP Holding Company LLC | Techniques for building code entities |
US8255006B1 (en) | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
US9639707B1 (en) | 2010-01-14 | 2017-05-02 | Richard W. VanderDrift | Secure data storage and communication for network computing |
US8943428B2 (en) | 2010-11-01 | 2015-01-27 | Synchronoss Technologies, Inc. | System for and method of field mapping |
US20120137278A1 (en) | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Generating a customized set of tasks for migration of a deployed software solution |
US20120180033A1 (en) * | 2011-01-12 | 2012-07-12 | David Amos Brown | System and Methodology for Autonomous, Value-Centric, Architectural, Software Programming |
US9063673B2 (en) * | 2011-08-30 | 2015-06-23 | Uniquesoft, Llc | System and method for implementing application code from application requirements |
WO2013090433A1 (en) * | 2011-12-12 | 2013-06-20 | Black Point Technologies Llc | Systems and methods for trading using an embedded spreadsheet engine and user interface |
CA2827343A1 (en) * | 2012-09-17 | 2014-03-17 | Adam Rabie | System and method for presenting big data through a web-based browser enabled user interface |
US8887128B2 (en) * | 2012-12-17 | 2014-11-11 | Sas Institute Inc. | Computer-implemented systems and methods for automated generation of a customized software product |
US9959329B2 (en) * | 2013-07-03 | 2018-05-01 | Sap Se | Unified master report generator |
US9805070B2 (en) | 2013-07-09 | 2017-10-31 | Oracle International Corporation | Dynamic migration script management |
US9762461B2 (en) | 2013-07-09 | 2017-09-12 | Oracle International Corporation | Cloud services performance tuning and benchmarking |
US9442983B2 (en) | 2013-07-09 | 2016-09-13 | Oracle International Corporation | Method and system for reducing instability when upgrading software |
US11157664B2 (en) | 2013-07-09 | 2021-10-26 | Oracle International Corporation | Database modeling and analysis |
US9747311B2 (en) * | 2013-07-09 | 2017-08-29 | Oracle International Corporation | Solution to generate a scriptset for an automated database migration |
US10776244B2 (en) | 2013-07-09 | 2020-09-15 | Oracle International Corporation | Consolidation planning services for systems migration |
US9996562B2 (en) | 2013-07-09 | 2018-06-12 | Oracle International Corporation | Automated database migration architecture |
US9792321B2 (en) | 2013-07-09 | 2017-10-17 | Oracle International Corporation | Online database migration |
US9967154B2 (en) | 2013-07-09 | 2018-05-08 | Oracle International Corporation | Advanced customer support services—advanced support cloud portal |
US9535935B2 (en) * | 2013-12-09 | 2017-01-03 | Sap Se | Schema-based application model validation in a database |
CN104699717B (zh) * | 2013-12-10 | 2019-01-18 | 中国银联股份有限公司 | 数据挖掘方法 |
US9535664B1 (en) * | 2014-04-23 | 2017-01-03 | William Knight Foster | Computerized software development process and management environment |
US11294665B1 (en) | 2014-04-23 | 2022-04-05 | William Knight Foster | Computerized software version control with a software database and a human database |
US9729583B1 (en) | 2016-06-10 | 2017-08-08 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
CN104866398B (zh) * | 2015-06-17 | 2018-08-07 | 株洲南车时代电气股份有限公司 | 一种基于lkj分时运行多种车载应用软件的方法和系统 |
US10275502B2 (en) * | 2015-12-22 | 2019-04-30 | Opera Solutions Usa, Llc | System and method for interactive reporting in computerized data modeling and analysis |
US10706447B2 (en) | 2016-04-01 | 2020-07-07 | OneTrust, LLC | Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments |
US20220164840A1 (en) | 2016-04-01 | 2022-05-26 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US11004125B2 (en) | 2016-04-01 | 2021-05-11 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US11244367B2 (en) | 2016-04-01 | 2022-02-08 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US11036696B2 (en) | 2016-06-07 | 2021-06-15 | Oracle International Corporation | Resource allocation for database provisioning |
US10769301B2 (en) | 2016-06-10 | 2020-09-08 | OneTrust, LLC | Data processing systems for webform crawling to map processing activities and related methods |
US10282700B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US11328092B2 (en) | 2016-06-10 | 2022-05-10 | OneTrust, LLC | Data processing systems for processing and managing data subject access in a distributed environment |
US10997318B2 (en) | 2016-06-10 | 2021-05-04 | OneTrust, LLC | Data processing systems for generating and populating a data inventory for processing data access requests |
US11636171B2 (en) | 2016-06-10 | 2023-04-25 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US11562097B2 (en) | 2016-06-10 | 2023-01-24 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
US10878127B2 (en) | 2016-06-10 | 2020-12-29 | OneTrust, LLC | Data subject access request processing systems and related methods |
US10796260B2 (en) | 2016-06-10 | 2020-10-06 | OneTrust, LLC | Privacy management systems and methods |
US10909265B2 (en) | 2016-06-10 | 2021-02-02 | OneTrust, LLC | Application privacy scanning systems and related methods |
US11200341B2 (en) | 2016-06-10 | 2021-12-14 | OneTrust, LLC | Consent receipt management systems and related methods |
US10783256B2 (en) | 2016-06-10 | 2020-09-22 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
US10909488B2 (en) | 2016-06-10 | 2021-02-02 | OneTrust, LLC | Data processing systems for assessing readiness for responding to privacy-related incidents |
US10708305B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Automated data processing systems and methods for automatically processing requests for privacy-related information |
US11354435B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
US11651104B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Consent receipt management systems and related methods |
US11651106B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11151233B2 (en) | 2016-06-10 | 2021-10-19 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10776517B2 (en) | 2016-06-10 | 2020-09-15 | OneTrust, LLC | Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods |
US10706379B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data processing systems for automatic preparation for remediation and related methods |
US10848523B2 (en) | 2016-06-10 | 2020-11-24 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11336697B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10997315B2 (en) | 2016-06-10 | 2021-05-04 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11727141B2 (en) | 2016-06-10 | 2023-08-15 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
US10496803B2 (en) | 2016-06-10 | 2019-12-03 | OneTrust, LLC | Data processing systems and methods for efficiently assessing the risk of privacy campaigns |
US11675929B2 (en) | 2016-06-10 | 2023-06-13 | OneTrust, LLC | Data processing consent sharing systems and related methods |
US11138242B2 (en) | 2016-06-10 | 2021-10-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
US10592648B2 (en) | 2016-06-10 | 2020-03-17 | OneTrust, LLC | Consent receipt management systems and related methods |
US10740487B2 (en) | 2016-06-10 | 2020-08-11 | OneTrust, LLC | Data processing systems and methods for populating and maintaining a centralized database of personal data |
US11057356B2 (en) | 2016-06-10 | 2021-07-06 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
US11228620B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11341447B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Privacy management systems and methods |
US10713387B2 (en) | 2016-06-10 | 2020-07-14 | OneTrust, LLC | Consent conversion optimization systems and related methods |
US11144622B2 (en) | 2016-06-10 | 2021-10-12 | OneTrust, LLC | Privacy management systems and methods |
US11134086B2 (en) | 2016-06-10 | 2021-09-28 | OneTrust, LLC | Consent conversion optimization systems and related methods |
US11403377B2 (en) | 2016-06-10 | 2022-08-02 | OneTrust, LLC | Privacy management systems and methods |
US11520928B2 (en) | 2016-06-10 | 2022-12-06 | OneTrust, LLC | Data processing systems for generating personal data receipts and related methods |
US10944725B2 (en) | 2016-06-10 | 2021-03-09 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
US11438386B2 (en) | 2016-06-10 | 2022-09-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10685140B2 (en) | 2016-06-10 | 2020-06-16 | OneTrust, LLC | Consent receipt management systems and related methods |
US11025675B2 (en) | 2016-06-10 | 2021-06-01 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
US10565397B1 (en) | 2016-06-10 | 2020-02-18 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US10839102B2 (en) | 2016-06-10 | 2020-11-17 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
US11416798B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
US10353673B2 (en) | 2016-06-10 | 2019-07-16 | OneTrust, LLC | Data processing systems for integration of consumer feedback with data subject access requests and related methods |
US10726158B2 (en) | 2016-06-10 | 2020-07-28 | OneTrust, LLC | Consent receipt management and automated process blocking systems and related methods |
US10565236B1 (en) | 2016-06-10 | 2020-02-18 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US10585968B2 (en) | 2016-06-10 | 2020-03-10 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11392720B2 (en) | 2016-06-10 | 2022-07-19 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
US10706131B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data processing systems and methods for efficiently assessing the risk of privacy campaigns |
US11100444B2 (en) | 2016-06-10 | 2021-08-24 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
US11481710B2 (en) | 2016-06-10 | 2022-10-25 | OneTrust, LLC | Privacy management systems and methods |
US11138299B2 (en) | 2016-06-10 | 2021-10-05 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10949170B2 (en) | 2016-06-10 | 2021-03-16 | OneTrust, LLC | Data processing systems for integration of consumer feedback with data subject access requests and related methods |
US10776518B2 (en) | 2016-06-10 | 2020-09-15 | OneTrust, LLC | Consent receipt management systems and related methods |
US11087260B2 (en) | 2016-06-10 | 2021-08-10 | OneTrust, LLC | Data processing systems and methods for customizing privacy training |
US11544667B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US10853501B2 (en) | 2016-06-10 | 2020-12-01 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10642870B2 (en) | 2016-06-10 | 2020-05-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
US10169609B1 (en) | 2016-06-10 | 2019-01-01 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US10467432B2 (en) | 2016-06-10 | 2019-11-05 | OneTrust, LLC | Data processing systems for use in automatically generating, populating, and submitting data subject access requests |
US10242228B2 (en) | 2016-06-10 | 2019-03-26 | OneTrust, LLC | Data processing systems for measuring privacy maturity within an organization |
US11222309B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US10678945B2 (en) | 2016-06-10 | 2020-06-09 | OneTrust, LLC | Consent receipt management systems and related methods |
US11294939B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
US10496846B1 (en) | 2016-06-10 | 2019-12-03 | OneTrust, LLC | Data processing and communications systems and methods for the efficient implementation of privacy by design |
US10565161B2 (en) | 2016-06-10 | 2020-02-18 | OneTrust, LLC | Data processing systems for processing data subject access requests |
US10509920B2 (en) * | 2016-06-10 | 2019-12-17 | OneTrust, LLC | Data processing systems for processing data subject access requests |
US10318761B2 (en) | 2016-06-10 | 2019-06-11 | OneTrust, LLC | Data processing systems and methods for auditing data request compliance |
US10706176B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data-processing consent refresh, re-prompt, and recapture systems and related methods |
US10706174B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data processing systems for prioritizing data subject access requests for fulfillment and related methods |
US11074367B2 (en) | 2016-06-10 | 2021-07-27 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
US10803200B2 (en) | 2016-06-10 | 2020-10-13 | OneTrust, LLC | Data processing systems for processing and managing data subject access in a distributed environment |
US11625502B2 (en) | 2016-06-10 | 2023-04-11 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
US10776514B2 (en) | 2016-06-10 | 2020-09-15 | OneTrust, LLC | Data processing systems for the identification and deletion of personal data in computer systems |
US10454973B2 (en) | 2016-06-10 | 2019-10-22 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11146566B2 (en) | 2016-06-10 | 2021-10-12 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US10873606B2 (en) | 2016-06-10 | 2020-12-22 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11188615B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Data processing consent capture systems and related methods |
US10509894B2 (en) | 2016-06-10 | 2019-12-17 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11295316B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
US11277448B2 (en) | 2016-06-10 | 2022-03-15 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10885485B2 (en) | 2016-06-10 | 2021-01-05 | OneTrust, LLC | Privacy management systems and methods |
US10798133B2 (en) | 2016-06-10 | 2020-10-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10949565B2 (en) | 2016-06-10 | 2021-03-16 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US11023842B2 (en) | 2016-06-10 | 2021-06-01 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
US10846433B2 (en) | 2016-06-10 | 2020-11-24 | OneTrust, LLC | Data processing consent management systems and related methods |
US11227247B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
US11222139B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems and methods for automatic discovery and assessment of mobile software development kits |
US11416590B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11343284B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
US10592692B2 (en) | 2016-06-10 | 2020-03-17 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
US11038925B2 (en) | 2016-06-10 | 2021-06-15 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11586700B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
US10607028B2 (en) | 2016-06-10 | 2020-03-31 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
US11418492B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
US10586075B2 (en) | 2016-06-10 | 2020-03-10 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
US10606916B2 (en) | 2016-06-10 | 2020-03-31 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US10896394B2 (en) | 2016-06-10 | 2021-01-19 | OneTrust, LLC | Privacy management systems and methods |
US11301796B2 (en) | 2016-06-10 | 2022-04-12 | OneTrust, LLC | Data processing systems and methods for customizing privacy training |
US10503926B2 (en) | 2016-06-10 | 2019-12-10 | OneTrust, LLC | Consent receipt management systems and related methods |
US11210420B2 (en) | 2016-06-10 | 2021-12-28 | OneTrust, LLC | Data subject access request processing systems and related methods |
US11222142B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
US11157600B2 (en) | 2016-06-10 | 2021-10-26 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11354434B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
US11366786B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing systems for processing data subject access requests |
US10282559B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
US10284604B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
US11238390B2 (en) | 2016-06-10 | 2022-02-01 | OneTrust, LLC | Privacy management systems and methods |
US11475136B2 (en) | 2016-06-10 | 2022-10-18 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
US10762236B2 (en) | 2016-06-10 | 2020-09-01 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US10572686B2 (en) | 2016-06-10 | 2020-02-25 | OneTrust, LLC | Consent receipt management systems and related methods |
US11416589B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11188862B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Privacy management systems and methods |
US10416966B2 (en) | 2016-06-10 | 2019-09-17 | OneTrust, LLC | Data processing systems for identity validation of data subject access requests and related methods |
US10510031B2 (en) | 2016-06-10 | 2019-12-17 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
US10614247B2 (en) | 2016-06-10 | 2020-04-07 | OneTrust, LLC | Data processing systems for automated classification of personal information from documents and related methods |
US11461500B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
US11366909B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11416109B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
US10649741B2 (en) * | 2016-10-17 | 2020-05-12 | Engineer.Ai Global Limited | Systems and methods for creating software from library and custom components |
US11720330B2 (en) | 2016-10-17 | 2023-08-08 | Engineer.ai Corp. | Application development involving instant protoyping |
US10013577B1 (en) | 2017-06-16 | 2018-07-03 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
GB2574905A (en) * | 2018-06-18 | 2019-12-25 | Arm Ip Ltd | Pipeline template configuration in a data processing system |
US11144675B2 (en) | 2018-09-07 | 2021-10-12 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
US11544409B2 (en) | 2018-09-07 | 2023-01-03 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
US10803202B2 (en) | 2018-09-07 | 2020-10-13 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
US11681504B1 (en) | 2019-04-26 | 2023-06-20 | Opturo, Inc. | Automated application builder using configuration files |
US11256671B2 (en) | 2019-09-13 | 2022-02-22 | Oracle International Corporation | Integrated transition control center |
WO2022011142A1 (en) | 2020-07-08 | 2022-01-13 | OneTrust, LLC | Systems and methods for targeted data discovery |
EP4189569A1 (de) | 2020-07-28 | 2023-06-07 | OneTrust LLC | Systeme und verfahren zur automatischen blockierung der verwendung von verfolgungswerkzeugen |
US11475165B2 (en) | 2020-08-06 | 2022-10-18 | OneTrust, LLC | Data processing systems and methods for automatically redacting unstructured data from a data subject access request |
US11436373B2 (en) | 2020-09-15 | 2022-09-06 | OneTrust, LLC | Data processing systems and methods for detecting tools for the automatic blocking of consent requests |
US11526624B2 (en) | 2020-09-21 | 2022-12-13 | OneTrust, LLC | Data processing systems and methods for automatically detecting target data transfers and target data processing |
EP4241173A1 (de) | 2020-11-06 | 2023-09-13 | OneTrust LLC | Systeme und verfahren zur identifizierung von datenverarbeitungsaktivitäten auf der basis von datenentdeckungsergebnissen |
US11687528B2 (en) | 2021-01-25 | 2023-06-27 | OneTrust, LLC | Systems and methods for discovery, classification, and indexing of data in a native computing system |
US11442906B2 (en) | 2021-02-04 | 2022-09-13 | OneTrust, LLC | Managing custom attributes for domain objects defined within microservices |
WO2022170254A1 (en) | 2021-02-08 | 2022-08-11 | OneTrust, LLC | Data processing systems and methods for anonymizing data samples in classification analysis |
US11601464B2 (en) | 2021-02-10 | 2023-03-07 | OneTrust, LLC | Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system |
US11775348B2 (en) | 2021-02-17 | 2023-10-03 | OneTrust, LLC | Managing custom workflows for domain objects defined within microservices |
US11546661B2 (en) | 2021-02-18 | 2023-01-03 | OneTrust, LLC | Selective redaction of media content |
WO2022192269A1 (en) | 2021-03-08 | 2022-09-15 | OneTrust, LLC | Data transfer discovery and analysis systems and related methods |
US11562078B2 (en) | 2021-04-16 | 2023-01-24 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
US11620142B1 (en) | 2022-06-03 | 2023-04-04 | OneTrust, LLC | Generating and customizing user interfaces for demonstrating functions of interactive user environments |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4528644A (en) * | 1983-07-18 | 1985-07-09 | Pitney Bowes Inc. | Customizing the firmware after assembly of an electronic postage meter |
US4827404A (en) * | 1986-04-14 | 1989-05-02 | Schlumberger Technology Corporation | Method and system for computer programming |
US4831526A (en) * | 1986-04-22 | 1989-05-16 | The Chubb Corporation | Computerized insurance premium quote request and policy issuance system |
JPS63181033A (ja) * | 1987-01-23 | 1988-07-26 | Hitachi Ltd | プログラム自動生成方式 |
JP2592955B2 (ja) * | 1989-04-04 | 1997-03-19 | 株式会社東芝 | プログラム自動生成装置 |
DE69031028T2 (de) * | 1990-02-26 | 1997-11-20 | Oracle Corp | System zum physikalischen Entwurf von Datenbanken |
US5586314A (en) * | 1990-05-02 | 1996-12-17 | Electronic Data Systems Corporation | Graphic information modeling and icon-based intermediate text language generation |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
JPH06502941A (ja) * | 1990-07-20 | 1994-03-31 | テンプル ユニヴァーシティ―オブ ザ コモンウエルス システム オブ ハイヤー エデュケーション | 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム |
US5423041A (en) * | 1990-09-28 | 1995-06-06 | Texas Instruments Incorporated | Coupling rules to an object-oriented program |
US5566330A (en) * | 1991-08-20 | 1996-10-15 | Powersoft Corporation | Method for forming a reusable and modifiable database interface object |
JPH05233239A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | プログラム自動生成装置 |
US5485601A (en) * | 1992-05-14 | 1996-01-16 | Ching; Hugh | Completely automated and self-generating software system |
US5830065A (en) * | 1992-05-22 | 1998-11-03 | Sitrick; David H. | User image integration into audiovisual presentation system and methodology |
US5353401A (en) * | 1992-11-06 | 1994-10-04 | Ricoh Company, Ltd. | Automatic interface layout generator for database systems |
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
US5819090A (en) * | 1994-03-04 | 1998-10-06 | Ast Research, Inc. | Application control module for common user access interface |
US5615379A (en) * | 1994-08-26 | 1997-03-25 | Sprint International Communications Corp. | Method for editing data stored in files in which the file formats are unknown |
US5819251A (en) * | 1996-02-06 | 1998-10-06 | Oracle Corporation | System and apparatus for storage retrieval and analysis of relational and non-relational data |
-
1997
- 1997-09-17 US US08/932,255 patent/US6016394A/en not_active Expired - Lifetime
-
1998
- 1998-09-15 AU AU93885/98A patent/AU733773B2/en not_active Ceased
- 1998-09-15 CA CA002304020A patent/CA2304020C/en not_active Expired - Lifetime
- 1998-09-15 EP EP98946993A patent/EP1015969B1/de not_active Expired - Lifetime
- 1998-09-15 DE DE69838139T patent/DE69838139T2/de not_active Expired - Lifetime
- 1998-09-15 WO PCT/US1998/019108 patent/WO1999014651A2/en active IP Right Grant
- 1998-09-15 AT AT98946993T patent/ATE368252T1/de not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015185328A1 (de) | 2014-06-06 | 2015-12-10 | Rode Oliver | Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens |
DE102014210854A1 (de) | 2014-06-06 | 2015-12-17 | Oliver Rode | Computerimplementiertes Verfahren und Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme sowie Rechneranlage und ein Computerprogramm mit Programmcode zur Durchführung des Verfahrens |
DE202014006343U1 (de) | 2014-08-07 | 2014-08-21 | Db Systel Gmbh | Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme |
Also Published As
Publication number | Publication date |
---|---|
DE69838139D1 (de) | 2007-09-06 |
WO1999014651A2 (en) | 1999-03-25 |
EP1015969A4 (de) | 2002-03-13 |
CA2304020C (en) | 2005-07-12 |
EP1015969A2 (de) | 2000-07-05 |
WO1999014651B1 (en) | 1999-10-07 |
US6016394A (en) | 2000-01-18 |
WO1999014651A3 (en) | 1999-05-06 |
AU9388598A (en) | 1999-04-05 |
EP1015969B1 (de) | 2007-07-25 |
AU733773B2 (en) | 2001-05-24 |
ATE368252T1 (de) | 2007-08-15 |
CA2304020A1 (en) | 1999-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69838139T2 (de) | Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen | |
CN113094037B (zh) | 表单和工作流的交互方法、开发平台、设备及存储介质 | |
DE60311805T2 (de) | Erfassung, Zusammenstellung und/oder Visualisierung von strukturellen Merkmalen von Architekturen | |
US7895563B2 (en) | Managing reusable software assets | |
DE10121790B4 (de) | Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem | |
CN1918589B (zh) | 通过虚拟文档架构来促进协同编辑和承担责任的自动出版系统 | |
US7577934B2 (en) | Framework for modeling and providing runtime behavior for business software applications | |
US7590972B2 (en) | Role-oriented development environment | |
US7730446B2 (en) | Software business process model | |
DE112018002872T5 (de) | Integriertes system zur regelbearbeitung, simulation, versionssteuerung und geschäftsprozessverwaltung | |
US6957206B2 (en) | Computer system and method with adaptive N-level structures for automated generation of program solutions based on rules input by subject matter experts | |
US6959429B1 (en) | System for developing data collection software applications | |
JP7373563B2 (ja) | ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法 | |
DE102004043788A1 (de) | Programm Generator | |
Sharon et al. | Tools that bind: creating integrated environments | |
Lumertz et al. | User interfaces metamodel based on graphs | |
EP1490762B1 (de) | Verfahren, software-produkt und system zur universellen computergestuetzten informationsverarbeitung | |
US20120209887A1 (en) | System, Process and Article of Manufacture for Automatic Generation of Subsets of Existing Databases | |
US20230359814A1 (en) | System and method for creation and handling of configurable applications for website building systems | |
Fox et al. | Activity planning for the Phoenix Mars lander mission | |
Lee | Adaptable Software Reuse: Binding Time Aware Modelling Language to Support Variations | |
Lukas | Visualizing Feature Coupling Evolution by Utilizing Source Code Co-Change and Issue Tracking Data | |
Godbole | Integration of knowledge-based expert system and relational database to grade buildings for wind resistance: design and implementation | |
Nelson | A requirements specification of modifications to the Functional Description of the Mission Space Resource Center | |
Malley et al. | DATA WAREHOUSE: EMPHASIS IN DECISION SUPPORT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |