SlideShare une entreprise Scribd logo
1  sur  55
for real & Web App development www.orientechnologies.com NoSqlDay – Brescia, Italy 2011
What?!!! How a DBMS can improve  the development of  Web Applications ? www.orientechnologies.com
...And... Why  Web Applications would need something different than a Relational DBMS? www.orientechnologies.com
(1) RDBMSs have more than 30 years Information Technology is not properly  the same of  '70 ... www.orientechnologies.com
(2) In the  Web age applications could have Thousands  or  Millions of users Are you ready for this? www.orientechnologies.com
(3)  Time-to-Market measured not anymore in years/man but days/weeks  for a demo and months for the final www.orientechnologies.com
(4) Applications are more “ social”  with much more  relationships -  tabular data and  +  interconnected  Graphs www.orientechnologies.com
(5) Who believe yet to the bullshit that performance problems can be resolved just by  scaling  with the hardware? www.orientechnologies.com
(6) We use new stuff everyday HTTP ,  REST ,  Javascript  & JSON How can I use them in better way without conversions & mapping? www.orientechnologies.com
(7) Modern applications are mostly  I/O Bound not CPU bound. Often the DB Is the bottleneck of all www.orientechnologies.com
www.orientechnologies.com NoSQL =  “Not Only SQL” =  make the  best choice  for your use case
www.orientechnologies.com Non exhaustive list of NoSQL products: AllegroGraph, Amazon SimpleDB, Amazon Dynamo, Dynomite, BerkleyDB, Google BigTable, Cassandra, CouchDB, DB4O, Hbase, Hipertable, Hive, Jackrabbit, InfiniteGraph, InfoGrid, Memcached, MemcacheDB, Mnesia, M/DB/DT.M, MongoDB, Neo4J,  OrientDB , Pig, Project Voldemort, RavenDB, Redis, Riak, Scalaris, Sesame, Sones, Terrastore, Tokyo Cabinet/Tyrant, Yahoo! Pnuts/Sherpa
www.orientechnologies.com The “NoSQL container” groups so very-very-very different products, no standard, difficult to choice, difficult to learn them
www.orientechnologies.com Can I have a Fast, scalable, flexible storage with  transactions , SQL  and  security easy to use and maintain?
www.orientechnologies.com The fastest  NoSQL   document - graph  dbms
= best features of newest NoSQL  solutions + best features of  Relational DBMS + new ideas  and  concepts www.orientechnologies.com
0 config Very light = 1 Mb No dependencies Java = run everywhere Fast = 200,000 insert/sec ACID Transactions SQL www.orientechnologies.com
Direct Link = No JOIN Schema-less Schema-full Schema-mixed Complex types (list/set/map/...) Support for Trees and Graphs www.orientechnologies.com
Binary protocol HTTP RESTful like protocol Native import/export JSON Object Oriented concepts Security www.orientechnologies.com
Embeddable In-memory Client/Server Distributed N nodes www.orientechnologies.com
Example of a Graph www.orientechnologies.com
100% compliant with TinkerPop Blueprints standard for GraphDBs Support for GREMLIN Graph language Several Graph algorithms available www.orientechnologies.com
SQL & relationships select from Account where  address .city.country.name  = 'Italy' select from Account where addresses  contains  ( city.country.name  = 'Italy') www.orientechnologies.com
SQL & trees/graphs select from Profile where friends  traverse(0,7)  ( sex = 'female' ) (Soon new specific operators for trees and graphs) www.orientechnologies.com
SQL & strings select from Profile where name .toUpperCase()  = 'LUCA' select from City where country.name .substring(1,3).toUpperCase()  = 'TAL' select from Agenda where phones  contains  ( number .indexOf( '+39' )  > -1 ) select from Agenda where email  matches   'A-Z0-9._%+-?+@A-Z0-9.-?+A-Z?{2,4}' www.orientechnologies.com
SQL & schema-less select from Profile where  any()  like '%Jay%' select from Stock where  all()  is not null www.orientechnologies.com
SQL & collections select from Tree where children  contains  ( married = true ) select from Tree where children  containsAll  ( married = true ) select from User where roles  containsKey  'shutdown' select from Profile where tags  in  'cool' select from Graph where edges .size()  > 0 www.orientechnologies.com
SQL & documents select from Vehicle where  @class  = 'Car' select from Friend where  @version  > 100 select from File where  @size  > 1000000 www.orientechnologies.com
Demo! www.orientechnologies.com
Case Study #1  Online Backup solution built on top of OrientDB Operates in Austria, Swiss, Germany www.orientechnologies.com
Cluster of 6 servers 450 millions of records RAID 5 and 6 18TB of data expected 50TB next months www.orientechnologies.com
Double usage of OrientDB as GraphDB for the agents and as Binary repository for the Server-side cluster www.orientechnologies.com
www.orientechnologies.com * Agent: Virtual File System as Graph * VResource VFile VDirectory VChunk -------------- hash: string content : byte[] “ Chunks” as pieces of file max 64Kb, hashed (SHA-256) to avoid duplications of data for common files EntryPoint
www.orientechnologies.com Clustered Binary repository d23kLc3eIe2 : byte[64000] OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 Cluster #1 0000-ertd Cluster #2 erte-mo93 Cluster #3 mo94-zzzz CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS Dispatcher Partitionates chunks based on HASH code Agent Agent Agent CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS
Case Study #2  Project “Trick” as ad-hoc CRM built on top of OrientDB First use of  OrientWEB.js ! www.orientechnologies.com
OrientWEB.js Sneak Peak www.orientechnologies.com
Main goals (1) improve scalability (2) improve user's experience (3) simplify development (4) avoid constraints to web designers www.orientechnologies.com
What is  OrientWEB.js ? Lightweight Javascript library Client-side only Based on HTTP, JSON and Graphs Under development, first alpha on  April 5 th  2011 www.orientechnologies.com
Use the client resources to render the pages Unload the server from the heavy task of generating HTML Pages Reduce network transfer & latency The idea is not so new but revamped using new technologies... www.orientechnologies.com
www.orientechnologies.com HTTP GET /sql/select from company where name.startsWith( 'Asset' ) { @class = 'company', @rid = '9:34', name : 'Asset Management', address : { location : 'Via Rhodesia, 34', city : { name : 'Rome' } } } HTTP PUT /document/9:34 Browser/Server messages Agent WWW OrientDB Server
Binding Object ↔ Form Binds automatically complex JSON to HTML and vice-versa Conventions over Configurations Developer has full control about customization, just respect naming conventions on <tag> ids www.orientechnologies.com
bindObject2Form() <div id=&quot;contacts&quot;> <div>Contacts: <div> Name: <input id=&quot; contacts_?0 _name&quot;></input> Surname: <input id=&quot;contacts_?0 _surname &quot;></input> Phone: <input id=&quot;contacts_?0_phone&quot;></input> <div id=&quot;address&quot;>Address:</div> <div id=&quot; contacts_?0_address &quot;> <div> City <input id=&quot; contacts_?0_address_?1_city &quot;></input> Number <input id=&quot;contacts_?0_address_?1_houseNumber&quot;></input> Postal Code <input id=&quot;contacts_?0_address_?1_cap&quot;></input> Location <input id=&quot;contacts_?0_address_?1_road&quot;></input> <button id=&quot;contacts_?0_address_?1 !remove &quot;>Remove address</button> </div> </div> <button id=&quot;contacts_?0_address !add &quot;>Add address</button> <button id=&quot;contacts_?0 !remove &quot;>Remove contact</button> </div> </div>  </div> www.orientechnologies.com Array Recursive fields 2 level arrays Actions
Object2Form binding $(function(){ // EXECUTE THE QUERY var result = database.query('select * from Company where name = 'Asset''); // CREATE THE FORM BINDING THE FIRST OBJECT OF THE RESULT SET var obj = result['result'][0]; form = new OForm(); form.object2form(obj); } function save(){ var obj =  form.form2object() ; database.save(obj); } www.orientechnologies.com
What about security? www.orientechnologies.com
Security at schema level OUser  can have multiple  ORole Permissions are setted against  ORole Resource + OPERATION {Create, Read, Update, Delete} Employee.create = false user 'reader' can't UPDATE records of class 'Employee' www.orientechnologies.com
Record level security Very similar to UNIX File System access Enabled if user class extends  OSecureRecord Class OSecureRecord { OUser owner; ORole group; char[] access; // User, Group, Others } Class Employee extends OSecureRecord www.orientechnologies.com
More on  OrientWEB.js Fully integrated with OrientDB JS driver : - preserves internal field like  @class, @rid  - uses field types if declared (schema-full) www.orientechnologies.com
Always  Free Open Source  Apache 2 license free for any purposes, even commercials www.orientechnologies.com
Prof €$$ ional $ € rvic €$ by a network of companies through Orient Technologies support, training, consulting, mentoring www.orientechnologies.com
www.orientechnologies.com OrientDB for Java developers 8 hours OrientDB Master Development 14 hours OrientDB for SOA 6 hours OrientDB and the power of graphs 6 hours OrientDB for DBA 6 hours OrientPlanet for Web Developers 6 hours
Certification Program to be part of the network do courses share revenues for support work as consultant www.orientechnologies.com Contact commercial @orientechnologies.com
NuvolaBase.com (beta) www.orientechnologies.com The first Graph Database on the Cloud always available few seconds to setup it use it from app & mobile
NuvolaBase.com (beta) www.orientechnologies.com By Alfonso Focareta twitter.com/afocareta  & Dino Ciuffetti twitter.com/tuxweb
NuvolaBase.com (beta) www.orientechnologies.com Only  200  FREE accounts available for the  NoSQLDay  event Get your account for FREE inserting “ CM2011 ” as promotional code! “ CM2011”
Luca Garulli Author of  OrientDB  and Roma <Meta> Framework Open Source projects, Member of JSR#12 (jdo 1.0) and JSR#243 (jdo 2.0) CTO at  Asset Data www.orientechnologies.com www.twitter.com/ lgarulli @Rome, Italy Discuss this talk online at http://joind.in/2944   !

Contenu connexe

Tendances

Graph Databases & OrientDB
Graph Databases & OrientDBGraph Databases & OrientDB
Graph Databases & OrientDBArpit Poladia
 
Building a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedInBuilding a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedInAmy W. Tang
 
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.frPGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.frjlb666
 
OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)Luca Garulli
 
Presto: Distributed sql query engine
Presto: Distributed sql query engine Presto: Distributed sql query engine
Presto: Distributed sql query engine kiran palaka
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample applicationAnil Allewar
 
Numeric Range Queries in Lucene and Solr
Numeric Range Queries in Lucene and SolrNumeric Range Queries in Lucene and Solr
Numeric Range Queries in Lucene and SolrVadim Kirilchuk
 
SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)Lucas Jellema
 
An Abusive Relationship with AngularJS
An Abusive Relationship with AngularJSAn Abusive Relationship with AngularJS
An Abusive Relationship with AngularJSMario Heiderich
 
MongoDB at Scale
MongoDB at ScaleMongoDB at Scale
MongoDB at ScaleMongoDB
 
Hexagonal architecture & Elixir
Hexagonal architecture & ElixirHexagonal architecture & Elixir
Hexagonal architecture & ElixirNicolas Carlo
 
Redis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Labs
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphRM
 
Baby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignBaby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignŽilvinas Kuusas
 
Kotlin and Domain-Driven Design: A perfect match - Kotlin Meetup Munich
Kotlin and Domain-Driven Design: A perfect match - Kotlin Meetup MunichKotlin and Domain-Driven Design: A perfect match - Kotlin Meetup Munich
Kotlin and Domain-Driven Design: A perfect match - Kotlin Meetup MunichFlorian Benz
 

Tendances (20)

Graph Databases & OrientDB
Graph Databases & OrientDBGraph Databases & OrientDB
Graph Databases & OrientDB
 
Building a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedInBuilding a Real-Time Data Pipeline: Apache Kafka at LinkedIn
Building a Real-Time Data Pipeline: Apache Kafka at LinkedIn
 
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.frPGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
PGDAY FR 2014 : presentation de Postgresql chez leboncoin.fr
 
OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)
 
