[go: up one dir, main page]

WO2011076913A1 - Method for detecting and processing data while considering metadata - Google Patents

Method for detecting and processing data while considering metadata Download PDF

Info

Publication number
WO2011076913A1
WO2011076913A1 PCT/EP2010/070626 EP2010070626W WO2011076913A1 WO 2011076913 A1 WO2011076913 A1 WO 2011076913A1 EP 2010070626 W EP2010070626 W EP 2010070626W WO 2011076913 A1 WO2011076913 A1 WO 2011076913A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
metadata
processing
program
program code
Prior art date
Application number
PCT/EP2010/070626
Other languages
German (de)
French (fr)
Inventor
Mario Neugebauer
Original Assignee
Ubigrate 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 Ubigrate Gmbh filed Critical Ubigrate Gmbh
Publication of WO2011076913A1 publication Critical patent/WO2011076913A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/316Aspect-oriented programming techniques

Definitions

  • the invention relates to a method for data acquisition and processing in consideration of metadata, which contain additional information to the actual data, in which a program instructions containing
  • Processing unit is converted into a compiled code.
  • the invention is in the field of data acquisition and processing, for example, in measuring and testing devices
  • Such metadata are, for example, units of measure that are attached to the variables or value. For example, a length measurement of 5 meters consists of the value "5" and the additional information "meter”.
  • Metadata is the unit and is referred to below as metadata.
  • Metadata may include the time of the measured value recording, measurement circumstances, tolerances of the measuring device or information about the measuring direction, among others. This metadata is highly relevant to the correct processing of the data. Like the actual measured values, they must be subjected to processing, for example by means of a data processing system. In the simplest case, this is a conversion of units of measure
  • Operators are constructs that can be used to create new objects from objects. These constructs can also be present in programming languages. So usually the operator "+" is an example, he is in almost all
  • the C ++ programming language is an exception in terms of operators.
  • the operators are freely definable with the so-called operator overload. So that can
  • Program codes translated directly into machine code This determines how the defined operators are executed and how the objects before and after form a new object.
  • objects so-called value objects, can be formed, which in turn, according to the principle of
  • Object-oriented programming functions can be defined. The actual value is kept in a property of the object.
  • the entrainment and processing of metadata can be done in
  • Program code libraries are implemented.
  • the object definitions contained in it contain properties, both for the values and for the metadata of the objects.
  • Operators may be implemented within program code libraries. Within this program code library, the operators are already translated.
  • Disadvantage is that the operator is not overwritable.
  • the machine code can not be subsequently optimized automatically for metadata acquisition and processing become .
  • Value objects must also be used throughout the program code to maintain consistency. Simplifications of the way that the value object is based on primitive data types
  • value objects are used in the program code, the program code is bound to these specific value objects. Primitive data types that transport only the values must be transformed via an individual connection to the value objects. Value objects are permanently implemented in the program code. They can not be switched on or off, for example for the purpose of increasing the performance of the temporary data processing without consideration of the metadata. When combining different metadata types, for example, considering
  • the object is achieved in a method for data acquisition and processing in consideration of metadata in that in a first
  • the method step is determined by which variables contained in the program code metadata are assigned, that are determined in a second step, the locations in the compiled code on which operations are performed with the specified variables and that this
  • variables are metrics that include metadata. This can be done, for example, by calling an additional function.
  • variables are stored in a central registry with their associated metadata and are linked to metadata such as "m” or "s".
  • the invention thus facilitates the carrying of the metadata without significant changes having to be made in the program code (high-level language, byte code or even executable code).
  • the data processing remains transparent, with the metadata being carried automatically.
  • the modification of the code takes place before, after or exactly at the point marked by the joinpoint in the compiled code.
  • the modification of the code according to the invention can, with respect to the determined join points, take place exactly at the points of the join points, before this point, after this point or before and after this point.
  • the modification of the code according to the invention it is provided that the
  • the modification of the code can, for example, by calling another code section by means of a
  • Jump instruction by replacing the code with another code or by adding another code.
  • Program can be switched on and off.
  • Metadata management at runtime on or off can only be activated for tests or for metadata-critical operations.
  • FIG. 1 is an illustration of the procedure.
  • a program code is generally intended to be specific
  • AOP Aspect-oriented programming
  • joinpoint is a possible starting point for a
  • joinpoints can also be variable accesses or method calls.
  • a pointcut is a set of join points
  • the invention uses the principle of AOP for measured value processing with simplified metadata management. It assumes that there is code that processes values from measurements, but does not treat metadata.
  • Such program code may look, for example, as shown below in Listing 1: Start Listing 1
  • variables m_l, m_2 and m_3 are included in a central registry.
  • these variables are linked with the metadata, in the example these are the strings "m” and "s”. They stand for the units of measurement meters and seconds in the recorded measured values. At this point, the values are no longer unitless, so operations on those variables always go through the processing logic for the attached metadata.
  • metadata management are the following variables:
  • joinpoints are all points in the program code where operations on the registered variables are performed. In the example, there are two join points in lines 11 and 12 when adding and dividing the measured values. At this point, the unit must be taken into account in the calculation.
  • the pointcut in the example is a set of two elements, the mentioned joinpoints in lines 11 and 12. If the variables m_l, m_2 or m_3 undergo further operations, the result would be more joinpoints, which would also increase the pointcut set.
  • Correction of a unit for example, a conversion from “mm” to “m” or the generation of a warning or
  • this division function can consist of calculating a new unit if it is allowed. The example would calculate the new unit "m / s.”
  • the processing logic may also generate a warning or error message if the division of the units in the scope of the program is not allowed.
  • a special feature of the invention is that Advices only shortly before the execution of the program code in the
  • Insert program code This does not modify the original source code, but its compilation.
  • the compilation may be the Java bytecode in the Java programming language.
  • the bytecode When loading the bytecode of a class, the bytecode is thereby subjected to an analysis. All joinpoints of a pointcuts are searched for and by the
  • the starting point is a usual process of software development, which has the program code 1 as a result.
  • This program code 1 must be transparent
  • Registry 3 is then the variable with the associated metadata recorded.
  • the program code is then compiled in the usual way and thus converted into executable bytecode (binary code) and, for example, in one Fixed storage of a processing unit stored. This is the compiled code 4 ready for later execution in the fixed memory.
  • joinpoints 8 in the compiled code 4 are identified. Joinpoints 8 result from all
  • the result 5 of this first step of the method is the byte code (binary code) 4, with the points known as the join points 8.
  • advices are inserted. They are either prefixed to the joinpoints 8 in the program sequence or adjusted. In another variant, the advices can also completely replace the join points 8 and the relevant code.
  • the result of these process steps is a
  • Code 6 modified according to the invention in which metadata is automatically carried.
  • the software developer who created the original program code 1 will not be aware of the modification. He only has to make the first mentioned addition for the initial registration of selected variables and their metadata.
  • the advices or the processing logic 7 then access the central registry 3. From there, the metadata are fetched to selected variables to process them analogously to the originally implemented program code 1.
  • join points 8 are as
  • services based on metadata can also be transparently developed using the invention.
  • a service is, for example, an error calculation during measured value processing.
  • Another service could detect if a value is that
  • an unmonitored function call e.g., by calling a native function out of Java. After such a function call has taken place, can not be understood with certainty, what with the value
  • the metadata management can be switched on or off at runtime. As a result, for example, metadata management can only be activated for tests or for metadata-critical operations. This can leave the performance of the entire software system essentially unaffected.
  • Measuring devices are used, for example, for measuring speeds. These meters deliver as
  • Measurement data the information about the current distance covered since a certain time.
  • Result calculation can be used on different sources for the distance measurement, z. B. GPS and vehicle tachometer. At the same time a time is in one
  • the interest rate must be from a
  • Vehicle tachometer to be calculated centrally.
  • the speed must be calculated taking into account the units, otherwise a faulty speed will be calculated.
  • Metadata must be considered and which it is.
  • these are the measured quantities meter "m” and kilometers “km” for the measurement of the distance.
  • the incoming measured values can thus be correctly processed and delivered with regard to the units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a method for detecting and processing data while considering metadata comprising additional information about the actual data, wherein a program code comprising program instructions is converted into a compiled code prior to being executed in a processing unit, wherein the object of the invention is to provide metadata management by means of which the processing of data in conjunction with metadata is made more simple. Said object is achieved in that it is determined in a first process step which variables present in the program code are associated with metadata, that the locations in the compiled code at which operations using the determined variable are performed are derived in a second process step and said locations are labeled by means of a joinpoint, and that the code is modified at the locations labeled by joinpoints by means of a function for processing the compiled code (advice) in a third process step, such that the program instructions are executed as a function of the metadata.

