SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Generic Editor for
Hierarchical SQL Data
Running in the Browser
Roland Sonnenschein
Hesotech GmbH
automatisieren – visualisieren
http://www.hesotech.de
30.10.2015 © Hesotech GmbH / R. Sonnenschein 2
Agenda
● Metadata in industrial production
– Hierchical SQL-data
● My solutions to edit metadata
– 1995 – 2015
– Changes of requirements
– ForeignKey ↔ Tree ↔ URL
● Some thoughts about ORMs
30.10.2015 © Hesotech GmbH / R. Sonnenschein 3
How it started (1995):
Refurbishment of Turbins
Task:
● Documentation of annealing
● Of each turbine-blade
● Identified by it's serial
Wear during runtime
Refurbish by welding
Anealing
30.10.2015 © Hesotech GmbH / R. Sonnenschein 4
At that time ...
Switchboard
Journal
SCADA
Supervisory
Control
And
Data
Aquisition
30.10.2015 © Hesotech GmbH / R. Sonnenschein 5
Treatment-Data-Administration
MetaData
…
Treatment:
● Articles
● Serials
● Started
● Ended
Reporting
SCADA
Measurements
Treatment-Unit
30.10.2015 © Hesotech GmbH / R. Sonnenschein 6
Reanimation
With a Little Help of my Friend Slony
OS/2 Warp 3.0
● Pentium S
● 133 MHz
● 32 MByte RAM
● 800 Mbyte HD
30.10.2015 © Hesotech GmbH / R. Sonnenschein 7
First Run (1995): OS/2
SCADA GUI
REXX
TDA-Kernel
C++
30.10.2015 © Hesotech GmbH / R. Sonnenschein 8
TDA: Basic-Data-Structure
Designed with
http://www.pgmodeler.com.br/
By Raphael Araújo e Silva
30.10.2015 © Hesotech GmbH / R. Sonnenschein 9
fk fk
Raw Hierarchical Data: TabView
30.10.2015 © Hesotech GmbH / R. Sonnenschein 10
OS/2-Screenshot
30.10.2015 © Hesotech GmbH / R. Sonnenschein 11
Circumstances Changed (1997)
● OS/2
● Windows NT 4.0: 1996-July
● Watcom SQL → PowerSoft → Sybase → SAP
● PostgreSQL 6: 1997-Jan (not Windows)
1994 1995 2010
DBMS GUI-Tool: C++ Data Window DB-Designer
http://www.postgresql.org/doc
s/9.4/static/release.html
30.10.2015 © Hesotech GmbH / R. Sonnenschein 12
From TabView to Tree
30.10.2015 © Hesotech GmbH / R. Sonnenschein 13
Structure
● Task-Node (Root):
– Children: Table-Nodes
– Renderer: Tree-Control
– Table-Nodes
● Key, Label: Table-Name
● Children: Row-Nodes
● Detail-Data: Table-Data
● Renderer: Table-Control
– Row-Nodes
● Key, Label: Key of Row
● Children: Talble-Nodes
● Detail-Data.: Row-Data
● Renderer: List of Cell-Renderers
30.10.2015 © Hesotech GmbH / R. Sonnenschein 14
DbExplorer: Power++
Real Application (Still in Use!)
Position
Order
Serial-ID
Article
Treatment-Units
Treatments
Content
Orders
Articles
Customers
Apply PrintAddDelete
30.10.2015 © Hesotech GmbH / R. Sonnenschein 15
Configuration via
Powersoft DataWindow
● Clever Combination
– High Level Grid with
● Lots of configurable cell-renderers and -editors
– Date/Time, Numeric, Boolean, Select-Box = DataWindow
– Report – Generator
● SQL – Based
– Select, Update, Insert, Delete with Parameters
– Graphic or textual
30.10.2015 © Hesotech GmbH / R. Sonnenschein 16
Circumstances Changed (2002)
● Power++
● Windows XP: 2001-Oct
● PostgreSQL 7: 2000-May (not Windows)
●
DBMS Programming-Tool: C#
Implementing
DataWindow Functionality
by
● Infragistics UltraGrid
● Crystal Reports
30.10.2015 © Hesotech GmbH / R. Sonnenschein 17
DbExplorer .NET
● No Example, because
– Nothing new concerning this talk
– Programming was awful
30.10.2015 © Hesotech GmbH / R. Sonnenschein 18
New Demands (2006)
● PostgreSQL 8 (native Windows): 2005-Jan
● Multicore-Processors
● Operation in Office + Intranet: No Installation !
● Client-Server Architecture
●
DBMS Server-Programming
Server: C#
Npgsql
Client-Programming
Client Java SE
JDBC
30.10.2015 © Hesotech GmbH / R. Sonnenschein 19
DbExplorer: Java-SE
Real Application
Tasks
30.10.2015 © Hesotech GmbH / R. Sonnenschein 20
A Lot has Happened (2014) / 1
● Mobile Devices: iPhone, Android, Tablets, …
● Browser (OS-Independant):
● Dynamic Webpages / Web 2.0,
● AJAX: W3C XMLHttpRequest (2005-Apr)
● JIT-Compiler in Browser
● Demand: Operation Everywhere
● Stationary: Treatment-Unit + Office + Home
● Inside Company
● Outside Comany for Emergency Service
30.10.2015 © Hesotech GmbH / R. Sonnenschein 21
A Lot has Happened (2014) / 2
● GUI in Browser, on Tablet, Mobile …
● Prevent SQL- Injection
● Security-Problem: SQL- Comands via internet
● Middleware needed
DBMSKernel
C#
Npgsql
Client: DbExplorer
HTML5 / CSS
REST Web Services
Middleware: DbGate
node.js
Brianc: Node-postgres
http://qooxdoo.org/https://github.com/b
rianc/node-postgres
30.10.2015 © Hesotech GmbH / R. Sonnenschein 22
fk fk
From Tree to URI
treatment_unit / “Unit 02” / treatment / ”tmt 2015-01-01/2-9” / content / ”SN 2-09”
30.10.2015 © Hesotech GmbH / R. Sonnenschein 23
DbExplorer: JavaScript
Demo
30.10.2015 © Hesotech GmbH / R. Sonnenschein 24
Task- and Tree-Configuration
{
"label": "2015.PgConf.eu",
"database": [
{ "label": "2015.PgConf.eu", "dbKey":"tda",
"color": "#0040FF" ,
"connectionString": "pg://postgres:pwd@localhost:5434/tda" }
],
"tree": {
"article": {"label": "Articles"},
"treatment_unit": {"label": "Treatment-Units"},
"treatment_unit/treatment": {"label": "Treatments"},
"treatment_unit/treatment/content": {"label": "Content"}
},
"variants": {}
}
Tasks Task and Tree
30.10.2015 © Hesotech GmbH / R. Sonnenschein 25
Table-Configuration: Article
{ "label": "Article",
"select": {
"label": [1],
"keys": [1],
"hide": [2],
"readOnly": [2],
"primaryKeys": [1],
"order": [1],
"command": [ "SELECT article_name, properties FROM article" ],
"columns": [ { "1": { "label": "Name", "width": 200 } } ]
},
"update": {
"command": [ "UPDATE article",
"SET article_name=${article_name}, properties=${properties}",
"WHERE article_name=#{article_name};" ]
},
"insert": {
"command": [ "INSERT INTO article(article_name, properties)",
"VALUES (${article_name}, ${properties})" ]
},
"delete": {
"command": [ "DELETE FROM article WHERE article_name=#{article_name}" ]
}
}
30.10.2015 © Hesotech GmbH / R. Sonnenschein 26
Table-Configuration: Content
{
"label": "Content",
"select": {
"label": [2],
"keys": [2],
"hide": [1,5],
"readOnly": [2],
"primaryKeys": [1],
"order": [2],
"command": [ "SELECT treatment_name, "position", article_name, serial_id, properties",
"FROM content WHERE treatment_name = ':{1,1}'" ],
"columns": [
{ "2": { "label": "Position", "width": 200 },
"3": { "label": "Article", "width": 200, "type":"SelectBox", "uri":"article"},
"4": { "label": "Serial-ID", "width": 200 } } ]
},
"update": {
"command": [ "UPDATE content SET treatment_name=${treatment_name}, "position"=${position}, ",
"article_name=${article_name}, serial_id=${serial_id}, properties=${properties}",
"WHERE treatment_name = #{treatment_name} AND position = #{position}" ]
},
"insert": {
"command": [ "INSERT INTO content(treatment_name, "position", article_name, serial_id,
properties)",
"VALUES (':{1,1}', ${position}, ${article_name}, ${serial_id}, ${properties})" ],
"columns": {
"treatment_name": { "default": ":{1,1}" }
}
},
"delete": {
"command": [ "DELETE FROM content WHERE treatment_name = #{treatment_name}",
"AND position = #{position}" ]
}
}
30.10.2015 © Hesotech GmbH / R. Sonnenschein 30
Next ?
Create the REST interface by
● CREATE EXTENSION db_gate ...
30.10.2015 © Hesotech GmbH / R. Sonnenschein 31
SQL is the Constant
Because Logic is the same
Client
OS / VM
Programming-
Language
DBMS
1995 OS/2 REXX SQL: Watcom
Win-NT C++ SQL: Sybase
Win-XP ... C# SQL: Sybase
Java VM Java SQL: PostgreSQL
2015 Browser JavaScript SQL: PostgreSQL
2020 ? ? SQL: PostgreSQL
30.10.2015 © Hesotech GmbH / R. Sonnenschein 32
Why using an ORM?
Quoted from Video Tutorial on ...
● As a programmer, we are dealing
with classes and objects.
● At a certain point, we need
to store and retrieve our data.
● Best into a database.
● For this, an ORM is a very appropriate tool
– It takes over a lot of work and
– It saves you a lot of time
30.10.2015 © Hesotech GmbH / R. Sonnenschein 33
My View
Real World
Buisiness Logic
DB
Program
Customer
Users
Data
=
Mirror of
DB-Structure
=
Interest of
Customer
Strongly
dependent on
requirements
Very
stable
Can be
discussed
with the
customer
30.10.2015 © Hesotech GmbH / R. Sonnenschein 34
http://www.changemakrs.com/LinusTorvalds

