Kornel Skałkowski

Krzysztof Zieliński

Automatic Adaptation of SOA Systems Supported by Machine Learning

Keywords: SOA, adaptive manager, machine learning

Recent advances in the development of information systems have led to increased complexity and cost in terms of the required maintenance and management. On the other hand, systems built in accordance with modern architectural paradigms, such as Service Oriented Architecture (SOA), posses features enabling extensive adaptation, not present in traditional systems. Automatic adaptation mechanisms can be used to facilitate system management. The goal of this work is to show that automatic adaptation can be effectively implemented in SOA systems using machine learning algorithms. The presented concept relies on a combination of clustering and reinforcement learning algorithms. The paper discusses assumptions which are necessary to apply machine learning algorithms to automatic adaptation of SOA systems, and presents a machine learning-based management framework prototype. Possible benefits and disadvantages of the presented approach are discussed and the approach itself is validated with a representative case study.

Introduction

The growing complexity of modern IT systems hinders effective administration, resulting in increased maintenance costs. Geographical distribution of services, dynamic workflow enactment and on-demand service selection improve the systems' scalability and flexibility but do not foster their overall manageability. It should be noted, however, that contemporary architectural paradigms such as Service Oriented Architecture (SOA) [START_REF] Arsanjani | S3: A Service-Oriented Reference Architecture[END_REF] or Internet of Things (IoT) [START_REF] Atzori | The Internet of Things: A survey[END_REF], provide sophisticated adaptation features [START_REF] Zieliński | Adaptive SOA Solution Stack[END_REF][START_REF] André | Towards a Generic Context-Aware Framework for Self-Adaptation of Service-Oriented Architectures[END_REF]. Flexibility in terms of service/sensor coupling, instant binding or semantic message routing can be used to modify information flow between system components during runtime, affecting processing speed. Such extensive adaptation opportunities are characteristic of modern design approaches and can be leveraged to solve problems associated with system management and administration through automatic or semi-automatic adaptation.

Issues involved in the adaptation process of enterprise systems are addressed by the well-known MAPE adaptation pattern [START_REF] Kephart | The vision of autonomic computing[END_REF], which introduces four elements (Monitoring, Analysis, Processing, Execution) necessary in every adaptation framework. This paper presents a new approach to implementation of the Analysis and Processing elements of the MAPE pattern based on a combination of two types of machine learning methods. A clustering algorithm is used to provide automatic recognition of similar system states and grouping them into subsets (called clusters), based on information provided by the Monitoring element interface (e.g. regarding a system load or observed bottlenecks). The goal of further processing is then to find a mapping between the clusters and adaptation actions provided by the Execution element interface (e.g. a service replication, routing changes or resources allocation). These actions should be assigned to clusters in such a way that execution of actions attributed to a cluster to which a current system state has been assigned increases the overall system QoS (Quality of Service). In order to find a mapping which satisfies this condition, a reinforcement learning algorithm has been devised. The paper explains how such a combination of machine learning methods can effectively and flexibly implement the MAPE pattern in service-based systems and discusses assumptions which have to be met by an adaptable system in order to be applicable to our solution. The proposed approach to MAPE is evaluated on the basis of a proof-ofconcept implementation.

The paper is organized as follows: in Section 2 the relationship between the proposed approach and IoT architectures is discussed. Section 3 briefly presents related approaches to MAPE implementation. In Section 4 a machine learning-based approach to implementation of the MAPE pattern is elucidated. Section 5 shows how the concept has been implemented in a prototype framework and which algorithms have been chosen. Section 6 discusses evaluation results while Section 7 concludes the paper and discusses future work.

Relationship to Internet of Things

Adaptation issues are widely present in various aspects of IoT systems. The vast quantities of objects involved in such systems, huge amounts of information produced, chaotic working environments and the need for autonomous control make efficient and flexible adaptation a crucial part of many IoT solutions. Implementation of the MAPE pattern in IoT architectures requires dedicated monitoring and execution layers which can cope with such issues. Since the approach presented in this paper does not impose any specific monitoring and management framework, it can be applied to IoT infrastructures as well as to other manageable systems.

Related Work

Existing approaches to implementation of the MAPE pattern are based on rule/policy engines, decision theory or fuzzy logic. The use of machine learning techniques for SOA system adaptation is only partially covered in existing papers. An approach to context-based adaptation in production systems based on data mining techniques has been proposed in the Self-Learning project [START_REF] Stokic | Self-learning embedded services for integration of complex, flexible production systems[END_REF], which bases in part on learning and adapter modules. Nevertheless, recent publications released by this project do not clearly point to any particular data mining algorithms and do not present any evaluation results. Other existing papers focus on machine learning-based selection of web services [START_REF] Al-Masri | Discovering the best web service: A neural network-based solution, SMC[END_REF][START_REF] Ramakanta Mohanty | Web-services classification using intelligent techniques[END_REF] and reliability assessment in SOA systems [START_REF] Challagulla | A Machine Learning-Based Reliability Assessment Model for Critical Software Systems, Computer Software and Applications Conference[END_REF]. Although these approaches can partially solve the issue of automatic management of service-based systems, they do not constitute a complete implementation of the MAPE pattern.

Machine Learning-based Approach to MAPE Pattern Implementation

Most existing machine learning algorithms operate on sets of n-dimensional real valued vectors x є R n . Unsupervised learning methods, i.e. clustering algorithms, operate directly on such sets, whereas in the case of supervised learning methods or reinforcement learning algorithms an additional value, y, is assigned to every vector and interpreted as the "correct answer" to it. The goal of the analysis and processing elements of the MAPE pattern is to find out which action offered by the execution layer should be invoked in a specific system state. To achieve this goal using machine learning methods we have to represent system state as an n-dimensional vector, while the action suitable for a given system state is equivalent to the "correct answer" value.

Based on these observations, the system state at point t is represented as x (t) є R n , whereas the set of all observed system states at various points in time (x (t1) , x (t2) , ..., x (tm) ) will be called the system state space X. It is important to stress that vectors x (t) should contain all available information about the system which should be taken into account during management, including the working context and current configuration.

Representing the state of a system in the form of a vector of real values may seem somewhat constraining, yet even those parameters which are expressed in nonnumeric form (e.g. strings or enumerations) can usually be converted to numeric values by applying appropriate mappings. Since the main goal of our approach is to manage a complex system in a way which increases its overall QoS level, the system state vectors are assumed to reflect the QoS experienced by users in some way.

Certain system parameters directly reflect QoS (e.g. processing time), whereas in more sophisticated cases the QoS level can be calculated with evaluation function e(x).

The management interface which constitutes the execution element of the MAPE pattern, is assumed to be represented as set of values: A={a 0 , a 1 , .., a k }, consisting of the available adaptation actions. In order to avoid contradictions and discrepancies during learning we have to assume the action set A meets several conditions. First of all, there are no duplicate actions in the set, since most learning algorithms use injective functions to produce the "answer value" a i . Furthermore, we assume that every action a i can be repeated any number of times and the actions are stateless (i.e. no action has a different effect when invoked several times in the same system state). Finally, it is necessary for the actions to be independent of each other, meaning that no action should require prior execution of any other action. If some actions have to be invoked in a specific sequence, they should be represented as a single action. These assumptions are not challenging and every well designed management framework usually satisfies them all. In order to make actions comparable to "correct answer" values returned by learning algorithms, the actions should be bijectively mapped to numbers, e.g. simply enumerated. In order to facilitate implementation, both sets (X and A) are assumed to be fixed for each given adaptable system.