Presto: Distributed sql query engine
Presto: Distributed sql query engine Presto: Distributed sql query engine
Presto: Distributed sql query engine
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample application
 
Numeric Range Queries in Lucene and Solr
Numeric Range Queries in Lucene and SolrNumeric Range Queries in Lucene and Solr
Numeric Range Queries in Lucene and Solr
 
SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)
 
Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
 
An Abusive Relationship with AngularJS
An Abusive Relationship with AngularJSAn Abusive Relationship with AngularJS
An Abusive Relationship with AngularJS
 
MongoDB at Scale
MongoDB at ScaleMongoDB at Scale
MongoDB at Scale
 
Hexagonal architecture & Elixir
Hexagonal architecture & ElixirHexagonal architecture & Elixir
Hexagonal architecture & Elixir
 
Recursive Query Throwdown
Recursive Query ThrowdownRecursive Query Throwdown
Recursive Query Throwdown
 
Redis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Streams for Event-Driven Microservices
Redis Streams for Event-Driven Microservices
 
Models for hierarchical data
Models for hierarchical dataModels for hierarchical data
Models for hierarchical data
 
HyperGraphQL
HyperGraphQLHyperGraphQL
HyperGraphQL
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
 
Baby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignBaby steps to Domain-Driven Design
Baby steps to Domain-Driven Design
 
