[Mobile] Oracle MAF 2.3 Release

原文はこちら。
https://blogs.oracle.com/mobile/entry/maf_2_3_release

Oracle MAF 2.3がOTNからダウンロードいただけるようになりました。本リリースは直前のメジャーリリース後半年以内に出てきたMAFのメジャーアップデートで、いくつかの新機能や興味深い機能が含まれています。本リリースでの主要機能を以下でご紹介します。

Windows Platform Support

よくいただくリクエストに応じて、MAF 2.3では Universal Windows Platform (UWP) をサポートします。複数プラットフォームに1つのコードベースで対応するという約束を維持していますので、お客様はiOSやAndroidに加え、既存のMAFアプリケーションをWindows 10デスクトップやタブレットに展開することができるようになりました。Windowsプラットフォームへのインストール、セットアップに関しては、以下のドキュメントを参照してください。
Oracle® Mobile Application Framework Installing Oracle Mobile Application Framework 2.3.0
Installation Requirements for MAF Applications to be Deployed to the Universal Windows Platform
http://docs.oracle.com/middleware/maf230/mobile/install/GUID-A5D8B5B6-94FB-4ACA-AC7B-84B5DAD3970F.htm#MAFIG142
Windowsのサポートに関する主要なポイントは以下の通りです。
  • MAFアプリケーションをx86チップセットベースの任意のWindowsデバイスにデプロイ可能
  • UWPのネイティブなルック&フィール、UXデザインパターンをサポート
  • サイドローディングによるWindowsタブレットへのデプロイをサポート



Enterprise Mobile Management (EMM) Support

MAFで作成されたアプリケーションは、AppConfigコミュニティが提供するベストプラクティスやガイドラインに従うことで、AirwatchやMobileIronのEnterprise Mobile Managementソリューションで管理することができます。
AppConfig Community
http://www.appconfig.org/
お客様は既存のEMMソリューションに対する投資を活用し、iOSやAndroidのネイティブ機能を使ってMAFアプリケーションの保護、構成、管理することができます。MAFはAppConfigコミュニティが指定している主要な機能をすべてサポートしています。
  • App Tunnel
  • Security Policies and Access Control
  • Single Sign On
OracleがサポートするAirwatchやMobileIronの具体的なバージョンについては、以下のページをご覧ください。
Oracle Mobile Application Framework 2.3.0 Certification Matrix
http://www.oracle.com/technetwork/developer-tools/maf/documentation/maf230certmatrix-2952859.html

ListView Enhancements

ListViewコンポーネントでのアニメーション効果をサポートしました。利用可能なアニメーションは以下の通りです。
  • listItem row insert (行の追加)
  • listItem row delete(行の削除)
  • listItem divider group disclosure change (グループの表示・非表示)
コンポーネントに含まれるデフォルトのアニメーションは、CSSスタイルクラスをオーバーライドすることでカスタマイズすることができます。
Disclosure

Insert/Delete


Mobile Cloud Service(MCS) Analytics Integration

本リリースでは、MCSアナリティクスイベントの生成機能が組み込まれています。MCSをバックエンドとして利用する場合、アプリケーション開発者は簡単にアプリケーションの利用状況に関するイベントを生成し、MCS Analyticsサービスへアップロードすることができます。この機能の主要なポイントは以下の通りです。
  • 標準的なアプリケーションライフサイクルイベント(起動、ユーザーログインなど)の分析イベントを、コーディングせずに簡単な構成で生成可能
  • カスタムのアプリケーションイベントを生成するためのAPIを提供
  • 分析イベントをデバイスローカルに永続化するので、デバイスがオフラインであってもイベントをキャプチャ可能
  • ラウンドトリップ回数を最小化するよう、イベント情報をバルクアップロード 
この機能の詳細は以下の開発者ガイドをご覧ください。
Oracle® Mobile Application Framework Developing Mobile Applications with Oracle Mobile Application Framework 2.3.0
Sending Analytics Information to Oracle Mobile Cloud Service
http://docs.oracle.com/middleware/maf230/mobile/develop-maf/GUID-220BE3F9-C427-410B-BB5E-717C1942A17D.htm#ADFMF-GUID-41DE8BC2-C8EC-4B44-A621-4FD33F583856

Security Enhancements

本リリースでは認証時の2-way SSLをサポートします。この機能を使うと、お客様は証明書やソフトウェアPKIベースの認証を使って、MAFアプリケーションで先進的なセキュリティ要件をサポートさせることができます。MDMベンダーや、クライアント証明書インストールのためのMAFの支援機能を使って、クライアント証明書をインストールすることができます。この機能に関する詳細は開発者ガイドをご覧ください。
Oracle® Mobile Application Framework Developing Mobile Applications with Oracle Mobile Application Framework 2.3.0
Configuring a MAF Application to Enable Two-Way SSL for Authentication
http://docs.oracle.com/middleware/maf230/mobile/develop-maf/GUID-3975EBAB-DB9E-4BC2-B814-619F30AF897D.htm#ADFMF-GUID-921E4406-ABBF-4DDB-96F6-92CBFFC8897F

Data Visualization Features

本リリースではDVT(データ可視化)コンポーネントも機能強化をしています。
1.  Range Charts: レンジ領域グラフとレンジ棒グラフは、変化する値の大小とともにデータセットを視覚化します。
Range Area Chart
Range Bar Chart

2.  カテゴリ軸ラベルに個別にスタイルを設定することができるようになりました。これにより、特定のグループを強調することができるようになっています。カテゴリ軸ラベルに対するツールチップもサポートしています。