Weitere ähnliche Inhalte

Andere mochten auch

Lesson 9 flying cats
Lesson 9       flying catsLesson 9       flying cats
Lesson 9 flying catselebore
 
Academic record-qut- lihaotian-2
Academic record-qut- lihaotian-2Academic record-qut- lihaotian-2
Academic record-qut- lihaotian-2Henry Li
 
Cressi Spearfishing Catalogue 2013
Cressi Spearfishing Catalogue 2013Cressi Spearfishing Catalogue 2013
Cressi Spearfishing Catalogue 2013DiveStock
 
HoCare Interreg Europe project
HoCare Interreg Europe projectHoCare Interreg Europe project
HoCare Interreg Europe projectJan Kubalík
 
Electronics schematic circuits for the hobbyist
Electronics schematic circuits for the hobbyistElectronics schematic circuits for the hobbyist
Electronics schematic circuits for the hobbyistben kamau
 
Machine Learning with Python - Big Things are Happening Here Meetup
Machine Learning with Python - Big Things are Happening Here MeetupMachine Learning with Python - Big Things are Happening Here Meetup
Machine Learning with Python - Big Things are Happening Here MeetupYuval Mazor
 
Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Navin Raj Saroj
 

Andere mochten auch (8)

Lesson 9 flying cats
Lesson 9       flying catsLesson 9       flying cats
Lesson 9 flying cats
 
