Cloud Computing is a dynamically scalable computing paradigm that provides virtual resources through the internet to users aiming at saving costs while maintaining high availability of the resources. Maintenance systems are usually based on offline statistical analysis of log records – a preventive maintenance approach generally based on constant time intervals. Recently, online computational-intelligence-based frameworks, namely evolving fuzzy and neuro-fuzzy frameworks [27, 4, 9, 12, 26]
, combined with incremental machine-learning algorithms have been considered for on-demand anomaly detection, autonomous data classification, and predictive maintenance of an array of systems[31, 29, 3, 23].
The background of the present study is the main Italian WLCG (Worldwide Large-hadron-collider Computing Grid) data center, the Tier-1 hosted in Bologna. The WLCG involves 170 computing centers in 42 countries. It consists in a grid structure that supports the CERN physics experiments performed at the biggest particle accelerator in the world. The WLCG is organised in a multi-layer-distributed computing system, namely, tiers, which are numbered from 0 (at CERN facilities), to 3, in descending order of importance.
The Tier-1 Bologna is hosted by the Computing Center of the Italian Institute of Nuclear Physics (INFN-CNAF). Its infrastructure consists of approximately 40,000 CPU cores, 40 PB of disk storage, and 90 PB of tape storage, connected to the Italian (GARR) and European (GÉANT) research networks. Currently, it collects log data from 1197 machines in total. The computing center undergoes a technology exchange process aiming to provide all resources through cloud services.
An important task of the WLCG computing center concerns the efficient use of the system resources, such as the resources used for system maintenance. In addition, user logs are noticed as service-oriented unstructured data. Large volumes of data are produced by a number of system logs, which makes the implementation of a general-purpose log-based predictive maintenance solution challenging . Logging activity means the rate of lines written in a log file. The logging activity rate depicts the overall computing center behaviour in terms of service utilization. The rate may be used to monitor and detect service behavior anomalies to assist predictive maintenance focused on specific time intervals.
Being log data processing a highly time and resource-consuming application, an important issue concerns the identification of the most promising pieces of log files using an online machine learning strategy. This way, priority may be given to such log fragments, which maximizes the likelihood of finding useful information to the system maintenance.
Many attributes should be extracted from log timestamps, i.e., from time information related to the moment of log record writing. These attributes establish a sequence of encoded information that summarizes the system use in a time interval. The encoded information we emphasize are the mean, maximum difference between two consecutive means, variance, and minimum and maximum number of system accesses, as noticed in time windows between landmarks. We consider that the system activity impacts the log activity proportionally. Moreover, we propose a dynamic control-chart-based approach to label online data instances autonomously.
This paper addresses the dynamic log-based anomaly detection problem in cloud computing context as an unbalanced multiclass classification problem in which the classes refer to the severity of anomalies and the usual system behavior. A Fuzzy-Set-Based evolving Model (FBeM)  and an evolving Granular Neural Network (eGNN)  are developed from a stream of data dynamically extracted from time windows. FBeM and eGNN are supported by incremental learning algorithms able to keep their parameters and structure updated to reflect the current environment. As time windows are classified as containing anomalies, predictive maintenance can focus on that specific log information – a small percentage of the whole. FBeM and eGNN are compared in classification accuracy, model compactness, and processing time.
The remainder of this paper is organised as follows. Section II presents a StoRM service use case. Section III describes the evolving fuzzy and neuro-fuzzy approaches to anomaly classification. The methodology is given in Section IV, and the results and discussions in Section V. Conclusions and future research are outlined in Section VI.
Ii The Data Storage Service
The predictive maintenance problem applied to computing centres is a CERN hot topic, highlighted by the programmed system upgrade, High-Luminosity Large Hadron Collider (HL-LHC) project. This project intends to increase luminosity by a factor of 10 beyond the LHC’s initial design value. Once luminosity is proportional to the rate of particle collisions, increasing the luminosity will enlarge the volume of data and experiments substantially.
Many efforts have been done to maintain the quality of service (QoS) of the WLCG. In particular, at the Tier-1 computing center at Bologna, supervised machine learning methods to predict anomalies of the StoRM service 
have been considered by using ad-hoc data processing methods. Another initiative concerns a system based on the Elastic Stack Suite to collect, parse and catalogue log data, as well as classifying anomalies using an embedded unsupervised-learning tool. With the goal of characterising log files, a clustering method based on Levenshtein distance was proposed in 
, and a semi-supervised learning method in.
Close to the aim of the present paper, it is worth mentioning an offline prototype for anomaly detection using a One-Class method to classify anomalous time windows based on logging activity . The present paper extends the offline anomalous time-window-based approach in  to evolving granular computing and online fuzzy and neuro-fuzzy frameworks. A Fuzzy-set-Based evolving Modeling, FBeM, approach  and an evolving Granular Neural Network, eGNN, approach  are compared considering online anomaly detection based on logging activity. Particularly, the log data stream in question comes from the StoRM Back-end file produced by the Tier-1 Bologna. FBeM and eGNN are applicable to and learn autonomously from any event-oriented log file.
Storage Resource Manager (SRM) is a service that provides the storage system used by INFN-CNAF. SRM aims to provide high performance to parallel file systems, such as the GPFS (the IBM General Parallel File System) and POSIX (Portable Operating System Interface), through a graphic interface to INFN-CNAF infrastructure users. SRM has modular architecture constitute by StoRM Front-end (FE), StoRM Back-end (BE), and databases (DB) . The FE module manages user authentication, and store and load requests. The BE module is the main StoRM component regarding functionality. It executes all synchronous and asynchronous SRM operations, which allows interaction among grid elements. The SRM modules and their relations are shown in Fig. 1.
All modules handle unstructured log data and two or more types of log writing mechanisms, such as scheduled and event-oriented mechanisms. There is, however, a common information to all log files which is the timestamp of the log record writing. Based on such timestamps, it is possible to group log files in time windows to monitor the logging activity rate. As scheduled log data follows a regular logging activity, we focus on event-oriented data.
Iii Evolving Granular Classifiers
A diversity of evolving classifiers have been developed based on typicality and eccentricity concepts , local strategies to smooth parameter changes , self-organization of fuzzy models , ensembles of models , scaffolding fuzzy type-2 models , double-boundary granulation , semi-supervision concepts , interval analysis , and uncertain data and multi-criteria optimization [4, 14].
This paper compares FBeM and eGNN as evolving classifiers for anomaly detection. The classifiers: (i) evolve over time; (ii) are based on fuzzy rules, codified in a neural network or not; and (iii) granulate the data domain incrementally. The evolving classifiers adapt to new scenarios. In other words, their parameters and structure are learned on the fly, according to the data stream. Prototype initiation is needless. Hence, their accuracy tends to increase over time by means of recursive machine learning mechanisms .
Data instances are classified using a set of fuzzy rules extracted from previous data. Each fuzzy rule is associated to a granule, and each class is represented by at least one granule and rule. The main difference between these methods is the strategy to generate and update granules and rules, which provide different decision boundaries.
Data granulation, granularity, and granular models come from the Granular Computing (GrC) theory . GrC is based on the fact that precision may be expensive and is usually an unnecessary task for modelling complex systems 
. GrC provides a framework to express information in a higher level of abstraction. Granular learning, in this paper, means to fit new numerical data in granular models. Fuzz granules and aggregation neurons can be added, updated, removed and combined along the learning steps. Therefore, FBeM and eGNN capture new information from a data stream, and self-adapt to the current scenario.
Iii-a FBeM: Fuzzy Set-Based Evolving Modeling
FBeM is an online classifier based on fuzzy rules, which supports intense data streams. FBeM uses an incremental learning algorithm, and provides nonlinear class boundaries .
Being an adaptive fuzzy classifier means that the model consists of a time-varying amount of elements (granules) of granularity . In this paper, the -th fuzzy set on the -th domain is described by a trapezoidal membership function , which is shape-evolving within a maximum extension region, . A datum may have partial membership on .
FBeM rules associate granules to class labels. The rule
holds within the limits of the granule. Time-varying rules compose the whole model . An input instance is denoted by ; and
is the estimated class. A time-indexed pair,, is an entry of the data stream – being the actual class.
The most active rule for comes from
in which and are the and operators.
The width of is
in which is the model granularity.
A different initial produces different classifiers. However, changes autonomously over time from
in which is the growth rate; , and is the amount of granules at the -th time step; .
The fuzzy set can be expanded within the region . The expansion region is defined by
is the midpoint of .
As changes over time, if at least one entry, , of x does not belong to some , , then a new rule is created. Its membership functions are
Otherwise, if a new x belongs to an , then the -th rule is updated according to one of the following options:
For a complete description on updating, removing, conflict resolution, and merging procedures see . The FBeM algorithm is summarized below. Notice that we introduced a weak label to instances by means of a control chart approach, as described in the methodology section.
FBeM Learning: Fuzzy Set-Based Evolving Modeling
Iii-B eGNN: Evolving Granular Classification Neural Network
eGNN is a neuro-fuzzy granular network constructed incrementally from an online data stream . Its processing units are fuzzy neurons and granules, used to encode a set of fuzzy rules extracted from the data, and the neural processing conforms with a fuzzy inference system. The network architecture results from a gradual construction. The consequent part of an eGNN rule is a class in this paper.
Iii-B1 Neural Network
Consider that the data stream , , is measured from an unknown function . Inputs and output are numerical data and a class. Figure 2 shows a four-layer eGNN model. The input layer receives . The granular layer is a set of granules , , stratified from input data, forming a fuzzy partition of the -th input domain. A granule is a fuzzy relation, i.e., a multidimensional fuzzy set in . Thus, has membership function in .
Similarity degrees is the result of matching between and trapezoidal fuzzy sets , with . In general, data and granules can be trapezoidal objects. A similarity measure to quantify the match between a numerical instance (the case of this paper) and the current knowledge is :
The aggregation layer is composed by neurons . A fuzzy neuron combines weighted similarity degrees , into a single value , which refers to the level of activation of . The output layer processes using a neuron that performs the maximum S-norm. The class of the most active rule is the output.
Under assumption on specific weights and neurons, fuzzy rules extracted from eGNN are of the type
Iii-B2 Neuron Model
Fuzzy neurons are neuron models based on aggregation operators. Aggregation operators , , combine input values in the unit hyper-cube into a single value in . They must satisfy the following: monotonicity in all arguments and boundary conditions . This study uses the minimum and maximum operators only [20, 2]. Figure 3 shows an example of fuzzy neuron in which synaptic processing is given by the T-norm product, and the aggregation operator is used to combine individual inputs. The output is .
Iii-B3 Granular Region
As is a trapezoidal membership function, its support, core, midpoint, and width are
It is possible to expand the width of fuzzy sets within the area delimited by , i.e., wdt. is given by . Clearly, wdt wdt.
The value of affects the information granularity, and consequently the model accuracy. is used to control the size of expansion regions.
eGNN starts with an empty rule base, and is used as default. Let be the number of rules created in steps, and be a reference rate. If the number of rules grows faster than the rate , then is increased, otherwise is reduced, as in Eq. (4). Appropriate values for are found autonomously. If , then eGNN is structurally stable, but unable to capture abrupt changes. Conversely, if , then eGNN overfits the data causing excessive model complexity. Adaptability is reached from intermediate values.
Reducing requires reduction of big granules according to
Cores are handled in a similar way.
Iii-B5 Developing Granules
If the support of at least one entry of x is not enclosed by expansion regions , eGNN generates a new granule, . This new granule is constituted by fuzzy sets whose parameters are
Updating granules consists in expanding or contracting the support and the core of fuzzy sets . In particular, is chosen from .
Adaptation proceeds depending on where in placed in relation to .
Operations on core parameters, and , require additional adaptation of the midpoint
Therefore, support contractions may be needed:
Iii-B6 Updating Neural Network Weights
is proportional to the importance of the -th attribute of to the neural network output. When a new granule is generated, weights are set as , .
The updated , associated to the most active granule , , are
in which is the similarity to ; depends on the number of right () and wrong () classifications
in which is the current estimation error, and is a weak label provided by the control chart approach described in the methodology section.
Iii-B7 Learning Algorithm
The learning algorithm to evolve eGNN classifiers is given below.
eGNN Learning: Evolving Granular Neural Network
rule activation levels;
A control-chart-based approach is proposed as a way to label the log stream. Time-windows are classified according to the anomaly severity and standard deviations from the usual system behavior. We provide description of the dataset, attributes, and evaluation measures.
Iv-a Tagging Strategy
A control chart is a time-series graphic used to monitor a process behavior, phenomenon or variable using the Central Limit Theorem. It is based on the mean
of a random variable
that follows a normal distribution.
Let , , be a sequence of values that represent the log activity rate, calculated using a fixed ; . The bounds of the time window, and , are equal to and . In addition, let be the mean of , thus
Then, is a stream of means.
Figure 4 shows how an instance is labelled from a control chart. The mean of is
The -th upper and lower horizontal lines in relation to refer to the -th standard deviation,
If and , then, for , the instance is tagged as ‘Class 1’, which means normal system operation. If , then is tagged as ‘Class 2’, ‘Class 3’ and ‘Class 4’, respectively, see Fig. 4
. These mean low, medium, and high-severity anomaly. The probability thatis within each class is 67%, 28%, 4.7%, and 0.3%, respectively. The online anomaly detection problem is unbalanced, and the labels are weak.
Iv-B Dataset Description
StoRM service generates a stream of time-indexed log records. Each log entry is composed by timestamp related to the writing moment, and the message itself. In this work, we are focused on the logging activity, and analysis of the message content is out of the paper scope.
We extract 5-metrics from the original log file considering fixed time windows, generating vector sequence of, whose elements are , , , , and . The latter metrics means the maximum difference of the amplitude of two consecutive , in which .
A vector is associated to a class label that, in turn, indicates the system behavior. The true label, , is available after an estimation, , is provided by the FBeM or eGNN model. When available, the pair is used by the learning algorithms for an updating step.
Iv-C Evaluation Measures
We use three measures to evaluate classifiers performance: (i) classification accuracy, (ii) average number of granules or rules; and (iii) execution time. The former are calculated using recursive relations.
Classification accuracy, , is obtained from
in which if (right estimation); and are the estimate and actual classes. Otherwise, (wrong class estimation).
The average number of granules or rules over time, , is a measure of model concision. It is computed as
The execution time using a DELL Latitude 5490 64-bit quad-core (Intel Core i58250U, 8GB RAM) is also given.
We compare FBeM and eGNN for anomaly classification in a computing center using attributes extracted from logging activity. Experiments do not assume prior knowledge about the data. Classification models are evolved from scratch based on the data stream.
V-a Performance Comparison
We compare the evolving fuzzy and neuro-fuzzy granular classifiers in terms of accuracy, model compactness, and processing time. In a first experiment, we set within and , , and the granularity around and . The level evolves during the learning process. These meta-parameters allowed the generation of FBeM and eGNN models with about 10 to 14 rules – a reasonably compact structure.
Table I shows the results of FBeM and eGNN. Results are averaged over 5 runs of each method for each window length, and shuffled datasets, as described in Sec. IV. In other words, for a single window length, a unique dataset is produced, but its instances are shuffled differently, 5 times. The window lengths in minutes are . Each dataset consists of 1,436 instances, 5 attributes, and a class label, which is generated automatically by the control chart approach for model supervision. Four classes are possible. Classes 1 to 4 mean ‘normal system operation’, ‘low severity’, ‘medium severity’, and ‘high severity’ anomaly, respectively.
|Time Window (min)||(%)||# Rules||Time (s)|
|Time Window (min)||(%)||# Rules||Time (s)|
Table I shows that the classification performance of both methods increase for larger time windows regarding similar model compactness, i.e., from 10 to 14 rules. The low-pass filter effect strongly impacts the FBeM accuracy, which improves about from the worst to the best case. The best FBeM scenario () is, however, comparable to the worst eGNN scenario (). The neuro-fuzzy classifer reached a accuracy using 60-minute sliding time windows, and about rules. Compared to FBeM, eGNN uses a higher number of parameters per local model and, therefore, the decision boundaries among classes are more flexible to nonlinearities. Nevertheless, eGNN requires a greater number of instances to update a larger number of parameters. The CPU time is equivalent in all experiments.
A second experiment consists in seeking the best meta-parameters, and , of FBeM and eGNN, and, hence, their best performance without upper constraint on model structure. Figures 5 and 6 show the classification accuracy versus number of FBeM and eGNN rules, respectively, for a variety of combinations of meta-parameters. Each point within the gray zone (area of possibility) of the graphs is the average of 5 runs of an algorithm on shuffled data.
Notice in Fig. 5 that FBeM improves its performance if we allow its rule structure to grow. FBeM reaches a anomaly classification accuracy using small initial granularities, such as , and about rules, whereas the best average performance of eGNN is in fact (as shown in the first experiment) using and about rules. Scenarios with few rules may mean that the dynamic of model adaptation is too fast in relation to the dynamic behavior of the target system. In other words, a small amount of granules are dragged to the current scenario, which may be detrimental to the memory of past episodes.
Comparing Figs. 5 and 6, the relative higher slope of the gray zone of FBeM in relation to eGNN is explained by the higher number of parameters per eGNN local model. Fuzzy neurons and synaptic weights provide eGNN granules with a higher level of local nonlinear ability such that it requires less local models to represent the whole. However, if the eGNN structure grows rapidly, an additional number of parameters is added to the model such that their convergence/maturation to realistic values demand more data instances.
show an example of confusion matrix for a-accuracy FBeM and a -accuracy eGNN. Classes 3 and 4 (medium and high-severity anomalies) are relatively harder to be identified. Notice that confusion in FBeM happens, in general, in the neighbourhood of a target class, whereas often eGNN estimates an instance as being ‘Class 4’ when it is ‘Class 1’. This indicates that a local model may still be learning values for itself. FBeM slightly outperformed eGNN regarding detection of the most critical ‘high severity’ class. eGNN’s overall accuracy is superior.
We proposed and compared evolving fuzzy and neuro-fuzzy granular classifiers, FBeM and eGNN, in a real-time anomaly detection problem considering online log data streams from the main Italian computing center that supports CERN, the WLCG Tier-1 at Bologna. Logging activity rate is a standard behavioral metric obtained from online log data.
The accuracy of both, FBeM and eGNN, presented an increasing trend with increasing lengths of sliding time windows. Larger time windows work as low-pass filters of higher order; they suppress stochastic components. In a first experiment, the best average FBeM accuracy, , has shown to be comparable to the worst average eGNN accuracy, , with confidence, using similar model structures with about 12 rules. The best eGNN result uses 60-minute time windows and offer classification accuracy.
A second experiment, which seeks the best initial meta-parameters of FBeM and eGNN, shows that, when we do not establish a rigorous upper bound for the average number of rules, FBeM reaches a anomaly classification accuracy using small initial granularities, such as , and about rules, whereas the best average performance of eGNN is in fact using and about rules. We conclude that the use of fuzzy neurons and synaptic weights provides eGNN granules with a higher level of local nonlinear capacity such that the neuro-fuzzy model requires less local elements to represent the data. Interestingly, FBeM slightly outperformed eGNN regarding detection of the most critical class, which corresponds to ‘high severity’ anomalous windows.
In general, both classifiers are suitable to be applied to the WLCG Italian Tier-1 to monitor the services that produce event-oriented log data. Evolving granular classifiers provide a real-time log-content processing approach, which is the key to assist decision making toward predictive maintenance.
-  (2020) Unsupervised Fuzzy eIX: evolving internal-external fuzzy clustering. In IEEE Evolving and Adaptive Intelligent Systems (EAIS 2020), Bari - IT, pp. 1–8. Cited by: §III.
-  (2007) Aggregation functions: a guide for practitioners. In Studies in Fuzziness and Soft Computing, Cited by: §III-B2.
-  (2020) An evolving approach to data streams clustering based on typicality and eccentricity data analytics. Information Sciences 518, pp. 13–28. Cited by: §I.
-  (2019) Uncertain data modeling based on evolving ellipsoidal fuzzy information granules. IEEE Transactions on Fuzzy Systems, pp. 11p. DOI: doi.org/10.1109/TFUZZ.2019.2937052. External Links: Cited by: §I, §III.
-  (2012-07) Event detection framework for wireless sensor networks considering data anomaly. In 2012 IEEE Symposium on Computers and Communications (ISCC), Vol. , pp. 000500–000507. Cited by: §IV.
-  (2020) Real-time anomaly detection in data centers for log-based predictive maintenance using an evolving fuzzy-rule-based approach. In IEEE World Congress on Computational Intelligence (WCCI, FUZZ-IEEE), Glasgow, pp. 8p. Cited by: §II.
-  (2020) Operational intelligence for distributed computing systems for exascale science. In 24th Int. Conf. on Computing in High Energy and Nuclear Physics (CHEP), AU, pp. 1–8. Cited by: §I.
-  (2019) Collection and harmonization of system logs and prototypal analytics services with the elastic (elk) suite at the infn-cnaf computing centre. In Int. Symp. on Grids & Clouds (ISGC). Taipei: Proceedings of Science, pp. 1–15. External Links: Cited by: §II.
Incremental missing-data imputation for evolving fuzzy granular prediction. IEEE T Fuzzy Syst., pp. 1–15. Note: DOI: 10.1109/TFUZZ.2019.2935688 Cited by: §I.
-  (2019) Towards predictive maintenance with machine learning at the INFN-CNAF computing centre. In Int. Symp. on Grids & Clouds (ISGC). Taipei: Proceedings of Science, pp. 1–17. Cited by: §II, §II.
-  (2018) Self-organising fuzzy logic classifier. Inf. Sci. 447, pp. 36 – 51. External Links: Cited by: §III.
-  (2016) Fully online clustering of evolving data streams into arbitrarily shaped clusters. Inf. Sci. 382, pp. 1–41. External Links: Cited by: §I.
-  (2017) An efficient concept drift detection method for streaming data under limited labeling. IEICE Transactions on Information and Systems E100.D, pp. 2537–2546. External Links: Cited by: §III.
-  (2020) Optimal rule-based granular systems from data streams. IEEE Transactions on Fuzzy Systems 28 (3), pp. 583–596. Cited by: §III.
-  (2012) Evolving fuzzy granular modeling from nonstationary fuzzy data streams. Evolving Systems 3, pp. 65–79. External Links: Cited by: §I, §II, §III-A.
-  (2013) Evolving granular neural networks from fuzzy data streams. Neural Networks 38, pp. 1–16. External Links: Cited by: §I, §II, §III-A, §III-B1, §III-B2, §III-B, §III, §III.
-  (2010) Granular approach for evolving system modeling. In Computational Intelligence for Knowledge-Based Systems Design, E. Hüllermeier, R. Kruse, and F. Hoffmann (Eds.), Berlin, Heidelberg, pp. 340–349. Cited by: §III.
-  (2019) Anomaly detection prototype for log-based predictive maintenance at INFN-CNAF. Master’s Thesis, U. of Bologna. Cited by: §II.
-  (2015) Ensemble of subset online sequential extreme learning machine for class imbalance and concept drift. Neurocomputing 149, pp. 316 – 329. Note: Advances in neural networks Advances in Extreme Learning Machines External Links: Cited by: §III.
-  (2000) An Introduction to Fuzzy Sets: Analysis and Design. MIT Press. External Links: Cited by: §III-B2.
-  (2008) Handbook of granular computing. Wiley-Interscience, USA. Cited by: §III.
-  (2016) Scaffolding type-2 classifier for incremental learning under concept drifts. Neurocomputing 191, pp. 304 – 329. External Links: Cited by: §III.
-  (2020) Online tool condition monitoring based on parsimonious ensemble+. IEEE T Cybernetics 50 (2), pp. 664–677. Cited by: §I.
-  (2014) Introduction to statistical process control. Wiley: India. Cited by: §IV-A.
-  (2014) Self-adaptive and local strategies for a smooth treatment of drifts in data streams. Evolving Systems 5 (4), pp. 239–257. External Links: Cited by: §III.
-  (2019) Probabilistic forecasting with fuzzy time series. IEEE Transactions on Fuzzy Systems, pp. 14p. DOI: doi.org/10.1109/TFUZZ.2019.2922152. External Links: Cited by: §I.
-  (2019) Evolving fuzzy and neuro-fuzzy approaches in clustering, regression, identification, and classification: a survey. Inf. Sci. 490, pp. 344–368. External Links: Cited by: §I.
-  (2018) Ensemble of evolving data clouds and fuzzy models for weather time series prediction. Appl. Soft Comput. 64, pp. 445–453. Cited by: §III.
-  (2019) Evolving fuzzy neural networks to aid in the construction of systems specialists in cyber attacks. Journal of Intelligent & Fuzzy Systems 36 (6), pp. 6773–6763. Cited by: §I.
-  (2019) Big data analytics towards predictive maintenance at the INFN-CNAF computing centre. Master’s Thesis, U. of Bologna. Cited by: §II.
-  (2016) A novel online multi-label classifier for high-speed streaming data applications. Evolving Systems, pp. 303–315. External Links: Cited by: §I.