A Vital Sign Analysis System Based on Algorithm Block Broker for Interoperability between Algorithm Development Tools

: With the recent development of artiﬁcial intelligence and data mining technology, various and intelligent vital sign analysis technologies have been developed. Vital sign analysis algorithms and technologies are primarily developed using MATLAB and open source technologies, such as Python and R. The analysis algorithms developed with such programming languages can only be employed and run in their own respective development environments and, hence, are unfortunately not considered as platform independent. In that respect, the interoperability between development tools is needed to ensure efﬁciency in terms of development time and efforts and reusability between analysis technologies and algorithms developed in different languages. This paper presents the development of a vital sign analysis system that ensures interoperability, which leads to one common environment connecting different development platforms. To maintain the interoperability between MATLAB and R programming, we designed and implemented the Algorithm Block Broker (AB Broker). AB Broker is composed of AB Adapter and AB Broker. Here, the AB Broker uses AB Adapter to request execution of analysis algorithms developed in different languages, such as MATLAB, R, and Python. It also searches and runs the algorithm, helping implement the requested analysis technique. The AB Broker-based vital sign analysis system enables the integrated management of analysis and data mining technologies developed in different languages. From a developer’s point of view, therefore, it is convenient and efﬁcient to develop techniques using existing different programming technologies. Author Contributions: Conceptualization, M.-I.J. and H.-C.K.; methodology, H.-C.K.; software, M.-I.J.; validation, M.-I.J. and H.-C.K.; formal analysis, H.-C.K.; investigation, M.-I.J.; resources, M.-I.J.; data curation, M.-I.J.; writing—original draft preparation, M.-I.J.; writing—review and editing, H.-C.K.; visualization, M.-I.J.; supervision, H.-C.K.; project administration, H.-C.K.; funding


Introduction
The efficient handling and use of the considerable information and data currently available is recognized as an issue directly linked to the competitiveness of the industry in most fields of the Fourth Industrial Revolution [1]. Most industries take significant effort to handle the information and data overflow more efficiently and productively; the issue is directly related to the survival of the company in terms of business activities. Therefore, the importance of artificial intelligence technology to handle and analyze extensive information is increasing [2,3].
The application of artificial intelligence is also expanding in the medical sector; it has evolved from the mere creation of new information and knowledge through the use of data well, and has become more focused on developing and evaluating services [4]. In particular, in the field of medical and healthcare, services can be received anytime, anywhere other than in hospitals, unlike in the past, with the advent of wearable devices capable of measuring vital signs in daily life. Therefore, healthcare, which manages the health conditions of individuals, has shifted from being "disease treatment-oriented" to "prevention and management-oriented" [5,6].
Vital signs data have been increasing exponentially recently due to wearable devices capable of measuring various vital signs [7]. The increased information on vital signs has the characteristics of big data, and various studies are being conducted to identify methods of disease prevention, management, diagnosis, and treatment using vital signs that have been converted to big data [8][9][10].
Vital sign analysis technology is important to provide healthcare services because of the development of artificial intelligence technology. Various artificial intelligence and data analysis technologies are distributed in an open source format using programming language with open source features, such as Python and R Programming [11,12]. Numerous vital sign analysis algorithm technologies are being developed because of the advancement of artificial intelligence technology.
In recent times, vital sign analysis algorithms have been developed using development tools, such as MATLAB, Python, and R Programming. These development tools are used, either by utilizing libraries or by being customized. However, the developed algorithms cannot be used in other programming languages because they are dependent on the programming language. Therefore, various studies have been conducted to obtain interoperability between different programming languages [13]. In particular, studies on interoperability between systems developed in different languages in a distributed environment have been conducted progressively [14]. However, studies have not been conducted on the interoperability between programming languages to develop artificial intelligence, which is important in the era of the Fourth Industrial Revolution. Therefore, interoperability studies are required to secure reusability between algorithms developed in different languages.
The algorithm block broker (AB Broker) was designed to secure interoperability between different languages; a vital sign analysis system, applying this AB Broker was developed in this paper. AB Broker calls and executes different algorithm functions between algorithm programming languages, such as MATLAB, Python, and R Programming. It has an algorithm block adapter (AB Adapter) and AB Broker. The AB Adapter designates the function to be called. The Broker will then obtain the execution result value by executing the function called from the AB Adapter. For example, R Programming calls a function developed in MATLAB through the AB Adapter. The Broker then executes the function developed in MATLAB and sends the result value to R Programming. Similarly, the algorithm source file itself developed in MATLAB and R Programming needs to be executed in the system to implement the vital sign analysis technology using AB Broker. Therefore, the functions are called using the Broker developed in Java to build an integrated environment.
The languages used for algorithm development have their own characteristics. Python has strengths in artificial intelligence by utilizing many open-source libraries. R programming has strengths in text mining from the beginning. In addition, MATLAB features an integrated development language, such as artificial intelligence and signal processing. However, MATLAB has traditionally been strong in signal processing and provides various libraries. It will be a cornerstone for developing better algorithms by taking advantage of the strengths of these development languages. Thus, the AB Broker of this paper has an operator that executes a function by passing arguments to execute a function and returns a result value. Such an operator automatically executes the function through the Java interface when the developer requests function execution through the AB Adapter. These operators have the advantage that developers can easily integrate functions or libraries developed in various languages. In addition, there is no interference between the development languages because the development languages utilize the results obtained by independently executing them. With the development of an interoperability-based system, research and development focused on simple vital sign analysis algorithms will shift to a high-level, service-oriented development that easily utilizes various algorithm sources.

