Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版)...

37
1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Oracle Berkeley DB開発者向け情報 日本オラクル株式会社 Java Embedded Global Business Unit 201223

Transcript of Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版)...

Page 1: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Berkeley DB開発者向け情報

日本オラクル株式会社Java Embedded Global Business Unit2012年2月3日

Page 2: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Agenda

Berkeley DBのビルド

Berkeley DBを使用した開発

Javaプラットフォームでの活用

Page 4: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DBサポート対象プラットフォーム

• ほとんどのLinux (x64, x86)– Oracle Linux 4 / 5 / 6, Red Hat, Ubuntu, Wind River, MontaVista Embedded

Linux version 6.0

• Oracle Solaris 9 / 10 (x64, x86, SPARC)

• FreeBSD

• Microsoft Windows (x64, x86)– XP (SP2 / SP3), Vista, 7, Server 2008, Mobile (6.x)

• Apple Mac OS X 10.5 / 10.6

• IBM AIX 5 / 6

• VxWorks 6.x

• QNX Neutrino/POSIX version 6

• Android

• Apple iOS

上記以外でもPOSIX準拠のシステムにインストール可能

Page 5: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

ダウンロードhttp://www.oracle.com/technetwork/jp/database/berkeleydb/downloads/

BDB ダウンロード 検索

ADO.NET用SQLアドオンモジュール

Ant後継のプロジェクト管理ツールMaven

XML版ソースコード(tar.gz版, zip版)

または

AES暗号化対応ソースコード(tar.gz版, zip版)

Windows用バイナリ

暗号化なしソースコード(tar.gz版, zip版)

Java Editionソースコード(tar.gz版, zip版)

Windows用バイナリ

Page 6: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DBソースコード構成

• build_xxx: OSごとのビルド用ディレクトリ

• dist: ビルド環境構成ファイル

• docs: ドキュメント

• examples: プログラミング言語ごとのサンプルソース

• lang: プログラミング言語ごとのAPIソース

• src: Berkeley DBライブラリのソース

• test: テストツール

• util: コマンドユーティリティのソース

Page 7: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DBドキュメント

• ソース内docsフォルダ、make install先のdocsフォルダ、または製品ページのDocumentationタブにPDF/HTMLで提供

• Getting Started Guides– Getting Started with Data Storage / Transaction Processing /

Transactional Java Collections / Replication

Berkeley DBの重要な概念と導入方法を解説

– Berkeley DB SQL API

SQL APIの基本、SQLiteとの差異情報

– Berkeley DB Porting Guide

新規プラットフォームへの移植に関する情報

• Referencesアプリの設計・実装に役立つ詳細情報

• Programmatic APIsC/C++/C#/STL/Java/TCLのpublicインタフェースリファレンス

• Build, Installation, and Upgrade Guideビルド、インストール、アップグレードに関する段階的説明、プラットフォームごとの詳細

Page 8: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

その他の基本コマンド

ファイルの展開

makeのやり直し

prefixへの(アン)インストールデフォルトは/usr/local/BerkeleyDB.5.3

configureからやり直し

• まずはbuild_unixディレクトリに移動

• Berkeley DBライブラリlibdb

• + SQLite互換Cライブラリlibdb_sql

• + SQLite置換用wrapperライブラリlibsqlite3

• ライブラリとユーティリティのビルド

UNIX/POSIX上でのビルド方法

../dist/configure

cd build_unix

../dist/configure --enable-sql

../dist/configure –-enable-sql_compatmake install

make uninstall

make clean

make realclean

tar xfz db-5.*.tar.gz

make

GNU autoconfとlibtoolの標準オプションを利用可能

Page 9: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

configureオプション

configureオプション 内容

--disable-shared, --disable-static 共有ライブラリ、スタティックライブラリの無効化

--enable-debug, --enable-debug_rop,

--enable-debug_wop,

--enable-diagnostic

デバッグ用オプション

--enable-java, --enable-cxx,

--enable-stl, --enable-tclJava, C++, C++ STL, Tcl APIの有効化

--enable-smallbuild 小メモリフットプリント版のビルド

--with-cryptography=[yes|no|ipp] 暗号化のカスタマイズ

--enable-jdbc JDBCドライバのビルド

--enable-load-extension BFILE拡張のビルド(デフォルトはSQLのみ)

--enable-pthread_apiPOSIX pthreadの使用。replicationマネージャで必要

--enable-posixmutexes, --enable-

