Using the influence model to recognize functional roles in meetings In this paper, an influence model is used to recognize functional roles played during meetings. Previous works on the same corpus demonstrated a high recognition accuracy using SVMs with RBF kernels. In this paper, we discuss the problems of that approach, mainly over-fitting, the curse of dimensionality and the inability to generalize to different group configurations. We present results obtained with an influence modeling method that avoid these problems and ensures both greater robustness and generalization capability. The complexity of social dynamics occurring in small group interactions often hinders the performance of teams. The availability of rich multimodal information about what is going on during the meeting makes it possible to explore the possibility of providing various kinds of support to dysfunctional teams, from facilitation to training sessions addressing both the individuals and the group as a whole. A necessary step in this direction is that of automatically capturing and understanding group dynamics.. In order to improve performance of meetings, external interventions by experts such as facilitators and trainers are commonly employed. Facilitators participate in the meetings as external elements of the group and their role is to help participants maintaining a fair and focused behavior as well as directing and setting the pace of the discussion. Training experiences aim at increasing the relational skills of individual participants by providing an offline (with respect to meetings) guidance-or coaching-so that the team eventually will be able to overcome or to cope with its disfunctionalities.. In [17] , the absence of any detectable difference in the acceptability of reports about own relational behaviour according to whether they had been produced by a human expert or by an automatic system was reported. Clearly, crucial to any such an automatic system is that it be capable of understanding people social behaviour, e.g., by abstracting over low level (visual, acoustic, etc.) information to produce medium-/coarse-grained one about the social/relational roles members play in the group. The latter is the kind of information that most coaches and group facilitators (implicitly or explicitly) use while doing their job. In [21;18] , sliding windows multiclass SVMs with radial kernels were used to recognize functional relational roles in meetings. The results were very positive, with the macro F scores for the different roles above 80%. However this approach suffers from two limitations. First, the observation vector included not only the features of the participant whose role had to be detected but also those of all the other participants and it is therefore very sensible to the curse of dimensionality [5] , which might artificially inflate results. The second limitation is that radial kernels might turn out to have an infinite VC dimensionality and that can easily lead to over-fitting [8] .. In this paper, we investigate a new framework for functional role detection in meetings, the 'influence model' [4; 12] , and compare this approach with multi-class SVMs based on linear and RBF kernels, and Hidden Markov Models. Among its advantages, the Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ICMI'07, November 12-15, 2007 , Nagoya, Aichi, Japan. influence model overcomes problems such that the curse of dimensionality that easily affect alternative framework (e.g., SVM). We will show that when the features from a single participant only are used both the SVM and HMM approaches achieve similar accuracy at role classification. When features from all the participants are included the SVM performance increases dramatically, but at the cost of a loss of robustness and generalizability. The influence model, on the other hand, can take into account the features of other participants in a more robust and generalizable manner, with an intermediate increase in accuracy over the single-person role classification methods. Both all-person SVM and influence model results at labeling roles are comparable to the human inter-rater reliability, but show different patterns of error.. This paper is structured as follows: in the next section, previous work relevant to the topic of the automatic detection of social phenomena in groups is presented and discussed. Section 3 introduces the corpus used for our experiments, the particular phenomenon we are tackling-namely, functional relational roles-and discusses some previous results on their automatic detection. Section 4 introduces the influence modelling, while the results of our experiments are discussed in section 5. Finally, section 6 draws the conclusions and hints at future work. In this paper, we have used the Influence Model for recognizing group functional roles played during meetings. In previous works we used Support Vector Machines with Gaussian RBF kernel and sliding windows. Both approaches produce a similar, medium level of classification accuracy (roughly 65%) when using only features from one individual.. When using features from all participants, the SVM approach obtains higher recognition accuracy (Pianesi et al., in press), but suffered from two problems related to generalization capability: (a) the curse of dimensionality (if we make use of the observations/features of other speakers for our classification task, the length of the observation/feature vector grows linearly with a large multiplication constant); (b) overfitting (the Gaussian RBF kernel might have infinite VC-dimension).. The Influence Model is a good technique to deal with these weaknesses. In fact, the latent structure influence modeling of interacting processes avoids the curse of dimensionality problem using the "team of observers" approach. In this approach, the individual observers only look at the latent states of the other related observers, which best summarize the observations from the perspectives of the latter, thus are less likely to suffer from overfitting and lack of generalization.. The performance obtained using Influence Model for recognizing group functional roles is comparable to the inter-rater reliability on this corpus of data: we can generally get 75% accuracy in classifying both the Task area roles and the Socio-Emotional area roles.. One interesting observation is that the Influence Model seems to be generalizable to different numbers of participants in the group, since the influence between participants was very similar for all subjects and all experiments. The ability to automatically adapt to different sized groups without retraining would allow a great increase in the flexibility and applicability of automatic role classification technology.. One important area for future work is that current training algorithm for the influence model does not do well at classifying the low-frequency classes (Orienteer/Seeker for Task area roles, and Attacker/Supporter for Socio-Emotional area roles). A direction for improvement is adding more features, and hierarchical training. In the future works, we plan to add some novel features starting from vocal energy, 3D postures and focus of attention.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Reliability Modeling of Fault Tolerant Control Systems This paper proposes a novel approach to reliability evaluation for active Fault Tolerant Control Systems (FTCSs). By introducing a reliability index based on the control performance and hard deadline, a semi-Markov process model is proposed to describe system operation for reliability evaluation. The degraded performance of FTCSs in the presence of imperfect Fault Detection and Isolation (FDI) is reflected by semi-Markov states. The semi-Markov kernel, the key parameter of the process, is determined by four probabilistic parameters based on the Markovian model of FTCSs. Computed from the transition probabilities of the semi-Markov process, the reliability index incorporates control objectives, hard deadline, and the effects of imperfect FDI, a suitable quantitative measure of the overall performance. In order to meet high reliability requirements of safetycritical processes, major progress has been made in Fault Tolerant Control Systems (FTCSs) (Blanke et al., 2001; Wu and Patton, 2003) . FTCSs usually employ Fault Detection and Isolation (FDI) schemes and reconfigurable controllers to accommodate fault effects, also known as active FTCSs (Patton, 1997) . As controllers are reconfigured based on FDI results, imperfect detection results caused by modeling uncertainties and disturbances may corrupt stability, performance, and therefore reliability (Mariton, 1989) . Some works exist to restore the control performance when considering this FDI imperfectness. For example, Zhang and Jiang (2001) developed an integrated FDI and reconfigurable control approach based on Iteracting Multiple-Model (IMM) Kalman filters and eigenvalue assignments. This approach was then further improved to account for performance degradation under fault occurrences (Jiang and Zhang, 2006) . However, it is unknown if the designed system satisfies critical reliability requirements. This is the main motivation behind the current paper.. A quantitative reliability analysis is required for FTCSs in order to verify safety requirements (Blanke, 1996) . Moreover, this analysis is a prerequisite to reliability-based controller design. For example, in the reliability-based design of structural control, the key problem is to evaluate the failure probability, a complementary reliability index (Spencer et al., 1994) . For Fault Tolerant Control (FTC), improving the system reliability is considered to be the ultimate goal. Thus, the main objective of this paper is to develop a reliability index and its modeling method for active FTCSs.. The reliability of FTCSs has been investigated by using various methods. An ongoing research contribution is made by Wu (Wu, 2001; 2004; Wu and Patton, 2003) . In her latest results, reliability was evaluated from a Markov process model built from serial-parallel block diagrams which describe functional relations among subsystems and components. Coverage was used as a link between reliability and control actions. A similar system configuration was deployed by Guenab et al. (2005) , where reliability was evaluated from serial-parallel structures and optimization was conducted to find the best structure based on the reliability and cost. However, this framework is restricted to those FTCSs that can be described by serial-parallel block diagrams.. Other methods are based on Markov or semi-Markov 492 H. Li et al. reliability modeling. For example, Walker (1997) proposed a semi-Markov model by defining semi-Markov states as the combinations of the status of faults and FDI schemes without considering dynamical relations and control objectives. Walker (1989) and Schrick and Müller (2000) used reliability evaluations from the Markov modeling of FDI to determine the residue threshold of FDI and to compare several sensor fault detection schemes, respectively. Harrison et al. (1981) established a similar discrete-time Markov model for a redundant navigator. However, in these Markov or semi-Markov models, the states are all simply defined as the combinations of fault modes and FDI results, in which the role of control in improving the system performance is not considered. Hence, a link between the reliability and the overall control performance of FTCSs is missing.. The latest progresses were reported in an invited session at the SAFEPROCESS conference in 2006, which presented various methods of improving FTCS analysis and design through an integrated reliability index. For example, Guenab et al. (2006) developed a reliability-based reconfiguration strategy according to an enumeration of finite system structures. Bonivento et al. (2006) proposed a reliability index for a hierarchic diagnostic system from its functional description. Patton et al. (2006) used a Monte Carlo simulation technique to design an FDI scheme with high reliability. Wu and Thavamani (2006) presented a simulation study to quantify the performance of a wireless network on the effects of the loop closure frequency and node storage capacity; Figueras et al. (2006) discussed a fault diagnosis system design using reliability analysis techniques with application to a practical problem. However, most of these methods are focused on either FDI or reconfigurable control only, while this paper takes into account the interaction effects between these two parts.. This paper proposes a new reliability index and its modeling method. The index incorporates the dynamical characteristics of FTCSs: control objectives, hard deadline, and the effects of imperfect FDI results. Based on the dynamical model of FTCSs, degrading control objectives are set for various fault scenarios, and the reliability is defined as the probability of satisfying degraded objectives, while a temporal violation within a hard deadline is allowed. To evaluate this index, a semi-Markov process is constructed to describe and to predict the control performance evolution due to fault occurrences and imperfect FDI results. The semi-Markov transition probabilities are computed to determine the reliability.. It is worthwhile to point out that this paper presents a part of the authors' work on the analysis and design of FTCSs based on a reliability criterion. The developed reliability index is essentially an off-line criterion and can be used for controller analysis and design. A controller design method was reported in (Li and Zhao, 2007) , where a stabilizing controller parameterization and a randomized algorithm are integrated to design a state-feedback controller using the reliability index as an optimization objective. Another related work is an extended reliability analysis framework for a generalized semi-Markov FDI description reported in (Li and Zhao, 2006) .. The remainder of this paper is organized as follows: A reliability index is defined in Section 2. The system model and assumptions are given in Section 3. A semiMarkov reliability model is presented in Section 4, and an example is given in Section 5, followed by conclusions in Section 6. A semi-Markov reliability model for the reliability analysis of FTCSs has been presented. The index reflects the characteristics of FTCSs, including a model-based control performance and a hard deadline concept. Based on four probabilistic parameters, the semi-Markov model was constructed, and the reliability could be thereby calculated. The semi-Markov transition probabilities and the reliability function provide valuable information on the long-term safety behavior of FTCSs. Moreover, the effects of FDI and the control performance on the reliability were demonstrated in an illustrative example. With this reliability index and the modeling method available, a reliability-based controller can be designed to optimize the overall system reliability. Reliability modeling of fault tolerant control systems 503

