Palantir - PowerPoint PPT Presentation

1 / 7
About This Presentation
Title:

Palantir

Description:

Palantir is a window sharing system. ... Sharing of browser windows, images, and documents over the network. ... Communication with shared images between ... – PowerPoint PPT presentation

Number of Views:1185
Avg rating:3.0/5.0
Slides: 8
Provided by: livs
Category:
Tags: palantir

less

Transcript and Presenter's Notes

Title: Palantir


1
Palantir
  • http//www.csuglab.cornell.edu/Info/People/livshit
    s/Palantir.html
  • A window-sharing system for Windows NT
  • Max Feingold, Vladimir Livshits, and Yevgeniy
    Rozenfeld

2
General Description
  • Palantir is a window sharing system. It allows
    one to view windows opened on a different machine
    on the network.
  • We implemented the system as a client/server
    application, in which both the client and the
    server are implemented in the same Windows
    executable. Upon startup, the program places
    itself into the system tray and provides a
    convenient MFC interface for opening client
    connections, sharing server windows, changing
    communication and program settings, etc.

3
Client-Server Organization
  • When you run Palantir, it is automatically
    configured to run as both a client and a server.
  • All program functionality is accessible from an
    icon that sits in your Windows system tray.
  • When you use Palantir as a client, you can
    connect to a server by providing its ip-address.
    The program will query and display the list of
    available widows on that server for you.
  • You can select certain application windows
    running on your computer to be shared out
  • There is server authentication -- you need to
    supply a valid user name and password for when
    you are trying to connect.

4
Technology
  • We are using win32 API bitmap functions to grab
    client area of application windows.
  • Bitmaps are created on the server. Since it may
    take a considerable amount of memory and CPU time
    to grab a window bitmap, server is put to sleep
    between subsequent updates. The update frequency
    (refresh late on the picture below) can be
    configured along with many other parameters.
  • Bitmaps sent over the network to the the
    client(s) through Windows sockets.

5
Bitmap Processing
  • Clearly, it can take a lot of network bandwidth
    to transfer big bitmaps to multiple clients. The
    screenshot saved as a bitmap can take as much as
    1.5Mb with 1024x768 screen resolution. To
    minimize the network load we use the following
    techniques
  • Image sampling
  • The basic idea is that we dont need to send the
    whole bitmaps -- it is sufficient to only send
    the differences.
  • The server maintains the previous bitmap it sent
    to the client in a cache and determines the
    smallest rectangle containing the difference
    difference between the current bitmap and the
    previous one.
  • To find this rectangle, we pass over the image
    twice finding the leftmost and rightmost column
    and topmost and bottommost row containing
    changes.
  • One of the drawbacks of this approach is that in
    the worst case (i.e., when the two bitmaps we are
    comparing are absolutely identical) we need to
    pass over the image twice, which can be quite
    CPU-intensive for large images.
  • To alleviate this problem, we can set up the
    server to look only on each n-th point.
    Effectively, we set up a grid of points we will
    look at. This can considerably reduce the CPU
    load, but this can also affect precision with
    which bitmaps are updated.

6
  • We discovered that approach with a grip can
    significantly reduce CPU utilization at the same
    time yielding reasonably precise results with
    many applications.
  • However, for applications that require high
    precision (for instance, if you are typing in
    notepad and only every other letter you type gets
    updated on the client) we may end up with a
    pretty distorted image, so we send full window
    updates every so often (the frequency of these
    updates can be configured).
  • Another technique we use to reduce network
    utilization is run length compression
  • It turns out that typical images we need to
    process have lots of horizontal and vertical
    lines of the same color. Clearly, this is an
    opportunity for run length compression.
  • It practice, run length compression performs
    quite well. The compression ratio depends on the
    type of data being transferring for example, a
    2.8MB bitmap of an Explorer window was compressed
    to only 800KB of data (72 compression), while
    much smaller gains were achieved with colorful
    images such as digitized paintings.
  • To reduce the CPU overhead of this compression
    technique, it was build directly into the socket
    class. All data that is sent through the socket
    is compressed on the fly.
  • Generally, you would want to use some combination
    of these two compression techniques to achieve
    the best CPU/network utilization tradeoffs for
    your situation.
  • The program allows you to set various compression
    parameters on a window-per-window basis.

7
Possible Applications
  • Sharing of browser windows, images, and documents
    over the network.
  • Monitoring student activities.
  • Lab administrators monitoring desktop windows on
    many computers from a single workstation.
  • Corporations monitoring their employees desktop
    activities.
  • Professors demonstrating the use of a particular
    program to students across the network.
  • Communication with shared images between graphics
    designers.
  • Graphics-based talk applications -- two notepad
    windows open side-by-side.
  • Gaining access to resources available on one
    machine, such as a camera installed on a remote
    computer. In one of our experiments, we ran a
    Palantir server on a machine equipped with a
    camera and viewed the output on a computer in a
    different lab.
Write a Comment
User Comments (0)
About PowerShow.com