This year we received 66 full papers and 19 position papers.
We accepted 21 full papers and 11 position papers.
Acceptance rate for full papers was 33.3% and for position papers was 52.6%.
Congratulations to the authors and thank you for your submissions. See you all at CASCON 2017.
Deployment Specification Challenges in the Context of Large Scale Systems
Miguel Jiménez, University of Victoria, Norha M. Villegas , Universidad Icesi, Gabriel Tamura, Universidad Icesi and Hausi A. Müller, University of Victoria
Traditionally, the focus of software deployment has been mainly on the infrastructure to realise deployment and configuration (D&C) of complex and distributed systems, with an increasing interest in deployment of internet of things and cyber-physical systems. Advances in job scheduling, storage orchestration, containerized applications, along with agile practices such as continuous integration and microservices architecture, have improved the state of the practice. However, little effort has been devoted to the need for D&C specifications to support the various levels of detail and abstraction present in large-scale systems. The understanding of the software components hierarchy has shifted from the comprehension of design artefacts, usually specified with static diagrams, to the understanding of runtime concepts. The DevOps movement has dramatically influenced how and when deployment is realised, but little has been done from the software perspective in terms of documentation and linkage between design and runtime artefacts in the sense of software specification as such. This paper presents an overview of the state of the art of deployment requirements for large-scale, distributed and complex software and its automation and characterises a set of deployment specification challenges intended as starting points for advancing the field of software deployment.
Designing User Engagement for Cognitively-Enhanced Processes
Alexei Lapouchnian, University of Toronto, Zia Babar , University of Toronto and Eric Yu, University of Toronto
A natural way to ease the introduction of cognitive computing capabilities into a user organization is through already well-established applications such as business process management (BPM) systems. Cognitive capabilities can enhance a business process by offering analytics-based recommendations on decisions and increasingly sophisticated automation through machine learning. Yet the organizational adoption of such advanced capabilities is not straightforward. Unlike conventional IT systems whose functionalities and correct operation are more transparent, user acceptance of advice and recommendations from an automated system requires development of trust over time. Additional supporting processes may emerge and evolve over a period of time to monitor, evaluate, adjust, or modify the cognitively-enhanced business process so as to enable personnel to adapt to the enhanced capabilities. In this paper, we propose that a systematic model-based approach can ease the transition to cognitive business operations. The use of suitable modeling techniques can facilitate the uncovering and analysis of obstacles to adoption, and guide the systematic search for viable modes of interaction and cooperation between human user and cognitive advisor.
Elascale: Auto-scaling and Monitoring as a Service
Hamzeh Khazaei, University of Toronto, Rajsimman Ravichandiran , University of Toronto, Byungchul Park, University of Toronto, Hadi Bannazadeh, University of Toronto, Ali Tizghadam , University of Toronto and Alberto Leon-Garcia, University of Toronto
Auto-scalability has become an evident feature for cloud software systems including but not limited to big data and IoT applications. Cloud application providers now are in full control over their applications' microservices and macroservices; virtual machines and containers can be provisioned or deprovisioned on demand at runtime. Elascale strives to adjust both micro/macro resources with respect to workload and changes in the internal state of the whole application stack. Elascale leverages Elasticsearch stack for collection, analysis and storage of performance metrics. Elascale then uses its default scaling engine to elastically adapt the managed application. Extendibility is guaranteed through provider, schema, plug-in and policy elements in the Elascale by which flexible scalability algorithms, including both reactive and proactive techniques, can be designed and implemented for various technologies, infrastructures and software stacks. In this paper, we present the architecture and initial implementation of Elascale; an instance will be leveraged to add auto-scalability to a generic IoT application. Due to zero dependency to the target software system, Elascale can be leveraged to provide auto-scalability and monitoring as-a-service for any type of cloud software system.
Federating Natural Language Question Answering Services of a Cognitive Enterprise Data Platform
John Boyer, IBM Canada
An enterprise data lake (EDL) combines big data storage, governance, and query abilities for structured and unstructured data with a navigable, searchable data catalogue. We define a cognitive enterprise data platform (CEDP) to be an EDL that is further equipped with a scalable deployment platform and an extensible catalogue of deployable cognitive computing services as well as a data science and data engineering environment to develop and train the cognitive computing services and publish them to the CEDP catalogue.
A natural language question answering (NLQA) service is a CEDP cognitive computing service trained to recognize natural language questions and respond using CEDP data queries or cognitive computing services. In order to scale this form of cognition to the enterprise, business units must be able to crowd source the catalogue of trained NLQA that the CEDP must then deploy and federate automatically. However, the machine learned models that contribute to answer confidence values are separately trained, so the answer confidence values from any two NLQA services are not directly comparable. Therefore, federating separately trained NLQA services requires an answer ranking methodology.
This paper includes a solution that is based on two insights. The first is that the problem of answering ranking across separately trained NLQA services is analogous to the left side of Bayes' formula. The second insight is that the factors in the right side of Bayes' formula can be automatically machine learned using the test sets of the NLQA services. Thus, calibrated answer ranking across separately trained NLQA services is achieved via Bayesian inferences on their answer confidence values. In turn, this baseline answer ranking methodology enables a cognitive enterprise data platform to automatically federate a dynamic changeable crowd-sourced catalogue of NLQA services.
Foodie Fooderson: A Conversational Agent for the Smart Kitchen
Prashanti Angara, University of Victoria, Kirti Agarwal , University of Victoria, Miguel Jiménez, University of Victoria, Ulrike Stege, University of Victoria, Sudhakar Ganti , University of Victoria, Hausi Müller, University of Victoria, Harshit Jain, University of Victoria and Roshni Jain , University of Victoria
Conversational agents aim to offer an alternative to traditional methods for humans to engage with technology. This can mean to reduce the effort to complete a task using reasoning capabilities and by exploiting context, or allow voice interaction when traditional methods are not available or inconvenient. This paper introduces Foodie Fooderson, a conversational kitchen assistant built using IBM Watson technology. The aim of Foodie is to assist families in improving their eating habits through recipe recommendations that take into account personal context, such as allergies and dietary goals, while helping reduce food waste and managing grocery budgets. This paper discusses Foodie's architecture, use and benefits. Foodie uses services from CAPRecipes-our context-aware personalized recipe recommender system, SmarterContext-our personal context management system, and selected publicly available nutrition databases. Foodie reasons using IBM Watson's conversational services to recognize users' intents and understand events related to the users and their context. We also discuss our experiences in building conversational agents with Watson, including requirements that may improve the development experience with Watson for creating rich conversations in this exciting era of cognitive computing.
IoT for Remote Wireless Electrophysiological Monitoring: Proof of Concept
Laura Pravato, School of Biomedical Engineering, McMaster University and Thomas E. Doyle , McMaster University
The Internet of Things (IoT) offers integrated sensing of all aspects of daily life. The field of healthcare offers the greatest potential for IoT to benefit society, but also presents significant challenges. A key component of IoT is the development of intelligent ubiquitous sensing. Achieving this requires circuits and system that require low power and efficient computation.
As a proof of concept, we present a prototype design of a continuous wireless electrocardiogram (ECG) monitoring device that uses small, low-cost IoT wi-fi modules to upload real-time data to the cloud. Two IoT cloud services were utilized to record and plot real-time ECG data: IBM Bluemix and ThingSpeak. Preliminary data quality was analyzed using kurtosis and spectral distribution ratio. Remote medical and health monitoring is an important step in supporting personalized predictive analytics, smart homes, and chronic illness management. The presented device has the potential to provide health professionals with real-time ECG data allowing for diagnosis of cardiac pathologies, monitoring of patients suffering from heart disease and/or patients recovering from cardiac conditions.
On Challenges of Cloud Monitoring
William Pourmajidi, Ryerson University, Tony Erwin, IBM, John Steinbacher, IBM and Andriy Miranskyy, Department of Computer Science, Ryerson University
Cloud services are becoming increasingly popular: 60% of information technology spending in 2016 was Cloud-based, and the size of the public Cloud service market will reach $236B by 2020. To ensure reliable operation of the Cloud services, one must monitor their health.
While a number of research challenges in the area of Cloud monitoring have been solved, problems are remaining. This prompted us to highlight three areas, which cause problems to practitioners and require further research. These three areas are as follows: A) defining health states of Cloud systems, B) creating unified monitoring environments, and C) establishing high availability strategies.
In this paper we provide details of these areas and suggest a number of potential solutions to the challenges. We also show that Cloud monitoring presents exciting opportunities for novel research and practice.
Privacy as an Asset
Jarek Gryz, York University
Many attempts to define privacy have been made over the last century. Early definitions and theories of privacy had little to do with the concept of information and, when they did, only in an informal sense. With the advent of information technology, the question of a precise and universally acceptable definition of privacy in this new domain became an urgent issue as legal and business problems regarding privacy started to accrue. In this paper, I propose a definition of informational privacy that is simple, yet strongly tied with the concepts of information and property. Privacy thus defined is similar to intellectual property and should receive commensurate legal protection
Quantifying Duplication to Improve Data Quality
Yu Huang, McMaster University, Fei Chiang, McMaster University, Albert Maier, IBM Boblingen, Martin Petitclerc, IBM Ottawa Lab, Yannick Saillet, IBM Boblingen, Damir Spisic, IBM Chicago and Calisto Zuzarte, IBM Toronto Lab
Deduplication is a costly and tedious task that involves identifying duplicate records in a dataset. High duplication rates lead to poor data quality, where data ambiguity occurs as to whether two records refer to the same entity. Existing deduplication techniques compare a set of attribute values, and verify whether given similarity thresholds are satisfied. While potential duplicate records are identified, these techniques do not provide users with any information about the degree of duplication, i.e., the varying levels of closeness among the attribute values and between records that define the duplicates.
In this paper, we present a duplication metric that quantifies the level of duplication for an attribute value, and within an attribute. This metric can be used by analysts to understand the distribution and similarity of values during the data cleaning process. We present a deduplication framework that differentiates terms during similarity matching step, and is agnostic to the ordering of values within a record. We compare our framework against two existing approaches, and show that we achieve improved accuracy and comparable performance over real data collections.
Reconstructing databases: Instance-based Structure Discovery using Reconstructability Analysis
Periklis Andritsos, University of Toronto
Exploring database tables, small or large, can be challenging if no proper structure and constraints exist. The usual, textbook-based way to impose structure in relational databases is to define functional dependency constraints and apply decomposition theory to achieve smaller, more concise and semantically meaningful relations, without loss of the original information. This procedure requires the existence or definition of functional dependencies, mostly at design time. Consequently, any data instances need to adhere to these constraints. However, functional dependencies are not always available or easy to deduce.
In this position paper, we explore a new and novel way to perform decomposition, or reconstruction, of database tables, based on their instances and their information content. We present a technique from Systems Theory, called Reconstructability Analysis, (RA), and discuss how it can be used to decompose relations in a fully unsupervised way and without any pre-existing constraints. RA quantifies the information content of a database relation and searches for sub-relations that retain this information, while they can be described in a more concise fashion than the original one. After defining RA, we show its potential, we discuss advantages and disadvantages and propose problems worth exploring by the database community.
Software Variability Through C++ Static Polymorphism: A Case Study of Challenges and Open Problems in Eclipse OMR
Samer Al Masri, University of Alberta, Nazim Uddin Bhuiyan , University of Alberta, Sarah Nadi, University of Alberta and Matthew Gaudet, International Business Machines Corporation
Software Product Line Engineering (SPLE) creates configurable platforms that can be used to efficiently produce similar, and yet different, product variants. SPLs are typically modular such that it is easy to connect different blocks of code together, creating different variations of the product. There are many variability implementation mechanisms to achieve a SPL. This paper shows how static polymorphism can be used to implement variability, through a case study of IBM's open-source Eclipse OMR project. We discuss the current open problems and challenges this variability implementation mechanism raises and highlight technology gaps for reasoning about variability in OMR. We then suggest steps to close these gaps.
A Framework To Extract Personalized Behavioural Patterns of User's IoT Devices Data
Pradeep Venkatesh, Queen's University, Daniel Alencar Da Costa , Queen's University, Ying Zou, Queen's University and Joanna Ng, IBM Canada
The growing trend of devices participation in Internet of Things (IoTs) platforms have created billions of IoT devices in both consumer and industrial environments. IoT devices form the network of devices connected to each other by communication technologies in different environments to monitor, collect, exchange, and to take actions. Due to the growth of IoT devices, users started using these devices to achieve their personal goals, such as to reduce electricity cost at home. Existing research has proposed new interconnection implementation mechanisms for IoT devices to monitor environments by low cost systems. However, existing work does not investigate the historical data of IoT device usage to assist users in achieving their goals. In our research, we propose an engine that identifies the behavioural patterns of IoT device users. Our engine works in three steps: First, the engine uses a database to store the IoT devices usage data. Second, our engine prepares the data in a suitable model for data analysis. Finally, our engine analyses the represented data to extract user behavioural patterns. We perform an empirical study to evaluate our engine. Our results shows that users have, on average, 2 devices that they use at specific times and have a relatively small impact across other devices in the environment.
A Performance Predictive Model for Emergency Medicine Residents
Ali Ariaeinejad, McMaster University, Reza Samavi, McMaster University, Teresa Chan, McMaster University and Thomas Doyle, McMaster University
Competency-based medical education (CBME) is a paradigm of assessing resident performance through well-defined tasks, objectives and milestones. A large number of data points are generated during a five-year period as a resident accomplishes the assigned tasks. However, no tool support exists to process this data for early identification of a resident-at-risk failing to achieve future milestones. In this paper, we study the implementation of CBME at McMaster's Royal College Emergency Medicine residency program and report the development of a machine learning algorithm (MLA) to identify patterns in resident performance. We evaluate the adaptivity of multiple MLAs to build a tool support for monitoring residents' progress and flagging those who are in most need of assistance in the context of emergency medicine education.
A Probabilistic Approach to Model User Preferences for Recommender Systems- A Case Study on IBM Watson Analytics
Parisa Lak, Ryerson University, Can Kavaklioglu, Ryerson University, Mefta Sadat, Ryerson University, Martin Petitclerc, IBM Canada, Graham Wills, IBM Canada, Ayse Bener, Ryerson University and Andriy Miranskyy, Ryerson University
IBM Watson Analytics (WA) is a system that helps users to find new patterns within datasets provided by users. WA provides users with visualization recommendations using a rule based algorithm , which uses column headers in the provided dataset and the questions entered by the users as features. Recommendations made by the system are not tailored neither according to specific users nor the situation where users interact with the system. Also the performance of the recommendations severely degrade when the system has to scan a large set of possible recommendations to select from. We believe that the system would benefit from a more personalized recommendation methodology using learning algorithms within Recommender Systems framework.
Recommender systems (RS) provide personalized recommendations to the users based on their prior behavior and historical preferences. In this work, we design a learning algorithm that receives user's historical interaction with the system as input and provides a list of recommendations that are uniquely generated based on his/her preferences. User preferences in WA are not reported explicitly by the users in terms of likes or dislikes and hence should be derived from the implicit cues extracted from user's interaction with the system. In this study, we employ user selection behavior as a cue for user's preferences. The proposed algorithm uses the additional information generated by user's preferences to increase the accuracy of preference prediction.
Accelerating Poly1305 Cryptographic Message Authentication on z14
Bill O'Farrell, IBM, Umme Salma Gadriwala, McMaster University, Christopher Anand, McMaster University and Curtis D' Alves , McMaster University
In this paper, we examine the implementation and acceleration of the Poly1305 authentication algorithm on the recently announced IBM z14 computer. Two approaches are undertaken to improve performance of this important cryptographic algorithm. First, we restructure the algorithm to take advantage of a new instruction, VMSL, which employs floating-point hardware to perform high-speed high-throughput multiplications on integer limbs of large integers. With VMSL, we are able to eliminate multiplication as the dominant operation in Poly1305. Second, we apply Coconut, an extensible domain-specific language (DSL) embedded in Haskell, to generate near-optimal scheduled assembly code for parts of the algorithm that are performance bottlenecks. This combined approach has implications beyond Poly1305, as the same techniques can be applied to other cryptographic algorithms, such as elliptic curve digital signature algorithm (ECDSA) used in HyperLedger Blockchain.
Assisting Developers Towards Fault Localization by Analyzing Failure Reports
Krystalenia Tatsi, National Technical University of Athens and Kostas Kontogiannis, Western University
Large software applications encompass many components with complex inter-dependencies. When a failure occurs, developers usually have limited information and time in their disposal for localizing the root cause of the observed failure. The most common information developers have readily access to includes failure reports, stack traces, and event logs. In this context, a major challenge is to devise techniques that assist developers utilize this information in order to zero-in their focus on specific methods that have a high probability of containing the root cause of the observed failure. Once such an initial set of methods has been identified, other more elaborate, complex, and computationally expensive data flow analyses could be applied.
In this paper, we present a technique which aims to identify such an initial set of suspicious methods by first, retrieving information from failure reports obtained from Bugzilla repositories, second by combining this information with graph models that denote actual dependencies obtained from the subject system's source code in order to create an hypothesis space and third, by applying a ranking score to identify methods that have high likelihood of containing the root cause. The technique is shown to be tractable when applied to systems with several thousands of source code methods and exhibits high accuracy on the obtained results.
Barriers to Adoption of Information Technology in Healthcare
Christina Christodoulakis, University of Toronto, Azin Asgarian , University of Toronto and Steve Easterbrook, University of Toronto
Healthcare is an important pillar of society, critical for effectively responding to public health emergencies, and addressing disease, ill health, and poverty brought on by communicable disease and non communicable disease and cancer. The increasing need for cost effective, time effective, and preventive healthcare is forcing radical changes in current healthcare systems, to take advantage of capabilities of modern technology. However, this is not straightforward. Despite advances in modern technology, adaptation to healthcare problems has been slow.
In this report, we take a systems thinking perspective to identify barriers to the application of technology in healthcare and adoption of those advances through the prism of two use cases: electronic medical records (EMR) and remote patient monitoring (RPM) technology. Finally, we list ways of dealing with individual barriers and consider negative effects those solutions might have on other barriers. We expect that our analysis of adoption of technology in healthcare as presented in our use cases will help requirements analysts decide on appropriate steps to boost adoption of new technology to achieve more effective and efficient next generation healthcare.
Chatbots as Assistants: An Architectural Framework
Adam Di Prospero, York University, Nojan Norouzi, York University, Marios Fokaefs, York University and Marin Litoiu, York University
Automated text-based or speech-based personal assistants, also known as chatbots, have been prevalent in several domains including marketing and technical support. Through mainstream applications, such as Siri or Alexa, their popularity has increased and we now see them being used in even more domains. Although the purpose of chatbots varies among domains, there are common elements that all chatbots share. By identifying these elements, it is possible to streamline the development of chatbots in mass and in a structured manner.
Additionally, there can be common challenges in the development of such applications, for example, how to treat novice versus expert users or how to establish memory of the conversation. In this work, we propose a reference architecture for chatbots, where we outline the common elements as well as the common challenges. Using IBM Watson and IBM Bluemix as the basic platforms, we also present the creation of three chatbots, for different purposes, based on this reference architecture to highlight these commonalities.
Classification Algorithms and How to Distribute Them
Shadi Khalifa, Queen's University, Patrick Martin, Queen's University and Rebecca Young, IBM Canada
The problem of how to adapt classification algorithms to handle the large volume of data associated with Big Data is commonly solved by rewriting the algorithms to run in a distributed fashion using a parallel programming language (e.g. OpenMP) or a parallel framework (e.g. Hadoop, Spark). While this approach can result in fast algorithms, it is time consuming and can be very challenging to implement for all algorithms. In this paper, we first categorize classification algorithms in terms of the difficulty to distribute them. Second, we propose the Distributed Classifier Training (DCT) approach for distributing all types of classification algorithms that maintains the same prediction accuracy without having to rewriting them. Finally, we implement the DCT approach as a free open-source IBM SPSS Modeler plugin.
Cloud meets classroom: Experience Report on Using IBM Bluemix in a Software Architectures Course
Nikita Sokolov, University of Western Ontario and Nazim Madhavji , University of Western Ontario
The process of teaching software architectures should go beyond abstract concepts (such as quality attributes, architectural tactics, patterns, and methods) to getting students to recognise and implement them practically. Clearly, for this, project work is essential so as to familiarise students with the key technologies and tools. We note that "cloud technology", widely popular in industry for hosting business services, is quite suited to teaching about service-oriented architectures and micro-services. However, our analysis suggests that the use of cloud technology in software architecture (SA) courses is not very strong in tertiary institutions. Given the time constraints in SA courses, the learning curve on both administrative and technical aspects of the underlying infrastructure should arguably be minimised so as to enable focus on the core features of the course.
In this paper, we share our experience on using IBM Bluemix in a half-term course on software architectures at the University of Western Ontario. In particular, we note that while students need to familiarise themselves with the technology and the opportunity it provides for supporting end-user services, the learning curve of Bluemix is gradual enough for students to accomplish creating plausible services in a real world environment. This paper describes a number of observations and lessons learnt from the points of view of both students and instructors.
Concern-Oriented Incremental Modelling
Omar Alam, Trent University and Jörg Kienzle, McGill University
This paper investigates how to incrementally model a software system in the context of Concern-Oriented Reuse (CORE). CORE proposes concerns as new units of reuse encapsulating software artifacts that span multiple development phases and levels of abstraction. CORE advocates a three-part interface to describe each concern (variation, customization, and usage interfaces) and defines compositions between different concerns. However, the process of incrementally modelling of artifacts in CORE has not been discussed before. We propose two kinds of increments, feature-driven increments within a concern, and reuse-driven increments between concerns. We demonstrate incremental modelling by modelling a workflow concern in CORE.
Improving Garbage Collection-Time String Deduplication
Konstantin Nasartschuk, University of New Brunswick, Kenneth Kent , University of New Brunswick, Stephen MacKay, University of New Brunswick, Aleksander Micic, IBM and Charlie Gracie, IBM
Automatic memory management is one of the major fields of research in virtual environments. Improving garbage collection and object layout are two basic goals when optimizing mutator execution. In Java, immutable string objects are the most commonly found objects on the heap, thus inspiring many approaches to optimize their structure, placement on the heap, and to reduce the amount of duplicate memory they use. This paper aims to improve an existing approach for dynamic string deduplication during garbage collection. It is shown that the overhead and maintenance cost of this particular approach was reduced by applying multiple optimizations to the algorithm.
Incremental change propagation from UML software models to LQN performance models
Taghreed Altamimi, Carleton University and Dorina Petriu , Carleton University
Model-Driven Engineering (MDE) enables automatic generation of performance models from software design models by model transformations. The performance models thus obtained are used for the performance analysis of software under development. In previous work, we have used a specialized model transformation language, Epsilon ETL, to generate Layered Queueing Network (LQN) performance models from UML software models annotated with the MARTE profile. When the UML model evolves during the development process, the traditional solution for keeping the performance model synchronized is to rerun the entire transformation each time the software model changes. Such a solution is expensive, especially in large-scale models.
In this paper, we propose an incremental change propagation technique (ICP) to propagate changes from the UML+MARTE software model to the corresponding LQN. The entire process starts by automatically generating an LQN model with the previously developed Epsilon ETL transformation. During the development process, when the UML model evolves, we detect the changes with the Eclipse EMF Compare tool, then incrementally propagate them to the LQN model to keep it synchronized. Note that Epsilon does not support incremental model transformation. The proposed ICP is evaluated by applying it to a set of case studies.
Learning Event Count Models with Application to Affiliation Ranking
Tam Nguyen, Ryerson University and Ebrahim Bagheri, Ryerson University
Event count prediction is a class of problems in time series analysis, which has been extensively studied over the years. Its applications range from the prediction of the number of publications in the scientific community to ATM cash withdrawal transaction prediction in the banking industry. However, in applied data science problems, using event count prediction models for real-world data often faces difficulties because the data violates not only the Poisson distribution assumption, i.e., the rate at which events occur should be constant, but the data is also relatively sparse, i.e., only a few event count values are greater than zero. Traditional techniques do not work well under these two conditions. To overcome these limitations, some researchers have proposed the generic autoregressive (AR) models for event count prediction, which work with non-constant event occurrence rates. As AR models solely use historical event count for forecasting, they might not be as flexible for incorporating domain knowledge. Moreover, and similarly, AR models may not work very well with the relatively short length-time series.
In order to overcome these challenges, we propose a machine learning approach to address the event count prediction problem. We benchmark our proposed solution on the KDD Cup 2016 dataset by formalizing affiliation ranking as an event count time series prediction problem. We map the time series onto a highly dimensional state space and systematically apply the state-of-the-art machine learning algorithms to predict event counts. We then compare our proposed approach against solutions in the KDD Cup 2016 competition and show that our work outperforms the best models in this with an NDCG@20 score of 0.7573.
MicroJIT: A Lightweight, Just-in-Time Compiler to Improve Startup Times
Federico Sogaro, University of New Brunswick, Eric Aubanel , University of New Brunswick, Kenneth Kent, University of New Brunswick, Marius Pirvu, IBM, Vijay Sundaresan, IBM and Peter Shipton, IBM
The startup phase of an application represents a tiny fraction of the total runtime, but it is considered, nevertheless, a critical phase for both client and server environments. In the Java Virtual Machine (JVM), the Just-in-Time compiler (JIT) translates Java bytecode to native machine code to improve the performance of an application. We investigate whether using two different JIT compilers in the same JVM can improve startup time. A lightweight JIT system (i.e., MicroJIT) is integrated into the J9 JVM and performs an initial, low-optimized, but fast compilation while, at a later time, the standard JIT recompiles Java bytecodes with better, but more expensive, optimizations. Experimental results show that enabling MicroJIT, can reduce startup time in some configurations of the JVM, but with a cost in memory usage and, in some cases, a reduction in throughput performance.
On the Actual Use of Inheritance and Interface in Java Projects: Evolution and Implications
Carlos Eduardo Carvalho Dantas, UFU and Marcelo de Almeida Maia , UFU
Background: Inheritance is one of the main features in the object-oriented paradigm (OOP). Nonetheless, previous work recommend carefully using it, suggesting alternatives such as the adoption of composition with implementation of interfaces. Despite of being a well-studied theme, there is still little knowledge if such recommendations have been widely adopted by developers in general.
Aims: This work aims at evaluating how the inheritance and composition with interfaces have been used in Java, comparing new projects with older ones (transversal), and also the different releases of the same projects (longitudinal). Method: A total of 1,656 open-source projects built between 1997 and 2013, hosted in the repositories GitHub and SourceForge, were analyzed. The likelihood of more recent projects using inheritance and interfaces differently from older ones was analyzed considering indicators, such as, the prevalence of corrective changes, instanceof operations, and code smells. Regression analysis, chi-squared test of proportions and descriptive statistics were used to analyze the data. In addition, a thematic analysis based method was used to verify how often and why inheritance and interface are added or removed from classes.
Results: We observed that developers still use inheritance primarily for code reuse, motivated by the need to avoid duplicity of source code. In newer projects, classes in inheritance had fewer corrective changes and subclasses had fewer use of the instanceof operator. However, as they evolve, classes in inheritance tend to become complex as changes occur. Classes implementing interfaces have shown little relation to the interfaces, and there is indication that interfaces are still underutilized. Conclusion: These results show there is still some lack of knowledge about the use of recommended object-oriented practices, suggesting the need of training developers on how to design better classes.
Online Detection of Anomalous Applications on the Cloud
Arnamoy Bhattacharyya, University of Toronto, Harsh Singh , University of Toronto, Seyedali Jokar Jandaghi, University of Toronto, Cristiana Amza, University of Toronto
As Cloud platforms are becoming more popular, efficient resource management in these Cloud platforms helps the Cloud provider to deliver better quality of service to its customers. In this paper, we present an online characterization method that can identify potentially anomalous jobs in a Cloud platform by analyzing the jobs' resource usage profile as the job runs. We show that, by tracking the online resource consumption, we can develop a model through which we can predict whether or not a job will have an abnormal termination. We further show, using both real world and synthetic data, that our online tool can raise alarms as early as within the first 1/8th of the potentially failing job's lifetime, with a false negative rate of as low as 4%. These alarms can become useful in implementing either one of the following resource-conserving Cloud management techniques: alerting clients early, de-prioritizing jobs that are likely to fail or assigning them less performant resources, deploying or up-regulating diagnostic tools for potentially faulty jobs.
Optimizing the JVM Object Model Using Object Splitting
Taees Eimouri, University of New Brunswick, Kenneth Kent , University of New Brunswick and Aleksandar Micic, IBM Ottawa
Data layout optimization is a well-known method to im-prove cache performance by reorganizing data elements. In this paper, a novel approach to optimize layout of objects is introduced, called the Object Splitting Technique. In this approach, Java objects are split at allocation time so that those fields of the split objects that are not accessed as often are separated from the rest of the fields. We implemented the approach in IBM's JVM. The modified JVM was tested with different benchmarks and in most cases the number of cache misses was reduced.
SLO Request Modeling, Reordering and Scaling
Panagiotis Patros, University of New Brunswick, Kenneth Kent , University of New Brunswick and Michael Dawson, IBM
Computations on the cloud predominantly take place with the client/server architecture, which enables straightforward scaling by adding extra instances on one of the clusters the cloud provider operates to cover increased load. Statelessness in cloud applications is achieved by avoiding maintaining data on the application server itself beyond the lifetime of a request. Instead, storing and processing of various components of requests takes place on other services, most of which also run on the cloud. Therefore, cloud systems have increased internal request load. Furthermore, all of these cloud services need to uphold a certain set of Service Level Objectives (SLOs) regarding their Quality of Service (QoS). Because of the current paradigm of microservices, cloud services are so interconnected and interdependent, it is crucial to uphold their SLO requirements; otherwise, the end-response to the user might time-out or be unacceptably slow; financial penalties might even be applicable.
In this paper, we propose and experimentally evaluate a mathematical model that describes the on-time performance of client/server cloud applications. Using our model, we make a theoretical prediction on the ideal number of server instances required for an application to maintain its on-time response SLOs depending on the number of clients it serves, which we evaluate experimentally. Finally, another prediction of our model is that of load-based, prior-execution-timebased reordering of requests towards increased SLO satisfaction; we implemented and experimentally evaluated our solution with significant on-time response improvements.
TrajectoryNet: An Embedded GPS Trajectory Representation for Point-based Classification Using Recurrent Neural Networks
Xiang Jiang, Dalhousie University, Erico N de Souza, Dalhousie University, Ahmad Pesaranghader, Dalhousie University, Baifan Hu , Dalhousie University, Daniel Silver, Acadia University and Stan Matwin, Dalhousie University
Understanding and discovering knowledge from GPS (Global Positioning System) traces of human activities is an essential topic in mobility-based urban computing. We propose TrajectoryNet---a neural network architecture for point-based trajectory classification to infer real world human transportation modes from GPS traces. To overcome the challenge of capturing the underlying latent factors in the low-dimensional and heterogeneous feature space imposed by GPS data, we develop a novel representation that embeds the original feature space into another space that can be understood as a form of basis expansion. We also enrich the feature space via segment-based information and use Maxout activations to improve the predictive power of Recurrent Neural Networks (RNNs). We achieve over 98% classification accuracy when detecting four types of transportation modes, outperforming existing models without additional sensory data or location-based prior knowledge.
Transfer Learning in Neural Networks: An Experience Report
Mark Shtern, York University, Rabia Ejaz, York University and Vassilios Tzerpos, York University
Perhaps the most important characteristic of deep neural networks is their ability to discover and extract the necessary features for a particular machine learning task from a raw input representation. This requires a significant time commitment, both in terms of assembling the training dataset, and training the neural network. Reusing the knowledge inherent in a trained neural network for a machine learning task in a related domain can provide significant improvements in terms of the time required to complete the task.
In this paper, we present our experience with such a transfer learning situation. We reuse a neural network that was trained on a real world image dataset, for the task of classifying music in terms of genre, instrumentation, composer etc. (audio files are converted to spectrograms for this purpose). Even though the image and music domains are not directly related, our experiments show that features extracted to recognize images allow for high accuracy in many music classification tasks.
Using IBM Watson Cloud Services to Build Natural Language Processing Solutions to Leverage Chat Tools
Sarah Packowski, IBM and Arun Lakhana, IBM
Chat tools are changing the way companies engage with customers. On the one hand, these tools have tremendous benefits: they can provide an excellent experience for customers who have questions or who are having trouble. Also, analyzing historical chat conversations can help a company understand customer needs and make better business decisions. On the other hand, keeping up with a large volume of chat messages can be difficult and requires a lot of support staff; and until recently easy-to-use tools for programmatically handling those messages - using natural language processing (NLP) techniques, for example - have not been generally available. This paper describes our experience using IBM Watson cloud services to build cognitive solutions for managing large volumes of customer messages and drawing insight from those messages. In this paper we share some of the lessons we learned while implementing our solutions.