首页    期刊浏览 2024年11月29日 星期五
登录注册

文章基本信息

  • 标题:DB4Objects based buffering application for use in software monitoring systems.
  • 作者:Grigorescu, Costin-Marius ; Moraru, Sorin-Aurel ; Kristaly, Dominic Mircea
  • 期刊名称:Annals of DAAAM & Proceedings
  • 印刷版ISSN:1726-9679
  • 出版年度:2011
  • 期号:January
  • 语种:English
  • 出版社:DAAAM International Vienna
  • 摘要:Key words: buffering, object databases, monitoring system
  • 关键词:Internet software;Software

DB4Objects based buffering application for use in software monitoring systems.


Grigorescu, Costin-Marius ; Moraru, Sorin-Aurel ; Kristaly, Dominic Mircea 等


Abstract: Buffering inside a distributed monitoring software system that runs inside a LAN and stores readings on a central component is a very important issue. This paper presents the structure of a buffering application that is based on a DB4Objeets object database. The application is designed to operate inside a distributed monitoring software system between the data acquisition and server components. Its main purpose is to offer persistent storage for the readings in the case of communication problems between the two components. When the communication problems are fixed, the application resumes sending real time readings and starts transferring the buffer's contents to the server. For optimal performance, the buffer is divided in partitions that contain the readings associated to one hour.

Key words: buffering, object databases, monitoring system

1. INTRODUCTION

In general, distributed monitoring software systems have a data acquisition component, a data storage component and a data display component (Wikipedia, 2010).

This paper focuses on the communication between the data acquisition and data storage components. The components of a distributed monitoring software system run on different computers and send data between them using, in most cases, the Ethernet interface.

The data flow between the data acquisition component and data storage component consists of readings made by the first one that need to be stored inside databases or other storage systems by the second one. If this flow gets interrupted, then the readings are lost and the monitored information will contain inconsistences. The flow can be interrupted by various reasons like software and hardware problems, electrical problems, LAN problems, etc.

In the case of software, hardware or electrical problems on the server side and LAN problems, a buffering application running on the same computer as the data acquisition component represents a solution for temporarily storing the readings while the server side or LAN problems are fixed (Grigorescu et al., 2010).

This paper presents, in its following sections, a buffering application concept based on a DB4Objects object database. The following sections present the concept of object databases with advantages and disadvantages and a speed test performed on DB4Objects and the concept of the buffering application with work-flow diagrams for the main actions performed by it.

2. OBJECT DATABASES

An object database is represented by a database management system in which the data is stored using objects similar to the ones used in object oriented programming.

The decision to use an object oriented database system was influenced by the following main aspects: integrability (the need to be able to integrate the buffering application with almost no changes to the existing monitoring system), configurability and easy installation (the need to develop an application that needs no configuration or specific installation for the buffer storage) and easy maintenance (the need to be able to perform maintenance tasks easily) (Wikipedia, 201l).

Choosing the DB4Objects database solution resolved most of the above aspects such as:

* Configurability and instalation: DB4Objects does not require an installation procedure. It comes as a JAR archive for Java or a DLL library for .Net. After referencing one of these libraries inside a project, the users can benefit from all the features provided by DB4Objects.

* Maintenance: The DB4Objects databases are stored in single files which makes any backup procedure very easy to perform.

After selecting the object database type, the next step was to test its performance by running queries on different database configurations. These configurations used different partitioning techniques such as daily partitions and hourly partitions.

Daily partitioning consists of one database for each day and hourly partitioning consists of one database for each hour of a day. For example, for the month of March a daily partitioning system will contain 31 databases and an hourly partitioning system will contain 744 databases (31 days * 24 hours per day).

An application was developed to generate readings that were stored in DB4Objects databases with daily and hourly partitions. This application generated readings for 8 months (January-August) with a 1 second interval between each reading (3600 readings per hour, 86400 readings per day). For daily partitioning the application generated a total of 243 databases and for hourly partitioning it generated a total of 5832 databases (Versant Corporation, 2011).

The performance test consists of running select queries for different periods of time and measuring the time needed to get the results. These periods of time are: 15 minutes, 30 minutes, 1 hour and 1 day.

