SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
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/

Contenu connexe

Tendances

Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
 

Tendances (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
 

En vedette

Alternative Models for Mobile Wallets
Alternative Models for Mobile WalletsAlternative Models for Mobile Wallets
Alternative Models for Mobile Wallets
Emmanuel Paul
 
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
buzz24
 
Pay per view w social media
Pay per view w social mediaPay per view w social media
Pay per view w social media
buzz24
 
Obsługa klienta w orange
Obsługa klienta w orangeObsługa klienta w orange
Obsługa klienta w orange
buzz24
 
Digitizing Spectator - Libraries Digital Program
Digitizing Spectator - Libraries Digital ProgramDigitizing Spectator - Libraries Digital Program
Digitizing Spectator - Libraries Digital Program
Robert Frech
 
Digitizing Spectator - Corporate Board Presentation
Digitizing Spectator - Corporate Board PresentationDigitizing Spectator - Corporate Board Presentation
Digitizing Spectator - Corporate Board Presentation
Robert Frech
 
Bringo Call Tracking система
Bringo Call Tracking системаBringo Call Tracking система
Bringo Call Tracking система
Alexey Reutsky
 

En vedette (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
 

Similaire à NoSQL and JavaScript 2013-02-09

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
 
Data api workshop at Co-Edo
Data api workshop at Co-EdoData api workshop at Co-Edo
Data api workshop at Co-Edo
Yuji Takayama
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
Hideki 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#14
Masahiro Nagano
 

Similaire à 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
 

Dernier

Dernier (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

NoSQL and JavaScript 2013-02-09