unimutexes, --with-mutex=MUTEX

mutex実装の指定。MUTEXに指定可能なオプションはdist/aclocal/mutex.m4参照

その他のオプションについてはドキュメント参照

Page 10: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

make install生成物

• 場所:デフォルトは/usr/local/BerkeleyDB.5.3

• lib

• bin

• include:ヘッダファイル

• doc:ドキュメント

libdb.so → Berkeley DB標準ライブラリlibdb_sql.so → SQLite互換Cライブラリlibsqlite3.so → SQLite置換用wrapperライブラリ

db_archive db_checkpoint db_deadlock db_dump db_hotbackup

db_load db_log_verify db_printlog db_recover db_replicate

db_stat db_tuner db_upgrade db_verify → ユーティリティdbsql → libdb_sqlにアクセスするコマンドsqlite3 → libsqlite3にアクセスするコマンド

Page 11: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DBコマンドラインユーティリティコマンド名 機能

db_archive ログファイルのパス名出力と削除

db_checkpoint トランザクション・チェックポイントdaemon

db_deadlock Deadlock検出

db_dump データベースのダンプ

db_hotbackup データベース環境のホットバックアップやホットフェイルオーバー作成

db_load データベースのロード

db_log_verify ログファイルの検証

db_printlog データベース環境のログ表示

db_recover データベース環境のリカバリ

db_replicate トランザクション環境のreplication/HAサービスdaemon

db_sql_codegen SQLデータ定義言語(DDL)スキーマをC言語に変換

dbsql libdb_sqlにアクセスするコマンド

db_stat データベース環境の統計表示

db_tuner btreeデータベースの最適なページサイズを解析

db_upgrade データベースファイルのアップグレード

db_verify データベースファイルの構造を検証

sqlite3 wrapperライブラリlibsqlite3にアクセスするコマンド

Page 12: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DBテストツールビルドしたバイナリの動作検証

• C Tests for Berkeley DB

– Berkeley DBの認定、および異なるリリース間のベンチマーク用途

• Berkeley DB Test Suite

– Berkeley DB全コードのテスト実施(要Tcl 8.5以上)

sh ./db-5.3.15/test/micro/test_micro → テスト実施sh ./db-5.3.15/test/micro/report → hostname.htmlへのレポート出力

../dist/configure --enable-test –with-tcl=/usr/lib

make

$ tclsh

% source ../test/tcl/test.tcl

% run_std → 主な機能のみをテスト% run_all → 複数回実施、暗号化、replication、複数ページサイズでのテスト

Page 13: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Agenda

Berkeley DBのビルド

Berkeley DBを使用した開発

Javaプラットフォームでの活用

Page 14: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DB API

Berkeley DB

C API

C++ & C# API

Berkeley DB

XML

C++ API Java APIJava Collections &

Direct Persistence Layer (DPL)

API

Perl, Python, PHP, Ruby, Tcl, Eiffel, Erlangなどからもアクセス可能

Java API

Berkeley DB

Java Edition

SQL API

Page 15: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: 基本コンセプトオブジェクト指向設計の非RDB高速ストレージエンジン

• オブジェクト指向設計のライブラリ群

• オブジェクトはハンドルごとに制御する– データベース:DBハンドル

– キーとデータ:DBTハンドル

– カーソル:DBCハンドル

– DB環境:DV_ENVハンドル

– トランザクション:DB_TXNハンドル

• APIの操作はハンドルに対するメソッドとして提供

Page 16: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: DBハンドルDBハンドルを使い、データベースアクセスが可能

API 機能

db_create DBハンドル作成

DB->open() DBをオープン(DBと接続)

DB->close() DBをクローズ(DBから切断)

DB->get() DBからキーを使って検索

DB->put() DBにキー/データ・ペアを挿入/変更

DB->del() DBからキー/データ・ペアを削除

DB->associate()プライマリデータベースにセカンダリインデックスを関連付ける

DB->join()複数のセカンダリインデックスの論理積(AND)で検索

Page 17: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: データベースアクセス手順

DBハンドル作成db_create

データベースオープンDB->open

データ挿入・更新DB->put

データ検索DB->get

データ削除DB->del

データベースクローズDB->close

Page 18: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: データベースアクセス基本操作-DBハンドル作成

DB *pDb = NULL;

/* DBハンドルを作成*/

db_create(&pDb, NULL, 0);