3.  階層型ラベルを使って、カテゴリ型軸グラフに階層データを表示することができるようになりました。


4.  ゲージ (Gauge) コンポーネントに対して数多くの機能強化がなされています
  • ステータス・メーター・ゲージ
    プロットエリア、文字列のタイトル、角の丸みや境界、境界、プロット領域よりも広い表示インジケータを指定することができます
  • 円形ステータス・メーター・ゲージ
    半径、開始角度、角度範囲を管理する機能
  • 縦方向のレーティングゲージ
Circular Gauge


Vertical Rating Gauge

JDeveloper 12.2.1 Integration

MAF 2.3のextensionはJDeveloper 12.2.1で動作します。これにより、MAF開発者は最新のJDeveloperのリリースでIDEとして提供している新機能をすべて利用することができます。1個のIDEを使ってWebアプリケーションの開発もモバイルアプリケーションの開発もできます。JDeveloper 12.2.1を使うことによって得られるメリットとして、もうJDeveloper、MAFとも最新のJDK 8をサポートするため、JDK 7は開発環境にインストールしておく必要がなくなりました。

[Java] Project Jigsaw: The module system

原文はこちら。
http://mreinhold.org/blog/jigsaw-module-system

Project Jigsawは、6個のJEPを包含し、数多くのエンジニアが長年をかけて実装してきた大きなプロジェクトです。これまでにJDKのモジュラー構造を定義(JEP 200)し、モジュラー構造に従ってソースコードを再編成して(JEP 201)JDKとJREランタイムイメージを再構築してモジュールをサポートするようにしました(JEP 220)。最後の主要なコンポーネントであるモジュールシステムそのもの(JSR 376とJEP 261)をJDK 9に今週初めに統合し、early-access build 111でテストできるようになりました。
Project Jigsaw
http://openjdk.java.net/projects/jigsaw/
Project Jigsaw - JEPs
http://openjdk.java.net/projects/jigsaw/#jeps
JEP 200: The Modular JDK
http://openjdk.java.net/jeps/200
JEP 201: Modular Source Code
http://openjdk.java.net/jeps/201
JEP 220: Modular Run-Time Images
http://openjdk.java.net/jeps/220
JSR 376: Java Platform Module System
http://openjdk.java.net/projects/jigsaw/spec/
JEP 261: Module System
http://openjdk.java.net/jeps/261
JDK 9 Early Access Build Download
http://jdk9.java.net/download

Breaking changes

モジュラーランタイムイメージの導入のような以前のメジャーな変更と同様、モジュールシステムの導入によって、直接モジュールシステムを使っていないとしても何らかの影響を受ける可能性があります。
Project Jigsaw: Modular run-time images
http://mreinhold.org/blog/jigsaw-modular-images
それは、モジュールシステム、少なくとも(JEP200に記載の通り)JDKそのものを含むモジュールがコンパイル時ならびに実行時の両方で完全に機能しているからです。JDKの内部APIのほとんどは、その結果として完全に隠蔽されているので、デフォルトではJDK外のコードからアクセスできません。標準のJava SE APIだけを使用し、JDK 8で実行している既存アプリケーションの場合、JDK 9でも動作するはずですが、JDK内部のAPIを使っている場合、JDK内部のAPIを使うライブラリやフレームワークを使っているアプリケーションの場合は、実行できないでしょう。多くの場合、javacおよびjavaコマンドに対するオプション( -XaddExports )を付けることで回避できます。例えば、アプリケーションが内部クラス( sun.security.x509.X500Name )を使っている場合、以下のオプションを付けることで内部クラスにアクセスできるようになります。
-XaddExports:java.base/sun.security.x509=ALL-UNNAMED
この設定で、java.base モジュールの sun.security.x509 パッケージのすべてのメンバーが、クラスパスからクラスが定義された特別な無名モジュールにエクスポートされます。
The unnamed module (The State of the Module System)
http://openjdk.java.net/projects/jigsaw/spec/sotms/#the-unnamed-module
JDKの外部で適切に実行することができない、広く使われている内部APIとして、たとえば sun.misc.Unsafe がありますが、これは現時点ではまだアクセスすることができますが、JEP 260で説明しているように、これらは適切な標準APIに置き換えられると将来のリリースで削除される予定になっています。
JEP 260: Encapsulate Most Internal APIs
http://openjdk.java.net/jeps/260
JDK内部APIの隠蔽は、既存アプリケーションを実行する際に気付く変化でしょう。他の関連するけれどもほとんどの場合気付かれることのない変更をJEP 261のrisks-and-assumptionsで説明しています。
JEP 261: Module System
http://openjdk.java.net/jeps/261
既存アプリケーションをJDK 9 build 111もしくはそれ以後のビルドで実行した際に問題があった場合、その問題がモジュールシステム導入が原因のようだが、JEP 260、JEP 261で記載されている変更によるものではないと考えられる場合、jigsaw-devメーリングリストに知らせる(未登録の方はまず最初にサブスクライブする必要があります)か、バグレポートをJava Bug Databaseにあげてください。
jigsaw-dev -- Technical discussion about Project Jigsaw
http://mail.openjdk.java.net/mailman/listinfo/jigsaw-dev
Java Bug Database(bug登録)
http://bugs.java.com/

New features

モジュールシステム自体の学習を始めたいというのであれば、Devoxx BE 2015の基調講演の動画でハイレベルの概要を説明していますし、"The State of the Module System"には、JSR 376で提案したモジュールシステムのデザインがまとまっています。
Devoxx BE 2015 Keynote

