SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
NOSQL & JavaScript

      4D Japan
      原田 光一
4D について

NOSQL: Wakanda
RDBMS: 4D


W3C MEMBER
NOSQL
NOSQL
NOSQL
NOSQL
SQL




 トランザクション
  強い整合性
Webサービス
Webサービス



大量のデータ
素早く処理
サービスの更新頻度
NOSQL

SQLで間に合わない部分


ニーズにあったDB
NOSQL ファミリー
ドキュメントストアー          オブジェクトストアー




              グラフ



キー・バリューストアー          カラムストアー
NOSQL ファミリー
ドキュメントストアー          オブジェクトストアー




              グラフ



キー・バリューストアー          カラムストアー
NOSQL ファミリー
ドキュメントストアー          オブジェクトストアー




              グラフ



キー・バリューストアー          カラムストアー
NOSQL Facts
多くは スキーマ定義不要

多くは REST / JSON API を提供

多くは JSON を格納

多くは JavaScript エンジンを含む

多くは JavaScript シェルを提供
JavaScript
JavaScript エンジン
                                                                                                                                              C+
                                       C                                                                                                        +
SpiderMonkey                                                           webkit JavaScriptCore
          3 JIT Compilers:                                                  SquirrelFish Extreme: SFX aka Nitro
           TraceMonkey,                                                               (JIT Compiler inside)
           JägerMonkey,
             IonMonkey


                                Jav                                                                               C+
                                   a                                                                                +
          Rhino                                                                                         V8
Interpreted or Compiled execution                                                               JIT Compiler: CrankShaft



                                                                                    ?
                                                        Chakra
                                           -> Classic JScript, Managed JScript, & JScript.NET

                             C+                                                                                                   ?
                               +
           Tamarin                                                                                             Carakan
     JIT Compiler: NanoJIT
    -> ActionScript / “ECMAScript 4”
                                                                                                    Previously: Linear A, Linear B, Futhark
サーバーサイドJS
SpiderMonkey            JavaScriptCore




   Rhino                      V8


           Trident / Chakra
JSでDBアクセス
キー・バリュー
WebStorage
W3C / WHATWG
    HTML5                                         // set or get items by methods
                                                  localStorage.setItem("storedItem", "value");
                                                  var value = localStorage.getItem("storedItem");


local                                                      // set or get items using the store as a map
                                                           localStorage.storedItem = value;
                                                           var value = localStorage.storedItem;

session
                                                           // accessible only for this session
                                                           var foo = sessionStorage.bar;

storage イベント                                               sessionStorage.bar = foo;



                                        // sync interface when data change, even from other window
                                        window.addEventListener("storage", handle_storage, false);




Note: Firefox used to propose “globalStorage”, Wakanda implements “user.storage”
                               http://www.w3.org/TR/webstorage/
Document
Indexed Database
HTML5                                var request = indexedDB.open("MyTestDatabase", 3);



                                             request.onerror =    function(event) {

同期 / 非同期                                     };
                                                // Do something

                                             request.onsuccess
                                                                  with request.errorCode!

                                                                  = function(event) {
                                                // Do something   with request.result!
                                             };

インデックス                                       request.onupgradeneeded = function(event) {
                                                // Update object stores and indices ....

トランザクション                                     }



           var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });

カーソル       objectStore.createIndex("name", "name", { unique: false });
           objectStore.add({ ssn: "444-44-4444", name: "Bill", age: 35});




        var transaction = db.transaction(["customers"], IDBTransaction.READ_WRITE);




                 http://www.w3.org/TR/IndexedDB/
Object
WakandaDB
Webkit JavaScriptCore

REST / JSON

データクラス

  自動更新

  アクセッサー
              john = ds.Person.find("fistName eq John");

  イベント        conferences = john.allConferences;

              JohnJSConferences = conferences.filter("title == :1", "*JavaScript*");

              JSAttendeesJohnMet = JSConferences.allPeople;
  メソッド
                       http://wakanda.org/

Mais conteúdo relacionado

Mais procurados

javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiTomohiro Kumagai
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方Yoshifumi Kawai
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
Type Safe Assets Handling in Swift
Type Safe Assets Handling in SwiftType Safe Assets Handling in Swift
Type Safe Assets Handling in SwiftKazunobu Tasaka
 
BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622Kohei Nishikawa
 

Mais procurados (10)

javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
Type Safe Assets Handling in Swift
Type Safe Assets Handling in SwiftType Safe Assets Handling in Swift
Type Safe Assets Handling in Swift
 
BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622
 
RxSwift
RxSwiftRxSwift
RxSwift
 
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
 
歌舞伎座Tech Rx会
歌舞伎座Tech Rx会歌舞伎座Tech Rx会
歌舞伎座Tech Rx会
 
Jsonp
JsonpJsonp
Jsonp
 

Destaque

Portafolio de ingles 6°
Portafolio de ingles 6°Portafolio de ingles 6°
Portafolio de ingles 6°William MQ
 
Alternative Models for Mobile Wallets
Alternative Models for Mobile WalletsAlternative Models for Mobile Wallets
Alternative Models for Mobile WalletsEmmanuel Paul
 
