SlideShare a Scribd company logo
1 of 39
0 Web 2.0 Development with DB2  Dr. Vladimir Bacvanski, Vice President, InferData,  vladimir@inferdata.com Rafael Coss, Solutions Architect, IBM, rcoss@ibm.com Session Number 2166
Outline Challenges of Enterprise Web 2.0 Systems Some Side-Effects of O/R Mapping Data-Driven Applications and pureQuery Rich Internet Applications: Ajax and Dojo with RAD pureQuery + JEE Applications with RAD pureQuery + Situational Applications with WebSphere sMash IBM Optim Development Studio Integrating pureQuery and WebSphere sMash with RAD
2 Show of Hands! How many are developers, managers,involved with databases, others? Are you using Java, Ruby, Python, Groovy, PHP,? How many are using EJB, plain JDBC, Hibernate? What’s most important? Productivity Reuse Availability Performance Shared Database Flexibility
COMMUNITYParticipation RICHUser Interfaces Software as aSERVICE Web 2.0  DATA
What matters most to Enterprise Web 2.0 Systems? MVC architecture? Java vs. Python vs. [insert your favorite language]? Ajax vs. Flash? MASSIVE AMOUNTS OF DATA
Java Data Access – Two Views of the World Writing Java code is so easy with this eclipse environment.I wish it was that easy to get the SQL right. JSP QoS goals Spring Another runaway query!  Where are these coming from?  JDBC?  Hmmm… Runstats XML http Partition strategy Stored Procedures mashup SQL Response Time! REORG JSON JDBC This ORM doesn’t allow me to leverage all my database’s SQL. Inconsistent response time? How long will it take me to find the offending application sending bad SQL this time?  JDBC I can’t believe I got called out last week.  I wish I could see how these queries will run in production. SQLJ JPA These ad-hoc queries are dangerous.  We need a library of tested SQL interfaces.  Application Developer Database Developer& Administrator Spring Why does this query take so long? iBatis, . . . Sometimes I need POJOs, sometime JSON, sometimes XML, what should I use? Static SQL? Sounds like another delay to getting my program deployed Another GRANT request?  This security administration is out of control. Can I examine the SQL “before” the application is deployed?
Meet in the Middle Data Mapping Approaches Application-Centric Top-Down Start with Object Domain Model ORM Mapping Well supported in dynamic languages and frameworks Hybrid Meet in the middle Can be challenging w/o comprising Data-Centric Bottom-UP Start with Relational Data Model Not well supported in dynamic languages and frameworks Top Down Persistence Layer Bottom Up 6
EJB and Hibernate Side Effects ,[object Object]
Where is the SQL coming from?
What is it?
Where is it?
How do we tune it?
How de we manage it?
Performance Concerns:
Some App Server vendors claim (unsurprisingly) that Managed objects performs fine.
There are many user claims of bad Managed object performance is bad on the web.
As always, the truth is in the middle.
And will depend on your app server, application, database, etc ..“Our top story: Large Customer moves from COBOL to Java to become more agile.  In other news, DBA develop amnesia.” 7 7
A high-performance, data access platform to simplify developing, managing, securing, and optimizing data access. Introducing pureQuery pureQuery Components: Simple and intuitive API Enables SQL access to databases or in-memory Java objects Facilitates best practices  Optim Development Studio (integrates with RAD) Integrated development environment with Java and SQL support  Improve problem isolation and impact analysis Optim pureQuery Runtime Flexible static SQL deployment for DB2
Design Phase pureQuery close-up Model Integration ,[object Object],V2.2 Jump Start Application Design ,[object Object]
Setup basic DAO PatternExisting JDBC to Static ,[object Object],Code Development Productivity ,[object Object]
Database aware, Java SQL EditorSQL Replacement ,[object Object],SQL Performance Metrics ,[object Object],Java to SQL Integration ,[object Object],Problem Determination ,[object Object]
Track back to SQL and line of code in the applicationStatic SQL ,[object Object],SQL Injection Prevention ,[object Object],[object Object]
Code Example: pureQuery 11 Employee myEmp= db.queryFirst(     "SELECT NAME, ADDRESS, PHONE_NUM FROM EMP      WHERE NAME=?", Employee.class, name); Even simpler, if we have a method getEmployee with a Java annotation or XML file with SQL for the query: Employee myEmp= getEmployee(name);
Design Develop Optimize Govern Models Policies Metadata Deploy Operate IBM Optim pureQuery Reduce costs Increase system throughput  Improve developer productivity Move workload to zIIP and zAAP Improve quality of service for new and existing Java applications  Improve performance  Lock in access plans Speed up problem resolution Reduce development time for new Java applications Bridge Java and data Balance productivity and control Enhance developer and DBA collaboration Enhance security Limit user access  Minimize SQL injection risk Improve audit readiness Developer Develop Code Debug Test Tune, Package Tester
Why should DBAs care ? DBAs have little to no visibility of application SQL before deployment, no opportunity for review and optimization  Problem isolation takes days with contemporary environments such as Java, PHP, .NET, etc due to inability to trace SQL to Java application and source code Constantly increasing Java application workload taxes existing systems – need to fit more work into existing systems SQL injection represents an increasing risk to data security
Why should Developers care ? Get data access right the first time ! Get it done faster - Improved productivity Single environment that spans Java application and database development Improved problem isolation and resolution
How well does it work? – Java applications In-house testing shows significant performance improvements IRWW – an OLTP workload, Type 4 driver Cache hit ratio between 70 and 85% 23 % improvement in throughput using pureQuery over dynamic JDBC 15% - 25% reduction on CPU per transaction over dynamic JDBC  15
How well does it work? - .Net applications Throughput during static execution increased by 159% over dynamic SQL execution assuming a 79% statement cache hit ratio  ,[object Object]
Application accesses DB2 for z/OS*Any performance data contained in this document were determined in various controlled laboratory environments and are for reference purposes only. Customers should not adapt these performance numbers to their own environments as system performance standards. The results that may be obtained in other operating environments may vary significantly. Users of this document should verify the applicable data for their specific environment. 16
17 Control performance Decide at deployment time how the SQL is executed Understand and lock down the access plan for SQL Replace suboptimal SQL without changing the application Control security Prevent SQL injection Prevent execution of unauthorized SQL Better manage database security  See inside applications that are driving your database Understand where SQL comes from Understand when frameworks and ORM’s are getting in the way Simplify problem determination and troubleshooting Correlate problem SQL with applications, ORM’s and frameworks Optim pureQuery Runtime
18 How do I start with pureQuery Existing applications Optimize existing JDBC (and .NET!) applications No code changes needed Have to go through the client optimization process to get to static SQL New applications Use the pureQuery API Development codes using one API regardless of whether it is deployed dynamically or statically DBA deploys statically No need to go through client optimization process Other JPA, iBatis, Hibernate
19 pureQuery Gives You Options V2.1 Feature Data Web Services, Project Zero, sMash .Net applications Hibernate, iBATIS, EclipseLink,... JPA for WebSphere, Apache OpenJPA   Optim pureQuery Plain JDBC JPA  API Web API Open Source Persistence API .Net Applications pureQuery API JDBC API JPA Persistence Engine Open Source Persistence Engine JDBC 	pureQuery ADO .Net 	JCC driver DB2 and Informix now More coming
20 pureQuery Facilitates Best Practices Supports both inline SQL and Java annotations (method)  Intuitive interfaces for common data retrieval and manipulation scenarios hides JDBC complexity Query First Homogeneous Batch Reduce network trips to the database  Query Over Java Collections Heterogeneous Batch Use custom result handlers to map results to POJO’s, XML, JSON, … Write high performance Java data access applications, Part 3:  Data Studio pureQuery API best practices -- VitorRodrigues http://www.ibm.com/developerworks/db2/library/techarticle/dm-808rodrigues/?S_TACT=105AGX01&S_CMP=LP
21 Optimize Existing JDBC Applications Improve performance for DB2 – without changing a line of code Capture 		     Configure		Bind		Execute pureQuery client optimization enables static execution for JDBC applications (custom-developed, framework-based, or packaged) Existing JDBC Application Captured SQL-  related metadata JDBC Driver w/ pureQuery Dynamic SQL execution  Static SQL execution  DB2 Data Servers "The ability to use static SQL with pureQuery is huge. Recently, I worked with a client who could reduce CPU usage by 7 percent thanks to this one feature."                                     — David Beulke, Pragmatic Solutions Inc.
Business Analyst RequirementsAnalyst Data Architect Data Access Developer Database Administrator Software Architect Developer Integration with Rational Creates businessprocess model WebSphereBusiness Modeler Transform between business items and data model Create & manage software delivery requirements Link requirements to data assets RationalRequisitePro Create architectural model enablingthe tasks from BPM to be  automated RationalSoftware Modeler 7.5 Transform between software and data models Create or reverse engineer logical and physical models Transform Models to Code RationalSoftware Architect 7.5 Infosphere Data Architect 7.5 Implement new& integrate existing services Implement newprocedures and services RationalApplication Developer7. 5 Optim Development Studio Extract test data from production systems Rational  ClearQuest Optim Test Data Manager
Add basic OR mapping and annotated-method style pureQuery pureQuery Balances Productivity and Control Managed objects  Object-relational mapping Full SQL control Code all your SQL JDBC / SQLJ Use SQL templates, inline only Spring  templates iBATIS Complex OR mapping and persistence management, but loss of controls Hibernate Adds container management option OpenJPA  (EJB3)
RAD / Development Studio Data Centric Development Scenario Write in JavaUsing RAD+WAS FP for Web 2.0 Write in Java with pureQueryUsing Optim Dev. Studio in RAD Access generated Java  data objects  from code developed in RAD WAS Feature Pack for Web 2.0
RAD and Web 2.0 Rich Internet Applications  RAD supports development of Ajax applications Essentially: HTML + JavaScript + Asynchronous communication Uses Dojo Ajax libraries IBM Dojo extensions Visual tools for Dojo UI development Libraries and tools: Invoking Java code from Dojo with RPC Adapter JSON4J Ajax messaging 25