GraphQL 적용기
GraphQL 적용기GraphQL 적용기
GraphQL 적용기
 
Kotlin and Domain-Driven Design: A perfect match - Kotlin Meetup Munich
Kotlin and Domain-Driven Design: A perfect match - Kotlin Meetup MunichKotlin and Domain-Driven Design: A perfect match - Kotlin Meetup Munich
Kotlin and Domain-Driven Design: A perfect match - Kotlin Meetup Munich
 

Similaire à OrientDB for real & Web App development

Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1Luca Garulli
 
Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB graphdevroom
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftSerhat Dirik
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
Crash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesCrash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesUdita Plaha
 
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...javier ramirez
 
2021 04-20 apache arrow and its impact on the database industry.pptx
2021 04-20  apache arrow and its impact on the database industry.pptx2021 04-20  apache arrow and its impact on the database industry.pptx
2021 04-20 apache arrow and its impact on the database industry.pptxAndrew Lamb
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Estelle Weyl
 
Presto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 BostonPresto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 Bostonkbajda
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application developmentzonathen
 
Application design for the cloud using AWS
Application design for the cloud using AWSApplication design for the cloud using AWS
Application design for the cloud using AWSJonathan Holloway
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyRobert Dempsey
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdflubnayasminsebl
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud ComputingPhilip Wheat
 
