SlideShare a Scribd company logo
1 of 57
The magic is in the glue
  XQuery+Cloud
    Daniela Florescu
        Oracle
My personal history
 PhD in object-oriented query
 processing/optimization
 Loved the database theory and practice
 (relational, object-oriented, semi-
 structured)
 Got really interested in it, and thought it
 was important…

 ….then I joined Oracle.
                                               2
… after 4 years in Oracle
 Applications are the really important issue
   How to develop, deploy, maintain, evolve, customize
   Databases are a side effect
      Customers are educated to think they need them
      DB are only useful as part of a general application architecture
 Customer is the king
   If they don’t make $$$, you don’t either
 Customers are in pain building apps right now




                                                                         3
Agenda
 Current pain in building apps
 What can XQuery do for customers ?
 What can the Cloud do for customers ?
 How do we put them together ?
 How do XQuery+Cloud solve the problem ?
 Some open research problems



                                           4
Imagine I am a customer, I need
to build a new app.
 1. How much does it cost
      Cost of developing the app (salaries)
      Cost of deploying the app
        Hardware, software licenses, maintenance
      Loss of income because of mis-provisioning
      Do I have to pay up front?
      Is the cost proportional with the income ?


                                                   5
Other questions ?
2. How fast can I deliver the app
      Quicker on the market then my competitors ?
3. How good the application is
      More customers for the app. => more income
      Acceptable operational characteristics ?
4. Can I adapt if something changes ?
      Operational characteristics
      Functionality
5. Can I customize the same app in a different
   vertical / different set of customers ?
6. Is there a risk in the technology ?

                                                    6
Customers concerns
 Cost
 Time to market
 Flexibility
 Customizability
 Sustainability
 Risk

 Often a tradeoff
                     7
Different classes of customers
 Enterprise (e.g. Bank of America)
   Cost
   Sustainability
   Risk
   Customizability
   Flexibility
   Time to market

 Government agency (eg. DoD)
   Sustainability
   Cost
   Time to market (?)
   Flexibility (?)
   Customizability
   Risk
 Consumer (e.g Craiglist)
   Time to market
   Cost
   Flexibility
   Customizability
   Sustainability
   Risk                              8
Typical enterprise app stack

          Communication
         (XML, REST, WS)       Oracle
                                IBM
          Application logic     SAP
            (Java, C#)        Microsoft

             Database
              SQL)




                                          9
Cost ? $$$$!

Cost of developing the app
                                                  Communication
Cost of deploying the app
                                                 (XML, REST, WS)
    (hardware, software licenses, maintenance)
Loss of income because of mis-                   Application logic
   provisioning                                    (Java, C#)
Do I have to pay up front?
Is the cost proportional with the income ?          Database
                                                     SQL)




                                                                     10
Time to market ? Years!
2. How fast can I deliver the app
                                 Communication
                                (XML, REST, WS)

                                    Application logic
                                      (Java, C#)

                                       Database
                                        SQL)




                                                        11
Flexibility ? Customizability?
 Hardly any !
  Can I adapt if something changes ?             Communication
      Operational characteristics               (XML, REST, WS)
      Functionality
  Can I customise it to a different vertical?   Application logic
                                                  (Java, C#)
Oracle experience: for every $1M
for Oracle app licenses, customers                 Database
pay $2M to customize it.                            SQL)
(SAP experience even worse :-)




                                                                    12
Two major evil points
1. Multi layer infrastructure
2. Schemas a pre-requisite                 Communication

                                          Application
                                            Logic
                                           (schema-less)

  New apps:                                                            put
                                       Persistent (key, value) store   get
    Even the Oracle apps !                   (schema-less)
  New platforms:
    Salesforce, GoogleApps, Facebook

 XQuery a possible solution.                                           13
Another evil point
  Lack of cost elasticity
    Cost proportional with income
  Lack of elasticity in performance
    Response time independent of # clients




The Cloud is the beginning of a solution.

                                             14
Agenda
 Current pain in building apps
 What can XQuery do for customers ?
 What can the Cloud do for customers ?
 How do we put them together ?
 How do XQuery+Cloud solve the problem ?
 Some open research problems



                                       15
Why XML ?
 Covers all spectrum from structured data
 to textual information
 Schema independent
 Platform independent
 Continuity with the basic Internet
 infrastructure (URI, HTML, HTTP)




                                            16
What is XQuery ?
A programming language for XML processing
Functional in style
Turing complete
Contains:
   Navigation
   Declarative query and aggregation (FLWOR)
   Search (full text)
   Declarative updates
   Transforms
   Scripting
   Streaming and windowing
   Error handling and second order expressions
   Packaging (modules)
Has limitations (further)
                                                 17
History and status
 Standard of the W3C
   Good and bad
 10 years old
 40 existing implementations
 Implemented in major databases
 Best implementations in open source
 If you have XML data, it is hard to avoid.


                                              18
Navigation
 fn:doc("catalog.xml") /items/item
 fn:doc("catalog.xml")/items//item
 fn:doc("catalog.xml")/items//*
 fn:doc("catalog.xml")/items/@item
 fn:doc("parts.xml")/parts/part[partno =
 $i/partno]
 $x/items/item



                                           19
FLWOR
for $i in fn:doc("catalog.xml")/items/item,
$p in fn:doc("parts.xml")/parts/part[partno =
   $i/partno],
$s in fn:doc("suppliers.xml")/suppliers
   /supplier[suppno = $i/suppno]
order by $p/description, $s/suppname
return $ s

