Construction of an Open Geometry Server for Client-Server Virtual Environments Chris Faisstnauer, Werner Purgathofer Vienna University of Technology Jean-Dominique.

Slides:



Advertisements
Similar presentations
Tuning: overview Rewrite SQL (Leccotech)Leccotech Create Index Redefine Main memory structures (SGA in Oracle) Change the Block Size Materialized Views,
Advertisements

Data Modeling and Database Design Chapter 1: Database Systems: Architecture and Components.
Chapter 3 Simulation Software
Priority Round-Robin Scheduling for Very Large Virtual Environments Chris Faisstnauer, Dieter Schmalstieg, Werner Purgathofer Vienna University of Technology.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Lecture 23: Software Architectures
CS 550 Amoeba-A Distributed Operation System by Saie M Mulay.
Application architectures
Computer Animation 99Geneva, Universities of Vienna, Bath, Glasgow EPFL (Lausane), iMAGIS (Grenoble), MIRAlab F. Faure, C. Faisstnauer, G.
WSN Simulation Template for OMNeT++
Scheduling for Very Large Virtual Environments Using Visibility and Priorities Chris Faisstnauer, Dieter Schmalstieg, Werner Purgathofer Vienna University.
Chapter 19 Binding Protocol Addresses (ARP) Chapter 20 IP Datagrams and Datagram Forwarding.
Chapter 1 An Overview of Database Management. 1-2 Topics in this Chapter What is a Database System? What is a Database? Why Database? Data Independence.
ObjectStore Martin Wasiak. ObjectStore Overview Object-oriented database system Can use normal C++ code to access tuples Easily add persistence to existing.
Internetworking Fundamentals (Lecture #2) Andres Rengifo Copyright 2008.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Data Structures and Programming.  John Edgar2.
Distributed File Systems Concepts & Overview. Goals and Criteria Goal: present to a user a coherent, efficient, and manageable system for long-term data.
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
1 Kyung Hee University Prof. Choong Seon HONG Network Control.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Protocol Architectures. Simple Protocol Architecture Not an actual architecture, but a model for how they work Similar to “pseudocode,” used for teaching.
Chapter 7 Web Content Mining Xxxxxx. Introduction Web-content mining techniques are used to discover useful information from content on the web – textual.
Graphical Objects and Scene Graphs 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009.
BAI513 - PROTOCOLS SNMP BAIST – Network Management.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved. Computer Software Chapter 4.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Lesson Overview 3.1 Components of the DBMS 3.1 Components of the DBMS 3.2 Components of The Database Application 3.2 Components of The Database Application.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
BZUPAGES.COM Presentation on TCP/IP Presented to: Sir Taimoor Presented by: Jamila BB Roll no Nudrat Rehman Roll no
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
STORE AND FORWARD & CUT THROUGH FORWARD Switches can use different forwarding techniques— two of these are store-and-forward switching and cut-through.
Ordered Linked Lists using Abstract Data Types (ADT) in Java Presented by: Andrew Aken.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
RESTful Web Services What is RESTful?
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Conceptualization Relational Model Incomplete Relations Indirect Concept Reflection Entity-Relationship Model Incomplete Relations Two Ways of Concept.
CIS 250 Advanced Computer Applications Database Management Systems.
Object storage and object interoperability
Copyright (c) 2014 Pearson Education, Inc. Introduction to DBMS.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Introduction to Databases Angela Clark University of South Alabama.
CS223: Software Engineering
Parallelizing Functional Tests for Computer Systems Using Distributed Graph Exploration Alexey Demakov, Alexander Kamkin, and Alexander Sortov
Postgraduate Module Enterprise Database Systems Technological Educational Institution of Larisa in collaboration with Staffordshire University Larisa
Network Topologies for Scalable Multi-User Virtual Environments Lingrui Liang.
Databases and DBMSs Todd S. Bacastow January 2005.
A quick intro to networking
File System Implementation
CHAPTER 3 Architectures for Distributed Systems
Data, Databases, and DBMSs
Architecture Competency Group
Database Architecture
Ch 17 - Binding Protocol Addresses
Presentation transcript:

Construction of an Open Geometry Server for Client-Server Virtual Environments Chris Faisstnauer, Werner Purgathofer Vienna University of Technology Jean-Dominique Gascuel Imagis, Grenoble Michael Gervautz Imagination, Vienna

2 / 18 Introduction n Client-server architecture to integrate of incompatible graphics systems/applications n Detailed explaination of construction process l Put together system based on known techniques n Case study - Provide help in construction of such systems l Categorization of clearly distinct default components l Provide insights about design decisions l Good relation between cost/performance concerning development and implementation) n "Implementation" talk/paper

3 / 18 The PAVR-project n European union project: 10 universities n Ease collaboration and exchange of know-how concerning virtual reality / animation n (Software-) “Platform for Animation and Virtual Reality” n Problem: l Incompatible systems (software/hardware) l Stand-alone applications n Goal: l Link (existing) applications into common environment l Little effort, minor code changes