The average time needed by DB4Objects to return the objects is presented in Tab. 1. This time shows that, for a small number of readings, the hourly partitioning system is 4 times faster than the daily one. Considering this result, the hourly partitioning system was selected.

[FIGURE 1 OMITTED]

3. BUFFERING APPLICATION CONCEPT

Fig. 1 presents the workflow of the proposed concept: the application receives readings from the data acquisition component and sends them either to the data storage component or to the DB4Objects buffering system.

Because the buffering application is located between the data acquisition and storage components it needs to communicate with both of them. This communication is made using sockets: an input socket which is listened for incoming data and an output socket (on the server side) which is periodically checked by a thread (Mahmoud, 1996). If the output connection is alive, then all readings received from the data acquisition component are sent directly to the data storage component.

If the connection is not alive, then the application enters the buffering operation mode presented in Fig. 2.

In this operating mode, the application follows the following steps:

* Gets the current date in order to check if a folder named YYYY_MM_DD already exists. In this folder all hour partitions for the specified date are kept. If the folder does not exist, then the application creates it.

* Opens a connection to a DB4Objects database named buffer_HH.yap. If the database does not exist, then DB4Objects will automatically create it.

* Creates a ReadingBean object in which it will add the following information: current date and time, reading object received from the data acquisition component and a unique identifier.

* Stores the ReadingBean object inside the DB4Objects database and closes the connection with it.

The reading object can have any structure as long as it can be a child of the Object class from Java.

[FIGURE 2 OMITTED]

[FIGURE 3 OMITTED]

This solves the integrability aspect mentioned before because the buffering application does not need to know the structure of the reading objects that are sent from the data acquisition component to the data storage one.

Fig. 3 presents the post buffering operation mode. The application enters in this mode after detecting that the connection with the data storage component has been reestablished.

The steps of this operating mode are:

* Send a real time reading object to the server.

* Get the last 10 ReadingBean objects from the buffer and send their reading objects to the server. If the objects were successfully sent, then delete the ReadingBeans from the buffer.

* If the partition is empty, then delete the partition.

4. CONCLUSION

This paper tries to propose a concept for a buffering application based on an object database system provided by Versant: DB4Objects. The role inside a monitoring system of this buffering application is to prevent monitored data loss in the case of a communication failure between the component that makes the data acquisition and the component that stores and manages it.

5. ACKNOWLEDGEMENTS

This paper is supported by the Sectorial Operational Programme Human Resources Development (SOP HRD), financed from the European Social Fund and by the Romanian Government under the contract number POSDRU/88/1.5/S/59321.

6. REFERENCES

Grigorescu, C. M.; Moraru, S. A.; Neukart, F. & Badea, M. (2010). Buffering application for an industrial monitoring software system, Proceedings of the 12th International Conference on Optimization of Electrical and Electronic Equipment, OPTIM 2010, 20-22 Maz 2010, Brasov, Romania, 971-1-4244-7020-4/10, pp. 780-780

Mahmoud, Q. H. (1996). Sockets programming in Java: A tutorial, JavaWorld.com

DB4Objects 8.0 Java Reference Guide (2011). Versant Corporation

*** (2011) http://en.wikipedia.org/wiki/Object_database--Wikipedia, Accessed on: 2011-07-20

*** (2010) http://en.wikipedia.org/wiki/Distributed_computing --Wikipedia, Accessed on: 2011-07-18
Tab. 1. Performance tests results

Partition
Type T1 (ms) T2 (ms) T3 (ms) Avg (ms)

Time to et the readings or 15 minutes

Daily 3578 3328 3547 3484.3
Hourly 891 984 844 906.3

Time to et readings. or 30 minutes

Daily 3469 3390 4047 3635.3
Hourly 859 891 922 890.6

Time to et readings, or 1 hour

Daily 3500 4250 3625 3791.6
Hourly 875 859 1031 921.6

Time to et readin s or 1 day

Daily 3328 4141 3812 3760.3
Hourly 6172 5547 5125 5614.6
联系我们|关于我们|网站声明
国家哲学社会科学文献中心版权所有