Caché/Ensemble...
Transcript of Caché/Ensemble...
CachéCaché/Ensemble/EnsembleCachéCaché/Ensemble/Ensemble新機能新機能のごのご紹介紹介
インターシステムズジャパン㈱テクニカルコンサルティング部
主任コンサルタント上中進太郎
• 製品のリリースサイクルについて• Caché 2013.1 新機能
• XEP Enhancement
アジェンダアジェンダ
XEP Enhancement• ObjectScript Enhancement• DeepSee Enhancement• SQL Enhancement• System Enhancement
• Ensemble 2013.1 新機能• 複雑なレコードマップ
ンタ プライズ メ セ ジ ビ ワ• エンタープライズ・メッセージ・ビューワ• カスタムHL7スキーマエディタ
• Caché 2013.2 新機能• ZEN Mobile, ZEN Mobile Framework• REST
• Ensemble 2013.2 新機能2
ソリューションソリューションソリューションソリューション
⼀般的には製品スイート⼀般的には製品スイートインターシステムズは単⼀プラットフォームインターシステムズは単⼀プラットフォームHealthShareHealthShare TrakCareTrakCare
プラットフォームプラットフォーム戦略戦略
リアルタイム分析リアルタイム分析 接続性接続性DeepSeeDeepSee EnsembleEnsemble
CachéCaché RDBMS
買収前B社
買収前A社
iKnowiKnow アプリケーションアプリケーション,,ユーザーユーザー,,
コミュニティとの接続コミュニティとの接続
情報情報 RDBMS
3 © Copyright InterSystems Japan K.K. 2013
構造化データ、⾮構造化データ構造化データ、⾮構造化データの保存・検索・共有の保存・検索・共有
各製品、機能を⽀える基盤プラットフォームとしての各製品、機能を⽀える基盤プラットフォームとしてのCachéCachéのの位位置付けは今後も不変。置付けは今後も不変。
リリースサイクルリリースサイクル• V5.2以降はリリース年をバージョン番号に使⽤
年代.[1|2].[メンテナンスバージョン]例) V2012 1 1例) V2012.1.1
• メジャーリリースは年に1〜2度のペースV2012.1.0 2012/2/8V2012.2.0 2012/9/8V2013 1 0 2013/5/1V2013.1.0 2013/5/1
• 不定期なメンテナンスリリースV2012.2.3 2013/3/7V2012.1.5 2013/4/34
2010 22011.1
2012.12012.2
リリース履歴リリース履歴Apple Mac OS X /x86-64HP HP-UX 11i /ItaniumHP HP-UX 11i /PA-RISC-64 HP OpenVMS /Alpha HP OpenVMS /Itanium IBM AIX /System P-32 IBM AIX /System P-64 Microsoft Windows /x86-32
2013.1
2013.2 or 2014.1
5.05.1
5.2
2007.12008.1
2008.22009.1
2010.12010.2Microsoft Windows /x86 32
Microsoft Windows /x86-64 Oracle Enterprise Linux/x86-64 Oracle Solaris /SPARC-64 Oracle Solaris /x86-64 Red Hat Enterprise Linux /x86-32 Red Hat Enterprise Linux /x86-64 SUSE Linux Enterprise Server /x86-32 SUSE Linux Enterprise Server /x86-64Ubuntu
5.0
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
WindowsWindowsVistaVista
WindowsWindowsVistaVista
WindowsWindows20082008
WindowsWindows20082008
WindowsWindows77
WindowsWindows77
初代初代iPadiPad初代初代iPadiPad
iPad2iPad2iPad2iPad2 iPad3iPad3iPad3iPad3←←2001/102001/10Windows Windows
XPXP
←←2001/102001/10Windows Windows
XPXP
WindowsWindows88??????
WindowsWindows88??????
Windows Windows 20032003
Windows Windows 20032003
Windows Windows 2003/x642003/x64Windows Windows 2003/x642003/x64
5
リリースサイクルリリースサイクル• メリット
• 最新機能のよりスピーディな提供• リリース時期の予測が容易
• デメリット• リリースの焦点(⽬⽟)が分かりにくい
6
CachéCaché 2013.1 2013.1 新機能新機能• 迅速なアプリケーション開発
• XEPの機能強化• ObjectScriptの機能強化j p 機能強化• DeepSeeの改善
• パフォーマンスとスケーラビリティ• 各種機能の改善によるパフォーマンス向上• オンラインインデックス追加
• 信頼性、可⽤性、保守性、監視• アプリケーション固有ライセンスの付与• ⼤規模グローバルバッファ、メモリ・ヒープ• SQLパフォーマンスツールの改善
• テクノロジープレビュー• リファクタリング7
• 機能強化の前に Java eXTremeのおさらい• 今までは基本的にサーバ上におけるインプロセス処理
XEP XEP の機能強化の機能強化 迅速なアプリケーションの開発迅速なアプリケーションの開発
機能説明 Java
プロセス内JDBC TCP/IPの代わりにJNI(Java Native Interface)を使⽤して実⾏されるJDBC
○
eXT eme E ent 単純なJa a/ NETオブジ クトをXTP永続 ○
8
eXTreme Event Persistence (XEP)
単純なJava/.NETオブジェクトをXTP永続イベントとして投影し、⾼速アクセス⽅法を提供
○
ダイナミックオブジェクトAPI
Cachéオブジェクトデータへの動的アクセス⽅法を提供
○
• 2010.2• Jave eXtreme(グローバルAPI,XEP,in-Process JDBC)リリース
2012 2
XEP XEP の機能強化の機能強化((続き続き))迅速なアプリケーションの開発迅速なアプリケーションの開発
• 2012.2• .NET eXtreme (グローバルAPI,XEP)• TCP経由でのJava eXtreme
• 2013.1• XEP の機能強化
• 継承、オブジェクト参照、同期インデックス作成に対応• 複数の永続化モードに対応• XEP TCP/IPとXEP JNIに対応• ObjectScriptのクラスメソッド、ストアド関数、プロシージャの呼び出しに
対応• callClassMethod/callFunction/callProcedure
• 複数コアマシンでINSERT処理を最⼤化するための並列処理APIを追加• parallelStore()
9
• 2013.1対応表
XEP XEP の機能強化の機能強化機能説明 Java
(inProcess)Java
(TCP/IP).NET
(inProcess).NET
(TCP/IP)
迅速なアプリケーションの開発迅速なアプリケーションの開発
プロセス内JDBC
TCP/IPの代わりにJNIを使⽤して実⾏されるJDBC
○ ○ - -(ODBC/ADOは可能)
eXTremeEvent Persistence (XEP)
単純なJava/.NETオブジェクトをXTP永続イベントして投影し、⾼速アクセス⽅法を提供
○ ○ ○ ○
10
ダイナミックオブジェクトAPI
Cachéオブジェクトデータへの動的アクセス⽅法を提供
○ - - -
• 共通• 環境変数GLOBALS_HOME、Pathの設定
• GLOBALS_HOME=<インストールディレクトリ>
Java/.NET XEP Java/.NET XEP サンプルサンプルの動かし⽅の動かし⽅迅速なアプリケーションの開発迅速なアプリケーションの開発
• Path = <インストールディレクトリ>¥bin
• Java (<インストールディレクトリ>¥dev¥java¥samples¥extreme)• cachedb.jar,cacheextreme.jar,cachejdbc.jarファイルをCLASSPATH(ビルド
パス)に追加• xep.test.*.javaの各ファイルは継承関係にあるので、基底クラスとなる
Core.javaクラスとThreads.javaユーザ・パスワードを変更• 全サンプルを実⾏するRunAll.javaで、ネームスペースや⽣成オブジェクト数、
接続 ポ ど 変TCP/IPの接続⽤のIPアドレス・ポート番号などを変更
• .NET (<インストールディレクトリ>¥dev¥dotnet¥samples¥xep)• ソリューション→参照設定→参照の追加で<インストールディレクトリ>
¥dev¥dotnet¥bin¥v2.0.50727InterSystems.CacheExtreme.dll を追加する• 上記Javaと同じ個所を変更
11
• RETURN句の追加• ルーチンやメソッドの実⾏を即時終了し、呼び出し
元に応答を返す
ObjectScriptObjectScript の機能強化の機能強化迅速なアプリケーションの開発迅速なアプリケーションの開発
元に応答を返す。
• Arg...で引数の参照渡しのサポートg 引数 参照渡• 可変⻑引数 Arg...Syntaxが参照渡しに対応
12
USER>s a=10,a(1)=12,a(1,2,3)="test"
USER>d ArgTest^Sample(.a)arg=1,arg(1)=10,arg(1,1)=12,arg(1,1,2,3)="test"
• ユーザポータルトップページを“カバー”を使った表⽰形式に変更
DeepSeeDeepSee の改善の改善迅速なアプリケーションの開発迅速なアプリケーションの開発
• ダッシュボードエディター画⾯を、ZENチャートやZENコンポーネントを使⽤した画⾯に変更
13
• 新しいチャート
DeepSeeDeepSee の改善の改善迅速なアプリケーションの開発迅速なアプリケーションの開発
X/Yチャートタイムチャート
ツリーマップ ブルズアイチャート
14
• セキュリティ強化に伴い、新規作成したネームスペース⽤のCSPアプリケーション構成ではDeepSee、Ensembleダッシュボード・ワークフローなどの機能が
DeepSeeDeepSeeを有効にするを有効にするアップグレードアップグレードチェックリストチェックリスト
ダッシ ボ ド ワ クフ などの機能が無効に
• 設定変更⽅法• /csp/newnsアプリを変更Do EnableDeepSee^%SYS.cspServer("/csp/newns/")
無効に戻す無効に戻すS ^SYS("Security", "CSP", "AllowPrefix", "/csp/newns/", "%DeepSee.") = 0
• 全CSPアプリで有効にDo EnableDeepSee^%SYS.cspServer(0)
15
• JDK1.7、JDBC4.1対応• GLOBALS の機能強化
その他のその他のCachéCachéの新機能の新機能迅速なアプリケーションの開発迅速なアプリケーションの開発
GLOBALS の機能強化• Websocket のサポート
• -> 詳細は次のセッションでご紹介• JSON の改善
>詳細は次のセッシ ンでご紹介• ->詳細は次のセッションでご紹介
16
• 新バージョンでパフォーマンスが落ちてはいけないという”鉄の掟”
• XML処理パフォ マンスの改善
システム関連のパフォーマンス向上システム関連のパフォーマンス向上パフォーマンスとスケーラビリティパフォーマンスとスケーラビリティ
• XML処理パフォーマンスの改善• CachéとXerces(XMLパーサー)間のハンドリングを改善。
(%XML.Readerのデータインポートで最⼤50%, SOAPメッセージで最⼤25%)
• デジャーナルパフォーマンスの改善• プリフェッチ処理の最適化によりシャドウイング、ミラーリン
グ、起動時のジャーナルロールフォワード処理等が改善• ROLLBACKパフォーマンスの改善
• ROLLBACKコマンドのパフォーマンスを10~30%改善• AES暗号化
• 最新のIntelプロセッサにおいてAES暗号化/複合化の処理が向上。これにより暗号化データベースのパフォーマンスが向上。17
• multicompileが既定で有効• マルチコアマシンでのコンパイル時間が短縮
Object/SQLObject/SQL関連のパフォーマンス関連のパフォーマンス向上向上パフォーマンスとスケーラビリティパフォーマンスとスケーラビリティ
• 複数キーによる結合の最適化• 複数のキーを指定した結合(JOIN)クエリのパフォーマンス向上
• TuneTableの機能強化• TuneTable統計のエクスポート・インポート機能をサポート。
これにより、Data,Selectivity,ExtentSizeなどの詳細を特定のシステムから別のシステムへ移すことができるシステムから別のシステムへ移すことができる
• クラスのインデックス追加時のダウンタイムを最⼩化• %Libarary.IndexBuilder, $SYSTEM.SQL.SetMapSelectabilityとい
う⼆つの機能追加により、アプリケーション稼動中のインデックス追加が可能に
18
• 今までなぜできなかったかというと…
スタジオからコンパイルを⾏う
オンラインインデックス追加オンラインインデックス追加パフォーマンスとスケーラビリティパフォーマンスとスケーラビリティ
インデックス定義追加インデックス構築開始
スタジオで追加した場合
CREATE INDEXで追加した場合
CREATE INDEX実⾏
• スタジオからコンパイルを⾏うと、定義だけ有効になってインデックスデータが作成されない。インデックス構築中にデータ不整合が発⽣する可能性がある
• SQLでCREATE INDEXを⾏うとインデックスデータ作成中にテ ブルロックを取得するので
インデックス構築開始
不正なデータ取得やデータ不整合の可能性 アプリエラー
(更新エラー)の可能性
検索に新しいインデックスが使われるから問題が起きる!テーブルロックを取得するので、
インデックス作成に時間がかかる場合はアプリケーションに影響がでる可能性がある。
19
インデックス構築完了インデックス作成に時間がかかるから問題が起きる!
1. 作成する新しいインデックス名を決め、 SetMapSelectability関数でクエリオプティマイザから新しいインデックスを隠す
$SYSTEM.SQL.SetMapSelectability(“Sample.MyStudents”,”SNIndex”,0)
オンラインインデックス追加⼿順オンラインインデックス追加⼿順パフォーマンスとスケーラビリティパフォーマンスとスケーラビリティ
2. 対象クラスに以下の変更を⾏う1. 新しいインデックス定義を追加する2. %Library.IndexBuilderをスーパークラスに追加する3. INDEXBUILDERFILTERパラメータに新しいインデックスを指定する
3. クラスのコンパイルを⾏う。この時点で1.の処理と合わせて、新しいインデックスはINSERT,UPDATEに対しては有効だが、検索( 条件句) 対 は無効とな(SELECT,UPDATE/DELETEの条件句)に対しては無効となっている。
4. %ConstructIndecesParallel()メソッドを実⾏して、並列処理でインデックスを⽣成する。
5. 再びSetMapSelectability関数を実⾏し、クエリオプティマイザが新しいインデックスを使⽤できるようにする。20
• アプリケーション固有ライセンスの付与• アプリケーションのライセンスを作成、導⼊、
が ザ ポ
信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視
使⽤する必要があるユーザをサポートするためのメカニズムを提供
• ⼤規模グローバルバッファ(データベース⽤キャッシュメモリ)• 107GB > 16TB• 107GB -> 16TB
• ⼤容量共有メモリ・ヒープ• 4GB -> 1TB
21
• 構成変更後に再起動が不要に• wijdir(WIJディレクトリ)
信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視
• console(cconsole.logファイル名)• bbsiz(1つのプロセスに割り当てることのできるメモリの最⼤量)
• 災害復旧フェイルオーバーおよびフェイルバックの簡素化• プライマリ⇔⾮同期メンバ のフェイルバックが簡単に• 詳細は「Cacheʼミラーリングの運⽤について」セッションにて
22
←ポータル構成画⾯
↓^MIRRORメニュー
• %SYS.PTools.*クラス群と%SYSTEM.SQL. SetSQLStats()のGUIインターフェース⇒ SQL実⾏時統計情報
SQLSQLパフォーマンス・ツールの改善パフォーマンス・ツールの改善信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視
⇒ SQL実⾏時統計情報
• インデックスの利⽤状況など、SQLの実⾏状況を分析するユーティティを追加
• インデックスの使⽤回数を調べる• テーブル・スキャンが発⽣するクエリや⼀時インデックスを作成するクエリを識テ ブル スキャンが発⽣するクエリや 時インデックスを作成するクエリを識
別する• 結合に基づくクエリを識別して、それらが既存のインデックスでどの程度サポー
トされるかを評価する⇒ インデックス分析
23
SQLSQL実⾏時統計情報実⾏時統計情報信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視
24
• インデックス使⽤状況• 不要なインデックスは削除
頻度の⾼いインデ クスをより効果的に変更
インデックスインデックス分析分析信頼性、可⽤性、保守性、監視信頼性、可⽤性、保守性、監視
• 頻度の⾼いインデックスをより効果的に変更• テーブルスキャンを⾏うクエリ
• ExtentSizeが⼤きいものはインデックスを追加• ⼀時インデックスを使⽤するクエリ
• 作成されている⼀時インデックス=推奨インデック作成されている 時インデックス 推奨インデックスと考えれられる
• JOINのインデックスがないクエリ• 必要であれば推奨インデックスを追加する
25
• (最初の)リファクタリングサポート• クラス名の変更
リファクタリングリファクタリングテクノロジープレビューテクノロジープレビュー
• プロパティ名の変更• メソッド名の変更
26
Ensemble 2013.1 Ensemble 2013.1 新機能新機能• 複雑なレコードマップ• エンタープライズ・メッセージ・ビューワ• カスタムHL7スキーマ・エディタ• ビジネス・ルール内の⼀時変数
• ビジネスルール内で使⽤可能な⼀時変数を定義し利⽤できる
• Document.Validateメソッドをサポートする拡張EDI XMLXML
• XMLデータとXMLスキーマの妥当性検証を⾏うメソッドを追加
• Caché 2013.1の新機能
27
• レコードマップとは• CSVや固定⻑など単純なレコードを持つファイル専
⽤の⼊出⼒⽤ビジネスサ ビス オペレ シ ンと
複雑複雑なレコードなレコードマップマップEnsemble2013.1 Ensemble2013.1 新機能新機能
⽤の⼊出⼒⽤ビジネスサービス、オペレーションとそのメッセージを⾃動⽣成する機能
• 複雑なレコードマップ• 複数⾏に渡るような複雑なレコードも単⼀メッセー
ジとして処理可能に
28
SEM|194;2012;Fall;20STU|12345;Adams;John;Michael;2;[email protected];617‐999‐9999CLS|18.034;1;Differential Equations;4CLS|21W.759;1;Writing Science Fiction;4STU|12346;Adams;Jane;Michelle;3;[email protected];CLS|21L.285;1;Modern Fiction;3・・・
• 単⼀サーバの複数ネームスペースや、複数のサーバにまたがる各プロダクションのメ セ ジを 元的に表⽰ 検索可能
エンタープライズ・メッセージ・ビューワエンタープライズ・メッセージ・ビューワEnsemble2013.1 Ensemble2013.1 新機能新機能
メッセージを⼀元的に表⽰・検索可能。• 完全なメッセージにアクセスする際には、
メッセージを保存しているEnsembleインスタンスに対してアクセスする
29
• 今まではスタジオで編集していたカスタムHL7スキーマの編集が、管理ポータルから実⾏可能に
カスタムカスタムHL7HL7スキーマエディタスキーマエディタEnsemble2013.1 Ensemble2013.1 新機能新機能
実⾏可能に
30
CachéCaché 2013.2 2013.2 新機能新機能• ZEN Mobile• ZEN Mobile FrameworkZEN Mobile Framework• REST…
31
• ZEN Mobile• iOS, Android対応のNativeアプリ構築に対応する
ためのZEN拡張
CachéCaché 2013.2 2013.2 新機能新機能
ためのZEN拡張• HTML5• カメラなどアプリケー
ションとの連携も可能ZenMobile.Camera.picture({source:"camera",device:device}
32
: camera ,device:device}
• ZEN Mobile Framework• タブレットなどのモバイル端末画⾯の表⽰に適したシン
プルなレイアウト テンプレ トを提供するコンポ ネ
CachéCaché 2013.22013.2 新機能新機能
プルなレイアウト、テンプレートを提供するコンポーネント
33
• ZEN Mobile Framework
CachéCaché 2013.22013.2新機能新機能
DocumentView
vigat
ion
DocumentView
Data
DocumentView
Layout Behavior
JSON
Nav
HTML5
JSON
JavaScript
• REST• URIリクエスト(GET,PUT,POST,DELETE)に対し
て HTML JSON XMLなどのフ マ トでデ
CachéCaché 2013.2 2013.2 新機能新機能
て、HTML,JSON,XMLなどのフォーマットでデータを返す
• %CSP.RESTクラス
35
• Web Serviceの機能強化(REST)• マネージドアラート
EnsembleEnsemble 2013.2 2013.2 新機能新機能
マネ ジドアラ ト• HL7 v2フィールドレベル妥当性強化とス
キーマエディタの機能強化• Inbound File,FTPアダプタのセマフォ対
応応• プロダクションエクスポートの強化• プロダクションモニタの強化
36
ご質問ご質問
37
ぜひバージョンアップを⾏って、新機能をお使いください!