Meetup 2013 04-30
Meetup 2013 04-30Meetup 2013 04-30
Meetup 2013 04-30WakandaJA
 
Internetowe sklepy z elektroniką analiza social media
Internetowe sklepy z elektroniką analiza social mediaInternetowe sklepy z elektroniką analiza social media
Internetowe sklepy z elektroniką analiza social mediabuzz24
 
weisen的工作
weisen的工作weisen的工作
weisen的工作煒森 陳
 
Pay per view w social media
Pay per view w social mediaPay per view w social media
Pay per view w social mediabuzz24
 
Obsługa klienta w orange
Obsługa klienta w orangeObsługa klienta w orange
Obsługa klienta w orangebuzz24
 
Digitizing Spectator - Libraries Digital Program
Digitizing Spectator - Libraries Digital ProgramDigitizing Spectator - Libraries Digital Program
Digitizing Spectator - Libraries Digital ProgramRobert Frech
 
Raport emarkety w Internecie
Raport emarkety w InternecieRaport emarkety w Internecie
Raport emarkety w Interneciebuzz24
 
Redes sociales 2
Redes sociales 2Redes sociales 2
Redes sociales 2jaderdanilo
 
Digitizing Spectator - Corporate Board Presentation
Digitizing Spectator - Corporate Board PresentationDigitizing Spectator - Corporate Board Presentation
Digitizing Spectator - Corporate Board PresentationRobert Frech
 
Bringo Call Tracking система
Bringo Call Tracking системаBringo Call Tracking система
Bringo Call Tracking системаAlexey Reutsky
 
Wakanday 2012-07-31
Wakanday 2012-07-31Wakanday 2012-07-31
Wakanday 2012-07-31WakandaJA
 
Netia - obsługa klienta
Netia - obsługa klientaNetia - obsługa klienta
Netia - obsługa klientabuzz24
 
Nota ringkas temu duga SPP
Nota ringkas temu duga SPPNota ringkas temu duga SPP
Nota ringkas temu duga SPPRafiza Diy
 

Destaque (17)

Portafolio de ingles 6°
Portafolio de ingles 6°Portafolio de ingles 6°
Portafolio de ingles 6°
 
Alternative Models for Mobile Wallets
Alternative Models for Mobile WalletsAlternative Models for Mobile Wallets
Alternative Models for Mobile Wallets
 
Meetup 2013 04-30
Meetup 2013 04-30Meetup 2013 04-30
Meetup 2013 04-30
 
Internetowe sklepy z elektroniką analiza social media
Internetowe sklepy z elektroniką analiza social mediaInternetowe sklepy z elektroniką analiza social media
Internetowe sklepy z elektroniką analiza social media
 
weisen的工作
weisen的工作weisen的工作
weisen的工作
 
Pay per view w social media
Pay per view w social mediaPay per view w social media
Pay per view w social media
 
Obsługa klienta w orange
Obsługa klienta w orangeObsługa klienta w orange
Obsługa klienta w orange
 
Digitizing Spectator - Libraries Digital Program
Digitizing Spectator - Libraries Digital ProgramDigitizing Spectator - Libraries Digital Program
Digitizing Spectator - Libraries Digital Program
 
Raport emarkety w Internecie
Raport emarkety w InternecieRaport emarkety w Internecie
Raport emarkety w Internecie
 
Redes sociales 2
Redes sociales 2Redes sociales 2
Redes sociales 2
 
Digitizing Spectator - Corporate Board Presentation
Digitizing Spectator - Corporate Board PresentationDigitizing Spectator - Corporate Board Presentation
Digitizing Spectator - Corporate Board Presentation
 
Bringo Call Tracking система
Bringo Call Tracking системаBringo Call Tracking система
Bringo Call Tracking система
 
Wakanday 2012-07-31
Wakanday 2012-07-31Wakanday 2012-07-31
Wakanday 2012-07-31
 
Netia - obsługa klienta
Netia - obsługa klientaNetia - obsługa klienta
Netia - obsługa klienta
 
Obesity
ObesityObesity
Obesity
 
Aula denguezika
Aula denguezikaAula denguezika
Aula denguezika
 
Nota ringkas temu duga SPP
Nota ringkas temu duga SPPNota ringkas temu duga SPP
Nota ringkas temu duga SPP
 

Semelhante a NoSQL and JavaScript 2013-02-09

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しようUnity Technologies Japan K.K.
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについてtako pons
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
Data api workshop at Co-Edo
Data api workshop at Co-EdoData api workshop at Co-Edo
Data api workshop at Co-EdoYuji Takayama
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうyoshikawa_t
 
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたXamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたHironov OKUYAMA
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Hideki Hashizume
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 

Semelhante a NoSQL and JavaScript 2013-02-09 (20)

Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
いまさらJavaScript
いまさらJavaScriptいまさらJavaScript
いまさらJavaScript
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Data api workshop at Co-Edo
Data api workshop at Co-EdoData api workshop at Co-Edo
Data api workshop at Co-Edo
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
 
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたXamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみた
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
 
Flex's DI Container
Flex's DI ContainerFlex's DI Container
Flex's DI Container
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
 

NoSQL and JavaScript 2013-02-09