<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Actually, I'd like to get through this today, to see what comments
people have and decide whether it's going in or not.&nbsp; Can we meet in
the lib at 4?<br>
<br>
Tom<br>
<br>
Thomas D. Uram wrote:<br>
<blockquote type="cite" cite="mid404F73DB.7020900@mcs.anl.gov"><br>
Here are details of how we might facilitate the use of service
certificates to run venue servers and such.&nbsp; I'd like to talk through
this Thursday morning, to get agreement and measure the effort
required.&nbsp; Please have a look before then.
  <br>
  <br>
Tom
  <br>
  <br>
  <pre wrap="">
<hr size="4" width="90%">
=====================================
Display Node Service
=====================================
 
:version: $Revision: 1.1 $
:author: Ivan R. Judson <a class="moz-txt-link-rfc2396E" href="mailto:judson@mcs.anl.gov">&lt;judson@mcs.anl.gov&gt;</a>
:status: Draft
:contact: <a class="moz-txt-link-abbreviated" href="mailto:ag-tech@mcs.anl.gov">ag-tech@mcs.anl.gov</a>

Abstract
========

This proposal describes the design of a minimal display service for
window and linux that will provide a developmental basis for exploring
layout work. This is partially to enable internal research on layout,
but also to allow the exploration of how to use nodes without
necessarily having to log into them. This also provides a set of
initial requirements and an interface for exotic displays to conform
to, in order to be trivially represented by the existing service.

Overview
========

This AGEP describes the data structures and interfaces required to
build a simple display service. This display service can be used on
the existing AG reference platforms and can be extended to support
tiled displays. This is a basis to build display related AG research
both on tiled displays and on automatic layout and intelligent
windowing.

Summary of Modifications
========================

All modifications take the form of new code. This is contained in a
new node service, the DisplayService.

Module Organization
-------------------

DisplayService.py
   
Deprecated Packages
-------------------

None

Specifications
==============

DisplayTypes.py

  class WindowSpec

    id : unique id

    sizeX : integer

    sizeY : integer

    locationX : integer

    locationY : integer

    def GetId(self): =&gt; id

    def GetSize(self) =&gt; (sizeX, sizeY)
    
    def GetSizeX(self): =&gt; sizeX 
    
    def GetSizeY(self): =&gt; sizeY

    def GetLocation(self): =&gt; (locationX, locationY)
    
    def GetLocationX(self): =&gt; locationX 
    
    def GetLocationY(self): =&gt; locationY

  class Region
    id  : unique id

    x1 : integer

    y1 : integer

    x2 : integer

    y2 : integer

    def __init__(self, x1, y1, x2, y2, id = None):
    
    def GetBoundingBox(self): =&gt; (x1, y1, x2, y2)
    
    def GetId(self): =&gt; id
    
  class Layout

    regionList : List of Regions

    wspecList : List of WindowSpecs

    regionMap : list of tuples (Region, WindowSpec)

    def GetRegions(self): =&gt; regionList

    def AddRegion(self, region):

    def RemoveRegion(self, region):

    def GetWindows(self): =&gt; wspecList
    
    def AddWindow(self, wspec):
    
    def RemoveWindow(self, wspec):

    def GetLayout(self) =&gt; regionMap

    def SetLayout(self, regionMap):
    
DisplayService.py

  class DisplayService

    id : string

    location : string [protocol://&lt;host&gt;:&lt;port&gt;/]  

      - examples: 

        - x://host:0

        - windows://host

        - vnc://host:port/

        - rdp://host:port/)

    displayWidth : integer

    displayHeight : integer

    displayDepth : integer

    windowList : list of window Id's

    regionList : list of empty regions

    def GetLocation(self):

    def GetWindows(self):

    def GetRegions(self):

    def GetLocation(self):

    def GetId(self):

    def GetWidth(self):

    def GetHeight(self):

    def GetDepth(self):

  class DisplayServiceI:
        
    def GetLocation(self)

    def GetWindows(self):

    def GetRegions(self):

    def GetLocation(self):

    def GetId(self):

    def GetWidth(self):

    def GetHeight(self):

    def GetDepth(self):

Security Issues
===============

There are no security issues associated with this particular node
service, it falls under the node management security domain.

Interoperability Issues
=======================

There are no interoperability issues with this node service, it is new.

Packaging Dependancies
======================

This package depends upon certain external packages to function. On
windows the win32 extensions by Mark Hammond provide most of the
functionality required (enough for now). On linux, using X a separate
module must be used. The Xlib module, from sourceforge is GPL. We'll
have to consider whether that's a problem or not.

Related AGEPs
=============

- AGEP 120: Shared App/Node Service Packaging

Implementation
==============

To be completed.

References
==========

None

Copyright
=========

This document is Copyright 2003, The University of Chicago/Argonne
National Laboratory.



..
   Local Variables:
   mode: indented-text
   indent-tabs-mode: nil
   sentence-end-double-space: t
   fill-column: 70
   End:

  </pre>
</blockquote>
</body>
</html>