O O O B I I O O O O O O O O B I O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O


Extension of First Order Predictive Functional Controllers to Handle Higher Order Internal Models Predictive Functional Control (PFC), belonging to the family of predictive control techniques, has been demonstrated as a powerful algorithm for controlling process plants. The input/output PFC formulation has been a particularly attractive paradigm for industrial processes, with a combination of simplicity and effectiveness. Though its use of a lag plus delay ARX/ARMAX model is justified in many applications, there exists a range of process types which may present difficulties, leading to chattering and/or instability. In this paper, instability of first order PFC is addressed, and solutions to handle higher order and difficult systems are proposed. The input/output PFC formulation is extended to cover the cases of internal models with zero and/or higher order pole dynamics in an ARX/ARMAX form, via a parallel and cascaded model decomposition. Finally, a generic form of PFC, based on elementary outputs, is proposed to handle a wider range of higher order oscillatory and non-minimum phase systems. The range of solutions presented are supported by appropriate examples. Model predictive control, an advanced control approach (Tatjewski, 2007) , grew rapidly in popularity and its field of application diversified substantially since its first applications in the refining and petrochemical industry in 1980 (Cutler and Ramaker, 1980; Richalet et al., 1976) . It is also reported by Qin and Badgwell (2003) that MPC has been used in over 2,500 industrial applications in the chemical, pulp and paper and food processing industries, from a total of 4,500, aside from the traditional refining and petrochemical sector.. Although the principles of MPC are universal, and can be found in many textbooks (Maciejowski, 2002; Morari and Lee, 2000; Richalet, 1993) , a wide range of MPC algorithm was developed, primarily to suit given types of industrial application. Among the most popular MPC algorithms one can cite:. • Model Predictive Heuristic Control (MPHC), with the original algorithm called IDCOM for identification and control, and HIECON for hierarchical control most suited for large multivariable systems (Richalet et al., 1978) .. • Dynamic Matrix Control (DMC), from Cutler and Ramaker (Cutler and Ramaker, 1980) .. • Generalised Predictive Control (GPC), (Clarke et al., 1987) , and. • Predictive Functional Control (PFC), developed by Richalet and ADERSA (Richalet, 1998; Richalet, 1993) .. For single-input/single-output (SISO) systems, a transfer function internal model formulation, as used in GPC and PFC, is more convenient to manipulate than the over-parameterised step response model used in DMC that requires a large number of step response parameters, often truncated for a more efficient computation time (otherwise this model would have an infinite number of parameters). Moreover, input/output representations, e.g., ARX/ARMAX, are preferred to state space formulations for SISO systems with small turnovers as they do not include the notion of state and matrix calculus. This matches the wish of many industries for a transparent and/or well understood design like PID.. PFC can use many forms of internal model, including state space (Rossiter and Richalet, 2001a) , input/output (Richalet, 1998) , Finite Impulse Response (FIR) (Richalet et al., 1978) , fuzzy rules (Skrjank and Matko, 2000) , etc. This is an obvious advantage when compared with GPC, which is based on CARIMA type models, and a solution of Diophantine equations (Clarke et al., 1987) .. However, one of the main distinguishing features of PFC is the independent (non-realigned) nature of the internal prediction model. In this case, the predictions made depend solely on the process input and model past, present and future outputs, in contrast to other MPC approaches. For instance, GPC and its CARIMA-type model utilise past and present process outputs mixed with futures model outputs as well as process inputs in order to issue a prediction (Clarke et al., 1987) .. Industrial vendors ADERSA claim that input-output internal models with mixed outputs from the process and the model (or state space models with an estimator) realign the model state on noisy data (output measurements), hence often giving poor predictions as well as leading to an offset (Rossiter and Richalet, 2001a) .. Another important distinguishing feature of PFC is the projection of the manipulated variable on a set of basis functions (Richalet, 1998) , e.g. a step input, in the simplest case. It is claimed in (Richalet, 1998) that it is more efficient to structure the Manipulated Variable (MV) that way as. • On the one hand, we limit the number of unknown parameters N b by projecting the future manipulated variable onto a base of functions UB j of a smaller dimension than the prediction horizon H.. • On the other hand, the discontinuity and the control frequency range are limited, by limiting the dimension of the basis.. The future MV is then expressed in the following form:. where UB j are the basis functions. Every input base UB j implies an output basis SB j known a priori for a given model. For example if we take a polynomial base, the first three basis functions are shown in Fig. 1 , where UB i represent the MV (input of the basis function), with its corresponding output SB i . Usually a zero order base function (UB 0 ), representing a step MV change to find at each sample time, is used. This Fig. 1 . Input/output basis functions.. gives an exponential (first order) output (SB 0 ). The concept of projecting the MV onto a functional basis can be found in (Richalet, 1998) and is given the name Predictive Functional Control (PFC).. In this paper, the goal is to extend the applicability of the intuitively attractive input/output PFC formulation to a wider range of systems. While first order (with delay) process models are widely and successfully used over a range of application areas, this paper will attempt to provide higher order control solutions while retaining the attractive simplicity of the first order one.. In fact, a number of the proposed extensions rely on the core first order solution. The paper proceeds (in Section 2) by decomposing general SISO ARX and ARMAX models (with real poles) into sets of first order subsystems, using both parallel and cascade forms. Composite PFC solutions for these decomposed systems are developed. In Section 3, some difficulties presented by zero dynamics are highlighted and solution strategies outlined. Section 4 deals with systems with complex poles and/or non-minimum phase dynamics. Two simulation studies are used to illustrate the effectiveness of the developed control solutions, and conclusions are drawn in Section 5. This paper has developed higher order solutions to SISO processes, based on ARX/ARMAX input/output process descriptions, retaining the intuitive appeal of such PFC formulations. Combining the decomposition techniques of Section 2 with the further developments in Sections 3 and 4, most SISO industrial processes can be handled. with one, or at most two parameters, to tune, i.e. T r and H. The choice of H is process and MV/CV trade-off dependent, but it still results in a choice of a single parameter. This makes PFC easier to tune than PID, qualifying it as an ideal candidate for industrial use where good dynamic performance and intuitive appeal are paramount. It is clear that a more complex MPC formulation, such as GPC, especially with the solution of the Diophantine equation, will produce similar results as the PFC formulations presented in this paper. However, the presented PFC formulation is much simpler, inducing a straightforward formulation better suited for practitioners. Though there is a direct equivalence between parallel and cascade decompositions, the higher order PFC using an internal model formulation based on a parallel internal model form is found to be less computationally expensive, and more elegant, than that using a cascaded form, and thus the authors strongly recommend using a parallel decomposition of the internal model. However, such a compact form is not possible with oscillatory or non-minimum phase systems, since the control parameters have to be calculated from the system's free response utilising a form of the unfactored process difference equation.. Though extra computational expense is incurred in higher order controllers, this is not problematic due to cheap computational power, and the performance advantage is demonstrated clearly in our illustrative examples. Most importantly, the computation is minimised by using an input/output formulation (since matrix computations, Controlled system output Manipulated variable Noncontrolled system output Reference Fig. 7 . PFC performance for a third order non-minimum phase complex system with a pure time delay.. often containing zero elements, are avoided), and the simplicity and intuitive appeal are maximised.

