2. Who Am I ?Who Am I ?
Enrico Scantambu
Java Developer @ Streamsim
Oracle Certified Master, Java SE 6 Developer
Sun Certified Specialist Netbeans
Sun Certified Web Component Developer
LPIC-1
….....
http://it.linkedin.com/in/enricoscantamburlo
3. ● Currently Based on NetBeans 6.5, 6.9 coming out shortly
● Modular Application (we sells separated modules)
● Most of the interfaces are OpenSource
● 2D/3D Plots
● Import/export from multiple sources
“A graphical user interface to Pre/Post
process simulation models of oil, gas,
and water flow in the subsurface”
4. “All problems in computer science can be solved by
another level of indirection... Except for the problem
of too many layers of indirection.”
David Wheeler
PE Commons API 1/3PE Commons API 1/3
Problems:
● Support several simulators
● Information scattered in VERY big files ( > 20 Gb/Go)
● Same actions on all Simulations
● Some data may be missing
6. PE Commons API 3/3PE Commons API 3/3
They read only what we need
They cache data using Java SoftReferences
They share data between simulations
They are replaced when the files change
We use “Providers”
TimeStepsDataProvider to provide the time information
WellDataProvider to provide the list of well
WellSequencesDataProvider to provider the sequences for each Well
WellTypeDataProvider to provider the type for each Well
StrucutredGridDataProvider to provider the grid Information
….
7. NBPlatform: A lifesaverNBPlatform: A lifesaver
We use almost every feature of NetBeans Platform (6.5)
● FileChangeListeners
● Branding
● Syntax Highlighting
● CodeCompletion
● ContextAwareAction
● Lookup
● Nodes
● TopComponents and Modes
● OutputWindows
● Update Center
● Exception Handling
● Schliemann
● Preferences
● Multiview
● XMLMultiView
● ExplorerManagers
● TreeTableView
● RequestProcessor
● Matisse
● Projects
● Ant
● Layer
● Option Windows
●….
9. 3D View 2/23D View 2/2
Currently using Java3D 1.5.2 (sigh!)
Not very performing but easy to use and it does its job.
Unsupported (community managed program)
Java3D must be installed manually
An NBM for every platform (Windows/Linux 32/64bit)
Bundle the whole JRE
Also tested
● JOGL
● VTK
But too much work to replace it!
11. 2D View 2/22D View 2/2
We use JClass to visualize 2D plots, it is 100% Swing,
fully integrated with Matisse and the pallette. It is a
commercial software.
Allows tons of customizations thru its own customizer
Some performance issues due to Java when you have
millions of points.
Test JFreeChart and JavaFX but same issues
The only solution was using JOGL.
15. User FeedBackUser FeedBack
It is hard to get some good feedback from the users.
If the program crashes, has problems, too slow they get angry but
they do not tell you.
Using The NetBeans Platform we can catch every exception that
occurs during the program.
ImagefromReidRosenberg
The crash information is sent to
our Bug Tracker with all the logs
and the information to contact the
user.
There is also a “Submit a
suggestion” menu.
16. Future ImprovementsFuture Improvements
Remote Job LauncherRemote Job Launcher:
Allows to executes Files on Remote machines
(SSH Based, Linux Server Only).
Taken from the C++ support from NetBeans.
Tell something about Streamsim Where is located How we works
Problems updating software We have to go to the clients and install it (Modular) NetBeans makes this easy PECommons later Java3D Jclass OFFICE, OPENOFFICE, PNG
We are paid to do that, companies have their simulator (usually written in Fortran) they want some support Data is in server and must be trasmitted on network drives We do not want to write an action for every simulation Data is redundatly written in files
We extract data from the lookup Completely DATA independent
User can be on network driver VERY Slow Linux 50x Windows Java Reference naive methods, there are better choices Several simulation with same data or we merge two simulation We have a lookup event
Only in java7 we have FileChangeListeners OutputWindow “Del porco non si butta via niente” Not the pallette And there are more in 7.0 Like annotations
JOGL does not handle the scene VTK used for medical images
Give explanation of Scattergram must create millions of Point.Double to plot
Tell about Schliemann
Talk about Schema2Beans and XAML Ask geertjan about schema2Beans page