Stuck in the Conflicted Middle: A Role-Theoretic Perspective on B2B E-Marketplaces Over the years, research on the implications of information technology on network governance structures has explored the "move to the market" and the "move to the middle" hypotheses. The middle is a space in which the logic and modalities of markets and hierarchies are intermingled. There is increasing evidence that most network relations reflect mixed-mode or hybrid logic. Despite the apparent advantages that make the middle so populous or "swollen" (Hennart 1993, p. 472), Kambil et al. (1999) Over the years, there has been considerable research on the implications of information technology on governance structures in industry networks, that is, the relationships between organizations in a value chain (e.g., Robey et al. 2008 ).. Initially, the "electronic markets" or "move to the market" hypothesis dominated the information systems literature. The prediction was that, thanks to interorganizational technologies, markets with arm's-length modes of transacting would become the preferred governance structure since IT reduces the unit cost of communication and, consequently, coordination costs (e.g., Malone et al. 1987 ). However, this hypothesis was later criticized for failing to consider that supply-side firms are made worse off by price transparency.. They need compensating benefits, such as limits on size of the supplier network, in order to participate (Soh et al. 2006) . Furthermore, the electronic markets hypothesis overlooked that buy-side firms tend to favor hierarchical relationships with a handful of suppliers to ensure that the right product arrives at the right time (Holland and Lockett 1997; Kambil et al. 1999) , protection against opportunistic behavior (Provan 1993) , and containment of costs associated with searching (Choudhury et al. 1998) .. By decoupling the impact of IT on coordination costs from its impact on transaction risk, the "move to the middle" hypothesis was developed (Clemons and Row 1992) . The hypothesis suggests that IT and cooperative relationships are mutually reinforcing through the integration effect (e.g., Bensaou 1997; Grover et al. 2002; Kraut et al. 1999) , and that firms will choose hybrid modes of coordination that mix market and hierarchy logic. These "mixed mode" (Choudhury et al. 1998; Holland and Lockett 1997) governance models typically take the form of long-term cooperative agreements with a few suppliers ).. Evidence of the move to the middle hypothesis is not limited to buyer-supplier relationships, however. It also affects intermediaries such as e-marketplaces, namely, interorganizational information systems that institute an exchange framework through which multiple buyers and suppliers interact to accomplish market-making activities, including identifying and selecting trading partners and executing transactions (Choudhury et al. 1998) . For example, research has shown that e-marketplaces that rely on a purely market-oriented logic of search, price transparency, and competition are less likely to be successful than ones that also incorporate the logic of coordination and cooperation by embracing the integration capabilities of IT (Bakos and Brynjolfsson 1993; Holland and Lockett 1997) .. Despite the pervasiveness of transactions that fall between markets and hierarchies, Kambil et al. (1999) label this continuum "the conflicted middle" and describe it as a place with high structural and operational uncertainty, as well as high coordination costs. They propose that "all-in-one markets" are capable of resolving the conflict associated with the middle. All-in-one markets are unified, technology-enabled platforms that aggregate multiple transaction modalities. They provide market-oriented functionality such as search, electronic catalogs, requests for quote, and reverse auctions, as well as hierarchy-oriented functionality such as private marketplaces that enable unique pricing, electronic data interchange, and supply chain management (for a detailed description of the capabilities of these e-marketplaces, see Dai and Kaufmann 2002) . These technological capabilities, along with consulting services in the marketplace, facilitate both electronic brokerage and integration (Kambil et al. 1999; Malone et al. 1987 ).. Unfortunately, however, Kambil et al. provide limited insight into both the nature of the conflict in the middle and the mechanisms through which all-in-one markets help resolve it. This is because they focus on uncertainty rather than conflict, thus explaining the role in the middle of all-in-one markets in terms of uncertainty reduction rather than conflict resolution. Furthermore, their research is nonempirical and remains at a strategic level of analysis, highlighting choices managers have to make with respect to designing transactions in mixed-mode networks rather than dealing with conflict. In this study, we seek to address the gaps in our understanding of hybrid network structures and the implications for them in e-marketplaces. We rely on a longitudinal case study of an e-marketplace that evolved into an all-in-one market. By focusing on the practices of the e-marketplace, the participating buyer and supplier firms, and their respective employees, we seek to answer the following research questions:. • What is the nature of the conflict that characterizes the conflicted middle?. • How do e-marketplaces, specifically all-in-one markets, help resolve this conflict?. Our paper proceeds as follows: Drawing on role, conflict, and transaction cost theory, we begin by outlining a role-theoretic framework for conceptualizing and analyzing the conflicted middle. We further theorize how all-in-one markets help resolve this conflict. We then describe our research method, which entailed intensive data collection and an interpretive analysis. In the data section, we briefly outline the e-marketplace's evolution and then analyze the various conflicts that the broker, trading partners, and agents experienced, and how they resolved them. We conclude with answers to our two research questions and a discussion of the implications of our study for research and practice. This paper seriously considers Kambil et al.'s (1999) description of mixed-mode governance structures as the conflicted middle: we seek to understand the nature of conflict in the middle and the role of all-in-one markets in resolving it. With regard to the nature of conflict in the middle, our study indicates that the enacted conflicts were based on the struc- 8 We chose EnergyX because we wanted to study conflict and two of EnergyX's characteristics made conflict likely: buyer-ownership and implementation in an industry characterized by embedded relationships. However, neither of these characteristics is unusual in the B2B space. Many emarketplaces are buyer-owned (Yoo et al. 2007 ) and embedded relationships are common in many industries (Bensaou and Anderson 1999; Dyer and Singh 1998). tural contradictions between markets and hierarchies, the two governance modes that are mixed in the middle. Furthermore, conflicts are interrelated across types (i.e., goal, behavior, and identity) and roles (e.g., agents, trading partners, and brokers). This suggests that once one type of conflict is triggered, the likelihood of another type of conflict arising within the role set increases.. All-in-one markets helped resolve these conflicts by implementing integration strategies to foster a common understanding among the network participants. These strategies included the formulation of a supra-organizational vision that transcended the contradiction between markets and hierarchies, as well as technology stable enough to coordinate transactions yet flexible enough to adapt to local needs. Boundary spanners helped individual agents and trading organizations understand these strategies and implement their own. Buyers and suppliers relied on boundary mechanisms, an integration strategy, to resolve conflict in their relationships. Purchasing agents resolved conflict by separating their roles as employees from their roles as purchasing professionals. In sum, all-in-one markets play a significant role in resolving conflict in the middle by managing role boundaries. The purpose of our interpretive case study of EnergyX, an e-marketplace that evolved into an all-in-one market, was to answer two research questions regarding (1) the nature of conflict in the mixed-mode governance structures that occupy the continuum between markets and hierarchies, and (2) how e-marketplaces, specifically all-in-one markets, resolve the conflicts in the middle. We address each question in turn. Table 5 summarizes the results of our data analysis. Table 5 summarizes the conflicts we identified within the EnergyX case. It highlights that our study yielded considerable evidence of different types of conflict in both macro-and micro-level roles. Of the roles we focused on in our analysis, only the utilities' purchasing agents did not experience goal conflict because their role as salaried employees was unaffected by EnergyX's implementation. The case study method is well-suited to our research objectives for two reasons (Walsham 1995) . First, there is a lack of prior theory on the nature of conflict in the middle. Second, social context is important in exploring not only the conflict, but also the role of technology in resolving it. We rely on a single interpretive case study for this research. We do not seek to impose an a priori theory on our data or to test our theoretical framework (Orlikowski and Baroudi 1991) ;

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 B O O B I 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 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 B I 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 B 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 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 B I 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 B I 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 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 B I 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