R the unsung hero of Big Data
R the unsung hero of Big DataR the unsung hero of Big Data
R the unsung hero of Big DataDhafer Malouche
 
Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016Aad Versteden
 

Similaire à OrientDB for real & Web App development (20)

Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1
 
Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Crash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesCrash Course HTML/Rails Slides
Crash Course HTML/Rails Slides
 
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
 
2021 04-20 apache arrow and its impact on the database industry.pptx
2021 04-20  apache arrow and its impact on the database industry.pptx2021 04-20  apache arrow and its impact on the database industry.pptx
2021 04-20 apache arrow and its impact on the database industry.pptx
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
Presto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 BostonPresto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 Boston
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
 
Application design for the cloud using AWS
Application design for the cloud using AWSApplication design for the cloud using AWS
Application design for the cloud using AWS
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud Computing
 
The Heterogeneous Data lake
The Heterogeneous Data lakeThe Heterogeneous Data lake
The Heterogeneous Data lake
 
R the unsung hero of Big Data
R the unsung hero of Big DataR the unsung hero of Big Data
R the unsung hero of Big Data
 
Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016
 

Plus de Luca Garulli

Scale Out Your Graph Across Servers and Clouds with OrientDB
Scale Out Your Graph Across Servers and Clouds  with OrientDBScale Out Your Graph Across Servers and Clouds  with OrientDB
Scale Out Your Graph Across Servers and Clouds with OrientDBLuca Garulli
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
 
How Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionHow Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionLuca Garulli
 
OrientDB and Hazelcast
OrientDB and HazelcastOrientDB and Hazelcast
OrientDB and HazelcastLuca Garulli
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeWhy relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeLuca Garulli
 
Why relationships are cool but "join" sucks
Why relationships are cool but "join" sucksWhy relationships are cool but "join" sucks
Why relationships are cool but "join" sucksLuca Garulli
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Luca Garulli
 
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itSwitching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itLuca Garulli
 
Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Luca Garulli
 
