SlideShare a Scribd company logo
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   '\bA-Z0-9._%+-?+@A-Z0-9.-?+\.A-Z?{2,4}\b' 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   !

More Related Content

PDF
OrientDB Distributed Architecture v2.0
PDF
OrientDB
PPTX
Introduction to Hadoop and Hadoop component
PPTX
Database CI/CD Pipeline
PDF
ETL VS ELT.pdf
PPTX
The Basics of MongoDB
PPT
Apache Hive - Introduction
PPTX
Cloud File System with GFS and HDFS
OrientDB Distributed Architecture v2.0
OrientDB
Introduction to Hadoop and Hadoop component
Database CI/CD Pipeline
ETL VS ELT.pdf
The Basics of MongoDB
Apache Hive - Introduction
Cloud File System with GFS and HDFS

What's hot (20)

PDF
Data Warehouse Tutorial For Beginners | Data Warehouse Concepts | Data Wareho...
PDF
Understanding and controlling transaction logs
PPTX
Hadoop File system (HDFS)
PDF
Cloud computing (pdf)
PDF
MapReduce in Cloud Computing
PDF
System monitoring
PPTX
Cloud Computing For Beginners | Cloud Computing Explained | Cloud Computing T...
PPTX
Introduction to Cloud Computing and Cloud Infrastructure
PDF
Data manipulation language
PPTX
Data mining tasks
PDF
Understanding MicroSERVICE Architecture with Java & Spring Boot
PPTX
Big Data - Applications and Technologies Overview
PPTX
Big Data Technology Stack : Nutshell
PPTX
OpenStack Introduction
PPTX
Service Oriented Architecture (SOA)
PPT
Mapping cardinalities
PPTX
Cloud Computing and Data Centers
PPTX
2 tier and 3 tier architecture
Data Warehouse Tutorial For Beginners | Data Warehouse Concepts | Data Wareho...
Understanding and controlling transaction logs
Hadoop File system (HDFS)
Cloud computing (pdf)
MapReduce in Cloud Computing
System monitoring
Cloud Computing For Beginners | Cloud Computing Explained | Cloud Computing T...
Introduction to Cloud Computing and Cloud Infrastructure
Data manipulation language
Data mining tasks
Understanding MicroSERVICE Architecture with Java & Spring Boot
Big Data - Applications and Technologies Overview
Big Data Technology Stack : Nutshell
OpenStack Introduction
Service Oriented Architecture (SOA)
Mapping cardinalities
Cloud Computing and Data Centers
2 tier and 3 tier architecture
Ad

Similar to OrientDB for real & Web App development (20)

PDF
OrientDB the database for the web 1.1
ODP
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
PDF
Works with persistent graphs using OrientDB
PDF
OrientDB & Node.js Overview - JS.Everywhere() KW
PDF
A3 from sql to orm
PDF
OrientDB introduction - NoSQL
PPTX
An Introduction to Big Data, NoSQL and MongoDB
PPTX
Big Data and the growing relevance of NoSQL
PDF
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
PPT
Document Databases & RavenDB
PDF
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
PDF
Why NoSQL Makes Sense
PPTX
NoSQL Architecture Overview
PDF
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
PDF
Scalable database, Scalable language @ JDC 2013
PPTX
A peek into the future
PDF
MySQL Day Paris 2018 - MySQL JSON Document Store
KEY
Moving from Relational to Document Store
PDF
DataOps barcelona - MySQL 8.0 document store: NoSQL with all the benefits of ...
PDF
Functional Dependencies and Normalization for Relational Databases
OrientDB the database for the web 1.1
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Works with persistent graphs using OrientDB
OrientDB & Node.js Overview - JS.Everywhere() KW
A3 from sql to orm
OrientDB introduction - NoSQL
An Introduction to Big Data, NoSQL and MongoDB
Big Data and the growing relevance of NoSQL
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
Document Databases & RavenDB
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
Why NoSQL Makes Sense
NoSQL Architecture Overview
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
Scalable database, Scalable language @ JDC 2013
A peek into the future
MySQL Day Paris 2018 - MySQL JSON Document Store
Moving from Relational to Document Store
DataOps barcelona - MySQL 8.0 document store: NoSQL with all the benefits of ...
Functional Dependencies and Normalization for Relational Databases
Ad

More from Luca Garulli (19)

PDF
Scale Out Your Graph Across Servers and Clouds with OrientDB
PDF
Polyglot Persistence vs Multi-Model Databases
PDF
How Graph Databases started the Multi Model revolution
PDF
OrientDB and Hazelcast
PPT
Why relationships are cool but join sucks - Big Data & Graphs in Rome
PPT
Why relationships are cool but "join" sucks
PPT
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
PPT
Switching from Relational 2 Graph - CloudConf.it
PPT
Switching from Relational to the Graph model v1.3
PPT
Switching from relational to the graph model
PPT
Internet Apps powered by NoSQL and JavaScript
PPT
Switching from the Relational to the Graph model
PDF
OrientDB document or graph? Select the right model (old presentation)
PPT
Design your application using Persistent Graphs and OrientDB
PPT
No sql matters_2012_keynote
PDF
OrientDB distributed architecture 1.1
PDF
Roma introduction and concepts
PPT
RomaFramework Tutorial Basics
ODP
Roma Meta Framework Concepts @JavaDay Rome 2007
Scale Out Your Graph Across Servers and Clouds with OrientDB
Polyglot Persistence vs Multi-Model Databases
How Graph Databases started the Multi Model revolution
OrientDB and Hazelcast
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but "join" sucks
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational to the Graph model v1.3
Switching from relational to the graph model
Internet Apps powered by NoSQL and JavaScript
Switching from the Relational to the Graph model
OrientDB document or graph? Select the right model (old presentation)
Design your application using Persistent Graphs and OrientDB
No sql matters_2012_keynote
OrientDB distributed architecture 1.1
Roma introduction and concepts
RomaFramework Tutorial Basics
Roma Meta Framework Concepts @JavaDay Rome 2007

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Encapsulation theory and applications.pdf
PPT
Teaching material agriculture food technology
PDF
KodekX | Application Modernization Development
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
A Presentation on Artificial Intelligence
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Encapsulation theory and applications.pdf
Teaching material agriculture food technology
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
Advanced methodologies resolving dimensionality complications for autism neur...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Chapter 3 Spatial Domain Image Processing.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
A Presentation on Artificial Intelligence
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

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 '\bA-Z0-9._%+-?+@A-Z0-9.-?+\.A-Z?{2,4}\b' 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 !