O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Porting a distributed meeting system to the Eclipse communication framework eConference is a text-based conferencing tool that supports distributed teams in need for synchronous communication and structured discussion services. Other than offering communication services, it integrates an agenda and minutes editor, plus other control and coordination features, like hand raising and threaded discussion. The current version of the tool is based on Eclipse RCP and uses the eXtensible Messaging and Presence Protocol (XMPP) as the only communication infrastructure. The goal of this paper is presenting a work-in-progress to port the eConference tool on the Eclipse Communication Framework (ECF), which will enables us to abstract from the underlying communication protocol, provide better decoupling among components, and build additional team-support services. eConference is a text-based conferencing tool that supports distributed teams in need for synchronous communication and structured discussion services. Other than offering communication services, it integrates an agenda and minutes editor, plus other control and coordination features like hand raising. Our tool has been successfully used at the University of Bari and at the University of Victoria, both as a training aid and in laboratory experimentations conducted to validate our hypothesis about the adequateness of synchronous lean communication media for distributed requirements workshops [1] [2] .. The primary functionality provided by the tool is a closed group chat, augmented with agenda, meeting minutes editing and typing awareness capabilities. Around this basic functionality, other features have been built to help organizers control the discussion during distribute meetings. Indeed, eConference is structured to accommodate the needs of a meeting without becoming an unconstrained on-line chat discussion. The inceptive idea behind the eConference is to reduce the need for face-to-face meetings, using a simple collaboration tool that minimizes potential technical problems and decreases the time it would take to learn it.. The tool screen has six main areas: agenda, input panel, message board, hand raising panel, minutes editor, and presence panel (see Figure 1 ). The agenda indicates the status of the meeting, as well as the current item under discussion. The input panel enables participants to type and send statements during the discussion. The message board is the area where the meeting discussion takes place. The hand raising panel is used to enable turn-based discussions, by mimicking the hand-raise social protocol. The minutes editor is used to synthesize a summary of the discussion. Finally, the presence panel shows participants currently logged in and the role they play.. The present version of the tool is built on top of the Eclipse Rich Client Platform (RCP) [5] The remainder of the paper is structured as follows. In Section 2 we briefly describe the features of eConference, and sum up the history and evolution of the tool. In Section 3 we motivate the switch to a new architecture and discuss the ECF, whereas, in Section 4, we describe the porting of eConference to the new framework, discussing the major architectural changes and how we are further evolving our tool. Finally, Section 5 presents conclusions and outlines future work.

O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