Switching from relational to the graph model
Switching from relational to the graph modelSwitching from relational to the graph model
Switching from relational to the graph modelLuca Garulli
 
Internet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptInternet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptLuca Garulli
 
Switching from the Relational to the Graph model
Switching from the Relational to the Graph modelSwitching from the Relational to the Graph model
Switching from the Relational to the Graph modelLuca Garulli
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBLuca Garulli
 
No sql matters_2012_keynote
No sql matters_2012_keynoteNo sql matters_2012_keynote
No sql matters_2012_keynoteLuca Garulli
 
OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1Luca Garulli
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and conceptsLuca Garulli
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQLLuca Garulli
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial BasicsLuca Garulli
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Luca Garulli
 

Plus de Luca Garulli (19)

Scale Out Your Graph Across Servers and Clouds with OrientDB
Scale Out Your Graph Across Servers and Clouds  with OrientDBScale Out Your Graph Across Servers and Clouds  with OrientDB
Scale Out Your Graph Across Servers and Clouds with OrientDB
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model Databases
 
How Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionHow Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolution
 
OrientDB and Hazelcast
OrientDB and HazelcastOrientDB and Hazelcast
OrientDB and Hazelcast
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeWhy relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in Rome
 
Why relationships are cool but "join" sucks
Why relationships are cool but "join" sucksWhy relationships are cool but "join" sucks
Why relationships are cool but "join" sucks
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
 
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itSwitching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.it
 
Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3
 
Switching from relational to the graph model
Switching from relational to the graph modelSwitching from relational to the graph model
Switching from relational to the graph model
 
Internet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptInternet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScript
 
Switching from the Relational to the Graph model
Switching from the Relational to the Graph modelSwitching from the Relational to the Graph model
Switching from the Relational to the Graph model
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDB
 
No sql matters_2012_keynote
No sql matters_2012_keynoteNo sql matters_2012_keynote
No sql matters_2012_keynote
 
OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQL
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial Basics
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007
 

Dernier

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 

