JOE PASQUA
EVP PRODUCTS, MARKLOGIC
CHALLENGE:
MAKE DEVELOPERS
10X MORE PRODUCTIVE
DEVELOPER EXPERIENCE
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 5
Tables, rows, columns
Java Objects
Data Model Language
Java
SQL, PL/SQL
ORM
Spring
Technology
Switch
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 6
“
”Martin Fowler
Jeff Atwood
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 7
Tables, rows, columns
Java Objects
HTML, encoded URLS
Data Model
JavaScript
Java
SQL, PL/SQL
ORM
JSP
Struts
Spring
Technology Language
Switch
Switch
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 8
Tables, rows, columns
Java Objects
JSON
Data Model
Java
SQL, PL/SQL
ORM
Jackson
Spring
Angular JavaScript
Language
Switch
Switch
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 9
JSON
Java Objects
Data Model
Java
Jackson
Jackson
JSONAngular
Spring
JavaScript
Language
Switch
Switch
ORM
JavaScript
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 10
Data Model
JSON
JSON JavaScript
JSON JavaScript
Node.js
JavaScript
Language
Jackson
Jackson Switch
Switch
Angular
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 11
DX: Meeting developers where they are
Native JSON
Server-Side JavaScript
Enhanced Java Client
Node.js driver
Samplestack
CHALLENGE:
BUILD POWER TOOLS FOR
REGULATORY COMPLIANCE
BITEMPORAL
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 14
Typical reaction to an explanation of Bitemporal
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 15
Let’s start at the beginning
 Databases keep track of one thing: Data
 In the real world, stuff happens
Bob SmithAlice Jones
Bob AliceisMarriedTo
What do you know about ______ ?
did
Ted
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 16
Historical (Temporal) Data
FEB
14
FEB
26
APR
30
Jul
12
Oct
15
When I found
out he moved
FEB
25
APR
27
Jul
09
Oct
14
When he
actually moved
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 17
Just remember these three things…
What Happened
FEB
25
When it Happened
FEB
26
When we found out
Not knowing the difference in these two
dates can be a regulatory nightmare
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 18
What makes MarkLogic Bitemporal special?
Bitemporal you can actually use Bitemporal for all of your data
Bob Alice
isMarriedTo
Ted
Won’t break the bank
No schema roadblocks
CHALLENGE:
FIND ANSWERS YOU DIDN’T
KNOW YOU HAD
SEMANTICS
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 21
Semantics: Representing Facts
There’s a guy I
know named John
who lives in London
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 22
Guy
isA
I
know
London
livesIn
John
Semantics: Representing Facts
There’s a guy I
know named John
who lives in London
Subject Object
predicate
FACTS
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 23
Lots of sources of facts
Your own dataFIBOdbpedia
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 24
Inference: Automatically discover new facts
Database
product
Softwareis
Registration Data
Industry Data General Data
Software
CompanyisA
Inference
worksAt
Stephen Buxton
MarkLogic
worksAt
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 25
Semantics: Other Advances
Performance!
Aggregates
Updates
Property Paths
Inference
MORE!
© COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 27
There’s a lot more to MarkLogic 8
Management
REST API
Incremental
Backup
Query-Based
Flex-Rep
Enhanced
HTTP Server

