Listening Thread - Networked Software Systems Laboratory

Download Report

Transcript Listening Thread - Networked Software Systems Laboratory

Electrical Engineering Software Lab - Technion
3D Object Retrieval
Client-Server Project
Spring semester 2001/02
Developers:
Iddo Simhon
Omer Boker
Supervisor:
George Leifman
3D Object Retrieval Project – Spring semester 2001/02
Project Overview
Project Definition





3D objects retrieval by several algorithms.
The design enables addition of more algorithms in the
future, open data-base.
The project is built as client-server system, each
operates as a separate application.
The client is a Java application, based on Java 3D
technology.
The server is a multi-threaded C++ application, and
includes the 3D algorithms.
Project Features

Comparing a 3D object versus a bank of objects, and
returning the 50 most similar objects, by a selected
object comparison algorithm.
 Fetching icons from the server by the above compare or
by name/first letters or just the first 50 objects for a start.
 Presentation of selected 3D objects using Java 3D.
 Upload additional objects files to the server.
 Download selected objects from the server.
 Distributed system that enables many clients to work
with the server.
 Enabling the client to run on any platform, requiring
minimum resources.
Project Educational Benefits

Java and C++ programming languages.
 Object-Oriented design and programming.
 Swing programming for Graphical User Interface.
 Java 3D technology.
 TCP/IP programming – Java Networking, Windows
Sockets and the integration between them.
 Windows Programming.
 Application development in multi-threaded environment.
 Experience in large-scaled software system development.
 An idea about 3D Objects comparing algorithms.
3D Object Retrieval Project – Spring semester 2001/02
The Client-Server
and MultiThreading Model
Main Properties





The Client is Java application that includes GUI and 3D
representation component.
The server is C++ multi-threading application that includes
3D algorithms and database of objects and icons files.
The two applications communicate by TCP/IP, using
sockets.
The server includes a ‘listening thread’, for acceptance of
clients requests.
For each client request, the server creates a new thread to
handle the request. This thread exists after finishing its job.
Main Properties – Cont.



This Client-Server application is State-Less. It works like
the WWW. Each client’s request is handled separately.
The server knows nothing about the clients, and each
connection is opened for a specific action, and closed
immediately after finishing that action.
TCP/IP: Since the TCP/IP connects between two different
languages, all the communication is done by bytes. The
communication is harder to implement, since its
impossible to use socket methods that transmit/receive
other data types.
Client-Server Sockets Presentation
Client A
Server
Client
Socket
Listening
Socket
Handling
Socket
Handling
Socket
Handling
Socket
Client B
Client
Socket
Client C
Client
Socket
Server Flow Chart
Request from Client
Listening Thread
Respond Thread
Upload/Download
Get/Put .off file.
When uploading,
the server creates
also .obj and .gif
files, and updates
the databases.
Get 3D file
Send to the client
3D shape file for
presentation.
Search
Compare given
shape vs. the
shapes DB, using
one of the
comparing
algorithms. Send
to the client most
similar icons.
Get Icons
Send to the client
icons, by a given
string, or first
500 icons.
Searching the data
base for the closest
50 shapes to a
selected shape
Client GUI
Uploading or
downloading
a shape
to/from the
data base
Showing
the shape
using Java
3D
Bringing
images
from the
data-base
by
name/first
letters or
first 50
Shapes Examples
Shapes can be rotated
by moving the mouse
on the shape
When rotating a
shape, the shades
and light on it are
changing
3D Object Retrieval Project – Spring semester 2001/02
Presenting Objects
by Java 3D
Java 3D Scene Structure
Virtual Universe
Locale
Object
BG
BG
Behavior
Node
T
Transform
Group Nodes
T
View Platform
Object
Shape3D
Node
Appearance
Branch Group
Nodes
Geometry
3D Object Retrieval Project – Spring semester 2001/02
The End