Final Report On virtualization

Embed Size (px)

Citation preview

  • 7/27/2019 Final Report On virtualization

    1/27

    Seminar Report

    Titled

    Virtualization and Hypervisors

    Submitted

    BY

    Mr. Mukesh Buradkar (135)

    Under the guidance ofMr. Sagar Badhiye

    October, 2013-2014

    Department of Computer TechnologyYESHWANTRAO CHAVAN COLLEGE OF ENGINEERING, Nagpur

    (An Autonomous Institution Affiliated to Rashtrasant Tukadoji Maharaj Nagpur

    University)

  • 7/27/2019 Final Report On virtualization

    2/27

    `

    YESHWANTRAO CHAVAN COLLEGE OF ENGINEERINGNAGPUR(An Autonomous Institution Affiliated to Rashtrasant Tukadoji Maharaj Nagpur

    University)Department of Computer Technology(2012-13)

    CertificateThis is to certify that the Seminar Report titled User Activity Monitoring issubmitted towards the partial fulfillment of requirement of seminar course inV Semester, B.E.(Computer Technology), degree awarded by RashtrasantTukdoji Maharaj Nagpur University, Nagpur.Submitted by:Mr.MukeshBuradkar(135)is approved.

    Project Guide

    Mr. Sagar Badhiye

    Project Coordinator(s)Mrs. Prarthana Deshkar

    Head, Department of Computer TechnologyMr. A. R. Bhagat Patil

    Date:

    Place: Nagpur.

  • 7/27/2019 Final Report On virtualization

    3/27

    `

    2

    Abstract

    Virtualization as a concept is not new; computational environment virtualization

    has been around since the first mainframe system. But recently , the term virtualization

    has become ubiquitous, representing any type of process obfuscation where a process is

    somehow removed from its physical operating environment. Because of this ambiguity,

    virtualization can almost be applied to any and all parts of an IT infrastructure. For

    example, mobile device emulators are a form of virtualization because the hardware

    platform normally required to run the mobile operating system has been emulated,

    removing the OS binding from the hardware it was written for. But this is just one

    example of one type of virtualization; there are many definitions of the term

    virtualization floating around in the current lexicon, and all (or at least most) of them

    are correct ,which can be quite confusing.

    This seminar focuses on virtualization as it pertains to the data center before

    considering any type of data center virtualization, its important to define what the

    technology or category of service youre trying to virtualize.

    Generally speaking, virtualization falls into three categories: Operating System, Storage,

    and Applications. But these categories are very broad and dont adequately delineate

    the key aspects of data center virtualization.

  • 7/27/2019 Final Report On virtualization

    4/27

    `

    2

    Table of Contents

    Title Page No.

    1.0 Introduction.. 42.0 Background Knowledge.. 5

    2.0.1 challenges

    2.0.2 Present Day Scenario

    3.0 Everything To Know About Virtualization

    3.1 What is virtualization

    3.2 How Does Virtualization Work?

    3.3 Virtual Infrastructure

    3.3.1 Virtual Infrastructure Benefits

    3.4 Why Virtualization: A List of Reasons

    4.0 Classification of Virtualization

    4.1 Virtual machine

    4.1.1 Virtual Machine Concept

    4.1.1.1 System virtual machines

    4.1.1.2 Process virtual machines

    4.1.2 Techniques

    4.1.2.1 Emulation of the underlying raw hardware

    4.1.2.2 Emulation of a non-native system

    4.2 Hypervisor

    4.2.1 Type 1 Hypervisor

    4.2.2 Type 2 Hypervisors

    4.2.3 Are Type-1 Hypervisors better in performance than Type-2

    5.0 Advantages and Limitations

    5.0.1 Advantages

    5.0.2 Limitations

    6.0 Applications of Virtualization

    7.0 Future Scope

    8.0 Conclusion

    References

  • 7/27/2019 Final Report On virtualization

    5/27

    `

    2

    List of Figures

    Figure No. Figure Name Page No.

    1. Virtual Machine

    2. Virtual Infrastructure

    3. Connectix Virtual PC version 3 in Mac OS 9,

    Running a windows 95

    4. VMware Workstation running Ubuntu, on Windows

    Vista

    5. Type 1 Hypervisor

    6. Type 2 Hypervisor

  • 7/27/2019 Final Report On virtualization

    6/27

    `

    2

    1.0 Introduction

    Virtualization is a proven software technology that is rapidly transforming the IT

    landscape and fundamentally changing the way that people compute. Todays powerful

    x86 computer hardware was designed to run a single operating system and a single

    application. This leaves most machines vastly underutilized. Virtualization lets you run

    multiple virtual machines on a single physical machine, sharing the resources of that

    single computer across multiple environments. Different virtual machines can run

    different operating systems and multiple applications on the same physical computer.

    Virtualization is a framework or methodology of dividing the resources of a

    computer into multiple execution environments, by applying one or more concepts or

    technologies such as hardware and software partitioning, time-sharing, partial or complete

    machine simulation, emulation, quality of service, and many others.

    Virtualization is technology for supporting execution of computer program code,

    from applications to entire operating systems, in a software-controlled environment. Such

    a Virtual Machine (VM) environment abstracts available system resources (memory,

    storage, CPU core(s), I/O, etc.) and presents them in a regular fashion, such that guest

    software cannot distinguish VM-based execution from running on bare physical

    hardware.

    Fig (1): Virtual Machine

  • 7/27/2019 Final Report On virtualization

    7/27

    `

    2

    2.0 Background Knowledge

    Virtualization is a proven concept that was first developed in the 1960s by IBM as a

    way to logically partition large, mainframe hardware into separate virtual machines.

    These partitions allowed mainframes to "multitask"; run multiple applications and

    processes at the same time.

    Virtualization was effectively abandoned during the 1980s and 1990s when client-

    server applications and inexpensive x86 servers and desktops established the model of

    distributed computing. The growth in x86 server and desktop deployments has introduced

    new IT infrastructure and operational challenges

    2.0.1 Challenges

    Low Infrastructure Utilization - Typical x86 server deployments achieve an averageutilization of only 10% to 15% of total capacity. Organizations typically run one

    application per server to avoid the risk of vulnerabilities in one application affecting the

    availability of another application on the same server.

    Increasing Physical Infrastructure Costs - The operational costs to support growingphysical infrastructure have steadily increased. Most computing infrastructure must

    remain operational at all times, resulting in power consumption, cooling and facilities

    costs that do not vary with utilization levels.

    Increasing IT Management Costs - As computing environments become more complex,the level of specialized education and experience required for infrastructure management

    personnel and the associated costs of such personnel have increased. Organizations spend

    disproportionate time and resources on manual tasks associated with server maintenance,

    and thus require more personnel to complete these tasks.

    Insufficient Failover and Disaster Protection - Organizations are increasingly affected

    by the downtime of critical server applications and inaccessibility of critical end user

  • 7/27/2019 Final Report On virtualization

    8/27

    `

    2

    desktops. The threat of security attacks, natural disasters, health pandemics and terrorism

    has elevated the importance of business continuity planning for both desktops and

    servers.

    High Maintenance end-user desktops - Managing and securing enterprise desktops

    present numerous challenges. Controlling a distributed desktop environment and

    enforcing management, access and security policies without impairing users' ability to

    work effectively is complex and expensive.

    2.0.2 Present Day Scenario

    Today, computers based on x86 architecture are faced with the same problems of

    rigidity and underutilization that mainframes faced in the 1960s.

    Today's powerful x86 computer hardware was originally designed to run only a

    single operating system and a single application, but virtualization breaks that bond,

    making it possible to run multiple operating systems and multiple applications on the

    same computer at the same time, increasing the utilization and flexibility of hardware.

  • 7/27/2019 Final Report On virtualization

    9/27

    `

    2

    3.0 Everything To Know About Virtualization

    3.1 What is Virtualization?

    Virtualization is the process of mapping the resources and interfaces of a virtual

    resource into the resources and interfaces of a host machine.

    Issues in virtualization Complexity Correctnessincludes reliability, security

    Performance (overhead of the mapping)

    Virtualization commonly refers to native virtualization, where the VM platform and the

    guest software target the same microprocessor instruction set and comparable system

    architectures. Virtualization can also involve execution of guest software cross-compiled

    for a different instruction set or CPU architecture; such emulation or simulation

    environments help developers bring up new processors and cross-debug embedded

    hardware.

    A virtual machine provides a software environment that allows software to run on

    bare hardware. This environment is created by a virtual-machine monitor, also known as

    a hypervisor. A virtual machine is an efficient, isolated duplicate of the real machine. The

    hypervisor presents an interface that looks like hardware to the guest operating system.

    It allows multiple operating system instances to run concurrently on a single computer; it

    is a means of separating hardware from a single operating system. it can control the

    guests use of CPU, memory, and storage, even allowing a guest OS to migrate from one

    machine to another.

    It is also a method of partitioning one physical server computer into multiple

    virtual servers, giving each the appearance and capabilities of running on its own

  • 7/27/2019 Final Report On virtualization

    10/27

    `

    2

    dedicated machine. Each virtual server functions as a full-fledged server and can be

    independently rebooted.

    3.2 How Does Virtualization Work?

    Virtualization platform transform or virtualize the hardware resources of an

    x86-based computerincluding the CPU, RAM, hard disk and network controllerto

    create a fully functional virtual machine that can run its own operating system and

    applications just like a real computer. Each virtual machine contains a complete system,

    eliminating potential conflicts. Virtualization works by inserting a thin layer of software

    directly on the computer hardware or on a host operating system. This contains a virtual

    machine monitor or hypervisor that allocates hardware resources dynamically and

    transparently. Multiple operating systems run concurrently on a single physical computer

    and share hardware resources with each other. By encapsulating an entire machine,

    including CPU, memory, operating system, and network devices, a virtual machine is

    completely compatible with all standard x86 operating systems, applications, and device

    drivers. You can safely run several operating systems and applications at the same time

    on a single computer, with each having access to the resources it needs when it needs

    them.

    3.3 Virtual Infrastructure

    A virtual infrastructure lets you share your physical resources of multiple

    machines across your entire infrastructure. A virtual machine lets you share the resources

    of a single physical computer across multiple virtual machines for maximum efficiency.

    Resources are shared across multiple virtual machines and applications. This resource

    optimization drives greater flexibility in the organization and results in lower capital and

    operational costs.

  • 7/27/2019 Final Report On virtualization

    11/27

    `

    2

    Fig(2): Virtual Infrastructure

    A virtual infrastructure consists of the following components:

    Bare-metal hypervisors to enable full virtualization of each x86 computer. Virtual infrastructure services such as resource management and consolidated

    backup to optimize available resources among virtual machines

    3.3.1 Virtual Infrastructure Benefits

    Delivering builtin availability, security and scalability to applications. It supports a

    wide range of operating system and application environments, as well as networking and

    storage infrastructure.

    3.4 Why Virtualization: A List of Reasons

    Following are some reasons for and benefits of virtualization:

    Virtual machines can be used to consolidate the workloads of several under-utilized servers to fewer machines, perhaps a single machine (server

  • 7/27/2019 Final Report On virtualization

    12/27

    `

    2

    consolidation). Related benefits are savings on hardware, environmental costs,

    management, and administration of the server infrastructure.

    The need to run legacy applications is served well by virtual machines. A legacyapplication might simply not run on newer hardware and/or operating systems.

    Even if it does, if may under-utilize the server,

    Virtual machines can be used to provide secure, isolated sandboxes for runninguntrusted applications. You could even create such an execution environment

    dynamically - on the fly - as you download something from the Internet and run it.

    Virtual machines can be used to create operating systems, or executionenvironments with resource limits, and given the right schedulers, resource

    guarantees.

    Virtual machines can provide the illusion of hardware, or hardware configurationthat you do not have (such as SCSI devices, multiple processors,) Virtualization

    can also be used to simulate networks of independent computers.

    Virtual machines can be used to run multiple operating systems simultaneously:different versions, or even entirely different systems, which can be on hot standby.

    Some such systems may be hard or impossible to run on newer real hardware.

    Virtual machines allow for powerful debugging and performance monitoring. Virtual machines can isolate what they run, so they provide fault and error

    containment. You can inject faults proactively into software to study its

    subsequent behavior.

    Virtual machines are great tools for research and academic experiments. Sincethey provide isolation, they are safer to work with. They encapsulate the entire

    state of a running system: you can save the state, examine it, modify it, reload it,

    and so on. The state also provides an abstraction of the workload being run.

    Virtualization can enable existing operating systems to run on shared memorymultiprocessors.

    Driving out the cost of IT infrastructure through more efficient use of available

    resources

    Simplifying the infrastructure.

    Increasing system availability

  • 7/27/2019 Final Report On virtualization

    13/27

    `

    2

    4.0 Classification of Virtualization

    Here we discuss about different types of virtualization

    1. Platform virtualization, which separates an operating system from theunderlying platform resources

    o Full virtualizationo Hardware-assisted virtualizationo Partial virtualizationo Para virtualizationo Operating system-level virtualizationo Hosted environment

    2. Resource virtualization, the virtualization of specific system resources, such asstorage volumes, name spaces, and network resources

    2.1 Storage virtualization, the process of completely abstracting logical storagefrom physical storage

    2.1.1 RAID - redundant array of independent disks2.1.2 Disk partitioning

    2.2 Network virtualization, creation of a virtualized network addressing spacewithin or across network subnets

    3. Computer clusters and grid computing, the combination of multiple discretecomputers into larger meta computers

    4. Application virtualization, the hosting of individual applications on alienhardware/software

    4.1 Portable application4.2 Cross-platform virtualization4.3 Emulation or simulation

    5. Desktop virtualization, the remote manipulation of a computer desktop

    Centralizing systems, data, and infrastructure

    http://en.wikipedia.org/wiki/Paravirtualizationhttp://en.wikipedia.org/w/index.php?title=Resource_virtualization&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Resource_virtualization&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Resource_virtualization&action=edit&redlink=1http://en.wikipedia.org/wiki/Paravirtualization
  • 7/27/2019 Final Report On virtualization

    14/27

    `

    2

    4.1 Virtual machine

    4.1.1 Virtual Machine Concept

    Virtual machine (VM) is a software implementation of a machine (computer) that

    executes programs like a real machine.

    Fig(3)Connectix Virtual PC version 3 in Mac OS 9, running a Windows 95

    A virtual machine was originally defined by Popek and Goldberg as "an efficient,

    isolated duplicate of a real machine".

    Virtual machines are separated into two major categories, based on their use and

    degree of correspondence to any real machine. A system virtual machine provides a

    complete system platform which supports the execution of a complete operating system

    (OS). Process virtual machine is designed to run a single program, which means that it

    supports a single process. An essential characteristic of a virtual machine is that the

    software running inside is limited to the resources and abstractions provided by the virtual

    machine -- it cannot break out of its virtual world.

  • 7/27/2019 Final Report On virtualization

    15/27

    `

    2

    4.1.1.1 System virtual machines

    System virtual machines (sometimes called hardware virtual machines) allow

    the sharing of the underlying physical machine resources between different virtual

    machines, each running its own operating system. The software layer providing the

    virtualization is called a virtual machine monitor or hypervisor. A hypervisor can run on

    bare hardware (Type 1 or native VM) or on top of an operating system (Type 2 or

    hosted VM).

    The main advantages of system VMs are:

    multiple OS environments can co-exist on the same computer, in strong isolationfrom each other

    the virtual machine can provide an instruction set architecture (ISA) that issomewhat different from that of the real machine

    The guest OSs do not have to be all the same, making it possible to run different

    OSs on the same computer (e.g., Microsoft Windows and Linux, or older versions of an

    OS in order to support software that has not yet been ported to the latest version).

    4.1.1.2 Process virtual machines

    A process VM, sometimes called an application virtual machine, runs as a

    normal application inside an OS and supports a single process. It is created when that

    process is started and destroyed when it exits. Its purpose is to provide a platform-

    independent programming environment that abstracts away details of the underlying

    hardware or operating system, and allows a program to execute in the same way on any

    platform.

    A process VM provides a high-level abstraction that of a high-level

    programming language (compared to the low-level ISA abstraction of the system VM).

    Process VMs are implemented using an interpreter; performance comparable to compiled

    programming languages is achieved by the use of just-in-time compilation.

    This type of VM has become popular with the Java (JVM). And .NET Framework,

    which runs on a VM called the Common Language Runtime.

  • 7/27/2019 Final Report On virtualization

    16/27

    `

    2

    4.1.2 Techniques

    4.1.2.1 Emulation of the underlying raw hardware (native execution)

    Fig (4): VMware Workstation running Ubuntu, on Windows Vista

    This approach is described as full virtualization of the hardware, and can be

    implemented using a Type 1 or Type 2 hypervisor. Each virtual machine can run any

    operating system supported by the underlying hardware. Users can thus run two or more

    different "guest" operating systems simultaneously, in separate "private" virtual

    computers.

    Full virtualization is particularly helpful in operating system development, when

    experimental new code can be run at the same time as older, more stable, versions, each

    in a separate virtual machine.

    4.1.2.2 Emulation of a non-native system

    Virtual machines can also perform the role of an emulator, allowing software

    applications and operating systems written for another computer processor architecture to

    be run.

    Some virtual machines emulate hardware that only exists as a detailed specification.

    For example:

    The specification of the Java virtual machine. The Common Language Infrastructure virtual machine at the heart of the

    Microsoft .NET initiative.

    http://en.wikipedia.org/wiki/File:VMware_Workstation.png
  • 7/27/2019 Final Report On virtualization

    17/27

    `

    2

    Open Firmware allows plug-in hardware to include boot-time diagnostics,configuration code, and device drivers that will run on any kind of CPU.

    This technique allows diverse computers to run any software written to that

    specification; only the virtual machine software itself must be written separately for each

    type of computer on which it runs.

  • 7/27/2019 Final Report On virtualization

    18/27

    `

    2

    4.2 Hypervisor

    A hypervisor, also called virtual machine monitor(VMM), is computer hardware

    platform virtualization software that allows multiple operating systems to run on a host

    computer concurrently.

    Classifications

    Hypervisors are classified in two types:

    Type 1 (ornative, bare-metal) hypervisors are software systems that run directlyon the host's hardware as a hardware control and guest operating system monitor.

    A guest operating system thus runs on another level above the hypervisor.

    Type 2 (or hosted) hypervisors are software applications running within aconventional operating system environment. Considering the hypervisor layer

    being a distinct software layer, guest operating systems thus run at the third level

    above the hardware.

    4.2.1 Type 1 Hypervisor

    Runs on bare metal Virtual machines run in user mode

    VM runs the guest OS (which thinks it is running in kernel mode)

    Virtual kernel Mode

    If guest OS calls sensitive instructions, hypervisor will trap and executed

    the instructions.

    If application on guest OS calls sensitive instructions (system calls),

    hypervisor traps to guest OS.

  • 7/27/2019 Final Report On virtualization

    19/27

    `

    2

    fig (5) Type 1 Hypervisor

    4.2.2 Type 2 Hypervisors

    Runs from within a OS.

    Supports guest OSs above it.

    Boot from CD to load new OS

    Read in code, looking for basic blocks

    Then inspect basic block to find sensitive instructions. If found, replace with VM call

    (process called binary translation)

    Then, cache block and execute.

    Eventually all basic blocks will be modified and cached, and will run at near native speed.

  • 7/27/2019 Final Report On virtualization

    20/27

    `

    2

    fig(6) Type 2 Hypervisor

    4.2.3 Are Type-1 Hypervisors better in performance than Type-2

    Hypervisors and Why?

    Yes, the Type-1 Hypervisors are better in performance as compared to Type-2

    hypervisors because Type-1 hypervisors does n through a host OS, they utilize all

    resources directly from Host hardware .In cloud implementation Type-1 hypervisors are

    use than Type-2 because Cloud servers need to run multiple OS images and it should be

    noted that if OS images are run on host case of Type-2, the resources will get wasted

  • 7/27/2019 Final Report On virtualization

    21/27

    `

    2

    5.0 Advantages and Limitations

    5.0.1 Advantages

    Server Consolidation

    It is not unusual to achieve 10:1 virtual to physical machine consolidation. This means

    that ten server applications can be run on a single machine that had required as many

    physical computers to provide the unique operating system and technical specification

    environments in order to operate. Server utilization is optimized and legacy software can

    maintain old OS configurations while new applications are running in VMs with updated

    platforms.

    Although a server supporting many VMs will probably have more memory, CPUs, and

    other hardware it will use little or no more power and occupy the same physical space

    reducing utilities costs and real estate expenditures.

    Testing and development

    Use of a VM enables rapid deployment by isolating the application in a known andcontrolled environment. Unknown factors such as mixed libraries caused by numerous

    installs can be eliminated. Severe crashes that required hours of reinstallation now take

    moments by simply copying a virtual image.

    Dynamic Load Balancing and Disaster Recovery

    As server workloads vary, virtualization provides the ability for virtual machines that are

    over utilizing the resources of a server to be moved to underutilized servers. This

    dynamic load balancing creates efficient utilization of server resources.

    Disaster recovery is a critical component for IT, as system crashes can create huge

    economic losses. Virtualization technology enables a virtual image on a machine to be

    instantly re-imaged on another server if a machine failure occurs.

  • 7/27/2019 Final Report On virtualization

    22/27

    `

    2

    Virtual Desktops

    Multinational flexibility provides seamless transitions between different operating

    systems on a single machine reducing desktop footprint and hardware expenditure.

    Improved System Reliability and Security

    Virtualization of systems helps prevent system crashes due to memory corruption caused

    by software like device drivers. VT-d for Directed I/O Architecture provides methods to

    better control system devices by defining the architecture for DMA and interrupt

    remapping to ensure improved isolation of I/O resources for greater reliability, security,

    and availability.

  • 7/27/2019 Final Report On virtualization

    23/27

    `

    2

  • 7/27/2019 Final Report On virtualization

    24/27

    `

    2

    6.0 Applications of Virtualization

    Serverconsolidation

    Legacy Applications within legacy OSes

    Secure isolated sandboxes for running untrusted applications

    Application mobility

    Testing and debugging environments

    Clean (single) service design

    Freedom of choice in using multiple os at once

    Soft user migration path

  • 7/27/2019 Final Report On virtualization

    25/27

    `

    2

    7.0 Future Scope

    Virtualization Monitor will become part of a standard "boot loader"

    in scope: Linux/*BSD & Reactors will be the "Any OS" with best possible hardware

    support

    Whenever needed: Virtualization will become a key technologies in privacy

    enforcement

    No more hassels with Copyright Enforcement Technologies

  • 7/27/2019 Final Report On virtualization

    26/27

    `

    2

    8.0 Conclusion

    Virtualization dramatically improves the efficiency and availability of resources

    and applications. Earlier Internal resources are underutilized under the old one server,

    one application model and users spend too much time managing servers rather

    innovating. By virtualization platform, users can respond faster and more efficiently than

    ever before. Users can save 50-70% on overall IT costs by consolidating their resource

    pools and delivering highly available machines.

    Other major improvements by using virtualization are that they can:

    Reduce capital costs by requiring less hardware and lowering operational costswhile increasing your server to admin ratio

    Ensure enterprise applications perform with the highest availability andperformance

    Build up business continuity through improved disaster recovery solutions anddeliver high availability throughout the datacenter

    Improve desktop management with faster deployment of desktops and fewersupport calls due to application conflicts.

    Even after the implementations of distributed computing and other technologies,

    virtualization proved to be an effective in using the available resources of a system fully

    in an efficient way.

  • 7/27/2019 Final Report On virtualization

    27/27

    `

    References

    [1].2nd Symposium on Networked Systems Design and Implementation,

    May24, 2005, Boston, MA, USA Last changed: 2 May 2005Christopher Clark, Keir Fraser, Steven Hand,JacobGormHansenf,Eric Julf

    , Christian Limpach, Ian Pratt, Andrew Warfield University of

    Cambridge Computer Laboratory

    ,Department ofComputer

    Science

    [2]. Sundaram, V. Wood, T.; Shenoy, P., "Efficient Data Migration in Self-managing

    Storage Systems," Autonomic Computing, 2006. ICAC '06. IEEE International

    Conference on , vol., no.,

    pp.297,300, 13-16 June 2006

    doi: 10.1109/ICAC.2006.1662410036

    [3]. Tin-Yu Wu; Wei-Tsong Lee; Jhih-Siang Huang; Chien-Yu Duan; Tain-Wen Suen,

    "An enhanced approach for estimating writable working set by pre-copy and prediction,"

    Information Networking (ICOIN), 2013 International Conference on , vol., no.,

    pp.227,231, 28-30 Jan. 2013

    doi: 10.1109/ICOIN.2013.6496381

    [4]. Fei Ma; Feng Liu; Zhen Liu, "Live virtual machine migration based on improved pre-

    copy approach," Software Engineering and Service Sciences (ICSESS), 2010 IEEE

    International Conference on , vol., no., pp.230,233, 16-18 July 2010

    doi: 10.1109/ICSESS.2010.5552416

    1.