Joe Pasqua

  • 1.
  • 3.
  • 4.
  • 5.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 5 Tables, rows, columns Java Objects Data Model Language Java SQL, PL/SQL ORM Spring Technology Switch
  • 6.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 6 “ ”Martin Fowler Jeff Atwood
  • 7.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 7 Tables, rows, columns Java Objects HTML, encoded URLS Data Model JavaScript Java SQL, PL/SQL ORM JSP Struts Spring Technology Language Switch Switch
  • 8.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 8 Tables, rows, columns Java Objects JSON Data Model Java SQL, PL/SQL ORM Jackson Spring Angular JavaScript Language Switch Switch
  • 9.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 9 JSON Java Objects Data Model Java Jackson Jackson JSONAngular Spring JavaScript Language Switch Switch ORM JavaScript
  • 10.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 10 Data Model JSON JSON JavaScript JSON JavaScript Node.js JavaScript Language Jackson Jackson Switch Switch Angular
  • 11.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 11 DX: Meeting developers where they are Native JSON Server-Side JavaScript Enhanced Java Client Node.js driver Samplestack
  • 12.
    CHALLENGE: BUILD POWER TOOLSFOR REGULATORY COMPLIANCE
  • 13.
  • 14.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 14 Typical reaction to an explanation of Bitemporal
  • 15.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 15 Let’s start at the beginning  Databases keep track of one thing: Data  In the real world, stuff happens Bob SmithAlice Jones Bob AliceisMarriedTo What do you know about ______ ? did Ted
  • 16.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 16 Historical (Temporal) Data FEB 14 FEB 26 APR 30 Jul 12 Oct 15 When I found out he moved FEB 25 APR 27 Jul 09 Oct 14 When he actually moved
  • 17.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 17 Just remember these three things… What Happened FEB 25 When it Happened FEB 26 When we found out Not knowing the difference in these two dates can be a regulatory nightmare
  • 18.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 18 What makes MarkLogic Bitemporal special? Bitemporal you can actually use Bitemporal for all of your data Bob Alice isMarriedTo Ted Won’t break the bank No schema roadblocks
  • 19.
    CHALLENGE: FIND ANSWERS YOUDIDN’T KNOW YOU HAD
  • 20.
  • 21.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 21 Semantics: Representing Facts There’s a guy I know named John who lives in London
  • 22.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 22 Guy isA I know London livesIn John Semantics: Representing Facts There’s a guy I know named John who lives in London Subject Object predicate FACTS
  • 23.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 23 Lots of sources of facts Your own dataFIBOdbpedia
  • 24.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 24 Inference: Automatically discover new facts Database product Softwareis Registration Data Industry Data General Data Software CompanyisA Inference worksAt Stephen Buxton MarkLogic worksAt
  • 25.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 25 Semantics: Other Advances Performance! Aggregates Updates Property Paths Inference
  • 26.
  • 27.
    © COPYRIGHT 2015MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.SLIDE: 27 There’s a lot more to MarkLogic 8 Management REST API Incremental Backup Query-Based Flex-Rep Enhanced HTTP Server