Groupby, having, outerjoins, etc
                                                20
Creation of new information
<descriptive-catalog>
  { for $i in fn:doc("catalog.xml")/items/item,
  $p in fn:doc("parts.xml")/parts/part[partno =
      $i/partno],
  $s in fn:doc("suppliers.xml")/suppliers
      /supplier[suppno = $i/suppno]
  order by $p/description, $s/suppname
  return
    <item> { $p/description, $s/suppname, $i/price }
    </item> }
</descriptive-catalog>
                                                       21
Textual search
 $doc ftcontains ( ( "mustang" ftand
 ({("great", "excellent")} any word occurs at
 least 2 times) ) window 11 words ftand
 ftnot "rust" ) same paragraph




                                                22
Declarative updates
for $p in /inventory/part
 let $deltap := $changes/part[partno eq
   $p/partno]
return
  replace value of node $p/quantity with $p/quantity
    + $deltap/quantity




                                                   23
Transforms
let $oldx := /a/b/x
return
  copy $newx := $oldx
  modify
     (rename node $newx as "newx",
     replace value of node $newx by $newx * 2)
  return ($oldx, $newx)




                                                 24
Streams and windowing
 for sliding window $w in (2, 4, 6, 8, 10, 12, 14)
 start at $s when fn:true()
 only end at $e when $e - $s eq 2
  return <window>{ $w }</window>
 Result of the above query:
 <window>2 4 6</window>
 <window>4 6 8</window>
 <window>6 8 10</window>
 <window>8 10 12</window>
 <window>10 12 14</window>
                                                     25
Scripting expressions
block
{
      declare $a as xs:integer := 0;
      declare $b as xs:integer := 1;
      declare $c as xs:integer := $a + $b;
      declare $fibseq as xs:integer* := ($a, $b);
      while ($c < 100)
      {
           set $fibseq := ($fibseq, $c);
           set $a := $b;
           set $b := $c;
           set $c := $a + $b;
      };
      $fibseq;
}                                                   26
Where can it be used in
today’s architectures?
 Databases
 Middle tiers
   Information dispatch
   Transformation
   Data integration
 Browsers (see XQIB demo, WWW’09 paper)
 Mobile devices (XQuery on iPhone anyone ?)

                                         27
XQuery’s real potential
                            XML              XML
 Standalone programming
 language for information
 intensive applications
                             Application
 Can build extremely rich
 applications                  Logic
                                  (XQuery)




                                    XML
                                                   28
1. Cost
Why XQuery ?                                  2. Time to market
                                              3. Flexibility
                                              4. Customizability
Because of XML                                5. Sustainability
  Schema independent                          6. Risk
  Continuity with basic Internet infrastructure
  Continuity structured data <--> textual information
XQuery’s own advantages
  Declarative
  Single layer code
  Open source friendly
Extra Goodies
  Opportunity to rethink ACID transactions
  Unique opportunities for introspection
  Code and data migration
                                                             29
Declarativity
 Small number of lines of code
   Development cost
   Time to market
   # bugs
 Easy to optimize automatically
 Easy to parallelize automatically
   Especially important in the cloud
   Easier to achieve elasticity in performance
 Easier to generate automatically
   Important for smart/non-developers UIs

                                                 30
Declarativity, negative side
1. Less number of developers capable of
   writing such code
2. Easy to write, harder to read
3. Tools harder to make (e.g. debuggers)
4. Performance can be unstable

   Despite that, in the history of CS we evolve in the
   direction of declarativity
     Assembly, C, C++, Java, Haskell
     Cobol, SQL

                                                         31
Rethink transactions and data
consistency
 XQuery silent as ACID transactions go
   On purpose !
 Are ACID transactions really needed ?
 Are they really enforced in Web apps ?
 No.
 Open research field
   Interaction of programming languages with new
   transactional models and new data consistency
   models

                                                   32
Sigmod’08
 Data consistency is something to optimize, not an
 absolute requirement
 Data consistency models [Tanembaum]
   Shared-Disk (NaĂŻve approach)
      No concurrency control at all
   Eventual Consistency (Basic Protocol)
      Updates become visible any time and will persist
      No lost update on page level
   Atomicity
      All or no updates of a transaction become visible
   Monotonic reads, Read your writes, Monotonic writes, ...
   Strong Consistency
      database-style consistency (ACID) via OCC
 Data consistency a la carte
                                                          33
Introspection opportunities
Closed world
Everything is (or will be) XML
  Data, schemas, code, PULs, metadata, config
  s, runtime information
Unique opportunity to:
  introspect at runtime all of them
  reason about them
  change them dynamically (not only data, but
  schemas, code and configuration)
Open research field:
  Consequences on programming                   34
Why NOT XQuery
XML is complicated
XML Schema is hard/impossible to understand
XQuery is complicated
XQuery is incomplete (maybe research opport.?)
  Missing a standard persistent data model
  Missing DDL functionality (indexes, integrity constraints)
  Missing basic functionalities (e.g. eval, function overloading)
  Missing basic data modeling functionality (n:m relationships)
XQuery lacks a standard environment (e.g. J2EE)
(maybe research opport.?)
No tools (debuggers, profilers) (maybe research
opport.?)
Performance is not clear yet (certainly research opport !)
There are few XQuery developers (teaching opport  )
                                                                    35
Agenda
 Current pain in building apps
 What can XQuery do for customers ?
 What can the Cloud do for customers ?
 How do we put them together ?
 How do XQuery+Cloud solve the problem ?
 Some open research problems



                                       36