PASTA: splice junction identification from RNA-Sequencing data Background: Next generation transcriptome sequencing (RNA-Seq) is emerging as a powerful experimental tool for the study of alternative splicing and its regulation, but requires ad-hoc analysis methods and tools. PASTA (Patterned Alignments for Splicing and Transcriptome Analysis) is a splice junction detection algorithm specifically designed for RNA-Seq data, relying on a highly accurate alignment strategy and on a combination of heuristic and statistical methods to identify exon-intron junctions with high accuracy. PASTA is an easy to use and efficient tool to identify splice junctions from RNA-Seq data, intended as the first module in a complete computational pipeline for AS analysis. Compared to similar tools, PASTA offers an increased ability to detect real splice junctions especially at low coverage levels and short sequence size, due to several heuristic strategies it employs. It does not rely on the presence of canonical splice junctions, and it uses an organism-specific statistical model to evaluate predicted intron-exon junctions. Junction positions are determined through a highly accurate procedure based on patterned alignments. Moreover, PASTA enables the prediction of trans-splicing events from patterned alignments identified in different chromosomes. It allows prediction of splice junctions in less well-studied non-model organisms using information learned from closely-related model organisms. In addition, experimental validation demonstrates PASTA's high sensitivity in discovering minor splice sites ( Table 7 , Additional file 1: Figure S2 and Table S4 ).. Finally, PASTA does not filter predicted junctions on the basis of their coverage, but retains high-scoring junctions even when they are supported by a low number of reads. The reason is that the final result we are interested in is not the presence or absence of an individual junction, but which isoform structures can be inferred from a set of junctions in the same locus. It is therefore a better strategy to retain low-coverage junctions (provided they have a high score) and evaluate the isoform (s) they participate in when information about all the other junctions in them is known. The resulting high sensitivity in discovering splice junctions, including minor splice sites, was demonstrated by experimental validation of a subset of PASTA predictions. Alternative splicing (AS) is the process by which a single gene can generate multiple transcripts, and therefore different proteins, through the alternative use of exons. As our knowledge of the structure and organization of genomes increases, AS is being increasingly recognized as a fundamental process at the basis of the molecular diversity and complexity within the cell, of gene regulation, and of a number of critical biological processes ranging from development to disease [1] . Alterations of AS are linked to human diseases ranging from cancer to muscular dystrophies, from neurodegenerative diseases to obesity [2] . A better understanding of the mechanisms that regulate AS and of the relationships between AS and pathological states will provide new, important insights into these diseases, leading to advances in their diagnosis, and opening the way for the development of novel molecular therapies.. High-throughput RNA sequencing technology (RNASeq) provides a very large amount of information about transcriptional state, averaged across a population of cells, under the form of short reads that map to genomic regions corresponding to gene transcripts [3] . Reads mapping to the exons of a gene indicate that the corresponding gene is likely expressed. Exons and junctions that are specific to a single isoform of a gene make it possible to identify the particular splicing isoform or isoforms that are expressed [4] , while more accurate isoform reconstruction can be achieved by analyzing reads that map to exon-exon junctions. Finally, the number of reads aligning to a gene region, when normalized to the length of the region, provides an estimate of the expression level of that gene [5] . The results of an RNA-Seq experiment can therefore provide a snapshot of the RNA landscape in a population of cells in a given state, ranging from a catalog of all RNA molecules represented in it, to their exact structure, to their relative expression levels [6] .. We are developing an innovative computational pipeline for the analysis of alternative splicing through RNASeq, called PASTA (Patterned Alignments for Splicing and Transcriptome Analysis). The pipeline is composed of three modules, dealing with splice junction detection, isoform reconstruction, and expression level estimation, respectively. Here we describe the first module of the pipeline, whose purpose is to identify all exon-exon junctions that can be inferred from aligned short reads. This is accomplished through a highly accurate splicejunction identification algorithm combined with heuristic methods to score junctions on the basis of biologically relevant features. The first step in running PASTA consists in aligning short reads obtained from RNA sequencing to the reference genome. This step is usually performed using an existing, fast alignment tool such as Bowtie or Bowtie2 [7] . Since the reads are aligned against the genomic sequence, reads that are entirely contained within exons will align correctly, while reads falling over the junctions between two exons will, in general, fail to align. The main task performed by PASTA is to infer the exact location of exon-intron boundaries using the unaligned reads.. In contrast to the seed and extend method used by the majority of similar programs, PASTA relies on patterned alignments combined with a logistic regression model. Patterned alignments allow PASTA to identify the position of putative splice junctions with high accuracy. The logistic regression model is used to score putative splice junctions according to their biological "context": for example, the presence of canonical splice signals [8] and of regulatory elements such as the Branch-Point Sequence (BPS), and the expected distribution of intron sizes.

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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Multi-layer topology control for long-term wireless sensor networks Due to the inefficiency of a flat topology, most wireless sensor networks (WSNs) have a cluster or tree structure; but this causes an imbalance of residual energy between nodes, which gets worse over time as nodes become defunct and replacements are inserted. Multiple layers are better then the typical two-layer cluster-based topology, because it can better accommodate nodes with different levels of residual energy. We propose that each node should periodically determine its own layer, as its situation and the network topology changes. We introduce a topology control scheme for long-term WSNs with these features. Simulations show that this scheme can balance node energy levels, and thus extend network lifetime. Simple wireless sensor networks (WSNs) usually have a flat topology and transmit data using a flooding scheme, of which there are several variants. However, flooding can cause the broadcast storming problem [1] , reducing the efficiency and reliability of the WSN.. Hierarchical topology control (TC) schemes [2] [3] [4] [5] are designed to overcome the broadcast storming problem and to support in-network processing, which improves network performance. A drawback of hierarchical TC schemes is that an imbalance in residual energy between aggregation nodes and general nodes can occur over time, since the aggregation nodes can be expected to consume energy faster than the others [6] . It is even possible for some aggregation nodes to cease participation in the network because they lack energy. In previous schemes [2, 4, 7] , this problem has been overcome by getting nearby energy-rich nodes to take over the roles of defunct aggregation nodes; or new aggregation nodes must be deployed to extend the lifetime of the WSN.. In a WSN which uses hierarchical TC and operates for a long period, the imbalance in residual energy between the nodes can become serious as the number of failed and insertions or removals replacement nodes recounts of [8] . Draconian changes to the network topology are also likely to be necessary over time.. We propose new TC scheme designed specially for WSNs which are to be maintained for a long period. It minimizes the variation in residual energy between nodes, and thus extends the network lifetime. This goal is achieved by replacing the usual one-or two-layered topology with multiple layers, which can accommodate a wide range of node energy levels more precisely. This new scheme also gets nodes to change roles dynamically as the energy and traffic context changes. This is necessary because the energy level of each node and the network topology can both change radically in long-term WSNs. In our scheme, each node periodically determines its own layer in response to its energy status, with traffic and topology information. There has been a lot of research on hierarchical topologies for WSNs; but, to the best of our knowledge, this is the first contextaware multi-layer TC scheme for long-term WSNs.. The rest of this article is organized as follows: We explain the outline of the hierarchical TC and its problems in the next section. In Section 3 we describe our layer-based TC scheme for long-term WSNs. We then evaluate the performance of our algorithm in Section 4 and draw conclusions in Section 5. We have proposed a new TC scheme for long-term WSNs. In this scheme, each node deter-mines its own layer, which depends on its residual energy and the current network status. This allows the WSN to balance itself by allocating energy-intensive roles to energy-rich nodes, thus extending the network lifetime.. As sensors become more efficient, long-term WSNs will become more common, and require more sophisticated TC, which we believe can be built on the adaptive layer-based scheme reported in this article. Oyman and Ersoy [8] investigated the choice of multiple sinks. They use a cluster scheme in which the sinks act as cluster-heads, and each node only reports to one cluster-head. Das and Dutta [10] proposed a similar method of sink selection, designed to minimize overall energy consumption.. Buratti et al. [11] [12] [13] considered the reachability of multiple sinks in tree-based topologies with fixed node and sink densities.. Kim and Lee [14] , and Fan et al. [15] used a spanning tree to control a topology in multi-sink WSNs. Kim and Lee's scheme reconfigures itself automatically when nodes fail, increasing network lifetime.. Fan et al. [15] proposed a three-layer topology for large-scale WSNs in which each layer has its own role. They provide an algorithm that finds all the bottleneck nodes and eliminates them.. Ciciriello et al. [16] introduced a scheme in which the search for a multi-sink topology is mapped to a multicommodity network design problem. This scheme periodically adapts message paths to reduce the number of network links that are used, increasing the efficiency of data transmission.. Intanagonwiwat et al. [17] create a tree which is limited to a single sink at its root. Paths from sensor nodes nearer to the sink are added earlier gradually.. Other authors [18] [19] [20] have also utilized a three-layer topology as the basis for control algorithms for static WSNs. Sharma et al. [18] create high-performance clusters and zonal sink nodes in order to increase the lifetime of sensor nodes. Duan et al. [19] fusion nodes and a control node to reduce the energy consumption of mobile nodes. Ming et al. [20] introduced a logical three-tiered TC model which consist of relay nodes, application nodes and sensor nodes. Their cluster-heads organize themselves into a near-uniform distribution across the network.

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 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 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 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 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 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