More Related Content

What's hot

BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?Guido Schmutz
 
J2EE and layered architecture
J2EE and layered architectureJ2EE and layered architecture
J2EE and layered architectureSuman Behara
 
A-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator OverviewA-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator OverviewSteven Davelaar
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008ctindale
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3Oracle
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsBerry Clemens
 
Ramesh Babu Resume Latest
Ramesh Babu Resume LatestRamesh Babu Resume Latest
Ramesh Babu Resume LatestRamesh Babu
 
Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...
Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...
Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...VibrantGroup
 
Mahesh_webMethodsProfile
Mahesh_webMethodsProfileMahesh_webMethodsProfile
Mahesh_webMethodsProfilemahesh meesala
 
Nilesh_Surange J2EE 9.5+ Years
Nilesh_Surange J2EE  9.5+ YearsNilesh_Surange J2EE  9.5+ Years
Nilesh_Surange J2EE 9.5+ Yearssurange
 
Stat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo MasterStat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo Masterreachtimsq
 
ADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and SynchingADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and SynchingSteven Davelaar
 
Yuvaraj Shanmugam - Application Architect
Yuvaraj Shanmugam - Application ArchitectYuvaraj Shanmugam - Application Architect
Yuvaraj Shanmugam - Application ArchitectYuvaraj Shanmugam
 

