SlideShare a Scribd company logo
How to Auto Generate a Back-
end in Minutes
Per Minborg & Emil Forslund, Speedment,
Inc.November 9, 2016
Every Decision a Developer Makes is a Trade-off
“The best code is
no code at all”
Using Code Generation
• Makes the code efficient and short
• Modifications are done once and
applied everywhere
• Minimizes errors
• “DRY” (Don’t Repeat Yourself) vs.
”WET” (We Enjoy Typing)
• “Code your code”
About Us
Per Minborg
• Founder of several IT companies
• Lives in Palo Alto
• 20 years of Java experience
• 15+ US patents
• Blog: Minborg’s Java Pot
Emil Forslund
• Back-End Developer
• Lives in Palo Alto
• 8 years of Java experience
• Blog: Age of Java
Ext Speeder
Front End
Back End
One End
Ext Speeder
• Existing Relational Database
• Graphically Setup REST API
Endpoints
• Generate Complete Back-End
• Deploy Stand-Alone or on a
Java EE Application Server
• Merge Changes in DB Schema into
Application
Ext JS Application
API Management
• Define Exactly Which Data to Expose
• Rename tables, columns, etc.
• Create Custom HTTP Paths
• Change Data Format
• Create Virtual Columns
Generated Runtime
• Column Oriented In-Memory Cache
• Automatic Reload From Database
• Multi-Threaded Execution
• JSON Encoding
• Secure Socket Layer (SSL)
curl –X GET https://api.example.com/customers
?start=1000
&limit=25
&callback=cb
cb([
{"id":1, "name":"Speedment, Inc.", "region":"North America"},
{"id":2, "name":"Sencha, Inc.", "region":"North America"},
...
]);
Workflow
customers.stream()
.filter(…)
.filter(…)
.map(…)
.collect(toList());
Step 1: Connect to DB Step 2: Generate Code Step 3: Deploy
Step 4: Iterate
Example: Sales Organization
DB
Sales Organization DB – What We Have
• Existing Database
- Customers
- Products
- Salespersons
- Sales
• Millions of Rows
RegionCountry
Office
Customer
Salesperson
Product
Sale
Works at
Sold by
Product sold Sold to
Located in
Lives in
Part of
Sales Organization DB – What We Want
Regions Are Stored
in Separate Table
Users Can Filter and
Sort in Real-Time
BufferStore With
Millions of Rows
Sales Organization DB – How To Get There
• Launch Ext Speeder
• Connect to the ”Salesinfo” database
• Create API Endpoint for ”Customer” table
• Create Virtual Column ”Region”
• Generate Code
• Run
1. Connect
2. Generate
3. Deploy
Sales Organization DB – The Generated REST API
curl –X GET https://api.example.com/customers
?start=1000
&limit=25
&callback=cb
cb([
{"id":1, "name":"Speedment, Inc.", "region":"North America"},
{"id":2, "name":"Sencha, Inc.", "region":"North America"},
...
]);
SecureConnections using SSL
VirtualColumns Make It
PossibleTo Include Data from
OtherTables
ResultsAre ReturnedUsing JSONP
Sales Organization DB – How Fast Is It?
• Latency < 10 ms
• 1,000 – 10,000 TPS (Transactions Per Second) per node
• Implementation Time: 5 minutes
• Model the database 5 h
• Secure Connection 1
h
• Parse http command 1 h
• Deserialize parameters 1
h
• Manage database connections 1
h
• Convert into SQL 2 h
• Optimize queries 3 h
• Parse database response 2 h
• Format into JSON 1 h
• Send back to Client 1 h
• Write XML config 1 h
• Deploy in Java EE 1 h
• Fix bugs 4 h
• Run Application <1 h
Traditional Back End Development Process
~24 h
• Connect to database <1 h
• Select tables and columns <1 h
• Press ”Generate” <1 h
• Deploy in Java EE <1 h
• Run application <1 h
Ext Speeder Back End Development Process
~1 h
How To Use
Graphical Tool
Tell Ext Speeder Where
To Find Your Database
Press ”Connect”
Graphical Tool
Database Changes
Can Be Merged With
the Press of a Button
Press to Generate
Complete Back-End
Database Structure
Illustrated as a Tree
Control Every
Aspect of the
Generated Solution
Feedback In the
Form of Notifications
IDE Integration
• No Installation Required
• Launch Tool as a Maven Goal
• Regenerate Code from Saved Config File
IDE Integration
Example from NetBeans IDE
Supported Databases
Deployment Scenarios
• Stand Alone Java SE 8
• Java EE Application Server
- Oracle WebLogic
- Tomcat / TomEE
- Glassfish / Payara
- Wildfly / JBoss
- Jetty
Ext JS Compatibility
• Ext JS 6 (BufferedStore)
• Ext JS 5 (BufferedStore)
• Ext JS 4 (Use regular Store with buffered = true)
Live Demo
Extreme Performance
How Ext Speeder improves your performance
• Data Database objects are stored in-memory
• Sort A sorted view of every column resides in-memory
• Filter Resolved without querying the database. In-memory filtering lookup.
• Skip In-memory dictionaries improve skip performance
• Total Number of results are cached for each set of parameters
• Open database with US doctors
• 40 million objects
• Comparison with and without Ext Speeder
See full video on www.extspeeder.com
Ext Speeder Back End Development Process
User Case :
Extremely Heavy Industries
Download Free 30-Day Trial
Download Free 30-Day Trial
Want Maintenance & Support?
• Up to 5 Developers $ 2,475 / Year
• Every Additional Developer $ 495 / Year
• Renewal: 50% of regular price
Need Custom Features Tailored for Your Project?
Contact Sales
sales@extspeeder.com
Additional Database
Connectors
Scale-Out Over
Multiple Nodes
Aggregating
Operators
Create, Update,
Delete...
Connect Several
Databases
Reactive
WebSockets
Please Take the Survey in the Mobile App
• Navigate to this session in the mobile app
• Click on “Evaluate Session”
• Respondents will be entered into a drawing to win one of five $50 Amazon gift cards
Ext Speeder
http://www.extspeeder.com
Ext JS
https://www.sencha.com/products/extjs/
More Information
Thank You!
minborg@speedment.com emil@speedment.com
SenchaCon 2016 - How to Auto Generate a Back-end in Minutes