The State of the Module System - AUTOMATIC EDITION
http://openjdk.java.net/projects/jigsaw/spec/sotms/
より詳細の情報は、メインプロジェクトページに記載の6個のJigsawに関連するJEPでご覧いただけますし、JavaOne 2015やDevoxx BE 2015でのセッション動画もご利用いただけます。
Project Jigsaw - JEPs
http://openjdk.java.net/projects/jigsaw/#jeps
Project Jigsaw: Talks
http://openjdk.java.net/projects/jigsaw/talks/
モジュールシステムのデザインは、フィードバックや体験に基づいて、しばらくの間まだ引き続きこのJSRで進化していきます。実装はProject Jigsawの"Jake" forestで並行して進化していき、より安定したJDK 9ビルドとは別のコードに基づいた最先端の早期アクセスビルドを引き続き提供していく予定です。
Java Platform Module System (JSR 376)
http://openjdk.java.net/projects/jigsaw/spec/
"Jake" forest
http://hg.openjdk.java.net/jigsaw/jake
Project Jigsaw: Early-Access Builds
http://openjdk.java.net/projects/jigsaw/ea
JDK™ 9 Early Access Releases
http://jdk9.java.net/download

[Java] G1: from garbage collector to waste management consultant

原文はこちら。
https://blogs.oracle.com/java-platform-group/entry/g1_from_garbage_collector_to

Javaのガベージ・コレクション機能のおかげで、開発者は、不使用のメモリの解放について神経質にならずに、ソフトウェアの作成や手元の作業に集中しやすくなっています。JDK 9では、G1ガベージ・コレクタ(以下、G1GC)がデフォルトのガベージ・コレクタになり、単純にメモリを解放する以上のことが実現できます。単にGCでメモリを解放するだけでなく、G1GCは廃棄物管理コンサルタント(waste management consultant)の役割も担います。つまり、不使用のメモリを解放し、ガベージのトータルの量を削減する方法を特定します。

String Deduplication may decrease heap usage by about 10%

Stringオブジェクトはほぼすべてのアプリケーションで使われるオブジェクトですが、アプリケーションは同じStringオブジェクトを様々な理由で1個のクラス、もしくは複数のクラスで複数回格納することがあります。これらのStringオブジェクトを分析することで、JDKはこれらのStringオブジェクトを格納するために必要なトータルのメモリ所要量を削減することができます。String Deduplication(Stringオブジェクトの重複除外)によってヒープの使用量が10%ほど削減できる可能性があります。
String deduplicationはJDK8u20で導入され、バックグラウンドタスクとして振る舞います。G1GCがクリーンアップすべきメモリ参照をチェックして、重複するStringを分析し、重複するString間にメモリ節約のためのリンク(memory-saving link)を作成します。他のGCタスクと同様に、開発者はString Deduplicationを機能させるためにコードを変更する必要はありません。CodecentricのFabian Langeが実施した分析によると、「String deduplicationは非同期かつGC中に並行して動作するため、実行時に余計なオーバーヘッドはみられない」とのことです。
下表はJDK 8でString Dedupulicationを有効化するために必要なフラグをまとめたものです。
-XX:+UseG1GC G1GCを有効にする
-XX:+UseStringDeduplication G1GCでString Deduplication機能を有効にする
-XX:+PrintStringDeduplicationStatistics 詳細な重複除外統計を出力する(オプションフラグ)
-XX:StringDeduplicationAgeThreshold=3 Optional flag to change when Strings become eligible for deduplication.いつStringオブジェクトが重複除外の候補になるかを変更する(オプションフラグ)

Example: Decreasing memory used by the Eclipse IDE

Eclipseは開発者がソースコードの閲覧、作成を支援する人気のあるIDEです。G1GCは一般的にスループット(例えばサーブレットコンテナ)に焦点を当てた、長期実行中のアプリケーションにとって効果があるとされていますが、クライアントアプリケーションにとっても有用です。
次の例は、Eclipse MarsとJDK8u72の組合せで実行し、Java Flight Recorderを有効化してGCやオブジェクトの割り当て、全体的なメモリの消費量への影響を確認しようとしています。今回、同じ操作を2回実行していますが、そのうち1回は–XX:+UseStringDeduplicationを付けず、before.jfrという名前を付けて実行して、比較できるようにしています。
以下の行はeclipse.ini内で最後に追加しています。
-XX:+UseG1GC
-XX:+UseStringDeduplication
#以下の設定はG1GCのために必ずしも必要ではありませんが、差を評価するために含めています
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
-XX:StartFlightRecording=filename=after.jfr,dumponexit=true,maxage=5m,settings=c:/Users/ecostlow /desktop/Everything-Costlow.jfc
-XX:FlightRecorderOptions=dumponexit=true,disk=true,maxage=10m
バックグラウンドタスクとして、String deduplicationに要した時間は、簡単な使用であればおよそ0.0000908 秒(90.8マイクロ秒)でした。おそらく統計表示により時間がかかっていると思われます。テストしたノートPCは管理された環境ではなく、同じアクションを手作業で実施しましたが、5分間の利用でトータルのヒープ使用量は233MBから213MBへと約9%低下しました。
JFR of G1 String Deduplication: before and after
以下はString Deduplication Statistics(-XX:+PrintStringDeduplicationStatisticsを指定しています)の最終出力です。
[GC concurrent-string-deduplication, 14.5K->6120.0B(8744.0B), avg 38.6%, 0.0000908 secs]
   [Last Exec: 0.0000908 secs, Idle: 0.8590383 secs, Blocked: 0/0.0000000 secs]
      [Inspected:             142]
         [Skipped:              0(  0.0%)]
         [Hashed:              89( 62.7%)]
         [Known:               21( 14.8%)]
         [New:                121( 85.2%)     14.5K]
      [Deduplicated:           96( 79.3%)   8744.0B( 58.8%)]
         [Young:                0(  0.0%)      0.0B(  0.0%)]
         [Old:                 96(100.0%)   8744.0B(100.0%)]
   [Total Exec: 52/0.1772395 secs, Idle: 52/103.0713572 secs, Blocked: 2/0.1476086 secs]
      [Inspected:          322160]
         [Skipped:              0(  0.0%)]
         [Hashed:          164740( 51.1%)]
         [Known:            61960( 19.2%)]
         [New:             260200( 80.8%)     20.3M]
      [Deduplicated:       144975( 55.7%)   8037.4K( 38.6%)]
         [Young:                2(  0.0%)     72.0B(  0.0%)]
         [Old:             144973(100.0%)   8037.3K(100.0%)]
   [Table]
      [Memory Usage: 4213.1K]
      [Size: 131072, Min: 1024, Max: 16777216]
      [Entries: 132446, Load: 101.0%, Cached: 3622, Added: 170306, Removed: 37860]
      [Resize Count: 7, Shrink Threshold: 87381(66.7%), Grow Threshold: 262144(200.0%)]
      [Rehash Count: 0, Rehash Threshold: 120, Hash Seed: 0x0]
      [Age Threshold: 3]
   [Queue]
      [Dropped: 0]

