DE102013108309A1 - Verfahren zum Konnektieren von Objekten in einer Softwareanwendung - Google Patents

Verfahren zum Konnektieren von Objekten in einer Softwareanwendung Download PDF

Info

Publication number
DE102013108309A1
DE102013108309A1 DE102013108309.9A DE102013108309A DE102013108309A1 DE 102013108309 A1 DE102013108309 A1 DE 102013108309A1 DE 102013108309 A DE102013108309 A DE 102013108309A DE 102013108309 A1 DE102013108309 A1 DE 102013108309A1
Authority
DE
Germany
Prior art keywords
business object
software application
object class
kbo
concrete
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.)
Ceased
Application number
DE102013108309.9A
Other languages
English (en)
Inventor
Christian Kramer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OMS Software GmbH
Original Assignee
OMS Software GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by OMS Software GmbH filed Critical OMS Software GmbH
Priority to DE102013108309.9A priority Critical patent/DE102013108309A1/de
Priority to PCT/EP2014/066534 priority patent/WO2015014957A1/de
Priority to EP14748165.9A priority patent/EP3028144A1/de
Priority to CN201480043581.5A priority patent/CN105556465B/zh
Publication of DE102013108309A1 publication Critical patent/DE102013108309A1/de
Priority to US15/010,976 priority patent/US10048947B2/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