Related Studies
Data analysis tools, such as Python, MATLAB, R programming, and application development tools, such as C, C++, C#, and Java are being studied for interoperability with Appl. Sci. 2021, 11,1913 3 of 12 development languages. Representatively, there is Common Object Broker Architecture (CORBA) [15].
CORBA is an interface protocol that allows software components written in different languages and running on different platforms to interact with each other. The method calling method between different languages uses Object Request Broker (ORB) [16]. In the early days, various studies were conducted by using ORB to call methods between Java and C++ languages. With the development of distributed computing with the improvement of high-performance PCs and networks that provide high bandwidth, research has been conducted to secure interoperability using CORBA in a distributed environment [17].
CORBA can easily integrate between different languages by calling methods. However, the calling method is a calling technique and combining methods developed by each language. In this way, different languages cannot connect to each other and execute methods of different languages. For example, while developing a method in Java, it is necessary in C++ language. You cannot use a method in Java.
A technology that allows different languages to connect and directly execute functions and commands of different languages has been studied. Representatively, there are rJava and Matlabcontrol. rJava can execute R programming functions and commands by interlocking with R programming in Java [18]. These studies are being conducted to secure interoperability between java and R Programming. Interoperability research using rJava uses Java's graphical user interface (GUI) to overcome sophisticated graphic work, which is a drawback of R programming [19]. Representatively, this study graphically shows data analyzed using R Programming using JavaFX [20].
Matlabcontrol can execute MATLAB source code by connecting to MATLAB engine in Java. Representatively, research has been conducted on remote and virtual laboratories that remotely connect to the server where MATLAB is installed and execute MATLAB commands using Java and MATLAB interface, Matlabcontrol.
Research on the linkage between application development tools and data analysis tools has been conducted. However, until now, research on applying analysis tools developed in different languages is insufficient. Hence, research is needed to execute the desired algorithm by applying the source code developed with various analysis tools to the system.

Vital Sign Data Mining Techniques
Data mining is technology to explore and discover knowledge by modeling and searching for relations, patterns, and rules existing in the (big) data [21]. Study on algorithms to extract and mine useful and meaningful information from accumulated data are important, and it has been conducted in various areas, such as finance, medicine, education, and so on. In particular, data mining research for personal healthcare services becomes more and more important and actively carried out [22]. For example, IBM's Watson began to diagnose cancers at human level with artificial intelligence.
Vital signs that we tackle in the paper are largely divided into two types. The first type is the data by which its value is meaningful, e.g., blood pressure and body temperature, and the second one is time-series data to measure continuously over time, such as electrocardiogram (ECG), acceleration, respiration, and so on, which usually have waveforms. The second type is much more complex to analyze, requiring signal preprocessing. For example, ECG is the signal combined with five waves of P, Q, R, S, and T. One can measure useful information including exercise intensity, stress, and heart rates, and the like from ECG data. In particular, heart rate variability (HRV) extracted from ECG is also a valuable vital sign to get parameters, such as standard deviation of normal to normal interval (SDNN), low frequency (LF), high frequency (HF), and heart rate per minute. One can diagnose arrhythmia from HRV data. Recently acceleration data becomes crucial. Acceleration sensors are attached in many wearable devices and in smartphones, and so, acceleration data will play an important role as big data in a near future, in that they are collected everywhere and easily. Typical examples of the information analyzed from acceleration data are: the number of steps, walking distance, activity patterns of sitting, standing, walking, and running.

