1 An interoperable platform rencontres mondiales du logiciel libre - july 12th, 2007
Content 2 COGIT Towards a new platform: GeOxygene COGIT experience about platforms and common GIS problems Architecture of GeOxygene : general organisation of the platform and tools Developing applications with GeOxygene Examples of application Open source
COGIT 3 COGIT laboratory looks at things from the point of view of products creation (maps, set of data) or services according to particular needs. COGIT laboratory currently works on 5 research projects : Helping access to geographic information Colours and legends Automation of generalization Integration and multiple representation Spatial analysis
COGIT experience about platforms 4 In the last 15 years, 3 platforms have been implemented at the COGIT Laboratory : Generalization : PlaGe [Lecordix et al, 1997] Independent generalization algorithms, developed in ADA Stratège [Ruas 1998] Contextual generalization, based on expert system, develop in Le-Lisp Since 1999 : Lamps2 (Laser Scan) then Clarity Updating, data machting : GéO 2 [Raynal et al, 1995] Based on the OODBMS O 2, developed in O 2 C (a proprietary C/C++) Since 2001 : GeOxygene (Oxygene)
COGIT experience about platforms 5 Development of research algorithms in COGIT laboratory has thus faced with : A great variety of non communicating systems : the same algorithm has been implemented in the different platforms. Some problems with centralisation, documentation and maintenance of codes : same processes have been implemented several times.
COGIT experience about platforms 6 Development of research algorithms in COGIT laboratory has thus faced with : As systems used in production units of IGN or outside are commercial software (different models and languages) release of research applications was very difficult (often impossible). Due to problem of weak performance (in terms of amount of data and processing rapidity) : such a release was made not worthy as is.
Common GIS problems 7 Non exhaustive list of problems related to the development of application relying on geographic information: No interoperability between geographic data models implemented in commercial software. Programming languages embedded in commercial software are often proprietary languages (learning, no shared algorithms, users are dependent on software technology improvements) GIS are not DBMS (Database Management Systems). Commercial GIS platforms are not natively web enabled.
8 Towards a new platform: GeOxygene In order to tackle these problems, numerous technologies in software engineering have emerged: Standardised, extensible and object oriented programming languages enabling the connection with networks (Java) Modelling techniques based on the notion of reusable software components (UML) Object-relational DBMS making the storage and querying of geographic data possible (Oracle, PostgreSQL/PostGIS) Emergence of web services technologies to increase interoperability
9 Towards a new platform: GeOxygene Implementation of a new interoperable platform : Providing users with an open framework for the development of research applications. Easy centralisation, documentation and maintenance of codes. Allow for the deployment of web services.
Content 10 COGIT Towards a new platform: GeOxygene COGIT experience about platforms and common GIS problems Architecture of GeOxygene : general organisation of the platform and tools Developing applications with GeOxygene Examples of application Open source
Architecture 11 Objecteering (UML) Perceptory MADS, etc... CASE Tools (UML,...) Eclipse (+ plugin SOAP, WSDL) IDE ArcView, MapInfo, PCI geomatics... GIS Clients GeOxygene is is based on on 2 main principles: Web Clients (Browser, applets) Web Services (WSDL, UDDI) etc... Web Map Server(OGC) ArcIMS, Deegree OGC, ISO, Oracle,... Network centred to to enable the deployment of of developments and the communication between components. and Web Feature Server (OGC) Objectthe schema communication between components. ArcSDE, Deegree Mapping OJB (Castor) The use of components for which they are GeoServer good for. The use of components for which they are good for. RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Libraries (Java packages) Documentation (Javadoc) CVS (Concurrent Versioning) SOAP (W3C) Network Geographic data Translator / Loader FME : Shape Oracle Loader, Shape PostGIS Loader Or integrated PostGIS Loader : shp2pgsql
Architecture : model 12 OGC, ISO, Oracle,... Object schema Network An extensible object data model compliant with OpenGIS and ISO specifications (TC 211) Geometry and topology (ISO 19107) GM_Object and TP_Object General feature model (ISO 19109) FT_Feature Metadata (ISO 19115) Spatial referencing by coordinates (ISO 19111) Users implement their application schemas to fulfil their requirements above the core schema Implemented in Java
General organisation of the model 13 ISO 19115 ISO 19107 ISO 19111 Metadata Spatial SRC Partial implementation Dictionary ISO 19109 Application schema
General organisation of the model 14 ISO 19107 Open GIS (feature geometry) / ISO 19107 : diagram of geometrical classes
General organisation of the model 15 OGC model and some extensions : geographical classes
Architecture : DBMS 16 OGC, ISO, Oracle,... Object schema Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Data are stored in a relational DBMS (RDBMS) to ensure a rapid and reliable access to the system This DBMS is Oracle or PostgreSQL Geometry is stored in a DBMS spatial extension : Oracle Spatial or PostGIS
Architecture : mapping 17 OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Users do not have to worry about any SQL statements: they model their applications in UML and code in Java. Mapping between object and relational environments is performed with an open source software, OJB. All mapping information are stored in human readable XML files.
Architecture : library 18 OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Libraries (Java, etc.) Spatial Extension Oracle Spatial PostGIS To preserve the independence of developments, geographic processes are coded and stored in a separate library. Processes come from different sources (web, former developments carried out at the COGIT lab), are in different programming languages (C, C++, Fortran, Ada) and may be interfaced with the Java language thanks to JNI.
Architecture : tools 19 OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Libraries (Java, etc.) Documentation (Javadoc) CVS (Concurrent Versioning) Documentation is automatically generated from the code and shared on a web server between users. Code is consistently shared on a server by the way of a CVS (Concurrent Versioning System).
Architecture : tools 20 OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Libraries (Java, etc.) Documentation (Javadoc) CVS (Concurrent Versioning) Geographic data Translator / Loader FME : Shape Oracle Loader, Shape PostGIS Loader Or integrated PostGIS Loader : shp2pgsql Geographic data are loaded and converted through a geographic data loader (FME) or directly through an integrated PostGIS loader (shp2pgsql).
Architecture : tools 21 Objecteering (UML) Perceptory MADS, etc... CASE Tools (UML,...) Users model their applications in UML by the way of CASE tools (Computer Aided Software Engineering). Application schema are linked to the GeOxygene s core schema OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Libraries (Java packages) Documentation (Javadoc) CVS (Concurrent Versioning) Geographic data Translator / Loader FME : Shape Oracle Loader, Shape PostGIS Loader Or integrated PostGIS loader : shp2pgsql
Architecture : tools 22 Objecteering (UML) Perceptory MADS, etc... CASE Tools (UML,...) Eclipse (+ plugin SOAP, WSDL) IDE Users develop their application with an IDE (Integrated Development Environment). OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Libraries (Java packages) Documentation (Javadoc) CVS (Concurrent Versioning) Geographic data Translator / Loader FME : Shape Oracle Loader, Shape PostGIS Loader Or integrated PostGIS loader : shp2pgsql
Architecture : tools 23 Objecteering (UML) Perceptory MADS, etc... CASE Tools (UML,...) Eclipse (+ plugin SOAP, WSDL) IDE Users can access, view and analyse their geographic data with available GIS clients. ArcView, MapInfo, PCI geomatics... GIS Clients To fully take benefits from the object-oriented point of view, a geographic object viewer has been developed (based on the Geotools). OGC, ISO, Oracle,... Object schema Mapping OJB Network RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Libraries (Java packages) Documentation (Javadoc) CVS (Concurrent Versioning) Geographic data Translator / Loader FME : Shape Oracle Loader, Shape PostGIS Loader Or integrated PostGIS loader : shp2pgsql
Architecture 24 Objecteering (UML) Perceptory MADS, etc... CASE Tools (UML,...) Eclipse (+ plugin SOAP, WSDL) IDE ArcView, MapInfo, PCI geomatics... GIS Clients Web Clients (Browser, applets) Web Services (WSDL, UDDI) etc... Web Map Server(OGC) ArcIMS, Deegree OGC, ISO, Oracle,... Object schema RDBMS Oracle PostgreSQL Spatial Extension Oracle Spatial PostGIS Mapping OJB Libraries (Java packages) Documentation (Javadoc) CVS (Concurrent Versioning) SOAP (W3C) Web Feature Server (OGC) ArcSDE, Deegree GeoServer Network Geographic data Translator / Loader FME : Shape Oracle Loader, Shape PostGIS Loader Or integrated PostGIS loader : shp2pgsql
Content 25 COGIT Towards a new platform: GeOxygene COGIT experience about platforms and common GIS problems Architecture of GeOxygene : general organisation of the platform and tools Developing applications with GeOxygene Examples of application Open source
Developing applications Road_segment GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Java code Object model Visualisation DBMS Mapping 26
Developing applications Road_segment GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Java code Object model Visualisation DBMS Mapping 27
Developing applications Road_segment GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Java code Object model Visualisation DBMS Mapping 28
Developing applications Road_segment GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Java code Object model Visualisation DBMS Mapping 29
Developing applications 30 Object schema RDBMS Spatial Java program // start a transaction db.begin(); // Loading of Geographic Features... features1 =db.load(...); features2 =db.load(...);... // Processing the intersection of objects... intersection =features1.intersection(features2);... // commit the transaction db.commit();
Viewer based on GeoTools 31
Object viewer : JUMP 32
Developing applications 33 Graphical object browser Detection of inconsistencies between different database representations (objects and schema) Geographic data matching Topologic maps Risk assessment applications DTM enrichment with vector data Geographic objects viewer Automatic propagation of updates in databases GeOxygene s core schema (ISO/OGC)
Content 34 COGIT Towards a new platform: GeOxygene COGIT experience about platforms and common GIS problems Architecture of GeOxygene : general organisation of the platform and tools Developing applications with GeOxygene Examples of application Open source
Example of applications 35 Delaunay s triangulation
Example of applications 36 User s schema (being transformed) Data samples mirroring user schema Schema exploration and transformation Improving geographical datasets usability by interactive schema transformations
Example of applications 37 Automated road matching
Example of applications 38 Automated data matching
Example of applications 39 Automated data matching
Content 40 COGIT Towards a new platform: GeOxygene COGIT experience about platforms and common GIS problems Architecture of GeOxygene : general organisation of the platform and tools Developing applications with GeOxygene Examples of application Open source
Open source 41 http://oxygene-project.sourceforge.net
Open source 42 Graphical object browser Detection of inconsistencies between different database representations (objects and schema) Geographic data matching Topologic maps Risk assessment applications DTM enrichment with vector data Geographic objects viewer Automatic propagation of updates in databases GeOxygene s core schema (ISO/OGC)
Questions 43 Questions eric.grosso@ign.fr