Given the system state and management interface we can precisely define the overall framework goal. Roughly speaking, the framework should perform actions from the space A (e.g. service launch or migration) so that the adaptable system provides the best possible QoS level for end users. From a mathematical view point, this problem can be divided into two subproblems. The first subproblem is clustering the system state space X into a set of non-empty sets {C 1 , ..., C } which should be characterized by the maximum possible homogeneity of elements within each set (e.g. lowest sum of distances between the elements of C i ) and the maximum possible diversity between sets (e.g. greatest sum of distances between the {C i } sets' centroids). The C i sets can evolve during system runtime, reflecting changes in the system and its working environment. The second subproblem is mapping the clustered system state space {C i } onto actions: the framework has to find a mapping ∀ i=1, ..., l F: C i →(a j : j=0, ..., k (Ci) ) such that the execution of actions returned by the mapping F when the system state belongs to the cluster C i causes ∑ i e(x (ti) ) to assume its lowest possible value. The function e(x (t) ) is the overall system QoS evaluation metric calculated using state vectors x (t) whose values are inversely proportional to the condition of the system. Applying F yields a sequence of actions with length k (Ci) , sorted from the most appropriate to the least appropriate one (for a given system state) -thus we can say that mapping F reflects the adaptable system model. The first subproblem may seem unnecessary as one might claim that actions could be assigned directly to system states x (t) . In reality, however, this assumption is only satisfied by very small systems, where X can be modeled e.g. as a small finite state machine. In most real systems -especially complex enterprise SOA solutions -this assumption is no longer valid. In such cases the space X is usually infinite and multidimensional, so that both elements are essential in order to accomplish the framework objectives.

The first task is a well-known clustering problem, the only major issue being that the clustered space X is not known a priori, but is instead constructed during runtime by aggregating x (t) vectors. This issue can be solved using online clustering methods which are designed to cluster data streams. In turn, the second task leads us to the area of reinforcement learning algorithms which are used to teach computer systems how to act in different situations in order to achieve a given goal. The learning mechanism in such algorithms is based on rewards, usually represented as a single real number. In our case the situations are represented as state vectors x (ti) at different points in time t i , whereas the reward constitutes the system evaluation metric e(x). The reinforcement learning algorithm returns a function, h θ (x), called the hypothesis, which provides "correct answer" values for different vectors x. In our approach this function is equivalent to mapping F -the returned sequence of actions comprises set A, which is calculated on the basis of differences between actions from A and the h θ (x) function results. The final necessary element is normalization of state vectors x (t) . Since most machine learning algorithms require input vectors to have all elements normalized to a common range of values, a normalization function has to be applied to all state vectors prior to clustering. The approach is depicted in Fig. 1. The bottom part of Fig. 1 presents an SOA system subjected to adaptation. Above, four elements of the MAPE pattern are shown. The monitoring and management interfaces are assumed to be provided by external frameworks which can be tuned to a specific adaptable system (provided that they meet the assumptions previously stated). The monitoring interface returns vectors x (t) composed of real values representing system states. The management interface exposes A -the set of management actions available in the system. The analysis layer consists of two services: the normalizer service, responsible for mapping state vectors to an n-dimensional [0,1] hypercube, and the clustering service which, based on normalized |x| (t) vectors, extracts clusters {C i } representing groups of similar system states. Each cluster represents a pool of system states which significantly diverge from all other states. By assigning vector |x| (t) to an appropriate cluster, the framework can check whether the adaptable system currently belongs to the best possible cluster. This information, along with the current QoS evaluation metric derivative ∂e(x)/∂t calculated as a differential approximation from several successive observations of e(x), is used by the processing layer to select actions. When sgn(∂e(x)/∂t) < 0 no management action is performed because even if the system state is not in the best possible cluster, it is improving and this trend should be maintained. If, however, sgn(∂e(x)/∂t) ≥ 0 and the system state does not belong to the best cluster, execution of a management action is necessary. In order to do so, a sequence should be returned by the reinforcement learning algorithm. A third case should be distinguished, with sgn(∂e(x)/∂t) ≥ 0 and the system already assigned to the best cluster. In this case we may not know why the system condition is deterioratingwhether due to brief fluctuations (e.g. caused by a slightly higher load) or more permanent reasons. Thus, a prediction algorithm could be applied to estimate the likely evolution of the system state. Every executed action is evaluated, and, based on the evaluation result, the reinforcement learning algorithm's hypothesis function h θ (x) is up-or downregulated in order to improve future decisions. Evaluation bases on observation of system state changes reflected in the QoS evaluation metric derivative ∂e(x)/∂t over a period of time. If the system state remains poor and shows no signs of improvement (sgn(∂e(x)/∂t) < 0), another action from the list returned by the algorithm is executed and evaluated. This process repeats until the system state begins to improve.

The key advantage of the proposed approach is its independence of any specific system model. In contrast to other approaches, e.g. based on policy or rule engines, it does not require any initial configuration or specifications of the adaptable system's model. Moreover, online clustering and reinforcement learning algorithms can dynamically adapt to changes in the model without reconfigurations or restarts. On the other hand, lack of initial knowledge about the managed system means that many incorrect actions can be taken during the startup phase, before the framework learns how to appropriately manage a given system.

Approach Implementation and Applied Algorithms

A prototype implementation of the approach described in the previous section is currently being developed. Its most recent version has been implemented as a set of OSGi [START_REF]The OSGi Alliance: OSGi Service Platform Core Specification[END_REF] services providing the above mentioned features. The implementation consists of four services: the normalization service (responsible for state vector normalization), the clustering service (responsible for clustering), the strategy service (responsible for action selection and evaluation) and the evaluation service (providing the e(x) function values).

Since the aim of the implementation is to validate the proposed concept rather than provide sophisticated functionality, the prototype relies on simple machine learning algorithms. Specifically, the clustering service implements a standard k-means algorithm to cluster state vectors collected over a period of time. In the future this algorithm will be swapped for an online clustering algorithm based on the PCA method [START_REF] Mcwilliams | Predictive Subspace Clustering, Machine Learning and Applications[END_REF]. As the reinforcement learning algorithm, a simple adaptive gradient descent implementation with a polynomial hypothesis function has been used. The main disadvantage of this algorithm is slow convergence -in the future we intend to apply a more efficient reinforcement learning algorithm.

Prototype Evaluation Results -Preliminary Study

The objective of evaluation of the prototype framework was to check whether it properly accomplishes its goals, i.e. invokes appropriate management actions when the overall system QoS level decreases, and to verify if the learning method is appropriate, i.e. whether the hypothesis function properly converges regardless of its initial coefficients. Both goals were evaluated on a load balancing case study in an SOA system. The simulated system consisted of three services. The first service had to invoke either the second or the third service in order to accomplish its functionality. By default, the first service used only the second service -thus the third service remained idle. The response time of the second service was highly dependent on the number of simultaneous invocations. As the number of concurrent requests grew, the service's response time increased noticeably, affecting the overall system QoS. In such cases, the first service was expected to begin using the third service in order to balance load and avoid a decrease in the overall QoS. The simulated services have been implemented using the OSGi technology and deployed in an OSGi monitoring and management framework provided by the AS3 Studio [START_REF] Żmuda | Dynamic monitoring framework for the SOA execution environment[END_REF] toolkit. The monitoring interface was configured to monitor two parameters of the system: average processing time (APT) and invocation rate (IR). These two parameters were passed to the framework prototype as a single vector x (t) = [APT, IR]. The evaluation function was calculated as e(x) = APT + IR/2. The management interface exposed two actions: "do-nothing", whose invocation did not affect the simulated system in any way, and "balance-load", which activated load balancing in the first service for a period of time. As a result of the second action, the first service would begin dispatching its requests to both the second and the third service. The evaluation was performed on a computer with an Intel Core 2 Duo 2.80 Ghz CPU and 4 gigabytes of RAM. The hypothesis function was a simple linear polynomial of two variables h θ (x (t) ) = θ 0 + θ 1 x 1 + θ 2 x 2 , where x 1 = APT and x 2 = IR. Tab. 1 presents evaluation results from three test runs. Evaluation results confirm that the proposed approach to the MAPE pattern implementation is viable and properly accomplishes the stated goals. Processing time speedup was in the 19% -25% range, depending on initial coefficients of the hypothesis function. The greatest speedup was observed for near-optimal initial hypothesis coefficients, because in this case the framework almost always executed the "balance-load" action when necessary. In other cases the framework executed a greater number of "do-nothing" actions, before it learned that this action was inappropriate for a high system load state. Convergence time was directly dependent on initial hypothesis coefficients. Better coefficients improved the algorithm's convergence; however in all cases convergence was eventually attained (although with differing final hypothesis coefficients).

Conclusions and Further Work

The proof-of-concept evaluation of the approach proposed in the paper shows that machine learning methods can be applied to implementation of the MAPE pattern. Our combination of clustering and reinforcement learning algorithms properly identifies disruptions in system QoS and invokes appropriate management actions. The main advantage of the proposed approach is its independence of any specific system -the framework does not require any a priori knowledge about the adaptable system. Flexibility offered by online clustering and reinforcement learning methods means that the approach can be applied to SOA system adaptation as well as to IoT system management. The only evident disadvantage is its potentially long convergence time.

Further development will focus on more advanced algorithms for online data clustering and selection of management actions. The framework effectiveness and scalability will also be evaluated on much more complex case studies and real-world systems, e.g. a telemedicine platform, where maintaining a certain level of QoS is crucial. We also intend to improve the efficiency of our approach by implementing a system state prediction algorithm which could invoke management actions in order to prevent QoS disruptions.

Fig. 1 .

 1 Fig. 1. The machine learning-based approach to the MAPE pattern.

Table 1 .

 1 Evaluation results of the prototype framework.

	Processing	Initial h θ (x)	Final h θ (x)	Convergence	Invalid
	time speedup			time	actions
	24%	0.64+0.69x 1 +0.57x 2 0.68+0.71x 1 +0.59x 2 0:20 [h]	2
	21%	0.23-0.44x 1 +0.01x 2 1.06+0.07x 1 -0.21x 2 2:00 [h]	7
	19%	-0.55-0.23x 1 -0.03x 2 1.12+0.13x 1 -0.53x 2 2:30 [h]	21

Acknowledgments. The research presented in this paper was partially supported by the European Regional Development Fund programs no. POIG.01.03.01-00-008/08 and UDA-POKL.04.01.01-00-367/08-00.


Adetunji Adebiyi
email: adetunjib@hotmail.com

Johnnes Arreymbi
email: j.arreymbi@uel.ac.uk

Chris Imafidon
email: c.o.imafidon@uel.ac.uk

A Neural Network Based Security Tool for Analyzing Software

Keywords: Threat Modeling, Neural Network, Attack Patterns, Security Tools, Secure software design

The need to secure software application in today's hostile computer environment cannot be overlooked. The increase in attacks aimed at software directly in the last decade and the demand for more secure software applications has drawn the attention of the software industry into looking for better ways in which software can be developed more securely. To achieve this, it has been suggested that security needs to be integrated into every phase of software development lifecycle (SDLC). In line with this view, security tools are now used during SDLC to integrate security into software applications. Here, we propose a neural network based security tool for analyzing software design for security flaws. Our findings show that the trained neural network was able to match possible attack patterns to design scenarios presented to it. With the information on the attack pattern identified, developers can make informed decision in mitigating risks in their designs.

Introduction

The dependence of our society today on software systems demand that they are robust, reliable and secured when they are deployed. Therefore, it is very important that the design of software must be that which makes it to function properly in a hostile computer environment, protecting the information and systems on which it runs with minimal risks. However, as software attacks become more sophisticated especially with the increase of attack tools available, today's security solutions are no longer adequate in providing security [START_REF] Keary | Integration into the SDLC, The OWASP Foundation[END_REF] [START_REF] Spampinato | SeaMonster: Providing Tool Support for Security Modeling[END_REF] because many of these attacks circumvent the traditional defenses and target the software directly [2]. By retrofitting security into software after development exacerbate the issue as these may lead to significant change in the architectural design and code of the software which often introduces more flaws and increases the cost of production [START_REF] Gegick | On the design of more secure software-intensive systems by use of attack patterns[END_REF].

Reportedly, 50% of security problems in software products today have been found to be design flaws [START_REF] Mcgraw | Building Secure Software. A difficult but critical step in protecting your business[END_REF]. In this view, many authors argue that it is much better to find and fix flaws during the early phase of software development because it is more costly to fix the problem at a late stage of development and much more costly when the software has been deployed [START_REF] Gegick | On the design of more secure software-intensive systems by use of attack patterns[END_REF] [START_REF] Mockel | Threat Modeling Approaches and Tools for Securing Architectural Designs of E-Banking Application[END_REF] [START_REF] Spampinato | SeaMonster: Providing Tool Support for Security Modeling[END_REF]. To achieve this, a neural network based tool that would enable software engineers to evaluate their software design for security flaws by matching attack patterns to software design scenarios presented to it is proposed in this paper. Each attack pattern matched to the design helps the software designer to see areas of vulnerability in the design that needs to be secured. Based on this information, software designers can integrate security capabilities that will mitigate the identified risks in their design before the software is coded.

Internet of Things (IoT)

One of the core issues in IoT is the connectivity between social, cloud, mobile and everyday objects. While IoT has lots of benefits, it also increases the attack surface of applications running on the connected devices. Many devices that were never intended to be connected to the internet become exposed to software-based attacks while connected to other devices. Furthermore, as devices connected in IoT will be generating a huge amount of data, the risk of data breach also increases. Therefore, the security of software running these devices connected in IoT cannot be overlooked, This paper contributes in this area by proposing a tool based on neural network that can be used to analyze the software design for security flaws.

Current Security Tools for Analyzing Software Design

In recent years, various security tools have been developed to enable software developers who are not security experts to scrutinize their software design and identify security flaws in a similar way as a security expert. Microsoft developed two of these security tools [START_REF]Microsoft Security Development Lifecycle, SDL Threat Modeling Tool[END_REF] [START_REF] Mockel | Threat Modeling Approaches and Tools for Securing Architectural Designs of E-Banking Application[END_REF]. The first was Threat Analysis and Modeling (TAM) tool. This was developed with the aim of enabling non-security expert software developers to use already known data and specific line of business application requirement and architecture to carry out threat modeling in an asset-centric approach. With this tool software developers can focus on protecting the assets within their application by identifying associated threats and counter-measures when it's being designed. The second is SDL Threat Modeling Tool. This is a core element in the design phase of Microsoft Security Development Lifecycle which helps software developers to analyze their software designs prior to its implementation. Also, this tool was not developed for security experts but for software developers to aid the creation and analysis of threat models [START_REF]Microsoft Security Development Lifecycle, SDL Threat Modeling Tool[END_REF]. In contrast to TAM tool, SDL Threat Modeling tool builds on well-known development activities such as the use of data flow diagram (DFD) for drawing the architecture of the software being designed. Thus, following a software-centric approach, threat modeling with this tool focuses on the software and the analysis of its design [START_REF] Swigart | Threat Modeling at Microsoft[END_REF].

While these tools have lots of useful features that enable software developers to do threat modeling easily, they have a few draw backs. Firstly, the quality of report generated by the tools is still limited by the knowledge of the software developer creating the threat model. Secondly, software developers require the understanding and interpretation of the extensive list of threats identified by the tools. This may become a daunting task especially when the threats are not prioritized as the case is with the use of SDL Threat Modeling Tool. Thirdly the process of threat modeling can increasingly become complex while using the tools due to factors such as number of developers involved in the threat modeling process, the nature of DFD created and potential stakeholders [START_REF] Berg | Threat Modeling: A Process to Ensure Application Security, SANS Institute InfoSec Reading Room[END_REF] [START_REF] Mockel | Threat Modeling Approaches and Tools for Securing Architectural Designs of E-Banking Application[END_REF].

There is now a range of security tools from open source with similar threat modeling approach like that of Microsoft threat modeling tools such as SeaMonster, TRIKE and Coras, which use techniques that software developers are familiar with for the identification and mitigation of threats. There are other threat modeling approaches based on standards such as the Risk Analysis Toolkit ( based on ISO 1799 ) which generates security polices from question and answers [START_REF] Ricard | ISO 1799 Risk Analysis Toolkit[END_REF] and other open security tools like the Common Vulnerability Scoring System (CVSS) that is designed to for rating IT vulnerabilities [START_REF]Common Vulnerability Scoring System (CVSS-SIG)[END_REF].

The Neural Network Tool

Previous researches show various ways through which neural network have been used in the area of security. Neural network based applications has been used successfully in the area of network security as intrusion detection systems, misuse detection systems and firewalls [START_REF] Ahmad | Intrusion detection mechanism by resilient bpck Propagation (RPROP)[END_REF] [21] [START_REF] Joseph | Application of Neural Network in User Authentication for Smart Home Systems[END_REF]. Also in the field of application security, neural network has been proposed to be used as virus detection system [START_REF] Liu | A neural network emsemble based method for detecting computer virus[END_REF]. It would be noticed however, that these neural network based applications can only provide a form security after software deployment.

Our proposed Neural Network tool is based on the abstract and match technique through which software flaws in a software design can be identified when an attack pattern is matched to the design. Using well known approaches such as DFD and sequence diagrams, software developers are able to abstract information about their software designs needed by the Neural Network tool for matching possible attack patterns. When potential attack patterns are matched against the design, the software developers are able to take the necessary steps in mitigating the security flaw identified. Thus software developers are able to integrate security into their software design during the design phase of SDLC when it is easy and cost effective to resolve security problems.

One of the limitations with some of the current approaches is the difficulty of getting software developers to think like attackers during the threat modeling process as this mindset is not native to them [START_REF] Swigart | Threat Modeling at Microsoft[END_REF]. It has been suggested that software developers can instead look at the attack surface of their software design and think of how to build defenses into their application [START_REF] Swigart | Threat Modeling at Microsoft[END_REF]. Our proposed technique achieve this by associating components in the design with attacks that can be performed on them when possible attack patterns are matched to the software design thereby addressing security defenses needed to be put in place.

The Neural Network Architecture

A three-layered feed-forward back-propagation neural network is used to evaluate scenarios from software designs and identify possible attacks in the design. The backpropagation neural network is a well-known type of neural network commonly used in pattern recognition problems [START_REF] Srinivasa | Hand Written Character Recognition using Back Propagation Network[END_REF]. A back-propagation network has been used in this research because of its simplicity and reasonable speed. The architecture of the back-propagation network is shown in the figure below. This consists of the input layer, the hidden layer and the output layer. Each of the hidden nodes and output nodes apply a tan-sigmoid transfer function (2/(1+exp(-2*n))-1) to the various connection weights. The weights and parameters are computed by calculating the error between the actual and expected output data of the neural network when the training data is presented to it. The error is then used to modify the weights and parameters to enable the neural network to a have better chance of giving a correct output when it is next presented with same input

Data Collection

Data of attack scenarios from online vulnerability databases such as CVE Details, Security Tracker, Secunia, Security Focus and The Open Source Vulnerability Database were used in this research. From the online vulnerability databases a total of 715 attack scenarios relating to 51 regularly expressed attack patterns by Williams and Gegick [START_REF] Gegick | On the design of more secure software-intensive systems by use of attack patterns[END_REF] were analyzed. This consisted of 260 attack scenarios which were unique in terms of their impact, mode of attack, software component and actors involved in the attack and 455 attack scenarios which are repetition of the same type of exploit in different applications they have been reported in the vulnerability databases. The attacks were analyzed to identify the actors, goals and resources under attack. Once these were identified the attack attributes in Table 1 were used to abstract the data capturing the attack scenario for training the neural network.

Data Encoding

The training data samples each consist of 12 input units for the neural network. This corresponds to the values of the attributes abstracted from the attack scenarios. The training data was generated from the attack scenarios using the attributes. For instance training data for the attack on webmail (CVE 2003-1192) was generated by looking at the online vulnerability databases to get its details on the attributes we are interested in. This attack corresponds to regularly expressed attack pattern 3. Williams and Gegick [START_REF] Gegick | On the design of more secure software-intensive systems by use of attack patterns[END_REF] describe the attack scenario in this attack pattern as a user submitting an excessively long HTTP GET request to a web server, thereby causing a buffer. This attack pattern is represented as: Error None 0

(User)(HTTPServer)(GetMethod)(GetMethodBufferWrite)(Buffer)
In this example, the data generated from the attack scenario using the attribute list is shown in Table 1. Using the corresponding values for the attributes; the data is then encoded as shown in the Table 1. The second stage of the data processing involves converting the value of the attributes in Table II into ASCII comma delimited format before it is used in training the neural network. For the expected output from the neural network, the data used in training network is derived from the attack pattern which has been identified in each of the attack scenarios. Each attack pattern is given a unique ID which the neural network is expected to produce as an output for each of the input data samples. The output data sample consists of output units corresponding to the attack pattern IDs. For instance, the above sample data on Webmail attack which corresponds to regularly expressed attack pattern 3, the neural network is trained to identify the expected attack pattern as 3.

The Neural Network Training

To train the neural network the training data set is divided into two sets. The first set of data is the training data sets (260 samples) that were presented to the neural network during training. The second set (51 Samples) is the data that were used to test the performance of the neural network after it had been trained. At the initial stage of the training, it was discovered that the neural network had too many categories to classify the input data into (i.e. 51 categories) because the neural network was not able to converge. To overcome the problem, the training data was further divided into two sets. The first set contained 143 samples and the second set contained 117 samples. These were then used for training two neural networks. Mat lab Neural Network tool box is used to perform the training. The training performance is measured by Mean Squared Error (MSE) and the training stops when the generalization stops improving or when the 1000th iteration is reached.

Result and Discussion

It took the system about one minute to complete the training for each the backpropagation neural network. For the first neural network, the training stopped when the MSE of 0.0016138 was reached at the 26th iteration. The training of the second neural network stopped when the MSE of 0.00012841 was reached at the 435th iteration.

To test the performance of the network, the second data sets were used to test the neural network. It was observed that the trained neural network gave an output as close as possible to the anticipated output. The actual and anticipated outputs are compared in the Table 4. The test samples in which the neural network gave a different output from the predicted output when testing the network includes tests for attack patterns 10, 35, 39, 40 and 52. While looking into the reason behind this, it was seen that the data observed for these attack patterns were not much. With more information on these attack patterns for training the neural network, it is predicted that the network will give a better performance. During the study of the results from the neural networks, it was found that the first neural network had 96.51% correct results while the second neural network had 92% accuracy. The accuracy for both neural networks had an average of 94.1%. Given the accuracy of the neural networks, it shows that neural networks can be used to assess the security in software designs

Conclusion

It cannot be overstated that the cost of fixing security flaws in software applications is very costly after they are deployed. The cost could be 30 times more than the cost of finding and fixing the problem early in the SDLC. Therefore, integrating security into a software design will help tremendously in saving time and money during software development and when the software is deployed. For instance, it is less expensive and less disruptive to discover design-level vulnerabilities during the design, than during implementation or testing, forcing a costly redesign of pieces of the application. Therefore, the use of the proposed neural networks tool for analyzing software design for security flaws will consolidate the efforts of software developers in identifying areas of security weakness in their software design. By fixing the security flaws in design before coding begins will subsequently lead to the development of more secured software applications. Thus, neural networks given the right information for its training will also contribute in equipping software developers to develop software more securely especially in the area of software design.

Future Work

The regularly expressed attack pattern used in training the neural network is a generic classification of attack patterns. Therefore, any unknown attack introduced to the neural network will be classified to the closet regularly expressed attack pattern. However, the success of the neural network in analyzing software design for security flaws largely depends on the input data capturing the attributes of the software design introduced to it. As this requires a human endeavor, further work is required in this area to ensure that correct input data is retrieved for evaluation. In addition, the neural network needs to be thoroughly tested before it can gain acceptance as a tool for evaluating software design for security flaws. To further improve the performance of the neural network system as a tool for evaluating software design, we are currently looking into the possibility of the system suggesting solutions that can help to prevent the identified attacks. Current research on solutions to software design security flaws gives a good insight in this area. Suggested solutions such as the use security patterns [START_REF] Kienzle | Final Technical Report: Security Patterns for Web Application Development[END_REF] and introduction of security capabilities into design in the SAT [START_REF] Mouratidis | Security Attack Testing (SAT)-testing the security of information systems at design time[END_REF]

Fig 2 .

 2 Fig 2. Actual vs. Expected Output of the Neural Network

Table 1 .

 1 Sample of pre-processed training data from attack scenario

	S\N Attribute	Observed data	Value
	1	Attacker	No Access	0
	2	Source	External	1
	3	Target	Buffer	9
	4	Attack Vector	Long Get Request	39
	5	Attack Type	Availability	5
	6	Input Validation Partial Validation	2
	7	Dependencies	Authentication & Input	6
	8	Output	Validation None	0
		Encoding Authentication None	0
	10	Access Control URL Access	2
	11	HTTP Security Input Validation	3
	12


Ivana Šenk
email: ivanas@uns.ac.rs

Gordana Ostojić

Laslo Tarjan

Stevan Stankovski
email: stevan@uns.ac.rs

Milovan Lazarević

Food Product Traceability by Using Automated Identification Technologies

Keywords: Food traceability, RFID, 2D barcode, QR code

Food product traceability from harvesting, through food processing to the final food product and through the retailer to the end consumer is a significant process that has to ensure food quality and safety. The traceability enables the end consumer to get information from all previous stages of the food product, leading back to the food origin. In this way, the consumer can get more information on the specific product, and thus make a decision on buying the product that suits his needs best. In each stage of the food product transformation, important data are generated for the subsequent chain participants. Every participant should have access to certain data of interest to them. This can be achieved by using automated identification technologies, like RFID (Radio Frequency IDentification) and two-dimensional barcode, which allow faster data acquisition, recording and reading processes than the traditional means, and provide up-to-date information in each product stage. Furthermore, these technologies allow the possibility to record large amounts of data for each specific product, and interconnect all the data in a database. This paper discusses the process of providing traceability of food products, recording, transmitting and reading of significant data in specific stages of food product chain, with the application of automated identification technologies, including the possibility of obtaining additional data from a database, according to appropriate access level of each participant in the chain. Advantages and disadvantages of automated identification technologies are discussed, with the proposition for using specific technologies in certain food product stages.

Introduction

Great competition within the food market forces the food producers to introduce technologies and principles that make their products more competitive. Studies show that the customers rather chose quality over price in food product, as shown e.g. in [1] where 72% of the respondents said that they are more concerned with quality than the price of food. Similar situation is in Serbia, where an agency conducted research that showed that the main reason for deciding on buying a specific product is its quality, with 61% of interviewed customers [2]. The quality of food products is influenced by the source and quality of raw food, but also by the processing and production methods, the packaging and transport of semi-products and finished products. This leads to the necessity for a traceability system that would enable tracking the food product through the whole food chain, and also tracing the food end-product back to its origin, which is recognized as forward and backward traceability.

The EU Regulation 178/2002, which took effect on January 1 st 2005, set general foundations for traceability requirements in food sector in the EU and at the national level in EU member states [START_REF] Folinas | Traceability data management for food chains[END_REF]. According to this regulation, "traceability means the ability to trace and follow a food, feed, food-producing animal or substance intended to be, or expected to be incorporated into a food or feed, through all stages of production, processing and distribution". This regulation requires traceability of all the abovementioned food products and ingredients, identification of preceding and subsequent participants in the food supply chain, availability of this information to the competent authorities upon demand, and labeling of food products that are ready for the market.

The traceability system is supposed to enable all participants in the food chain to trace food products at all times and to provide full history for the specific product [START_REF] Abad | RFID smart tag for traceability and cold chain monitoring of foods: Demonstration in an intercontinental fresh fish logistic chain[END_REF], which includes the source of all raw food, treatments to which it was exposed during growing and harvest phase, processing, transport, etc. This system should also protect the consumers from buying out-of-date food, food that contains allergens, religiously prohibited food, etc. In the case of problems with safety and quality of a batch of food products, e.g. appearance of dangerous substances or microorganisms, such a system should enable withdrawal of these products from the market and prevent health disasters.

Traceability systems worldwide have been developed, but they lack standards, companies develop their own systems which are different, and are producing different economic results [START_REF] Regattieri | Traceability of food products: General framework and experimental evidence[END_REF]. Such systems are mainly developed internally within one company or within large food production chains, and they lead to large information gaps between the participants in the food chain. On the other hand, Daives (as cited by [START_REF] Kelepouris | RFID-enabled traceability in the food supply chain[END_REF]) states that 62.2% of European food companies are small and medium enterprises, they produce the largest amount of food products, but cannot expect the potential benefits from implementing traceability systems in comparison to the cost of work needed for implementing such a system, as they are not connected into a unified information system, which would allow efficient and transparent information flow in supply chains.

One of the challenges in traceability systems are means of storing and transferring data between participants in the food chain. Traditional systems include alphanumerical identification of food products, but such systems require manual identification of products, and are time consuming. Automated identification technologies such as barcode and RFID technologies enable automation of traceability systems and faster and less expensive data collection and transfer. These technologies can thus help overcome problems that exist with traditional traceability systems, and enable full integration of data in a food product chain. RFID and barcode technologies have become widely implemented in many areas due to the increasing availability of devices and systems that enable data collection through these technologies. The main challenge in implementing a traceability system based on automated identification technologies is the fact that food products greatly vary from one product to another, regarding the aggregate state, amount of products in a group package, methods of processing, packaging and transportation, storage temperatures, key product data, etc. In order to create a unified system, all of these features have to be taken into account, and the system set up in such a way that it is adaptable to various conditions in food chains.

Taking into account all the abovementioned, several hypotheses can be set: an automated identification system can be developed and applied for food product traceability through different stages; data that are generated in different stages of the food chain can be integrated in one database and thus can be used in subsequent stages; the data generated using automated identification technologies are significant for food safety. Research methodology that is applied for validating the hypotheses includes analysis and synthesis for developing a concept for food traceability based on automated identification technologies, and also experimental validation, that is planned for fulfillment in the next phase of research.

Relationship to Internet of Things

In the world of globalization and interconnecting various areas into one integrated whole, a very important aspect is the traceability of objects and linking important information into a unique system that allows access to this information to various users, to the appropriate extent. Such systems include systems for food products traceability, which are specific as they can influence human health. A system for food traceability discussed in this paper precisely allows interconnecting various data about food products, from the means, place and time of the farming of raw food, through its processing, packaging, transport and storing, and to its arrival to retailers and end consumers. Such a system should enable storing of all key data in an adequate database, and allow access to this database to various users and according to their position in the food chain and their privileges to enable viewing and/or updating specific food data. This system should be universal and applicable for different types of food products, and to easily provide incorporation of new participants in the process, in order to help the tendency for integration of all relevant data in a unique system. The main purpose of such a system is the availability of all the key data to the end user, which would enable them to more wisely choose products that they are buying, in accordance with their wants, needs, restrictions (e.g. for allergic, vegetarian, diseased consumer). Other very important aim of such a system is the possibility of fast reactions in the case of contaminated batches of food (e.g. with poisonous chemicals or bacteria), where the food can immediately be traced back to its origin and further spread of the contaminated food can be blocked and the already spread food withdrawn. Moreover, such a system can also help producers, as it enables them to recognize the actual demand for products on the market, the amount of their sold products as well as places and time when they are sold, which would let them create better market strategies.

State of the Art

As automated identification technologies had become widely used in various areas for tracking different types of objects, systems based on automated identification were also created for traceability of food products.

In [START_REF]Bar Coding and RFID: The Key to Traceability and Safety in the Foodservice Supply Chain[END_REF], a traceability system with the use of standard linear barcodes is presented, on a case company in the baking industry that started applying barcode labels to the cases and pallets in order to improve warehouse inventory system by recording quantity, location and product identification numbers. This system also allowed them to track the subsequent participants in the food chain, and help in risk situations when batches with bad products were accidentally released. The authors state that improved systems for product traceability can be achieved by using two-dimensional barcodes or RFID technology.

In [START_REF] Kelepouris | RFID-enabled traceability in the food supply chain[END_REF], the authors proposed an information infrastructure that enables traceability in the food supply chain by the application of RFID technology. The presented traceability system is cost effective and applicable in the chain of small and medium enterprises, which have limited financial capabilities. Every participant in the food chain has set up RFID readers. The data from food products is collected via RFID readers and sent to the central database through an IP network. The central database can be accessed through a web interface, and each participant in the food supply chain can view the adequate data. The authors state that the greatest potential for RFID application in a food supply chain is in particular in connecting different participants in the chain.

In the meat processing industry [START_REF] Schwagele | Traceability from a European perspective[END_REF], traceability systems have to enable tracing meat along the complete chain, back to the origin, as various diseases can influence the quality of meat. The traceability systems have to be considered the highest priority, and not just legislation, in order to ensure safe and high quality meat for the end consumer. In [START_REF] Chen | Using RFID technology in food produce traceability[END_REF] a case traceability system for chicken meat is presented, that integrates RFID technology with the information system. The system is applied through the complete food chain, from the farm, through slaughter house and processing factory, to the retailer. Food traceability data is gathered and registered through RFID readers, and sent to the central database. At specific places there are devices where a consumer can read data from the central database and get the required information.

In Japan [START_REF] Sugahara | Traceability System For Agricultural Products based on RFID and Mobile Technology[END_REF], an integrated traceability system was developed for identification of agricultural products and storing the key data from production to consumption stages, by the application of RFID technology, mobile phones and web-based network computing. This system enables farmers to input data for methods and materials used in the production stage through their mobile phones, and store them in the production database. Through the distribution stage, data is inputted to the distribution database, and RFID tags or barcodes are applied to the individual products, and they connect each product to the data in the production and the distribution database. Endconsumers can use their internet enabled mobile phones that have integrated RFID or barcode readers to scan data from the RFID tags or barcodes, and access the database with production and distribution data about the particular product.

The same author [START_REF] Sugahara | A database system and a visualization tool for agricultural product traceability based on RFID technology[END_REF] has developed a unique database system that integrates the previous production and distribution databases, and a visualization tool for traceability of agricultural products in the food chain. This database system allows changing of the ID tags of products through the chain, and concatenating all the available data about the product. The author states that the major drawback in using the RFID technology in a traceability system is the price of tags and devices used for the transfer of data and the time needed for tagging and reading each product.

In [START_REF] Regattieri | Traceability of food products: General framework and experimental evidence[END_REF] a traceability system is presented for a very expensive Italian cheese, Parmigiano Reggiano. This cheese is produced in large cylindrical pieces. In the presented traceability system, each cheese is labeled with one tag, which precisely identifies the specific cheese. The authors state that this system is applicable and effective as the price of the tag is irrelevant considering the price of the whole cheese. They consider RFID a good solution for traceability of high-value products like cheese or wine, while for the low-priced food products they propose systems still based on alphanumerical codes or barcodes.

Research Contribution and Innovation

The main objective of this paper is to set up a framework for a unique food traceability system that enables transfer of key product data through the entire product transformation chain, which uses automated identification technologies: RFID and two-dimensional barcodes. This framework should be adaptable to various food chains according to the specific demands for traceability of particular products.

RFID technology has many advantages for implementation in automated identification and traceability systems, such as the amount of data that can be contained in a tag, high reading speed of data, possibility of simultaneous reading of multiple tags, possibility of non-contact reading of data, etc. One of the major disadvantages of RFID technology is the price of its implementation and of single tags. This disadvantage affects the use of RFID technology in food product traceability systems, as the price of an RFID tag would greatly affect the price of a single food product. On the other hand, two-dimensional barcodes can store less but still a significant amount of data, and are not costly like RFID tags. They have other disadvantages, including the need for proximity of readers while reading labels, inability of readers to simultaneously read multiple labels, etc. One of the most often used two-dimensional barcodes is QR code, which can store a sufficient amount of data, has very good readability even on small sized labels, and which also has very good readability in case of physical damage of a part of the code. QR codes are mostly used for recording a certain numeric code or a URL to the website that contains information. In this paper the framework for a traceability system is proposed that uses both the RFID and QR codes for food product traceability, in which both the RFID and QR codes contain information about a particular product, which is therefore immediately readable with the use of an adequate reader.

The traceability system framework presented in this paper includes all the possible stages in a food chain, where the potential participants are: primary producers, processing industries, transport, retail and the end-consumer (Fig. 1). In a specific traceability system, it is not necessary that all of the above mentioned participants be present, but the system can consist of any possible combination thereof. Each participant in the chain represents a specific stage in the transformation of food.

At each of the transformation stages, specific data are generated that describe the current processes, methods used, place and time, etc. Each product gets a unique ID code, which is the primary key data for the product. All the important data at a particular stage are assigned to the unique ID code of the product, and recorded in the database, to which each participant in the food chain can connect via an IP based computer network. If the new product is a combination of several ingredients, its unique ID code is also connected to the ingredients' unique ID codes in the database, which enables traceability back to each raw product that is integrated in the current food product. This way, the database contains all the existing data about a specific product, which is also connected to the data originating from its ingredients. Also, accessibility levels must be set, to define to what extent subsequent users can reach specific product data in the database.

Moreover, at each stage, the key data is picked, which is significant for the subsequent participant in the chain, and it is incorporated in the label for each product in the form of a QR code. The QR code is chosen for this application as it can store a sufficient amount of data, and at the same time it is small, but can be read even if greatly damaged, can be placed on a sticker, and printed on many available printers.

Fig. 1. The concept for food product traceability based on automated identification technologies

An application rarely given to QR codes is the usage of their possibility of storing a sufficient amount of data in a small space, and not just a numeric code or the address of a website. For example, a QR code sized 25x25 mm which consists of 69x69 blocks, can store up to 321 characters of data. The data in the QR code can be accessed by the appropriate reader, such as a dedicated two-dimensional barcode reader or a smart phone with the adequate application. The mandatory data in the food product QR code is a unique ID code that can connect the user to the correct data in the database upon request. The important thing is that here the QR code is used for tagging each single product, with the corresponding information related solely to it. This enables the subsequent participant in the chain or the end consumer to easily access the most important data about the product without the need for internet connectivity, just by using a smart phone with the application for reading twodimensional barcodes, or a dedicated reader for two-dimensional barcodes. With the increase of everyday usage of smart phones, many users could read such labeling to immediately get the required information about the particular product. If such users install the dedicated application for reading detailed information about products, they can acquire additional information from the database through internet connection,

where they can check detailed information about the product or its ingredients at the available accessibility level.

A specific situation occurs in transport, where large amounts of products are simultaneously transferred between the participants in the chain. In the transport stages, products are usually packed in larger group packaging, such as boxes, cases, pallets, barrels, etc. or the products are themselves large. In transport, speed is a very important issue, and if each product or a group packaging should be read with barcode readers, it would require a lot of time. A possible solution to this challenge is to additionally label transport packaging with RFID labels with the required information about the contained products. The RFID technology enables storing of larger amounts of data than two-dimensional barcodes, more RFID tags can be read simultaneously and are readable from a distance with dedicated RFID readers. The disadvantage of RFID technology is its price, which is the reason why it is not yet widely available for identification and traceability systems of individual products. However, this disadvantage is not so significant during the transport stage, as the product packaging is usually large, and contains more products, therefore the use of a single RFID label for the entire packaging would not drastically affect the price of individual products. Furthermore, identification of RFID tags can be done automatically without the need for additional workers for reading labels and registering the products. The implementation of RFID tags during the transport stage would allow immediate registration of sent and received packages, which must be integrated in the whole information system for traceability of particular food products and synchronized between all partners in the chain. This should again be done through the database, where the particular products would get additional data about their new location.

Discussion of Results and Critical View

This paper provides a framework for a centralized unified system with the application of automated identification technologies for food product traceability. By reviewing the literature, no such complete system could be found, and on the other hand many regulations, both national and worldwide, require complete traceability of food products. There seems to be no single technology that can provide such a complete system for various kinds of existing food chains, which leads to the conclusion that several identification technologies must be integrated into a system where their individual advantages will be used, and disadvantages suppressed or even avoided. The proposed framework suggests exactly such a system, where two-dimensional QR codes would be used combined with the RFID technology, using their possibilities for easy integration into various information systems, large memory capacities for the required data, easy printing and application to the products etc. This way the proposed framework can be considered general for use in any food product traceability system. The suggested traceability system based on automated identification technologies must be implemented in various food product chains, and validation of the proposed framework must be carried out in different conditions in order to reach the real impact that the proposed solution potentially has.

Conclusions and Further Work

The paper presents a possible conceptual framework for combined application of QR codes and RFID technology in a traceability system for food products. Such traceability systems are very important as they provide the end consumer with information from all the previous stages of the food product, including the information about the origin of the product ingredients, the means and places of food production and processes, the transportation and storage information, etc. By the implementation of the proposed framework in a traceability system, the end consumers can easily get important information about a particular product, and if interested, they can check further information about the product from the database, which enables them to make better decisions when choosing an appropriate product.

In order to validate the proposed framework, further work must include experimental implementations in as many different food product chains as possible, where also primary producers, food processing industries, transporters and retailers must be included and educated to accept such a system upgrade and integrate it with their current information infrastructures. Only by such real implementations, challenges can be revealed that are not obvious in the theoretical analysis, the existing problems can be solved and the system framework improved.


Tiago Caldeira
email: tiago.caldeira@kustar.ac.ae

Lakmal Seneviratne

Jorge Dias

Indoor Exploration Using a µUAV and a Spherical Geometry Based Visual System

Keywords: Vision, µUAV, Spherical Geometry, Indoor, Ego-motion, Trifocal tensor, Motion Flow

This research presents a new vision system that explores a spherical geometry and will be provide innovative solutions for tracking, surveillance, navigation and mapping with micro Unmanned Aerial Vehicle (µUAV) in unknown indoor environments. The system will be used with µUAV in indoor environment and it is composed by twenty six cameras that are arranged in order to sample different parts of the visual sphere around the µUAV. This configuration allows that some of the cameras will have overlapped field of view. This system has been designed for the purpose of recovering ego-motion and structure from multiple video images, having a distributed omnidirectional field of view. We use the spherical geometry to extend the field of view, from one single direction to a single point of perspective, but with multiple views. This manuscript will prove that spherical geometric configuration has advantages when compared to stereo cameras for the estimation of the system's own motion and consequently the estimation of shape models from each camera. The preliminary field tests presented the theoretical potential of this system and the experimental results with the images acquired by 3 cameras.

Introduction

Mobile robots are important artifacts for the exploration of unknown areas, not only in hazard situations, but also as an extension of human capabilities. Those so called explorer robots can be developed to navigate in unleveled terrain. Both semiautonomous and completely autonomous machines allowed a real time report of otherwise impossible places to visit. On the last decades researchers expanded their attention to others than Unmanned Ground Vehicles (UGV), for example, µUAV. The most challenging part of 3D mapping is obtaining the full 6 Degrees of Freedom (DOF) of pose of the robot between each scan [START_REF] Morris | 3D Indoor Mapping for Micro-UAVs Using Hybrid Range Finders and Multi-Volume Occupancy Grids[END_REF]. The vehicle position and orientation, is, in most cases, estimated with the combination of inertial sensors and GPS, but in indoor GPS denied environments tends to create an important barrier from the fully autonomous exploration [START_REF] Ahrens | Vision-based guidance and control of a hovering vehicle in unknown, GPS-denied Environments[END_REF]. To complete the autonomous exploration, problems like localization and mapping unknown environments need to be solved. One way of achieving this is with the use of laser sensors or vision systems. Advances have been made in the use of vision sensors for target tracking and obstacle avoidance or to estimate vehicle pose [START_REF] Achtelik | Stereo Vision and Laser Odometry for Autonomous Helicopters in GPS-Denied Indoor Environments[END_REF], but the traditional stereo configuration does not provide enough information nor covers the totality of the space. In order to complete the visual information, inertial sensors were added to the system. The inertial sensed gravity [START_REF] Lobo | Integration of Vision and Inertial Sensing[END_REF][5] provides a vertical reference for the spherical vision system, enabling to establish an artificial horizon line and vertical features. Between each pair of cameras there is a rigid transformation that could be determined using a calibration process [START_REF] Lobo | Relative Pose Calibration Between Visual and Inertial Sensors[END_REF], getting the rectification of the stereo configuration and generate the epipolar constrains, and generating the optical flow [START_REF] Dias | Optical Normal Flow Estimation on Logpolar Images. A solution for Real-Time Binocular Vision[END_REF].

In this paper we intend to demonstrate some of the advantages of the spherical geometry for multiple cameras complemented with inertial data in order to be successfully solving problems of tracking, surveillance, navigation and mapping.

In the next section it will be presented the relation with the Internet of Things (Section 2), followed by the research in UAV field and vision based controls (Section 3). The proposed solution and mathematical support (Section 4) will be complemented with some of the implementation details and the progress towards the full sensor developing (Section 5) that lead us to the conclusions and future work (Section 6).

Relationship to Internet of Things

When explaining the definition of "Internet of Things", Kevin Ashton [START_REF] Ashton | That 'Internet of Things' Thing[END_REF] mention that "people have limited time, attention and accuracy -all of which means they are not very good at capturing data about things in the real world". This extension to the man capabilities was always present during the development of this project. In the early stages of development of this project, we intended to create a unique capturing device that not only capture video from all of its surroundings but also could be able to identify and track people or objects. By analyzing and categorizing moving objects, it will provide enough information for an organized database which could grow without human interaction. With multiple systems like this and if them are complemented with network connection, multiple nodes will act as smart and autonomous data collection spots, presenting content to the Internet of Things.

Related Work

In the last decade, many authors increased their research on the implementation of control algorithms of flying devices, mainly µUAV. Those devices have been used in multiple research goals, but with the goal of autonomous navigation or mapping an unknown environment. The first approaches on the UAV control were only focused on outdoor environments, where there was more space of maneuver and where GPS Indoor Exploration Using a signals were an important data to close the loop regarding the position and velocity of the UAV. Samir Bouabdallah and R of an UAV based on a quadrotor configuration. To achieve autonomy, the UAV needs a navigation system, and many authors proposed several solutions for indoor navig tion systems [10][11][12 also for map the environment. Active s combined with visual elements avoidance and simple navigation Grzonka et al. [START_REF] Grzonka | A fully autonomous indoor quadrotor[END_REF], quadrotor based on LIDAR technology. ture to explore and map unstructured and unknown indoor environmen known and unstructured environments were also the base for another research by Blöesch, Scaramuzza et al. [START_REF] Blöesch | Vision Based MAV Navigation in Unknown and Unstructured Environments[END_REF], but using a visual approach to this problem.

Research Contribution and Innovation

In this paper we present our progress towards a new multiple cameras in a spherical geometry merged with inertial sensors.

This system is composed by same intrinsic parameters are equally distributed complemented with one camera in each pole

Fig. mechanical

Indoor Exploration Using a µUAV and a Spherical Geometry Based Visual System signals were an important data to close the loop regarding the position and velocity of Samir Bouabdallah and Roland Siegwart [START_REF] Bouabdallah | Full Control of a Quadrotor[END_REF] proposed an approach for full con of an UAV based on a quadrotor configuration. To achieve autonomy, the UAV needs a navigation system, and many authors proposed several solutions for indoor navig 12]. Different methods have been used to not only navigate but also for map the environment. Active sensors like lasers or ultrasonic sensors where combined with visual elements [3][13]. The use of visual information for avoidance and simple navigation [START_REF] Ahrens | Vision-based guidance and control of a hovering vehicle in unknown, GPS-denied environments[END_REF] was also object of research.

], already provided a solution to a fully autonomous indoor tor based on LIDAR technology. Bachrach et al. [START_REF] Bachrach | Autonomous Flight in Unknown Indoor Environments[END_REF] using a similar archite ture to explore and map unstructured and unknown indoor environments. The u known and unstructured environments were also the base for another research by Blöesch, Scaramuzza et al. [START_REF] Blöesch | Vision Based MAV Navigation in Unknown and Unstructured Environments[END_REF], but using a visual approach to this problem.