/* ファイル名を指定してデータベースをオープン。ファイルがない場合新規作成*/

pDb->open(pDb, NULL, “student.db”, DB_CREATE | DB_BTREE);

/* ここからDBハンドルを使ってデータベースをアクセス*/……

/* 使用後DBハンドルをクローズ*/pDb->close(pDb, 0);

DB環境機能を利用する場合db_createメソッドのdbenvパラメータにDB_ENVハンドルを設定します。トランザクション機能を利用する場合openメソッドのflagsパラメータにDB_AUTO_COMMITを設定します。マルチスレッドでご利用になる場合openメソッドでのflagsパラメータDB_THREADを設定します。HASHアクセスメソッドを利用する場合openメソッドのflagsパラメータでDB_BTREEの代わりにDB_HASHを設定します。

コード例(データベースアクセス処理フロー)

ヒント

db_create関数でDBハンドルを作成します。

Page 19: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: データベースアクセス基本操作-データ挿入

DBT dbtk, dbtd;

/* 保存するキー/データペア*/char *key = “0001”;

struct student_data data = {“JOHN”, “SMITH”, „M‟, 32};

/* DBT構造体をクリア*/memset(&dbtk, 0, sizeof(DBT));

memset(&dbtd, 0, sizeof(DBT));

/* キーとデータを格納するDBT構造体を設定します。dataメンバーはポインタ、sizeメンバーはバイト数を設定*/

dbtk.data = key, dbtk.size = strlen(key);

dbtd.data = &data, dbtd.size = sizeof(data);

/* キー/データペアを保存します*/pDb->put(pDb, NULL, &dbtk, &dbtd, 0);

トランザクション機能を利用する場合putメソッドのtxnidパラメータを設定します。データを新規追加する場合putメソッドのflagsパラメータにDB_NOOVERWRITEを設定します。

コード例(データ挿入)

ヒント

DBハンドルのputメソッドを使って、キー/データペアを挿入します。

キーとデータはDBT構造体を使ってputメソッドに渡します。

Page 20: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: データベースアクセス基本操作-データ検索

DBT dbtk, dbtd;

/* 検索するキー*/char *key = “0001”;

memset(&dbtk, 0, sizeof(DBT));

/* キーを格納するDBT構造体を設定します*/dbtk.data = key, dbtk.size = strlen(key);

/* 指定されたキーのデータを検索します*/pDb->get(pDb, NULL, &dbtk, &dbtd, 0);

/* ここからデータを処理します。*//* データはdbtdに保存されます。dataメンバーはポインタ、sizeメンバーはバイト数になります。*/

トランザクション機能を利用する場合getメソッドのtxnidパラメータを設定します。

コード例(データ検索)

ヒント

DBハンドルのgetメソッドを使って指定されたキーのデータを検索します。

キーとデータはDBT構造体を使ってgetメソッドに渡します。

Page 21: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

KVS: データベースアクセス基本操作-データ削除

DBT dbtk;

/* 削除するキー*/char *key = “0001”;

memset(&dbtk, 0, sizeof(DBT));

/* キーを格納するDBT構造体を設定します*/dbtk.data = key, dbtk.size = strlen(key);

/* 指定されたキーのデータを削除します*/pDb->del(pDb, NULL, &dbtk, 0);

トランザクション機能を利用する場合delメソッドのtxnidパラメータを設定します。

コード例(データ削除)

ヒント

DBハンドルのdelメソッドで指定されたキーのデータを削除します。

キーはDBT構造体を使ってdelメソッドに渡します。

Page 22: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

SQL: データベースアクセス手順

データベースオープンsqlite3_open()

SQL文の処理sqlite3_exec()

データベースクローズsqlite3_close()

Page 23: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

SQL: データベースアクセス基本操作-DBオープン

sqlite3 *db= NULL;

char *zErrMsg = 0;

int rc = 0;

/* データベース名の設定 */

char dbname[10]=“test.db” ;

/* SQL文の設定 */

char strSQL[20]=“Select * from employee”;

/* データベースをオープンする */

rc = sqlite3_open(dbname, &db);

if( rc ){

fprintf(stderr, "Can't open database: %s¥n", sqlite3_errmsg(db));

}

/* データベースをクローズする */

sqlite3_close(db);

コード例(データベースアクセス処理フロー)

sqlite3_open()関数でDBをオープンします。

Page 24: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

SQL: データベースアクセス基本操作-SQL文処理