Calibrating cross-training to meet demand mix variation and employee absence We address the problem of determining the cross-training that a work team needs in order to cope with demand mix variation and absences. We consider the case in which all workers can be trained on all tasks, the workforce is a resource that determines the capacity and a complete forecasting of demand is not available. The demand mix variation that the organization wants to be able to cope with is fixed by establishing a maximum time to devote to each product. We contend that this approach is straightforward, has managerial practicality and can be applied to a broad range of practical scenarios. It is required that the demand mix variation be met, even if there are a certain level of absences. To numerically solve the mathematical problem, a constraint-based selection procedure is developed, which we term CODEMI. We provide illustrated examples demonstrating solution quality for the approximation, and we report on an illustrative set of computational cases. Demand-mix flexibility, also called product flexibility and process flexibility, consists of the capacity of a production process to produce a variety of products to meet demand mix variability. The benefits of this flexibility have been demonstrated by Jordan and Graves (1995) . Cross-training workers can increase production flexibility, thereby helping it to efficiently deliver a broader range of products by increasing overall workforce skills, so that they can cope with a wider range of possible demands (Hopp and VanOyen, 2004 ). Thus, cross-training workers is potentially an effective source of demand mix flexibility.. The question of 'who should be trained on which tasks?' is an important one for many organizations, some of whom adopt cross-training policies not as a response to direct skill requirements, but rather for employee job enrichment, to reduce boredom, or to create greater agility globally. To obtain some of these benefits, the specification of particular levels of cross-training may not be necessary. More often, cross-training is necessary for gaining flexibility in order to cope with demand variations, and redundancy, as a compensation for employee absences. In this case, the effectiveness of cross-training depends in largely upon how cross-training is carried out. When acquiring ability in new tasks requires significant durations and concomitant training cost, establishing the appropriate cross-training goals becomes critical.. The literature distinguishes between cases in which various specific patterns of flexibility are considered, and when full flexibility is assumed or allowed. Furthermore, situations in which the workforce is the only essential resource must be distinguished from those in which other resources are involved (see §2.1). The problem addressed here corresponds to full flexibility, with the workforce as the critical resource, as is common in practice. This situation can be found in call centers (Batta et al., 2007) , maintenance service operations (Brusco and Johns, 1998) , nurse staffing (Bard and Purnomo, 2005) and retail services (Berman and Larson, 2004) , among others. In fact, labor is often the limiting resource in practice . Some literature addresses demand mix variation by considering a set of future demands along with the corresponding probabilities of occurrence (see §2.2). In this paper, the demand scenarios to be covered will be defined by establishing the degree of variability that the organization wants to be able to meet. This approach had not been previously dealt with in the literature and has practical applicability, as we will support below.. When addressing cross-training and demand coverage, different complementary characteristics can be considered. The skills involved can be either categorical or hierarchical. Categorical skills are binary in nature, and as such are either possessed or not possessed at all (Bruecker et al., 2014) . When skills are hierarchical, they can be performed at different levels, as it has been assumed by some previous research (Pinker, 2009; Azizi & Liang, 2013) . Similarly, the literature has considered homogenous or heterogeneous workers from the point of view of learning capacity (Shafer et al., 2001) .. In addition, cross-training in a single department or between departments can be considered (Van den Bergh, 2013) , the possibility of overtime can be included (Wright & Mahar, 2013) and, for each worker, primary and secondary skills can be distinguished (de Matta & Peters, 2009; Guerry et al., 2013) . In this paper, several straightforward assumptions regarding these options have been adopted: categorical skills, homogeneity of workers regarding learning, one single department, with no overtime considered. Primary and secondary skills are not differentiated when defining cross-training objectives.. The objective of this paper is to develop a method for determining cross-training goals for a work team in order to meet a certain level of demand mix variation, which is established by using the time devoted to each product. It is assumed that there is some level of worker absenteeism and that all workers can be trained to perform each task. Previous cross-training is taken into account to consider cases wherein there may be preexisting teams and cross trained skills. The problem is analyzed and solved via the development and use of a constraints-based selection procedure, which we term CODEMI. We will examine this novel approach using several computational cases. A primary contribution of the paper is the development of this novel and practical approach for addressing the cross-training problem.. In the remainder of this paper we discuss the relevant literature review in Section 2, followed by definitions and description of the problem, along with definitions of the relevant variables for our modeling approach in Section 3. Section 4 presents a novel procedure for generating solutions, illustrative examples, an evaluation of the solution approximation obtained, and computational performance. We report our conclusions in Section 5, while references are presented in Section 6.. We consider the problem of meeting work team cross-training goals while meeting a level of demand mix variation and employee absences, with worker skill capability as the only critical resource. That is, we consider a so-called skill-matrix for each team. A skill-matrix is generically a matrix with as many rows as workers belonging to the team and as many columns as jobs the teams must perform. Each row of the matrix corresponds to a specific worker with an indication of whether that worker is trained on and can perform the corresponding columnar job. Similarly, columns (jobs) indicate the set of workers who may perform that job (see Daniels et al., 2004) .. We define demand mix variation by first establishing a maximum time to devote to each product. Then the problem is expressed by using an expression such as the following:. "Obtain cross-training that makes it possible for a team to meet demand, devoting up to X% of time to product 1, up to Y% to product 2, … , and up to A worker absences". We employ this perspective for its straightforward practical appeal. For example, assume a language service that translates texts from Spanish, Chinese and Arabic to English, with a working capacity of 600 hours per week. They expect to translate orders involving 200 hours of work of each language per week with some demand variations. Naturally, full flexibility may not be obtainable in this context, not least due to the time needed to acquire specific language skills. Nonetheless the question of how to establish demand mix variation goals is important. We note that the specific bounds in this context must be considered a business decision. The objective can be, for example, to be able to accept up to 50% of work time devoted to Spanish translations, 40% to Chinese translations and 40% to Arabic translations. Demands of 300, 240 and 60 hours, respectively, would be admissible, yet demands of 150, 150 and 300 would not be. We remark that selection based on the time to be devoted to each product does not imply any loss of generality. That is, adapting the problem to other measures, such as the number of units or turnover, is straightforward.. The approach and the model defined below are applicable for groups of workers of any size. However, we note that the general problem is NP-hard, as it includes the resolution of covering problems, which are known to be NP-hard (Johnson and Garey, 1979) . Thus, a solution procedure able to handle moderate size instances is presented and tested (see Section 4). These instances with moderate sizes correspond to practical situations. Cross-training can be determined for any scale problem, but it is common to set cross training at a team level. Scenarios having these characteristics have been reported in the literature for call centers, repair services, and field services that dispatch teams of technicians or other staff into the field. These are important for servicing machines in medical electronics, telecommunications and information technology, industrial automation, building controls, high-voltage power equipment, and office products (Agnihothri and Mishra, 2004) . Literature describing middlesize cross-training problems that have been observed in real cases are showed in Table 1 .. The nature of the specific application will affect the determination of the planning horizon and the planning units (blocks), as an important aspect of the problem discussed in §3.4. In call centers, for example, significant delays are not reasonable and thus a short planning horizon is the norm. For activities such as project work, or repairs, the planning blocks will usually coincide with project or repair activities. Ultimately, planning horizons can be considered on a case-by-case basis. For instance, in manufacturing, there is greater freedom regarding the setting planning horizons and blocks. We addressed the problem of determining a cross-training skill matrix that a work team must have in place in order to meet a level of demand mix variation and workplace absences. Demand mix variations are defined in a straightforward manner in order to relate well to common business practices, thereby allowing for practical use and future improvements of the proposed approach. This paper contributes to the literature on determining appropriate cross training levels and skill matrices for groups of workers, wherein we developed a novel approach using the CODEMI algorithm for solving problems in this class. An appropriate solution is to define demand mix variation by means of establishing the upper bounds for the proportion of total time devoted to each product.. As the problem is defined in terms of 'level of variation' and ´level of absenteeism', the scope and level of disaggregation are not part of the original definition problem. The influence on the results, which arises from the definition of the parameters that determine the scope and level of disaggregation, was analyzed in detail in order to guide their selection in real cases. The solution approach we present is based on constraint selection, and we report the performance based on computational experience. The approach is effective in solving problems in the range selected, with average optimality gaps of less than 1%, with the largest gap observed less than 9%.. The dimensions of the solved instances suggest that the proposed approach and the solution method described can be a basis for future, practical applications. For such applications, it would be most useful to obtain feasible solutions of the problem, even if they are suboptimal, rather than solving a relaxed version of the problem. Future research in developing such an approach will extend the practicality of the current study as well as the broader problem of determining well-scaled math programming formulations. Extension of our approach and

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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B 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 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 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 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 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 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 B 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 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 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 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 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 O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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