More Related Content

What's hot (19)

PPT
MongoDB at community engine
mathraq
 
PDF
Building Codealike: a journey into the developers analytics world
Oren Eini
 
PDF
Know thy cost (or where performance problems lurk)
Oren Eini
 
PPT
Document Databases & RavenDB
Brian Ritchie
 
PPTX
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Pantheon
 
PPTX
Deploying a static website on Azure for $5 / month
Tim Hermie ☁️
 
PPTX
SQL Azure for ISUG(SQL Server Israeli User Group)
Pini Krisher
 
PPTX
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
Sencha
 
PDF
Wongnai Engineering Story
Pattrawoot Suesatayasilp
 
PPTX
WiredTiger Overview
WiredTiger
 
PPTX
Fastly CEO Artur Bergman at Altitude NYC
Fastly
 
PPTX
RedisConf18 - The Intelligent Database Proxy
Redis Labs
 
PDF
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
PPTX
Cnam cours azure web sites
Aymeric Weinbach
 
PPTX
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Jeff Chu
 
PPT
Webinar: Technical Introduction to Native Encryption on MongoDB
MongoDB
 
PDF
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
NCCOMMS
 
PPTX
Cnam cours azure iaas
Aymeric Weinbach
 
PPTX
A (XPages) developers guide to Cloudant - MeetIT
Frank van der Linden
 
MongoDB at community engine
mathraq
 
Building Codealike: a journey into the developers analytics world
Oren Eini
 
Know thy cost (or where performance problems lurk)
Oren Eini
 
Document Databases & RavenDB
Brian Ritchie
 
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Pantheon
 
Deploying a static website on Azure for $5 / month
Tim Hermie ☁️
 
SQL Azure for ISUG(SQL Server Israeli User Group)
Pini Krisher
 
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
Sencha
 
Wongnai Engineering Story
Pattrawoot Suesatayasilp
 
WiredTiger Overview
WiredTiger
 
Fastly CEO Artur Bergman at Altitude NYC
Fastly
 
RedisConf18 - The Intelligent Database Proxy
Redis Labs
 
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Cnam cours azure web sites
Aymeric Weinbach
 
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Jeff Chu
 
Webinar: Technical Introduction to Native Encryption on MongoDB
MongoDB
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
NCCOMMS
 
Cnam cours azure iaas
Aymeric Weinbach
 
A (XPages) developers guide to Cloudant - MeetIT
Frank van der Linden
 

Viewers also liked (9)

PPT
The 1st primary school of nea IONIA
mariabouz
 
PPT
Our scool in greece-Stella legaki
mariabouz
 
PDF
Manual+uso+autobombas
david gonzalea
 
PPTX
Work with hundred of hot terabytes in JVMs
Malin Weiss
 