/* SQLを処理する */

rc = sqlite3_exec(db, strSQL, callback, 0, &zErrMsg);

if( rc!=SQLITE_OK ){; /* エラーチェック */

fprintf(stderr, "SQL error: %s¥n", zErrMsg);

}

sqlite3_close(db); /* データベースをクローズする */

/* Recordごとに呼ばれる */

static int callback(void *NotUsed, int argc, char **argv, char

**azColName){

int i;

for(i=0; i<argc; i++){ /* Columnごとデータ値を読み込む */

printf("%s = %s¥n", azColName[i], argv[i] ? argv[i] : "NULL");

}

}

コード例(SQL文処理)

sqlite3_exec()関数でSQL文を処理し、Resultセットを読み込みます。

Page 25: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Agenda

Berkeley DBのビルド

Berkeley DBを使用した開発

Javaプラットフォームでの活用

Page 26: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Java EE

Java SE

Java ME CDC Java ME CLDC Java Card

FP

JVM JVM CVM KVM Card VM

Optional

Packages

Optional

Packages

Optional

Packages

Optional

Packages

Optional

Packages

PBP

PP

Security

JDBC

RMI

AGUI

Oracle Javaプラットフォーム

GlassFish (CDDL/GPLv2) PhoneME (GPLv2)

オープンソース

OpenJDK (GPLv2)

Oracle Java ME

Embedded Client

(OJEC)

Java SE

SDK / JRE /

Embedded

バイナリ製品

テクノロジ

WebLogic

Application

Server

Oracle Java

Wireless Client

(OJWC)

MIDP

JavaFX

Page 27: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Java SE Embedded

組み込みデバイス向けJava SE

• ヘッドレス構成のサポート– キーボード・マウス入出力やディスプレイ描画不要なデバイス向けに、不要な機能を削除したヘッドレス版を提供

• 小フットプリントのJRE– ヘッドレス構成で不要なファイル、ツール、文字コード変換、64-bit JITなどを削除し、通常のJava SEの約半分のフットプリントを実現

– Java SE仕様に100%互換

• メモリ最適化– 小メモリ環境での起動時に、デフォルト割り当てサイズを削減

• 32MBの場合 PermGen:16MB, Java Heap:16MB, Code Cache:4MB

– JARファイルロード時のMMAP削減とスレッド静的テーブル削除により12MB節約

• 組み込みデバイス向けプラットフォームをサポート– x86に加え、ARMやPowerPCプラットフォームをサポート

Java SE EmbeddedJRE

RAM: 32~64MB, ROM: 37~46MB

Linux

x86

Linux

ARM

Linux

PowerPC

XP Emb

x86

標準Java SEJRE + JDK

RAM: 64~128MB, ROM: 58~98MB

Windows

x86/x64

Linux

x86/x64

Solaris

SPARC

Solaris

x86/x64

こんな場合に最適 高速なスループットが必要 完全なSE APIを利用したい

Page 28: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Java ME Embedded Client

業界クラス最高のCDC JVM製品

• 小メモリフットプリントでの高いパフォーマンスと信頼性– CDC HotSpot Implementation

– 高速なVM起動時間– Romizationによるクラスのプリロード

• バイナリを無償ダウンロード提供– ターゲットデバイス用実行環境

• ARM v5/v6/v7, MIPS, PowerPC Linux

• RAM: 8MB必要、• ROM: 約5MB必要

– 国際化サポートにはさらに1.5MB必要

– ホスト用SDK• LinuxまたはWindows(x86)

• IDEへの統合– NetBeansではアプリケーション開発、エミューレーション、デバッグ、プロファイリングが可能

– Eclipseではアプリケーション開発とエミュレーションのみ• PBPを使用したGUIアプリケーションの作成も可能

– ただし、OJEC 1.0ではターゲットデバイス向けPBPなし

Connected Device Configuration (CDC)

Foundation Profile (FP) Security (SecOP)

Personal Basis Profile (PBP)

RM

I

JD

BC

We

b S

erv

ice

s

AM

S

こんな場合に最適 静的フットプリント(ROM)が小さい 動的メモリを多用しない 広範なプロセッサ&OS対応

Page 29: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

SE Embedded 7 / 6 & OJEC 1.0

ターゲットデバイスの必要システム構成CPU OS FP GUI RAM ROM

SE E

mb

ed

ded

7u

2 (

6u

30

)

x86Linux kernel 2.6.28以降glibc 2.9以降

