How To Write An Erlang Based Software Update Platform For Mobile Devices
|
|
|
- Griselda Lewis
- 5 years ago
- Views:
Transcription
1 Computer Science 14 (1) Małgorzata Wielgus Przemysław Dąbek Roman Janusz Tomasz Kowal Wojciech Turek ERLANG-BASED SOFTWARE UPDATE PLATFORM FOR MOBILE DEVICES Abstract Growing computational power of mobile devices modifies existing approaches to data processing in large-scale sensor networks. Since sensors are no longer limited to simple data acquisition tasks, such networks can be considered complex geo-distributed data processing systems. Features and requirements of such systems justify use of Erlang language and technology for programming mobile devices. The technology provides several crucial features, including faulttolerance, message-passing concurrency or hot-code loading. In this paper the problem of software management in Erlang-based distributed systems is discussed. A mechanism for installing and upgrading Erlang applications using operating system package manager is described. A platform for updating software in large scale systems is presented. Keywords Erlang, software updates, distributed system 129
2 130 Małgorzata Wielgus, Przemysław Dąbek, Roman Janusz, et al. 1. Introduction Fast development of mobile computers creates new domain of applications for large systems composed of many geo-distributed, interconnected devices. Mobile sensors are no longer limited to simple tasks related to data acquisition. Relatively high computational power of embedded systems makes it possible to execute complex algorithms. A sensor can process collected data, analyze image, sound or other signal, detect important information and notify when particular situation occurs. This type of sensor can be called active or intelligent. It provides information, not data. System composed of active sensors provides high computational power in locations, where data appears. This removes limitations created by throughput of network, and makes it possible to create large scale systems, which can perform complex processing of all collected data. There are many areas of applications for such systems, for example: Finding particular people or cars. A mobile devices equipped with cameras can execute image recognition algorithms. Configuration can define which plate numbers or faces are searched for. The device can report only, when suspected object is found. Management of geographically spread devices. Devices can be installed in company cars for monitoring location and speed. A device can alarm when a car moves too fast or leaves specified area. Another example is monitoring of proper functioning of other devices, like GSM network base transceiver stations or oil pumpjacks. Active security systems. Monitoring of large areas or buildings could be much more efficient if advanced processing of signals was performed continuously. Such system could allow particular people to enter specified zones or report unusual behaviors in particular areas. Robotics. Embedded devices controlling robots are probably most advanced example of distributed computer systems. This new possibilities require use of new architectures of large scale distributed systems composed of mobile devices. With computation moved to remote devices, amount and type of exchanged information significantly changes. Less data is passed from a device which reduces requirements concerning network throughput. However, flexibility of such solutions require creating methods for changing software parameters and updating algorithms on remote devices. The problem of updating software in geo-distributed systems has been investigated by researchers working on sensor networks. Problems of efficient code propagation in sensor network has been discussed in [1] and [2]. Problems concerning security of updating software of sensors have been discussed in [3]. A survey of architectures for updating software in enterprise-scale networks can be found in [4]. Several proprietary system dedicated for management of particular brands of mobile devices have been created [5, 6]. These solutions are designed to manage software
3 Erlang-based software update platform for mobile devices 131 on mobile phones or tablets used by employees of a particular company. This kind of devices and systems could be used for performing some of aforementioned tasks, however flexibility of such solution is limited. Execution of complex applications can always result in high level of unexpected errors. In considered class of distributed systems, where large number of devices runs without manual supervision, high availability and error-recovery mechanisms should be supported. This requirement can be easily met using the Erlang technology [7], which is dedicated for creation high availability distributed systems. Other features of Erlang also seem suitable for creation of such systems, therefore the attempt of utilizing the technology seems justified. Erlang-based large scale geo-distributed systems require tools and methods for efficient management, which is the main goal of the work described in this paper. In the next section main features of the Erlang technology will be described. Following sections will present assumptions, architecture and tests of the software update platform for Erlang-based distributed systems. 2. Erlang technology overview Erlang is a technology and a programming language that mixes functional programming with an approach to easily build heavily parallel and distributed, highly available systems. It achieves these goals using a set of unique features, including: Virtual machine implementing message-passing concurrency model with lightweight Erlang processes. Built-in, language-integrated engine for communication in a distributed environment. Hot code swapping with a fine control over the software upgrade process. The aim of these is to allow an upgrade to be performed automatically without stopping any services. Fault-tolerance features. The most important one is supervisor behaviour for writing special control processes responsible for monitoring other processes and reacting accordingly when they crash. This allows programmers to take an happy case programming approach which means that they can ignore any exceptions as long as they don t have to be handled explicitly in some special way. Takeover and failover mechanisms for cluster systems Erlang OTP Erlang OTP (Open Telecom Platform [8]) is an Erlang distribution released by Ericsson in 1998 when the language became open source. OTP is a set of standard Erlang libraries and corresponding, well-defined design principles for Erlang developers. OTP defines patterns for basic elements that make up the software as well as the general layout of completed, deployed environment.
4 132 Małgorzata Wielgus, Przemysław Dąbek, Roman Janusz, et al. Erlang is a technology that from the very beginning incorporates patterns, conceptions and approaches that are crucial for heavily parallel and distributed systems. Since such systems are becoming ubiquitous these days, Erlang definitely has the chance to become a technology of the future for large, distributed computer systems. In this article, brief description of basic OTP principles will be presented with more attention on the ones important for the Software Update Platform. OTP principles include: Supervisors and supervision trees Erlang software can be thought of as a set of lightweight Erlang processes communicating with each other. In supervision tree principle, these processes form a tree where the leaves are called workers and are doing the actual job, while other nodes are called supervisors. Each supervisor is responsible for monitoring its children and reacting accordingly when any of them crashes. Supervisors allow to design well-structured and fault-tolerant software. Behaviours Behaviours are a set of basic design patterns used to build common types of software pieces. Fundamental behaviours are: gen_server for implementing simple servers and client-server relation between Erlang processes, gen_fsm for implementing generic finite state machines, gen_event for implementing event handling subsystems. Applications and releases These patterns define general layout of a self-contained, deployable piece of Erlang software. Applications and releases will be described in the next section as the Software Update Platform deals heavily with them Applications and Releases in Erlang A deployable package of software written in Erlang is called an embedded node. An embedded node is a self-contained, configured Erlang environment along with actual software written in Erlang that can be deployed and run using a simple command. An embedded node contains: Erlang Runtime System (ERTS), a set of Erlang applications, the actual code, configuration for ERTS and applications, an Erlang release Erlang applications An Erlang application is an independent piece of software that serves some particular functionality. An application is defined by its name, version, code (set of modules), dependencies (other applications) and other more finegrained settings and attributes. These are all configured in an.app file. Every application defines a way of starting
5 Erlang-based software update platform for mobile devices 133 it, stopping it and possibly upgrading or downgrading it to another version (optional appup file). It also has its own piece of configuration. A running application is often made up of a single supervision tree Erlang release An Erlang release is a configuration of what an embedded node contains and how it is started, stopped and upgraded. Thus, an Erlang release, defined by an.rel file, states which version of ERTS should be used in the node, lists a set of applications in particular versions that should be part of the release, and defines one or more way the Erlang node is started and stopped. Separate, optional relup file defines how the release is upgraded or downgraded (without stopping the node). Erlang release has its own version number Upgrading Erlang software As a part of focus for high available systems, Erlang supports hot code swapping and very finegrained control over the upgrade process without stopping running node. Every application may define how its version should be changed to higher or lower in the appup file. Based on a set of appup files, a relup file may be generated which merges all operations listed in appup files into one big script that upgrades or downgrades the whole release. This script may be executed using standard Erlang API for release handling (the release_handler module). Because each application is responsible for defining how its version should be changed, the upgrade process is very straightforward and requires only a few calls to the release handling functions. Thus, it can be easily performed without human interaction, by automatic tools. Still, there are some problems with that method. Mainly, it is low-level as it requires calling the Erlang API on the target node. What is needed and what our platform aims to provide is a way of easy installation and deinstallation of the Erlang node on the target system using simple tools like package managers and also a way of easy management of a large number of devices. 3. Packaging of Erlang software Packaging of Erlang software means a way of putting the contents of Erlang node into packages like.deb. These packages are easy to install, upgrade and remove with standard package manager commands, available on most operating systems. The Software Update Platform described in this paper uses packages and a package manager as a primary mechanism for modifying software on particular devices. Creation and installation of such packages is not trivial, especially when it is very important to preserve ability to perform upgrades without stopping the Erlang node, using hot code swapping mechanism.
6 134 Małgorzata Wielgus, Przemysław Dąbek, Roman Janusz, et al. There are a few reasons why adopting existing packaging mechanism is justified: easy installation and deinstallation of Erlang node on the target system using a single command, reduction of amount of data downloaded during the upgrade (only the actually changed packages are fetched by the package manager), overall better integration with the target system, knowledge of Erlang technology is not required to perform installation or update Implementation details The implementation aimed at creating tools to build Debian packages.deb that would span the contents of the Erlang node and create a set of packages ready to be pushed to a repository and easily installed on the target device. This also required general implementation of Debian maintainer scripts included into these packages. These scripts are responsible for management of the node during installation. Most importantly, they contain the code that performs the upgrade process Decomposition of the Erlang node into Debian package set The Erlang node is decomposed into a set of Debian packages in the following way: Base package contains ERTS and its version is equal to the ERTS version. This package is architecture-dependent. It has no dependencies. Each Erlang application gets its own package. Its version is equal to the application version. Package dependencies reflect the list of dependent applications in the.app file. Erlang release files are packaged into the final, main package. This package is dependent on the base package and packages for all applications contained in the release. These dependencies are strict in terms of version of dependent packages the release requires a concrete version of every application as well as the ERTS. The only package that should be explicitly maintained by system administrator is the main package containing the release files. This package, thanks to its well-defined dependencies, represents the whole Erlang node and its installation will cause the whole node to be deployed on the device. The point of splitting up the node into several packages related through dependencies was to reduce the amount of data downloaded during the upgrade process. It is a very common situation when only one Erlang application is to be upgraded. Standard Erlang features do not allow upgrading particular applications independently a new version of the whole release must be created and upgraded. Without proper decomposition of the contents of the release, this would force downloading a big package containing every application, even though most of them did not change. Usage of package manager solves this problem. When the node is decomposed into several packages, upgrade of the main package forces the package manager to download only these application packages whose version changed. This is all thanks to automatic dependency resolution provided by the package manager.
7 Erlang-based software update platform for mobile devices Upgrade of the release There are a few maintainer scripts (see [9]) in all the packages spanning the Erlang node. They are responsible for starting the node when it gets installed, stopping it when it gets removed and, most importantly, performing the release upgrade process when the main package is being upgraded by the package manager. The script performing the release upgrade checks whether the node is running, using tools available in the node bin directory. When the node is running, the script remotely calls appropriate Erlang code on the running node, causing it to switch to the higher version of the release (standard Erlang release upgrade using the release_handler, without stopping the node). Hot upgrade may fail or the node may have been down from the beginning. If so, a manual replacement of the old version of the release with the new version is performed (manual replacement of some files) and the node is started Results and effects All crucial features regarding integration of package manager with Software Update Platform have been successfully implemented. From the point of view of an Erlang developer maintaining the software being upgraded, the main feature implemented are several helpful scripts. They allow easy generation of Debian packages from an Erlang release generated with rebar (more information about development model can be found in 4.2). There is also a script for easy generation of the relup file. From the point of view of a target system administrator, the main advantages of package manager are mentioned earlier. The most important is the easy way to install, upgrade and remove Erlang nodes. The only configuration needed at the target system is addition of Debian repository in the apt configuration file. From the point of view of an user of the Software Update Platform, main feature implemented is a built-in Debian packages repository along with an UI to manage its contents. We were also successful in obtaining desired non-functional features of the system regarding its use of package manager. This includes smaller downloads from the server to the target devices and ability to use hot-code swapping by the package manager during upgrade process Problems and limitations Although the integration of package was successful, due to a significant mismatch between how package manager works and how standard Erlang upgrade tools work, some workarounds were required. The main problem encountered regarded ability to perform hot-upgrade without stopping the system. Erlang upgrade tools require that at the point of a release upgrade, the whole old version of the release and the whole new version of the release
8 136 Małgorzata Wielgus, Przemysław Dąbek, Roman Janusz, et al. are present in the filesystem. When the release is split into several packages, it is impossible to find a moment where this requirement is met. It is also impossible to influence the way package manager works to force it to behave as we wanted. Because of that, a workaround had to be introduced. Erlang application and Erlang release packages do not contain their contents directly. Instead, an intermediate tar.gz archive is created that contains actual contents of the package. This archive is then put into the.deb file directly. This allows full control over the process when the files from the intermediate package are unpacked and removed. The intermediate archive is unpacked from the.deb file by the package manager directly, while the actual files are unpacked by the maintainer scripts. One downside of this approach is that application and release files had to be manually removed using maintainer scripts. Another one is that when an application is removed from a release, the package containing that application has to be manually removed. This should not be done from the maintainer scripts as it is probably a bad idea to invoke package manager from scripts invoked by the package manager. 4. Software update platform Software Update Platform is responsible for performing updates on multiple devices and monitoring installed applications. Developers prepare.deb packages with applications and add them to a repository. When connection with device is established and information about planned update is written in database, platform will perform software update on that device. During system design the following assumptions were made: Slow and unreliable connections while developing we thought mainly about devices that are connected via GSM. This connection can be slow and may be interrupted easily. Possibility of NAT geo-distributed mobile devices are typically not in a local network and can be located behind a NAT. Therefore the devices should connect to central server with public IP. Need for scalability a distributed systems of considered class can consist of large number of devices. Our software management platform should be able to manage thousands of devices. Managing groups of devices, batch updates user can create groups of devices so that our system can be used to manage more than one distributed system at once. User can send requests to the defined groups or to particular device. Simple, intuitive interface the graphical management interface should be easy to use Architecture General architecture of the Software Update Platform is presented in Figure 1.
9 Erlang-based software update platform for mobile devices 137 The platform consists of two main parts: Client application installed on mobile device. It is assumed that client application is running on Erlang VM installed on some Linux distribution and apt is available. Client application connects with server and performs particular operations. Management server. The server consists of 3 components: HTTP server database backend Figure 1. General architecture of the Software Update Platform. HTTP server and user interface Mochiweb, an Erlang-based lightweight Web server, is the server of choice. It is responsible for two main tasks. It manages user interaction through Web interface (serves content, performs user requests) and it is also a repository for.deb packages. Web interface provides simple way to manage connected devices. A user can check last known state of device: IP, version of release, installed applications. There is also a convenient mechanism of managing groups of devices. Each device can be assigned to one or more category. Each scheduled job can concern single device or one of defined categories. Figure 2 shows exemplary view of device state. The interface also provides easy mechanism of managing packages present in the repository. Previously prepared packages can be uploaded directly through the Web site. Database Mnesia, an Erlang native database stores information about: device and applications installed on it, jobs (e.g. update) for devices.
10 138 Małgorzata Wielgus, Przemysław Dąbek, Roman Janusz, et al. Figure 2. Device view from the user interface of the Platform. Database is a connector between the Web interface and the backend. Backend The backend is the core of platform. It is Erlang application responsible for whole automatic device management. Every new device in platform has to connect with the backend. Information about all managed devices is stored in the database. The backend can monitor state of devices and perform operations on it.
11 Erlang-based software update platform for mobile devices 139 Figure 3. The diagram of communication between components of the system Device-server session Sequence of operations performed during cooperation between a device and the server is presented in Figure 3. Firstly device initializes connection which carries following data: device identity: nodename and MAC address, session start reason, device states. These pieces of information are used to unambiguously identify connected device. After connection is established, the server checks device state in the database. If there are any enqueued jobs, they are sent to device. The device returns result of performed jobs. This status is written to the database On-device upgrade logic Updating software consists of two jobs: upgrade, check release. Upgrade immediately returns with status ok. It stops periodic connection requests, closes session and uses apt to perform upgrade. It waits for apt to finish and checks its result. Then it restores periodic connection requests. Check release reads value returned from apt and notifies server about changes in next session.
12 140 Małgorzata Wielgus, Przemysław Dąbek, Roman Janusz, et al Development MModel for application Software Update Platform proposes a model and provides some tools for development of Erlang software installed on the target systems. The main assumption is that the developer uses a tool called rebar for managing Erlang software (see [10] for more information). rebar is a script providing functionality for Erlang similar to what maven provides for Java development. This includes automatic generation of stubs for Erlang applications, build,.appup file generation, creation of complete, self-contained Erlang nodes (with a runtime), documentation etc. Generated Erlang nodes are used as a basis for.deb packages generation. This is implemented by a set of scripts provided by the Software Update Platform itself. 5. Conclusions and further work Created system for dynamic updates of Erlang software on mobile devices provides unique functionality, which can simplify management of Erlang-based distributed systems. Software on remote devices can be upgraded without stopping updated applications. Amount of downloaded data is optimized, due to splitting a release into several packages related through dependencies. The system uses operating system package manager to install and upgrade Erlang applications, which is easier for people who had never used Erlang before. There are several directions of further development of the platform. The most interesting are: Support for other package managers. One obvious improvement for the platform would be support for more package managers, as Debian package format.deb was chosen arbitrarily for experimental development. Since its integration was successful, support for rpm-based package managers (like yum), pacman or port is planned in the future. Communication security. Right now, communication between devices and the server is not encrypted. Wrapping device-server sessions in TLS and adding some authentication is another important potential feature for the platform. Development towards more general management platform. The protocol used in communication between devices and the server is very general and extensible. New types of jobs can be easily added. Thus, the platform can be turned into more general management platform, providing a lot more of different functionality, like for example monitoring device status, configuring applications or viewing logs. Acknowledgements The research leading to this results has received founding from the Polish National Science Centre under the grant no. UMO-2011/01/D/ST6/06146.
13 Erlang-based software update platform for mobile devices 141 References [1] Reijers N., Langendoen K.: Efficient code distribution in wireless sensor networks. Proc. of the 2nd ACM international conference on Wireless sensor networks and applications, San Diego, CA, USA, pp , [2] Levis P., Patel N., Culler D., Shenker S.: Trickle: a self-regulating algorithm for code propagation and maintenance in wireless sensor networks. Proc. of the 1st conference on Symposium on Networked Systems Design and Implementation, vol. 1. San Francisco, California, [3] Deng J., Richard H., Mishra S.: Secure code distribution in dynamically programmable wireless sensor networks. Proc. of the 5th international conference on Information processing in sensor networks, Nashville, Tennessee, USA, pp , [4] Han C., Kumar R., Shea R., Srivastava M.: Sensor network software update management: a survey. International Journal of Network Management, vol. 15(8), pp , [5] Nokia Device management. nokia-for-business/device-management, [6] Motorola Mobility Services Platform. category=159, [7] Armstrong J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, [8] Logan M., Merritt E., Merritt R.: Erlang and OTP in Action. Manning Publications, 2010 [9] Debian Policy Manual Package maintainer scripts and installation procedure html, [10] Rebar: Erlang Build Tool Affiliations Małgorzata Wielgus AGH University of Science and Technology, Krakow, Poland, [email protected] Przemysław Dąbek AGH University of Science and Technology, Krakow, Poland, [email protected] Roman Janusz AGH University of Science and Technology, Krakow, Poland, [email protected] Tomasz Kowal Erlang Solutions, Krakow, Poland, [email protected] Wojciech Turek AGH University of Science and Technology, Krakow, Poland, [email protected] Received: Revised: Accepted:
Network Management System (NMS) FAQ
Network Management System (NMS) FAQ Q: How does the NMS work? A: The Cooper NMS is a powerful, flexible and highly scalable wireless and fixed network management solution for thousands of network nodes
ERLANG-BASED SENSOR NETWORK MANAGEMENT FOR HETEROGENEOUS DEVICES
Computer Science 13 (3) 2012 http://dx.doi.org/10.7494/csci.2012.13.3.139 Michał Nieć Paweł Pikuła Aleksander Mamla Wojciech Turek ERLANG-BASED SENSOR NETWORK MANAGEMENT FOR HETEROGENEOUS DEVICES Abstract
Chapter 1 - Web Server Management and Cluster Topology
Objectives At the end of this chapter, participants will be able to understand: Web server management options provided by Network Deployment Clustered Application Servers Cluster creation and management
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
High Availability Essentials
High Availability Essentials Introduction Ascent Capture s High Availability Support feature consists of a number of independent components that, when deployed in a highly available computer system, result
SuperOffice Pocket CRM
SuperOffice Pocket CRM Version 7.5 Installation Guide Page 1 Table of Contents Introduction... 3 Prerequisites... 3 Scenarios... 3 Recommended small scenario... 3 About this version... 4 Deployment planning...
PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone
Standalone PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone Most developers are familiar with Visual SourceSafe. It's a popular version control
WISE-4000 Series. WISE IoT Wireless I/O Modules
WISE-4000 Series WISE IoT Wireless I/O Modules Bring Everything into World of the IoT WISE IoT Ethernet I/O Architecture Public Cloud App Big Data New WISE DNA Data Center Smart Configure File-based Cloud
Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc www.toyork.com http://ca.linkedin.
Oracle WebLogic Foundation of Oracle Fusion Middleware Lawrence Manickam Toyork Systems Inc www.toyork.com http://ca.linkedin.com/in/lawrence143 History of WebLogic WebLogic Inc started in 1995 was a company
Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide
Oracle Communications WebRTC Session Controller: Basic Admin Student Guide Edition 1.0 April 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Disclaimer This document contains proprietary
Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340
XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture
EnterpriseLink Benefits
EnterpriseLink Benefits GGY AXIS 5001 Yonge Street Suite 1300 Toronto, ON M2N 6P6 Phone: 416-250-6777 Toll free: 1-877-GGY-AXIS Fax: 416-250-6776 Email: [email protected] Web: www.ggy.com Table of Contents
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM Albert M. K. Cheng, Shaohong Fang Department of Computer Science University of Houston Houston, TX, 77204, USA http://www.cs.uh.edu
WINDOWS AZURE AND WINDOWS HPC SERVER
David Chappell March 2012 WINDOWS AZURE AND WINDOWS HPC SERVER HIGH-PERFORMANCE COMPUTING IN THE CLOUD Sponsored by Microsoft Corporation Copyright 2012 Chappell & Associates Contents High-Performance
Glassfish Architecture.
Glassfish Architecture. First part Introduction. Over time, GlassFish has evolved into a server platform that is much more than the reference implementation of the Java EE specifcations. It is now a highly
Building Reliable, Scalable AR System Solutions. High-Availability. White Paper
Building Reliable, Scalable Solutions High-Availability White Paper Introduction This paper will discuss the products, tools and strategies available for building reliable and scalable Action Request System
THE WINDOWS AZURE PROGRAMMING MODEL
THE WINDOWS AZURE PROGRAMMING MODEL DAVID CHAPPELL OCTOBER 2010 SPONSORED BY MICROSOFT CORPORATION CONTENTS Why Create a New Programming Model?... 3 The Three Rules of the Windows Azure Programming Model...
Integrated Open-Source Geophysical Processing and Visualization
Integrated Open-Source Geophysical Processing and Visualization Glenn Chubak* University of Saskatchewan, Saskatoon, Saskatchewan, Canada [email protected] and Igor Morozov University of Saskatchewan,
Building highly available systems in Erlang. Joe Armstrong
Building highly available systems in Erlang Joe Armstrong How can we get 10 nines reliability? Why Erlang? Erlang was designed to program fault-tolerant systems Overview n Types of HA systems n Architecture/Algorithms
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
WOS Cloud. ddn.com. Personal Storage for the Enterprise. DDN Solution Brief
DDN Solution Brief Personal Storage for the Enterprise WOS Cloud Secure, Shared Drop-in File Access for Enterprise Users, Anytime and Anywhere 2011 DataDirect Networks. All Rights Reserved DDN WOS Cloud
A Survey Study on Monitoring Service for Grid
A Survey Study on Monitoring Service for Grid Erkang You [email protected] ABSTRACT Grid is a distributed system that integrates heterogeneous systems into a single transparent computer, aiming to provide
CA Process Automation
CA Process Automation Glossary Service Pack 04.0.01 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is
Architecture and Mode of Operation
Open Source Scheduler Architecture and Mode of Operation http://jobscheduler.sourceforge.net Contents Components Platforms & Databases Architecture Configuration Deployment Distributed Processing Security
NETAVIS Observer 4.6. Full Feature List
NETAVIS Observer 4.6 Full Feature List Contents 1 Live monitoring... 3 2 Event management... 3 3 Archive... 3 4 icat video analytics... 4 5 Privacy and security... 4 6 Interfaces... 4 7 Multi-server and
How To Manage Web Content Management System (Wcm)
WEB CONTENT MANAGEMENT SYSTEM February 2008 The Government of the Hong Kong Special Administrative Region The contents of this document remain the property of, and may not be reproduced in whole or in
SIPAC. Signals and Data Identification, Processing, Analysis, and Classification
SIPAC Signals and Data Identification, Processing, Analysis, and Classification Framework for Mass Data Processing with Modules for Data Storage, Production and Configuration SIPAC key features SIPAC is
This document describes how the Meraki Cloud Controller system enables the construction of large-scale, cost-effective wireless networks.
This document describes how the Meraki Cloud Controller system enables the construction of large-scale, cost-effective wireless networks. Copyright 2009 Meraki, Inc. All rights reserved. Trademarks Meraki
Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing
www.ijcsi.org 227 Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing Dhuha Basheer Abdullah 1, Zeena Abdulgafar Thanoon 2, 1 Computer Science Department, Mosul University,
Software Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM
A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM Sneha D.Borkar 1, Prof.Chaitali S.Surtakar 2 Student of B.E., Information Technology, J.D.I.E.T, [email protected] Assistant Professor, Information
SOA-14: Continuous Integration in SOA Projects Andreas Gies
Distributed Team Building Principal Architect http://www.fusesource.com http://open-source-adventures.blogspot.com About the Author Principal Architect PROGRESS - Open Source Center of Competence Degree
Features of AnyShare
of AnyShare of AnyShare CONTENT Brief Introduction of AnyShare... 3 Chapter 1 Centralized Management... 5 1.1 Operation Management... 5 1.2 User Management... 5 1.3 User Authentication... 6 1.4 Roles...
High Availability Option for Windows Clusters Detailed Design Specification
High Availability Option for Windows Clusters Detailed Design Specification 2008 Ingres Corporation Project Name Component Name Ingres Enterprise Relational Database Version 3 Automatic Cluster Failover
OpenAM All-In-One solution to securely manage access to digital enterprise and customer services, anytime and anywhere.
OpenAM All-In-One solution to securely manage access to digital enterprise and customer services, anytime and anywhere. OpenAM, the only all-in-one open source access management solution, provides the
Implementing a SAS Metadata Server Configuration for Use with SAS Enterprise Guide
Implementing a SAS Metadata Server Configuration for Use with SAS Enterprise Guide Step 1: Setting Up Required Users and Groups o Windows Operating Systems Only Step 2: Installing Software Using the SAS
Administering batch environments
Administering batch environments, Version 8.5 Administering batch environments SA32-1093-00 Note Before using this information, be sure to read the general information under Notices on page 261. Compilation
A Resilient Device Monitoring System in Collaboration Environments
, pp.103-114 http://dx.doi.org/10.14257/ijsh.2014.8.5.10 A Resilient Device Monitoring System in Collaboration Environments KeeHyun Park 1 and JongHwi Lee 1 Department of Computer Engineering, Keimyung
EMC DOCUMENTUM xplore 1.1 DISASTER RECOVERY USING EMC NETWORKER
White Paper EMC DOCUMENTUM xplore 1.1 DISASTER RECOVERY USING EMC NETWORKER Abstract The objective of this white paper is to describe the architecture of and procedure for configuring EMC Documentum xplore
Technical Report. Implementation and Performance Testing of Business Rules Evaluation Systems in a Computing Grid. Brian Fletcher x08872155
Technical Report Implementation and Performance Testing of Business Rules Evaluation Systems in a Computing Grid Brian Fletcher x08872155 Executive Summary 4 Introduction 5 Background 5 Aims 5 Technology
Maximum Availability Architecture. Oracle Best Practices For High Availability. Backup and Recovery Scenarios for Oracle WebLogic Server: 10.
Backup and Recovery Scenarios for Oracle WebLogic Server: 10.3 An Oracle White Paper January, 2009 Maximum Availability Architecture Oracle Best Practices For High Availability Backup and Recovery Scenarios
Oracle EXAM - 1Z0-102. Oracle Weblogic Server 11g: System Administration I. Buy Full Product. http://www.examskey.com/1z0-102.html
Oracle EXAM - 1Z0-102 Oracle Weblogic Server 11g: System Administration I Buy Full Product http://www.examskey.com/1z0-102.html Examskey Oracle 1Z0-102 exam demo product is here for you to test the quality
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
HDFS Users Guide. Table of contents
Table of contents 1 Purpose...2 2 Overview...2 3 Prerequisites...3 4 Web Interface...3 5 Shell Commands... 3 5.1 DFSAdmin Command...4 6 Secondary NameNode...4 7 Checkpoint Node...5 8 Backup Node...6 9
Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity
Ekartha, Inc. 63 Cutter Mill Road Great Neck, N.Y. 11021 Tel.: (516) 773-3533 Ekartha India Pvt. Ltd. 814/B Law College Road Demech House, 4th Floor Erandwane, Pune, India Email: [email protected] Web:
CA Unified Infrastructure Management Server
CA Unified Infrastructure Management Server CA UIM Server Configuration Guide 8.0 Document Revision History Version Date Changes 8.0 September 2014 Rebranded for UIM 8.0. 7.6 June 2014 No revisions for
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
How To Install An Aneka Cloud On A Windows 7 Computer (For Free)
MANJRASOFT PTY LTD Aneka 3.0 Manjrasoft 5/13/2013 This document describes in detail the steps involved in installing and configuring an Aneka Cloud. It covers the prerequisites for the installation, the
Managing a Fibre Channel Storage Area Network
Managing a Fibre Channel Storage Area Network Storage Network Management Working Group for Fibre Channel (SNMWG-FC) November 20, 1998 Editor: Steven Wilson Abstract This white paper describes the typical
Migrating to vcloud Automation Center 6.1
Migrating to vcloud Automation Center 6.1 vcloud Automation Center 6.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a
AppSense Environment Manager. Enterprise Design Guide
Enterprise Design Guide Contents Introduction... 3 Document Purpose... 3 Basic Architecture... 3 Common Components and Terminology... 4 Best Practices... 5 Scalability Designs... 6 Management Server Scalability...
http://ubiqmobile.com
Mobile Development Made Easy! http://ubiqmobile.com Ubiq Mobile Serves Businesses, Developers and Wireless Service Providers Businesses Be among the first to enter the mobile market! - Low development
MEGA Web Application Architecture Overview MEGA 2009 SP4
Revised: September 2, 2010 Created: March 31, 2010 Author: Jérôme Horber CONTENTS Summary This document describes the system requirements and possible deployment architectures for MEGA Web Application.
G Cloud 6 CDG Service Definition for Forgerock Software Services
G Cloud 6 CDG Service Definition for Forgerock Software Services Author: CDG Date: October 2015 Table of Contents Table of Contents 2 1.0 Service Definition 3 1.0 Service Definition Forgerock as a Platform
Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.0(2)
Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.0(2) This guide provides an overview of the Disaster Recovery System, describes how to use the Disaster
Firewall Builder Architecture Overview
Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.
Introducing ZENworks 11 SP4
Introducing ZENworks 11 SP4 Experience Added Value and Improved Capabilities Article Reprint ZENworks Article Reprint Introducing ZENworks 11 SP4 Addressing Key Usability and Supportability Issues Micro
Detecting rogue systems
Product Guide Revision A McAfee Rogue System Detection 4.7.1 For use with epolicy Orchestrator 4.6.3-5.0.0 Software Detecting rogue systems Unprotected systems, referred to as rogue systems, are often
Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago
Globus Striped GridFTP Framework and Server Raj Kettimuthu, ANL and U. Chicago Outline Introduction Features Motivation Architecture Globus XIO Experimental Results 3 August 2005 The Ohio State University
GenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student [email protected] Bilal CHEBARO Assistant professor [email protected] Abstract
An Integrator s Guide to MicroTCA Part III System management software
An Integrator s Guide to MicroTCA Part III System management software By Peter Marek, Advantech In the previous article of this series we explained the basic processes of the start up of a Field Replaceable
http://www.paper.edu.cn
5 10 15 20 25 30 35 A platform for massive railway information data storage # SHAN Xu 1, WANG Genying 1, LIU Lin 2** (1. Key Laboratory of Communication and Information Systems, Beijing Municipal Commission
ArcGIS for Server: Administrative Scripting and Automation
ArcGIS for Server: Administrative Scripting and Automation Shreyas Shinde Ranjit Iyer Esri UC 2014 Technical Workshop Agenda Introduction to server administration Command line tools ArcGIS Server Manager
How To Understand The Architecture Of An Ulteo Virtual Desktop Server Farm
ULTEO OPEN VIRTUAL DESKTOP V4.0.2 ARCHITECTURE OVERVIEW Contents 1 Introduction 2 2 Servers Roles 3 2.1 Session Manager................................. 3 2.2 Application Server................................
From Centralization to Distribution: A Comparison of File Sharing Protocols
From Centralization to Distribution: A Comparison of File Sharing Protocols Xu Wang, Teng Long and Alan Sussman Department of Computer Science, University of Maryland, College Park, MD, 20742 August, 2015
Enhanced Diagnostics Improve Performance, Configurability, and Usability
Application Note Enhanced Diagnostics Improve Performance, Configurability, and Usability Improved Capabilities Available for Dialogic System Release Software Application Note Enhanced Diagnostics Improve
Frequently Asked Questions
Frequently Asked Questions 1. Q: What is the Network Data Tunnel? A: Network Data Tunnel (NDT) is a software-based solution that accelerates data transfer in point-to-point or point-to-multipoint network
District of Columbia Courts Attachment 1 Video Conference Bridge Infrastructure Equipment Performance Specification
1.1 Multipoint Control Unit (MCU) A. The MCU shall be capable of supporting (20) continuous presence HD Video Ports at 720P/30Hz resolution and (40) continuous presence ports at 480P/30Hz resolution. B.
LBNC and IBM Corporation 2009. Document: LBNC-Install.doc Date: 06.03.2009 Path: D:\Doc\EPFL\LNBC\LBNC-Install.doc Version: V1.0
LBNC Compute Cluster Installation and Configuration Author: Markus Baertschi Owner: Markus Baertschi Customer: LBNC Subject: LBNC Compute Cluster Installation and Configuration Page 1 of 14 Contents 1.
The Research on Industrial Information Monitoring System Based on B/S Structure Xuexuan ZHU1, a
4th National Conference on Electrical, Electronics and Computer Engineering (NCEECE 2015) The Research on Industrial Information Monitoring System Based on B/S Structure Xuexuan ZHU1, a 1 College of Electrical
vsphere Upgrade vsphere 6.0 EN-001721-03
vsphere 6.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions of this document,
Cisco IT Validates Rigorous Identity and Policy Enforcement in Its Own Wired and Wireless Networks
Cisco IT Article December 2013 End-to-End Security Policy Control Cisco IT Validates Rigorous Identity and Policy Enforcement in Its Own Wired and Wireless Networks Identity Services Engine is an integral
Clientless SSL VPN Users
Manage Passwords, page 1 Username and Password Requirements, page 3 Communicate Security Tips, page 3 Configure Remote Systems to Use Clientless SSL VPN Features, page 3 Manage Passwords Optionally, you
Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.5(1)
Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.5(1) This guide provides an overview of the Disaster Recovery System, describes how to use the Disaster
Invest in your business with Ubuntu Advantage.
Invest in your business with Ubuntu Advantage. Expert advice. Specialist tools. Dedicated support. Introducing Ubuntu Advantage Contents 02 Introducing Ubuntu Advantage 03 Ubuntu Advantage 04 - Landscape
Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework
JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 21 No. 1 (2013), pp. 53-69 Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework Marcin Kwapisz 1 1 Technical University of Lodz Faculty
Enterprise Solution for Remote Desktop Services... 2. System Administration... 3. Server Management... 4. Server Management (Continued)...
CONTENTS Enterprise Solution for Remote Desktop Services... 2 System Administration... 3 Server Management... 4 Server Management (Continued)... 5 Application Management... 6 Application Management (Continued)...
MAPI Connector Overview
The CommuniGate Pro Server can be used as a "service provider" for Microsoft Windows applications supporting the MAPI (Microsoft Messaging API). To use this service, a special Connector library (CommuniGate
Secure Networks for Process Control
Secure Networks for Process Control Leveraging a Simple Yet Effective Policy Framework to Secure the Modern Process Control Network An Enterasys Networks White Paper There is nothing more important than
Reducing Configuration Complexity with Next Gen IoT Networks
Reducing Configuration Complexity with Next Gen IoT Networks Orama Inc. November, 2015 1 Network Lighting Controls Low Penetration - Why? Commissioning is very time-consuming & expensive Network configuration
enterprise^ IBM WebSphere Application Server v7.0 Security "publishing Secure your WebSphere applications with Java EE and JAAS security standards
IBM WebSphere Application Server v7.0 Security Secure your WebSphere applications with Java EE and JAAS security standards Omar Siliceo "publishing enterprise^ birmingham - mumbai Preface 1 Chapter 1:
DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Oracle E-Business Suite 12
DEPLOYMENT GUIDE Version 1.2 Deploying F5 with Oracle E-Business Suite 12 Table of Contents Table of Contents Introducing the BIG-IP LTM Oracle E-Business Suite 12 configuration Prerequisites and configuration
Web Applications Access Control Single Sign On
Web Applications Access Control Single Sign On Anitha Chepuru, Assocaite Professor IT Dept, G.Narayanamma Institute of Technology and Science (for women), Shaikpet, Hyderabad - 500008, Andhra Pradesh,
Modular Communication Infrastructure Design with Quality of Service
Modular Communication Infrastructure Design with Quality of Service Pawel Wojciechowski and Péter Urbán Distributed Systems Laboratory School of Computer and Communication Sciences Swiss Federal Institute
The Encryption Anywhere Data Protection Platform
The Encryption Anywhere Data Protection Platform A Technical White Paper 5 December 2005 475 Brannan Street, Suite 400, San Francisco CA 94107-5421 800-440-0419 415-683-2200 Fax 415-683-2349 For more information,
Load Balancing and Clustering in EPiServer
Load Balancing and Clustering in EPiServer Abstract This white paper describes the main differences between load balancing and clustering, and details EPiServer's possibilities of existing in a clustered
Introducing ZENworks 11 SP4. Experience Added Value and Improved Capabilities. Article. Article Reprint. www.novell.com. Endpoint Management
Introducing ZENworks 11 SP4 Experience Added Value and Improved Capabilities Article Article Reprint Endpoint Management Endpoint Management Article Introducing ZENworks 11 SP4 Addressing Key Usability
Learn Oracle WebLogic Server 12c Administration For Middleware Administrators
Wednesday, November 18,2015 1:15-2:10 pm VT425 Learn Oracle WebLogic Server 12c Administration For Middleware Administrators Raastech, Inc. 2201 Cooperative Way, Suite 600 Herndon, VA 20171 +1-703-884-2223
An Open MPI-based Cloud Computing Service Architecture
An Open MPI-based Cloud Computing Service Architecture WEI-MIN JENG and HSIEH-CHE TSAI Department of Computer Science Information Management Soochow University Taipei, Taiwan {wjeng, 00356001}@csim.scu.edu.tw
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request
IBM Cloud Manager with OpenStack
IBM Cloud Manager with OpenStack Download Trial Guide Cloud Solutions Team: Cloud Solutions Beta [email protected] Page 1 Table of Contents Chapter 1: Introduction...3 Development cycle release scope...3
McAfee Web Gateway Administration Intel Security Education Services Administration Course Training
McAfee Web Gateway Administration Intel Security Education Services Administration Course Training The McAfee Web Gateway Administration course from Education Services provides an in-depth introduction
Designing and Embodiment of Software that Creates Middle Ware for Resource Management in Embedded System
, pp.97-108 http://dx.doi.org/10.14257/ijseia.2014.8.6.08 Designing and Embodiment of Software that Creates Middle Ware for Resource Management in Embedded System Suk Hwan Moon and Cheol sick Lee Department
5 SCS Deployment Infrastructure in Use
5 SCS Deployment Infrastructure in Use Currently, an increasing adoption of cloud computing resources as the base to build IT infrastructures is enabling users to build flexible, scalable, and low-cost