Bereit gestellt wird ein Computer-implementiertes Verfahren zum Konnektieren von Businessobjekten in einer Softwareanwendung (SA), wobei – die Softwareanwendung einen Konnektor (K) umfasst, wobei der Konnektor eine eine abstrakte Businessobjekt-Klasse (ABO1 bis ABOn) identifizierende Kennung umfasst, – die Softwareanwendung zur Laufzeit die in dem Konnektor angegebene abstrakte Businessobjekt-Klasse in einer Hierarchie von abstrakten Businessobjekt-Klassen ermittelt, und – die Softwareanwendung zur Laufzeit – ausgehend von der ermittelten abstrakten Businessobjekt-Klasse zumindest eine davon direkt oder indirekt abgeleitete konkrete Businessobjekt-Klasse (KBO1 bis KBOn) ermittelt, und – zu mindestens einer Instanz (I1 bis In) der zumindest einen ermittelten konkreten Businessobjekt-Klassen eine Verbindung (V) herstellt, über die die Softwareanwendung auf Attribute und Methoden der Instanz der konkreten Businessobjekt-Klasse zugreift. Ferner wird ein entsprechend angepasstes Computerprogrammprodukt bereit gestellt.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft ein Verfahren zum Konnektieren von Objekten, insbesondere Businessobjekten in einer Softwareanwendung, sowie ein entsprechend angepasstes Computerprogrammprodukt.
  • Stand der Technik und Hintergrund der Erfindung
  • Im Stand der Technik sind sogenannte monolithische Softwaresysteme bekannt, bei denen die funktionalen Elemente meist untrennbar in einer einzigen Softwareanwendung zusammengefasst sind. Die Verwaltung und Bearbeitung der zugehörigen Daten wird ebenfalls durch die Softwareanwendung vorgenommen. Ein Beispiel für eine solche monolithische Softwareanwendung ist eine Leistungserfassung, bei der Leistungen erfasst und einer bestimmten Person zugeordnet werden können. Bei einer solchen Leistungserfassung werden nicht nur die einer Person zugeordneten Leistungen erfasst und gespeichert, sondern auch die Stammdaten der Personen verwaltet. Demzufolge kann die Softwareanwendung zur Leistungserfassung nur auf die in der Leistungserfassung verwalteten Personen zugreifen.
  • Als Alternative zu den monolithischen Softwareanwendungen sind Softwareanwendungen bekannt, die auf einer sogenannten Client-Server-Architektur beruhen oder als im Allgemeinen verteilte Softwaresysteme ausgebildet sind. Hierbei kann beispielsweise die Leistungserfassung durch zwei Softwarekomponenten realisiert werden, wobei in einer ersten Komponente Leistungen erfasst und einer Person zugeordnet werden und wobei in einer zweiten Komponente die Personen erfasst und verwaltet werden. Die Komponente zur Erfassung der Leistungen kann über eine Schnittstelle auf die Komponente zur Verwaltung der Personen zugreifen. Dadurch wird eine verbesserte Wartbarkeit der Softwarekomponenten erreicht.
  • Diese Vorgehensweise hat allerdings den Nachteil, dass bereits zum Entwicklungszeitpunkt der Komponente zur Leistungserfassung bekannt sein muss, auf welche konkrete Komponente zur Verwaltung der Personen zur Laufzeit zugegriffen wird bzw. zugegriffen werden soll. Ein Austausch der Komponente zur Verwaltung der Personen ist in der Regel mit einer Anpassung der Komponente zur Erfassung der Leistungen verbunden, weil beispielsweise in der Komponente zur Leistungserfassung die Schnittstellen zur Komponente der Personenverwaltung angepasst werden müssen, was zur Laufzeit nicht möglich ist und in dem Quellcode der Komponente zur Leistungserfassung vorgenommen werden muss.
  • Ein einfaches Austauschen der Komponente für die Personenverwaltung ohne Anpassung der Komponente zur Leistungserfassung ist daher nicht möglich, sodass die Komponente zur Leistungserfassung zur Laufzeit nur auf eine konkrete, in der Komponente zur Leistungserfassung definierte Komponente zur Personenverwaltung zugreifen kann.
  • Soll eine Komponente zur Leistungserfassung dennoch auf unterschiedliche Komponenten zur Personenverwaltung Zugriff haben, muss für jede Personenkomponente in der Komponente zur Leistungserfassung eine eigene dafür angepasste Schnittstelle implementiert werden. Neue verfügbare Komponenten zur Personenverwaltung können nur dann verwendet werden, wenn für diese neuen Komponenten ebenfalls ein entsprechendes Interface in der Komponente zur Leistungserfassung implementiert wird.
  • Aufgabe der Erfindung
  • Der Erfindung liegt daher die Aufgabe zugrunde, Lösungen bereitzustellen, welche die aus dem Stand der Technik bekannten Nachteile zumindest teilweise vermeiden und welche es ermöglichen, in einer Softwareanwendung auf eine Anzahl unterschiedlicher Softwarekomponenten, Businessobjekten bzw. weiterer Softwareanwendungen zugreifen zu können, ohne hierfür für jede einzelne Softwarekomponente, Businessobjekt bzw. weitere Softwareanwendung ein entsprechendes Interface bzw. Schnittstelle implementieren zu müssen, um die Flexibilität zu erhöhen und gleichzeitig den Wartungsaufwand zu reduzieren.
  • Erfindungsgemäße Lösung
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren zum Konnektieren von Objekten bzw. Businessobjekten in einer Softwareanwendung, sowie durch ein entsprechend angepasstes Computerprogrammprodukt nach den unabhängigen Ansprüchen gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind in den jeweiligen abhängigen Ansprüchen angegeben.
  • Bereitgestellt wird demnach ein Computer-implementiertes Verfahren zum Konnektieren von Businessobjekten in einer Softwareanwendung, wobei
    • – die Softwareanwendung einen Konnektor umfasst, wobei der Konnektor eine eine abstrakte Businessobjekt-Klasse identifizierende Kennung umfasst,
    • – die Softwareanwendung zur Laufzeit die in dem Konnektor angegebene abstrakte Businessobjekt-Klasse in einer Hierarchie von abstrakten Businessobjekt-Klassen ermittelt, und
    • – die Softwareanwendung zur Laufzeit
    • – ausgehend von der ermittelten abstrakten Businessobjekt-Klasse zumindest eine davon direkt oder indirekt abgeleitete konkrete Businessobjekt-Klasse ermittelt, und
    • – zu mindestens einer Instanz der zumindest einen ermittelten konkreten Businessobjekt-Klassen eine Verbindung herstellt, über die die Softwareanwendung auf Attribute und Methoden der Instanz der konkreten Businessobjekt-Klasse zugreift.
  • Eine abstrakte Businessobjekt-Klasse ist eine Klasse von der keine Instanzen erzeugt werden bzw. keine Instanzen erzeugt werden können. Eine konkrete Businessobjekt-Klasse ist eine Klasse von der Instanzen erzeugt werden bzw. Instanzen erzeugt werden können. Ein wesentlicher Vorteil des erfindungsgemäßen Verfahrens liegt darin, dass die Softwareanwendung auf die gesamte Hierarchie der abstrakten Businessobjekt-Klassen und der konkreten Businessobjekt-Klassen (weil die konkreten Businessobjekt-Klassen von den abstrakten Businessobjekt-Klassen direkt oder indirekt abgeleitet sind bilden die abstrakten Businessobjekt-Klassen und die konkreten Businessobjekt-Klassen zusammen ebenfalls eine Hierarchie) zugreifen kann und die Definitionen sowohl der abstrakten Businessobjekt-Klassen als auch der konkreten Businessobjekt-Klassen der Softwareanwendung bekannt sind. Daher kann die Softwareanwendung eine Verbindung zu Instanzen der konkreten Businessobjekt-Klassen herstellen bzw. auf Instanzen der konkreten Businessobjekt-Klassen zugreifen, weil der Zugriff über die in den abstrakten Businessobjekt-Klassen und/oder in den konkreten Businessobjekt-Klassen definierten und implementierten Methoden erfolgt. Ein Anpassen der Schnittstellen in der Softwareanwendung, um auf unterschiedliche Objekte zugreifen zu können, wird so vermieden.
  • In einer Ausgestaltung der Erfindung kann der Konnektor dem Quellcode der Softwareanwendung hinzugefügt werden.
  • Bei mehreren ermittelten konkreten Businessobjekt-Klassen kann die Softwareanwendung eine konkrete Businessobjekt-Klasse auswählen und zu mindestens einer Instanz der ausgewählten konkreten Businessobjekt-Klasse die Verbindung herstellen.
  • Die Auswahl der konkreten Businessobjekt-Klasse durch die Softwareanwendung kann in Reaktion auf eine Benutzereingabe erfolgen, bei der ein Benutzer der Softwareanwendung aus den mehreren ermittelten konkreten Businessobjekt-Klassen eine konkrete Businessobjekt-Klasse auswählt.
  • Vorteilhaft ist es, wenn die Softwareanwendung über die Verbindung eine eindeutige Kennung einer Instanz der konkreten Businessobjekt-Klasse entgegennimmt und speichert. Damit kann wird gewährleistet, dass die Softwareanwendung zu einem späteren Zeitpunkt wieder auf dieselbe Instanz zugreifen kann bzw. zur selben Instanz eine Verbindung herstellen kann.
  • Die Softwareanwendung kann zusätzlich zur eindeutigen Kennung der Instanz der konkreten Businessobjekt-Klasse eine eindeutige Kennung der konkreten Businessobjekt-Klasse entgegennehmen und/oder speichern.
  • Die eindeutige Kennung der konkreten Businessobjekt-Klasse kann beim Instanziieren der Instanz automatisch gesetzt werden, vorzugsweise durch einen Konstruktor der konkreten Businessobjekt-Klasse.
  • Vorteilhaft ist es, wenn die konkrete Businessobjekt-Klasse über einen Adapter mit zumindest einem externen Softwaresystem verbunden ist, in welchem Ausprägungen der konkreten Businessobjekt-Klasse gespeichert sind. Die Ausprägungen müssen nicht identisch zu den Instanzen der konkreten Businessobjekt-Klasse sein. Die Instanzen der konkreten Businessobjekt-Klasse können eine andere Datenstruktur aufweisen als die dazugehörigen Ausprägungen in dem externen Softwaresystem.
  • In einer Ausgestaltung der Erfindung ist jeder Instanz einer konkreten Businessobjekt-Klasse genau eine Ausprägung in dem in dem externen Softwaresystem zugeordnet.
  • Vorteilhaft ist es, wenn der Adapter Methodenaufrufe der konkreten Businessobjekt-Klasse entgegennimmt, diese in von dem externen Softwaresystem ausführbare Instruktionen umwandelt, und die ausführbaren Instruktionen an das externe Softwaresystem übergibt.
  • Weiter ist es vorteilhaft, wenn der Adapter von dem externen Softwaresystem Daten entgegennimmt und diese an eine oder mehrere Instanzen der konkreten Businessobjekt-Klasse übergibt. Damit kann eine Ausprägung in dem externen Softwaresystem in eine Instanz der jeweiligen konkreten Businessobjekt-Klasse überführt werden. Hierfür kann der Adapter entsprechende Abbildungsvorschriften und/oder Transformationsregeln vorsehen. Entsprechende Abbildungsvorschriften und/oder Transformationsregeln können auch vorgesehen bzw. verwendet werden, wenn eine Instanz einer konkreten Businessobjekt-Klasse in einer entsprechenden Ausprägung in dem externen Softwaresystem gespeichert werden soll.
  • Die Hierarchie der abstrakten und konkreten Businessobjekt-Klassen können in einer Konfigurationsdatei gespeichert sein, auf die die Softwareanwendung zur Laufzeit Zugriff hat.
  • Die Softwareanwendung kann über Methoden der ermittelten abstrakten Businessobjekt-Klasse oder davon abgeleiteter abstrakter Businessobjekt-Klassen auf die Instanz bzw. Instanzen der konkreten Businessobjekt-Klasse zugreifen.
  • Die Softwareanwendung kann zur Laufzeit eine Instanz einer konkreten Businessobjekt-Klasse umfassen. Die Instanz der konkreten Businessobjekt-Klasse kann Bestandteil einer weiteren Softwareanwendung sein.
  • Die Softwareanwendung und die Instanz der konkreten Businessobjekt-Klasse und/oder die Softwareanwendung und die weitere Softwareanwendung werden zur Laufzeit vorzugsweise in einer gemeinsamen Laufzeitumgebung ausgeführt.
  • Bereitgestellt wird ferner ein Computerprogrammprodukt, das in den Speicher einer Datenverarbeitungseinrichtung geladen werden kann und auf dieser zur Ausführung gebracht werden kann, und das Programmabschnitte umfasst, die angepasst sind, ein erfindungsgemäßes Verfahren zur Ausführung zu bringen.
  • Kurzbeschreibung der Figuren
  • Weitere Einzelheiten und Merkmale der Erfindung sowie konkrete, insbesondere vorteilhafte Ausführungsbeispiele der Erfindung ergeben sich aus der nachfolgenden Beschreibung in Verbindung mit der Zeichnung. Es zeigt:
  • 1 eine erfindungsgemäße Softwarearchitektur zur Verdeutlichung des erfindungsgemäßen Verfahrens zum Konnektieren von Objekten bzw. Businessobjekten; und
  • 2 ein konkretes Beispiel anhand dessen das erfindungsgemäße Verfahren beschrieben wird.
  • Detaillierte Beschreibung der Erfindung
  • 1 zeigt eine Softwarearchitektur, welche für ein Verfahren zum Konnektieren von Objekten bzw. Businessobjekten in einer Softwareanwendung angepasst ist.
  • Eine Softwareanwendung SA soll zur Laufzeit auf ein bestimmtes Businessobjekt, welches außerhalb der Softwareanwendung SA implementiert ist, Zugriff haben. Die Softwareanwendung SA wird auch als sogenannte Mikro-APP bezeichnet. Das Businessobjekt, auf welches die Softwareanwendung SA zur Laufzeit Zugriff haben soll, kann ebenfalls von einer Softwareanwendung bzw. Mikro-APP zur Verfügung gestellt werden bzw. in einer Softwareanwendung implementiert sein. Das Businessobjekt, auf welches die Softwareanwendung SA zur Laufzeit zugreifen soll, gehört zu einer bestimmten Klasse von Businessobjekten, beispielsweise Personen oder Dokumente.
  • Erfindungsgemäß muss nicht bereits zum Entwicklungszeitpunkt der Softwareanwendung SA feststehen, auf welches konkrete Businessobjekt die Softwareanwendung zur Laufzeit Zugriff haben muss. Vielmehr ist es erfindungsgemäß ausreichend, wenn zum Entwicklungszeitpunkt feststeht, auf welche Klasse von Businessobjekten die Softwareanwendung zur Laufzeit Zugriff haben soll. Dadurch wird vermieden, dass für verschiedene Businessobjekte in der Softwareanwendung SA jeweils entsprechende Schnittstellen implementiert werden müssen. Das konkrete Businessobjekt wird dann zur Laufzeit der Softwareanwendung, vorzugsweise von der Softwareanwendung, ermittelt bzw. ausgewählt.
  • Um dies zu bewerkstelligen, ist erfindungsgemäß eine Hierarchie von Businessobjekten bzw. eine Anordnung von Businessobjekten in einer hierarchischen Baumstruktur vorgesehen.
  • Die Baumstruktur umfasst eine abstrakte Basis-Businessobjekt-Klasse Base, von der eine oder mehrere abstrakte Businessobjekt-Klassen abgeleitet sind. Von diesen abgeleiteten abstrakten Businessobjekt-Klassen ABO1 bis ABOn können jeweils wiederum eine Anzahl von abstrakten Businessobjekt-Klassen ABO11 bis ABOn1 abgeleitet sein. Abgeleitet bedeutet, dass eine abgeleitete abstrakte Businessobjekt-Klasse Attribute und Methoden der Vaterklasse erbt. Die Tiefe der Baumstruktur, in der die abstrakten Businessobjekt-Klassen organisiert sind, kann beliebig sein.
  • Von den abstrakten Businessobjekt-Klassen ABO können jeweils eine Anzahl von konkreten Businessobjekt-Klassen KBO abgeleitet werden. Von jeder konkreten Businessobjekt-Klasse KBO können wiederum eine Anzahl von konkreten Businessobjekt-Klassen KBO abgeleitet werden, wobei eine konkrete Businessklasse die Methoden und Attribute der übergeordneten abstrakten Businessobjekt-Klasse bzw. der übergeordneten konkreten Businessobjekt-Klasse erbt.
  • Jeder konkreten Businessobjekt-Klasse KBO können eine oder mehrere Instanzen zugeordnet sein. Beispielsweise kann der konkreten Businessobjekt-Klasse KBO1 eine Instanz I1 zugeordnet sein, wobei die konkrete Businessobjekt-Klasse KBO1 von der abstrakten Businessobjekt-Klasse ABO11 abgeleitet ist, die wiederum von der abstrakten Businessobjekt-Klasse ABO1 abgeleitet ist. Mit Hilfe der hierarchischen Anordnung der abstrakten Businessobjekt-Klassen in einer Baumstruktur werden die darunterliegenden konkreten Businessobjekt-Klassen strukturiert, wobei die abstrakten Businessobjekt-Klassen ABO Methoden implementieren können, die von der direkt bzw. indirekt abgeleiteten konkreten Businessobjekt-Klasse KBO verwendet werden oder überschrieben werden können.
  • Bei dem in 1 gezeigten Beispiel soll die Softwareanwendung SA zur Laufzeit Zugriff auf eine bestimmte Klasse von Businessobjekten haben, wobei im Entwicklungszeitpunkt die konkrete Businessobjektklasse nicht bekannt sein muss.
  • Hierzu ist es vorgesehen, in der Softwareanwendung SA einen Konnektor K vorzusehen, der eine abstrakte Businessobjekt-Klasse identifizierende Kennung umfasst. In dem in 1 gezeigten Beispiel identifiziert die Kennung des Konnektors K die abstrakte Businessobjekt-Klasse ABO1.
  • Zur Laufzeit ermittelt die Softwareanwendung SA die in dem Konnektor K angegebene abstrakte Businessobjekt-Klasse ABO1 in der die abstrakten Businessobjekt-Klassen umfassenden Baumstruktur. Ausgehend von der ermittelten abstrakten Businessobjekt-Klasse ABO1 ermittelt die Softwareanwendung SA zur Laufzeit zumindest eine davon direkt oder indirekt abgeleitete konkrete Businessobjekt-Klasse. In dem Beispiel gemäß 1 ermittelt die Softwareanwendung SA zur Laufzeit die konkreten Businessobjekt-Klassen KBO1, KBO2, KBO3 und KBO21, weil diese vier konkreten Businessobjekt-Klassen direkt oder indirekt von der abstrakten Businessobjekt-Klasse KBO1 abgeleitet sind.
  • Nachdem die konkreten Businessobjekt-Klassen ermittelt worden sind, kann die Softwareanwendung SA eine Verbindung zu zumindest einer konkreten Businessobjekt-Klasse bzw. zu zumindest einer Instanz der ermittelten konkreten Businessobjekt-Klassen herstellen.
  • Wurden mehrere konkrete Businessobjekt-Klassen ermittelt, die direkt oder indirekt von der abstrakten Businessobjekt-Klasse abgeleitet sind, kann die Softwareanwendung SA aus den ermittelten konkreten Businessobjekt-Klassen eine konkrete Businessobjekt-Klasse auswählen. In dem in 1 gezeigten Beispiel hat die Softwareanwendung SA die konkrete Businessobjekt-Klasse KBO1 ausgewählt, sodass die Softwareanwendung SA zur Laufzeit eine Verbindung V zu einer Instanz I1 der konkrete Businessobjekt-Klasse KBO1 herstellen kann. Die Auswahl einer konkreten Businessobjekt-Klasse aus mehreren konkreten Businessobjekt-Klassen kann die Softwareanwendung SA gemäß vorbestimmter Auswahlkriterien selbst vornehmen.
  • In einer Ausgestaltung der Erfindung kann die Auswahl einer konkreten Businessobjekt-Klasse in Reaktion auf eine Benutzereingabe erfolgen, bei der ein Benutzer der Softwareanwendung SA zur Laufzeit aus den mehreren ermittelten konkreten Businessobjekt-Klassen eine konkrete Businessobjekt-Klasse auswählt. Hierfür kann die Softwareanwendung SA dem Benutzer eine Auswahlliste mit den ermittelten konkreten Businessobjekt-Klassen zur Auswahl einer bestimmten konkreten Businessobjekt-Klasse zur Verfügung stellen.
  • Erfindungsgemäß kann die Softwareanwendung SA nicht nur eine Verbindung V zu Instanzen einer einzigen ausgewählten konkreten Businessobjekt-Klasse herstellen, sondern auch Verbindungen zu Instanzen unterschiedlicher konkreter Businessobjekt-Klassen. In diesem Fall muss keine Auswahl einer speziellen konkreten Businessobjekt-Klasse durch die Softwareanwendung SA bzw. durch einen Benutzer erfolgen. Damit wird es beispielsweise möglich, dass die Softwareanwendung SA eine Liste von Instanzen unterschiedlicher konkreter Businessobjekt-Klassen dem Benutzer zur Auswahl einer Instanz bereitstellt, ohne dass hierfür für jede unterschiedliche konkrete Businessobjekt-Klasse eine eigene Schnittstelle in der Softwareanwendung implementiert werden muss.
  • In dem in 1 gezeigten Beispiel kann beispielsweise die abstrakte Businessobjekt-Klasse ABO11 eine Methode implementieren, mit der die Instanzen der von der abstrakten Businessobjekt-Klasse ABO11 direkt oder indirekt abgeleiteten konkreten Businessobjekt-Klassen KBO1, KBO2 und KBO21 ermittelt und in der Softwareanwendung SA zur Anzeige gebracht werden. Eine solche Methode kann aber auch von den konkreten Businessobjekt-Klassen implementiert bzw. überschrieben werden, sodass beispielsweise die konkrete Businessobjekt-Klasse KBO1 eine Liste aller Instanzen der konkreten Businessobjekt-Klasse KBO1 ermittelt und beispielsweise die konkrete Businessobjekt-Klasse KBO2 eine Liste aller Instanzen der konkreten Businessobjekt-Klasse KBO2 und der konkreten Businessobjekt-Klasse KBO21 ermittelt.
  • Auf diese Weise muss in der Softwareanwendung SA nur mehr ein Konnektor K definiert werden, der auf eine abstrakte Businessobjekt-Klasse referenziert, um eine Verbindung zu Instanzen der von dieser abstrakten Businessobjekt-Klasse abgeleiteten konkreten Businessobjekt-Klassen herstellen zu können bzw. auf diese Instanzen zugreifen zu können.
  • Weil in der Ableitungshierarchie der abstrakten Businessobjekt-Klassen bzw. konkreten Businessobjekt-Klassen die entsprechenden Methoden zum Zugriff auf die jeweiligen Instanzen implementiert sind, müssen für den Zugriff auf Instanzen unterschiedlicher Klassen keine speziellen Schnittstellen bzw. Interfaces in der Softwareanwendung SA implementiert werden. Zudem kann die Softwareanwendung bzw. ein Benutzer der Softwareanwendung zur Laufzeit entscheiden, auf welche Instanzen welcher konkrete Businessobjekt-Klasse bzw. konkreten Businessobjekt-Klassen die Softwareanwendung zugreifen soll bzw. Zugriff haben soll.
  • Je weiter unten sich die abstrakte Businessobjekt-Klasse in der Hierarchie der Baumstruktur befindet, umso spezieller wird der Zugriff auf die entsprechenden Instanzen. D.h., wenn der Konnektor K eine Referenz zur abstrakten Businessobjekt-Klasse ABO11 aufweist, kann die Softwareanwendung auf Instanzen der konkreten Businessobjekt-Klassen KBO1, KBO2 und KBO21 zugreifen, während bei einer Referenz auf die abstrakte Businessobjekt-Klasse ABO1 zusätzlich auf die Instanzen der konkreten Businessobjekt-Klasse KBO3 zugegriffen werden kann.
  • Ferner können nachträglich zusätzliche konkrete Businessobjekt-Klassen der Hierarchie hinzugefügt werden, wobei die Softwareanwendung SA ohne weitere Anpassung auch auf die Instanzen dieser zusätzlichen konkreten Businessobjekt-Klassen zugreifen kann. Hierzu ist es lediglich notwendig, dass die zusätzlichen konkreten Businessobjekt-Klassen jeweils von einer abstrakten Businessobjekt-Klasse abgeleitet werden. Beispielsweise könnte von der abstrakten Businessobjekt-Klasse ABO12 eine zusätzliche konkrete Businessobjekt-Klasse KBO4 abgeleitet werden, sodass bei dem in 1 gezeigten Beispiel die Softwareanwendung SA über die abstrakte Businessobjekt-Klasse ABO1 auch Zugriff auf die Instanzen der neuen konkreten Businessobjekt-Klasse KBO4 hat.
  • Über die Verbindung V erhält die Softwareanwendung SA beispielsweise Zugriff auf eine eindeutige Kennung einer ausgewählten Instanz, die in der Softwareanwendung vorzugsweise in Kombination mit einer Klassenkennung abgespeichert werden kann.
  • In einer Ausgestaltung der Erfindung ist eine Instanz einer konkreten Businessobjekt-Klasse über einen Adapter A mit einem externen Softwaresystem ES verbunden. In dem externen Softwaresystem ES werden die realen Ausprägungen einer konkreten Businessobjekt-Klasse gespeichert und verwaltet. Das externe Softwaresystem ES kann physikalisch getrennt von dem Softwaresystem sein, auf dem die Softwareanwendung SA zur Ausführung gebracht wird. Das Softwaresystem, auf dem die Softwareanwendung zur Ausführung gebracht wird, kann über eine Kommunikationsschnittstelle mit dem externen Softwaresystem gekoppelt sein.
  • Der Adapter A ist angepasst, Methodenaufrufe der jeweiligen konkreten Businessobjekt-Klasse bzw. Instanz entgegenzunehmen und die entgegengenommenen Methodenaufrufe an das externe Softwaresystem ES zu übergeben bzw. die entgegengenommenen Methodenaufrufe in von dem externen Softwaresystem ausführbare Instruktionen umzuwandeln. Beispielsweise kann die abstrakte Businessobjekt-Klasse ABO1 eine Methode „getList()“ definieren bzw. implementieren, mit der eine bestimmte Anzahl von Instanzen der konkrete Businessobjekt-Klasse KBO1 ermittelt werden sollen. Die Softwarenanwendung SA kann diese Methode der Instanz I1 aufrufen, wobei der Adapter A diese Methode in eine entsprechende Methode des externen Softwaresystems ES umwandelt und zur Ausführung bringt. Als Ergebnis der Ausführung übermittelt das externe Softwaresystem ES dem Adapter A eine Anzahl von Datenobjekten, die von dem Adapter A in eine Liste von Instanzen I1 transformiert wird bzw. in eine Liste transformiert wird, die von der Instanz I1 referenziert wird. Es müssen also lediglich Adapter zur Verfügung gestellt werden, über die die Instanzen der konkreten Businessobjekte auf externe Softwaresysteme zugreifen können. Die Softwareanwendung SA muss hierfür nicht angepasst werden.
  • 2 zeigt ein konkretes Beispiel einer Softwareanwendung, die über einen Konnektor Zugriff auf Instanzen konkreter Businessobjekt-Klassen gemäß dem vorstehend beschriebenen Verfahren erhält.
  • Bei dem in 2 beschriebenen Beispiel handelt es sich bei der Softwareanwendung SA um eine sogenannte Leistungserfassung, bei der Leistungen erfasst und einer bestimmten Person zugeordnet werden. Das Erfassen der Leistungen selbst ist hier in der Softwareanwendung SA implementiert.
  • Um die erfassten Leistungen einer konkreten Person zuordnen zu können, muss die Softwareanwendung beispielsweise eine Auswahlliste anbieten können, aus der ein Benutzer eine bestimmte Person, der die Leistung zugeordnet werden soll, auswählen kann. Um Personen auswählen zu können, die aus verschiedenen Anwendungen stammen, wird zunächst eine abstrakte Businessobjekt-Klasse „Personen“ definiert, von der zwei weitere abstrakte Businessobjekt-Klassen „Personen (SAP)“ und „Personen (Facebook)“ abgeleitet sind. In der Softwareanwendung SA wird dann ein Konnektor K definiert, der die Kennung der abstrakten Businessobjekt-Klasse „Personen“ umfasst bzw. der die abstrakte Businessobjekt-Klasse „Personen“ referenziert.
  • Dadurch, dass der Konnektor die abstrakte Businessobjekt-Klasse „Personen“ referenziert, kann die Softwareanwendung SA eine Liste aller Personen zur Auswahl anbieten, die Instanzen der konkreten Businessobjekt-Klassen repräsentieren, die von den abstrakten Businessobjekt-Klassen „Personen (SAP)“ und „Personen (Facebook)“ direkt oder indirekt abgeleitet sind. In dem in 2 gezeigten Beispiel sind zur besseren Übersicht lediglich die Instanzen dieser konkreten Businessobjekt-Klassen gezeigt. Die jeweiligen konkreten Businessobjekt-Klassen sind hingegen nicht gezeigt. Bei den Instanzen PS1 bis PSn handelt es sich um Personenobjekte aus einem SAP-System. Bei den Instanzen PF1 bis PFn handelt es sich um Personen aus der Social-Network-Plattform Facebook. Über in 2 nicht gezeigte Adapter können die jeweiligen Instanzen auf das SAP-System bzw. auf Facebook zugreifen.
  • Zur Laufzeit der Softwareanwendung SA ermittelt diese die von der abstrakten Businessobjekt-Klasse „Personen“ abgeleiteten abstrakten Businessobjekt-Klassen, sowie die von diesen abgeleiteten konkreten Businessobjekt-Klassen. Die Softwareanwendung SA kann dann eine Verbindung zu den konkreten Businessobjekt-Klassen bzw. zu den Instanzen der konkreten Businessobjekt-Klassen herstellen und auf die Instanzen der konkreten Businessobjekt-Klassen zugreifen, ohne hierfür eine spezielle Schnittstelle bzw. Interface implementieren zu müssen. Die für den Zugriff notwendigen Methoden sind in den abstrakten Businessobjekt-Klassen definiert bzw. implementiert
  • Die Definition der Baumstruktur der abstrakten Businessobjekt-Klassen und der konkreten Businessobjekt-Klassen kann die Softwareanwendung SA aus einer Konfigurationsdatei KD beziehen, auf die die Leistungserfassung zur Laufzeit Zugriff hat.
  • In einer Ausgestaltung der Erfindung werden die Leistungserfassung und die konkreten Businessobjekt-Klassen bzw. die Instanzen der konkreten Businessobjekt-Klassen in einer gemeinsamen Laufzeitumgebung aufgeführt, um zu gewährleisten, dass eine Verbindung zu den Instanzen hergestellt werden kann. Die gemeinsame Laufzeitumgebung ist in 2 durch den Bereich „Solution“ gekennzeichnet.
  • In einer Ausgestaltung der Erfindung kann auf einen Adapter A auch verzichtet werden, beispielsweise wenn die Instanzen der konkreten Businessobjekt-Klasse „echte“ Instanzen sind, auf die die Leistungserfassung zugreifen kann.
  • Bezugszeichen:
    • A
      Adapter
      ABO1 bis ABOn
      abstrakte Businessobjekt-Klassen
      Base
      abstrakte Basis-Businessobjekt-Klassen
      ES
      externe Softwareanwendung
      I1 bis In
      Instanzen einer oder mehrerer konkreten Businessobjekt-Klassen
      K
      Konnektor
      KD
      Konfigurationsdatei
      KBO1 bis KBOn
      konkrete Businessobjekt-Klassen
      SA
      Softwareanwendung, z.B. eine sogenannte Mikro-APP
      V
      Verbindung