An extensible architecture-based framework for coordination languages The dynamic and heterogeneous nature of distributed systems makes the development of distributed applications a difficult task. Various tools, such as middleware systems, component systems, and coordination languages, offer support the application developer at different levels. There are several coordination systems that integrate such tools into a complete environment to build applications from heterogeneous components. To achieve extensibility they usually have a layered architecture: an application is first mapped to a middle layer and then to a target system. But this approach hides the specific features of a target system from the developer, as they are not represented in the middle layer, and often induces additional run-time overhead. In this paper, we introduce the extensible coordination framework ECF that allows developers to build efficient distributed applications which exploit the specific features of the target systems. Support for target systems and application domains are encapsulated by extension modules. Modules can be built on top of other modules to support refined functionality. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A framework for diagnosing changes in evolving data streams In recent years, the progress in hardware technology has made it possible for organizations to store and record large streams of transactional data. This results in databases which grow without limit at a rapid rate. This data can often show important changes in trends over time. In such cases, it is useful to understand, visualize and diagnose the evolution of these trends. When the data streams are fast and continuous, it becomes important to analyze and predict the trends quickly in online fashion. In this paper, we discuss the concept of velocity density estimation, a technique used to understand, visualize and determine trends in the evolution of fast data streams. We show how to use velocity density estimation in order to create both temporal velocity profiles and spatial velocity profiles at periodic instants in time. These profiles are then used in order to predict three kinds of data evolution: dissolution, coagulation and shift. Methods are proposed to visualize the changing data trends in a single online scan of the data stream, and a computational requirement which is linear in the number of data points. In addition, batch processing techniques are proposed in order to identify combinations of dimensions which show the greatest amount of global evolution. The techniques discussed in this paper can be easily extended to spatio-temporal data, changes in data snapshots at fixed instances in time, or any other data which has a temporal component during its evolution. With the large number of transactions which are recorded and stored by many organizations, the importance of being able to analyze trends in fast data streams has become very important in recent years. Typically, such databases are created by continuous activity over long periods of time, and are therefore databases which grow without limit. For example, even simple transactions of everyday life, such as paying by credit card or using the telephone are recorded Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. in an automated way using current hardware technology.. The volume of such transactions may easily range in the millions on a daily basis. Often, the data may show important changes in the trends over time because of fundamental changes in the underlying phenomena. This process is referred to as data evolution. By understanding the nature of such changes, a user may be able to glean valuable insights into emerging trends in the underlying transactional or spatial activity. Therefore, it is useful to develop tools and techniques which would provide a visual and diagnostic overview of the key characteristics in the data which have changed over time in a fast and user-friendly way.. The problem of mining high speed data streams has been recognized to be an important one in recent years [1, 2, 6, 7, 18] . There is a considerable amount of work in the literature with a focus on incremental maintenance of models in the context of evolving data [5, 8, 17] . Recent work [10, 11] has discussed a general framework for quantifying the changes in evolving data characteristics in the context of several data mining problems and algorithms. The focus of our paper is different from and orthogonal to the work in [10, 11] . Specifically, the work in [10, 11] is focussed on the effects of evolution on data mining models and algorithms. This paper studies the problem of evolution in terms of understanding the nature of the data changes as opposed to finding whether a particular data mining model has become stale or not because of the underlying change. As we shall see, such a study of evolution provides the user with considerable understanding of the changes more directly in terms of the data attributes. Other recent work [1, 4, 12] discusses the problem of change detection and visualization for particular domains of data.. Since a data stream typically contains a large volume of high dimensional information, it is useful to to characterize the underlying changes in a fast and user-friendly way.. For example, what are the locations in the stream which show the greatest amount of change? How can the change be characterized in a way which is intuitively appealing to a user? This paper provides the user a generic tool to understand, visualize and diagnose the summary changes in data characteristics. This includes methods to visualize how the pattern of the data in various spatial locations has changed over time, or which combinations of dimensions show the greatest amount of change. We also discuss ways of providing specific diagnosis of localized phenomena in different spatial regions of the data. Such information can be used in order to understand the nature of the emerging trends in the data.. There are several interesting applications of change diagnosis in evolving data streams. For example, in a supermarket or electronic commerce application, a stream of customer requests may consist of demographic or customer buying behavior attributes. It may often be desirable to pick those combinations of attributes in which there is large change in the level of transactional activity. The ability to track such information is a clear competitive advantage for a business, which can use it in order to anticipate and adapt to potential customers in the near future. For instance, if recent data shows an increasing trend in the number of customers with a certain combination of demographic characteristics, then the supermarket can anticipate the increased demands of the items usually bought by this group. Another example is a GIS application in which the spatial coordinates of a very large number of mobile objects are being tracked simultaneously. This can be modeled as a data stream in which the attributes correspond to the spatial coordinates of the objects. Even though the number of objects may be large, their overall motion may show systematic trends in many regions of the data. It is often useful to mine the (aggregate) spatial trends of these objects by finding the localized nature of the data re-organization.. When the data stream shows a high level of evolution, it is expected that the relative data concentrations at various spatial locations may change over time. We will capture such changes with the concept of velocity density which measures the rate of change of data concentration at a given spatial location over a user-defined time horizon. This density can be used in order to create two kinds of visual profiles of data evolution: the temporal velocity profiles and spatial velocity profiles. These profiles provide different perspectives on the nature of the underlying change. Since the results of this paper are relevant to high dimensional data mining problems as well, it is important to provide diagnosis capability for such cases. In order to deal with this class of problems effectively, we use velocity density estimation in order to pick the projections from high dimensional data in which the greatest changes in data characteristics have occurred. Such combinations of dimensions are very interesting, because it may often happen that there may be very little evolution in terms of either the entire set of dimensions or individual dimensions; yet some particular combinations of dimensions may show huge levels of evolution because of changes in the correlation structure of the data. A closely related problem is that of mining spatio-temporal or mobile data [14, 15, 16] , for which it is useful to have the ability to diagnose aggregate changes in spatial characteristics over time. The results of this paper are equally valuable for providing such understanding.. Since data streams are fast and continuous over long periods of time, the data may quickly become stale for timesensitive applications. In such cases, the usefulness of the evolution monitoring process also becomes time-critical. In order to achieve this goal, we mine the data streams in an online fashion; therefore, most techniques discussed in the paper need to examine a data point only once throughout the entire computation. To this effect, we discuss algorithms whose computational requirement per record in the stream are constant, and which do not require any re-scanning of the data. This is the most optimistic case that can be achieved by any algorithm for mining data streams. This paper is organized as follows. In the remainder of this section, we formalize the contributions of this paper and provide a brief overview of some concepts from kernel density estimation which we will need in this paper. In section 2, we will introduce the velocity density estimation technique and show how to use it in order to construct the temporal velocity profile. In section 3, we will discuss how the temporal velocity profiles can be used in order to generate the spatial velocity profiles. These profiles can be used in order to provide a visual understanding of the spatial reorganization of the data. Extensions to high dimensional data are discussed in section 4. In section 5, we discuss how the temporal and spatial profiles may be used to provide a more concrete diagnosis of the emerging trends in localized regions. In section 6, we present the empirical results which show interesting evolution behavior for different data sets. We also show the performance efficiency of the technique. The conclusion and summary is presented in section 7.

