MarkLogic 8: Samplestack Kasey Alderete, Justin Makeig, Charles Greer, Daphne Maddox January 2015
MarkLogic 8 Feature Presentations Topics Developer Experience: Samplestack and Reference Architecture Product Manager Kasey Alderete Developer Experience: Node.js and Java Client APIs, Server-side JavaScript, and Native JSON REST Management API, Flexible Replication, Sizing, and Reference Hardware Architectures Bitemporal Justin Makeig Caio Milani Jim Clark Semantics Stephen Buxton SLIDE: 2
Agenda Developer Experience Overview What is Samplestack? Getting Started building Samplestack Application Features Code Demo Angular.js Browser Application Java Application Middle Tier Q & A SLIDE: 3
DEVELOPER EXPERIENCE
MarkLogic 8 Developer Experience Objectives Better align with how software is built, tested, integrated, deployed, and maintained Lower barriers to entry: Success without supervision Make it easier to attract and retain great developers More reusable patterns and tools No compromises on performance, reliability, differentiators SLIDE: 5
New and Enhanced Features in MarkLogic 8 Samplestack: Reference architecture instance Client APIs: Extensible drivers for Java and Node.js Open development: Transparency and responsiveness with GitHub-first Server-Side JavaScript: Not XQuery Native JSON: Unified indexing, query for today s data SLIDE: 6
REFERENCE (SOFTWARE) ARCHITECTURE
Three-Tier Architecture SLIDE: 8
User Interface Data views, user workflow Application Business rules, domain model, integration Database Persistent state, stored procedures Security, Monitoring, Config Mgmt Business Services Resources (Customer, Approval, etc.) JSON over HTTP Data Services Documents, collections, elements JSON/XML over HTTP SLIDE: 9
Service Layer Orchestration, messaging Application Business rules, domain model, integration Database Persistent state, stored procedures Security, Monitoring, Config Mgmt Business Services Resources (Customer, Approval, etc.) JSON over HTTP Data Services Documents, collections, elements JSON/XML over HTTP SLIDE: 10
SAMPLESTACK
Samplestack An end-to-end three-tiered application in Java and Node.js Encapsulates best practices and introduces key MarkLogic concepts Use sample code as a model for building applications more quickly Modern technology stack shows where MarkLogic fits in your environment Front End Middle Tier Database Layer Participate. Contribute. Fork it. SLIDE: 12
Samplestack unlocks MarkLogic s power Two paths to exploring MarkLogic via the fluent Client APIs in Java and Node.js Emphasizes the role of the middle tier (for authentication and business services) and highlights interactions with the database and front-end Learn how to make data modeling easier using relationships and native document formats (JSON, POJOs, and RDF) See how MarkLogic s built-in search and indexing capabilities work Get an introduction to Semantics by seeing how Samplestack links related documents with SPARQL queries SLIDE: 13
Sample application with enterprise-grade features Transactional multi-document commits Demonstrates the security model with role-based privileges and document permissions Supports agile development throughout the cycle from build automation through test MVC framework separates concerns and eases maintainability and extensibility SLIDE: 14
PRODUCT DEEP DIVE
Technology Stack Front End Automation Testing Application Tier PhantomJS Database Layer Selenium SLIDE: 16
How will you use this? Sample code for accelerating learning how to develop applications on MarkLogic Foundation for building reusable tools and establishing patterns See new MarkLogic 8 features in action: Enhancements to the Java API (POJO façade, bulk load) REST Management API (for gradle database configuration) Server-Side JavaScript Native JSON SLIDE: 17
We invite on-going participation on GitHub! Open Development Track progress, see what s coming, make requests or suggestions Types of useful feedback Questions on what s confusing What s useful Alternatives to consider How to get involved Submit feedback and questions via GitHub issues Fork, modify, contribute! SLIDE: 18 Contributor process is set up see contributing guidelines
EA Site Application Feature Full-text Search Facets Users & Roles Restricted Content Ask, Answer, Comment Voting Accepted Answers & Reputation Related tags User records and Q&A documents MarkLogic Concept Indexes, query styles Search constraints, analytics Authentication, security, privileges Document permissions Document updates Updates impact search relevance Transactional model, data integrity Semantics Data Model for JSON and POJOs SLIDE: 19
GitHub Homepage SLIDE: 20
Samplestack Demo SLIDE: 21
Developer Demo Topics for discussion Java Middle Tier: Using MarkLogic from REST New JSON and JavaScript Document patch Bulk read and write Use of extensions Using the Client APIs Configuration vs. Runtime storing indexes, users, roles, options declaratively Browser areas of interest: unit testing, end-to-end testing overview of browser "build" process ui-router and application "states generic "model object" (the M in MVC) constructing a search SASS/Twitter Bootstrap/CSS and semantic classes JavaScript promises and asynchrony SLIDE: 23
THANKS!