Claims (14)

  1. Computer-implementiertes Verfahren zum Konnektieren von Businessobjekten in einer Softwareanwendung (SA), wobei – die Softwareanwendung einen Konnektor (K) umfasst, wobei der Konnektor eine eine abstrakte Businessobjekt-Klasse (ABO1 bis ABOn) identifizierende Kennung umfasst, – die Softwareanwendung zur Laufzeit die in dem Konnektor angegebene abstrakte Businessobjekt-Klasse in einer Hierarchie von abstrakten Businessobjekt-Klassen ermittelt, und – die Softwareanwendung zur Laufzeit – ausgehend von der ermittelten abstrakten Businessobjekt-Klasse zumindest eine davon direkt oder indirekt abgeleitete konkrete Businessobjekt-Klasse (KBO1 bis KBOn) ermittelt, und – zu mindestens einer Instanz (I1 bis In) der zumindest einen ermittelten konkreten Businessobjekt-Klassen eine Verbindung (V) herstellt, über die die Softwareanwendung auf Attribute und Methoden der Instanz der konkreten Businessobjekt-Klasse zugreift.
  2. Verfahren nach Anspruch 1, wobei der Konnektor (K) dem Quellcode der Softwareanwendung hinzugefügt wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei bei mehreren ermittelten konkreten Businessobjekt-Klassen (KBO1 bis KBOn) die Softwareanwendung (SA) eine konkrete Businessobjekt-Klasse auswählt und zu mindestens einer Instanz (I1 bis In) der ausgewählten konkreten Businessobjekt-Klasse die Verbindung (V) herstellt.
  4. Verfahren nach Anspruch 3, wobei die Auswahl der konkreten Businessobjekt-Klasse durch die Softwareanwendung (SA) in Reaktion auf eine Benutzereingabe erfolgt, bei der ein Benutzer der Softwareanwendung aus den mehreren ermittelten konkreten Businessobjekt-Klassen (KBO1 bis KBOn) eine konkrete Businessobjekt-Klasse auswählt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Softwareanwendung (SA) über die Verbindung (V) eine eindeutige Kennung einer Instanz der konkreten Businessobjekt-Klasse (KBO1 bis KBOn) entgegennimmt und speichert.
  6. Verfahren nach Anspruch 5, wobei die Softwareanwendung (SA) zusätzlich zur eindeutigen Kennung der Instanz (I1 bis In) der konkreten Businessobjekt-Klasse (KBO1 bis KBOn) eine eindeutige Kennung der konkreten Businessobjekt-Klasse speichert.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die konkrete Businessobjekt-Klasse (KBO1 bis KBOn) über einen Adapter (A) mit zumindest einem externen Softwaresystem (ES) verbunden ist, in welchem Ausprägungen der konkreten Businessobjekt-Klasse gespeichert sind.
  8. Verfahren nach Anspruch 7, wobei der Adapter (A) Methodenaufrufe der konkreten Businessobjekt-Klasse (KBO1 bis KBOn) entgegennimmt, diese in von dem externen Softwaresystem (ES) ausführbare Instruktionen umwandelt, und die ausführbaren Instruktionen an das externe Softwaresystem übergibt.
  9. Verfahren nach Anspruch 7 oder 8, wobei der Adapter von dem externen Softwaresystem (ES) Daten entgegennimmt und diese an eine oder mehrere Instanzen der konkreten Businessobjekt-Klasse übergibt.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Hierarchie der abstrakten und konkreten Businessobjekt-Klassen in einer Konfigurationsdatei (KD) gespeichert ist, auf die die Softwareanwendung (SA) zur Laufzeit Zugriff hat.
  11. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Softwareanwendung (SA) über Methoden der ermittelten abstrakten Businessobjekt-Klasse oder davon abgeleiteter abstrakter Businessobjekt-Klassen (ABO1 bis ABOn) auf die Instanz (I1 bis In) der konkreten Businessobjekt-Klasse (KBO1 bis KBOn) zugreift.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Softwareanwendung (SA) zur Laufzeit eine Instanz einer konkreten Businessobjekt-Klasse umfasst und/oder wobei die Instanz der konkreten Businessobjekt-Klasse Bestandteil einer weiteren Softwareanwendung ist.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Softwareanwendung (SA) und die Instanz der konkreten Businessobjekt-Klasse und/oder die Softwareanwendung (SA) und die weitere Softwareanwendung zur Laufzeit in einer gemeinsamen Laufzeitumgebung ausgeführt werden.
  14. Computerprogrammprodukt, das in den Speicher einer Datenverarbeitungseinrichtung geladen werden kann und auf dieser zur Ausführung gebracht werden kann, und das Programmabschnitte umfasst, die angepasst sind, ein Verfahren nach einem der vorhergehenden Ansprüche zur Ausführung zu bringen.
