Your SlideShare is downloading. ×
IMRCruisetoolbox: A Technical Presentation
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

IMRCruisetoolbox: A Technical Presentation

651
views

Published on

Presentation by the Norwegian Marine Datacenter, explaining their architecture and their plans around the NetBeans Platform.

Presentation by the Norwegian Marine Datacenter, explaining their architecture and their plans around the NetBeans Platform.


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
651
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Tittelside
  • Transcript

    • 1. IMRCruisetoolbox a technical presentation Trond Westgård Senior engineer Norwegian Marine Datacenter (NMD)
    • 2. Purpose
      • Establish a framework to store, retrieve and distribute data sampled from research vessel surveys.
    • 3. Principles
      • All data stored in relational databases with the OGC spatial extension
      • Modern feature-rich end-user dialogs
      • Multiuser access to databases
      • Open source software if possible
      • Object oriented design with reuse of components
      • “ Smooth” distribution and sharing of data
      • A “family” of databases where each db deals with a specific research area
    • 4. Databases so far
      • IMRReference – (species, platforms, persons, roles, gears, categories, ……)
      • IMRHub – (cruise data: track, crew, tasks, purpose, stations, weather,….)
      • IMRBiotic – (prototype.biological samples of fish and other taxonomic groups)
      • IMREchosounder – (interpreted echo values for different acoustic categories)
      • IMRSurvey – (estimated indexes for different stocks/surveys)
      • More to come ….
    • 5. Quick overview - DB
      • Rules for establishing new databases (GUID, original, last edited,…)
      • Copies of data should be easy to distribute in as many copies as needed (but only one database keeps the original/master value stored in a row in a table).
      • Mechanisms for: ”transfer ownership”, ”update/sync copies”
      • Central log on to access rights
      • The databases are not always in a network (e.g.: field work in remote places)
      • “ Foreign keys” may refer ACROSS databases/schema
      • PostgreSQL/PostGIS as database engine.
    • 6. Quick overview - Architecture
      • 5 layer architecture (GUI, …., DB)
      • Use of ORM and business logic with business objects
      • Mechanisms for: ”transfer ownership”, ”update/sync copies”
      • “ Central” log on to access rights
      • The databases are not always in a network (e.g.: field work in remote places)
      • “ Foreign keys” may refer ACROSS databases/schema
      • UDP, list, limit value, area, ….
      • Open Source tools if possible
      • Java as primary language
      • NetBeans IDE as main development tool
    • 7. Architecture GUI Data and Storage Management Data Access Business Logic UI Presentation
    • 8. Tools used JAVA / IDE NetBeans 6.8 DB – JDBC, PostgreSQL, PostGIS Data Access – ORM iBATIS Business Logic – JavaBeans VO, Java GUI – OpenSwing/Swing/JMapPane(gt) NetBeans Platform
    • 9. Libraries and applications Imrcore.jar Guid, sync , BaseVO, DBList,VisualBaseVO Imrreflib.jar Logon,Species, Platform,Role Imrbioticlib.jar Sample, Individual IMRFrontend, Application IMR- hub IMR- reference IMR- biotic Imrhublib.jar Cruise,Track, Station Imrechosounderlib.jar SA,Distance, Frequency IMR- echosounder
    • 10. Data distribution HUB REF BIO ECHO HUB REF BIO ECHO HUB REF BIO ECHO Sync Sync Sync H R B E
    • 11. Example application - IMRfrontend
    • 12. Whats left ???
      • Rock solid framework for RCA (help,language,toolbar,docking,plugins..)
      • Framework for web services and web based applications (Spring?)
    • 13. Ownership – Klausul / Clause
      • Institution (that owns some dataset and wants a clause on it)
      • Person (that is responsible for the clause, could be empty).
      • Description (text explaining what the clause is about)
      • Sampledatestart (start field sample date the clause is about)
      • Sampledateend (end field sample date that the clause is about)
      • Expiredate (The date when the clause could be disregarded)
      • Inherit (0,1- Underlying objects are also restricted by this clause)
      • Severity
        • 0 = open access,
        • 1 = signed on user with read access,
        • 2 = signed on user with read/write permission to the database,
        • 3 = signed on user must have explicit permission to bypass the clause, i.e. it must exist an entry in the Clause_person_group table.
    • 14. Ownership – “relations” ? IMR- biotic Person/Group Institution Clause Report Data
    • 15. Ownership – imrreference Clause Clause_person_group Clause_vobject Person vobject Group Person_group
    • 16. Ownership any database – applies to all nmd database tables with observations or derived data elements that contains business object id’s
      • id
      • original
      • last_edited
      • id_r_institution_owner
      • sampledate
      • somedatacolumn_one
      • somedatacolumn_two
      • etc ….
      • NOTE: When id_r_institution_owner and sampledate is NULL no clause applies to the datarow
    • 17. Ownership – some imr data database clause_object table
      • id
      • original
      • last_edited
      • id_r_vobject
      • id_r_clause
      • id_object
      • (id_r_vobject,id_r_clause,id_object) unique constraint
    • 18. 0 = GEOMETRY1 = POINT 2 = CURVE 3 = LINESTRING 4 = SURFACE 5 = POLYGON 6 = COLLECTION 7 = MULTIPOINT 8 = MULTICURVE 9 = MULTILINESTRING 10 = MULTISURFACE 11 = MULTIPOLYGON
    • 19. WHY ?
    • 20. Every ”framework” has it’s own way
    • 21.
      • Java based and inherits from Swing and is true to Java core principles
      • Helpsets and multilanguage build in
      • Plug in architecture – freely adaptable also for end-user
      • Subscribe on updates for modules
      • Floating windows/toolbars/DnD/Trees/Tables/Properties….
      • Context sensitive pop-up menus
      • Remembers last user session
      • Well documented with courses
      • Open Source
      • Only one real opponent – Eclipse
      • Context events – One toolbar many functions – Subscribe to events
      • A rich set of API’s
      • MODULARITY
      • API “discipline” (publish classes in folders)
      • Oracle states continued support (Jbuilder, Eclipse Plugin, NetBeans)
      • more ….
      Some facts about NetBeans Platform
    • 22.
      • Helpsets and multilanguage user interfaces
      • Best practices for logging of messages and errors (log4J ?)
      • Migrate OpenSwing MDI to NetBeans Platform RCA
        • toolbar – grid – form – module(s)
      • Config.xml handled by NetBeans Platform
      • Geotools and JMapPane as modules
      • From TopComponent to BusinessAO to BusinessVO objects
      • Persistence of objects and wrapping of data access into modules
      • Lazy loading using NetBeans PlatformTrees and Ibatis
      • Services to access business objects both for RCA and Web applications
      Workshop items