Research Contribution and Innovation

In this paper we present our progress towards a new vision system that combines multiple cameras in a spherical geometry merged with inertial sensors. This system is composed by twenty six symmetrically distributed cameras with the same intrinsic parameters. As presented in Fig. 1, there are groups of 8 cameras distributed along the equatorial line and along the tropic lines complemented with one camera in each pole. With this configuration, the angle b for full control of an UAV based on a quadrotor configuration. To achieve autonomy, the UAV needs a navigation system, and many authors proposed several solutions for indoor navigamethods have been used to not only navigate but like lasers or ultrasonic sensors where obstacles already provided a solution to a fully autonomous indoor using a similar architects. The unknown and unstructured environments were also the base for another research by Blöesch, Scaramuzza et al. [START_REF] Blöesch | Vision Based MAV Navigation in Unknown and Unstructured Environments[END_REF], but using a visual approach to this problem.

vision system that combines distributed cameras with the cameras that lines. This is With this configuration, the angle be-tween any two consecutive cameras is always ߨ 4 ⁄ radians. The coordinates of each camera is always C ఝ,థ where ߮ is the angle on z-axis and ߶ the angle on x-axis.

In the center of the sphere is a 6 DOF inertial sensor that will provide the system accelerations and orientations.

Geometry Relationships and Models