AB Broker Design for Interoperability
The AB Broker proposed in this paper secures interoperability by developing algorithms developed in different environments in an integrated environment. The use of AB Broker is expected to improve the reusability of various algorithms and provide time for algorithm development.
In this paper, AB Broker was developed to secure interoperability between MAT-LAB, which is conventionally used for algorithm development among various algorithm development tools, such as Python, MATLAB, and R Programming, and open-source R Programming.
The application of AB Broker is not limited to only vital sign analysis. In this paper, the proposed approach is the first of its kind developed for vital sign analysis. However, this framework is applicable for other frameworks because it is a generalized framework and there are no restrictions. As shown in Figure 1, AB Broker consists of an algorithm search, algorithm specification agent, execution agent, Algorithm Block Registry (AB Registry), and AB Adapter. The algorithm search and algorithm specification agent analyze data using algorithm information. Algorithm information is stored in the algorithm information database shown in Figure 2. The algorithm details Table stores information on developer ID, algorithm file name, vital sign analysis algorithm explanation, vital sign type, date sent, and vital sign development tool. algorithm_inp_out stores information on input values, input parameters, and input values.  Algorithm search searches for an algorithm to be executed.

•
The algorithm specification agent checks the information on the algorithm to be executed and displays information on the type of development tool, the input value, and the output value required for execution. • AB Registry is a repository for storing algorithm source files. It has the algorithm source file to execute the algorithm by searching for the algorithm that AB Broker requests to execute.
• AB Adapter has a service that stores information to call R programming functions in MATLAB and a service that saves information to call MATLAB functions from R programming. The information for executing functions is composed of parameters having the name of the function to be executed and an input value. • Execution Agent executes the algorithm requested by AB Adapter. Algorithm execution has four steps. First, the presence of an algorithm is checked through algorithm search. Second, the algorithm function source is checked in the AB Registry. Third, the input and output values are checked according to the algorithm specification. Fourth, the algorithm is executed by inputting an input value to the algorithm function.
The algorithm search and algorithm specification agent analyze data using algorithm information. Algorithm information is stored in the algorithm information database shown in Figure 2. The algorithm details Table stores information on developer ID, algorithm file name, vital sign analysis algorithm explanation, vital sign type, date sent, and vital sign development tool. algorithm_inp_out stores information on input values, input parameters, and input values. The algorithm search and algorithm specification agent analyze data using algorith information. Algorithm information is stored in the algorithm information databa shown in Figure 2. The algorithm details Table stores information on developer ID, alg rithm file name, vital sign analysis algorithm explanation, vital sign type, date sent, a vital sign development tool. algorithm_inp_out stores information on input values, inp parameters, and input values.   The structure of AB Adapter is shown in Figure 3. MATLAB Adapter and R programming Adapter request information to execute functions in MATLAB and R Programming.
The working principle of Algorithm Block Broker is shown in the Figure 4. AB Broker requests execution of functions developed in MATLAB or R Programming from AB Adapter. AB Adapter sends information for the execution of the algorithm to the Broker object. The Broker searches for a function in the AB Registry according to the function execution service request. The searched function checks information on the function of the algorithm specification agent. The accurate input and input value required for the execution of the function are checked according to this information. Then, for the function developed in R Programming, the R Programming function is executed through the Java/R Interface (JRI) in MATLAB and the result value is sent to MATLAB. In addition, for the function developed in MATLAB, the MATLAB function is executed through Matlabcontrol, and the result value is sent to R Programming. The structure of AB Adapter is shown in Figure 3. MATLAB Adapter and R programming Adapter request information to execute functions in MATLAB and R Programming.

Vital Sign Analysis System Based on AB Broker
The proposed architecture is a model based on service oriented architecture (SOA) [23] in Figure 5, a type of web service. By SOA, the system searches services in the server that the developer wants and responds to the application, which is a suitable architecture for request/response concerning data mining techniques.
The vital sign analysis system architecture based on AB Broker has four scenarios: • Requesting to execute vital sign analysis algorithm through Simple Object Access Protocol (SOAP) message.

•
Retrieving vital sign data from vital sign storage.

•
Executing vital sign analysis algorithm using AB Broker of execution engine.

•
Saving the analyzed result in the data warehouse. SOAP message provides a service to execute a vital sign analysis algorithm. The service is divided into a service that can search for a vital sign, a service that uploads a source file of a vital sign algorithm developed in MATLAB or R programming, and a service that extracts a vital sign feature value by executing a vital sign analysis algorithm.