O B O O O O O B O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O B O O O O B O O O B O O O B O O O O O O O O O O O O O O O B O O B O O O O O B O O O O B O O O B O B O B O B O O O O O O B O O O O B O B O O O B B O O O O O O O O O O O B O O O O B B O O B O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O B B O O O O O B O O O O O O B O O B O O O O O O O O O B O O O B B O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O B O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O B O O O O B O O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O B O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O B O O O O O O B O O O O O O O O O O B O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O B O O O O O O B O O O O O O B O O O B O O B O O O O O O O O O B O O O O O O O O B O B O O O O B O O O O O O O O O O O O B O O O O O O B O B B O B O B O B O B O B O O O O O O O O O B O O O O O B O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O B O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O B O B O O O O B O O O O O O O B O O O B O O O O O O O B O O O O B B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O B O O O B O O O O O O O O O O B O B O O O O B O O O B O B O B O O O O B O O O O O O O B O O O B O O O O B O O O O O O O O O O O O B O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O


Algorithms and protocols for stateless constrained-based routing Quality of service (QoS) routing has generally been addressed in the context of reservation-based network services (e.g. ATM, IntServ), which require explicit (out of band) signaling of reservation requests and maintenance of per-flow state information. It has been recognized that the processing of per-flow state information poses scalability problems, especially at core routers. To remedy this situation, in this paper we introduce an approach for stateless QoS routing in IP networks that assumes no support for signaling or reservation from the network. Instead, our approach makes use of the currently unused two bits in the DiffServ (DS) byte of the IP packet header. Simple heuristics are used to identify a low-cost delay-constrained path. These heuristics essentially divide the end-to-end path into at most two 'superedges' that are connected by a 'relay node'. Routers that lie on the same superedge use either the cost metric or the delay metric (but not both) to forward the packet. Standard hop-by-hop forwarding is performed with respect to either metric. Two different approaches are presented for implementing the relay-based forwarding. In the first approach, a probing protocol is used to identify the relay node and the routing metrics of the superedges. Tunneling and packet encapsulation are then used to forward packets from the source node to the relay node and then from the relay node to the destination node. The second approach does not require probing, but instead relies on the time-to-live (TTL) field in the header of the IP packet. Simulations are presented to evaluate the cost performance of the various approaches. q In this paper, we presented an approach for stateless QoS routing in IP networks. Our approach is based on simple heuristics for finding a low-cost delay-constrained path in a network. The returned path consists of at most two superedges that are connected at a relay node. Within a superedge, a packet is routed hop-by-hop using a given routing metric (cost or delay). The routing metric may be switched at the relay node. We presented simple sourcebased and distributed path selection heuristics that implement the relay strategy. Theoretical performance bounds for these heuristics were presented. We also proved the algorithmic correctness of these heuristics. To implement the relay strategy in an IP network, we provided two approaches, one relies on a probing protocol and the other makes use of the TTL field in the IP packet header. Simulation results were presented to evaluate the performance of the proposed heuristics and contrast them with previously proposed heuristics. The growing popularity of real-time and multimedia applications over the Internet has stimulated strong interest in extending QoS support to existing routing protocols (e.g. OSPF, BGP) [3, 5, 15, 17, 49] . Several recent studies have acknowledged the need for scalable QoS routing solutions [4, 11, 27, 29, 48] and have given the stimulus for a number of proposals on how to integrate QoS routing into a Differentiated Services (DiffServ) framework [21, 24, 43] . For example, in one proposal that advocates integrating the traffic engineering and scalable reservation aspects of MPLS into the DiffServ architecture [21] , QoS routing is suggested as a mechanism to establish 'MPLS paths' onto which aggregates of IP flows can be transported with given QoS. In this context, MPLS paths are dynamically established between ISPs as part of their bilateral Service Level Agreements (SLAs).. So far, most work on QoS routing has been carried out under the assumption that the underlying QoS architecture is reservation based. In such architecture, routers maintain per-flow state information (e.g. flow identity, the amount of allocated bandwidth, priorities, etc.) and end systems use explicit reservation messages (e.g. RSVP messages, ATM PNNI signaling) to indicate their QoS requirements. In this case, the goal of a QoS routing algorithm is to identify a resource-efficient path for routing the reservation message. To reduce the connection setup time, the path to be identified should be likely to satisfy the requested QoS requirements (i.e. the reservation request is likely to pass the admission control test at all routers along the selected path). The advantage of this explicit-reservation model is that it allows the service provider to guarantee the requested QoS on an end-to-end basis with a high degree of accuracy by implementing admission control, traffic conditioning, and reservation protocols. On the other hand, it has been widely recognized that maintaining per-flow state information could lead to scalability problems at core routers. Accordingly, the focus of the research community has shifted to stateless QoS frameworks (e.g. DiffServ [9, 10] ) that rely on per-class service differentiation at core routers (with class information encoded in the header of the data packet), leaving the maintenance of the per-flow state information to edge routers. A stateless service model seems particularly appealing to router vendors, whose priority is to reduce the processing burden at the router to achieve high-speed packet forwarding. Thus far, the research on stateless QoS has mainly focused on packet scheduling issues (e.g. Refs. [31, 37 -39] ). In fact, it has been noticed that existing QoS routing solutions have been developed 'at some distance from the task of development of QoS architectures' [22] . In particular, current QoS architectural models, including the DiffServ, seem to implicitly assume that various classes of traffic are forwarded along the same (best effort) path, with service differentiation being achieved locally through appropriate packet scheduling. Decoupling routing and QoS provisioning can lead to 'inefficient' selection of routes, hence reducing the likelihood of meeting the applications end-to-end QoS requirements.. In this paper, we propose a simple approach for stateless QoS routing in IP networks. This approach is intended to complement, and be part of, existing stateless QoS architectures, such as the DiffServ. It relies on dynamic packet forwarding mechanisms that make novel use of the two unused bits in the DiffServ (DS) byte and, optionally, the Time-to-Live (TTL) field in the header of an IP packet. Historically, the DS byte used to be called the TOS (Type of Service) byte, which was originally intended for something very similar to QoS routing. However, the original TOS byte was rarely used for this purpose. Recently, this byte has been renamed as the DS byte, with six of the eight bits being used to encode the class information in the DiffServ framework. In this paper, we propose to use the remaining two bits to encode the routing metric according to which packet forwarding is to be performed. We refer to these two bits as the routing metric identifier (RMI) field. We present a stateless QoS routing approach in which routers maintain routing entries for each concerned routing metric (e.g. delay, cost, etc.). Our approach involves the injection of probe messages for exploration of viable QoS paths. No state information is maintained at a router, which performs the forwarding function based on information contained in the packet header. Protocols and algorithms for supporting the proposed stateless QoS routing framework are presented. Our approach requires very small extra computational overhead beyond what is currently used in besteffort routing.. The rest of this paper is structured as follows. In the remaining of this section, we present the network model and an algorithmic statement of the QoS routing problem. In Section 2 we present a series of source-based and distributed heuristics for delay-constrained path selection. These heuristics are based on the relay philosophy, in which the routing metric of interest can be switched at relay nodes, thus enabling stateless QoS routing. The proposed heuristics can always find a feasible (delay constrained) path if one exists. Two approaches for QoS based packet forwarding are presented in Section 3. In the first approach, a probing protocol is outlined for the discovery of a relay node. Once a relay node is identified, tunneling and packet encapsulation are used to forward packets along a low-cost QoS path with known delay. The second approach relies on a novel use of the TTL field in the header of an IP packet. Simulation results are presented in Section 4, followed by concluding remarks in Section 5.