Using a spherical geometry allow a unique transformation between each pair of cameras. Even without a complete overlap between all cameras, it is possible to see all of the extension of the exterior space.

The center of projection of the camera C ఝ,థ could be obtained with a rotation on xaxis R x ሺ߶ሻ and z-axis R z ሺ߮ሻ from the frontal camera C 0,0 using [START_REF] Morris | 3D Indoor Mapping for Micro-UAVs Using Hybrid Range Finders and Multi-Volume Occupancy Grids[END_REF].

R C 0,0 େ ക,ഝ = R z ሺ߮ሻ R x ሺ߶ሻ (1)
where ߮ = , (∀m∈M=൛-3,…,0,…,4ൟ∧ ∀n∈N={-2,-1,0,1,2}) That way, the relation between a camera i (C ఝ,థ ) with any other camera j (C ఝ′,థ′ ) could be determined with [START_REF] Ahrens | Vision-based guidance and control of a hovering vehicle in unknown, GPS-denied Environments[END_REF].

ܴ େ ക′,ഝ′ େ ക,ഝ = ܀ ௭ ሺ߮′ -߮ሻ ܀ ௫ ሺ߶′ -߶ሻ (2)
By using developments on [START_REF] Hartley | Multiple View Geometry in Computer Vision[END_REF] and assuming that the intrinsic parameters among these two cameras are equal, the homography H i j between the images could be described in [START_REF] Achtelik | Stereo Vision and Laser Odometry for Autonomous Helicopters in GPS-Denied Indoor Environments[END_REF] where K represents the intrinsic parameters (the same in both cameras).