Academic record-qut- lihaotian-2
Academic record-qut- lihaotian-2Academic record-qut- lihaotian-2
Academic record-qut- lihaotian-2
 
Cressi Spearfishing Catalogue 2013
Cressi Spearfishing Catalogue 2013Cressi Spearfishing Catalogue 2013
Cressi Spearfishing Catalogue 2013
 
Eng4 lm u2
Eng4 lm u2Eng4 lm u2
Eng4 lm u2
 
HoCare Interreg Europe project
HoCare Interreg Europe projectHoCare Interreg Europe project
HoCare Interreg Europe project
 
Electronics schematic circuits for the hobbyist
Electronics schematic circuits for the hobbyistElectronics schematic circuits for the hobbyist
Electronics schematic circuits for the hobbyist
 
Machine Learning with Python - Big Things are Happening Here Meetup
Machine Learning with Python - Big Things are Happening Here MeetupMachine Learning with Python - Big Things are Happening Here Meetup
Machine Learning with Python - Big Things are Happening Here Meetup
 
Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1
 

Ähnlich wie Db Explorer

Running Cognos on Hadoop
Running Cognos on HadoopRunning Cognos on Hadoop
Running Cognos on HadoopSenturus
 
]po[ Developers: Reporting, Indicators & Dashboards
]po[ Developers: Reporting, Indicators & Dashboards]po[ Developers: Reporting, Indicators & Dashboards
]po[ Developers: Reporting, Indicators & DashboardsKlaus Hofeditz
 
How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...Jos Boumans
 
Dataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStoreDataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStoreVikalp Bhalia
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaborationJulien Pivotto
 
]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators Options]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators OptionsKlaus Hofeditz
 
]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators Options]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators OptionsKlaus Hofeditz
 
ClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsAltinity Ltd
 
Managing and Deploying High Performance Computing Clusters using Windows HPC ...
Managing and Deploying High Performance Computing Clusters using Windows HPC ...Managing and Deploying High Performance Computing Clusters using Windows HPC ...
Managing and Deploying High Performance Computing Clusters using Windows HPC ...Saptak Sen
 
Hannes end-of-the-router-tnc17
Hannes end-of-the-router-tnc17Hannes end-of-the-router-tnc17
Hannes end-of-the-router-tnc17Hannes Gredler
 
Ben ford intro
Ben ford introBen ford intro
Ben ford introPuppet
 
Telemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben FordTelemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben FordPuppet
 
Introduction to Presto at Treasure Data
Introduction to Presto at Treasure DataIntroduction to Presto at Treasure Data
Introduction to Presto at Treasure DataTaro L. Saito
 
Snowflake for Data Engineering
Snowflake for Data EngineeringSnowflake for Data Engineering
Snowflake for Data EngineeringHarald Erb
 
Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.Capgemini
 
Hadoop institutes in hyderabad
Hadoop institutes in hyderabadHadoop institutes in hyderabad
Hadoop institutes in hyderabadKelly Technologies
 
Introduction to interactive data visualisation using R Shiny
Introduction to interactive data visualisation using R ShinyIntroduction to interactive data visualisation using R Shiny
Introduction to interactive data visualisation using R Shinyanamarisaguedes
 
Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...CA Technologies
 

Ähnlich wie Db Explorer (20)