Description

Verfahren zur Datenerfassung und -Verarbeitung unter Berücksichtigung von Metadaten  Method for data acquisition and processing taking into account metadata
Die Erfindung betrifft ein Verfahren zur Datenerfassung und -Verarbeitung unter Berücksichtigung von Metadaten, welche Zusatzinformationen zu den eigentlichen Daten beinhalten, bei welchem ein Programmanweisungen beinhaltender The invention relates to a method for data acquisition and processing in consideration of metadata, which contain additional information to the actual data, in which a program instructions containing
Programmcode vor seiner Ausführung in einer Program code before its execution in one
Verarbeitungseinheit in einen kompilierten Code umgewandelt wird .  Processing unit is converted into a compiled code.
Die Erfindung ist im Bereich der Datenerfassung und - Verarbeitung beispielsweise in Mess- und Prüfgeräten The invention is in the field of data acquisition and processing, for example, in measuring and testing devices
angesiedelt, bei welchen Metadaten bei Messvorgängen erzeugt und im nachfolgenden Verarbeitungsprozess berücksichtigt werden müssen. in which metadata must be generated during measurement processes and taken into account in the subsequent processing process.
Beim Aufnehmen und Verarbeiten von Messwerten in When recording and processing readings in
Datenverarbeitungs- oder Rechensystemen, werden häufig Data processing or computing systems are becoming more common
Zusatzinformationen zu den eigentlichen Daten, die Additional information about the actual data, the
sogenannten Metadaten, erzeugt und bei der Verarbeitung der Daten mitgeführt. so-called metadata, generated and carried in the processing of data.
Derartige Metadaten sind beispielsweise Maßeinheiten, die an die Variablen oder den Wert geheftet werden. So besteht beispielsweise ein Längenmesswert von 5 Meter aus dem Wert „5" und der Zusatzinformation „Meter". Diese Such metadata are, for example, units of measure that are attached to the variables or value. For example, a length measurement of 5 meters consists of the value "5" and the additional information "meter". These
Zusatzinformation ist die Einheit und wird im Folgenden als Metadatum bezeichnet.  Additional information is the unit and is referred to below as metadata.
Weitere Metadaten können die Zeit der Messwertaufnahme, Messumstände, Toleranzen des Messgerätes oder Angaben über die Messrichtung u. a. sein. Diese Metadaten sind für die korrekte Verarbeitung der Daten höchst relevant. Sie müssen ebenso wie die eigentlichen Messwerte einer Verarbeitung beispielsweise mittels eines Datenverarbeitungssystems unterzogen werden. Im einfachsten Fall ist das eine Umwandlung von Maßeinheiten um Other metadata may include the time of the measured value recording, measurement circumstances, tolerances of the measuring device or information about the measuring direction, among others. This metadata is highly relevant to the correct processing of the data. Like the actual measured values, they must be subjected to processing, for example by means of a data processing system. In the simplest case, this is a conversion of units of measure
beispielsweise nur Werte der gleichen Einheit (z. B. nur Meter) miteinander zu verarbeiten, beispielsweise zu For example, only values of the same unit (for example, only meters) are to be processed together, for example to
addieren. Es können aber auch neue Maßeinheiten errechnet werden, z. B. eine Geschwindigkeit in Meter pro Sekunde bei der Division entsprechender Werte. add. But it can also be calculated new units of measurement, z. For example, a speed in meters per second when dividing appropriate values.
In Verarbeitungsalgorithmen müssen diese Metadaten analog zu den eigentlichen Werten mitgeführt und damit auch verändert werden, was zu einem erhöhtem Aufwand bei der In processing algorithms, these metadata have to be carried along and thus also changed analogously to the actual values, which leads to an increased outlay on the
Datenverarbeitung führt. Aus dem Stand der Technik sind sogenannte Operatoren und Werteobjekte bekannt. Data processing leads. So-called operators and value objects are known from the prior art.
Operatoren sind Konstrukte, mit denen aus Objekten neue Objekte gebildet werden können. Diese Konstrukte können auch in Programmiersprachen vorhanden sein. So ist üblicherweise der Operator „+" ein Beispiel. Er ist in nahezu allen Operators are constructs that can be used to create new objects from objects. These constructs can also be present in programming languages. So usually the operator "+" is an example, he is in almost all
Programmiersprachen mit der Bedeutung der Addition der davor bzw. dahinterstehenden Werte belegt. Operatoren sind fest implementiert .  Programming languages with the meaning of the addition of the preceding or underlying values occupied. Operators are firmly implemented.
Die Programmiersprache C++ bildet eine Ausnahme in Bezug auf Operatoren. In C++ sind die Operatoren mit der sogenannten Operatorüberladung frei definierbar. Damit kann The C ++ programming language is an exception in terms of operators. In C ++ the operators are freely definable with the so-called operator overload. So that can
beispielsweise die Umsetzung des Operators „+" auf den Fall der Zusammenfügung von Zeichenketten angewendet werden. For example, the conversion of the operator "+" to the case of assembling strings will be applied.
Operatoren werden während der Zeit der Übersetzung des Operators will be during the time of translation of the
Programmcodes direkt in Maschinencode übersetzt. Damit ist festgelegt, in welcher Weise die definierten Operatoren zur Ausführung kommen und wie die Objekte davor bzw. danach ein neues Objekt bilden. Für Werte können Objekte, sogenannte Wertobjekte, gebildet werden, an denen wiederum gemäß dem Prinzip der Program codes translated directly into machine code. This determines how the defined operators are executed and how the objects before and after form a new object. For values, objects, so-called value objects, can be formed, which in turn, according to the principle of
objektorientierten Programmierung Funktionen definiert sein können. Der eigentliche Wert wird in einer Eigenschaft des Objektes gehalten. Object-oriented programming functions can be defined. The actual value is kept in a property of the object.
Wenn Metadaten gemeinsam mit dem Wert transportiert werden sollen, müssen diese Metadaten als zusätzliche Eigenschaft des Objektes aufgenommen werden. Die Operation wird dann durch die Funktion an dem Objekt realisiert, wobei die If metadata is to be transported together with the value, this metadata must be included as an additional property of the object. The operation is then realized by the function on the object, the
Funktion auf die Metadaten, die als zusätzliche Eigenschaft definiert sind, zurückgreift. Damit können die Metadaten, beispielsweise die Längeneinheit Meter, parallel zu den Werten bearbeitet werden. Function on the metadata defined as additional property. This allows you to edit the metadata, for example the length unit meters, in parallel to the values.
Die Mitführung und Verarbeitung von Metadaten kann in The entrainment and processing of metadata can be done in
Programmcodebibliotheken implementiert werden. Die darin enthaltenen Objektdefinitionen enthalten Eigenschaften, sowohl für die Werte als auch für die Metadaten der Objekte. Program code libraries are implemented. The object definitions contained in it contain properties, both for the values and for the metadata of the objects.
Mit Operatoren steht in der Programmiersprache C++ eine Möglichkeit zur Verfügung, um das Metadatenmanagment With operators in the programming language C ++ there is a possibility available to the metadata management
grundsätzlich zu leisten. Es existieren allerdings in principle. There are, however, exist
Nachteile, so dass der Einsatz in bestimmten Disadvantages, so use in certain
Anwendungsfällen nicht möglich ist. Use cases is not possible.
Operatoren können innerhalb von Programmcodebibliotheken implementiert sein. Innerhalb dieser Programmcodebibliothek befinden sich die Operatoren in bereits übersetzter Form.Operators may be implemented within program code libraries. Within this program code library, the operators are already translated.
Das heißt beispielsweise, dass die Operation „Zeichenkettel + Zeichenkette2" bereits in die Konkatenation von This means, for example, that the operation "string + string2" already in the concatenation of
Zeichenkettel mit Zeichenkette2 übersetzt worden ist, wobei die tatsächliche Ausführung der Konkatenation dann als ausführbarer Maschinencode vorliegt. Der entscheidende Character string has been translated with string 2, the actual execution of the concatenation then being present as an executable machine code. The decisive one
Nachteil ist, dass der Operator damit nicht überschreibbar ist. Der Maschinencode kann also nicht nachträglich für die Metadatenerfassung und -Verarbeitung automatisch optimiert werden . Disadvantage is that the operator is not overwritable. The machine code can not be subsequently optimized automatically for metadata acquisition and processing become .
Zudem liegt ein weiterer Nachteil vor. Die Operatoren berücksichtigen Metadaten zum Zeitpunkt der Übersetzung des Programmcodes in Maschinencode. Danach sind keine In addition, there is another disadvantage. The operators consider metadata at the time of translation of the program code into machine code. After that are no
Anhaltspunkte vorhanden, anhand derer weitere Dimensionen bezüglich der Metadaten eingewoben werden können. Die Clues exist that can be used to interweave additional dimensions related to the metadata. The
Operatoren können nur zur Kompilierzeit wirksam werden. Operators can only take effect at compile time.
Alle Werte, die in eine Metadatenerfassung All values in a metadata collection
bzw. -Verarbeitung eingebunden sind, müssen über die or processing are involved, must via the
speziellen Werteobjekte transportiert werden. Diese special value objects are transported. These
Werteobjekte müssen für die Wahrung der Konsistenz auch im gesamten Programmcode verwendet werden. Vereinfachungen der Art, dass die Werteobjekt auf primitive Datentypen  Value objects must also be used throughout the program code to maintain consistency. Simplifications of the way that the value object is based on primitive data types
abgebildet werden, beispielsweise als Integer auf „int", führen zum vollständigen Verlust aller Zusatzinformationen über die Metadaten. mapped, for example, as an integer to "int", lead to the complete loss of all additional information about the metadata.
Auf primitiven Datentypen sind üblicherweise bereits eine Menge an Basisoperatoren spezifiziert und implementiert. On primitive data types, a set of basic operators are usually already specified and implemented.
Diese Operatoren können nicht auf Werteobjekte angewendet werden. Will man auf die Werteobjekte die Basisoperatoren anwenden, so müssen Letztere als Funktionen neu These operators can not be applied to value objects. If you want to apply the base operators to the value objects, the latter must be new as functions
implementiert werden beispielsweise als implemented as, for example
Obj ekt . add ( ... ) für „+". Obj ect. add (...) for "+".
Ebenso müssen auch Basisfunktionen vollständig neu Similarly, basic functions must be completely new
implementiert werden. Dadurch entsteht ein hoher be implemented. This creates a high
Entwicklungsaufwand . Development effort.
Wenn in dem Programmcode Wertobjekt verwendet werden, ist der Programmcode an diese speziellen Werteobjekte gebunden. Primitive Datentypen, die nur die Werte transportieren, müssen über eine individuelle Anbindung auf die Werteobjekte transformiert werden. Werteobjekte sind im Programmcode fest implementiert. Sie sind nicht ein- oder ausschaltbar, beispielsweise zum Zwecke der Leistungssteigerung bei der zeitweisen Datenverarbeitung ohne Berücksichtigung der Metadaten. Wenn verschiedene Metadaten-Typen kombiniert werden sollen, beispielsweise bei einer Berücksichtigung von If value objects are used in the program code, the program code is bound to these specific value objects. Primitive data types that transport only the values must be transformed via an individual connection to the value objects. Value objects are permanently implemented in the program code. They can not be switched on or off, for example for the purpose of increasing the performance of the temporary data processing without consideration of the metadata. When combining different metadata types, for example, considering
Längeneinheiten und zusätzlich zeitliche Aspekte, ist die Entwicklung einer Kombination sehr aufwändig. Es muss ein übergeordnetes Werteobjekt entwickelt werden, in dem die Metadatenbehandlung beider zu kombinierenden Werteobjekte ausgeführt wird. Neu hinzukommende Metadatenaspekte müssen wiederum auf diese Weise eingefügt werden. Neben dem höheren Entwicklungsaufwand ist auch eine erneute Übersetzung des Programmcodes in Maschinencode erforderlich. Der Erfindung liegt die Aufgabe zugrunde, ein Length units and additional temporal aspects, the development of a combination is very complex. A higher-level value object must be developed in which the metadata handling of both value objects to be combined is carried out. Newly added metadata aspects must again be inserted in this way. In addition to the higher development effort, a new translation of the program code into machine code is required. The invention is based on the object
Metadatenmanagment anzugeben, mit welchem die Verarbeitung von Daten in Verbindung mit Metadaten vereinfacht wird.  Specify metadata management that simplifies the processing of data associated with metadata.
Gemäß der Erfindung wird die Aufgabe bei einem Verfahren zur Datenerfassung und -Verarbeitung unter Berücksichtigung von Metadaten dadurch gelöst, dass in einem ersten According to the invention, the object is achieved in a method for data acquisition and processing in consideration of metadata in that in a first
Verfahrensschritt festgelegt wird, welchen im Programmcode enthaltenen Variablen Metadaten zugeordnet sind, dass in einem zweiten Verfahrensschritt die Stellen im kompilierten Code ermittelt werden, an welchen Operationen mit den festgelegten Variablen durchgeführt werden und dass diesen The method step is determined by which variables contained in the program code metadata are assigned, that are determined in a second step, the locations in the compiled code on which operations are performed with the specified variables and that this
Stellen mittels eines Joinpoints gekennzeichnet werden, dass in einem dritten Verfahrensschritt mittels einer Funktion zur Behandlung des kompilierten Codes (Advice) an den durch die Joinpoints gekennzeichneten Stellen der Code derart modifiziert wird, dass eine Ausführung der Be characterized by means of a Joinpoints that in a third process step by means of a function for handling the compiled code (Advice) at the points marked by the Joinpoints the code is modified such that an execution of the
Programmanweisungen in Abhängigkeit der Metadaten erfolgt.  Program instructions depending on the metadata is done.
Zur Datenerfassung und -Verarbeitung unter Berücksichtigung von Metadaten wird einmalig im Programmcode bekannt gemacht, bei welchen Variablen es sich um Messwerte handelt, die auch Metadaten beinhalten. Dies kann beispielsweise durch einen Aufruf einer zusätzlichen Funktion erfolgen. Diese Variablen werden in eine zentrale Registratur mit ihren zugehörigen Metadaten abgespeichert und sind derart mit den Metadaten, wie beispielsweise „m" oder „s", verknüpft. For data acquisition and processing, taking metadata into account, the program code is made known once. which variables are metrics that include metadata. This can be done, for example, by calling an additional function. These variables are stored in a central registry with their associated metadata and are linked to metadata such as "m" or "s".
Nachfolgend werden durch die Verarbeitungslogik die Subsequently, through the processing logic, the
Joinpoints, also alle Punkte im Programmcode, an denen Joinpoints, that is, all points in the program code where
Operationen mit den registrierten Variablen durchgeführt werden, ermittelt. An diesen Joinpoints werden Ergänzungen am Programmcode vorgenommen. Diese eigentlich elementaren Operationen werden dabei beispielsweise durch einen Operations performed with the registered variables are determined. Additions to the program code are made at these join points. These actually elementary operations are thereby for example by a
Funktionsaufruf in die Verarbeitungslogik ersetzt. In einer solchen externen Funktion ist es nun möglich, die ersetzte elementare Operation unter Berücksichtigung der an die Function call replaced in the processing logic. In such an external function, it is now possible, the replaced elementary operation taking into account the to the
Variable (n) angeknüpften Metadaten durchzuführen. Perform variable (s) related metadata.
Die Erfindung erleichtert somit das Mitführen der Metadaten, ohne dass im Programmcode (Hochsprache, Bytecode oder auch ausführbarer Code) wesentliche Änderungen durchgeführt werden müssen. Die Datenverarbeitung bleibt transparent, wobei die Metadaten automatisch mitgeführt werden. The invention thus facilitates the carrying of the metadata without significant changes having to be made in the program code (high-level language, byte code or even executable code). The data processing remains transparent, with the metadata being carried automatically.
In einer Ausgestaltung der Erfindung ist vorgesehen, dass die Modifizierung des Codes vor, nach oder genau an der durch den Joinpoint gekennzeichneten Stelle im kompilierten Code erfolgt. In one embodiment of the invention, it is provided that the modification of the code takes place before, after or exactly at the point marked by the joinpoint in the compiled code.
Die erfindungsgemäße Modifizierung des Codes kann, in Bezug auf die ermittelten Joinpoints, genau an den Stellen der Joinpoints, vor dieser Stelle, nach dieser Stelle oder vor und nach dieser Stelle erfolgen. In einer Ausführung der Erfindung ist vorgesehen, dass dieThe modification of the code according to the invention can, with respect to the determined join points, take place exactly at the points of the join points, before this point, after this point or before and after this point. In one embodiment of the invention it is provided that the
Modifizierung des Codes mittels einer Sprunganweisung, einem Ersetzten von Codeteilen oder einem Hinzufügen von Modification of the code by means of a jump instruction, a replacement of code parts or an addition of
Codeteilen erfolgt. Die Modifizierung des Codes kann beispielsweise durch einen Aufruf eines anderen Codeabschnitts mittels einer Code parts done. The modification of the code can, for example, by calling another code section by means of a
Sprunganweisung, durch ein Ersetzen des Codes durch einen anderen Code oder durch ein Hinzufügen eines weiteren Codes erfolgen . Jump instruction, by replacing the code with another code or by adding another code.
In einer Ausführungsform der Erfindung ist vorgesehen, dass die Modifizierung des Codes während der Laufzeit des In one embodiment of the invention it is provided that the modification of the code during the term of the
Programmes zu- und abgeschaltet werden kann. Program can be switched on and off.
Da die Advices, also ein an der Stelle eines Joinpoints auszuführender zusätzlicher Code, erst kurz vor der Since the advices, ie an additional code to be executed at the point of a joinpoint, are not until shortly before the
eigentlichen Ausführung des kompilierten Programmcodes an den Joinpoints eingefügt werden, kann das The actual execution of the compiled program code may be inserted at the joinpoints
Metadatenmanagement zur Laufzeit ein- bzw. ausgeschaltet werden. Dadurch kann beispielsweise nur für Tests oder bei metadatenkritischen Operationen das Metadatenmanagement eingeschaltet werden.  Metadata management at runtime on or off. As a result, for example, metadata management can only be activated for tests or for metadata-critical operations.
Somit ergeben sich die nachfolgend aufgeführten Vorteile: This results in the following advantages:
Vereinfachen der Handhabung von Metadaten in Simplify handling of metadata in
messwertverarbeitenden Systemen  reading systems
Schaffung von Transparenz bei der Metadatenverwaltung, so dass keine wesentlichen Veränderungen an der Creating transparency in metadata management, so no significant changes to the
implementierten Algorithmik notwendig sind ein-/ausschaltbar zur Laufzeit, ohne Neuübersetzung von hochsprachlichem Programmcode  Implemented algorithms are necessary on / off switchable at runtime, without retranslation of high-level language code
Fehlererkennung und -behebung bei der Messwertverarbeitung einfache Kombinierbarkeit mehrerer Metadatentypen Error detection and correction during measured value processing Easy combination of several metadata types
Die Erfindung soll nachfolgend anhand eines Ausführungs¬ beispiels näher erläutert werden. In der zugehörigen The invention will be explained in more detail with reference to an embodiment ¬ example. In the associated
Zeichnung zeigt Fig. 1 eine Darstellung des Verfahrensablaufs. Drawing shows Fig. 1 is an illustration of the procedure.
Nachfolgend werden allgemein einleitende Grundlagen der aspektorientierten Programmierung (AOP) erläutert. In the following, general introductory basics of aspect-oriented programming (AOP) are explained.
Ein Programmcode dient im Allgemeinen dazu, bestimmte A program code is generally intended to be specific
Systemfunktionalitäten zu realisieren. Daneben können auch zusätzliche Aufgaben des Programms wichtig sein, Implement system functionalities. In addition, additional tasks of the program may be important,
beispielsweise Logging-Ausgaben beim Erreichen For example, logging expenses when reaching
charakteristischer Punkte bei der Programmausführung. characteristic points in program execution.
Letzteres dient nicht in erster Linie der Ausführung der Grundfunktionalitäten des Programmcodes. Es kann als zusätzlicher Aspekt betrachtet werden. The latter does not serve primarily the execution of the basic functionalities of the program code. It can be considered as an additional aspect.
Mit der aspektorientierten Programmierung (AOP) können inhaltliche Belange in einem entwickelten Programm Aspect-oriented programming (AOP) can be used to develop content-related issues in a developed program
voneinander getrennt werden, beispielsweise kann die be separated from each other, for example, the
Grundfunktionalität des Programmes von den Log-Ausgaben getrennt werden. Wichtige Grundbegriffe im Zusammenhang mit der aspektorientierten Programmierung sind Joinpoints, Pointcut und Advice. Basic functionality of the program to be separated from the log outputs. Important basic terms in aspect-oriented programming are join points, point-cut and advice.
Als Joinpoint wird ein möglicher Ansatzpunkt für einen As a joinpoint is a possible starting point for a
Aspekt bezeichnet. Das könnte in der Programmiersprache Java beispielsweise jeder catch-Block sein, bei dem eine Log- Ausgabe erfolgen soll. Des weiteren können Joinpoints auch Variablenzugriffe oder Methodenaufrufe sein. Aspect designates. For example, in the Java programming language, this could be any catch block for which a log output should occur. Furthermore, joinpoints can also be variable accesses or method calls.
Ein Pointcut ist eine Menge von Joinpoints, an denen A pointcut is a set of join points where
aufgrund vordefinierter Regeln tatsächlich auch in den Code eingegriffen wird. Es ist eine Art Schablone, die für die Suche nach Joinpoints verwendet wird. due to predefined rules, the code is actually intervened. It's a kind of template used to search for joinpoints.
Bei Advices handelt es sich um den eigentlichen, Advices are the actual,
zusätzlichen Code der an einem Pointcut ausgeführt wird. Dieser Code kann vor, nach oder anstelle von Joinpoints ausgeführt werden. Nachfolgend wird an einem Beispiel das „Einweben" des additional code executed on a pointcut. This code can be executed before, after, or in place of joinpoints. The following is an example of the "weaving" of the
Metadatenmanagements in einen Programmablauf beschrieben. Metadata management described in a program flow.
Die Erfindung bedient sich dem Prinzip der AOP für die Messwertverarbeitung mit vereinfachtem Metadatenmanagement. Es wird davon ausgegangen, dass Programmcode vorhanden ist, mittels dessen Werte von Messungen verarbeitet werden, ohne jedoch Metadaten zu behandeln. The invention uses the principle of AOP for measured value processing with simplified metadata management. It assumes that there is code that processes values from measurements, but does not treat metadata.
Derartiger Programmcode kann beispielsweise wie nachfolgend im Listing 1 dargestellt aussehen: Beginn Listing 1 Such program code may look, for example, as shown below in Listing 1: Start Listing 1
1 double m_l ; 1 double m_l;
2 double m_2 ;  2 double m_2;
3 double m_3;  3 double m_3;
4 m_l = messung_l_durchführen () ;  4 m_l = measure_l_pass ();
5 m_2 = messung_2_durchführen () ;  5 m_2 = measure_2_perform ();
6 m_3 = messung_3_durchführen () ;  6 m_3 = measure_3_perform ();
7 verarbeite_messwert ( m_l, m_2, m_3) ;  7 processed_measured value (m_l, m_2, m_3);
8 double verarbeite_messwerte ( double mess_l, double mess_2, double mess_3) { 8 double process_measures (double mess_l, double mess_2, double mess_3) {
9 double result;  9 double result;
10 double puffer;  10 double buffers;
11 puffer = mess_l + mess_2;  11 buffer = mess_l + mess_2;
12 result = puffer / mess_3;  12 result = buffer / mess_3;
13 return result; }  13 return result; }
Ende Listing 1 End Listing 1
In dem dargestellten Programmcode werden Einheiten oder sonstige Metadaten in keiner Weise betrachtet. Der In the illustrated program code, units or other metadata are not considered in any way. Of the
Entwickler dieses speziellen Programmcodes setzt voraus, dass die Messwerte der Funktion in den korrekten Einheiten zur Verfügung gestellt werden. Beim Addieren müssen die Messwerte die gleiche Maßeinheit besitzen. Bei der Division der Messwerte ergibt sich eine neue Maßeinheit. Auch diese Tatsachen werden vom Entwickler dieses Programmcodes nicht explizit berücksichtigt. Der Nutzer der dargestellten Funktion muss wiederum wissen, in welcher Weise in der Developer of this special program code assumes that the readings of the function are provided in the correct units. When adding, the measured values must have the same unit of measure. The division of the measured values results in a new unit of measurement. These facts are not explicitly taken into account by the developer of this program code. The user of the illustrated Function in turn must know in what way in the
Funktion Umwandlungen der Einheiten stattfinden können. Function transformations of the units can take place.
Insbesondere muss er für korrekt übergebene Werte (mess_l, mess_2, mess_3) Sorge tragen. Auch die resultierende Einheit muss ihm für eine korrekte Behandlung der Messwerte bekannt sein. Fehler bei der Übergabe falscher Einheiten werden nicht erkannt oder berücksichtigt. In particular, he has to take care of correctly transferred values (mess_l, mess_2, mess_3). The resulting unit must also be known to him for a correct treatment of the measured values. Errors when transferring wrong units are not recognized or considered.
Am Beispiel des Programmcodes in Listing 1 werden die Using the example of the program code in Listing 1, the
Erfindung und die damit einhergehende Anwendung der AOP für transparentes Metadatenmanagment erläutert. Invention and the associated application of the AOP for transparent metadata management explained.
Zunächst wird einmalig im Programmcode bekannt gemacht, bei welchen Variablen es sich um Messwerte handelt, die auch Metadaten beinhalten. Im Beispiel wird diese Zuweisung oder Bekanntmachung durch einen Aufruf einer zusätzlichen First of all, it is made known in the program code which variables are measured values that also contain metadata. In the example, this assignment or notice will be called by an additional call
Funktion in den Zeilen 4, 5 und 6 durchgeführt. Function performed in lines 4, 5 and 6.
Es werden dort beispielsweise die folgenden Anweisungen eingefügt : For example, the following statements are inserted there:
4 m 1 = MetadataManager . setlnfo ( messung 1 durchführen () , 4 m 1 = MetadataManager. setlnfo (measure 1) (),
String ("m") ) ;  String ("m"));
5 m 2 = MetadataManager. setlnfo ( messung 2 durchführen () ,  5 m 2 = MetadataManager. setlnfo (measure 2) (),
String ("m") ) ;  String ("m"));
6 m 3 = MetadataManager. setlnfo ( messung _3_ durchführen () ,  6 m 3 = MetadataManager. setlnfo (measure _3_ perform (),
String ("s") ) ;  String ("s"));
Die Ergänzung bewirkt, dass die Variablen m_l, m_2 und m_3 in eine zentrale Registratur aufgenommen werden. Zugleich werden damit die genannten Variablen mit den Metadaten, im Beispiel sind das die Strings „m" und „s", verknüpft. Sie stehen für die Maßeinheiten Meter und Sekunde bei den aufgenommenen Messwerten. Ab diesem Punkt sind die Werte nun nicht mehr einheitenlos und somit durchlaufen Operationen auf diesen Variablen immer die Verarbeitungslogik für die angefügten Metadaten. Für die Anwendung des Metadatenmangements sind die The addition causes the variables m_l, m_2 and m_3 to be included in a central registry. At the same time, these variables are linked with the metadata, in the example these are the strings "m" and "s". They stand for the units of measurement meters and seconds in the recorded measured values. At this point, the values are no longer unitless, so operations on those variables always go through the processing logic for the attached metadata. For the application of metadata management are the
sogenannten Joinpoints erforderlich. Diese Joinpoints sind alle Punkte im Programmcode, an denen Operationen mit den registrierten Variablen durchgeführt werden. Im Beispiel existieren zwei Joinpoints in den Zeilen 11 und 12 bei der Addition und Division der Messwerte. An dieser Stelle muss die Einheit bei der Berechnung berücksichtigt werden. so-called joinpoints required. These joinpoints are all points in the program code where operations on the registered variables are performed. In the example, there are two join points in lines 11 and 12 when adding and dividing the measured values. At this point, the unit must be taken into account in the calculation.
Der Pointcut ist im Beispiel eine Menge bestehend aus zwei Elementen, den erwähnten Joinpoints in Zeile 11 und 12. Würden die Variablen m_l, m_2 oder m_3 weiteren Operationen unterzogen, ergäben sich mehr Joinpoints, womit auch die Pointcut-Menge größer wäre. The pointcut in the example is a set of two elements, the mentioned joinpoints in lines 11 and 12. If the variables m_l, m_2 or m_3 undergo further operations, the result would be more joinpoints, which would also increase the pointcut set.
Weiterhin gibt es Advices für die Behandlung des Furthermore, there are advices for the treatment of
Programmcodes an den Joinpoints. Die Advices für die Program codes at the joinpoints. The Advices for the
Behandlung der Messdaten im Beispiel beziehen sich auf alle in der Programmiersprache vorhandenen Grundrechen-, Treatment of the measurement data in the example refer to all existing in the programming language Grundrechen-,
Vergleichs- und Bitoperationen. Wenn an den Joinpoints derartige Operationen auftreten, werden Ergänzungen am Programmcode vorgenommen. Diese eigentlich elementaren Operationen werden dabei durch einen Funktionsaufruf in die Verarbeitungslogik ersetzt. In einer solchen externen Comparison and bit operations. If such operations occur at the joinpoints, additions to the program code are made. These actually elementary operations are replaced by a function call into the processing logic. In such an external
Funktion ist es nun möglich, die ersetzte elementare Function, it is now possible to replace the elementary ones
Operation unter Berücksichtigung der an die Variable (n) angeknüpften Metadaten durchzuführen. Im Fall der Addition wird der eigentlichen Operation eine Prüfung vorangestellt. Dabei werden die Metadaten der Variablen mess_l und mess_2 verglichen. Besitzen beide Variablen die gleichen Metadaten oder Maßeinheiten (hier beide „m") , dann kann die Addition ohne weitere Operation taking into account the metadata attached to the variable (s). In the case of addition, the actual operation is preceded by an examination. The metadata of the variables mess_l and mess_2 are compared. If both variables have the same metadata or units of measurement (here both "m"), then the addition can be done without further
Vorverarbeitung durchgeführt werden. Ansonsten kann in der externen Funktion entweder eine automatische Preprocessing be performed. Otherwise, in the external function either an automatic
Maßeinheitenkorrektur beispielsweise eine Umrechnung von „mm" in „m" oder das Generieren einer Warn- oder Correction of a unit, for example, a conversion from "mm" to "m" or the generation of a warning or
Fehlermeldung stattfinden. Analog dazu kann diese Funktion bei der Division aus dem Errechnen einer neuen Einheit bestehen, wenn sie zulässig ist. Im Beispiel würde die neue Einheit „m/s" errechnet. Alternativ kann die Verarbeitungslogik auch eine Warn- oder Fehlermeldung erzeugen, wenn die Division der Einheiten im Gültigkeitsbereich des Programms nicht zulässig ist. Error message take place. Likewise, this division function can consist of calculating a new unit if it is allowed. The example would calculate the new unit "m / s." Alternatively, the processing logic may also generate a warning or error message if the division of the units in the scope of the program is not allowed.
• Einweben der Advices zur Laufzeit: • Weaving the advice at runtime:
Eine Besonderheit der Erfindung besteht darin, die Advices erst kurz vor der Ausführung des Programmcodes in den A special feature of the invention is that Advices only shortly before the execution of the program code in the
Programmcode einzufügen. Damit wird nicht der ursprüngliche Quellcode modifiziert, sondern dessen Kompilat. Das Kompilat kann beispielsweise in der Programmiersprache Java der Java- Bytecode sein. Beim Laden des Bytecodes einer Klasse wird dadurch der Bytecode einer Analyse unterzogen. Es werden alle Joinpoints eines Pointcuts gesucht und durch die Insert program code. This does not modify the original source code, but its compilation. For example, the compilation may be the Java bytecode in the Java programming language. When loading the bytecode of a class, the bytecode is thereby subjected to an analysis. All joinpoints of a pointcuts are searched for and by the
Advices ergänzt. Advices added.
• - Ablauf für Einweben des Metadatenmanagement: • - process for weaving metadata management:
In der Figur 1 ist der verallgemeinerte Ablauf für das „Einweben" der Funktionalitäten des Metadatenmanagement dargestellt. Die grau markierten Bereiche sind die durch die Erfindung hinzugefügten Bestandteile. The generalized procedure for "weaving in" the metadata management functionalities is shown in Figure 1. The gray marked areas are the components added by the invention.
Ausgegangen wird von einem üblichen Vorgang der Softwareentwickelung, welcher den Programmcode 1 als Resultat hat. Dieser Programmcode 1 muss für das transparente The starting point is a usual process of software development, which has the program code 1 as a result. This program code 1 must be transparent
Metadatenmanagement geringfügig modifiziert werden. Slightly modified metadata management.
Es muss ein zusätzlicher Programmcodeteil 2 für das There must be an additional program code part 2 for the
Registrieren von Variable und Metadaten in der zentralen Registratur 3 hinzugefügt werden. In der zentralen Registering variables and metadata in the central registry 3 will be added. In the central
Registratur 3 ist dann die Variable mit den zugehörigen Metadaten erfasst. Der Programmcode wird anschließend in der üblichen Weise kompiliert und damit in ausführbaren Bytecode (Binärcode) überführt und beispielsweise in einem Festspeicher einer Verarbeitungseinheit gespeichert. Damit liegt der kompilierte Code 4 für die spätere Ausführung im Festspeicher bereit. Registry 3 is then the variable with the associated metadata recorded. The program code is then compiled in the usual way and thus converted into executable bytecode (binary code) and, for example, in one Fixed storage of a processing unit stored. This is the compiled code 4 ready for later execution in the fixed memory.
Kurz vor der tatsächlichen Ausführung des Bytecode oder Binärcode 4 wird er in den Hauptspeicher der Shortly before the actual execution of the bytecode or binary code 4, it is put into main memory
Verarbeitungseinheit geladen. Hier beginnt die Processing unit loaded. Here begins the
erfindungsgemäße Modifikation des Codes 4, die zum Inventive modification of the code 4, the
transparenten Metadatenmanagement führt. transparent metadata management leads.
Es werden zunächst alle Joinpoints 8 im kompilierten Code 4 identifiziert. Joinpoints 8 ergeben sich aus allen First, all joinpoints 8 in the compiled code 4 are identified. Joinpoints 8 result from all
Operationen von Variablen, die in der zentralen Operations of variables in the central
Registratur 3 zuvor verzeichnet wurden. Das Ergebnis 5 dieses ersten Schrittes des Verfahrens ist der Bytecode (Binärcode) 4, mit den als Joinpoints 8 bekannten Punkten. An diesen Punkten 8 werden Advices eingefügt. Sie werden den Joinpoints 8 entweder im Programmablauf vorangestellt oder nachgestellt. In einer anderen Variante können die Advices die Joinpoints 8 und den betreffenden Code auch vollständig ersetzen . Das Ergebnis dieser Verfahrensschritte ist ein Registry 3 were previously recorded. The result 5 of this first step of the method is the byte code (binary code) 4, with the points known as the join points 8. At these points 8 advices are inserted. They are either prefixed to the joinpoints 8 in the program sequence or adjusted. In another variant, the advices can also completely replace the join points 8 and the relevant code. The result of these process steps is a
erfindungsgemäß modifizierter Code 6, in dem Metadaten automatisch mitgeführt werden. Der Softwareentwickler, der den ursprünglichen Programmcode 1 erstellt hat, bekommt von der Modifikation keine Kenntnis. Er muss lediglich die zuerst genannte Ergänzung für die initiale Registrierung ausgewählter Variablen und deren Metadaten vornehmen. Code 6 modified according to the invention, in which metadata is automatically carried. The software developer who created the original program code 1 will not be aware of the modification. He only has to make the first mentioned addition for the initial registration of selected variables and their metadata.
Bei der Ausführung greifen dann die Advices bzw. auch die Verarbeitungslogik 7 auf die zentrale Registratur 3 zu. Von dort werden die Metadaten zu ausgewählten Variablen geholt, um sie analog zum ursprünglich implementierten Programmcode 1 zu verarbeiten. During execution, the advices or the processing logic 7 then access the central registry 3. From there, the metadata are fetched to selected variables to process them analogously to the originally implemented program code 1.
Elementaroperationen als Joinpoints Als Joinpoints 8 können alle mathematischen Elementary operations as joinpoints As joinpoints 8, all mathematical
Elementaroperationen, die auf Messwerte mit Metadaten anwendbar sind, angesehen werden. Das sind in der Regel alle Grundrechenoperationen, Vergleichsoperationen und Elementary operations that are applicable to metadata metrics. These are usually all basic arithmetic operations, comparison operations and
Bitoperationen. Bit operations.
• Mathematische Funktionen als Joinpoints • Mathematical functions as join points
Zusätzlich können spezielle mathematische Funktionen als Joinpoints 8 definiert werden. Diese liegen als In addition, special mathematical functions can be defined as join points 8. These are as
Funktionsaufruf vor und werden als solche erkannt und ersetzt. Das sind beispielsweise Wurzelfunktion, Function call before and are recognized as such and replaced. These are, for example, root function,
Logarithmische Funktionen, Trigonometrische Funktionen.  Logarithmic functions, trigonometric functions.
• Metadatendienste • metadata services
Neben dem Einheitenmanagement können auch Dienste, die auf Metadaten basieren, mit Hilfe der Erfindung transparent entwickelt werden. Ein derartiger Dienst ist beispielsweise eine Fehlerrechnung bei der Messwertverarbeitung. In addition to unit management, services based on metadata can also be transparently developed using the invention. Such a service is, for example, an error calculation during measured value processing.
Ein weiterer Dienst könnte erkennen, wenn ein Wert das Another service could detect if a value is that
Metadatenmanagement kurz „verlassen" hat. Dies kann Metadata management has just "left." This can
beispielsweise ein nicht überwachter Funktionsaufruf sein (z.B. durch Aufruf einer nativen Funktion aus Java heraus) . Nachdem ein solcher Funktionsaufruf stattgefunden hat, kann nicht sicher nachvollzogen werden, was mit dem Wert for example, an unmonitored function call (e.g., by calling a native function out of Java). After such a function call has taken place, can not be understood with certainty, what with the value
geschehen ist. In diesem Fall wird der Variable ein has happened. In this case, the variable becomes one
Metadatum hinzugefügt, welches diese Variable als potentiell fehlerbehaftet markiert. Alle Ergebnisse der zwischen dieser und anderen Variablen durchgeführten Operationen werden mittels dieses Dienstes ebenfalls als potentiell Added a metadata that marks this variable as potentially buggy. All results of the operations performed between this and other variables will also be considered potential by means of this service
fehlerbehaftet markiert. marked with errors.
Weitere mögliche Dienste sind: - Rechnen nur mit zeitlichen Bedingungen, beispielsweise Verrechnen nur von ältestem oder jüngstem Messwert oder Messwerten innerhalb bestimmter Zeitfenster Other possible services are: - Calculating only with temporal conditions, for example, offsetting only from the oldest or the latest measured value or Measured values within certain time windows
Beachten einer Orientierungsrichtung von Messwerten, beispielsweise werden nur Messwerte mit gleicher Observing an orientation direction of measured values, for example, only measured values with the same
Orientierungsrichtung Verrechnet  Orientation direction Calculated
Verrechnen von Rechten für den Zugriff auf Daten, so dass bestimmte Daten nur eingeschränkt sichtbar bzw. statistisch auswertbar sind Offsetting rights for access to data, so that certain data are only partially visible or statistically evaluable
• Ein-/Ausschalten des Metadatenmanagement • Enable / disable metadata management
Da Advices erst kurz vor der Ausführung des kompilierten Programmcodes 4 an den Joinpoints 8 eingefügt werden, kann das Metadatenmanagement zur Laufzeit ein- bzw. ausgeschaltet werden. Dadurch kann beispielsweise nur für Tests oder bei metadatenkritischen Operationen das Metadatenmanagement eingeschaltet werden. Das kann die Leistungsfähigkeit des gesamten Softwaresystems im Wesentlichen unbeeinflusst lassen . Since advices are inserted at the join points 8 only shortly before the execution of the compiled program code 4, the metadata management can be switched on or off at runtime. As a result, for example, metadata management can only be activated for tests or for metadata-critical operations. This can leave the performance of the entire software system essentially unaffected.
Beispielsweise für die Messung von Geschwindigkeiten werden Messgeräte eingesetzt. Diese Messgeräte liefern als Measuring devices are used, for example, for measuring speeds. These meters deliver as
Messdaten die Information über die aktuell zurückgelegte Wegstrecke seit einem bestimmten Zeitpunkt. Für genaue Measurement data the information about the current distance covered since a certain time. For exact
Ergebnisberechnung kann auf verschiedene Quellen für die Wegstreckenmessung zurückgegriffen werden, z. B. GPS und Fahrzeugtachometer. Zugleich wird eine Zeit in einer Result calculation can be used on different sources for the distance measurement, z. B. GPS and vehicle tachometer. At the same time a time is in one
entsprechenden Einheit gemessen. corresponding unit.
Die interessierende Geschwindigkeit muss aus einer The interest rate must be from a
Zusammenführung der Wegstrecken, aus GPS und Merging the routes, from GPS and
Fahrzeugtachometer, zentral errechnet werden. Dabei ist die Geschwindigkeit unter Beachtung der Einheiten zu berechnen, weil andernfalls eine fehlerhafte Geschwindigkeit errechnet wird .  Vehicle tachometer, to be calculated centrally. The speed must be calculated taking into account the units, otherwise a faulty speed will be calculated.
Für die eigentliche Berechnung wird ein Algorithmus programmiersprachlich formuliert. Dieser kann zunächst ohne Beachtung der richtigen Einheiten entwickelt werden. An der Stelle der Algorithmusentwicklung muss die Einheit der Messwerte aus den Messgeräten noch nicht bekannt sein. Anschließend werden die Messgeräte an den Algorithmus zur Berechnung der Geschwindigkeit angebunden. Das erfolgt über ein programmiersprachlich formuliertes Modul, in welchem die für die Geschwindigkeitsberechnung wichtigen Variablen als metadatenbehaftet gekennzeichnet werden. Es wird im For the actual calculation becomes an algorithm formulated in programming language. This can initially be developed without regard to the correct units. At the point of algorithm development, the unit of measured values from the measuring devices need not be known yet. Subsequently, the measuring devices are connected to the algorithm for calculating the speed. This is done by means of a programming-language module in which the variables important for the speed calculation are identified as metadata-afflicted. It is in the
Programmcode je nach Messgerätetyp und dementsprechend ausgegebener Messgrößeneinheit bekannt gemacht, dass Program code made known depending on the meter type and accordingly output unit of measured variable that
Metadaten beachtet werden müssen und um welche es sich handelt. Im Beispiel sind das also die Messgrößen Meter „m" und Kilometer „km" für die Messung der Wegstrecke. Außerdem wird die Einheit für die Messung der Zeit und deren Metadata must be considered and which it is. In the example, these are the measured quantities meter "m" and kilometers "km" for the measurement of the distance. In addition, the unit for the measurement of time and their
entsprechende Variable bekannt gemacht. Der Rest des programmiersprachlich formulierten Algorithmus kann corresponding variable made known. The rest of the programming language formulated algorithm can
unverändert bleiben. remain unchanged.
Anschließend wird das der Erfindung zugrundeliegende Subsequently, the invention of the underlying
Verfahren über die Identifikation der Joinpoints bis hin zum Einfügen der Advices ausgeführt. Das Resultat ist Procedures over the identification of the Joinpoints up to the insertion of the Advices executed. The result is
modifizierter Bytecode, der für die Ausführung unter modified bytecode required for execution under
Beachtung der Metadaten vorbereitet ist. Attention to the metadata is prepared.
Die eintreffenden Messwerte können damit hinsichtlich der Einheiten korrekt verarbeitet werden und bringen The incoming measured values can thus be correctly processed and delivered with regard to the units
einheitenbehaftete Ergebnisse, z. B. „m/s" oder „km/h" hervor . unit-related results, e.g. "M / s" or "km / h".
Wenn der Algorithmus zur Verarbeitung der Messwerte If the algorithm for processing the measured values
korrigiert werden muss, z. B. um ihn um eine must be corrected, z. B. around him
Mittelwertbildung zu ergänzen, muss lediglich der To supplement averaging, only the
programmiersprachlich formulierte Algorithmus ohne Beachtung der Einheiten geändert werden. Nach dem erneuten Durchlaufen des Verfahrens wird auch der neue Algorithmus die Ausgangswerte korrekt verarbeiten und hinsichtlich der Einheiten richtige Ergebnisse hervorbringen . programming language formulated algorithm without regard to the units to be changed. After going through the process again, the new algorithm becomes the Correctly process output values and produce correct results in terms of units.
Verfahren zur Datenerfassung und -Verarbeitung unter Berücksichtigung von Metadaten Method for data acquisition and processing taking into account metadata
Bezugszeichenliste Programmcode List of Reference Program Code
zusätzlicher Programmcodeteil  additional program code part
zentralen Registratur  central registry
kompilierter Code  compiled code
Ergebnis des ersten Schrittes  Result of the first step
modifizierter Code  modified code
Verarbeitungslogik  processing logic
Joinpoints  Joinpoints

Claims

Patentansprüche claims
Verfahren zur Datenerfassung und -Verarbeitung unter Berücksichtigung von Metadaten, welche Method for data acquisition and processing in consideration of metadata, which
Zusatzinformationen zu den eigentlichen Daten Additional information about the actual data
beinhalten, bei welchem ein Programmanweisungen include in which a program instructions
beinhaltender Programmcode (1) vor seiner Ausführung in einer Verarbeitungseinheit in einen kompilierten including program code (1) before being executed in a processing unit into a compiled one
Code (4) umgewandelt wird, dadurch Code (4) is converted by
gekennzeichnet, dass in einem ersten characterized in that in a first
Verfahrensschritt festgelegt wird, welchen im Method step is set, which in the
Programmcode (1) enthaltenen Variablen Metadaten zugeordnet sind, dass in einem zweiten Verfahrensschritt die Stellen im kompilierten Code (4) ermittelt werden, an welchen Operationen mit den festgelegten Variablen durchgeführt werden und dass diesen Stellen mittels eines Program variables (1) are associated with metadata that in a second process step, the locations in the compiled code (4) are determined on which operations are performed with the specified variables and that these bodies by means of a
Joinpoints (8) gekennzeichnet werden, dass in einem dritten Verfahrensschritt mittels einer Funktion zur Behandlung des kompilierten Codes (4) (Advice) an den durch die Joinpoints (8) Joinpoints (8) are characterized in that, in a third method step, by means of a function for processing the compiled code (4) (Advice) to the one provided by the join points (8).
gekennzeichneten Stellen der Code (4) derart marked positions of the code (4) in such a way
modifiziert wird, dass eine Ausführung der is modified that an execution of
Programmanweisungen in Abhängigkeit der Metadaten erfolgt . Program instructions depending on the metadata is done.
2. Verfahren nach Anspruch 1, dadurch 2. The method according to claim 1, characterized
gekennzeichnet, dass die Modifizierung des Codes (4) vor, nach oder genau an der durch den  characterized in that the modification of the code (4) before, after or exactly at the by the
Joinpoint (8) gekennzeichneten Stelle im kompilierten Code (4) erfolgt.  Joinpoint (8) marked point in the compiled code (4) takes place.
3. Verfahren nach Anspruch 1 oder 2, dadurch 3. The method according to claim 1 or 2, characterized
gekennzeichnet, dass die Modifizierung des Codes (4) mittels einer Sprunganweisung, einem  characterized in that the modification of the code (4) by means of a jump instruction, a
Ersetzten von Codeteilen oder einem Hinzufügen von Codeteilen erfolgt.  Replacement of code parts or addition of code parts takes place.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Modifizierung des Codes (4) während der Laufzeit des Programmes zu- und abgeschaltet werden kann. 4. The method according to any one of claims 1 to 3, characterized in that the modification of the code (4) during the term of the program can be switched on and off.
PCT/EP2010/070626 2009-12-23 2010-12-23 Method for detecting and processing data while considering metadata WO2011076913A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102009060585.1 2009-12-23
DE102009060585 2009-12-23

Publications (1)

Publication Number Publication Date
WO2011076913A1 true WO2011076913A1 (en) 2011-06-30

Family

ID=43846425

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2010/070626 WO2011076913A1 (en) 2009-12-23 2010-12-23 Method for detecting and processing data while considering metadata

Country Status (1)

Country Link
WO (1) WO2011076913A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093581A1 (en) * 2000-10-26 2004-05-13 Morten Nielsen System and method supporting configurable object definitions
US20070055965A1 (en) * 2005-05-25 2007-03-08 Colyer Adrian M Generating An Application Software Library
US20070169065A1 (en) * 2005-10-31 2007-07-19 Janson Philippe A Computer program with metadata management function
US20080301635A1 (en) * 2007-05-31 2008-12-04 Kabir Khan Per-instance and per-class aspects
US20090249021A1 (en) * 2008-03-26 2009-10-01 Morris Robert P Method And Systems For Invoking An Advice Operation Associated With A Joinpoint

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093581A1 (en) * 2000-10-26 2004-05-13 Morten Nielsen System and method supporting configurable object definitions
US20070055965A1 (en) * 2005-05-25 2007-03-08 Colyer Adrian M Generating An Application Software Library
US20070169065A1 (en) * 2005-10-31 2007-07-19 Janson Philippe A Computer program with metadata management function
US20080301635A1 (en) * 2007-05-31 2008-12-04 Kabir Khan Per-instance and per-class aspects
US20090249021A1 (en) * 2008-03-26 2009-10-01 Morris Robert P Method And Systems For Invoking An Advice Operation Associated With A Joinpoint

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RAMNIVAS LADDAD: "AOP@Work: AOP and metadata: A perfect match, Part 1", 8 March 2005 (2005-03-08), XP002633648, Retrieved from the Internet <URL:http://www.ibm.com/developerworks/java/library/j-aopwork3/> [retrieved on 20110415] *
RAMNIVAS LADDAD: "AOP@Work: AOP and metadata: A perfect match, Part 2", 12 April 2005 (2005-04-12), XP002633649, Retrieved from the Internet <URL:http://www.ibm.com/developerworks/java/library/j-aopwork4/> [retrieved on 20110415] *

Similar Documents

Publication Publication Date Title
DE102010037457B4 (en) A method of data processing for providing a value for determining whether an error has occurred during execution of a program, methods of data processing for determining whether an error has occurred during execution of a program, method for generating program code, data processing arrangements for providing a program Value for determining whether an error has occurred during execution of a program, data processing arrangements for determining whether an error has occurred during execution of a program, and data processing arrangements for generating program code
DE102006029138A1 (en) Memory leakages detection method for use in computer program product, involves recording information of occurred allocation in allocation list during program run with each allocation of memory area
DE102008012337A1 (en) Method for tracking of program code, involves implementing in processor and signature value is produced, which indicates sequence of implemented instructions
EP1723513B1 (en) Method for configuring a computer program
DE102022214443A1 (en) METHODS, SYSTEMS, AND COMPUTER READABLE MEDIA FOR ADAPTING DATA PLANE PIPELINE PROCESSING USING BERKELEY PACKET FILTER (BPF) HOOK ENTRY POINTS
DE60002455T2 (en) METHOD AND DEVICE FOR AUTOMATIC SOFTWARE TESTING
EP3232327B1 (en) Method for testing a control program of a control unit in a simulation environment on a computer
DE10041072A1 (en) Automatic generation of program code involves forming symbol for component with interfaces in graphical editor, offering selection, generating code combining components
EP1384152B1 (en) Method for determining and recording system information and function in distributed parallel component based software systems
WO2011076913A1 (en) Method for detecting and processing data while considering metadata
DE102019105418B3 (en) Method for generating a representation of program logic, decompiling device, recompiling system and computer program products
DE4441231C1 (en) Standard computer installation with programmable electronic circuit
EP1721248B1 (en) Method and data processing device for updating computer programs by data transmission
DE102009041098A1 (en) A method of identifying a computer program section contained in a computer storage system
DE60213786T2 (en) SYSTEM AND METHOD FOR THE AUTOMATIC DETECTION OF STATEMENTS IN A JAVA COMPATIBILITY TEST ENVIRONMENT
DE19910535A1 (en) Process for the automatic recovery of engineering data from plants
DE102018104752A1 (en) Method for executing and translating a computer program in a computer network, in particular for controlling a microscope
DE102008060970B4 (en) Device for generating a marked reference data stream
EP2634700A1 (en) Method and development environment for monitoring a running program
DE202012013449U1 (en) System for inline insertion of script dependencies
DE102020213809A1 (en) Method for operating a control device when testing software in the control device and method for operating a test computer when testing software in a control device
Pfister Skilled LLVM
EP0996888B1 (en) Method and data processing system for testing an assembler program for transferability
EP0708941A1 (en) Process for testing an object-oriented programme
EP1745375A1 (en) Method for determining deadlocks in secondary processes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10801584

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10801584

Country of ref document: EP

Kind code of ref document: A1