4 / 18 Approach n Existing systems l RING, NPSNET, DIVE, SPLINE, SPLINE, NETEFFECT, PARADISE, AVIARY,... n Client-server system l Common communication protocol l Clients replicate environment using own routines / data structures l Integration: translate data structures protocol  client n Components l Simple/generic protocol l Flexible parser (easy integration into clients) l Efficient server (geometric data / transmission service)

5 / 18 Geometry Server Components 1/2 n Communication layer: provide network connections l Easy to integrate, small (Sockets, TCP/IP) n Communication protocol l Transmit geometry objects + commands modify properties l Easy to interpret for server / clients n Lexical parser / pre-determined callback functions l Defined headers, proprietary implementation server/clients l Modify protocol without changes in program code n Scene database: l Hierarchical scene graph (nodes describe objects) l History list (describe graph changes) n Client list:

6 / 18 Geometry Server Components 2/2 n Flow control n Message filtering n Time management: online vs. offline mode

7 / 18 Online Vs. Offline Mode n Online mode: l "Real-Time" mode (typical for VR-applications) l Time continuously progressing (controlled by server) l Scene modification processed / distributed immediately l Animation / scene viewing happen at same time l No history of scene changes required n Offline mode: l No progressing/actual time l Query/modify scene graph at any specific point on time-line l Animation / scene viewing happen at different times l Must store whole history of scene graph changes l E.g. collaborative construction keyframing animation / CAD

8 / 18 Communication protocol n Receive / transmit messages: common protocol n Environment described using nodes  node tree (graph) l Describe concrete / abstract objects l Node type/name, field type/name/value n Geometry of objects: subset of VRML (descriptive language) n Commands to modify scene graph l UPDATE: modify node field ('value' VS. 'pointer') l ADD / REMOVE: add node/tree to 'grouping' node l SETTIME: specify time of modification (offline mode) l GETTIME: specify time of query (offline mode) l SET: setting flags

9 / 18 Data Structures – Scene Nodes n Scene graph implemented as node tree n Create/insert nodes: l ADD, UPDATE l Node description l Check node table n Remove/delete nodes: l REMOVE l 'Empty' UPDATE n Online mode: actual state  creation time = actual time n Offline mode: no actual state  creation time = SETTIME l No nodes deleted: assign 'lifespan'

10 / 18 Data Structures – History List n Each element corresponds to ADD / REMOVE / UPDATE n Modification of a determined node field n Creating: referencing / creating n Removing: referencing/ destroying n Modify pointer -> reference counter n Timestamp=actual time (online) / SETTIME (offline) n Traversed to generate update messages for clients

11 / 18 Integration Parser n Data structures client communication protocol n Translate incoming commands  trigger callback-functions n Parser platform independent  fixed set of callback headers l Make: Create node of given type/name Called by 'creating' add/update Called by 'creating' add/update l Add: Append child-node to parent-node l Remove: Remove child-node from scene graph l Update: Change determined node field to specific value Field types: pointer, boolean, float, string n Callbacks generate element in history list l Timestamp: actual time (online) / SETTIME (offline) l History list sorted by timestamp

12 / 18 Server Main Loop - Online n On message receipt: collect/send outstanding messages l New client: u Transmit scene graph u Generate entry in client-list l Existing client: u Generate updates since last trigger u Traverse history-list (from last transmitted message) n Parse message (ADD/REMOVE/UPDATE) u Modify scene graph u Generate history element n Delete history-elements sent to all clients n Remove nodes from scene graph ('destroying remove')

13 / 18 Server Main Loop - Offline n n Parse incoming message l l GETTIME time: u u Update scene graph of client (as specified by last query) u u Match state of common scene graph at time u u Traverse scene graph/collect messages: u u Timestamp  [last query,time] u u From last sent message: direction specified by time l l SETTIME time: u u Use as timestamp for future ADD/REMOVE/UPDATE l l ADD/REMOVE/UPDATE: u u Generate history element u u (Scene graph reflects state specified by SETTIME) n n Store whole history - memory bottleneck

14 / 18 Examples - Online 1/3 n Integration heterogeneous applications l Facial models (Photogrammetry) l Human model (Keyframe animation) l Human model (SoftImage) l Cartoon model (CreaToon) l Animated facial model l Body reconstruction l Boundary recovery algorithm (visualize evolution of potentials) l Animated robot (Inventor) n Time needed to integrate into environment:  1 evening !

15 / 18 Examples - Online 2/3 n Optimization techniques: l Remove redundant updates from history-list l Visibility culling (PVS: potentially visible set) n 100 objects l Movement along randomized paths l Translated 5 times per second l Duration 100 seconds l history elements generated n Client requests updates 2 / 3 times per second l / history elements redundant

16 / 18 Examples - Online 3/3 Without redundant messages With redundant messages Without visibility culling / / With visibility culling / / 8.078

17 / 18 Examples - Offline

18 / 18 Conclusion n Construction simple / generic geometry server n "User's manual": implementation aid n Reflecting design decisions n Categorizing default components n Future work: l Include Levels of Detail (LOD) l Prioritized management of update messages l Evaluation of perceptual error metrics n Sponsor: TMR Network of European Community