۶ ୧ ୨ = ۹ ܀ ୧ ୨ ۹ ିଵ (3)
That way, it is possible to calculate the epipolar constrain between the cameras (4).

݁ j =P ' ൬ 0 ሬԦ 1 ൰ =K t i j (4)
The fundamental matrix, F, is obtained in [START_REF] Corke | An introduction to inertial and visual sensing[END_REF].

۴ ୧ ୨ = ሾ݁ ୨ ሿ × ۹ ܀ ۹ ିଵ = ሾ݁ ୨ ሿ × ۹ ܀ ௭ ሺ߮′ -߮ሻ ܀ ௫ ሺ߶′ -߶ሻ ۹ ିଵ (5)
The unique setup of the geometry between the cameras allows the simplicity of the calculation not only between two, but also with each three cameras. The trifocal tensor [START_REF] Hartley | Lines and points in three views and the trifocal tensor[END_REF] could be approached using the relationship of three corresponding lines. The lines ܔ ܑ , ܔ ܒ and ܔ ܓ are the projection of L (line in space) on each of the cameras i (C ఝ,థ ), j (C ఝ′,థ′ ) and k (C ఝ′′,థ′′ ) as represented in Fig. 2.

Assuming the origin at camera I and using development of Hartley et al. [START_REF] Hartley | Lines and points in three views and the trifocal tensor[END_REF], the cameras matrices for the three views would be