What is Cloud Computing ?
 The „rental cars“ paradigm for computing
 Commoditization of (certain aspects of ) Computing
   CPU, storage, and network
 Goal 1: Reduction of Cost
   principle: fine-grained renting of resources
   „pay as you go“ (elasticity of cost)
 Goal 2: Simplification of Management
   potentially infinite/unbreakable computing resources
   potentially no administration
 Goal 3: Elasticity of performance
   Same resp time independently of workload
 Note: does not work yet for DB or apps
                                                          37
Case Study: Amazon AWS
EC2 : scalable virtual private servers using
Xen.
S3 : WS based storage for applications
SQS : hosted message queue for web
applications
SimpleDB : the core functionality of a
database
Hadoop based functionality
Similar providers: IBM Blue
Cloud, Microsoft Azure, (GoogleApp
engine)
                                               38
The limits of the (Amazon) Cloud
  Cloud Computing a great starting point
  Unfortunately, only a fraction of the stack

         Customization, Training, ...
                  Application
              Application Server
                    DBMS
                  Hardware
                                                39
Making use of the Cloud

 Solution 1 (conservative)               Risk   Benefit

   Take an existing application
   (Java+SQL, etc) and try to make it
   run on the cloud (e.g. make Oracle
   run on AWS)
 Solution 2 (reactionary)
   Create an fresh new infrastructure,
   specially designed for Web apps
   requirements, to be deployed in the
   cloud
                                                   40
Solution 1 (conservative)
  take a traditional DBMS (e.g., Oracle, MySQL, ...)
  install it on an EC2 instance
  use S3 or EBS as a persistent store
Advantages
  traditional databases are available
  proven to work well; many tools
  people trained and confident with them
Disadvantages
  traditional DBMS solve the wrong problem anyway (e.g.
  focus on consistency)
  traditional DBMS make the wrong assumptions (DB
  optimizers fail on virtualized hardware)

                                                          41
Solution 2 (reactionary)
 Rethink the whole system architecture
   do NOT use a traditional DBMS and app server
   create new breed of application server (with DB)
   run application server on n EC2 instances
   use S3 + distributed consistency protocols
 Advantages and Disadvantages
   requires new breed of (immature) systems + tools
   solves the right problem and gets it right
 Examples:
   GoogleApps (Python in the cloud)
   Sausalito (www.28msec.com) (XQuery in the cloud)
                                                      42
Agenda
 Current pain in building apps
 What can XQuery do for customers ?
 What can the Cloud do for customers ?
 How do we put them together ?
 How do XQuery+Cloud solve the problem ?
 Some open research problems



                                       43
XQuery + AWS Cloud
Cookbook:
  Take an existing XQuery processor
  Partition the XML data on S3
  Map REST calls to XQuery programs
  Run the XQuery programs on EC2
  Use SQS for (asyncronous) updates
  Voila.
The magic is in the glue (XQuery proc. + AWS )
Application Server + Web Server + Database
  integrated XQuery based application stack for Web-
  based apps
  fully SOA enabled
  all pre-configured and lean (ZERO admin)             44
XQuery in the Cloud
(connected)




                      45
Customers concerns
 Cost
 Time to market
 Flexibility
 Customizability
 Sustainability




                     46
XQuery in the Cloud (no
Server)




                          47
XQuery in the Cloud (offline)




                                48
Demo at www.28msec.com !

Look at www.programmableweb.com
for use cases ( consumer and
enterprise mashups)



                              49
Competitors: Internet
Web 2.0 Development Frameworks
  E.g., Ruby on Rails, PHP / LAMP, ...
  Deployment in the cloud still problematic
Google AppEngine, Facebook Apps
  Proprietary programming model (Python-based)
  Limited functionality
  Vendor lock-in, privacy issues
Oracle on AWS, do-it-yourself on AWS
  limited functionality and/or scalability

                                                 50
Competitors: Enterprise
Salesforce AppExchange
  proprietary programming model
  Limited applications domain (CRM)
Microsoft Azure
  .Net programming model
  manual configuration needed
  (recent offering, market adoption unclear)
Virtualization Companies (e.g., VMWare)
  No offerings / expertise for data management
Oracle (Grid, RAC)
  limited scalability, cost prohibitive
                                                 51
Web 2.0 Support vs. Cloud
 Support
  Deployment

        AWS
                               Google App Engine,         XQuery+AWS
Cloud                          Facebook

               Salesforce, Workday
                                         Azure
        VMWare Cloud,
        Citrix                                            Oracle
Trad.                                Ruby on Rails



                                                                   Development
                Proprietary                          Standard

                                                                                 52
Agenda
 Current pain in building apps
 What can XQuery do for customers ?
 What can the Cloud do for customers ?
 How do we put them together ?
 How do XQuery+Cloud solve the problem ?
 Some open research problems



                                       53
Versions and variations
Human mind does not like agreements
  We like our differences (for a good reason)
Different ways to see:
  Data
  Schemas
  Code
Current stack is imposing agreement
  unlike our own nature
We have to come up with solutions that allow,
welcome and exploit variations
Darwinian, evolutionary approach to data,
schema and code mutations                    54
Versions and variations
 Research problems:
   What is a (data, schema, code) variation ?
   What does it mean to run an app in the
   presence of variations ?
   How do you store (index, etc) variations ?
   How do you re-integrate them back into
   mainstream app (e.g. community voting ?)
   What is the correct lifecycle for
   data, schema, code that allows and maximally
   exploits variations ?
 Note: I have a easier time to think of a
 solution if the app is in XML/XQuery rather
 if the app is in Java+SQL (even Python)
                                                  55