What's hot (20)

BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
 
J2EE and layered architecture
J2EE and layered architectureJ2EE and layered architecture
J2EE and layered architecture
 
Sunil kumar resume
Sunil kumar resumeSunil kumar resume
Sunil kumar resume
 
A-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator OverviewA-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator Overview
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3
 
Soundarya Reddy Resume
Soundarya Reddy ResumeSoundarya Reddy Resume
Soundarya Reddy Resume
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionapps
 
As 400
As 400As 400
As 400
 
Ashley Kevorkian.Selenium
Ashley Kevorkian.SeleniumAshley Kevorkian.Selenium
Ashley Kevorkian.Selenium
 
Ramesh Babu Resume Latest
Ramesh Babu Resume LatestRamesh Babu Resume Latest
Ramesh Babu Resume Latest
 
Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...
Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...
Jboss Application Server training-course-navi-mumbai-jboss-course-provider-na...
 
Mahesh_webMethodsProfile
Mahesh_webMethodsProfileMahesh_webMethodsProfile
Mahesh_webMethodsProfile
 
Nilesh_Surange J2EE 9.5+ Years
Nilesh_Surange J2EE  9.5+ YearsNilesh_Surange J2EE  9.5+ Years
Nilesh_Surange J2EE 9.5+ Years
 