Vital Sign Analysis System Based on AB Broker
The proposed architecture is a model based on service oriented architecture (SOA) [23] in Figure 5, a type of web service. By SOA, the system searches services in the server that the developer wants and responds to the application, which is a suitable architecture for request/response concerning data mining techniques.
The vital sign analysis system architecture based on AB Broker has four scenarios: • Requesting to execute vital sign analysis algorithm through Simple Object Access Protocol (SOAP) message.

•
Retrieving vital sign data from vital sign storage.

•
Executing vital sign analysis algorithm using AB Broker of execution engine.

•
Saving the analyzed result in the data warehouse.
SOAP message provides a service to execute a vital sign analysis algorithm. The service is divided into a service that can search for a vital sign, a service that uploads a source file of a vital sign algorithm developed in MATLAB or R programming, and a service that extracts a vital sign feature value by executing a vital sign analysis algorithm. The NoSQL database stores various bio signals, in this case the vital signs. For such a design, a criterion for classifying vital signs is important. For example, signals such as electrocardiogram, electromyogram, respiration, etc., have continuous data. However, since the acceleration signal has continuous data of three axes (X-, Y-, Z-axis), the data of three axes must be stored at the same time. We designed a NoSQL-based vital sign storage that can collect and analyze a large amount of data, according to the characteristics of these vital sign.
The engine to execute vital sign analysis algorithm intends to apply the vital sign analysis algorithm developed by MATLAB and R programming to the health care service system. An interface for inputting an input value is required based on the specification of the vital sign analysis algorithm. In particular, an interface for retrieving a necessary input value from a vital sign storage is essential. Based on the input value, the vital sign execution engine performs pre-processing to convert the input value according to the development language to be executed, and then executes the vital sign analysis algorithm source.
The data warehouse stores the results from the execution engine. The data extracted by applying the vital signs analysis algorithm may be a great amount in a single column. Thus, the data are needed to save into the data warehouse for big data analysis.

Implementation and Application
In this paper, we have developed a vital sign analysis system based on AB Broker. This study executed the evalQRSDetection Function developed in MATLAB as shown in Figure 6. ① in Figure 6 is an AB Adapter used for executing the low-pass filter function developed in R programming, as shown in Figure 7. The evalQRSDetection function is an algorithm that analyzes the value of R Peak on the electrocardiogram (ECG). The evalQRSDetection function has two input values, electrocardiogram data, and sampling frequency. The two result values are the R peak index and R peak value.
In this paper, you can check the source code shown below that calls the R Programming function using the AB Adapter in the MATLAB. Conversely, R Programming is a system that can call MATLAB function using the AB Adapter. Thus, the role of the adapter The NoSQL database stores various bio signals, in this case the vital signs. For such a design, a criterion for classifying vital signs is important. For example, signals such as electrocardiogram, electromyogram, respiration, etc., have continuous data. However, since the acceleration signal has continuous data of three axes (X-, Y-, Z-axis), the data of three axes must be stored at the same time. We designed a NoSQL-based vital sign storage that can collect and analyze a large amount of data, according to the characteristics of these vital sign.
The engine to execute vital sign analysis algorithm intends to apply the vital sign analysis algorithm developed by MATLAB and R programming to the health care service system. An interface for inputting an input value is required based on the specification of the vital sign analysis algorithm. In particular, an interface for retrieving a necessary input value from a vital sign storage is essential. Based on the input value, the vital sign execution engine performs pre-processing to convert the input value according to the development language to be executed, and then executes the vital sign analysis algorithm source.
The data warehouse stores the results from the execution engine. The data extracted by applying the vital signs analysis algorithm may be a great amount in a single column. Thus, the data are needed to save into the data warehouse for big data analysis.