DE102013108309.9A 2013-08-01 2013-08-01 Verfahren zum Konnektieren von Objekten in einer Softwareanwendung Ceased DE102013108309A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102013108309.9A DE102013108309A1 (de) 2013-08-01 2013-08-01 Verfahren zum Konnektieren von Objekten in einer Softwareanwendung
PCT/EP2014/066534 WO2015014957A1 (de) 2013-08-01 2014-07-31 Verfahren zum konnektieren von objekten in einer softwareanwendung
EP14748165.9A EP3028144A1 (de) 2013-08-01 2014-07-31 Verfahren zum konnektieren von objekten in einer softwareanwendung
CN201480043581.5A CN105556465B (zh) 2013-08-01 2014-07-31 用来在软件应用程序中连接对象的方法
US15/010,976 US10048947B2 (en) 2013-08-01 2016-01-29 Method for connecting objects in a software application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013108309.9A DE102013108309A1 (de) 2013-08-01 2013-08-01 Verfahren zum Konnektieren von Objekten in einer Softwareanwendung

Publications (1)

Publication Number Publication Date
DE102013108309A1 true DE102013108309A1 (de) 2015-02-05

Family

ID=51298730

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013108309.9A Ceased DE102013108309A1 (de) 2013-08-01 2013-08-01 Verfahren zum Konnektieren von Objekten in einer Softwareanwendung