[Java] New Java SE Releases

原文はこちら。
https://blogs.oracle.com/java/entry/new_jdk_se_releases

Java SE 8 update 77 (Java SE 8u77) およびJava SE Embedded 8 Update 77 がダウンロードできるようになっています。このアップデートには重要なセキュリティ脆弱性の修正が入っているため、Java SEをご利用のみなさまに対しては、最新のJava 8 update 77へアップグレードされることをOracleは強く推奨します。ダウンロードは以下のリンクからどうぞ。
Java SE Downloads
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Oracle Java SE Embedded Downloads
http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.html
これらのリリースに含まれる新機能やバグ修正に関する情報は、以下のリリースノートをご覧ください。
(訳注)
このアップデートは、セキュリティアラートCVE-2016-0636に対応するためのアップデートです。
Oracle Security Alert for CVE-2016-0636
http://www.oracle.com/technetwork/topics/security/alert-cve-2016-0636-2949497.html
サーバ側ではなく、クライアント側に影響するものです。これに伴い、セキュリティベースラインが8u77に変更されていますので、ご注意ください。

[Database, Support] What does DEPRECATED mean? And DESUPPORTED?

原文はこちら。
https://blogs.oracle.com/UPGRADE/entry/what_does_deprecated_mean_and

時々DEPRECATED(非推奨)という言葉の意味を誤解されていることがあります。DESUPPORTED(サポート終了)とどう違うのでしょうか。実際のところ、Database Upgrade Guideで、1章まるまる使ってdeprecatedの機能とdesupportedの機能を説明しています。
Oracle® Databaseアップグレード・ガイド 12cリリース1 (12.1)
Oracle Database 12cで非推奨となった機能とサポートが終了した機能
http://docs.oracle.com/cd/E57425_01/121/UPGRD/deprecated.htm#BABBIBFB
Oracle® Database Upgrade Guide 12c Release 1 (12.1)
Deprecated and Desupported Features for Oracle Database 12c
https://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60000

Deprecated(非推奨)

特に、「Oracle Database 12cで非CDBのアーキテクチャが非推奨になった」というこのメッセージで、多くのお客様が困惑しました。


Database Upgrade Guideでは、明確にdeprecatedの意味を説明しています。
"By deprecate, we mean that the feature is no longer being enhanced but is still supported for the full life of the 12.1 release."
(非推奨になると、機能は強化されなくなりますが、12.1リリースの有効期間中は引き続きサポートされます。)
つまり、Oracleがさらに開発したり、機能強化しないので注意してください、という意味です。とはいえ、この機能を利用してもこの時点ではまだ完全にサポートされます。
もう一つ、よく知られている例をあげますと、「Oracle Streamは完全にOracle Database 12cでサポートされていますが、Oracle Multitenantではサポートされませんし、非推奨ですので、今後機能強化や開発をしない予定です」。


または別の例をあげると、Oracle Restartは非推奨になっていますが、まだサポートは終了していません。しかも、多くのお客様が数百のデータベース上でOracle Database 12.1.0.2とともにOracle Restartを本番環境で使ってらっしゃることを存じております。
Oracle Restartの非推奨
http://docs.oracle.com/cd/E57425_01/121/UPGRD/deprecated.htm#BABBEHJH
Deprecation of Oracle Restart
https://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60149

Desupported(サポート終了)