Implementation and Application
In this paper, we have developed a vital sign analysis system based on AB Broker. This study executed the evalQRSDetection Function developed in MATLAB as shown in Figure 6. 1 in Figure 6 is an AB Adapter used for executing the low-pass filter function developed in R programming, as shown in Figure 7. The evalQRSDetection function is an algorithm that analyzes the value of R Peak on the electrocardiogram (ECG). The evalQRSDetection function has two input values, electrocardiogram data, and sampling frequency. The two result values are the R peak index and R peak value. that, originally, the codes are written in MATLAB; however, by using the adapter function, some of the code is written in R language, since both the classes are the same, although their interface is different. Grimmer et al. proposed framework, which was mainly developed for cross-language interoperability, to provide good runtime performance [24]. This shows that the proposed developed system shows interoperability between languages, which will be useful for the development of the better system for superior performance.   different, but the classes are same. The code shown below is an example, which shows that, originally, the codes are written in MATLAB; however, by using the adapter function, some of the code is written in R language, since both the classes are the same, although their interface is different. Grimmer et al. proposed framework, which was mainly developed for cross-language interoperability, to provide good runtime performance [24]. This shows that the proposed developed system shows interoperability between languages, which will be useful for the development of the better system for superior performance.   In this paper, you can check the source code shown below that calls the R Programming function using the AB Adapter in the MATLAB. Conversely, R Programming is a system that can call MATLAB function using the AB Adapter. Thus, the role of the adapter function is to keep away from the duplicated code when the interface of two languages is different, but the classes are same. The code shown below is an example, which shows that, originally, the codes are written in MATLAB; however, by using the adapter function, some of the code is written in R language, since both the classes are the same, although their interface is different. Grimmer et al. proposed framework, which was mainly developed for crosslanguage interoperability, to provide good runtime performance [24]. This shows that the proposed developed system shows interoperability between languages, which will be useful for the development of the better system for superior performance.
The vital sign analysis algorithm execution SOAP message and response SOAP message of Figure 5 are as shown in Figure 8.
The vital sign analysis algorithm execution SOAP message and response SOAP message of Figure 5 are as shown in Figure 8.
The request to execute the vital sign analysis algorithm is sent by inputting the ID that sends the vital sign analysis algorithm source to be executed, the vital sign analysis algorithm file name, input value, and the vital sign analysis development tool as shown in ① in Figure 8. The vital sign analysis algorithm is executed on the server and the result value is sent as shown in ② in Figure 8. The evalQRSDetection Function execution UI and request result UI are as shown in Figure 9. The UI to execute the evalQRSDetection Function is as shown in ① in Figure 9.
The execution result value is as shown in ② in Figure 9, where the first chart is the result value maxIdx in Figure 5 and the second chart is the result value of maxVal. The request to execute the vital sign analysis algorithm is sent by inputting the ID that sends the vital sign analysis algorithm source to be executed, the vital sign analysis algorithm file name, input value, and the vital sign analysis development tool as shown in 1 in Figure 8. The vital sign analysis algorithm is executed on the server and the result value is sent as shown in 2 in Figure 8.
The evalQRSDetection Function execution UI and request result UI are as shown in Figure 9. The UI to execute the evalQRSDetection Function is as shown in 1 in Figure 9. The execution result value is as shown in 2 in Figure 9, where the first chart is the result value maxIdx in Figure 5 and the second chart is the result value of maxVal.
Appl. Sci. 2021, 11, x FOR PEER REVIEW 11 of 1 Figure 9. Implementation of vital sign system user interfaces: ① is a UI for requesting algorithm execution; ② is the response UI where the algorithm was executed.

Conclusions
AB Broker has been designed to secure interoperability between algorithms deve oped in different languages. The vital sign analysis system applying AB Broker provide an architecture that can easily apply various analysis algorithms to the system. In th paper, we implemented a vital sign analysis system using AB Broker-based MATLAB an R programming language.
Algorithm techniques developed in various development languages with the metho presented in this paper can be easily used on one platform to secure interoperability. I addition, it has a software structure that can improve the reusability and convenience o analysis technology, which is expected to improve the quality of vital sign analysis tech nology and secure system competitiveness.
The limitation of this study is that in this paper, the proposed approach was teste only for the bio signals. However, the framework is developed by keeping in mind that will be used as a generalized framework and can be used for other applications. In th paper, since our study is limited to bio signals, we only mentioned the bio signals.
Finally, in the future, AB Broker demands research on architecture that can be ap plied to systems that require various artificial intelligence technologies by adding Pytho and other development languages and analyzing vital signs.  . Implementation of vital sign system user interfaces: 1 is a UI for requesting algorithm execution; 2 is the response UI where the algorithm was executed.

Conclusions
AB Broker has been designed to secure interoperability between algorithms developed in different languages. The vital sign analysis system applying AB Broker provides an architecture that can easily apply various analysis algorithms to the system. In this paper, we implemented a vital sign analysis system using AB Broker-based MATLAB and R programming language.
Algorithm techniques developed in various development languages with the method presented in this paper can be easily used on one platform to secure interoperability. In addition, it has a software structure that can improve the reusability and convenience of analysis technology, which is expected to improve the quality of vital sign analysis technology and secure system competitiveness.
The limitation of this study is that in this paper, the proposed approach was tested only for the bio signals. However, the framework is developed by keeping in mind that it will be used as a generalized framework and can be used for other applications. In this paper, since our study is limited to bio signals, we only mentioned the bio signals.
Finally, in the future, AB Broker demands research on architecture that can be applied to systems that require various artificial intelligence technologies by adding Python and other development languages and analyzing vital signs.