O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


An efficient cache design for scalable glueless shared-memory multiprocessors Traditionally, cache coherence in large-scale shared-memory multiprocessors has been ensured by means of a distributed directory structure stored in main memory. In this way, the access to main memory to recover the sharing status of the block is generally put in the critical path of every cache miss, increasing its latency. Considering the ever-increasing distance to memory, these cache coherence protocols are far from being optimal from the perspective of performance. On the other hand, shared-memory multiprocessors formed by connecting chips that integrate the processor, caches, coherence logic, switch and memory controller through a low-cost, low-latency point-to-point network (glueless shared-memory multiprocessors) are a reality.In this work, we propose a novel design for the L2 cache level, at which coherence has to be maintained, aimed at being used in glueless shared-memory multiprocessors. Our proposal splits the cache structure into two different parts: one for storing data and directory information for the blocks requested by the local processor, and another one for storing only directory information for blocks accessed by remote processors. Using this cache scheme we remove the directory from main memory. Besides saving memory space, our proposal brings very significant reductions in terms of latency of the cache misses (speed-ups of 3.0 on average), which translate into reductions in applications' execution time of 31% on average. Workload and technology trends point toward highly integrated "glueless" designs [12] . These designs integrate the processor's core, caches, network interface and coherence hardware onto a single die. It allows to directly connect these highly integrated nodes using a high-bandwidth low-latency point-to-point network leading to glueless multiprocessors. Taking advantage of ever faster interconnection network, more research efforts must be carried out in lowlatency cache coherence protocols for tolerating the increasingly wider "memory gap" that will be suffered in future scalable glueless shared-memory multiprocessors.. Cache coherence in this kind of architecture has traditionally been orchestrated on the basis of a distributed directory stored in the portion of the main memory included in every system node [20] . In these designs, whenever a cache miss takes place, it is necessary to access the directory structure placed in the home node to recover the sharing status of the block, and subsequently, perform the actions required to ensure coherence and consistency.. Hence, this kind of cache coherence protocol achieves scalability at the cost of putting the access to main memory in the critical path of the lower-level cache misses 1 , which drastically increases the latency of cache misses when compared to snoopy-based cache coherence protocols. As an example, Figure 1 presents the execution times that are obtained for a traditional directory-based shared-memory multiprocessor as main memory latency increases from 80 cycles to 1000 cycles. Additionally, it is also shown the execution times that would be obtained in the ideal case, that is to say, when directory information is stored in the L2 caches and main memory is accessed just for those memory blocks that are not found in any of the caches (blocks in uncached state). These results are for a 32-node architecture and several SPLASH-2 benchmarks (see section 4.1 for details).. As observed, as memory latency grows applications' execution time becomes significantly greater for a traditional directory-based cache coherence protocol. On the contrary, the impact of memory latency is much lower in the ideal case. This is due to for most of the L2 cache misses either the home node just uses directory information but not the memory block or the memory block can be provided by the L2 cache of one of the sharers. The first observation is not new as cache-to-cache transfer misses and upgrade misses have been previously shown to represent a significant fraction of the total miss rate [2] . The second observation constitutes one of the reasons why the proposed scheme employs a cache coherence protocol derived from the MOESI protocol, which has been used extensively in SMP systems but not in cc-NUMAs.. One of the solutions that have been proposed for alleviating in part the ever increasing distance to memory is the addition of directory caches to each one of the nodes of the multiprocessor [2, 20] . These extra cache structures, not desirable in future glueless shared-memory multiprocessors, are aimed at keeping directory information for the most recently referenced memory blocks. In this work, however, we re-consider the design of the L2 caches that will be used in future cc-NUMA architectures and propose a new structure that reduces the L2 cache miss latencies by avoiding unnecessary accesses to main memory. In particular, our proposal removes completely the directory information from main memory and stores it in the L2 caches, which are split into two structures: the data and directory information (or DDI) and the only directory information (or ODI) structures. The first one stores data and directory information for the blocks requested by the local processor. The second one stores only directory information for those blocks that other nodes have requested but that the home node is not currently using.. The key contribution of this paper is the proposal of a new L2 cache design for scalable glueless shared-memory multiprocessors that includes all the information needed to maintain cache coherence, thus eliminating the need of a directory structure in main memory. This scheme allows faster L2 cache misses by removing main memory accesses for most L2 cache misses (from 65.95% to 99.98%). We have evaluated our proposal, obtaining improvements of 31% on average in total execution time with respect to a traditional directorybased architecture. Moreover, we have studied how the miss latency is reduced for each type of cache miss, obtaining important reductions in each case. Additionally, we compare our proposal against a system that uses directory caches in each node, achieving reductions in execution time of 15% on average.. The rest of the paper is organized as follows. A review of the related work is presented in section 2. Subsequently, section 3 shows the design for the L2 cache proposed in this paper, as well as the coherence protocol required by it. Section 4 discusses the evaluation methodology and presents a detailed performance evaluation of the proposal. Finally, Section 5 concludes the paper and points out some future ways. In this paper, we take advantage of current technology trends and propose a new design for the L2 cache (lowerlevel caches in general) aimed at being used in future glueless scalable shared-memory multiprocessors. The proposal presented in this work avoids unnecessary accesses to main memory by storing all the directory information in several structures inside the L2 cache. Additionally, our proposal does not need to store directory information in main memory, saving from 3% to 12% of storage in current designs [20] .. In particular, our proposal splits the L2 cache into two structures: the data and directory information (or DDI) and the only directory information (or ODI) structures. The first one stores data and directory information for the blocks requested by the local processor. The second one stores only directory information for those blocks that other nodes have requested but that the home node is not currently using. In this way, our L2 cache allows faster L2 cache misses by removing main memory accesses for most L2 cache misses (from 65.95% to 99.98%).. In order to demonstrate the benefits derived from our proposal in terms of execution time, we have run several scientific parallel applications. We have studied the miss latencies for each category of the L2 cache misses found in these applications to better understand the reasons for performance improvement. On average, the architecture presented in this paper obtains improvements of 31% in execution time when compared to a conventional glueless shared-memory multiprocessor consisting of several Alpha EV7-like processors [7] , and 15% when a directory cache is added to each one of the nodes of the multiprocessor. In this way, we think that the simplicity and the good results of our proposal make it competitive for future small and medium-scale shared-memory multiprocessors (16 to 256 processors).. As part of our future work, we plan to use limited pointers to reduce the extra memory needed when the number of system nodes is significantly increased. Additionally, we plan to design a prediction-based cache coherence protocol based on the new architecture for the L2 caches proposed in this work. Finally, all these proposals will be evaluated in the context of CMP architectures. Directory caches (originally proposed in [6] for cutting down directory memory overhead) can be also used for reducing the latency of L2 misses by obtaining directory information from a much faster structure than main memory. For example, in [17] the integration of directory caches inside the coherence controllers was proposed to minimize directory access time. In addition, remote data caches (RDCs) have also been used in several designs (as [10, 11] ) to accelerate the access to remote data. In [9] , the remote memory access latency is reduced by placing caches in the crossbar switches of the interconnection network to capture and store shared data as they flow from the memory module to the requesting processor. Finally, in [2] a 3-level directory organization was proposed, including a directory cache on chip and a compressed directory structure in main memory. Differently from these proposals, we present a novel design for the L2 cache used in shared-memory multiprocessors that takes into account coherence from the beginning. As far as we know, this is the first time that a specific cache design for directory-based shared-memory multiprocessors has been proposed.. Other proposals to reduce L2 cache miss latency in ccNUMAs have focused on using snooping protocols with unordered networks. In [13] , Martin. et al. propose a technique that allows SMPs to utilize unordered networks (with some modifications to support snooping). Bandwidth Adaptive Snooping Hybrid (BASH) [14] is an hybrid coherence protocol that dynamically decides whether to act like snooping protocols (broadcast) or directory protocols (unicast) depending on the available bandwidth. Token coherence protocols [12] avoid both the need of a totally ordered network and the indirection caused by the directory by using N tokens per memory block. In this way, a node can read a block if it has at least one token and can update the block if it has all the tokens of that block.. Regionscout [15] is a technique that detects memory regions in which only one cache accesses the blocks of these regions. In this way, regionscout reduces the bandwidth and latency for some requests in SMP multiprocessors. Our proposal, on the contrary, reduces the latency of L2 cache misses by minimizing the number of times that main memory has to be accessed.. Finally, the lightweight directory architecture proposed in [18] adds directory information to the L2 caches, thus removing the directory structure from main memory. However, this organization increases the number of cache misses as a result of the premature invalidations that arise when a particular memory block is replaced from the L2 cache of the corresponding home node. In the work presented in this paper, however, we avoid these premature invalidations by splitting the L2 cache design into two parts: one for storing data requested by the local processor and the other for containing directory information for the blocks that the remote processors have referenced.