Evaluating heuristics for tabletop user segmentation based on simultaneous interaction García Sanjuan, F.; Jaén Martínez, FJ.; Catalá Bolós, A. (2013) Differentiating between users that interact on a tabletop could be beneficial for collaborative tasks to support territoriality-oriented features such as a more efficient space management or a better presentation of the contents. In this paper, we design a novel algorithm for the user differentiation or segmentation based on the simultaneous manipulation of controls. This is a potential differentiating factor that has remained unexplored so far, and in combination with other factors may become relevant to successfully accomplish such differentiation task. Basically it relies on the idea that users manipulate digital elements with a single hand, and hence, if two controls are being used at the same time, they most likely belong to different users. On the generic algorithm, three different versions have been implemented that include several heuristics to address the problem. The comparison under a simulated experiment shows that the heuristic involving more knowledge on distances on user controls performed better according to different goodness functions. This shows promising to further development and refinement of the approach by expanding it with other potential factors to eventually build a robust user differentiation subsystem. Interactive tabletops provide a natural way of working collectively and several studies have shown their potential for collaborative activities (Dillenbourg & Evans, 2011) (Hornecker, Marshall, Dalton, & Rogers, 2008) . As stated in (Decouchant, Mendoza, Sánchez, & Rodríguez, 2013) systems intended to support collaboration should adapt themselves, for instance, in terms of the state of the activities, available resources and collaborators' location. This context-awareness interaction is relevant to provide a more user-oriented interface by considering the context of use and the context of user interfaces (Seo & Lee, 2013a) (Seo & Lee, 2013b) . However, although multiple users are involved in many of the tabletop-based tasks, applications are not usually aware of who is interacting or which controls belong to which users. Therefore, they do not take into account this valuable information that could be useful to mitigate some typical issues that sometimes arise in these interfaces or provide some enhanced features. For example, a specific issue is the surface clutter when there are many controls on a limited area. Some refined strategies could be devised to reduce the clutter by taking into account the ownership of controls. An option could be rearranging the interface elements around their owner in order to obtain a better layout of the elements and make more space available (for instance, moving away the elements that have not been used in a while). This rearrangement would be motivated by two main observations. Firstly, as reported in (Scott, Sheelagh, Carpendale, & Inkpen, 2004) and (Tse, Histon, Scott, & Greenberg, 2004 ) users tend to territorialize their working space and almost exclusively use the area in front of them. Secondly, users prefer working with their own UI elements, fact that was described in (Morris, Paepcke, Winograd, & Stamberger, 2006) , showing that even if users can share the controls, they choose to replicate them. To successfully involve all these ideas, it is essential to differentiate the users owning the controls.. In general, being aware of who is using the surface would allow the development of user interfaces that automatically adapt to the way users interact in terms of content visualization and space management. Therefore, studying the way to differentiate users is interesting because it could open new design considerations on how the content can be better delivered on these multi-user tabletop interfaces and eventually improve the quality of the designed tabletop-based applications.. Researchers like Harrison et al. (Harrison, Sato, & Poupyrev, 2012) and Zhang et al. (Zhang, Yang, Ens, Liang, Boulanger, & Irani, 2012) have specified some desirable qualities that user differentiation systems should have. According to these authors, they should avoid requiring wearable elements and minimize or suppress the peripheral hardware. They should also be fast, robust (allowing the correct distinction between a variable number of users interacting both sequentially and simultaneously), transparent (not distracting the users from their tasks) and, finally, cheap, easily deployable, compact and with low power requirements.. In this paper, we focus on describing a factor that has not yet been considered: the simultaneous use of different controls, which in combination with other factors may increase the robustness of the ownership of controls assignment process. When interacting with digital media, users tend to use one single hand even though multi-touch surfaces allow bimanual interactions (Terrenghi, Kirk, Sellen, & Izadi, 2007) . Therefore, for some situations it could be thought that, if two UI elements are being manipulated at the same time, they most likely belong to different users. In addition, some co-located collaborative activities have shown a certain trend to parallelization of tasks while users interact orally with one another (Morris, Lombardo, & Wigdor, 2010) . Therefore, it could be possible to effectively use this factor to differentiate between users, because many controls would be manipulated at the same time, restricting their number of possible owners. Hence, we propose in this paper an algorithm to effectively segment (or partition) the controls on a surface according to their most likely owner based on collisions arising as a result of simultaneous manipulations of the controls in the shared multi-touch surface. We present several goodness functions that may be applied during the segmentation process and we perform an experimental analysis to be able to identify the most effective one(s) in this respect.. The rest of the paper is organized as follows. First, related work is described in Section 2, distinguishing between approaches relying on hardware setups versus those focused only on software processing, with no additional hardware instrumentation. In Section 3, we discuss three different approaches for our partitioning algorithm. Section 4 shows an experiment for evaluating these approaches according to several goodness functions. Finally, in Section 5, the conclusions and future works are described. In this paper we have proposed a solution for the problem of user differentiation without using any hardware besides the tabletop, by focusing on a factor that has not yet been explored in detail: the simultaneous use of different controls. A segmentation algorithm has been implemented which maintains controls in different groups if they are assumed to belong to the same user, achieving in this way the differentiation of the users manipulating those controls. The algorithm follows a generic design so that the basic operations of splitting, migrating and merging that have been considered can be implemented in different ways leading to different approaches. This will be particularly useful to consider and easily accommodate other factors together within the algorithm in the future, by simply expanding or re-implementing these functions with the new elements. In this work, three approaches have been implemented for control migration based on different heuristics. These approaches have been named CRCM (Closest Remote Centroid Migration), FLCM (Furthest Local Centroid Migration) and RLCD (Remote-Local Centroids Difference) and they include the benefits of another factor: the distance between controls. Whereas CRCM selects for migration the closest control to another free group, FLCM chooses the one furthest to its current container. RLCD is a hybrid version of the previous ones.. In a simulated environment, the three versions of the algorithm have been compared between one another and also against a baseline (which arbitrarily selects the control to be moved). The comparison has been performed according to eight goodness functions, and the results have shown that, in general, the best approach is the RLCD one. This implies that not always it is preferable to move the control which is closest to a collision free destination if it is very close to the other controls in its current group, and vice versa.. As a future work, we intend to further test this algorithm with the heuristic of the RLCD approach by performing some experiments with real users in order to test its actual performance in a task that requires user differentiation. Also, we will combine this factor with others already explored by other authors, such as the position and orientation of fingers, and see whether the user differentiation system becomes more robust and accurate when combining several factors. Several works have been conducted in order to provide the user-aware assignment of controls to owners in a shared multi-touch surface. Among the existing works we distinguish two types of approaches: hardware-based and software-based. Hardware solutions rely on either enhancing the tabletops with external devices or equipping the user with some wearables, whereas most software approaches explore a single factor for the user differentiation task, usually the position and orientation of finger contacts. According to the desirable qualities proposed by (Harrison, Sato, & Poupyrev, 2012) (Zhang, Yang, Ens, Liang, Boulanger, & Irani, 2012 ) that user differentiation systems should have, software-based approaches seem to be more desirable, except for they are less robust than the hardware-based ones.. Regarding hardware solutions, the DiamondTouch tabletop (Dietz & Leigh, 2001 ) uses antennas beneath the surface that form a circuit with some receivers situated under the seats of the users. When a finger touches the surface, the circuit closes producing a unique electrical path, which allows the system to know which user has produced the contact. Harrison et al. (Harrison, Sato, & Poupyrev, 2012 ) present a promising method for user differentiation based on the electrical properties of users' bodies, using an external sensor. Although it is designed for tablets, the principles they use could be extended to tabletops in the near future. Dohse et al. (Dohse, Dohse, Still, & Parkhurst, 2008) propose the use of an external camera situated above the surface to infer the position of the users capturing their hands and arms. Schmidt et al. present HandsDown (Schmidt, Chong, & Gellersen, 2010) , a way of user identification based on the contour of the hands and the posterior tracking of the user using also an external camera. Proposals described in (Annett, Grossman, Wigdor, & Fitzmaurice, 2011) (Tănase, Vatabu, Pentiuc, & Graur, 2008) use proximity sensors to detect users and track them even if they move around the table. However, if they move away, the system forgets about them and they are considered new users when they return. Other works use gloves with coded tags (Marquardt, Kiemer, Ledo, Boring, & Greenberg, 2011) , wristbands with LED transmitting an identification code (Meyer & Schmidt, 2010) or rings transmitting infrared light pulses (Roth, Schmidt, & Güldenring, 2010) , which are recognized by the vision systems of some tabletops (e.g. Microsoft PixelSense).. All the previous proposals need of additional hardware besides the working tabletop, sometimes embedded in it and sometimes external. Some drawbacks are identified by their respective authors, such as that the users are tied to a fixed location (Dietz & Leigh, 2001 ) (Dohse, Dohse, Still, & Parkhurst, 2008) , the recognition is not very accurate when several users are working on the same side of the table (Dohse, Dohse, Still, & Parkhurst, 2008) , and the number of users is limited (Dietz & Leigh, 2001) (Harrison, Sato, & Poupyrev, 2012) (Marquardt, Kiemer, Ledo, Boring, & Greenberg, 2011) (Meyer & Schmidt, 2010) (Roth, Schmidt, & Güldenring, 2010) . Also, the use of wearable hardware (Marquardt, Kiemer, Ledo, Boring, & Greenberg, 2011) (Meyer & Schmidt, 2010) (Roth, Schmidt, & Güldenring, 2010) may result uncomfortable for some people, and it usually requires a previous registration from the users (also observed in (Schmidt, Chong, & Gellersen, 2010) ), which is not a very natural way of starting the interactions.. With respect to software solutions, Wang et al. (Wang, Cao, Ren, & Irani, 2009 ) present an approach to the differentiation of users by using the orientation of fingers to infer their position. However, it presents some problems when several users are working on the same side of the surface and, if they move, the system cannot track them. In this line, Dang et al. (Dang, Straub, & André, 2009 ) also present a way of finding the hand which some contacts belong to, given the position and orientation of the fingers. Zhang et al. (Zhang, Yang, Ens, Liang, Boulanger, & Irani, 2012 ) also present a differentiation of users relying on the orientation of fingers and a machine learning approach to predict the position of users. Although their solution provides high accuracy, they have only studied interactions done with the index finger and with at most three users standing at very specific places. In this work, the authors remark the potentiality of combining their distinction method with other approaches. When working with controls where the contents are represented in a fixed direction, such as text elements, the controls are faced towards the owner (Kruger, Carpendale, Scott, & Greenberg, 2003) (Morris, Lombardo, & Wigdor, 2010) . Morris et al. (Morris, Lombardo, & Wigdor, 2010 ) rely on a technique based on the pointing direction of controls in order to detect users. Nevertheless, their solution works only with this type of controls. This would not be suitable when working with 360º controls, which try to mitigate the problem of accessing the elements from any position around the table (e.g. (Catala, Garcia-Sanjuan, Jaen, & Mocholi, 2012) ). Besides, their proposal considers only four directions (North, South, East, West) and, therefore, the number of users that can be interacting with the surface is limited to four.