Dernier (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 

OrientDB for real & Web App development

  • 1. for real & Web App development www.orientechnologies.com NoSqlDay – Brescia, Italy 2011
  • 2. What?!!! How a DBMS can improve the development of Web Applications ? www.orientechnologies.com
  • 3. ...And... Why Web Applications would need something different than a Relational DBMS? www.orientechnologies.com
  • 4. (1) RDBMSs have more than 30 years Information Technology is not properly the same of '70 ... www.orientechnologies.com
  • 5. (2) In the Web age applications could have Thousands or Millions of users Are you ready for this? www.orientechnologies.com
  • 6. (3) Time-to-Market measured not anymore in years/man but days/weeks for a demo and months for the final www.orientechnologies.com
  • 7. (4) Applications are more “ social” with much more relationships - tabular data and + interconnected Graphs www.orientechnologies.com
  • 8. (5) Who believe yet to the bullshit that performance problems can be resolved just by scaling with the hardware? www.orientechnologies.com
  • 9. (6) We use new stuff everyday HTTP , REST , Javascript & JSON How can I use them in better way without conversions & mapping? www.orientechnologies.com
  • 10. (7) Modern applications are mostly I/O Bound not CPU bound. Often the DB Is the bottleneck of all www.orientechnologies.com
  • 11. www.orientechnologies.com NoSQL = “Not Only SQL” = make the best choice for your use case
  • 12. www.orientechnologies.com Non exhaustive list of NoSQL products: AllegroGraph, Amazon SimpleDB, Amazon Dynamo, Dynomite, BerkleyDB, Google BigTable, Cassandra, CouchDB, DB4O, Hbase, Hipertable, Hive, Jackrabbit, InfiniteGraph, InfoGrid, Memcached, MemcacheDB, Mnesia, M/DB/DT.M, MongoDB, Neo4J, OrientDB , Pig, Project Voldemort, RavenDB, Redis, Riak, Scalaris, Sesame, Sones, Terrastore, Tokyo Cabinet/Tyrant, Yahoo! Pnuts/Sherpa
  • 13. www.orientechnologies.com The “NoSQL container” groups so very-very-very different products, no standard, difficult to choice, difficult to learn them
  • 14. www.orientechnologies.com Can I have a Fast, scalable, flexible storage with transactions , SQL and security easy to use and maintain?
  • 15. www.orientechnologies.com The fastest NoSQL document - graph dbms
  • 16. = best features of newest NoSQL solutions + best features of Relational DBMS + new ideas and concepts www.orientechnologies.com
  • 17. 0 config Very light = 1 Mb No dependencies Java = run everywhere Fast = 200,000 insert/sec ACID Transactions SQL www.orientechnologies.com
  • 18. Direct Link = No JOIN Schema-less Schema-full Schema-mixed Complex types (list/set/map/...) Support for Trees and Graphs www.orientechnologies.com
  • 19. Binary protocol HTTP RESTful like protocol Native import/export JSON Object Oriented concepts Security www.orientechnologies.com
  • 20. Embeddable In-memory Client/Server Distributed N nodes www.orientechnologies.com
  • 21. Example of a Graph www.orientechnologies.com
  • 22. 100% compliant with TinkerPop Blueprints standard for GraphDBs Support for GREMLIN Graph language Several Graph algorithms available www.orientechnologies.com
  • 23. SQL & relationships select from Account where address .city.country.name = 'Italy' select from Account where addresses contains ( city.country.name = 'Italy') www.orientechnologies.com
  • 24. SQL & trees/graphs select from Profile where friends traverse(0,7) ( sex = 'female' ) (Soon new specific operators for trees and graphs) www.orientechnologies.com
  • 25. SQL & strings select from Profile where name .toUpperCase() = 'LUCA' select from City where country.name .substring(1,3).toUpperCase() = 'TAL' select from Agenda where phones contains ( number .indexOf( '+39' ) > -1 ) select from Agenda where email matches 'A-Z0-9._%+-?+@A-Z0-9.-?+A-Z?{2,4}' www.orientechnologies.com
  • 26. SQL & schema-less select from Profile where any() like '%Jay%' select from Stock where all() is not null www.orientechnologies.com
  • 27. SQL & collections select from Tree where children contains ( married = true ) select from Tree where children containsAll ( married = true ) select from User where roles containsKey 'shutdown' select from Profile where tags in 'cool' select from Graph where edges .size() > 0 www.orientechnologies.com
  • 28. SQL & documents select from Vehicle where @class = 'Car' select from Friend where @version > 100 select from File where @size > 1000000 www.orientechnologies.com
  • 30. Case Study #1 Online Backup solution built on top of OrientDB Operates in Austria, Swiss, Germany www.orientechnologies.com
  • 31. Cluster of 6 servers 450 millions of records RAID 5 and 6 18TB of data expected 50TB next months www.orientechnologies.com
  • 32. Double usage of OrientDB as GraphDB for the agents and as Binary repository for the Server-side cluster www.orientechnologies.com
  • 33. www.orientechnologies.com * Agent: Virtual File System as Graph * VResource VFile VDirectory VChunk -------------- hash: string content : byte[] “ Chunks” as pieces of file max 64Kb, hashed (SHA-256) to avoid duplications of data for common files EntryPoint
  • 34. www.orientechnologies.com Clustered Binary repository d23kLc3eIe2 : byte[64000] OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 OrientDB Node #1 Cluster #1 0000-ertd Cluster #2 erte-mo93 Cluster #3 mo94-zzzz CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS Dispatcher Partitionates chunks based on HASH code Agent Agent Agent CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS CHUNKS
  • 35. Case Study #2 Project “Trick” as ad-hoc CRM built on top of OrientDB First use of OrientWEB.js ! www.orientechnologies.com
  • 36. OrientWEB.js Sneak Peak www.orientechnologies.com
  • 37. Main goals (1) improve scalability (2) improve user's experience (3) simplify development (4) avoid constraints to web designers www.orientechnologies.com
  • 38. What is OrientWEB.js ? Lightweight Javascript library Client-side only Based on HTTP, JSON and Graphs Under development, first alpha on April 5 th 2011 www.orientechnologies.com
  • 39. Use the client resources to render the pages Unload the server from the heavy task of generating HTML Pages Reduce network transfer & latency The idea is not so new but revamped using new technologies... www.orientechnologies.com
  • 40. www.orientechnologies.com HTTP GET /sql/select from company where name.startsWith( 'Asset' ) { @class = 'company', @rid = '9:34', name : 'Asset Management', address : { location : 'Via Rhodesia, 34', city : { name : 'Rome' } } } HTTP PUT /document/9:34 Browser/Server messages Agent WWW OrientDB Server
  • 41. Binding Object ↔ Form Binds automatically complex JSON to HTML and vice-versa Conventions over Configurations Developer has full control about customization, just respect naming conventions on <tag> ids www.orientechnologies.com
  • 42. bindObject2Form() <div id=&quot;contacts&quot;> <div>Contacts: <div> Name: <input id=&quot; contacts_?0 _name&quot;></input> Surname: <input id=&quot;contacts_?0 _surname &quot;></input> Phone: <input id=&quot;contacts_?0_phone&quot;></input> <div id=&quot;address&quot;>Address:</div> <div id=&quot; contacts_?0_address &quot;> <div> City <input id=&quot; contacts_?0_address_?1_city &quot;></input> Number <input id=&quot;contacts_?0_address_?1_houseNumber&quot;></input> Postal Code <input id=&quot;contacts_?0_address_?1_cap&quot;></input> Location <input id=&quot;contacts_?0_address_?1_road&quot;></input> <button id=&quot;contacts_?0_address_?1 !remove &quot;>Remove address</button> </div> </div> <button id=&quot;contacts_?0_address !add &quot;>Add address</button> <button id=&quot;contacts_?0 !remove &quot;>Remove contact</button> </div> </div> </div> www.orientechnologies.com Array Recursive fields 2 level arrays Actions
  • 43. Object2Form binding $(function(){ // EXECUTE THE QUERY var result = database.query('select * from Company where name = 'Asset''); // CREATE THE FORM BINDING THE FIRST OBJECT OF THE RESULT SET var obj = result['result'][0]; form = new OForm(); form.object2form(obj); } function save(){ var obj = form.form2object() ; database.save(obj); } www.orientechnologies.com
  • 44. What about security? www.orientechnologies.com
  • 45. Security at schema level OUser can have multiple ORole Permissions are setted against ORole Resource + OPERATION {Create, Read, Update, Delete} Employee.create = false user 'reader' can't UPDATE records of class 'Employee' www.orientechnologies.com
  • 46. Record level security Very similar to UNIX File System access Enabled if user class extends OSecureRecord Class OSecureRecord { OUser owner; ORole group; char[] access; // User, Group, Others } Class Employee extends OSecureRecord www.orientechnologies.com
  • 47. More on OrientWEB.js Fully integrated with OrientDB JS driver : - preserves internal field like @class, @rid - uses field types if declared (schema-full) www.orientechnologies.com
  • 48. Always Free Open Source Apache 2 license free for any purposes, even commercials www.orientechnologies.com
  • 49. Prof €$$ ional $ € rvic €$ by a network of companies through Orient Technologies support, training, consulting, mentoring www.orientechnologies.com
  • 50. www.orientechnologies.com OrientDB for Java developers 8 hours OrientDB Master Development 14 hours OrientDB for SOA 6 hours OrientDB and the power of graphs 6 hours OrientDB for DBA 6 hours OrientPlanet for Web Developers 6 hours
  • 51. Certification Program to be part of the network do courses share revenues for support work as consultant www.orientechnologies.com Contact commercial @orientechnologies.com
  • 52. NuvolaBase.com (beta) www.orientechnologies.com The first Graph Database on the Cloud always available few seconds to setup it use it from app & mobile
  • 53. NuvolaBase.com (beta) www.orientechnologies.com By Alfonso Focareta twitter.com/afocareta & Dino Ciuffetti twitter.com/tuxweb
  • 54. NuvolaBase.com (beta) www.orientechnologies.com Only 200 FREE accounts available for the NoSQLDay event Get your account for FREE inserting “ CM2011 ” as promotional code! “ CM2011”
  • 55. Luca Garulli Author of OrientDB and Roma <Meta> Framework Open Source projects, Member of JSR#12 (jdo 1.0) and JSR#243 (jdo 2.0) CTO at Asset Data www.orientechnologies.com www.twitter.com/ lgarulli @Rome, Italy Discuss this talk online at http://joind.in/2944 !