Conclusion
 XQuery in the cloud a serious alternative
 for some (large # and large $$) customers
 Nothing equivalent in the competition:
   How “solid” (standard, tested) this is
   Richness of applications
   Potential for optimization and parallelization
   Ease of porting to the cloud



                                                    56
My advice
Keep the eye on the apps, not db
Keep the customer in mind
Rethink the entire stack
Don’t be afraid to shake down
existing ideas about how
applications are supposed to work

Thank you!                          57

More Related Content

Similar to The magic is in the glue: How XQuery and Cloud solve customer pain points in building applications

XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGOptum
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashupsaliraza786
 
Gangadhar_Challa_Profile
Gangadhar_Challa_ProfileGangadhar_Challa_Profile
Gangadhar_Challa_ProfileGangadhar Challa
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynotejimfuller2009
 
Boulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
Boulder/Denver BigData: Cluster Computing with Apache Mesos and CascadingBoulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
Boulder/Denver BigData: Cluster Computing with Apache Mesos and CascadingPaco Nathan
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Codemotion
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack DiscussionZaiyang Li
 
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Matthias Noback
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Matthias Noback
 
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Matthias Noback
 
Irina Kogan Resume
Irina Kogan ResumeIrina Kogan Resume
Irina Kogan Resumeirina_kogan
 
MyMobileWeb Certification Part II
MyMobileWeb Certification Part IIMyMobileWeb Certification Part II
MyMobileWeb Certification Part IIcrdlc
 
XQuery - The GSD (Getting Stuff Done) language
XQuery - The GSD (Getting Stuff Done) languageXQuery - The GSD (Getting Stuff Done) language
XQuery - The GSD (Getting Stuff Done) languagejimfuller2009
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN StackRob Davarnia
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Trayan Iliev
 
CoverPage_Resume V2
CoverPage_Resume V2CoverPage_Resume V2
CoverPage_Resume V2Gary Lewis
 

Similar to The magic is in the glue: How XQuery and Cloud solve customer pain points in building applications (20)

XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUG
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashups
 
Gangadhar_Challa_Profile
Gangadhar_Challa_ProfileGangadhar_Challa_Profile
Gangadhar_Challa_Profile
 
Naresh Babu
Naresh BabuNaresh Babu
Naresh Babu
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
 
Boulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
Boulder/Denver BigData: Cluster Computing with Apache Mesos and CascadingBoulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
Boulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
 
K.VenkatKrishna
K.VenkatKrishnaK.VenkatKrishna
K.VenkatKrishna
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
 
Rajeev_Resume
Rajeev_ResumeRajeev_Resume
Rajeev_Resume
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
 
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
 
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
 
Irina Kogan Resume
Irina Kogan ResumeIrina Kogan Resume
Irina Kogan Resume
 
Ramji
RamjiRamji
Ramji
 
MyMobileWeb Certification Part II
MyMobileWeb Certification Part IIMyMobileWeb Certification Part II
MyMobileWeb Certification Part II
 
XQuery - The GSD (Getting Stuff Done) language
XQuery - The GSD (Getting Stuff Done) languageXQuery - The GSD (Getting Stuff Done) language
XQuery - The GSD (Getting Stuff Done) language
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
 
CoverPage_Resume V2
CoverPage_Resume V2CoverPage_Resume V2
CoverPage_Resume V2
 

More from Dave Kellogg

Kellogg Strategic Use and Abuse of SaaS Metrics
Kellogg Strategic Use and Abuse of SaaS MetricsKellogg Strategic Use and Abuse of SaaS Metrics
Kellogg Strategic Use and Abuse of SaaS MetricsDave Kellogg
 
Kellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdf
Kellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdfKellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdf
Kellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdfDave Kellogg
 
Balderton Metrics that Matter in 2023.pdf
Balderton Metrics that Matter in 2023.pdfBalderton Metrics that Matter in 2023.pdf
Balderton Metrics that Matter in 2023.pdfDave Kellogg
 
Emerging Stronger from the Downturn than You Went In, A Balderton Webinar
Emerging Stronger from the Downturn than You Went In, A Balderton WebinarEmerging Stronger from the Downturn than You Went In, A Balderton Webinar
Emerging Stronger from the Downturn than You Went In, A Balderton WebinarDave Kellogg
 
Lagging, leading, and predictive indicators
Lagging, leading, and predictive indicatorsLagging, leading, and predictive indicators
Lagging, leading, and predictive indicatorsDave Kellogg
 
Lagging, Leading, and Predictive Indicators
Lagging, Leading, and Predictive IndicatorsLagging, Leading, and Predictive Indicators
Lagging, Leading, and Predictive IndicatorsDave Kellogg
 
Lagging, Leading, and Predictive Indicators, r1.5.pptx
Lagging, Leading, and Predictive Indicators, r1.5.pptxLagging, Leading, and Predictive Indicators, r1.5.pptx
Lagging, Leading, and Predictive Indicators, r1.5.pptxDave Kellogg
 
SaaStock Dublin 2022, Kellogg, r1.6.pdf
SaaStock Dublin 2022,  Kellogg, r1.6.pdfSaaStock Dublin 2022,  Kellogg, r1.6.pdf
SaaStock Dublin 2022, Kellogg, r1.6.pdfDave Kellogg
 
You Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptx
You Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptxYou Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptx
You Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptxDave Kellogg
 
Kellogg The Top 5 Scale-Up Mistakes.pdf
Kellogg The Top 5 Scale-Up Mistakes.pdfKellogg The Top 5 Scale-Up Mistakes.pdf
Kellogg The Top 5 Scale-Up Mistakes.pdfDave Kellogg
 
Balderton Meetup: How To Build a Marketing Machine with Dave Kellogg
Balderton Meetup:  How To Build a Marketing Machine with Dave KelloggBalderton Meetup:  How To Build a Marketing Machine with Dave Kellogg
Balderton Meetup: How To Build a Marketing Machine with Dave KelloggDave Kellogg
 
Perspectives on Growth
Perspectives on GrowthPerspectives on Growth
Perspectives on GrowthDave Kellogg
 
Dave Kellogg SaaStr 2021: A CEO's Guide to Marketing
Dave Kellogg SaaStr 2021:  A CEO's Guide to MarketingDave Kellogg SaaStr 2021:  A CEO's Guide to Marketing
Dave Kellogg SaaStr 2021: A CEO's Guide to MarketingDave Kellogg
 
Dave Kellogg GainSight Pulse Everywhere 20201: NDR Key Benchmarks
Dave Kellogg GainSight Pulse Everywhere 20201:  NDR Key BenchmarksDave Kellogg GainSight Pulse Everywhere 20201:  NDR Key Benchmarks
Dave Kellogg GainSight Pulse Everywhere 20201: NDR Key BenchmarksDave Kellogg
 
PE Portfolio CEO Summit, Topical Marketing Chats
PE Portfolio CEO Summit, Topical Marketing ChatsPE Portfolio CEO Summit, Topical Marketing Chats
PE Portfolio CEO Summit, Topical Marketing ChatsDave Kellogg
 
Kellogg VC CEO Summit
Kellogg VC CEO SummitKellogg VC CEO Summit
Kellogg VC CEO SummitDave Kellogg
 
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...Dave Kellogg
 
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020Dave Kellogg
 
How to get sales and marketing working together
How to get sales and marketing working togetherHow to get sales and marketing working together
How to get sales and marketing working togetherDave Kellogg
 
Dave Kellogg's Slides at a Private Equity Group Sales & Marketing Summit
Dave Kellogg's Slides at a Private Equity Group Sales & Marketing SummitDave Kellogg's Slides at a Private Equity Group Sales & Marketing Summit
Dave Kellogg's Slides at a Private Equity Group Sales & Marketing SummitDave Kellogg
 

More from Dave Kellogg (20)

Kellogg Strategic Use and Abuse of SaaS Metrics
Kellogg Strategic Use and Abuse of SaaS MetricsKellogg Strategic Use and Abuse of SaaS Metrics
Kellogg Strategic Use and Abuse of SaaS Metrics
 
Kellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdf
Kellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdfKellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdf
Kellogg SaaStock C-Suite and Ground Truth^LLLLJ r1.5.pdf
 
Balderton Metrics that Matter in 2023.pdf
Balderton Metrics that Matter in 2023.pdfBalderton Metrics that Matter in 2023.pdf
Balderton Metrics that Matter in 2023.pdf
 
Emerging Stronger from the Downturn than You Went In, A Balderton Webinar
Emerging Stronger from the Downturn than You Went In, A Balderton WebinarEmerging Stronger from the Downturn than You Went In, A Balderton Webinar
Emerging Stronger from the Downturn than You Went In, A Balderton Webinar
 
Lagging, leading, and predictive indicators
Lagging, leading, and predictive indicatorsLagging, leading, and predictive indicators
Lagging, leading, and predictive indicators
 
Lagging, Leading, and Predictive Indicators
Lagging, Leading, and Predictive IndicatorsLagging, Leading, and Predictive Indicators
Lagging, Leading, and Predictive Indicators
 
Lagging, Leading, and Predictive Indicators, r1.5.pptx
Lagging, Leading, and Predictive Indicators, r1.5.pptxLagging, Leading, and Predictive Indicators, r1.5.pptx
Lagging, Leading, and Predictive Indicators, r1.5.pptx
 
SaaStock Dublin 2022, Kellogg, r1.6.pdf
SaaStock Dublin 2022,  Kellogg, r1.6.pdfSaaStock Dublin 2022,  Kellogg, r1.6.pdf
SaaStock Dublin 2022, Kellogg, r1.6.pdf
 
You Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptx
You Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptxYou Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptx
You Can't Fix a CAC Payback Period SaaS Metrics Palooza r2.3.pptx
 
Kellogg The Top 5 Scale-Up Mistakes.pdf
Kellogg The Top 5 Scale-Up Mistakes.pdfKellogg The Top 5 Scale-Up Mistakes.pdf
Kellogg The Top 5 Scale-Up Mistakes.pdf
 
Balderton Meetup: How To Build a Marketing Machine with Dave Kellogg
Balderton Meetup:  How To Build a Marketing Machine with Dave KelloggBalderton Meetup:  How To Build a Marketing Machine with Dave Kellogg
Balderton Meetup: How To Build a Marketing Machine with Dave Kellogg
 
Perspectives on Growth
Perspectives on GrowthPerspectives on Growth
Perspectives on Growth
 
Dave Kellogg SaaStr 2021: A CEO's Guide to Marketing
Dave Kellogg SaaStr 2021:  A CEO's Guide to MarketingDave Kellogg SaaStr 2021:  A CEO's Guide to Marketing
Dave Kellogg SaaStr 2021: A CEO's Guide to Marketing
 
Dave Kellogg GainSight Pulse Everywhere 20201: NDR Key Benchmarks
Dave Kellogg GainSight Pulse Everywhere 20201:  NDR Key BenchmarksDave Kellogg GainSight Pulse Everywhere 20201:  NDR Key Benchmarks
Dave Kellogg GainSight Pulse Everywhere 20201: NDR Key Benchmarks
 
PE Portfolio CEO Summit, Topical Marketing Chats
PE Portfolio CEO Summit, Topical Marketing ChatsPE Portfolio CEO Summit, Topical Marketing Chats
PE Portfolio CEO Summit, Topical Marketing Chats
 
Kellogg VC CEO Summit
Kellogg VC CEO SummitKellogg VC CEO Summit
Kellogg VC CEO Summit
 
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2...
 
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020
Churn is Dead, Long Live Net Dollar Retention, SaaStr Annual @ Home, SaaStr 2020
 
How to get sales and marketing working together
How to get sales and marketing working togetherHow to get sales and marketing working together
How to get sales and marketing working together
 
Dave Kellogg's Slides at a Private Equity Group Sales & Marketing Summit
Dave Kellogg's Slides at a Private Equity Group Sales & Marketing SummitDave Kellogg's Slides at a Private Equity Group Sales & Marketing Summit
Dave Kellogg's Slides at a Private Equity Group Sales & Marketing Summit
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

The magic is in the glue: How XQuery and Cloud solve customer pain points in building applications

  • 1. The magic is in the glue XQuery+Cloud Daniela Florescu Oracle
  • 2. My personal history PhD in object-oriented query processing/optimization Loved the database theory and practice (relational, object-oriented, semi- structured) Got really interested in it, and thought it was important… ….then I joined Oracle. 2
  • 3. … after 4 years in Oracle Applications are the really important issue How to develop, deploy, maintain, evolve, customize Databases are a side effect Customers are educated to think they need them DB are only useful as part of a general application architecture Customer is the king If they don’t make $$$, you don’t either Customers are in pain building apps right now 3
  • 4. Agenda Current pain in building apps What can XQuery do for customers ? What can the Cloud do for customers ? How do we put them together ? How do XQuery+Cloud solve the problem ? Some open research problems 4
  • 5. Imagine I am a customer, I need to build a new app. 1. How much does it cost Cost of developing the app (salaries) Cost of deploying the app Hardware, software licenses, maintenance Loss of income because of mis-provisioning Do I have to pay up front? Is the cost proportional with the income ? 5
  • 6. Other questions ? 2. How fast can I deliver the app Quicker on the market then my competitors ? 3. How good the application is More customers for the app. => more income Acceptable operational characteristics ? 4. Can I adapt if something changes ? Operational characteristics Functionality 5. Can I customize the same app in a different vertical / different set of customers ? 6. Is there a risk in the technology ? 6
  • 7. Customers concerns Cost Time to market Flexibility Customizability Sustainability Risk Often a tradeoff 7
  • 8. Different classes of customers Enterprise (e.g. Bank of America) Cost Sustainability Risk Customizability Flexibility Time to market Government agency (eg. DoD) Sustainability Cost Time to market (?) Flexibility (?) Customizability Risk Consumer (e.g Craiglist) Time to market Cost Flexibility Customizability Sustainability Risk 8
  • 9. Typical enterprise app stack Communication (XML, REST, WS) Oracle IBM Application logic SAP (Java, C#) Microsoft Database SQL) 9
  • 10. Cost ? $$$$! Cost of developing the app Communication Cost of deploying the app (XML, REST, WS) (hardware, software licenses, maintenance) Loss of income because of mis- Application logic provisioning (Java, C#) Do I have to pay up front? Is the cost proportional with the income ? Database SQL) 10
  • 11. Time to market ? Years! 2. How fast can I deliver the app Communication (XML, REST, WS) Application logic (Java, C#) Database SQL) 11
  • 12. Flexibility ? Customizability? Hardly any ! Can I adapt if something changes ? Communication Operational characteristics (XML, REST, WS) Functionality Can I customise it to a different vertical? Application logic (Java, C#) Oracle experience: for every $1M for Oracle app licenses, customers Database pay $2M to customize it. SQL) (SAP experience even worse :-) 12
  • 13. Two major evil points 1. Multi layer infrastructure 2. Schemas a pre-requisite Communication Application Logic (schema-less) New apps: put Persistent (key, value) store get Even the Oracle apps ! (schema-less) New platforms: Salesforce, GoogleApps, Facebook XQuery a possible solution. 13
  • 14. Another evil point Lack of cost elasticity Cost proportional with income Lack of elasticity in performance Response time independent of # clients The Cloud is the beginning of a solution. 14
  • 15. Agenda Current pain in building apps What can XQuery do for customers ? What can the Cloud do for customers ? How do we put them together ? How do XQuery+Cloud solve the problem ? Some open research problems 15
  • 16. Why XML ? Covers all spectrum from structured data to textual information Schema independent Platform independent Continuity with the basic Internet infrastructure (URI, HTML, HTTP) 16
  • 17. What is XQuery ? A programming language for XML processing Functional in style Turing complete Contains: Navigation Declarative query and aggregation (FLWOR) Search (full text) Declarative updates Transforms Scripting Streaming and windowing Error handling and second order expressions Packaging (modules) Has limitations (further) 17
  • 18. History and status Standard of the W3C Good and bad 10 years old 40 existing implementations Implemented in major databases Best implementations in open source If you have XML data, it is hard to avoid. 18
  • 19. Navigation fn:doc("catalog.xml") /items/item fn:doc("catalog.xml")/items//item fn:doc("catalog.xml")/items//* fn:doc("catalog.xml")/items/@item fn:doc("parts.xml")/parts/part[partno = $i/partno] $x/items/item 19
  • 20. FLWOR for $i in fn:doc("catalog.xml")/items/item, $p in fn:doc("parts.xml")/parts/part[partno = $i/partno], $s in fn:doc("suppliers.xml")/suppliers /supplier[suppno = $i/suppno] order by $p/description, $s/suppname return $ s Groupby, having, outerjoins, etc 20
  • 21. Creation of new information <descriptive-catalog> { for $i in fn:doc("catalog.xml")/items/item, $p in fn:doc("parts.xml")/parts/part[partno = $i/partno], $s in fn:doc("suppliers.xml")/suppliers /supplier[suppno = $i/suppno] order by $p/description, $s/suppname return <item> { $p/description, $s/suppname, $i/price } </item> } </descriptive-catalog> 21
  • 22. Textual search $doc ftcontains ( ( "mustang" ftand ({("great", "excellent")} any word occurs at least 2 times) ) window 11 words ftand ftnot "rust" ) same paragraph 22
  • 23. Declarative updates for $p in /inventory/part let $deltap := $changes/part[partno eq $p/partno] return replace value of node $p/quantity with $p/quantity + $deltap/quantity 23
  • 24. Transforms let $oldx := /a/b/x return copy $newx := $oldx modify (rename node $newx as "newx", replace value of node $newx by $newx * 2) return ($oldx, $newx) 24
  • 25. Streams and windowing for sliding window $w in (2, 4, 6, 8, 10, 12, 14) start at $s when fn:true() only end at $e when $e - $s eq 2 return <window>{ $w }</window> Result of the above query: <window>2 4 6</window> <window>4 6 8</window> <window>6 8 10</window> <window>8 10 12</window> <window>10 12 14</window> 25
  • 26. Scripting expressions block { declare $a as xs:integer := 0; declare $b as xs:integer := 1; declare $c as xs:integer := $a + $b; declare $fibseq as xs:integer* := ($a, $b); while ($c < 100) { set $fibseq := ($fibseq, $c); set $a := $b; set $b := $c; set $c := $a + $b; }; $fibseq; } 26
  • 27. Where can it be used in today’s architectures? Databases Middle tiers Information dispatch Transformation Data integration Browsers (see XQIB demo, WWW’09 paper) Mobile devices (XQuery on iPhone anyone ?) 27
  • 28. XQuery’s real potential XML XML Standalone programming language for information intensive applications Application Can build extremely rich applications Logic (XQuery) XML 28
  • 29. 1. Cost Why XQuery ? 2. Time to market 3. Flexibility 4. Customizability Because of XML 5. Sustainability Schema independent 6. Risk Continuity with basic Internet infrastructure Continuity structured data <--> textual information XQuery’s own advantages Declarative Single layer code Open source friendly Extra Goodies Opportunity to rethink ACID transactions Unique opportunities for introspection Code and data migration 29
  • 30. Declarativity Small number of lines of code Development cost Time to market # bugs Easy to optimize automatically Easy to parallelize automatically Especially important in the cloud Easier to achieve elasticity in performance Easier to generate automatically Important for smart/non-developers UIs 30
  • 31. Declarativity, negative side 1. Less number of developers capable of writing such code 2. Easy to write, harder to read 3. Tools harder to make (e.g. debuggers) 4. Performance can be unstable Despite that, in the history of CS we evolve in the direction of declarativity Assembly, C, C++, Java, Haskell Cobol, SQL 31
  • 32. Rethink transactions and data consistency XQuery silent as ACID transactions go On purpose ! Are ACID transactions really needed ? Are they really enforced in Web apps ? No. Open research field Interaction of programming languages with new transactional models and new data consistency models 32
  • 33. Sigmod’08 Data consistency is something to optimize, not an absolute requirement Data consistency models [Tanembaum] Shared-Disk (NaĂŻve approach) No concurrency control at all Eventual Consistency (Basic Protocol) Updates become visible any time and will persist No lost update on page level Atomicity All or no updates of a transaction become visible Monotonic reads, Read your writes, Monotonic writes, ... Strong Consistency database-style consistency (ACID) via OCC Data consistency a la carte 33
  • 34. Introspection opportunities Closed world Everything is (or will be) XML Data, schemas, code, PULs, metadata, config s, runtime information Unique opportunity to: introspect at runtime all of them reason about them change them dynamically (not only data, but schemas, code and configuration) Open research field: Consequences on programming 34
  • 35. Why NOT XQuery XML is complicated XML Schema is hard/impossible to understand XQuery is complicated XQuery is incomplete (maybe research opport.?) Missing a standard persistent data model Missing DDL functionality (indexes, integrity constraints) Missing basic functionalities (e.g. eval, function overloading) Missing basic data modeling functionality (n:m relationships) XQuery lacks a standard environment (e.g. J2EE) (maybe research opport.?) No tools (debuggers, profilers) (maybe research opport.?) Performance is not clear yet (certainly research opport !) There are few XQuery developers (teaching opport  ) 35
  • 36. Agenda Current pain in building apps What can XQuery do for customers ? What can the Cloud do for customers ? How do we put them together ? How do XQuery+Cloud solve the problem ? Some open research problems 36
  • 37. What is Cloud Computing ? The „rental cars“ paradigm for computing Commoditization of (certain aspects of ) Computing CPU, storage, and network Goal 1: Reduction of Cost principle: fine-grained renting of resources „pay as you go“ (elasticity of cost) Goal 2: Simplification of Management potentially infinite/unbreakable computing resources potentially no administration Goal 3: Elasticity of performance Same resp time independently of workload Note: does not work yet for DB or apps 37
  • 38. Case Study: Amazon AWS EC2 : scalable virtual private servers using Xen. S3 : WS based storage for applications SQS : hosted message queue for web applications SimpleDB : the core functionality of a database Hadoop based functionality Similar providers: IBM Blue Cloud, Microsoft Azure, (GoogleApp engine) 38
  • 39. The limits of the (Amazon) Cloud Cloud Computing a great starting point Unfortunately, only a fraction of the stack Customization, Training, ... Application Application Server DBMS Hardware 39
  • 40. Making use of the Cloud Solution 1 (conservative) Risk Benefit Take an existing application (Java+SQL, etc) and try to make it run on the cloud (e.g. make Oracle run on AWS) Solution 2 (reactionary) Create an fresh new infrastructure, specially designed for Web apps requirements, to be deployed in the cloud 40
  • 41. Solution 1 (conservative) take a traditional DBMS (e.g., Oracle, MySQL, ...) install it on an EC2 instance use S3 or EBS as a persistent store Advantages traditional databases are available proven to work well; many tools people trained and confident with them Disadvantages traditional DBMS solve the wrong problem anyway (e.g. focus on consistency) traditional DBMS make the wrong assumptions (DB optimizers fail on virtualized hardware) 41
  • 42. Solution 2 (reactionary) Rethink the whole system architecture do NOT use a traditional DBMS and app server create new breed of application server (with DB) run application server on n EC2 instances use S3 + distributed consistency protocols Advantages and Disadvantages requires new breed of (immature) systems + tools solves the right problem and gets it right Examples: GoogleApps (Python in the cloud) Sausalito (www.28msec.com) (XQuery in the cloud) 42
  • 43. Agenda Current pain in building apps What can XQuery do for customers ? What can the Cloud do for customers ? How do we put them together ? How do XQuery+Cloud solve the problem ? Some open research problems 43
  • 44. XQuery + AWS Cloud Cookbook: Take an existing XQuery processor Partition the XML data on S3 Map REST calls to XQuery programs Run the XQuery programs on EC2 Use SQS for (asyncronous) updates Voila. The magic is in the glue (XQuery proc. + AWS ) Application Server + Web Server + Database integrated XQuery based application stack for Web- based apps fully SOA enabled all pre-configured and lean (ZERO admin) 44
  • 45. XQuery in the Cloud (connected) 45
  • 46. Customers concerns Cost Time to market Flexibility Customizability Sustainability 46
  • 47. XQuery in the Cloud (no Server) 47
  • 48. XQuery in the Cloud (offline) 48
  • 49. Demo at www.28msec.com ! Look at www.programmableweb.com for use cases ( consumer and enterprise mashups) 49
  • 50. Competitors: Internet Web 2.0 Development Frameworks E.g., Ruby on Rails, PHP / LAMP, ... Deployment in the cloud still problematic Google AppEngine, Facebook Apps Proprietary programming model (Python-based) Limited functionality Vendor lock-in, privacy issues Oracle on AWS, do-it-yourself on AWS limited functionality and/or scalability 50
  • 51. Competitors: Enterprise Salesforce AppExchange proprietary programming model Limited applications domain (CRM) Microsoft Azure .Net programming model manual configuration needed (recent offering, market adoption unclear) Virtualization Companies (e.g., VMWare) No offerings / expertise for data management Oracle (Grid, RAC) limited scalability, cost prohibitive 51
  • 52. Web 2.0 Support vs. Cloud Support Deployment AWS Google App Engine, XQuery+AWS Cloud Facebook Salesforce, Workday Azure VMWare Cloud, Citrix Oracle Trad. Ruby on Rails Development Proprietary Standard 52
  • 53. Agenda Current pain in building apps What can XQuery do for customers ? What can the Cloud do for customers ? How do we put them together ? How do XQuery+Cloud solve the problem ? Some open research problems 53
  • 54. Versions and variations Human mind does not like agreements We like our differences (for a good reason) Different ways to see: Data Schemas Code Current stack is imposing agreement unlike our own nature We have to come up with solutions that allow, welcome and exploit variations Darwinian, evolutionary approach to data, schema and code mutations 54
  • 55. Versions and variations Research problems: What is a (data, schema, code) variation ? What does it mean to run an app in the presence of variations ? How do you store (index, etc) variations ? How do you re-integrate them back into mainstream app (e.g. community voting ?) What is the correct lifecycle for data, schema, code that allows and maximally exploits variations ? Note: I have a easier time to think of a solution if the app is in XML/XQuery rather if the app is in Java+SQL (even Python) 55
  • 56. Conclusion XQuery in the cloud a serious alternative for some (large # and large $$) customers Nothing equivalent in the competition: How “solid” (standard, tested) this is Richness of applications Potential for optimization and parallelization Ease of porting to the cloud 56
  • 57. My advice Keep the eye on the apps, not db Keep the customer in mind Rethink the entire stack Don’t be afraid to shake down existing ideas about how applications are supposed to work Thank you! 57