たとえサポートが終了したとしても(Rule Based Optimizerを覚えてらっしゃいますでしょうか)、サポート終了した機能を使うことができますが、Oracleはバグや問題を今後修正することはありませんので、「ご自身でリスクを負う」、という前提がつきます。
これも、Database Upgrade Guideで明確に説明しています。
"By desupported, we mean that Oracle will no longer fix bugs related to that feature and may remove the code altogether."
(サポートが終了すると、Oracleではその機能に関連するバグは修正されなくなり、コードが完全に削除される可能性があります。)
Oracle Database 12cにおけるその他の有名な例をあげると、Oracle Database 12cにはもはや存在しないEnterprise Manager Database Controlや、RAW記憶域デバイスのサポート終了があります。
Oracle Enterprise Manager Database Controlのサポート終了
http://docs.oracle.com/cd/E57425_01/121/UPGRD/deprecated.htm#BABCFBAH
Desupport of Oracle Enterprise Manager Database Control
https://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60005
RAW記憶域デバイスのサポート終了
http://docs.oracle.com/cd/E57425_01/121/UPGRD/deprecated.htm#BABCFBAH
Desupport for Raw Storage Devices
https://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60120

Summary

Deprecatedは将来機能が無くなる可能性があり、今後機能強化されないというシグナルであって、将来の計画に対して気にとめておく以外に何か対策をする必要はありません。Desupportedはサポートを終了した機能や製品に対し今後修正しない、という意味で、その機能や製品は将来なくなる可能性があります。しかし、多くの場合、機能はまだ存在しますし、ご自身でリスクを負うという前提でご利用いただくことはできます。

[Cloud, WebCenter] REST API Now Supports Metadata in DOCS

原文はこちら。
https://blogs.oracle.com/webcenter/entry/rest_api_now_supports_metadata

(Victor Owuorによるエントリです)

Oracle Documents Cloud Service (DoCS) が簡単にクラウドアプリケーションを構築するためのプラットフォームとすることを我々のゴールとしています。これを可能にするため、DoCSのユーザーエクスペリエンスをみなさんのアプリケーション内に組み込むためのフレームワークを提供していますし、DoCSを呼び出すためのREST APIを提供しています。これらを使えば、みなさまが作成されたアプリケーションのユーザーインターフェースでDoCSの機能を使うことができます。今回、REST APIがメタデータをサポートしたことを発表でき、うれしく思っています。
不動産リストのサイトのためのアセット管理をするアプリケーションにアプリケーションを例にして、メタデータを説明していきます。このアプリケーションはDoCS内の関連アセットを管理し、別々に描画するUIでこうしたアセットを使えるようにしています。ご想像の通り、アプリケーションにはアプリケーションにリスト表示される不動産の様々なイメージ画像を格納する必要があります。例えば、正面画像やいろいろな部屋の写真などがあるかもしれません。また、資産に関する追加説明情報を付ける必要があるかもしれません。この追加説明情報こそがメタデータとして参照しようとするものです。

アプリケーションには各不動産の住所を付ける必要があるかもしれません。住所には以下の情報が含まれています。
  • 番地
  • 市区町村
これらの情報はDoCSのメタデータフィールドと呼ばれます。関連フィールドはメタデータ・コレクションにまとめられます。アプリケーションは複数のコレクションを定義し、各フォルダやドキュメントをこうしたコレクションに関連づけることができます。例えば、addressコレクションに加えて、売り出し中の不動産を、以下のフィールドを含むforsaleコレクションと関連づけることになるかもしれません。
  • 売価
  • 地税
  • 以前の売価
対して、賃貸物件の場合は、以下のフィールドを含むfor-rentコレクションと関連づけることになるかもしれません。
  • 賃貸価格
  • リース期間
DoCSを使うと管理者が簡単にメタデータ・コレクションやコレクション内にフィールドを定義することができます。上記の例の場合、管理者は以下の方法でaddressコレクションを定義します。
POST …/metadata/Address?fields=Street,City,State
addressコレクションを変更して、以下のようにcountryを含めることも簡単にできます。
PUT …/metadata/Address?addFields=Country
collectionとcollectionのフィールドを定義したら、以下のようにしてコレクションをフォルダやドキュメントに割り当てることができます。
POST …/folders/{folder id}/metadata/Address
POST …/files/{file id}/metadata/Address
当然ながら、フォルダやドキュメントに対してコントリビュータ権限を持つユーザーだけがcollectionを割り当てることができます。
collectionを割り当てると、ユーザはcollectionの各フィールドに値を設定することができます。
POST …/folders/{folder id}/metadata?collection=Address&Zip=55347&City=Minneapolis
POST …/files/{file id}/metadata?collection=Address&Zip=55347&City=Minneapolis
フォルダに割り当てられたcollectionsと値はサブフォルダとフォルダ内のドキュメントが継承します。継承された値は、アイテムのメタデータのフィールドに対して特定の値を割り当てることでオーバーライドできます。
以前文書に割り当てたメタデータの値を取得できなければ、メタデータプロパティに価値はありません。以下のようなシンプルな呼び出し方で、メタデータの値を取得することができます。
GET …/folders/{folder id}/metadata
GET …/files/{file id}/metadata
この呼出しで、HTTPレスポンスの中にJSON形式でメタデータが返ってきます。以下はメタデータのレスポンスの例です。
{
  "errorCode": "0",
  "idList": "{file id}",
  "metadata": {
    "Address": {
      "City": "Minneapolis",
      "State": "Minnesota",
      "Street": "9560 Dogwood Circle"
    },
    "Description": {
      "Color": "Red",
      "Type": "Single Family"
    }
  },
  "type": "file"
}
メタデータの機能に関する詳細は、以下のドキュメントをご覧ください。
Oracle® Cloud Developing for Oracle Documents Cloud Service
Metadata Collection Resource
https://docs.oracle.com/cloud/latest/documentcs_welcome/WCCCD/GUID-1EC33747-53E0-4162-AD2B-9533E9F2FAD4.htm#WCCCD-GUID-1EC33747-53E0-4162-AD2B-9533E9F2FAD4