O B 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 O 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 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 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


Bidirectional model transformations in QVT: semantic issues and open questions We consider the OMG's queries, views and transformations standard as applied to the specification of bidirectional transformations between models. We discuss what is meant by bidirectional transformations, and the model-driven development scenarios in which they are needed. We analyse the fundamental requirements on tools which support such transformations, and discuss some semantic issues which arise. In particular, we show that any transformation language sufficient to the needs of modeldriven development would have to be able to express nonbijective transformations. We argue that a considerable amount of basic research is needed before suitable tools will be fully realisable, and suggest directions for this future research. The central idea of the OMG's Model Driven Architecture is that human intelligence should be used to develop models, not programs. The main intention behind this manifesto is not to privilege a graphical over a textual representation, but rather to press for the developer to be enabled to work at as high a level of abstraction as is feasible. Routine work should be, as far as possible, delegated to tools, and the human developer's intelligence should be used to do what tools cannot. To this end, it is envisaged that a single platform independent model (PIM) might be created and transformed, automatically, into various platform specific models (PSMs) by the systematic application of understanding concerning how applications are best implemented on each specific platform. The OMG's queries, views and transformations (QVT) standard [13] defines languages in which such transformations can be written.. In this paper we will discuss bidirectional transformations, focusing on basic requirements which such transformations should satisfy.. This paper is an extended version of the conference paper [14] presented (and chosen as Best Paper) in MODELS'07. Compared with the conference version, the present paper adds a more extensive discussion of the requirements that should be placed on bidirectional transformations; an example to show that correctness and hippocraticness alone do not suffice; and a discussion of the argument against as well as for Undoability. We newly discuss the expressivity of QVT Relations for writing non-bijective transformations. We provide a fuller comparison of our proposed framework with the lens approach of Pierce et al. We have also expanded the explanation of several points that have proved to have been less clear than they could have been. Finally, we include proofs of all formal results.. The structure of the paper is as follows. In the remainder of this section, we motivate bidirectional transformation, and especially, the need for non-bijective bidirectional transformations; we then discuss related work. Section 2 briefly summarises the most relevant aspects of the QVT standard. Section 3 discusses key semantic issues that arise. Section 4 proposes and motivates a framework and a definition of "coherent transformation". Finally Sect. 5 concludes.. In order to justify the considerable cost of developing a model transformation, it should ideally be reused; perhaps a vendor might sell the same transformation to many customers. However, in practice a transformation will usually have to be adapted to the needs of a particular application. Similarly, whilst we might like to argue that only the PIM would ever need to be modified during development, with model transformation being treated like compilation, the transformed model never being directly edited, nevertheless in practice it will be necessary for developers to modify both the source and the target models of a transformation and propagate changes in both directions. The interesting albeit unfinished document [17] makes these and other points, emphasising especially that bidirectional transformations are a key user requirement on QVT, and that ease of use of the transformation language is another key requirement.. Even in circumstances where it is in principle possible to make every change in a single source model, and roll changes down to target models by reapplying unidirectional transformations, in practice this is not desirable for a number of reasons. A non-technical reason is that different developers are familiar with different models, and even different modelling languages. Developers are less likely to make mistakes if they change models they are comfortable with. A technical reason is that some changes are most simply expressed in the vocabulary, or with respect to the structure, of one model. For example, a single change to one model might correspond, semantically, to a family of related changes in the other.. Given the need for transformations to be applied in both directions, there are two possible approaches: write two separate transformations in any convenient language, one in each direction and ensure "by hand" that they are consistent, or use a language in which one expression can be read as a transformation in either direction. The second is very much preferable, because the checking required to ensure consistency of two separate transformations is hard, error-prone, and likely to cause a maintenance problem in which one direction is updated and the other not, leaving them inconsistent. The QVT Relations language (hereinafter QVT-R) takes this second approach: a transformation written in QVT-R is intended to be able to be read as a specification of a relation which should hold between two models, or as a transformation function in either direction. We have explored some fundamental issues which arise when we consider relationally defined transformations between models which are bidirectional and not necessarily bijective. We have motivated our work from the current QVT standard, and some of the issues we raise are specific to it, but most are more general. We have suggested a framework and a set of postulates which ensure that bidirectional transformations will behave reasonably for some definition of "reasonable", and explored some consequences of our choice. Future work includes relating our framework to triple graph grammars, and further exploration of the relation with bidirectional programming. In the context of model transformations, almost all formal work on bidirectional transformations is based on graph grammars, especially triple graph grammars (TGGs) as introduced by Schürr (see, for example, [8] ). Indeed, the definition of the QVT core language was clearly influenced by TGGs. Greenyer and Kindler in [5] (following Greenyer's master's thesis [4] ) studies the relationship between QVT (chiefly QVT core) and TGGs, defining a translation from (a simplified subset of) QVT core into a version of TGGs that can be input into a TGG tool. More broadly, the field of model transformations using graph transformation is very active, with several groups working and tools implemented. We mention in particular [9, 16] . Most recently, the paper [2] by Ehrig et al. addresses questions about the circumstances in which a set of TGG rules can indeed be used for forward and backward transformations which are information preserving in a certain technical sense. It is future work to relate our approach to TGGs.. In this context, it may seem foolhardy to write a paper which approaches semantic issues in bidirectional model transformations from first principles. However, there is currently a wide gap between what is desired for the success of MDD and what is known to be soundly supportable by graph transformations; the use of QVT-style bidirectional transformations has not spread fast, despite the early availability of a few tools, partly (we think) because of uncertainty among users over fundamental semantic issues; and moreover, there is a large body of quite different work from which we may hope to gain important insights. Here we give a few pointers. For a survey of the available approaches to bidirectional transformations (i.e. not focusing on QVT), and a discussion of research issues to be addressed in future, especially the engineering issues, see [15] .. Benjamin Pierce and colleagues in the Harmony group have explored bidirectional transformations extensively in the context of trees [3] , and more recently in the context of relational databases [1] . In their framework, a lens, or bidirectional transformation, is a pair of functions (a "get" function and a "putback" function) which are required to satisfy certain properties to ensure their coherence. They define a number of primitive lenses, and combinators with which to build more complex lenses. Thus, they define a programming language operating on trees in which a program can be read either as a forwards transformation or as a backwards one. Coherence of the forward and backward readings of the program follows from properties of the primitives and combinators. Their framework is asymmetric, however: their forward transformation is always a function on the source model only, which, in conjunction with their coherence conditions, implies that the target model is always an abstraction of the source model: it contains less information. This has advantages and disadvantages. It is insufficiently flexible to serve as a framework for MDA-style model transformations in general, but the restriction permits certain constructs, especially composition, to work in a way which is not possible in the more general setting. We shall return to this work later in the paper.. Bidirectional programming languages have been developed in various areas, and a survey can be found in [3] . Notably Lambert Meertens' paper [10] addresses the question of developing "constraint maintainers" for use in user interface design, but his approach is far more general. His maintainers are essentially model transformations which, in terms we shall introduce below, are required to be correct and hippocratic, but not undoable. In [7] , Kawanaka and Hosoya develop a bidirectional programming language for XML. In Tokyo, Masato Takeichi and colleagues Shin-Cheng Mu and Zhenjiang Hu have also worked extensively on an algebraic approach to bidirectional programming: see [6, 11, 12] .

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 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 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 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 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Performance evaluation of service differentiating internet servers Abstract-Differentiated service approach has been proposed as a potential solution to provide Quality of Services (QoS) in the next generation Internet. The ultimate goal of end-to-end service differentiation can be achieved by complementing the network-level QoS with the service differentiation at the Internet servers. In this paper, we have presented a detailed study of the performance of service differentiating web servers (SDIS). Various aspects, such as admission control, scheduling, and task assignment schemes for SDIS, have been evaluated through real workload traces. The impact of these aspects has been quantified in the simulation-based study. Under high system utilization, a service differentiating server provides significantly better services to high priority tasks compared to a traditional Internet server. A combination of selective early discard and priority-based task scheduling and assignment is required to provide efficient service differentiation at the servers. The results of these studies could be used as a foundation for further studies on service differentiating Internet servers. THE Internet and the World Wide Web (WWW) provide a global publishing and information exchange infrastructure at low cost. The desire for using the Internet in business transactions is increasing at a fast rate. Thousands of companies have set up Web sites for marketing and interactions with customers [1] . However, many companies find the current generation of Internet servers inadequate for core business transactions due to the problems of reliability, scalability, security, and performance inconsistency.. The existing best-effort service with the First Come First Serve (FCFS) scheduling model of the Internet servers leads to misallocation of scarce and expensive network and CPU resources during heavy load periods, causing unpredictable response delay, which is not acceptable to time-sensitive transactions. The problem of unpredictability of response time becomes extremely serious during information retrieval from the Web since more and more applications with time constraints are using the Web as their distributed interfaces. Upgrading hardware to faster CPU, more efficient OS, and broader I/O bandwidth are always solutions for improving the response time and throughput of Internet servers. However, the "bursty" nature and the rapid growth of the Internet traffic volume make it expensive and also inefficient to scale up network bandwidth and server capacity with the increasing peak demand. Previous studies [2] , [3] have shown that the peak workload of a web server may exceed its average load by orders of magnitudes. Thus, the server utilization would be very low if we design the system to satisfy requirements of the workload during peak periods.. Another approach of assuring service quality is to preallocate resources for value desirable tasks. Irrespective of the intensity of workload, these cherished tasks enjoy dedicated system resources.. The analogous policy for the Internet is the end-to-end resource reservation scheme through the Resource ReSerVation Protocol (RSVP) [4] . One major drawback of RSVP is poor scalability since the number of RSVP control messages processed by each router is proportional to the number of flows passing through the router. Similarly, the resource reservation approach is not appropriate for Internet servers because of poor scalability, low system utilization, and/or long setup delay.. Differentiated service, known as DiffServ [5] in the IETF community, has been proposed as an efficient and scalable solution to provide better service for the next generation Internet communication [6] . DiffServ creates an "expressway" for high priority traffic by selective reallocation of network resources during peak workload periods. Similarly, prioritized services can be exploited by a Service Differentiating Internet Server (SDIS) to provide better quality services to high priority tasks. Especially, the response delay of mission critical requests can be bounded by allocating CPU and I/O resources with respect to their priorities. Thus, there is a need to design and evaluate Internet servers that can provide fast response to high priority tasks, minimizing the performance penalty of low priority tasks caused by service differentiation without degrading the overall system throughput. To summarize, the primary motivations for SDIS can be itemized as follows:. .. Several evolving applications use continuous media (CM) objects, such as audio or video stream data. These data types have time constraints that need to be met for their meaningful delivery. Thus, they may need service priority over the non-real-time tasks. .. The exploding e-commerce market supports several types of transactions and may need to classify services based on revenue generation or request types. Prioritized transactions may thus be necessary to meet the objectives of e-commerce transactions. .. The possible adoption of differentiated services in the next generation Internet will make the best-effort servers unacceptable and may defy the primary purpose of it. Thus, to provide end-to-end QoS assurance, the Internet servers also need to provide differentiated services. In this paper, we present a model of SDIS and evaluate its performance through simulation. The workload for the study is derived from traces obtained from a live web server log. Priorities are randomly introduced in the trace. During congestion, SDIS provides better services to high-priority requests compared to the best-effort service models. We have also analyzed several features of SDIS, such as admission control, task scheduling, and assignments. The impact of some of these issues on SDIS performance is quantified in our study. The results demonstrate the feasibility and performance advantages of SDIS. A combination of selective early discard and efficient scheduling and task assignment approaches are necessary to derive fair service differentiation from Internet servers.. The remainder of this paper is organized as follows: Section 2 describes policies for providing differentiated services from an Internet Server. The server model, admission control, and scheduling issues are discussed in Section 3. The simulation environment and results are discussed in Sections 4 and 5, respectively. Section 6 describes the related works, followed by the concluding remarks in Section 7. The next generation Internet will demand differentiated services from Internet servers, which can be achieved through prioritybased service. Service differentiating Internet servers are needed to provide high quality of service to high priority tasks, even under high system utilization. In this study, we show that, under nearsaturation of web server utilization, differentiated services provide significantly better services to high priority tasks compared to a traditional web server. In addition, through a simulation-based study, we have shown the impact of admission control and task assignment schemes on the performance of prioritized tasks. The results of our study indicate that the combination of selective early discard, timeout, and priority queuing is necessary and may be sufficient to provide better response from the next generation Internet Servers. We can configure our server system so that the response time of high priority requests can be bounded, irrespective of the volume of low priority requests. This study will instigate further analysis and design of service differentiating Internet servers. In this section, we present and analyze the results obtained from our simulator using the real workload traces. We have examined the impact of priority-based scheduling, task assignment policies, and admission control schemes. Although a significant amount of research has been done on the service differentiation at the network level, the work on service differentiation in Internet servers has been limited. Almeida et al. [18] have implemented a prototype of web server which can provide prioritized service in a web hosting environment and studied performance issues in both user space and kernel space. They compared performance of high priority tasks and low priority tasks using synthetic benchmarks. Their research results encouraged us to study prioritized service in a general web server environment. Our work is different from theirs in the sense that we use empirical distribution inputs representing the real workload of a web server. In addition, we have also analyzed several other issues of SDIS, including task assignment, admission control, impact of memory affinity, etc. Bhatti and Friedrich at HP Labs [19] have built a prototype of task classifier and scheduler on an Apache web server and studied response time and throughput issues of prioritized services on a web server. They used stress tests which might not be adequate in simulating high variance of web server workload environment. Our work complements the work of these authors. In addition, we have shown the impact of admission control and task assignment schemes and quantified their performance impacts on prioritized tasks. The pricing issues related to the QoS provision on the Internet were analyzed in [20] . They discussed several QoS classification options, which can be also provided by our server model. We extend their work in terms of service differentiation and classification. The authors of [21] studied task assignment policies in a distributed server system model. Each host processes tasks in FCFS order and the task resource demand is known in advance. Their results suggested that a size-based policy performs the best in an environment where the task processing time has high variance. However, they did not consider the QoS assurance issues.

O O O B I 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 B I B 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 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 I 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 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 B I 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 B 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 B I 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 B I I I 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 B I 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 B I 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 B B I 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 B I 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 B I 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 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