Country Status (5)

Country Link
US (1) US10048947B2 (de)
EP (1) EP3028144A1 (de)
CN (1) CN105556465B (de)
DE (1) DE102013108309A1 (de)
WO (1) WO2015014957A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111490A (zh) * 2014-12-19 2017-08-29 谢尔盖·阿纳托利耶维奇·格瑞斯尼 功能约束数据的管理系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659751A (en) * 1990-01-05 1997-08-19 Apple Computer, Inc. Apparatus and method for dynamic linking of computer software components
US20030226136A1 (en) * 2002-05-23 2003-12-04 Patrick Calahan System and method for extending application functionality and content

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163813A (en) * 1995-06-07 2000-12-19 International Business Machines Corporation Pattern for instantiating objects of unknown type in object-oriented applications
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
CA2386658A1 (en) * 1999-08-16 2001-06-28 Z-Force Corporation System of reusable software parts for implementing concurrency and hardware access, and methods of use
US7519970B2 (en) * 2003-09-29 2009-04-14 International Business Machines Corporation Methods, systems and computer program products for creating user interface to applications using generic user interface templates
US20050091093A1 (en) * 2003-10-24 2005-04-28 Inernational Business Machines Corporation End-to-end business process solution creation
US7730482B2 (en) * 2004-06-08 2010-06-01 Covia Labs, Inc. Method and system for customized programmatic dynamic creation of interoperability content
US7565365B2 (en) * 2005-08-31 2009-07-21 Sap Ag Object storage and synchronization hooks for occasionally-connected devices
US20070157155A1 (en) * 2005-12-30 2007-07-05 Peters Eric C System and method for software generation and execution
CN102547667B (zh) * 2011-12-30 2014-10-08 华为终端有限公司 设备管理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659751A (en) * 1990-01-05 1997-08-19 Apple Computer, Inc. Apparatus and method for dynamic linking of computer software components
US20030226136A1 (en) * 2002-05-23 2003-12-04 Patrick Calahan System and method for extending application functionality and content