[Cloud, FMW] New Oracle Developer Cloud Service Rolls Out in March 2016 Release

原文はこちら。
https://blogs.oracle.com/fusionmiddleware/entry/new_oracle_developer_cloud_service

(Shay Shmeltzerによるエントリです)
3月の最初の週末に、OracleはOracle Developer Cloud Service 16.1.5(以下、DevCS)をロールアウトしました。このリリースでは迅速に利用開始できる多くの新機能を追加しています。以下で主要なポイントをご紹介します。

Integration with the Oracle Application Container Cloud

Oracle ACC (Application Container Cloud Service)はJava SEアプリケーションやnode.jsアプリケーションをデプロイするための基盤を提供します。DevCSの新バージョンでは、Deployタブから直接Oracle ACCに対してアプリケーションをデプロイできるようになりました。

Code Snippets Support

Snippetsと呼ばれるタブを確認できると思いますが、これは追跡、管理したいコードスニペットを保存するための場所です。これはチームメンバー間でコードを共有する上で有用な機能といえるでしょう。


Git Push Triggers Build

Gitリポジトリでプッシュ後、自動的に呼び出されてビルドするようセットアップすることが非常に簡単になっています。

Refined Git Repository Control

Gitリポジトリに管理オプションを追加し、完全に特定のブランチをロックできるようにしました。また、プッシュ、マージが可能なチームメンバーのブランチへのアクセス権を制御することもできます。

Build audits

何を契機にしたのか、誰がジョブをキャンセルしたのか、などを含めてビルドの完全な履歴を知る必要がありませんか?新たなauditボタンにより、こうした情報を入手することが簡単になりました。




その他にも多くの機能強化があります。以下のページにリンクを含めたまとめがありますので、是非ご覧ください。
What’s New in Oracle Developer Cloud Service
http://docs.oracle.com/cloud/latest/devcs_common/CSDWN/toc.htm#CSDWN-GUID-88FCFA5A-9EA1-4E43-BF2B-7D5B647B5A07

[Database] ORDS 3.0.4 was released

原文はこちら。
https://blogs.oracle.com/proactivesupportDevTools/entry/ords_3_0_4_was

ORDS (Oracle REST Data Services) の新バージョン (3.0.4) が2016年3月3日にリリースされました。
Oracle REST Data Services Download
http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.htmlドキュメント(リリースノートやインストール方法など)
https://docs.oracle.com/cd/E56351_01/index.htmBugs Fixed in Release 3.0.4
http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/ords-bugsfixed-304-2895222.html
また、このバージョンの新機能に関する詳細は以下のリンクをご覧下さい。
ORDS 3.0 New Features
http://www.oracle.com/technetwork/developer-tools/rest-data-services/ords-30-newfeatures-2373784.html

[Database, Cloud] Application Express in the Cloud

原文はこちら。
https://blogs.oracle.com/proactivesupportDevTools/entry/application_express_in_the_cloud

ご存知でしたか?
Oracle Application ExpressがCloudで利用できることを。
Oracle Database Cloud Serviceはいくつかの異なる機能をご利用いただけます。Database Schema Service (スキーマベースのAPEXサービス) ではOracle DatabaseへのHTTPSアクセスが可能で、開発者を対象にしています。Database as a Service および Virtual Image (占有データベースインスタンスサービス) はデータベースやSQL*Netの接続を必要とするお客様に適しています。

下図は両サービスのアーキテクチャの違いを示したものです。

試使用アカウントは、cloud.oracle.comからどうぞ。

Application ExpressがCloudで提供する機能は以下のFAQをご覧下さい。
FAQ
https://cloud.oracle.com/en_US/faq?resolvetemplatefordevice=true&subcatID=1383678917367

[JavaScript, MFT] MFT 12.2.1 Nashorn Java Script Integration

原文はこちら。
https://blogs.oracle.com/integration/entry/mft_12_2_1_nashorn

MFT(Managed File Transfer)のスクリプティング・コールアウトに関するエントリに対し、高い関心をいただきました。
Scriptable MFT: The Ginsu Knife of MFT Callouts
https://blogs.oracle.com/SOA/entry/scriptable_mft_the_ginzu_mother
Java JDK1.8を使用するMFT12.2.1にアップグレードする場合、JavaScriptを使ってすべてのMFT、SOAやすべてのWebLogic ServerのJava APIをネイティブに呼び出すRunJSコールアウトを使うためのオプションをすでに有しています。
Samples and Demos for Oracle Managed File Transfer
http://www.oracle.com/technetwork/middleware/mft/learnmore/index.html
MFTをホストするWebLogic Serverのクラスパスにある任意のJarやclassファイル(SOA Adapterが使う多くのものを含みます)がMFT transferと同じスレッドで呼び出すことができます。

(訳注)
MFTではソース(入力側)、ターゲット(出力側)の操作(アクション)としてスクリプトを呼び出すことができます。そのスクリプトの中には、JavaScriptも含まれています(以下はターゲット側での前処理アクションで選択可能なアクションの例)