O O B O O O B I I O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O B B O O O O O O O O O O O O O B I I O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B I I B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O B I I O O O O O O O O B O O O O O O O B I O O O O O O O B B O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O B B O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B I O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


The complex dynamics of collaborative tagging The debate within the Web community over the optimal means by which to organize information often pits formalized classifications against distributed collaborative tagging systems. A number of questions remain unanswered, however, regarding the nature of collaborative tagging systems including whether coherent categorization schemes can emerge from unsupervised tagging by users. This paper uses data from the social bookmarking site del.icio.us to examine the dynamics of collaborative tagging systems. In particular, we examine whether the distribution of the frequency of use of tags for "popular" sites with a long history (many tags and many users) can be described by a power law distribution, often characteristic of what are considered complex systems. We produce a generative model of collaborative tagging in order to understand the basic dynamics behind tagging, including how a power law distribution of tags could arise. We empirically examine the tagging history of sites in order to determine how this distribution arises over time and to determine the patterns prior to a stable distribution. Lastly, by focusing on the high-frequency tags of a site where the distribution of tags is a stabilized power law, we show how tag co-occurrence networks for a sample domain of tags can be used to analyze the meaning of particular tags given their relationship to other tags. This work has explored a number of issues highly relevant to the question of whether a coherent way of organizing metadata can emerge from distributive tagging systems. We began by outlining a principled generative model of tagging. Our model is based on Mika's formalization of tagging, but additionally incorporates the information value of tags which we believe allows for a more complete account of tagging [12] . Our model formalizes many of the common-sense observations made by people who are informally studying folksonomies.. Using a larger set of empirical data than previous studies have used, we have shown that tagging distributions tend to stabilize into power law distributions. This is important in that a stable distribution is an essential aspect of what might be user consensus around the categorization of information driven by tagging behaviors. Furthermore, as shown by our empirical study of the tagging history of these items, this behavior depends on the number of users and to some extent on the temporal duration of the tagging process. Therefore, given sufficient active users, over time a stable distribution with a limited number of stable tags and a much larger "long-tail" of more idiosyncratic tags develops. One might consider this stabilized distribution to be an emergent categorization scheme. This stable categorization scheme is described by a scalefree power law, such that in the future, unless a new tag with a high information value is discovered, further tagging will only reinforce the pre-existing categorization scheme given by the limited number of stable tags. One might claim that the users have collectively discovered a collective categorization scheme. The optimality of such a scheme merits further attention.. Using an example domain, we explored one of the most empirically challenging aspects of the generative model: the information value of a tag as a function of the number of pages the tag retrieves when searched. We examined how this information can be used with multiple tags to visualize correlation graphs that lend insight into the categorization process and into existing intuitions about how concepts are related.. It seems quite plausible that folksonomies and ontologies, which are merely new incarnations of the age-old distinction between categorization and classification respectively, are not mortal enemies, but fundamentally compatible, as tagging-based categorization in our data exhibits emergent consensus. By focusing on the tags which are most common in the tagging distribution, one should be able to understand the essence of the collective categorization scheme. One could then safely ignore the "long-tail" of idiosyncratic and low frequency tags that are used by users to tweak their own results for personal benefit, or alternatively, treat the "longtail" as an object of examination for other reasons. As shown by our visualization graphs, insightful categorization and classification schemes can be gained by focusing on the high frequency "short head" (as opposed to the "long tail") of a stabilized tag distribution.. Using the methodology outlined above, in particular the detection of power law distributions and measures of relative entropy, any tagging application should be able to detect whether and at what point a tagged resource has stabilized to a power law. Using the Kullback-Leibler divergence, interested parties can test their tag distributions for stabilization. This is of practical importance since the results of data mining or knowledge engineering from stabilized tag distributions will be more mature and less likely to change with time, and therefore can take advantage properties of the power law distribution. Future work will elaborate on the results presented here regarding categorization schemes based on tag co-occurrence and information value and will examine whether these results hold among many different tagging applications. Lastly, these results suggest that treating collaborative tagging systems as complex systems yields important insights into the dynamics and processes of these systems. Insights gained by taking collaborative tagging systems seriously as an empirical object of study could provide insight into the complexity of the one of the world's most complex systems, the World Wide Web. The act of tagging resources by different users induces, at the tag level, a simple distance measure between any pair of tags. In our case, define the distance between two tags T i , T j through a cosine distance measure:. Where we denote by N (T i ), respectively N (T j ), the number of times each of the tags was used individually to tag all pages, and by N (T i , T j ) the number of times two tags are used to tag the same page, summed over all pages. The distance measure captures a degree of co-occurrence, which we interpret as a similarity metric, between the concepts represented by the two tags. The distance measure which is used can play a large role in the actual structure retrieved and we note that there are more sophisticated distance measures proposed in existing item-item collaborative filtering (see e.g. [14] ). For this paper, cosine distance was adequate.. Next, from these similarities we can construct a tag-tag correlation graph or network, where the nodes represent the tags themselves, weighted by their absolute frequencies, while the edges are weighted by the cosine distance measure. We build a visualization of this weighted tag-tag correlation by using a "spring-embedder" of algorithm -in this case we used the well-known Kawada-Kawai algorithm [1] . An analysis of the structural properties of such tag graphs may provide important insights into how people tag and how semantic structure emerges in distributed folksonomies (we return to this issue in Section 6.3, where we discuss the relation between this approach and the structures derived in the literature on language evolution). While it would be difficult if not impossible for independent researchers to collect enough data to construct and analyze the entire space of tags used in del.icio.us, we did collect enough data to provide an illustration of the approach for a restricted sub-domain.