Resume_VADIVALAGAN_A
Resume_VADIVALAGAN_AResume_VADIVALAGAN_A
Resume_VADIVALAGAN_A
 
KumarJava
KumarJavaKumarJava
KumarJava
 
Stat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo MasterStat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo Master
 
ADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and SynchingADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and Synching
 
Yuvaraj Shanmugam - Application Architect
Yuvaraj Shanmugam - Application ArchitectYuvaraj Shanmugam - Application Architect
Yuvaraj Shanmugam - Application Architect
 
Sindhumathi Vellaidurai
Sindhumathi VellaiduraiSindhumathi Vellaidurai
Sindhumathi Vellaidurai
 

Similar to Web 2.0 Development with IBM DB2

Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352sflynn073
 
Java, BA,UI resumes
Java, BA,UI resumesJava, BA,UI resumes
Java, BA,UI resumesNeel A
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412FirmansyahIrma1
 
Virtualising Tier 1 Apps
Virtualising Tier 1 AppsVirtualising Tier 1 Apps
Virtualising Tier 1 AppsIwan Rahabok
 
Full stack Java Developer
Full stack Java DeveloperFull stack Java Developer
Full stack Java DeveloperMdHasan872214
 
J2 EEE SIDES
J2 EEE  SIDESJ2 EEE  SIDES
J2 EEE SIDESbputhal
 
Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh Dasari
 
Notes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationNotes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationAlan McSweeney
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 

Similar to Web 2.0 Development with IBM DB2 (20)

Sai_Resume
Sai_ResumeSai_Resume
Sai_Resume
 
Chezhian S Annamalai Resume
Chezhian S Annamalai ResumeChezhian S Annamalai Resume
Chezhian S Annamalai Resume
 
KaranDeepSinghCV
KaranDeepSinghCVKaranDeepSinghCV
KaranDeepSinghCV
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352
 
Db trends final
Db trends   finalDb trends   final
Db trends final
 
Java, BA,UI resumes
Java, BA,UI resumesJava, BA,UI resumes
Java, BA,UI resumes
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 
Virtualising Tier 1 Apps
Virtualising Tier 1 AppsVirtualising Tier 1 Apps
Virtualising Tier 1 Apps
 
Amarjit Resume
Amarjit ResumeAmarjit Resume
Amarjit Resume
 
Full stack Java Developer
Full stack Java DeveloperFull stack Java Developer
Full stack Java Developer
 
Vijayakumar_Subramaniapillai_Sr.Java_Developer
Vijayakumar_Subramaniapillai_Sr.Java_DeveloperVijayakumar_Subramaniapillai_Sr.Java_Developer
Vijayakumar_Subramaniapillai_Sr.Java_Developer
 
Madhava_Sr_JAVA_J2EE
Madhava_Sr_JAVA_J2EEMadhava_Sr_JAVA_J2EE
Madhava_Sr_JAVA_J2EE
 
JulianSerna2016
JulianSerna2016JulianSerna2016
JulianSerna2016
 
J2 EEE SIDES
J2 EEE  SIDESJ2 EEE  SIDES
J2 EEE SIDES
 
Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead
 
Patel v res_(1)
Patel v res_(1)Patel v res_(1)
Patel v res_(1)
 
Notes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationNotes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And Modernisation
 
Lec2 ecom fall16
Lec2 ecom fall16Lec2 ecom fall16
Lec2 ecom fall16
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 