PDF
Suraj -CV
Ѕυяαנ salian
 
PPT
Our school
mariabouz
 
PPT
Our school in greece
mariabouz
 
PPT
George lanthimos
mariabouz
 
PPTX
How to use a coupon
raghavmathur91
 
The 1st primary school of nea IONIA
mariabouz
 
Our scool in greece-Stella legaki
mariabouz
 
Manual+uso+autobombas
david gonzalea
 
Work with hundred of hot terabytes in JVMs
Malin Weiss
 
Our school
mariabouz
 
Our school in greece
mariabouz
 
George lanthimos
mariabouz
 
How to use a coupon
raghavmathur91
 
Ad

Similar to SenchaCon 2016 - How to Auto Generate a Back-end in Minutes (20)

PPTX
SenchaCon Roadshow Irvine 2017
Speedment, Inc.
 
PPTX
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
Sencha
 
PPTX
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
Malin Weiss
 
PPTX
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
Speedment, Inc.
 
PPTX
How to generate customized java 8 code from your database
Speedment, Inc.
 
PPTX
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
PPTX
Java days gbg online
Speedment, Inc.
 
PDF
Speedment - Reactive programming for Java8
Speedment, Inc.
 
PPTX
Consuming Data With HANA XS
Blackvard
 
PPTX
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
Mark Roden
 
PPTX
Mongodb Presentation
Hashim Shaikh
 
PDF
ITB2017 - Slaying the ORM dragons with cborm
Ortus Solutions, Corp
 
PPTX
Mongodb hashim shaikh
Hashim Shaikh
 
PPTX
Mongodb Presentation
Hashim Shaikh
 
PPTX
DZone Java 8 Block Buster: Query Databases Using Streams
Speedment, Inc.
 
PPTX
Benefits of Using MongoDB Over RDBMSs
MongoDB
 
PPT
Gentle into to DataGrid technology and customer use cases
Billy Newport
 
PDF
X pages jumpstart jmp101
pdhannan
 