O O O O O B O O O O B O O O O O O O O O O O O O O O B O B B O O O O O O O O O O O O B B O O O O O O O O O B O B O B O B O O O O O O O O O O O O B B O O O O O O O O O O O B O B O O O O O O O O B O O B O O O O O O O O O O O O O O B I O O O O O O O B O B O O O O O O B O O O O O O O B O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O B O O O O O O O O B O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O B O O O O O B O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O B O O O O O B O O O O O O B O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O B O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B B O B I O O O O O O O O O O B O O O O O B B O O O O O O O O O O O O B O O O O O O O B I O O O B O O O B O O O B O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O B O O O O O O O O O O O


Analysis and verification of an automatic document feeder Modern copying machines are versatile and complex systems in which embedded software plays an essential role. The progress towards faster and more stable machines that can satisfy ever growing customers' needs, places strict requirements on the efficiency and quality of such software. In order to meet these requirements, the software should be well-designed and free of errors. Using modern formal verification techniques, software designs can be checked for errors and deadlocks so that their quality can be assessed and improved at an early stage of the development process.In this paper, we analyze the embedded software of an Automatic Document Feeder (ADF). ADFs are important components of copier machines. The ADF studied here is a prototype developed by Océ-Technologies B.V., a company that develops professional printing systems. We construct a model of the ADF in µcrl, a process algebra-based specification language, and express the system's requirements in the modal µ-calculus. Next, we use the µcrl and Cadp tool sets to check whether the system meets its requirements. This analysis reveals important errors in the ADF and we propose solutions to these problems. Also, we show that some requirements that engineers assumed to be valid, are too strict. We present slightly weaker versions of these requirements and show that these do hold. In this sense, in addition to finding errors in the ADF, our analysis also led to a better understanding of the behaviour the system. At the Research & Development department of Océ-Technologies B.V. in Venlo, the Netherlands, various professional document systems are developed. Océ's product line ranges from wide format to cut sheet and from full colour to blackand-white printing systems. In all of these machines, embedded software controls the hardware and provides functionalities to the user. The progress towards more powerful and complex machines places higher requirements on the quality of that software. It is important that the software is well-designed and free of errors.. Typically, the embedded software is a distributed system: it consists of a number of components running in parallel. The behaviour of such systems tends to become very complex as more components are added. Consequently, while searching for errors, checking all situations that may possibly occur in the system becomes a formidable task.. In this paper, we apply formal verification techniques to find errors in the embedded software of a copier machine. In particular, we study a prototype of an Automatic Document Feeder (ADF). The ADF automatically feeds sheets of paper to the scanner of the copying machine. It moves the sheets in its input tray over the scanner one at a time and places every sheet into an output tray after it has been scanned. It is not the responsibility of the ADF to scan the sheet.. We construct a model of the ADF's embedded software by specifying its behaviour in the specification language µcrl. Next, we formulate the ADF's requirements in the µ-calculus and verify whether the system meets its requirements using model checking techniques. There are not many reports on case studies in which properties of real industrial systems are verified using formal techniques. See for example [1, 13, 15, 24] .. We introduce µcrl and the µ-calculus shortly in Sect. 2. In Sect. 3 we describe the ADF and we model its behaviour in µcrl in Sect. 4 . Section 5 contains the ADF's requirements, gives their translations to the µ-calculus and reports the results of model checking the requirements on the specification of Sect. 4 . In that section we also propose solutions to the problems that are found. We conclude in Sect. 6. We have analyzed the embedded software of an Automatic Document Feeder prototype by applying formal verification techniques. We have given a system description, requirements, a specification in µcrl and the results of model checking the requirements using Cadp. Two errors were found in the system, for which we suggested solutions and showed that a system incorporating these solutions meets all of the requirements. We formulated weaker versions of requirements that were found to be too strict.. Our analysis revealed errors that would have been difficult to find otherwise. This indicates that formal specification and verification is a powerful and effective method for finding errors in systems. We have shown that both errors can be resolved easily and efficiently by adding only two semaphores and slightly modifying the behaviour.. Regarding the problem described in Sect. 5.2.2, we note that it may very well be that this situation cannot occur if real time is taken into account, as the amount of time needed for a sheet to move from O2 to K7 (paths A and B) may exceed the amount of time needed for another sheet to move onto the glass plate (path C). As we did not consider time in the analysis, we were not able to verify this claim and cannot guarantee that R2 is never violated. However, we have solved the problem for either case.. For the verification of untimed properties on the ADF, µcrl and Cadp are very well suited: generation of the LTS and model checking of the properties was easily done on a contemporary desktop computer. The fact that timed behaviour could not be taken into account, meant that no timed properties could be checked for the ADF. On the other hand, it allowed us to abstract away from irrelevant details and to focus on those parts of the behaviour that were relevant to the requirements we wanted to verify.. For Océ this project served as a first encounter with formal verification techniques. The tools were not used by employees of Océ but by an external person. The project showed the company that constructing a formal specification of a system's behaviour already raises interesting questions about the desired behaviour and forces software engineers to specify that behaviour even more precisely than they already did in the documentation. Also, it was shown that model checking can help engineers to find errors in their systems. The main issue for the future is how such "academic" tools should be merged with the standard design/build environment to enable an easy use by engineers. This project has taken the first step in this direction and future projects will expand on this.. One of the focus points is whether and how existing system descriptions could be translated automatically to µcrl specifications. In this regard, the challenge and difficulties stem from the fact that the specifications are aimed at modelling the real behaviour and, hence, are usually at a higher level of abstraction. This often requires model design issues regarding the appropriate level of abstraction to be properly resolved, which is arguably a task at which humans perform better than machines. An example of such a model design issue is the decision to abstract away from specific time periods and distances if they are irrelevant to the requirements that will be checked.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


On linear balancing sets Let n be an even positive integer and F be the field GF(2). A word in F n is called balanced if its Hamming weight is n/2. A subset C ⊆ F n is called a balancing set if for every word y ∈ F n there is a word x ∈ C such that y + x is balanced. It is shown that most linear subspaces of F n of dimension slightly larger than 3 2 log 2 n are balancing sets. A generalization of this result to linear subspaces that are "almost balancing" is also presented. On the other hand, it is shown that the problem of deciding whether a given set of vectors in F n spans a balancing set, is NP-hard. An application of linear balancing sets is presented for designing efficient error-correcting coding schemes in which the codewords are balanced. Let F denote the finite field GF(2) and assume hereafter that n is an even positive integer. For words (vectors) x and y in F n , denote by w(x) the Hamming weight of x and by d(x, y) the Hamming distance between x and y.. We say that a word z ∈ F n is balanced if w(z) = n/2. For a word x ∈ F n , define the set B(x) = {x + z : z is balanced} = {y ∈ F n : d(y, x) = n/2} .. In particular, if 0 denotes the all-zero word in F n , then B(0) is the set of all balanced words in F n . It is known that 2. (see, for example, [10, p. 309] ). We extend the notation B(·) to subsets C ⊆ F n by

O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O