Web 2.0 Development with IBM DB2

  • 1. 0 Web 2.0 Development with DB2 Dr. Vladimir Bacvanski, Vice President, InferData, vladimir@inferdata.com Rafael Coss, Solutions Architect, IBM, rcoss@ibm.com Session Number 2166
  • 2. Outline Challenges of Enterprise Web 2.0 Systems Some Side-Effects of O/R Mapping Data-Driven Applications and pureQuery Rich Internet Applications: Ajax and Dojo with RAD pureQuery + JEE Applications with RAD pureQuery + Situational Applications with WebSphere sMash IBM Optim Development Studio Integrating pureQuery and WebSphere sMash with RAD
  • 3. 2 Show of Hands! How many are developers, managers,involved with databases, others? Are you using Java, Ruby, Python, Groovy, PHP,? How many are using EJB, plain JDBC, Hibernate? What’s most important? Productivity Reuse Availability Performance Shared Database Flexibility
  • 4. COMMUNITYParticipation RICHUser Interfaces Software as aSERVICE Web 2.0 DATA
  • 5. What matters most to Enterprise Web 2.0 Systems? MVC architecture? Java vs. Python vs. [insert your favorite language]? Ajax vs. Flash? MASSIVE AMOUNTS OF DATA
  • 6. Java Data Access – Two Views of the World Writing Java code is so easy with this eclipse environment.I wish it was that easy to get the SQL right. JSP QoS goals Spring Another runaway query! Where are these coming from? JDBC? Hmmm… Runstats XML http Partition strategy Stored Procedures mashup SQL Response Time! REORG JSON JDBC This ORM doesn’t allow me to leverage all my database’s SQL. Inconsistent response time? How long will it take me to find the offending application sending bad SQL this time? JDBC I can’t believe I got called out last week. I wish I could see how these queries will run in production. SQLJ JPA These ad-hoc queries are dangerous. We need a library of tested SQL interfaces. Application Developer Database Developer& Administrator Spring Why does this query take so long? iBatis, . . . Sometimes I need POJOs, sometime JSON, sometimes XML, what should I use? Static SQL? Sounds like another delay to getting my program deployed Another GRANT request? This security administration is out of control. Can I examine the SQL “before” the application is deployed?
  • 7. Meet in the Middle Data Mapping Approaches Application-Centric Top-Down Start with Object Domain Model ORM Mapping Well supported in dynamic languages and frameworks Hybrid Meet in the middle Can be challenging w/o comprising Data-Centric Bottom-UP Start with Relational Data Model Not well supported in dynamic languages and frameworks Top Down Persistence Layer Bottom Up 6
  • 8.
  • 9. Where is the SQL coming from?
  • 12. How do we tune it?
  • 13. How de we manage it?
  • 15. Some App Server vendors claim (unsurprisingly) that Managed objects performs fine.
  • 16. There are many user claims of bad Managed object performance is bad on the web.
  • 17. As always, the truth is in the middle.
  • 18. And will depend on your app server, application, database, etc ..“Our top story: Large Customer moves from COBOL to Java to become more agile. In other news, DBA develop amnesia.” 7 7
  • 19. A high-performance, data access platform to simplify developing, managing, securing, and optimizing data access. Introducing pureQuery pureQuery Components: Simple and intuitive API Enables SQL access to databases or in-memory Java objects Facilitates best practices Optim Development Studio (integrates with RAD) Integrated development environment with Java and SQL support Improve problem isolation and impact analysis Optim pureQuery Runtime Flexible static SQL deployment for DB2
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. Code Example: pureQuery 11 Employee myEmp= db.queryFirst( "SELECT NAME, ADDRESS, PHONE_NUM FROM EMP WHERE NAME=?", Employee.class, name); Even simpler, if we have a method getEmployee with a Java annotation or XML file with SQL for the query: Employee myEmp= getEmployee(name);
  • 25. Design Develop Optimize Govern Models Policies Metadata Deploy Operate IBM Optim pureQuery Reduce costs Increase system throughput Improve developer productivity Move workload to zIIP and zAAP Improve quality of service for new and existing Java applications Improve performance Lock in access plans Speed up problem resolution Reduce development time for new Java applications Bridge Java and data Balance productivity and control Enhance developer and DBA collaboration Enhance security Limit user access Minimize SQL injection risk Improve audit readiness Developer Develop Code Debug Test Tune, Package Tester
  • 26. Why should DBAs care ? DBAs have little to no visibility of application SQL before deployment, no opportunity for review and optimization Problem isolation takes days with contemporary environments such as Java, PHP, .NET, etc due to inability to trace SQL to Java application and source code Constantly increasing Java application workload taxes existing systems – need to fit more work into existing systems SQL injection represents an increasing risk to data security
  • 27. Why should Developers care ? Get data access right the first time ! Get it done faster - Improved productivity Single environment that spans Java application and database development Improved problem isolation and resolution
  • 28. How well does it work? – Java applications In-house testing shows significant performance improvements IRWW – an OLTP workload, Type 4 driver Cache hit ratio between 70 and 85% 23 % improvement in throughput using pureQuery over dynamic JDBC 15% - 25% reduction on CPU per transaction over dynamic JDBC 15
  • 29.
  • 30. Application accesses DB2 for z/OS*Any performance data contained in this document were determined in various controlled laboratory environments and are for reference purposes only. Customers should not adapt these performance numbers to their own environments as system performance standards. The results that may be obtained in other operating environments may vary significantly. Users of this document should verify the applicable data for their specific environment. 16
  • 31. 17 Control performance Decide at deployment time how the SQL is executed Understand and lock down the access plan for SQL Replace suboptimal SQL without changing the application Control security Prevent SQL injection Prevent execution of unauthorized SQL Better manage database security See inside applications that are driving your database Understand where SQL comes from Understand when frameworks and ORM’s are getting in the way Simplify problem determination and troubleshooting Correlate problem SQL with applications, ORM’s and frameworks Optim pureQuery Runtime
  • 32. 18 How do I start with pureQuery Existing applications Optimize existing JDBC (and .NET!) applications No code changes needed Have to go through the client optimization process to get to static SQL New applications Use the pureQuery API Development codes using one API regardless of whether it is deployed dynamically or statically DBA deploys statically No need to go through client optimization process Other JPA, iBatis, Hibernate
  • 33. 19 pureQuery Gives You Options V2.1 Feature Data Web Services, Project Zero, sMash .Net applications Hibernate, iBATIS, EclipseLink,... JPA for WebSphere, Apache OpenJPA Optim pureQuery Plain JDBC JPA API Web API Open Source Persistence API .Net Applications pureQuery API JDBC API JPA Persistence Engine Open Source Persistence Engine JDBC pureQuery ADO .Net JCC driver DB2 and Informix now More coming
  • 34. 20 pureQuery Facilitates Best Practices Supports both inline SQL and Java annotations (method) Intuitive interfaces for common data retrieval and manipulation scenarios hides JDBC complexity Query First Homogeneous Batch Reduce network trips to the database Query Over Java Collections Heterogeneous Batch Use custom result handlers to map results to POJO’s, XML, JSON, … Write high performance Java data access applications, Part 3: Data Studio pureQuery API best practices -- VitorRodrigues http://www.ibm.com/developerworks/db2/library/techarticle/dm-808rodrigues/?S_TACT=105AGX01&S_CMP=LP
  • 35. 21 Optimize Existing JDBC Applications Improve performance for DB2 – without changing a line of code Capture Configure Bind Execute pureQuery client optimization enables static execution for JDBC applications (custom-developed, framework-based, or packaged) Existing JDBC Application Captured SQL- related metadata JDBC Driver w/ pureQuery Dynamic SQL execution Static SQL execution DB2 Data Servers "The ability to use static SQL with pureQuery is huge. Recently, I worked with a client who could reduce CPU usage by 7 percent thanks to this one feature." — David Beulke, Pragmatic Solutions Inc.
  • 36. Business Analyst RequirementsAnalyst Data Architect Data Access Developer Database Administrator Software Architect Developer Integration with Rational Creates businessprocess model WebSphereBusiness Modeler Transform between business items and data model Create & manage software delivery requirements Link requirements to data assets RationalRequisitePro Create architectural model enablingthe tasks from BPM to be automated RationalSoftware Modeler 7.5 Transform between software and data models Create or reverse engineer logical and physical models Transform Models to Code RationalSoftware Architect 7.5 Infosphere Data Architect 7.5 Implement new& integrate existing services Implement newprocedures and services RationalApplication Developer7. 5 Optim Development Studio Extract test data from production systems Rational ClearQuest Optim Test Data Manager
  • 37. Add basic OR mapping and annotated-method style pureQuery pureQuery Balances Productivity and Control Managed objects Object-relational mapping Full SQL control Code all your SQL JDBC / SQLJ Use SQL templates, inline only Spring templates iBATIS Complex OR mapping and persistence management, but loss of controls Hibernate Adds container management option OpenJPA (EJB3)
  • 38. RAD / Development Studio Data Centric Development Scenario Write in JavaUsing RAD+WAS FP for Web 2.0 Write in Java with pureQueryUsing Optim Dev. Studio in RAD Access generated Java data objects from code developed in RAD WAS Feature Pack for Web 2.0
  • 39. RAD and Web 2.0 Rich Internet Applications RAD supports development of Ajax applications Essentially: HTML + JavaScript + Asynchronous communication Uses Dojo Ajax libraries IBM Dojo extensions Visual tools for Dojo UI development Libraries and tools: Invoking Java code from Dojo with RPC Adapter JSON4J Ajax messaging 25
  • 40. Choosing the Right Tools Strategic, IT built applications. WebSphere sMash Responding to unplanned situations. Innovating around prospective business opportunities where agility is key and the outcome is still unknown. Enabling new insights by combining information from the web and enterprise data sources. RAD + WASHeavily used, complex applications built by IT teams. Usage Simple applications built by professionals
  • 41. What is WebSphere sMash? Groovy and PHP Uses pureQuery for data access Can use Java code Convention over configuration Common tasks do not require configuration Application-centric runtime Write the app, run it, and it’s ready for use No need for a separate application server Each app has its own JVM process Fast start! 27 A complete platform for developing, assembling and executing agile Web 2.0 apps quickly and simply.
  • 42. RAD, WebSphere sMash and pureQuery in Data Centric Development Development scenario: A database already exist We want to use the productive Optim Development Studio development features We want to benefit from pureQuery features We may need to integrate with other already existing components and applications Solution: Use WebSphere sMash together with RAD + Development Studio Shell share Generate Java code from Development Studio functionality, use from Groovy Use RAD powerful features for GUI Dojo development and integration with other components and applications
  • 43. Development and Execution: pureQuery and sMash Develop mostly w. Optim Dev. Studio + sMash Develop mostly with RAD RIA UI with Dojo Design DB JEE/J2EEComponents Existing Applications Execution
  • 44.
  • 45.
  • 46.
  • 47. Invoke generated method to list the employees
  • 48. Convert the result to JSON and send it to the client
  • 49. Clients consume the result as e.g. RIA: AJAX, Flex, …
  • 50.
  • 53.
  • 58.
  • 59. Web, Blogs Project Zero http://www.projectzero.org Integrated Data Management (Optim and Data Studio) http://www.ibm.com/developerworks/spaces/optim Blogs: On Building Software http://www.OnBuildingSoftware.com Data Life Cycle ++ http://datalifecycle.blogspot.com Twitter: http://twitter.com/OnSoftware http://twitter.com/racoss 38
  • 60. 39 Thank You!Your Feedback is Important to Us Please complete the survey for this session by: Accessing the SmartSite on your smart phone or computer at: iodsmartsite.com Surveys / My Session Evaluations Visiting any onsite event kiosk Surveys / My Session Evaluations Each completed survey increases your chance to win an Apple iPod Touch with daily drawling sponsored by Alliance Tech 39