Client Server Architecture

Aus OCAD 11 Wiki - Deutsch
Zur Navigation springen Zur Suche springen

Introduction

This manual is written during the development of OCAD server module. All the features in the manner described here are subject to change. The manual reflects the functionality of the current implementation and how to work with it. This is not a final implementation an my have bugs and functionality faults. The current state is mostly tested with Postgres SQL – Server 8.2.9 and should work with the version mentioned before or higher. Working with an Oracle database is not yet supported, this will be a step for the future.

Installation of the Database

To be able to use the OCAD-Server Module you have to install a Postgres SQL – Server. The version used for development was 8.2.9. You can get Postgres from http://www.postgres.org. The module was developed with a Postgres Server on a Windows platform. To work with the server module you have to create a user called ocad11 – this is currently hard coded. As next step you must setup 6 core tables and 3 sequences for the module and alter the ocad11 user to them.

TODO

Connect Disconnect

After the basic database setup you can connect to the database. You have to enter the information in the below shown mask.

ServerClient NewConnection.png

For the first connection you have to provide the database protocol – currently only Postgres is supported. For a connection although the host, the database name, the port and the port must be provided. The user name for the database currently must be ocad11 as mentioned in the setup selection and a Password.

For the project user you must provide the data as inserted during the installation for the user name and the password. When you are connected the currently database projects get loaded and your userident (e.g. Illustration 1: connection and project settings the userident is 5002). In the current development stage none of the provided settings are saved! The hard coded default settings shown above. The database password is ocaddb.

The “auto reload changes” re-fetches all loaded objects when they changed in the db.

Create new Project

After the basic setup you can create a new map project in the database. To do so click in the connection window on new project. The following information have to be provided for the project creation.

ServerClient CreateNewProject.PNG

As shown in Illustration 2 a project name and a unique project ident must be supplied. When you enter a project name a project ident will be created of the name by default but you can change it the way you like. A map scale and a grid distance should be provided all other parameters are optional. When clicking on the create button the new project will be created and should shown up in the database window.


The database module tool bar

The server module can be accessed through its toolbar

Datei:ServerClient Toolbar.PNG

Datei:ServerClient ConnectDisconnect.PNG Database button. You can associate a project, connect/disconnect a database

Datei:ServerClient ImportMaps.PNG Adds one or more selected objects to the database project. Alt+Click: adds the Symbol descriptions to the database. Alt + Shift + Click: adds all Objects from the file to the database

Datei:ServerClient DeleteObjectInDatabase.PNG] Removes one or more selected objects from the database project

Datei:ServerClient GetObjectsFromCurrentView.PNG Get all objects from current zoomed view of the work window. Alt + Click: Show the Objects dialog

Datei:ServerClient CheckOutSelectedObjects.PNG Check out one or more selected objects. After a checkout you can edit them

Datei:ServerClient CheckInSelectedObjects.PNG Check in one or more selected objects.

Datei:ServerClient ShowCheckedOutObjects.PNG Show window checked out objects

Datei:ServerClient DatabaseUndo.PNG Do an undo of the last action. Alt + Click: Show the change history

Datei:ServerClient DatabaseRedo.PNG Do a redo of the last undo

Datei:ServerClient GenerateMapPreview.PNG Generate a preview of the complete database project

Datei:ServerClient SaveForOfflineWork.PNG Save currently loaded project for offline work.

Datei:ServerClient DoDatabaseMaintenance.PNG Do maintenance the Project. Remove all redo and undo saves. Do some database optimization.

Draw with database connection

To draw objects directly into the database you have to create a database project first. As next step load a file with a symbol set. Now the database project can be associated with the file. Therefore open the database window, select a project from the projects grid and click OK.

Every new drawn object is now immediately saved into the database project. The objects get automatically checked out too for future editing.

All objects checked out can be edited all others only only can be viewed.

Every object inserted or changed is saved as undo in the database. You can click undo button in the database toolbar to revise the last change or insert and click on redo to redo the last change.


Add objects to the database

Add objects to the database is only needed to import objects. For importing one or more selected objects the following steps needs to be done.

  1. load the file with the objects
  2. associate the file with a project from the projects grid
  3. select one or more objects
  4. click the add objects to the database button
  5. the objects will be added to the database

All objects associated with the database will only be saved in the database. The same applies for object changes too.


Add all objects to the database