PPTX
Benefits of Using MongoDB Over RDBMS (At An Evening with MongoDB Minneapolis ...
MongoDB
 
PPTX
A Beard, An App, A Blender
edm00se
 
SenchaCon Roadshow Irvine 2017
Speedment, Inc.
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
Sencha
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
Malin Weiss
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
Speedment, Inc.
 
How to generate customized java 8 code from your database
Speedment, Inc.
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
Java days gbg online
Speedment, Inc.
 
Speedment - Reactive programming for Java8
Speedment, Inc.
 
Consuming Data With HANA XS
Blackvard
 
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
Mark Roden
 
Mongodb Presentation
Hashim Shaikh
 
ITB2017 - Slaying the ORM dragons with cborm
Ortus Solutions, Corp
 
Mongodb hashim shaikh
Hashim Shaikh
 
Mongodb Presentation
Hashim Shaikh
 
DZone Java 8 Block Buster: Query Databases Using Streams
Speedment, Inc.
 
Benefits of Using MongoDB Over RDBMSs
MongoDB
 
Gentle into to DataGrid technology and customer use cases
Billy Newport
 
X pages jumpstart jmp101
pdhannan
 
Benefits of Using MongoDB Over RDBMS (At An Evening with MongoDB Minneapolis ...
MongoDB
 
A Beard, An App, A Blender
edm00se
 
Ad

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Q2 Leading a Tableau User Group - Onboarding
lward7
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Q2 Leading a Tableau User Group - Onboarding
lward7
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 

SenchaCon 2016 - How to Auto Generate a Back-end in Minutes

  • 1. How to Auto Generate a Back- end in Minutes Per Minborg & Emil Forslund, Speedment, Inc.November 9, 2016
  • 2. Every Decision a Developer Makes is a Trade-off “The best code is no code at all”
  • 3. Using Code Generation • Makes the code efficient and short • Modifications are done once and applied everywhere • Minimizes errors • “DRY” (Don’t Repeat Yourself) vs. ”WET” (We Enjoy Typing) • “Code your code”
  • 4. About Us Per Minborg • Founder of several IT companies • Lives in Palo Alto • 20 years of Java experience • 15+ US patents • Blog: Minborg’s Java Pot Emil Forslund • Back-End Developer • Lives in Palo Alto • 8 years of Java experience • Blog: Age of Java
  • 6. Ext Speeder • Existing Relational Database • Graphically Setup REST API Endpoints • Generate Complete Back-End • Deploy Stand-Alone or on a Java EE Application Server • Merge Changes in DB Schema into Application Ext JS Application
  • 7. API Management • Define Exactly Which Data to Expose • Rename tables, columns, etc. • Create Custom HTTP Paths • Change Data Format • Create Virtual Columns
  • 8. Generated Runtime • Column Oriented In-Memory Cache • Automatic Reload From Database • Multi-Threaded Execution • JSON Encoding • Secure Socket Layer (SSL) curl –X GET https://api.example.com/customers ?start=1000 &limit=25 &callback=cb cb([ {"id":1, "name":"Speedment, Inc.", "region":"North America"}, {"id":2, "name":"Sencha, Inc.", "region":"North America"}, ... ]);
  • 11. Sales Organization DB – What We Have • Existing Database - Customers - Products - Salespersons - Sales • Millions of Rows RegionCountry Office Customer Salesperson Product Sale Works at Sold by Product sold Sold to Located in Lives in Part of
  • 12. Sales Organization DB – What We Want Regions Are Stored in Separate Table Users Can Filter and Sort in Real-Time BufferStore With Millions of Rows
  • 13. Sales Organization DB – How To Get There • Launch Ext Speeder • Connect to the ”Salesinfo” database • Create API Endpoint for ”Customer” table • Create Virtual Column ”Region” • Generate Code • Run 1. Connect 2. Generate 3. Deploy
  • 14. Sales Organization DB – The Generated REST API curl –X GET https://api.example.com/customers ?start=1000 &limit=25 &callback=cb cb([ {"id":1, "name":"Speedment, Inc.", "region":"North America"}, {"id":2, "name":"Sencha, Inc.", "region":"North America"}, ... ]); SecureConnections using SSL VirtualColumns Make It PossibleTo Include Data from OtherTables ResultsAre ReturnedUsing JSONP
  • 15. Sales Organization DB – How Fast Is It? • Latency < 10 ms • 1,000 – 10,000 TPS (Transactions Per Second) per node • Implementation Time: 5 minutes
  • 16. • Model the database 5 h • Secure Connection 1 h • Parse http command 1 h • Deserialize parameters 1 h • Manage database connections 1 h • Convert into SQL 2 h • Optimize queries 3 h • Parse database response 2 h • Format into JSON 1 h • Send back to Client 1 h • Write XML config 1 h • Deploy in Java EE 1 h • Fix bugs 4 h • Run Application <1 h Traditional Back End Development Process ~24 h
  • 17. • Connect to database <1 h • Select tables and columns <1 h • Press ”Generate” <1 h • Deploy in Java EE <1 h • Run application <1 h Ext Speeder Back End Development Process ~1 h
  • 19. Graphical Tool Tell Ext Speeder Where To Find Your Database Press ”Connect”
  • 20. Graphical Tool Database Changes Can Be Merged With the Press of a Button Press to Generate Complete Back-End Database Structure Illustrated as a Tree Control Every Aspect of the Generated Solution Feedback In the Form of Notifications
  • 22. • No Installation Required • Launch Tool as a Maven Goal • Regenerate Code from Saved Config File IDE Integration Example from NetBeans IDE
  • 24. Deployment Scenarios • Stand Alone Java SE 8 • Java EE Application Server - Oracle WebLogic - Tomcat / TomEE - Glassfish / Payara - Wildfly / JBoss - Jetty
  • 25. Ext JS Compatibility • Ext JS 6 (BufferedStore) • Ext JS 5 (BufferedStore) • Ext JS 4 (Use regular Store with buffered = true)
  • 28. How Ext Speeder improves your performance • Data Database objects are stored in-memory • Sort A sorted view of every column resides in-memory • Filter Resolved without querying the database. In-memory filtering lookup. • Skip In-memory dictionaries improve skip performance • Total Number of results are cached for each set of parameters
  • 29. • Open database with US doctors • 40 million objects • Comparison with and without Ext Speeder See full video on www.extspeeder.com Ext Speeder Back End Development Process
  • 30. User Case : Extremely Heavy Industries
  • 33. Want Maintenance & Support? • Up to 5 Developers $ 2,475 / Year • Every Additional Developer $ 495 / Year • Renewal: 50% of regular price
  • 34. Need Custom Features Tailored for Your Project? Contact Sales [email protected] Additional Database Connectors Scale-Out Over Multiple Nodes Aggregating Operators Create, Update, Delete... Connect Several Databases Reactive WebSockets
  • 35. Please Take the Survey in the Mobile App • Navigate to this session in the mobile app • Click on “Evaluate Session” • Respondents will be entered into a drawing to win one of five $50 Amazon gift cards

Editor's Notes