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

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

What's hot (19)

MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
Building Codealike: a journey into the developers analytics world
Building Codealike: a journey into the developers analytics worldBuilding Codealike: a journey into the developers analytics world
Building Codealike: a journey into the developers analytics world
 
Know thy cost (or where performance problems lurk)
Know thy cost (or where performance problems lurk)Know thy cost (or where performance problems lurk)
Know thy cost (or where performance problems lurk)
 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDB
 
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Level Up: 5 Expert Tips for Optimizing WordPress PerformanceLevel Up: 5 Expert Tips for Optimizing WordPress Performance
Level Up: 5 Expert Tips for Optimizing WordPress Performance
 
Deploying a static website on Azure for $5 / month
Deploying a static website on Azure for $5 / monthDeploying a static website on Azure for $5 / month
Deploying a static website on Azure for $5 / month
 
SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)
 
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
 
Wongnai Engineering Story
Wongnai Engineering StoryWongnai Engineering Story
Wongnai Engineering Story
 
WiredTiger Overview
WiredTiger OverviewWiredTiger Overview
WiredTiger Overview
 
Fastly CEO Artur Bergman at Altitude NYC
Fastly CEO Artur Bergman at Altitude NYCFastly CEO Artur Bergman at Altitude NYC
Fastly CEO Artur Bergman at Altitude NYC
 
RedisConf18 - The Intelligent Database Proxy
RedisConf18 - The Intelligent Database Proxy  RedisConf18 - The Intelligent Database Proxy
RedisConf18 - The Intelligent Database Proxy
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Cnam cours azure web sites
Cnam cours azure web sitesCnam cours azure web sites
Cnam cours azure web sites
 
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
 
Webinar: Technical Introduction to Native Encryption on MongoDB
Webinar: Technical Introduction to Native Encryption on MongoDBWebinar: Technical Introduction to Native Encryption on MongoDB
Webinar: Technical Introduction to Native Encryption on MongoDB
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
Cnam cours azure iaas
Cnam cours azure iaasCnam cours azure iaas
Cnam cours azure iaas
 
A (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITA (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetIT
 

Viewers also liked

The 1st primary school of nea IONIA
The 1st primary school of  nea IONIAThe 1st primary school of  nea IONIA
The 1st primary school of nea IONIA
mariabouz
 
Our scool in greece-Stella legaki
Our scool in greece-Stella legakiOur scool in greece-Stella legaki
Our scool in greece-Stella legaki
mariabouz
 
Manual+uso+autobombas
Manual+uso+autobombasManual+uso+autobombas
Manual+uso+autobombas
david gonzalea
 
Work with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMsWork with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMs
Malin Weiss
 
Suraj -CV
Suraj -CVSuraj -CV
Our school
Our schoolOur school
Our school
mariabouz
 
Our school in greece
Our school in greeceOur school in greece
Our school in greece
mariabouz
 
George lanthimos
George lanthimosGeorge lanthimos
George lanthimos
mariabouz
 
How to use a coupon
How to use a couponHow to use a coupon
How to use a coupon
raghavmathur91
 

Viewers also liked (9)

The 1st primary school of nea IONIA
The 1st primary school of  nea IONIAThe 1st primary school of  nea IONIA
The 1st primary school of nea IONIA
 
Our scool in greece-Stella legaki
Our scool in greece-Stella legakiOur scool in greece-Stella legaki
Our scool in greece-Stella legaki
 
Manual+uso+autobombas
Manual+uso+autobombasManual+uso+autobombas
Manual+uso+autobombas
 
Work with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMsWork with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMs
 
Suraj -CV
Suraj -CVSuraj -CV
Suraj -CV
 
Our school
Our schoolOur school
Our school
 
Our school in greece
Our school in greeceOur school in greece
Our school in greece
 
George lanthimos
George lanthimosGeorge lanthimos
George lanthimos
 
How to use a coupon
How to use a couponHow to use a coupon
How to use a coupon
 

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

Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
Speedment, Inc.
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
Malin Weiss
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
Sencha
 
SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017
Speedment, Inc.
 
Tuning Your SharePoint Environment
Tuning Your SharePoint EnvironmentTuning Your SharePoint Environment
Tuning Your SharePoint Environment
vmaximiuk
 
DOTNET8.pptx
DOTNET8.pptxDOTNET8.pptx
DOTNET8.pptx
Udaiappa Ramachandran
 
SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi Vončina
SPC Adriatics
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
Amazon Web Services
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
Community Engine
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 Performance
Brian Culver
 
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
Nexcess.net LLC
 
05 integrate redis
05 integrate redis05 integrate redis
05 integrate redis
Erhwen Kuo
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
Amazon Web Services
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
Ido Flatow
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
Brian Culver
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Perficient, Inc.
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
Avi Kedar
 
Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...
Katherine Golovinova
 

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

Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
 
SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017
 
Tuning Your SharePoint Environment
Tuning Your SharePoint EnvironmentTuning Your SharePoint Environment
Tuning Your SharePoint Environment
 
DOTNET8.pptx
DOTNET8.pptxDOTNET8.pptx
DOTNET8.pptx
 
SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi Vončina
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 Performance
 
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
 
05 integrate redis
05 integrate redis05 integrate redis
05 integrate redis
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
 
Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...
 

Recently uploaded

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 

Recently uploaded (20)

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 

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 sales@extspeeder.com 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

  1. Agile Workflow