To import all objects from a file into the database the following steps needs to be done:

  1. load the file with the objects
  2. associated the file with a project from the projects grid
  3. hold down the shift+alt key and click on the add objects button
  4. all objects from the file with the status normal or hidden will be imported in the

database now. All objects from the file are imported in the database now. For now all changes will only be saved in the database.


Add symbol descriptions to the database

To import the symbol descriptions into the database the following steps needs be done:

  1. load the file with the objects
  2. associated the file with a project from the projects grid
  3. hold down the alt key and click on the add objects button
  4. all symbol descriptions from the file will be imported into the database

Hint.jpg Important note: In the current implementation the symbol description depends on the symbol number. Only ONE Symbol table is used no duplicate symbol numbers are prevented and failure will occur if you try to import duplicate symbol numbers!


Remove objects from the Database

To remove objects from the database not simple delete them with the delete key. By hitting the delete key the object is only removed from the current view. Loading the project again the object will show up as before. To remove an object from the database the object must be checked out. After a successful checkout objects can be remove from the database with a click.+


Get all from current view

To get all objects from the current loaded view click on the button. To get the objects window hold down the alt – key and click on the button.


Check out element(s)

To check out elements for editing from the database select the objects to be check out and click on the button. If no problem occurs during the check out nothing seems to be done. On any error a message will appear describing the error.


Check in element(s)

To check in elements you finished editing with select them and click on the check in button. Now other users are able to check the elements out and edit them. To check in all your objects checked out click on the “show objects checked out” button and there click the “check in all” button all.


Objects dialog

Hold down the alt key and Click on the “get objects from current view” button to get the objects window.

ServerClient ViewObjectInDB.PNG As shown in Illustration 4 the window lists all objects saved in the database. Here can be chosen to load all objects, get all from the current view of the work sheet or to get a selected object. It is possible that not all objects are shown therefore click the reload button. All objects from the database are re-fetch To get all objects from the database click on the get all button. Depending on how many objects are save in the database this may takes a long time. The objects count is show in braces in the get all button.


Show checked out dialog

With this dialog you can show all objects checked out by any user of the project. Only the objects you have currently loaded are shown in the list.

ServerClient ServerShowsCheckedOut.PNG

You can leave the window open an you will see all check in and check out by any user working with the project. By clicking on of the rows in the list OCAD will jump to the selected object in the current project. If you deselect the reload functionality you can click the reload button to reload the window manually otherwise the reload takes place every 3 seconds. The description column show you the symbol description of the object is drawn with. The button “Check in all” checks in all your objects you have checked out for editing.


Generate project preview

With this functionality a raster map preview can be created.

ServerClient GeneratePreview.PNG

To generate a raster map preview the project must be drawn with real world coordinates. As next step you have to set the pixel size per meter for the preview. By clicking OK the generation process will start. First all objects from the database will be loaded into the current worksheet. This step may take a longer time depends how many objects are in the project. Afterwards the preview is generated and saved into the database. Now every time you load the project from the database the preview will be loaded first. This may help you to find the correct view in the file and you have to load only the objects you need to work with.


Save for offline work

It is possible to save your work to do some field work without any database connection. Click on the “Save for offline work“ - button and save your work. After you saved it the database project will be closed. To work with the file open it. Change every thing you want. Draw normal as you always done with OCAD. When you are back again. Open the database dialog choose the project you have synced with an click OK. You will be asked if you want to sync the Project with the database. If the project matches your “saved for offline work” the sync will be done otherwise it is not possible to sync the file with the project.


Do maintenance

The button “do maintenance” can be used to optimize the database. All your undo and redo saves get trashed and some database optimization will be done with this button.


Object change history

The object change history show up all the changes you have done within the project. All the changes listed with your name can be revised by clicking the undo button. All other changes can only be viewed in this list.

ServerClient ChangeHistory.PNG

On the tab object inserts you can see all objects inserted in the project. Currently this window is only a tabular change history and nothing else can be done with it.


Get Objects from Current View

ToDo

Import a Map from the Connected Server

ToDo

Delete Object in Database

ToDo

Check Out Selected Objects

ToDo

Check in Selected Objects

ToDo

Show Checked Out Objects

ToDo

Database Undo

ToDo

Database Redo

ToDo

Generate Map Preview

ToDo

Do Database Maintenance

ToDo

Manage Server Bookmarks

ToDo

Show Project Information

ToDo


Previous Chapter: Course Setting for Orienteering

Next Chapter: OCAD Internet Map

Back to Main Page