P i =[I|0 ሬԦ ], P j =[ H i j |e j ], P k =[ H i k |e k ],
where H i j and H i k are the homography matrix between cameras j and i, and k and i respectively (calculated in (3)), while ݁ j and ݁ k are the epipolar constrain from camera j and k to i , as calculated in (4). Recovering the equation

l a =l j T ቀ H i j a ݁ k T -݁ j H i k a
T ቁ l k where l represents the ܽ coordinate of ܔ ܑ . Moreover, by definition, l a =l j T ܂ l k , what is equivalent to present the notation in [START_REF] Lobo | Relative Pose Calibration Between Visual and Inertial Sensors[END_REF].

܂ = ቀ ۶ ୧ ୨ ݁ ୩ ் -݁ ୨ ۶ ୧ ୩ ் ቁ (6)
Using the equations ( 2) and ( 3) that refers about the particular cameras configurations, the equation ( 6) could be rewrite as [START_REF] Dias | Optical Normal Flow Estimation on Logpolar Images. A solution for Real-Time Binocular Vision[END_REF].

܂ = ሾ۹ ܀ ௭ ൫߮ ′ -߮൯ ܀ ௫ ൫߶ ′ -߶൯۹ ିଵ ሿ ݁ ୩ ் -݁ ୨ ሾ۹ ܀ ௭ ൫߮ ′′ -߮൯ ܀ ௫ ൫߶ ′′ -߶൯۹ ିଵ ሿ ் (7)
We could define the trifocal tensor T i jk between the cameras i, ݆ and k, as being

