Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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