Running Cognos on Hadoop
Running Cognos on HadoopRunning Cognos on Hadoop
Running Cognos on Hadoop
 
]po[ Developers: Reporting, Indicators & Dashboards
]po[ Developers: Reporting, Indicators & Dashboards]po[ Developers: Reporting, Indicators & Dashboards
]po[ Developers: Reporting, Indicators & Dashboards
 
How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...
 
Dataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStoreDataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStore
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators Options]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators Options
 
]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators Options]project-open[ Reporting & Indicators Options
]project-open[ Reporting & Indicators Options
 
ClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom Apps
 
Managing and Deploying High Performance Computing Clusters using Windows HPC ...
Managing and Deploying High Performance Computing Clusters using Windows HPC ...Managing and Deploying High Performance Computing Clusters using Windows HPC ...
Managing and Deploying High Performance Computing Clusters using Windows HPC ...
 
Hannes end-of-the-router-tnc17
Hannes end-of-the-router-tnc17Hannes end-of-the-router-tnc17
Hannes end-of-the-router-tnc17
 
Ben ford intro
Ben ford introBen ford intro
Ben ford intro
 
Telemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben FordTelemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben Ford
 
Introduction to Presto at Treasure Data
Introduction to Presto at Treasure DataIntroduction to Presto at Treasure Data
Introduction to Presto at Treasure Data
 
Snowflake for Data Engineering
Snowflake for Data EngineeringSnowflake for Data Engineering
Snowflake for Data Engineering
 
Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.
 
Sprint 54
Sprint 54Sprint 54
Sprint 54
 
Hadoop institutes in hyderabad
Hadoop institutes in hyderabadHadoop institutes in hyderabad
Hadoop institutes in hyderabad
 
Introduction to interactive data visualisation using R Shiny
Introduction to interactive data visualisation using R ShinyIntroduction to interactive data visualisation using R Shiny
Introduction to interactive data visualisation using R Shiny
 
Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...
 
Chaitanya_updated resume
Chaitanya_updated resumeChaitanya_updated resume
Chaitanya_updated resume
 

Kürzlich hochgeladen

SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power
 
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxAnne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxnoorehahmad
 
PHYSICS PROJECT BY MSC - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC  - NANOTECHNOLOGYPHYSICS PROJECT BY MSC  - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC - NANOTECHNOLOGYpruthirajnayak525
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸mathanramanathan2005
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRRsarwankumar4524
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEMCharmi13
 
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Escort Service
 
Early Modern Spain. All about this period
Early Modern Spain. All about this periodEarly Modern Spain. All about this period
Early Modern Spain. All about this periodSaraIsabelJimenez
 
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationThe Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationNathan Young
 
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.KathleenAnnCordero2
 
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...漢銘 謝
 
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...marjmae69
 
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comSaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comsaastr
 
Genshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxGenshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxJohnree4
 
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...Henrik Hanke
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxCarrieButtitta
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 

Kürzlich hochgeladen (20)

SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
 
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptxAnne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
 
PHYSICS PROJECT BY MSC - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC  - NANOTECHNOLOGYPHYSICS PROJECT BY MSC  - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC - NANOTECHNOLOGY
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEM
 
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170
 
Early Modern Spain. All about this period
Early Modern Spain. All about this periodEarly Modern Spain. All about this period
Early Modern Spain. All about this period
 
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationThe Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism Presentation
 
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
PAG-UNLAD NG EKONOMIYA na dapat isaalang alang sa pag-aaral.
 
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
 
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
 
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comSaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
 
Genshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxGenshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptx
 
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptx
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 

Db Explorer

  • 1. Generic Editor for Hierarchical SQL Data Running in the Browser Roland Sonnenschein Hesotech GmbH automatisieren – visualisieren http://www.hesotech.de
  • 2. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 2 Agenda ● Metadata in industrial production – Hierchical SQL-data ● My solutions to edit metadata – 1995 – 2015 – Changes of requirements – ForeignKey ↔ Tree ↔ URL ● Some thoughts about ORMs
  • 3. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 3 How it started (1995): Refurbishment of Turbins Task: ● Documentation of annealing ● Of each turbine-blade ● Identified by it's serial Wear during runtime Refurbish by welding Anealing
  • 4. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 4 At that time ... Switchboard Journal SCADA Supervisory Control And Data Aquisition
  • 5. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 5 Treatment-Data-Administration MetaData … Treatment: ● Articles ● Serials ● Started ● Ended Reporting SCADA Measurements Treatment-Unit
  • 6. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 6 Reanimation With a Little Help of my Friend Slony OS/2 Warp 3.0 ● Pentium S ● 133 MHz ● 32 MByte RAM ● 800 Mbyte HD
  • 7. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 7 First Run (1995): OS/2 SCADA GUI REXX TDA-Kernel C++
  • 8. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 8 TDA: Basic-Data-Structure Designed with http://www.pgmodeler.com.br/ By Raphael Araújo e Silva
  • 9. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 9 fk fk Raw Hierarchical Data: TabView
  • 10. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 10 OS/2-Screenshot
  • 11. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 11 Circumstances Changed (1997) ● OS/2 ● Windows NT 4.0: 1996-July ● Watcom SQL → PowerSoft → Sybase → SAP ● PostgreSQL 6: 1997-Jan (not Windows) 1994 1995 2010 DBMS GUI-Tool: C++ Data Window DB-Designer http://www.postgresql.org/doc s/9.4/static/release.html
  • 12. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 12 From TabView to Tree
  • 13. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 13 Structure ● Task-Node (Root): – Children: Table-Nodes – Renderer: Tree-Control – Table-Nodes ● Key, Label: Table-Name ● Children: Row-Nodes ● Detail-Data: Table-Data ● Renderer: Table-Control – Row-Nodes ● Key, Label: Key of Row ● Children: Talble-Nodes ● Detail-Data.: Row-Data ● Renderer: List of Cell-Renderers
  • 14. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 14 DbExplorer: Power++ Real Application (Still in Use!) Position Order Serial-ID Article Treatment-Units Treatments Content Orders Articles Customers Apply PrintAddDelete
  • 15. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 15 Configuration via Powersoft DataWindow ● Clever Combination – High Level Grid with ● Lots of configurable cell-renderers and -editors – Date/Time, Numeric, Boolean, Select-Box = DataWindow – Report – Generator ● SQL – Based – Select, Update, Insert, Delete with Parameters – Graphic or textual
  • 16. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 16 Circumstances Changed (2002) ● Power++ ● Windows XP: 2001-Oct ● PostgreSQL 7: 2000-May (not Windows) ● DBMS Programming-Tool: C# Implementing DataWindow Functionality by ● Infragistics UltraGrid ● Crystal Reports
  • 17. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 17 DbExplorer .NET ● No Example, because – Nothing new concerning this talk – Programming was awful
  • 18. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 18 New Demands (2006) ● PostgreSQL 8 (native Windows): 2005-Jan ● Multicore-Processors ● Operation in Office + Intranet: No Installation ! ● Client-Server Architecture ● DBMS Server-Programming Server: C# Npgsql Client-Programming Client Java SE JDBC
  • 19. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 19 DbExplorer: Java-SE Real Application Tasks
  • 20. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 20 A Lot has Happened (2014) / 1 ● Mobile Devices: iPhone, Android, Tablets, … ● Browser (OS-Independant): ● Dynamic Webpages / Web 2.0, ● AJAX: W3C XMLHttpRequest (2005-Apr) ● JIT-Compiler in Browser ● Demand: Operation Everywhere ● Stationary: Treatment-Unit + Office + Home ● Inside Company ● Outside Comany for Emergency Service
  • 21. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 21 A Lot has Happened (2014) / 2 ● GUI in Browser, on Tablet, Mobile … ● Prevent SQL- Injection ● Security-Problem: SQL- Comands via internet ● Middleware needed DBMSKernel C# Npgsql Client: DbExplorer HTML5 / CSS REST Web Services Middleware: DbGate node.js Brianc: Node-postgres http://qooxdoo.org/https://github.com/b rianc/node-postgres
  • 22. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 22 fk fk From Tree to URI treatment_unit / “Unit 02” / treatment / ”tmt 2015-01-01/2-9” / content / ”SN 2-09”
  • 23. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 23 DbExplorer: JavaScript Demo
  • 24. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 24 Task- and Tree-Configuration { "label": "2015.PgConf.eu", "database": [ { "label": "2015.PgConf.eu", "dbKey":"tda", "color": "#0040FF" , "connectionString": "pg://postgres:pwd@localhost:5434/tda" } ], "tree": { "article": {"label": "Articles"}, "treatment_unit": {"label": "Treatment-Units"}, "treatment_unit/treatment": {"label": "Treatments"}, "treatment_unit/treatment/content": {"label": "Content"} }, "variants": {} } Tasks Task and Tree
  • 25. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 25 Table-Configuration: Article { "label": "Article", "select": { "label": [1], "keys": [1], "hide": [2], "readOnly": [2], "primaryKeys": [1], "order": [1], "command": [ "SELECT article_name, properties FROM article" ], "columns": [ { "1": { "label": "Name", "width": 200 } } ] }, "update": { "command": [ "UPDATE article", "SET article_name=${article_name}, properties=${properties}", "WHERE article_name=#{article_name};" ] }, "insert": { "command": [ "INSERT INTO article(article_name, properties)", "VALUES (${article_name}, ${properties})" ] }, "delete": { "command": [ "DELETE FROM article WHERE article_name=#{article_name}" ] } }
  • 26. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 26 Table-Configuration: Content { "label": "Content", "select": { "label": [2], "keys": [2], "hide": [1,5], "readOnly": [2], "primaryKeys": [1], "order": [2], "command": [ "SELECT treatment_name, "position", article_name, serial_id, properties", "FROM content WHERE treatment_name = ':{1,1}'" ], "columns": [ { "2": { "label": "Position", "width": 200 }, "3": { "label": "Article", "width": 200, "type":"SelectBox", "uri":"article"}, "4": { "label": "Serial-ID", "width": 200 } } ] }, "update": { "command": [ "UPDATE content SET treatment_name=${treatment_name}, "position"=${position}, ", "article_name=${article_name}, serial_id=${serial_id}, properties=${properties}", "WHERE treatment_name = #{treatment_name} AND position = #{position}" ] }, "insert": { "command": [ "INSERT INTO content(treatment_name, "position", article_name, serial_id, properties)", "VALUES (':{1,1}', ${position}, ${article_name}, ${serial_id}, ${properties})" ], "columns": { "treatment_name": { "default": ":{1,1}" } } }, "delete": { "command": [ "DELETE FROM content WHERE treatment_name = #{treatment_name}", "AND position = #{position}" ] } }
  • 27. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 30 Next ? Create the REST interface by ● CREATE EXTENSION db_gate ...
  • 28. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 31 SQL is the Constant Because Logic is the same Client OS / VM Programming- Language DBMS 1995 OS/2 REXX SQL: Watcom Win-NT C++ SQL: Sybase Win-XP ... C# SQL: Sybase Java VM Java SQL: PostgreSQL 2015 Browser JavaScript SQL: PostgreSQL 2020 ? ? SQL: PostgreSQL
  • 29. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 32 Why using an ORM? Quoted from Video Tutorial on ... ● As a programmer, we are dealing with classes and objects. ● At a certain point, we need to store and retrieve our data. ● Best into a database. ● For this, an ORM is a very appropriate tool – It takes over a lot of work and – It saves you a lot of time
  • 30. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 33 My View Real World Buisiness Logic DB Program Customer Users Data = Mirror of DB-Structure = Interest of Customer Strongly dependent on requirements Very stable Can be discussed with the customer
  • 31. 30.10.2015 © Hesotech GmbH / R. Sonnenschein 34 http://www.changemakrs.com/LinusTorvalds