- 32MB以上 41(37)MB以上

ARM v5Linux kernel 2.6.28以降glibc 2.9以降

Soft Float - 32MB以上 41(37)MB以上

ARM v6/v7Linux kernel 2.6.28以降glibc 2.9以降

Hard Float(VFP)

- 32MB以上 41(37)MB以上

ARM v7Linux kernel 2.6.28以降glibc 2.9以降

Hard Float(VFP)

X11R6以降 64MB以上 48(37)MB以上

e600(Power PC)

Linux kernel 2.6.28以降glibc 2.9以降

Classic HW FP - 32MB以上 37MB以上

e500v2 core(Power PC)

Linux kernel 2.6.23以降glibc 2.5以降

Embedded FP - 32MB以上 37MB以上

OJE

C 1

.0(J

ava

ME

CD

C)

ARM v5Linux kernel 2.6.22以降glibc 2.9以降

Soft Float - 8MB以上 5MB以上

ARM v6/v7Linux kernel 2.6.35以降glibc 2.12.1以降

Soft Float - 8MB以上 5MB以上

464FP(Power PC)

Linux kernel 2.6.32以降glibc 2.10.2以降

Hard Float - 8MB以上 5MB以上

MIPS32 74K(MIPS)

Linux kernel 2.6.22以降glibc 2.8以降

Soft Float - 8MB以上 5MB以上

詳細はhttp://www.oracle.com/technetwork/java/embedded/参照

Page 30: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

JavaFX 2.0

軽量なリッチクライアントプラットフォーム

Java Virtual Machine

Quantum Toolkit

Prism

JavaFX Public APIs and Scene Graph

Java2D D3D OpenGL

GlassWindowing

Toolkit

MediaEngine

WebEngine

ウィンドウ、タイマー、表面などのネイティブ操作サービスを提供

Java FX APIが利用できるようにPrismとGlassを結びつけ

ハードウェアとソフトウェアのレンダラー上で実行可能なグラフィックスパイプライン

JavaFXで書かれた、アニメーション、グラフ、コントロールなどの各種JavaFX機能のギャラリー Swingアプリ内のJavaFXコンポーネント(グラフ、表、ブラウザ)

JavaFXで書かれたブロック崩しゲーム

Page 31: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Berkeley DBの活用(Java MEの場合)

Native OS

Java ME

CDC/FP

PBP JDBC

Java ME

アプリケーション

Berkeley DB

(共有ライブラリ)

SQLite互換SQL API

Java Object

API (Direct

Persistence)

JDBCドライバ(Werner同梱)

Page 32: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

ホームゲートウェイの一般的なアーキテクチャ

ハードウェア

Linux

Berkeley

Database

+ JDBC

(デバイス上ストレージ)

Java SE Embedded / Java ME

Foundation Profile シリアルI/F

OSGiフレームワーク

JSSE

ヘルスケア セキュリティエンターテイメント

ホームコントロール

アプリケーションバンドル 照明 温度

標準サービスバンドル

ホームゲートウェイ

UPnP USB ZigBee セキュリティ

Page 33: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

OSGiバンドル

Smart Gatewayデモ アーキテクチャ

バックアップ・同期マネージャ

電力消費マネージャ

温度センサー 照度センサースマートメーター

Oracle Database

Mobile Server

スマートゲートウェイ

Linux / ARM

Berkeley

DB

OSGi

FrameworkSync Client

Java ME CDC (OJEC)

18 ℃

7円

5000 lm 6573 lm

28 ℃暖房

単価

照明

設定値 測定値

マン・マシン・インタフェース

空調制御サービス

照明制御サービス

USB USB

Page 34: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Smart Gatewayデモ UI

Page 35: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

関連リンク

• Berkeley DB ダウンロードhttp://www.oracle.com/technetwork/database/berkeleydb/downloads/

• Berkeley DB ドキュメントhttp://www.oracle.com/technetwork/database/berkeleydb/documentation/

• Java Embeddedhttp://www.oracle.com/technetwork/java/embedded

• Java SE / JavaFX ダウンロードhttp://www.oracle.com/technetwork/java/javase/downloads/

Page 36: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3
Page 37: Oracle Berkeley DB開発者向け情報 · 暗号化なしソースコード(tar.gz版, zip版) Java Editionソースコード(tar.gz版, zip版) ... •+SQLite置換用wrapperライブラリlibsqlite3

37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.