なぜ気にしておくべきなのでしょうか。本当に、セキュリティ、パフォーマンス、リソース使用率、利便性に加えてコンパイラのない環境という柔軟性、その結果実質的に無限のユースケースだけでなく、それ以外にも影響がありますので、気にしない理由なんて全くありえません。Nashorn JavaScriptエンジンは、Javaコールアウトが実施するのと同様に、MFTコールアウト・コンテキストと入力、出力ストリームを受け取りますので、非常に簡単にファイルを検証したり変更できます。
Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM
http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html[Java, JavaScript] Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM
http://orablogs-jp.blogspot.jp/2014/03/oracle-nashorn-next-generation.html
以下はサンプルにあるユースケースです。
  • ファイル名の変更
  • 誤った文字のクレンジング
  • Native Translationライブラリを使ったCSVからXMLへの変換
  • XMLからCSVへの変換
  • CSVからJSONへの変換
これらのユースケースは単に読者に食指を伸ばしてもらうことに過ぎず、ほぼ何でもできます。もしかすると、「データベースやJMS、ファイルシステムに書き込むことができるのか?」と質問されるかもしれません。そうですね、そういったことを実現するJava APIがありますかね?
ダウンロードや構成はきわめて簡単です。単純にMftJS.zipファイルをダウンロードし、MFTの<DOMAIN_HOME>配下にZipの内容を展開するだけです。mft/js/READMEファイルを開いて記載の手順に従ってください。MFT RunJSコールアウトのUI(下図)でActionパラメータが呼び出すことができる、利用可能なサンプルライブラリは以下のようなものがあります。

LocationとFunctionの値はデフォルト値ですが、ScriptParametersを変更したり、オーバーライドしたりして調整することができます。特別に難読化されたPasswordもパラメータを隠すために利用できます。以下のように、提供されたEnd to Endの転送をインポート、デプロイ、実行することができます。

[Java] Self-Documented Services Using JAX-RS Analyzer

原文はこちら。
https://blogs.oracle.com/theaquarium/entry/self_documented_services_using_jax

SOAPで最もありがたかったのは、Javaのように、強く型付けされているというところです。つまり、WSDLを見るとサービスが何をするのか理解することができます。同様に、生成するクライアントやGUI可視化ツール、正確なドキュメントを含む、SOAPサービスをツールが簡単に読み、使うことができます。WADLはこうした欠点を克服するため、RESTの世界で考案されましたが、不幸にも、WADLはあまりサポートされず、使われていません。全くの未知のユーザーを含む、外部のユーザーが利用するRESTサービスを記述している場合、これは非常に大きな問題です。これまでこの問題に対する回答は手作業でRESTサービスのドキュメントを作成するというもので、非常に面倒で間違いが発生しやすく、しかも最新情報に追随できないものでした(因みに、JAX-RSの参照実装であるJerseyはWADLをサポートしていることはご存知と思います)。
しかしながら、JAX-RS開発者にとって、JAX-RS Analyzerというお助けツールがあります。JAX-RS Analyzerはシンプルですが非常に有用なオープンソースのJAX-RSプラグインで、Sebastian Daschnerが作成しました。このツールはJAX-RSアノテーションやメタデータを自動的に読みとり、プレーンテキスト、AsciiDoc、もしくはSwaggerの形式でドキュメントを作成します。Swaggerオプションは特に魅力的です。Swaggerは現段階においてRESTにおけるWSDLやUDDIのギャップを埋めるものとして最も近いものです。
JAX-RS Analyzerについてあまりご存知でないようでしたら、是非Sam Sepassiのすばらしいエントリをご一読ください。REST APIのドキュメント作成に掛けるうんざりするほどの時間を節約することができるようになるでしょう。
REST API Documentation Using JAXRS-ANALYZER
https://dzone.com/articles/rest-api-documentation-using-jaxrs-analyzer
(訳注)
簡単なJAX-RSサービスで試してみました。。。

[JavaScript] Oracle JET 2.0.0: Now Available Open Source with New Data Visualization Features

原文はこちら。
https://blogs.oracle.com/data-visualizations/entry/oracle_jet_now_open_source

Oracle JET 2.0.0 (JavaScript Extension Toolkit) がオープンソースとしてリリースされました。ソースはGitHubで公開されています。
Oracle JET 2.0.0
http://www.oraclejet.org/oracle/oraclejet
https://github.com/oracle/oraclejet
JET 2.0.0には数多くのデータ可視化機能(Data Visualization)が含まれています。以下で一部をご紹介します。
What's New in Oracle JET 2.0.0
https://community.oracle.com/community/development_tools/oracle-jet/blog/2016/03/01/whats-new-in-oracle-jet-200

Picto Chart

新しいPictoChart可視化コンポーネントを使うと、数値データをイメージで可視化できます。Infographicでよく使われていますが、このコンポーネントを使うと、これまでの表やグラフよりもより興味深い、効果的な方法で数値情報を表現することができます。JETのPictoChartは選択、ハイライト、フィルタリングだけでなく、他の可視化機能と同様のアニメーションや対話機能をサポートしています。魅力的なダッシュボードを作成する上で不可欠な要素になると考えます。


For an in-depth look at PictoChartについての詳細は、以下のJETのブログエントリをご覧ください。
Introduction to PictoCharts
https://community.oracle.com/community/development_tools/oracle-jet/blog/2016/02/29/introduction-to-pictocharts

New Charting Features

