11
Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Embed Size (px)

Citation preview

Page 1: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Configuration by conceptual modeling

C-plan ag

Toni Fankhauser, CTO

Page 2: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Authorized Resellers

Development Partner

TOPOBASE Partners in Europe

Page 3: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

C-plan Revenue

Page 4: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Our customers:Government agencies, both central and localEngineering and/or surveying companiesUtilities (water, electrical, district heat)Total of more than 700 customers in Europe

Customer Focus

Page 5: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Where’s the GIS ?

Data AcquisitionData Acquisition

TOPOBASE™ Basic Edit

Autodesk Map

Viewing / AnalyzingViewing / Analyzing

TOPOBASE™ Generic WEB

ArcView, Geomedia, Mapinfo

Autodesk MapGuide

IntegrationIntegration

TOPOBASE™ Im / Export, SAP Integration

More than 50 Interfaces

ManagementManagementTOPOBASE™ AdministratorOracle Enterprise Tools

Open Geodata Server

TOPOBASE™ Application

Page 6: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

TOPOBASETM Architecture

PNG, SVG, JPEG, TIFF

Page 7: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

The GIS-Dataserver

Server-Components

ORACLE 9i with Spatial

TOPOBASE Structure

-Meta-Data

-Table_Structure

-Indexes, Views

-Rulebase

-Display_Models

-Application-Settings

-Language-Support

TOPOLOGY

-AREA

-Network

Long Transactions

- History

- Dynamic Views

Point

Linestring

Arc

Compound Line String

Polygon

Polygon with hole(s)

R-treeIndex

A

B

A

B

AB

A

B

A

B

AB

ContainsInside

CoversCovered by

Touch

OverlapBoundaries Intersect

OverlapBoundaries Disjoint

Equal

A B

Workspace B

Workspace A

Production Data

FixedVersion

CurrentVersion

00 1101 11 001

01 1001 00 001

11 0001 00 100

History

HistoricalView

Merge

Rollback

Synchronize

Undo

+ToSqlString(in noDimensions : int, in srid : uint, in sqlLoader : bool) : string+ToSqlString(in noDimensions : int, in srid : uint) : string+ToSqlString(in noDimensions : int) : string+ToSqlString() : string

Geometry

+ToSqlString(in noDimensions : int, in srid : uint, in sqlLoader : bool) : string+ToSqlString(in noDimensions : int, in srid : uint) : string+ToSqlString(in noDimensions : int) : string+ToSqlString() : string+Point()+Point(in x : double, in y : double)+Point(in x : double, in y : double, in z : double)+Point(in x : double, in y : double, in z : double, in attributes : int)+X() : double+Y() : double+Z() : double+Attributes() : int+implicit operator(in pt : Point) : Point3D+Equals(in obj : object) : bool+GetHashCode() : int+operator ==(in p1 : Point, in p2 : Point) : bool+operator !=(in pt1 : Point, in pt2 : Point) : bool

-_x : double-_y : double-_z : double-_attributes : int

Point

+ToSqlString(in noDimensions : int, in srid : uint, in sqlLoader : bool) : string+ToSqlString(in noDimensions : int, in srid : uint) : string+ToSqlString(in noDimensions : int) : string+ToSqlString() : string+LinePoint()+LinePoint(in x : double, in y : double)+LinePoint(in x : double, in y : double, in z : double)+LinePoint(in x : double, in y : double, in interpretation : Interpretations)+LinePoint(in x : double, in y : double, in z : double, in interpretation : Interpretations)+LinePoint(in x : double, in y : double, in z : double, in attributes : int, in interpretation : Interpretations)+Interpretation() : Interpretations

-_interpretation : Interpretations

LinePoint

+ToSqlString(in noDimensions : int, in srid : uint, in sqlLoader : bool) : string+ToSqlString(in noDimensions : int, in srid : uint) : string+ToSqlString(in noDimensions : int) : string+ToSqlString() : string+LineString()+LineString(in vertices : LinePoint[])+LineString(in vertices : ArrayList)+LineString(in noDimensions : int, in ordinates : double[], in interpretations : short[])+StartPoint() : LinePoint+EndPoint() : LinePoint+Length() : double+HasArcs() : bool+TestIntegrity()+AddRange(in lpArr : LinePoint[])+RemoveRange(in index : int, in count : int)+RadiusAt(in index : int) : double+ToArray() : LinePoint[]+ToPolygon() : Polygon#GetSqlString(in noDimensions : int, in srid : uint, in sqlLoader : bool, in isOuter : bool) : string+RemoveAt(in index : int)+Insert(in index : int, in what : object)+Insert(in index : int, in what : LinePoint)+Remove(in what : object)+Remove(in what : LinePoint)+Contains(in what : object) : bool+Contains(in what : LinePoint) : bool+Clear()+IndexOf(in what : object) : int+IndexOf(in what : LinePoint) : int+Add(in what : object) : int+Add(in what : LinePoint) : int+Reverse()+Reverse(in index : int, in count : int)+IsReadOnly() : bool-IList.this(in index : int) : object+this(in index : int) : LinePoint+IsFixedSize() : bool+CopyTo(in array : Array, in index : int)+CopyTo(in lpArray : LinePoint[], in index : int)+IsSynchronized() : bool+Count() : int+SyncRoot() : object+GetEnumerator() : IEnumerator

-_vertices : ArrayList

LineString

+ToSqlString(in noDimensions : int, in srid : uint, in sqlLoader : bool) : string+ToSqlString(in noDimensions : int, in srid : uint) : string+ToSqlString(in noDimensions : int) : string+ToSqlString() : string+TestIntegrity()+Polygon()+Polygon(in vertices : LinePoint[])+Polygon(in vertices : ArrayList)+Polygon(in lineString : LineString)+IsClosed() : bool+IsClockwise() : bool+CrossesItself() : bool+Area() : double

Polygon

Page 8: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Dynamic Data-Model

Datastructure and Applications generated from Interface-structure- INTERLIS (.ILI)- GML 3- UML- Other modelling Tools

AdvantagesFlexible Data-ModelCan be extendet very simple (by customer)RAD (rapid application development)

-Topology-History (long Transactions)-Specific Feature-Types

-3D-Splines-Raster

-Different coordinate systems-Different languages-Display-Model

RisksWe need well-defined interfaceToo many different modelsData modeling is not easyWhat can be done (not done) with the interface

Page 9: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO
Page 10: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Make ONE specification (data-model, interface)

Use newest technology

Create nice data-models– Do not change it too often

Work together with GIS-developers– Think about different GIS-implementations

Force people to use this only data model

My wishes….

Page 11: Configuration by conceptual modeling C-plan ag Toni Fankhauser, CTO

Thank you very much !