T i jk =[T x ,T y ,T z ]
. This result could be used to extract the fundamental matrix between the cameras i and j in [START_REF] Ashton | That 'Internet of Things' Thing[END_REF].

۴ ୧ ୨ = ሾ݁ ୨ ሿ × ሾ܂ ௫ , ܂ ௬ , ܂ ௭ ሿ݁ ୩ (8)
This equation [START_REF] Ashton | That 'Internet of Things' Thing[END_REF] shows that it is possible to recover the relationship between each subset of three cameras using the Trifocal tensor and the epipolar lines. Taking advantage of the unique relation between each cameras (pure rotations on x-axis and zaxis) the calculation will be simplified.

Motion Flow Properties in Image Plan

One very important part of our research is related with the movement of the entire system motion flow. In order to simplify the calculations we analyze the system using the camera C , as reference. Assuming a three dimension motion has two components: translation and rotation.

If we define the projection ሬ ሬԦ=݂ P Z ⁄ , with p the image point, = ሾܺ ܻ ܼሿ ் the scene point with a depth Z, we could define the equation ( 9), where V is the world motion, T the translation and ω a vector that represents the rotation.

V=-T -ω×P

Assuming that between two consecutives frames the motion is small, we could derive the both sides of the projection equation. Using the previous equation ( 9) and from the image perspective analyzing its velocity projection components, we obtain the equations in [START_REF] Sobers | Indoor Navigation for Unmanned Aerial Vehicles[END_REF].

