OrientDB for real & Web App development
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


OrientDB for real & Web App development



NoSQLDay, Brescia Italy

NoSQLDay, Brescia Italy



Total Views
Views on SlideShare
Embed Views



13 Embeds 1,020

http://www.graph-database.org 625
http://www.nosqldatabases.com 354
http://lanyrd.com 11
https://confluence.glocalspace.com 11
http://paper.li 7
http://www.techgig.com 4
http://translate.googleusercontent.com 2
http://www.mefeedia.com 1
http://demo.apostrophenow.org 1
http://twitter.com 1
http://nosqldatabases.squarespace.com 1
https://twitter.com 1
http://www.linkedin.com 1



Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • nice summary, usefull tips
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

OrientDB for real & Web App development Presentation Transcript

  • 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
  • 29. Demo! 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 !