Editor's Notes

  • #6 Let's look at how this would typically be implemented today and some of the pros and cons. Java is a popular language for building applications. It has a huge and mature ecosystem which makes it ideal for integration scenarios where your application must interact with many different back-office services. For the past 40 years, the relational database has been the persistence for applications. And that's great if your data maps nicely to a static relational model. However, even if you're data can be nicely normalized to tables there's still a significant effort to map that to the domain model in your Java application. Finally, in the Web 1.0 world the Java middle tier wasn't just responsible for enforcing the business rules, but would also build up the UI and orchestrate the business logic. "If the user selects the blue widget, make sure she's asked about the warranty". For the limited interactivity on the client-side you had JavaScript in the browser. These balkanized data models and execution environments led to micro-specializations among a development team as well as a lot of brittle plumbing to connect the layers.
  • #7  Fowler: "To avoid the mapping problem you have two alternatives. Either you use the relational model in memory, or you don't use it in the database." http://martinfowler.com/bliki/OrmHate.html
  • #8 Let's look at how this would typically be implemented today and some of the pros and cons. Java is a popular language for building applications. It has a huge and mature ecosystem which makes it ideal for integration scenarios where your application must interact with many different back-office services. For the past 40 years, the relational database has been the persistence for applications. And that's great if your data maps nicely to a static relational model. However, even if you're data can be nicely normalized to tables there's still a significant effort to map that to the domain model in your Java application. Finally, in the Web 1.0 world the Java middle tier wasn't just responsible for enforcing the business rules, but would also build up the UI and orchestrate the business logic. "If the user selects the blue widget, make sure she's asked about the warranty". For the limited interactivity on the client-side you had JavaScript in the browser. These balkanized data models and execution environments led to micro-specializations among a development team as well as a lot of brittle plumbing to connect the layers.
  • #9 Two trends have changed the power structure in the application stack and thus the technologies. Devices became more capable. Rather than just rendering static views they have become capable of executing sophisticated business logic and even dynamic view rendering. As more things have become possible in your browser or on you phone, user expectations about interactivity have increased. Fewer clicks, more animations, real-time push are all expected in a modern app. As a result, much of the logic that used to run in the remote app server now lives in the browser. Rather than sending the UI as HTML and just having the browser draw the pixels. A thick-client gets application state from the middle tier and renders its own views, updating the app state. The middle tier is responsible for business rules, like verifying the credentials of the user and enforcing that you're not selling more widgets than you have in inventory—things that aren't possible in an untrusted client like a browser. Because the programming language of the browser is JavaScript, JSON is the most convenient and high-fidelity serialization format for data between the middle tier and the browser. Conveniently, JSON, with numbers, strings, maps, and arrays maps pretty closely to Java primitives. Libraries like Jackson allow relatively straightforward marshalling of application in state in Java objects to and from JSON.
  • #10 So, let's model our persistent state as JSON too. This significantly reduces the format mismatch between the persistence and the application tier eliminating layers of error-prone plumbing and a huge source of technical debt.
  • #11 Still have this brittle mapping between data models and the context switch between the browser programming environment and the middle tier. Scripting environment for network services with JavaScript Event loop: Single thread, non-blocking I/O, and asynchronous events “N” in MEAN: JavaScript-JSON throughout the stack Large, growing ecosystem and significant developer “pull”
  • #12 Native JSON: The fastest growing data format on the planet The most common choice for APIs With XML, JSON, RDF, Geo, ..., developers can pick the right format for the job Server Side JavaScript: The most popular programming language on the Internet More JavaScript programmers than iPhone programmers The ONLY database with full JavaScript support Having JavaScript makes having XQuery better Enhanced Java Layer: The most ubiquitous environment for our customers The only language with more adoption than JavaScript We’ve made the Java library easier to use and faster Node.js: The up-and-coming platform for the middle tier JavaScript in the DB, JS in the middle tier (Node.js), and JS in the browser Developers can opt for an end-to-end JS experience We’re the only stack that gives you that choice Samplestack: A full-fledged MarkLogic sample application Demonstrates best practices for building 3-tier applications Demonstrates how to extend the MarkLogic database Not just “Hello World”, a real application Enhanced HTTP Server: Making it easier to use MarkLogic out of the box Less setup, tuned for the common case And More!
  • #18 Bitemporal keeps track of: What happened (Bad guy moved from here to there) When it happened (He actually moved on Apr 27) When you found out it happened (We found out & updated the DB on Apr 30) Incredibly valuable for regulatory compliance and auditing Lots of value even in “uni”-temporal uses
  • #19 Bitemporal that you can actually use Data Volumes Schema Changes Bitemporal for all your data Documents, Semantic Triples, Geospatial, … Even queries can be stored bitemporally It’s Bitemporal the MarkLogic Way
  • #24 The middle is part of the FIBO ontology that describes a “Formally Constituted Organization”
  • #25 I’m running a conference registration app and I keep track of who has registered, and where they work Here’s an example, Stephen Buxton registered for my conference and he works at MarkLogic I keep track of that with triples Now I’m asked to provide a list of attendees from software companies. Unfortunately I don’t know that. I can look for help figuring this out from linked open data sets Maybe there is a resource that lists the products of various companies There might be another source, like dbpedia, that categorizes types of products Now I’ve got all the building blocks, but somehow I have to put it all together and draw an inference We can do just that with our automatic Inference capability and rules I can combine my own facts with facts from my industry, facts from the world, and create an Inference that gives me the information I need
  • #26 We always knew Semantics would be a multi-release process MarkLogic 7 laid the foundation and was our most quickly adopted feature MarkLogic 8 focused on three major areas Performance Full SPARQL 1.1 support Inference SPARQL is the industry standard way of working with Semantics SPARQL 1.1 is the current standard We added major functionality in MarkLogic 8 Aggregates: The ability to do analytics over triples Property Paths: More powerful exploration of semantic graphs Update: The ability to insert, delete, and update triples directly from SPARQL
  • #28 Lots of work beyond “the big three” Management API Incremental Backup Query-Based Flexible Replication Linux ODBC driver More than I have time to mention