= ݂ ି܄ ۾ మ = ቐ ݒ ௫ = ் ௫ି் ೣ -߱ ௬ ݂+߱ ௭ ݕ + ఠ ೣ ௫௬ - ఠ ௫ మ ݒ ௬ = ் ௬ି் +߱ ௫ ݂ -߱ ௭ ݔ - ఠ ௫௬ + ఠ ೣ ௬ మ ⟺ ⟺ = ଵ -݂ 0 ݔ 0 -݂ ݕ ൨ ܂ + ௫௬ -݂ - ௫ మ ݕ ݂ + ௬ మ - ௫௬ ݔ- (10)
From this equation [START_REF] Sobers | Indoor Navigation for Unmanned Aerial Vehicles[END_REF] we see that is difficult to decouple the motion from rotations around x-axis or y-axis of the camera. Therefore, we use inertial sensors to confirm those. The relation between inertial sensor and the camera axis is represented on Fig. 3.

Visual and Inertial Integration

Inertial information provided by accelerometer and gyroscopes are by themselves very important to obtain the attitude and motion parameters of the vision system.

However, the accelerometer provides the linear acceleration in the 3 axes of , sensing the gravity vector summed with the visual system acceleration ௌௌ்ாெ . If the vision system is attached to the UAV ( ௌௌ்ாெ ≡ ሻ, then the acceleration could be defined in [START_REF] Achtelika | Autonomous navigation and exploration of a quadrotor helicopter in GPS-denied indoor environments[END_REF].

= -+ (11)
This will mean that, if the system is motionless ( = 0), only the gravity will be present, allowing the system to have a vertical reference from the gravity, and calculate the orientation ݊ of the UAV using [START_REF] Girish Chowdhary | Integrated Guidance Navigation and Control for a Fully Autonomous Indoor UAS[END_REF].

݊ ො = ݊ ௫ ݊ ௬ ݊ ௭ ൩ = - ‖‖ = ଵ ට ೣ మ ା మ ା మ ܽ ௫ ܽ ௬ ܽ ௭ ൩ (12)
The gyroscope measures the rotational acceleration in the 3 axes, and it is possible to separate the gravity from the sensed acceleration by performing the rotation update [START_REF] Lobo | Integration of Vision and Inertial Sensing[END_REF].

As the inertial sensor is fixed in the center of the sphere as soon as we determine the orientation ݊ ො of the device, we could calculate the orientation ܿ̂ of every camera C ఝ,థ , based on the rotation between the inertial system and the C , in equation [START_REF] Morris | 3D Indoor Mapping for Micro-UAVs Using Hybrid Range Finders and Multi-Volume Occupancy Grids[END_REF].

ܿ̂= ܿ ௫ ܿ ௬ ܿ ௭ ൩ = େ బ,బ ூெ େ ക,ഝ େ బ,బ ݊ ො (13)
The େ బ,బ ூெ could be easily determined using calibration [START_REF] Lobo | Relative Pose Calibration Between Visual and Inertial Sensors[END_REF]. Having the complete pose information of each camera, it is possible to predict location of the horizon line, from where it is also possible to easily identify vertical features on each image.

Implementation and Experimental Setup

In order to present the initial proof of concept, only one oct part of the sphere where designed. Using the configuration displayed in Fig. 4 it was possible to test different angles configurations. Each camera is connected through at a 43 frames per second ( connected on the same bus. algorithms.

Experiments

The initial experiments proved the system concept and the correspondence between points in cameras were the expected. captured and displayed simultaneous a also validated in order to confirm the orientation of the system. board was also important in order to calibrate the trifocal tensor.

After calibration (between each camera and with the inertial system) a set of ima es were collected from the three cameras (key frames selected and then grouped on Fig. 6) where two people move in opposite directions. W sible to recover the motion on space of each person. Each camera is connected through a serial connection link (USB) and could display frames per second (fps) rate, value that decreases when multiple cameras are the same bus. This frame rate is enough to use vision based

The initial experiments proved the system concept and the correspondence between points in cameras were the expected. Images from the three cameras (see Fig. captured and displayed simultaneous at a 25 fps rate. The inertial data captured was validated in order to confirm the orientation of the system. The square ches board was also important in order to calibrate the trifocal tensor.

After calibration (between each camera and with the inertial system) a set of ima es were collected from the three cameras (key frames selected and then grouped on Fig. 6) where two people move in opposite directions. With this set of images is po sible to recover the motion on space of each person. and could display rate, value that decreases when multiple cameras are to use vision based tracking

The initial experiments proved the system concept and the correspondence between Images from the three cameras (see Fig. 5) were nertial data captured was The square chess-After calibration (between each camera and with the inertial system) a set of images were collected from the three cameras (key frames selected and then grouped on ith this set of images is pos-

Conclusions and Future Work

We introduced a visual system based on multiple cameras with a spherical geometry with a complete field of view. This system simplifies the mathematical equations for correspondence and movement perception. The use of an orthogonal matrix (rotation matrix) in the homography and epipolar calculation will reduce the calculation time.

The first trials provided enough data to test basic vision algorithms and proved the capability and potential future of the system. Other algorithms could be developed and proved based on this system, eventually aiming an autonomous µUAV to explore, navigate and map indoor environments.

Fig. 1 .

 1 Fig. 1. Three-dimensional representation of the echanical design with the cameras information and inertial sensor position.

Fig. 2 .

 2 Fig. 2. Symbolic representation of three cameras representing the line L.

Fig. 3 .

 3 Fig. 3. Inertial and camera C , referential

Fig. 4 .

 4 Fig. 4. Hardware used on the trials, (a) 3D printed version of part the Sphere(b) UI 1226LE-M camera from IDS-Imaging (c) 6DOF Inertial Measurement Unit.

Fig. 6 .

 6 Fig. 6. Sequence with 6 frames from

  Fig.

Fig. 5 .

 5 Fig. 5. Cameras Position, Attitude Control and respective Images -Cഏ ఴ , ഏ ర (top) C 0,0 (left) and Cഏ ర ,0