グラフにも新たな表現形式が追加されています。
  • 一方向のみでグラフのズーム&スクロールが可能になりました

  • 積み上げ棒グラフで棒の総数を表示できるようになりました

    • グラフの軸ラベルにラベルテキストをラップできるようになりました

    • ズーム&スクロールウィンドウで、異なるデータ系列や異なるグラフの種類を表示できるようになりました
    • 参照オブジェクトがデータ可視化コンポーネント間でハイライトやフィルタリングできるよう、参照オブジェクトでのカテゴリをサポートします。
    JET 2.0.0では新しいデータ可視化機能やフレームワーク機能がたくさん追加されています。新機能の完全なリストをご所望であれば、以下のエントリとリリースノートをご覧ください。
    What's New in Oracle JET 2.0.0
    https://community.oracle.com/community/development_tools/oracle-jet/blog/2016/03/01/whats-new-in-oracle-jet-200JET v2.0.0 Release Notes
    http://www.oracle.com/webfolder/technetwork/jet/releaseNotes.html
    JET Data Visualizationsに関する詳細を説明した一連のエントリは、以下のリンクからどうぞ。
    JET Data Visualizations: FAQ
    https://community.oracle.com/docs/DOC-993442

    [Database] Hybrid Columnar Compression Common Questions

    原文はこちら。
    https://blogs.oracle.com/DBStorage/entry/hybrid_columnar_compression_common_questions

    先週と同様、Hybrid Columnar Compression (HCC)についてよく尋ねられる質問についてこのエントリでご紹介します。質問は以下のようなものです。
    • 既存の表やパーティションに対してHybrid Columnar Compressionを有効化するには?
    • Hybrid Columnar Compressionが適しているのはOLTP、データウェアハウスのどちらのアプリケーション?
    • Hybrid Columnar Compressionは別ライセンスが必要?
    既存の表やパーティションに対し、Hybrid Columnar Compressionを有効化するベストプラクティスアプローチが3個あります。どの方法でも既存データに対してHybrid Columnar Compressionを有効化し、バルクロードで将来ロードされるデータを圧縮します。メソッドの違いはHCC圧縮を有効化しつつ表にアクセス可能にするか否か、という点です。
    • オンライン再定義(DBMS_REDEFINITION)
    • ALTER TABLE … MOVE PARTITION … ONLINE
      • ステートメント実行中、パーティション/サブパーティションはRead/Writeのアクティビティ両方に対してオンラインを維持します。
    • ALTER TABLE … MOVE COLUMN STORE COMPRESS FOR …
      • ステートメント実行中、ALTER TABLE MOVE では表に対するDMLをブロックします。

    ってわけで、「どれがうちに最適なのさ?」とおたずねになるかと思うのですが、そうですね、あなた次第です。圧縮を有効化している間に表やパーティションをオンラインのまま利用可能にしたいというのであれば、オンライン再定義やALTER TABLE MOVE PARTITION ONLINEが最適でしょう。圧縮のための停止時間を取る場合には、ALTER TABLE MOVEを使ってください。ですが、どちらを利用されたとしても、同じレベルの圧縮を提供します。

    どのタイプのアプリケーションがHCCに最適化という質問は実のところそれほどよくある質問ではありませんが、この質問への回答を理解することは重要だと思います。HCC圧縮をOLTPやData Warehouseアプリケーションで利用できますが、HCCを表やパーティションだけに有効化し、DMLのINSERT/UPDATEの操作を実施しない、もしくはしたとしても頻繁には実施しないことをおすすめします。Hybrid Columnar圧縮された表のデータを従来のデータ操作言語(DML)のオペレーション、具体的にはINSERTやUPDATE、DELETEを使って変更することができますが、そのような操作を実施した結果、HCC圧縮率が下がる可能性があります。そして、この操作を頻繁に実施すると、JCC圧縮率が時間の経過とともに低下します(表やパーティションの再圧縮が必要です)。表やパーティションに対して頻繁にDML操作を実施する予定がある場合、そういったデータに対してはAdvanced Row Compressionがより適しています。

    HCCに別ライセンスが必要か否かは、これもユーザーの方々がよく誤解されていることです。HCCを使うためには、 Exadata、SuperCluster、ZFS Storage Appliance、FS Flash Storage Systemを含む、HCCをサポートするOracleプラットフォームで、11.2.0.3以後のOracle Database Enterprise Editionを実行しなければなりません。

    Hybrid Columnar Compressionのベストプラクティスに関するより多くの情報はホワイトペーパー(6~8ページ)に記載されていますので、是非ご覧ください。
    Hybrid Columnar Compression (HCC) on Exadata (and Oracle Storage)
    http://www.oracle.com/technetwork/database/database-technologies/performance/hybridcolumnarcompression-oow2010-200703.pdf
    (訳注)
    日本語版はまだですが、類似の内容は以下のリンクにあります。
    ExadataのHybrid Columnar Compression(HCC)
    http://www.oracle.com/technetwork/middleware/bi-foundation/ehcc-twp-131254-ja.pdf 

    データベース・ストレージ最適化の冒険は次のエントリに続きます。次回は、Advanced Row CompressionとHybrid Columnar Compressionがどのように直接Information Lifecycle Management (ILM) のベストプラクティスに関わるのか、について説明する予定です。

    [JavaScript] Oracle JETがオープンソース化されました

    本日から、Oracle JET(JavaScript Extension Toolkit)はオープンソースになりました。
    Oracle JET
    http://oraclejet.org
    ソースはGitHubに公開されています。現在のバージョンは2.0.0です。
    oracle/oraclejet
    https://github.com/oracle/oraclejet 
    早速jaxenterで記事になっていますね...と読んでみたら、執筆者は最近はJETに関するエントリをたくさん書いているNetBeansのEvangelist(Geertjan Wielenga)でした。
    Visualize data in the Cloud with enterprise JavaScript
    Open Sourced: Oracle JET, An Enterprise-Ready JavaScript Toolkit
    https://jaxenter.com/open-sourced-oracle-jet-124350.html