Also Published As

Publication number Publication date
US10048947B2 (en) 2018-08-14
EP3028144A1 (de) 2016-06-08
CN105556465A (zh) 2016-05-04
WO2015014957A1 (de) 2015-02-05
CN105556465B (zh) 2019-10-18
US20160147508A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
DE19954268B4 (de) Verfahren und System zur Verbesserung des Workflow in Workflow-Management-Systemen
EP0825524A1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE10040213A1 (de) System und Verfahren zur dynamischen, auf dem jeweiligen Aufgabenbereich beruhenden Konfiguration von Benutzerprofilen
DE112010003361T5 (de) Virtuelles privates Netz für soziale Netze
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE112013000751T5 (de) Datenverarbeitung, Datensammlung
DE102013108309A1 (de) Verfahren zum Konnektieren von Objekten in einer Softwareanwendung
EP3028182B1 (de) Verfahren und system zur synchronisation von daten
EP3753233A1 (de) Verfahren zum ereignisgesteuerten abruf von prozessdaten
EP3796161A1 (de) Verfahren zur bestimmung einer container-konfiguration eines systems, system, computerprogramm und computerlesbares medium
DE10213735A1 (de) Verfahren und Vorrichtung zum Vergleichen von Produkteigenschaften
EP1515244A2 (de) Abbildung einer Klassenhierarchie auf ein relationales Datenbanksystem
EP1139243A1 (de) Abrechnungs- und Kundenverwaltungssystem
EP3163444B1 (de) Rechnerverbund mit automatisierter anforderung und zuordnung von cloud-ressourcen
DE102007049958A1 (de) Verfahren und System zur Aktualisierung einer mehrschichtigen Applikation
DE202017005442U1 (de) Zentralisierte, bidirektionale Datenbearbeitung für Online Applikationen
DE202022100357U1 (de) Ein System zur Verkehrsabweisung für eine Hochleistungs-Gateway-Plattform mit phasenweiser Deaktivierung von Diensten
DE10208959B4 (de) Verfahren und Vorrichtung zur Erfassung und Auswertung von in einem Rechnernetzwerk abgelegten Informationen
EP1691521B1 (de) Datenübertragungssystem, Benachrichtigungskomponente und Verfahren zum Übertragen von Daten
DE10006959A1 (de) Verfahren zur Abfrage einer Datenbank
DE102010010035A1 (de) Verfahren zum Erstellen von Objekten einer objektorientierten Datenbank
AT16972U1 (de)
DE102015120743A1 (de) Verfahren zur Kommunikation von Handelseinheiten in einem System und dazugehöriges System
DE102008044843A1 (de) Verfahren und System zum Verteilen von Applikationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: 2S-IP SCHRAMM SCHNEIDER PATENTANWAELTE - RECHT, DE

Representative=s name: 2S-IP SCHRAMM SCHNEIDER BERTAGNOLL PATENT- UND, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final