2015年1月27日

[Mobile, FMW] Announcing Oracle Mobile Application Framework 2.1 - Now Available

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

Oracle Mobileチームは、Oracleのモバイル開発フレームワークのメジャーアップデートである、Oracle Mobile Application Framework 2.1のリリースを発表できることをうれしく思っています。
この新バージョンではフレームワークの基盤のアップグレードに注力しています。以下のページで新機能を紹介しています。
New Features in Oracle Mobile Application Framework 2.1.0
http://www.oracle.com/technetwork/developer-tools/maf/documentation/maf210features-2407599.html 
ここでもちょっとだけご紹介しましょう。
  • Java 8のサポート
    JavaはOracle MAFでビジネスロジックの開発に利用する言語ですが、実のところ、同じJavaコードがiOSでも、Androidでも動作する唯一のソリューションがOracle MAFなのです。Java 8 Compact2 profileをサポートする64bit JVM上で実行しつつ、開発者は、例えばLambda式、Collection  with GenericsなどといったJava言語の最新機能を利用することができます。
  • Cordova 3のサポート
    Oracle MAFでは、デバイス機能へアクセスするためにCordovaを使っていますが、Oracle MAF 2.1では、利用バージョンをAndroidでは3.6.3、iOSでは3.7としました。これにより、開発者が利用できるプラグインの数が劇的に増加します。
  • Cordova Pluginとの連係がより簡単に
    Oracle MAFはplugmanコマンドを使って、プラグインのビルドやOracle MAFアプリケーションへの導入ができるようになりました。
  • Xcode 6とAndroid 5のサポート
    複数のデバイス、プラットフォームに対し、最新のSDKを使って、MAFアプリケーションのコンパイル、デプロイができます。
JDeveloperの[ヘルプ]>[更新の確認]を使って最新のOracle MAF extensionをダウンロードできます。

アップグレードを開始する前に、インストレーションガイドをお読み頂くことを強く推奨します。JDeveloperを実行するにはJDK 7が必要なのに、extensionを利用するためにはJDK 8をが必要になるため、セットアップは些かトリッキーかもしれません。そのため、手順を注意深く読み、従ってください。
Oracle Mobile Application Framework Documentation
http://oracle.com/technetwork/developer-tools/maf/documentation/index.html
何か質問がありましたら、OTNのOracle MAFのディスカッションに参加して投稿してください。
Oracle Mobile Application Frameworkのスペース(OTN)
https://community.oracle.com/community/oracle-mobile/oraclemaf

2015年1月26日

[SOA/BPM, ADF] 11gから12cへアップグレードしたADF Formをビルドするとエラーが発生する

BPMに関する質問&回答その5ですが、ADFにも関連する内容です。

Q) BPM 11gで作成したプロセスとADF Formを12cに移行したのだけど、ADF Formのビルドでエラーになってしまう。エラーメッセージが曖昧でよくわからないんだけど・・・
A) 以下のエラーが出ている場合は、ここで説明する設定変更で解決する可能性があります。

この問合せで頂いた、具体的なエラーメッセージは以下のようなものです。
Error: <J2EE> <BEA-160187> <weblogic.appc failed to compile the application. Recompile with the -verbose option for more details about the issue.> 
これだけだと何ともわかりづらいのですが、このエラーがアップグレードしたADF Formから出ている場合、weblogic.xmlを修正すると、エラーが解消されることがあります。

まず、エラーが発生するweblogic.xml(とあるBPMのタスクフォームの例)です。
<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <ejb-reference-description>
        <ejb-ref-name>ejb/bpel/services/workflow/TaskServiceBean</ejb-ref-name>
        <jndi-name>ejb/bpel/services/workflow/TaskServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>ejb/bpel/services/workflow/TaskMetadataServiceBean</ejb-ref-name>
        <jndi-name>ejb/bpel/services/workflow/TaskMetadataServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>TaskReportServiceBean</ejb-ref-name>
        <jndi-name>TaskReportServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>TaskEvidenceServiceBean</ejb-ref-name>
        <jndi-name>TaskEvidenceServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>TaskQueryService</ejb-ref-name>
        <jndi-name>TaskQueryService</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>RuntimeConfigService</ejb-ref-name>
        <jndi-name>RuntimeConfigService</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>UserMetadataService</ejb-ref-name>
        <jndi-name>UserMetadataService</jndi-name>
    </ejb-reference-description>
    <session-descriptor>
        <persistent-store-type>replicated_if_clustered</persistent-store-type>
    </session-descriptor>
    <library-ref>
        <library-name>oracle.soa.worklist.webapp</library-name>
        <specification-version>11.1.1</specification-version>
    </library-ref>
</weblogic-web-app>

12cからは、名前空間として、http://www.bea.com/ns/weblogic/weblogic-web-appではなく、http://xmlns.oracle.com/weblogic/weblogic-web-appを使うように変わりました。
つまり、上記weblogic.xmlの2行目を書き換える必要があります。
<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
    .... 以下省略 ....
</weblogic-web-app>
アップグレード時にADFの参照ライブラリなどは書き換えてくれるのですが、weblogic.xmlの名前空間の変更はやってくれないようですね。もしADF Formのアップグレードで嵌まっている方は、もしかするとこの修正でビルドエラーが解消するかもしれません。

[Mobile, Applications] New Version of Mobile App for Oracle E-Business Suite

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


What's New?

EBSの承認用スマートフォン向けアプリケーションの新バージョン(1.1.0)がApple AppStoreからご利用いただけるようになっています。この新バージョンでは以下のアップデートを提供します。
  • ログインや設定フローの改善
  • サーバーURLの変更が可能(URL変更のためのアプリケーション再インストールは不要)
  • 診断機能の改善(*)
  • ver 1.1.0へアップデートした後、アプリケーションを再構成し、このバージョンに含まれている構成の実装とログインの改善を確認する必要があります。
[注意]最新のアプリケーションのバージョンでは、最新のアプリのバージョンは、以前のサーバーサイドのパッチを適用することで動作します。しかし、最新のサーバーサイドのパッチを適用し、(アスタリスク*で示した)最新パッチが提供する新しい機能や修正を利用できるようにする必要があります。

これらのアップデートに関する詳細は、My Oracle Support(以下、MOS)の以下のドキュメントをごらんください。
Oracle E-Business Suite Mobile Apps, Release 12.1 and 12.2 Documentation (Doc ID 1641772.1)
https://support.oracle.com/rs?type=doc&id=1641772.1

Support for Demilitarized Zone (DMZ)

モバイルユーザーがOracle E-Business Suiteモバイルアプリケーションを(VPNなどを使わずに)インターネット経由で利用する必要がある場合、以下のMOSドキュメントに従い、貴社のOracle E-Business Suite環境をDMZ構成にセットアップする必要があります。
さらに、MOSドキュメントID 1642431.1の2.2.1項に記載があるように、モバイルアプリケーション用の設定ファイルをする場合には、サービスエンドポイント(もしくはRelease 2.1以前の場合、サーバのホストURL Oracle E-Business Suite Mobile Foundationリリース) が外部Webのエントリポイントに設定されていることを確認してください。
Oracle E-Business Suite Mobile Apps Administrator's Guide for Release 12.1 and Release 12.2 (Doc ID 1642431.1)
https://support.oracle.com/rs?type=doc&id=1642431.1

[Applications, UX] Responsive Web Design

原文はこちら。
https://blogs.oracle.com/SiebelOpenUI/entry/responsive_web_design

Siebel CRM YouTubeチャネルにアップロードされた新しい動画では、SiebelアプリケーションのレスポンシブWebデザイン機能をご紹介しています。

このフレームワークは、Siebel Innovation Pack 2014で導入されました。このフレームワークを使うと、1回のアプリケーションへの変更で任意のデバイスにデプロイできるUIを作成できます。もう様々なデバイスやフォームファクタにあわせて別のアプリケーションをコーディングする必要はありません。その結果、開発が著しく簡単に、しかも時間やコストの節約になります。

動画はこちらからどうぞ。

2015年1月23日

[Database, Support] Non-CDB architecture of Oracle databases is DEPRECATED since Oracle Database 12.1.0.2

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

Oracle Database 12.1.0.2から、CDB以外のアーキテクチャは非推奨になりました。
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#BABDBCJI

(訳注)
日本語版ドキュメントにはまだ反映されていません。

どういうこと?

まず、非推奨とは「サポートの終了」ではなく、今回の場合、以前のリリースからご存知のアーキテクチャである、スタンドアロン構成のOracleデータベースをもちろん利用できるだけでなく、シングルテナント構成での展開(CDB1個にPDB1個の構成。Multitenantオプションライセンスは不要です)や、マルチテナントデータベース構成(CDB1個にPDB最大252個、Multitenantオプションライセンスが必要です)も利用できます。
しかし将来、Oracleがシングルテナントデータベースやマルチテナントデータベースのみをリリースする可能性があります。 現時点ではいつそうなるかといった情報はありません。

現時点でサポートされていない機能は?

  • Database Change Notification
  • Continuous Query Notification (CQN)
  • Client Side Cache
  • Heat Map
  • Automatic Data Optimization
  • Oracle Streams
  • Oracle Fail Safe
  • Flashback Pluggable Database
    • Flashback Databaseは動作しますが、全てのPDBを含むCDB$ROOTをフラッシュバックする予定です。
  • DBVERIFY
  • Data Recovery Advisor (DRA)

2015年1月22日

[Java] Java Updates: SE 8 update 31, SE 7 and SE Embedded

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

OracleはJava SE 8 Update 31とJava SE 7 Update 75/76をリリースしました。新しいJava SE Embeddedのアップデートもご利用頂けます。開発者の方はJava SEとJava SE EmbeddedのJDKとJREをOTNからダウンロードできます。
Java SE
http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJava SE Embedded
http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.htmlOracle Technology Network
http://www.oracle.com/technetwork/java/index.htmlhttp://www.oracle.com/technetwork/jp/java/index.html

Java SE 8 Update 31

Oracle JDK、JREでSSL v3.0が無効化されました
SSLv3は廃止され、もう利用すべきではありません。
Information about SSL “Poodle” vulnerability CVE-2014-3566
https://blogs.oracle.com/security/entry/information_about_ssl_poodle_vulnerability
JDK 8u31からは、SSL v3プロトコル(Secure Socket Layer)を無効化しており、デフォルトで利用できなくなっています。詳しくはリリースノートをご覧下さい。
Java™ SE Development Kit 8, Update 31 Release Notes
http://www.oracle.com/technetwork/java/javase/8u31-relnotes-2389094.html
Security Fixes
このリリースには、重要なセキュリティフィックスが含まれています。全てのJava SE 8ユーザーがこのリリースにアップグレードすることを、Oracleは強く推奨します。このリリースに含まれている修正されたバグのリストは以下のページからどうぞ。
Java™ SE Development Kit 8 Update 31 Bug Fixes
http://www.oracle.com/technetwork/java/javase/2col/8u31-bugfixes-2389095.html

Java SE 7 Update 75/76

これらのリリースには、重要なセキュリティフィックスが含まれています。全てのJava SE 7ユーザーがこのリリースにアップグレードすることを、Oracleは強く推奨します。このリリースでは、自動アップデート機能を有効にしているユーザーはOracle JRE 7からOracle JRE 8へ移行されます。
注意: 2015年4月のCPUリリースがOracle JDK 7の最後のパブリックアップデートになる予定です。詳細情報や、OracleのJDK7の長期サポートを受けるための詳しいことは、Oracle Java SEサポートロードマップをご覧下さい。
Oracle Java SE Support Roadmap
http://www.oracle.com/technetwork/java/javase/eol-135779.html
Java CPUリリースとPSUリリースの違い
Java SE Critical Patch Updates (CPU)にはセキュリティ脆弱性の修正や重要なバグ修正が含まれており、全てのJava SE 7ユーザーが最新のCPUリリースにアップグレードすることを、Oracleは強く推奨します。ほとんどのユーザーはこのリリースを選択すべきです。
Java SE Patch Set Updates (PSU) には、そのバージョンまでにリリースされたCPUの全てのセキュリティ修正だけでなく、追加の修正も含まれています。Java PSUリリースは、当該バージョンで追加されたバグ修正が必要な方だけが使うべきです。以下のリンクもご覧下さい。
Java CPU and PSU Releases Explained
http://www.oracle.com/technetwork/java/javase/cpu-psu-explained-2331472.html

Java Embedded Updates 

Java SE Embedded 8 Update 33 

Java SE Embedded 8を使うと、開発者がJRECreateツールを使ってカスタマイズしたJREを作成できます。Java SE Embedded 8では、組み込みプラットフォーム向けの個々のJREダウンロードを提供していません。まずターゲットとするプラットフォームに適したeJDKバンドルをダウンロードし、手順に従い、アプリケーションの要件に適うJREを作成します。この変更はJava SE Embedded 7 UpdateリリースのJREダウンロードとは関係ありません。

JDK 8u33 for ARM 

このJDKには、Javaプログラミング言語で記述され、Javaプラットフォーム上で実行するプログラムの開発やテストに役立つツールが含まれています。JDK 8 for ARMはLinuxを実行する32bit ARM v6もしくはARM v7ベースのシステム上での動作をサポートしています。このJDKには、ARMプラットフォーム用のJava runtime environment (JRE) と、アプリケーション開発に必要なコンパイラやデバッガといったツールが含まれています。

Java SE Embedded 7u75 

Java SE Embedded 7u75 Runtime EnvironmentはJava Runtime Environment 7 Update 75 (JRE 7u75)ベースで、特定の機能や組み込みシステムのサポートを提供しています。
全てのJavaユーザーがこれらのリリースにアップグレードすることを、Oracleは強く推奨します。

2015年1月21日

[Database, JavaScript] Introducing node-oracledb - a Node.js driver for Oracle Database

原文はこちら。
https://blogs.oracle.com/opal/entry/introducing_node_oracledb_a_node

Oracle Database用のNode.jsドライバを開発中であると、Oracle OpenWorldの多くの熱狂的な参加者に対して発表しましたが、ようやく、node-oracledbをGitHubにプッシュしたことをご紹介できるようになりました。
Oracle Database driver for Node.js
https://github.com/oracle/node-oracledb
Node.jsは、サーバーサイドのネットワークアプリケーションをJavaScriptで作成するための、オープンソースで提供されているクロスプラットフォーム実行環境です。

What is node-oracledb?

node-oracledbドライバは、Node.jsアプリケーションを高速かつ機能的にするために、Oracle Databaseに接続します。node-oracledb 0.2ドライバのプレビューリリースでは、既に以下の機能をサポートしています。
Node-oracledbはOracleがメンテナンスするオープンソースプロジェクトで、Apache 2.0ライセンスの下でご利用いただけます。The Oracle Contributor Agreementに従ってコントリビュートいただけます。
The Oracle Contributor Agreement
http://www.oracle.com/technetwork/community/oca-486395.html

Where can I get node-oracledb?

To install node-oracledbをインストールするためには、リポジトリを複製し、無償のOracle Instant Clientをインストールします。(もしくは、Oracle Database Express EditionのようなOracle Databaseを利用します)。その後、npmを使って複製したディレクトリからインストールします。
Oracle Database driver for Node.js
https://github.com/oracle/node-oracledb/
Instant Client Downloads
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Oracle Database Express Edition
http://www.oracle.com/technetwork/database/database-technologies/express-edition/overview/index.html
手順書には、ローカルのNode.jsインスタンスの作成方法やその他の詳細情報が記載されています。ドライバは現在GitHub上にのみあります。
Installing node-oracledb
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
ドライバはOracle Databaseのクライアントライブラリを使用しています。他のCベースのスクリプティング言語用のOracle Databaseドライバと同様です。つまり、そうしたライブラリに対してこれまで投資してきた重要な機能セット、開発、テストを利用できる、ということです。また、Node.jsアプリケーションが、Oracleの標準クライアントーサーバ間のバージョン互換性に従い、複数の異なるOracle Databaseのバージョンと会話できるのです。
node-oracledbドライバはOracle Linux、OS X、Solarisでビルドします。現在Oracle Linux 6上でのテストに注力しています。Windowsのサポートは難しくないはずですが、まだ対応していません。

How do I use node-oracledb?

簡単なクエリの例をご紹介しましょう。
var oracledb = require('oracledb');

oracledb.getConnection(
  {
    user          : "hr",
    password      : "welcome",
    connectString : "localhost/XE"
  },
  function(err, connection)
  {
    if (err) { console.error(err); return; }
    connection.execute(
      "SELECT department_id, department_name "
    + "FROM departments "
    + "WHERE department_id < 70 "
    + "ORDER BY department_id",
      function(err, result)
      {
        if (err) { console.error(err); return; }
        console.log(result.rows);
      });
  });
Oracle DatabaseのHRスキーマを使った出力結果は以下の通りです。
$ node select.js
[ [ 10, 'Administration' ],
  [ 20, 'Marketing' ],
  [ 30, 'Purchasing' ],
  [ 40, 'Human Resources' ],
  [ 50, 'Shipping' ],
  [ 60, 'IT' ] ]
examplesディレクトリやAPI Documentationにはたくさんのサンプルがあります。
examples
https://github.com/oracle/node-oracledb/tree/master/examples
node-oracledb: API Documentation for the Oracle Database Node.js Driver
https://github.com/oracle/node-oracledb/blob/master/doc/api.md

What is the future for node-oracledb?

Windowsプラットフォームのサポート、LOBのサポート、大規模な問い合わせ結果セットのバッチフェッチンングやストリーミングのサポート、DRCPのサポートを含め、node-oracledbへの機能追加を積極的に実施しています。
データベース常駐接続プール(Database Resident Connection Pool / DRCP)
(英語)
http://docs.oracle.com/database/121/ADFNS/adfns_perf_scale.htm#ADFNS228
(日本語)
http://docs.oracle.com/cd/E57425_01/121/ADFNS/adfns_perf_scale.htm#ADFNS228
また、標準のnpmインストールコンポーネントとしてnpmjs.comで利用できるよう、またテストスィートを公開できるように現在作業中です。
みなさまからの建設的なフィードバックをお待ちしています。Release 1.0にすべての修正と、「必須アイテム」を組み込むことができるようにしたいと考えています。
ドライバの開発が進むにつれ、詳細をお伝えできると思っています。同僚のDan McGhanも、jsao.ioでJavaScriptとOracle Databaseについて情報提供していきますのでお楽しみに。
JavaScript and Oracle
https://jsao.io/

node-oracledb Links

2015年1月20日

[Java] Reactive Jersey Client

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

一般的に、同期アプリケーションには効率的にリソースを使わない、という問題があります。同期アプリケーションでは、例えばスレッドが何かが起こることを待つためにブロックされていることが多々あり、明らかに非効率です。一方、非同期アプリケーションを使うと、スレッドをより効率良く利用できますが、その引き替えとして、(複雑な)非同期アプリケーションを作成することが容易ではありません。非同期アプリケーションの作成にあたっては、ネストされたコールバック、つまり有名な「コールバック地獄(callback hell)」に対処する必要があります。ネストされたコールバックのレベルが深すぎる場合、適切にアプリケーションなどでエラーを処理する上で細心の注意が必要です。

リアクティブプログラミングとは、より簡単に非同期アプリケーションを開発するために使われる一般的なパラダイムで、データフローや変更の伝播に基づいています。このリアクティブアプローチを使うと、コードが書きやすく、理解しやすくため、メンテナンス性も向上します。

JerseyチームのMichal Gajdosが、Reactive Jersey Client APIの概要を説明する一連のエントリを書きました。この新たな汎用APを使うと、エンドユーザーがJerseyクライアントを使って、人気のあるリアクティブプログラミングモデルを利用できます。

2015年1月17日

[Java] File Uploads Using JSF 2.2 and Java EE 7

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

ファイルのアップロードは、これまでのJSFでも可能でしたが、たいていの場合、PrimeFacesやRihFacesといった3rdパーティー製のプラグインを使っていました。JSF 2.2ではついにファイルアップロードコンポーネントが標準でサポートされるようになりました。このように遅れて導入された実際の理由は、JSF仕様は、常にServletの最新バージョンから一つ前のものを選択してきたためで、これにより、古いランタイム、特にTomcatのようなServletコンテナで、JSFの新しいバージョンを使用できるようにするためです。その結果として、JSF 2.2は、マルチパートファイルの処理をサポートするようになったServlet 3.0に依存することができるため、新たなファイルアップロード機能をサポートするようになりました。Hantsy Baiは、すばらしいコード主体のエントリの中で、JSF 2.2/Java EE 7でのファイルアップロード機能のサポートについて説明しています。
JSF 2.2: File Upload (Forward Everyday)
http://hantsy.blogspot.com/2013/08/jsf-22-file-upload.html
ファイルアップロード機能に関するRama KrishnnanのYouTube動画もチェックしてみてください。

興味深いことにRamaはTomcatと古いNetBeansを使っていますが、それでもなおこの機能を十分にデモできるのです(また、手動でのヘッダ解析を自身で実施することを選択しています)。代わりに、Hantsy Baiが使っているGlassFishのようなJava EE 7サーバのほうがずっと簡単だというのは明白です。

2015年1月15日

[Database] New MOS Notes on Database Upgrades for 12c with or without Oracle Multitenant

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

Oracle Database 12c(Multitenantの利用を問いません)へのアップグレードに関する新たな MyOracle Support (MOS) Notes がご覧頂けますので、是非ご一読ください。
CDB/PDBに関するNoteは、同僚のKrishnakumar Kunkaがまとめてくれました。

2015年1月14日

[Nashorn] Using Nashorn with IntelliJ

原文はこちら。
https://blogs.oracle.com/nashorn/entry/using_nashorn_with_intellij

Nashornリポジトリには既にNetBeansプロジェクトが含まれていますので、Nashornを利用する場合にはNetBeansをIDEとして使うとシームレスに作業できます。
例えば、IDE事前生成済みの、ビルトインのJavaScriptオブジェクト(Array、Date、Number、Stringなど)を持つNasgenクラスをビルドし、アクセスするためにはいささかトリッキーな部分がありますが、これらはビルド手順の中で、コマンドラインから"ant clean jar"を実行するだけで生成されます。さらに、Nashornは現在、JDKモジュール化プロセスの一環で、Java 9のjimageであるため、透過的にNashornをビルドし開発するためには、いささかトリッキーなIDEの構成が必要です。とはいえ、NetBeansを全ての人が使うわけではないため、3rdパーティーコントリビュータのDmitry Alexandrovがすばらしい貢献をしてくれました。IntelliJとNashornを連携する方法の詳細をまとめ上げてくれたのです。
Dmitry、どうもありがとう!本当かっこいい!

ブログエントリはこちらからどうぞ。
Nashorn IntelliJ Idea development environment setup
http://blog.dmitryalexandrov.net/?p=4

誰かEclipseで同じことやってくれません? :)

2015年1月13日

[WLS, FMW] WebLogic Server and the Oracle Maven Repository

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle

Oracle Mavenリポジトリが利用可能になりました。
Oracle Maven Repository
http://maven.oracle.com/
これは本当にすばらしいニュースで、これを使うと、開発者は定期的にWebLogic Serverを使ってアプリケーション開発時に定期的に利用するAPI、ユーティリティ、ライブラリへのアクセスが(登録が必要ですが)無料かつ簡単になります。
WebLogic Serverの観点からすると、WebLogic Server 12c(12.1.2および12.1.3)で提供されているMaven製品アーティファクトの完全なセットに対し、オンラインかつオンデマンドでのアクセスをOracle Mavenリポジトリを通じて公開している、ということです。これには、WebLogic Server API、クライアントライブラリ、WebLogic Server Mavenプラグインが含まれます。また、WebLogic Server製品ディストリビューションに同梱されている類似のCoherenceアーティファクトのセットだけでなく、Oracle Fusion Middlewareスタックからの他のアーティファクトも含まれています。 

Oracle Mavenリポジトリにアクセスするには、2個の基本的な要件がありますのでご注意ください。
  1. 利用にあたっては、Maven 3.2.5以後のバージョンを使ってください。
    Release Notes – Maven 3.2.5
    http://maven.apache.org/docs/3.2.5/release-notes.html
    このバージョンには、Wagon 2.8というコンポーネントが含まれており、HTTP認証スキームで保護されたアーティファクトへのアクセスをサポートするよう拡張されています。
    Upgrade to last Wagon 2.8
    https://jira.codehaus.org/browse/MNG-5724
    HTTP wagon AuthScope is not definable from settings
    https://jira.codehaus.org/browse/WAGON-422
  2. OTNに登録し、Oracle Mavenリポジトリへのアクセスと利用への合意を受け入れる必要がありますが、これは、新規もしくは既存のOTNユーザーアカウントを使ってMavenリポジトリにアクセスするか、もしくは登録リンクをクリックして実施してください。
    Oracle Maven Repository
    http://maven.oracle.com
登録した後は、ローカルのMaven環境をOracle Mavenリポジトリの詳細情報に基づいて構成する必要があります。これには認証モデルに関連する情報(OTNユーザ名とパスワードの指定)を含みます。詳細なドキュメントが提供されており、主要なOracle Mavenリポジトリページからリンクが張られています。
Oracle® Fusion Middleware Developing Applications Using Continuous Integration
Configuring the Oracle Maven Repository
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven_repo.htm#MAVEN9010
(訳注:2015/01/13現在、日本語ドキュメントはありません)


Mavenが提供するパスワード暗号化機能を使うと、構成ファイル内に便利に格納したパスワードを安全に暗号化できます。しかも人間が読める形式で保存せず、Oracle Mavenリポジトリにアクセスする際に要求があれば自動的に提示できるようになっています。
Password Encryption
http://maven.apache.org/guides/mini/guide-encryption.html
リポジトリを構成した後には、開発者はプロジェクトのWebLogic Serverのアーティファクトへの依存性を含めることができ、プロジェクトをビルドしたり、テストをContinuous Integration環境で実行したりする場合に、依存性をOracle Mavenリポジトリから必要に応じて自動的に抽出します。
WebLogic Serverを使った開発において、Oracle Mavenリポジトリは開発者にとっての使いやすさと生産性のための重要な進歩を提供します。

[Java] Initial milestone of JSF 2.3

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

JSF Expert Group はJava EE 8に取り込まれる予定のJSF仕様の次バージョン(JSF 2.3 - JSR 372)について、積極的な作業を始めました。
JSR 372: JavaServer Faces (JSF 2.3) Specification
https://www.jcp.org/en/jsr/detail?id=372
仕様の最終化予定日までまだまだ時間がありますが、既に進捗を確認できる状態にあります。Mojarra(JSFの参照実装)の初期マイルストーンがリリースされたところです。
Mojarra 2.3 Download
https://javaserverfaces.java.net/nonav/2.3/download.html
リリースノートには、修正されたバグだけでなく、このマイルストーンで導入された新機能の説明もあります。
Mojarra 2.3 リリースノート
https://java.net/jira/secure/ReleaseNote.jspa?projectId=10204&version=17026 
このリストから、JSF/CDI統合の改善周りに注力されていることがわかります。

そんなわけで、実際には私たちはJSF2.3の初期段階にもかかわらず、新機能をテストすることが既に可能な状態にあります。Mojarraは、オープンソースなので、現在のMojarraのスナップショットをいつでも使用できます。JSF2.3のEGメンバーであるJosh Juneauは、ソースから直接Mojarraをビルドする方法を説明する記事を書いていますので、ご自由にJSF 2.3を早期段階で試用しフィードバックしてください。これはJSF仕様の進化にとって重要なことなのです。
Building and Testing JSF.next
http://jj-blogger.blogspot.be/2014/11/building-and-testing-jsfnext.html
いつもの素敵な但し書きでまとめますと、JSF 2.3の最終化までにはまだまだ時間があり、たくさん変化・進化するでしょう。これは明らかに「現在進行中の作業」ではありますが、透明性こそが重要なのです。

2015年1月12日

[Support, Security] Malware sites offering Oracle 'patches'

原文はこちら。
https://blogs.oracle.com/proactivesupportEPM/entry/malware_sites_offering_oracle_patches

注意

本物のOracleエラーメッセージに対するOracleの"fix" (修正、パッチ)を提供するOracle以外のサイトがあることを確認しています。
言われるまでもないことではありますが、以下のことを徹底してください。
こうした修正はダウンロードしないでください。その理由は以下の通りです。
  • Oracleとして何ら認めていない
  • 皆様のシステムにとって危険である可能性がある
もしこうしたサイトに出くわしたら、すぐにコミュニティ経由、もしくはSRを作成してお知らせください。そうすれば、その状況を是正いたします。
Oracle Community
https://community.oracle.com/
パッチが信頼できるものかどうか不明な場合は、MOSC OBIパッチレビューコミュニティや、MOSC EPMパッチレビューコミュニティにご相談ください。
My Oracle Support Community (MOSC)
BI Patch Reviews
https://community.oracle.com/community/support/business_intelligence/bi_patch_reviews
Hyperion Patch Reviews (MOSC)
https://community.oracle.com/community/support/oracle_hyperion_epm/hyperion_patch_reviews
(訳注)
MiddlewareやDatabaseにも同様のPatch Reviewsコミュニティがあります。
Patch Reviews - Middleware (MOSC)
https://community.oracle.com/community/support/middleware/patch_reviews_-_middleware
Patch Reviews - DB (MOSC)
https://community.oracle.com/community/support/oracle_database/patch_reviews_-_db

Proactive Supportでは既にいくつかの既知のサイトを調査中です。

この機会にお知らせしたいことがあります。MOS(My Oracle Support)の記事はOracleが著作権を有しています
それゆえ、MOSの記事を外部サイトに再掲載することはご遠慮ください。有用な記事を見つけ、共有したいとお考えになる場合には、再掲載ではなく、ユーザーが簡単に記事を見つけることができるように、Description(説明というよりはサマリ、タイトルといったほうががおさまりが良さそうですね)とMOSのドキュメントIDを渡すようにしてください。

2015年1月11日

[SOA] New SOA 12c Oracle Cloud Adapter for RightNow

原文はこちら。
https://blogs.oracle.com/soaproactive/entry/new_soa_12c_oracle_cloud

Oracle Cloud Adapter for Oracle RightNow Cloud ServiceがOracle SOA Suite 12c 12.1.3向けにリリースされました。このアダプタはRightNow Cloud ServiceとConnect Web Services for SOAP APIを使った連係をサポートします。これを使うと、RightNowインスタンスに対する以下の操作を実現できます。
  1. CRUD (create/get/update/destroy)
  2. 問い合わせ (ROQL)
  3. CRUD/問い合わせ操作のバッチ処理
このアダプタはSOAコンポジットアプリケーションやOracle Service Busを含むOracle SOA Suite、Oracle BPM Suiteコンポーネントとの動作検証済みです。詳細情報は以下のリンクからどうぞ。
Oracle Fusion Middleware 12c 12.1.3 Cloud Adapter for RightNow(英語)
http://docs.oracle.com/middleware/1213/cloudadapter-rightnow/index.html
OTN Japanのページからもたどることができますが、2015/01/11現在、表示が崩れていたり、リンク切れになっているようです
http://www.oracle.com/technetwork/jp/middleware/adapters/documentation/154322-154322-ja.html 

2015年1月9日

[Cloud, WebCenter] Oracle Documents Cloud Service R2 – Now Available!

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

ビジネスの成功は、顧客やパートナー、サプライヤー、リモートで働く従業員といった、組織内外と、任意の場所、任意の時間、任意のデバイスを使って効率的なコラボレーションができるかどうかにかかっています。

今週、Oracle Documents Cloud Serviceの最新リリースがご利用いただけるようになりました。
Oracle Documents Cloud Service
https://cloud.oracle.com/documents
このクラウドサービスは、先ほどの約束を実現するものです。速い、直感的Webインターフェースと使いやすいデスクトップアプリケーションならびにモバイルアプリケーション、を使うと、オフラインであっても、ファイルを閲覧したり、共同作業したりすることができるため、組織は効率的に業務を遂行しつづけ、従業員が任意の場所で生産性を落とすことなく、業務を遂行できます。

Improved User Experience

従業員がOracle Documents Cloud Serviceを使い始めるのはとっても簡単です。新規ユーザーはまずWelcomeツアーにアクセスして各クライアントの使い方を学びます。機能を紹介するオーバーレイ・ヘルプもあります。利用開始時に新規ユーザーに特別なガイダンスを提供するよう、「ようこそメール」を更新しました。オンライン・ヘルプではFAQに対する回答を提供しています。

Enhanced Productivity

コンテンツコラボレーション時の生産性を改善は、Oracle Documents Cloud Serviceの重要な目的の一つです。このリリースにおける生産性の向上は、Web、デスクトップ、モバイルといった、あらゆるエンドユーザーアプリケーションで垣間見ることができます。最も重要なファイルに素早くたどり着くことができるよう、Web UIからコンテンツをお気に入りとしてマークすることができますし、ワンクリックですべてのお好みのファイルにアクセスできます。また、編集対象のコンテンツをロックし、他の人からは現在作業中であることを通知できる機能も追加されています。モバイルユーザー向けには、このリリースでは、スマートフォンやタブレットから、ドキュメントやフォルダの共有や管理の機能が改善された、新しいモバイルアプリケーションがご利用いただけます。

Increased Security

Oracle Documents Cloud Serviceのこのリリースには、コンテンツ共有のためのパブリック・リンクの利用に関連するセキュリティ機能が追加されています。パブリック・リンクには、このリンクをアクティブにする期間を管理でするためのオプションで有効期限日付があります。アクセスコード(リンクにアクセスしようとする場合に入力必須の、8文字以上のパスワード)を設定することで、パブリック・リンク周りのセキュリティを追加することができます。

Seamless Integration

Oracle Documents Cloud Service Developer Platformもまた、このリリースで多くの改善が施されています。REST APIと組み込みUI機能とも機能拡張され、お客様やパートナー様が、ドキュメント中心のコラボレーションを既存のアプリケーションやビジネスプロセスにより簡単に統合できるようになっています。 Developer Platformの機能強化には、セキュアにフォルダを管理し、ユーザー情報を取得するためのAPIの追加が含まれています。Oracle Documents Cloud Serviceを他のアプリケーションへ埋め込むための拡張機能には、埋込みiFrame内でのドキュメントやビデオのプレビューだけでなく、ロールベースの埋込みリンクのサポートが含まれています。

Oracle Documents Cloud Serviceは、Oracleの次世代のコンテンツ・コラボレーション・ソリューションです。 Oracle WebCenterと組み合わせることで、貴社のエンタープライズ・コンテンツの管理コスト、リスク、複雑さを最小限に抑えつつ、貴社のECMシステムとバックエンドで連係し、セキュアなクラウドベースのコンテンツ・コラボレーションのための統一されたハイブリッドECMソリューションを手にすることができます。

Next-Gen ECM 

Oracle Documents Cloud Serviceは、ファイルの同期や共有機能を提供する次世代ECMです。従業員は、組織が求める管理やセキュリティに対処するため、先ほど述べたような機能を必要としています。
Next Generation Content Management
https://blogs.oracle.com/webcenter/entry/next_generation_content_management
Oracle Documents Cloud Serviceは、セキュアなクラウドベースのファイル共有・コラボレーションだけでなく、次世代コンテンツ管理システムを具現化する、オンプレミスECMとの統合というハイブリッドソリューションを提供する機能を有しています。

Oracle Documents Cloud ServiceやOracleのハイブリッドECMソリューションについて詳細を知りたい方は以下のリンクへどうぞ。
Oracle Documents Cloud Service
https://cloud.oracle.com/documents
ご利用になりたい方は、以下のページからどうぞ(金額も提示されています)。
Pricing | Oracle Documents Cloud Service
https://cloud.oracle.com/documents?tabID=1406547272260

[Linux] Unbreakable Enterprise Kernel Release 3 Quarterly Update 4 Now Available

原文はこちら。
https://blogs.oracle.com/linux/entry/unbreakable_enterprise_kernel_release_34

Oracle Linux 6および7用Unbreakable Enterprise Kernel Release 3 Quarterly Update 4 (UEKR3U4) のリリースを発表できうれしく思っています。これはUEK Release 3 (Version 3.8.13-55) の4回目の四半期アップデート・リリースで、ドライバのアップデートやバグやセキュリティのための集積パッチを含んでいます。トピックをいくつかご紹介しましょう。
  • /etc/dtrace-modules内でモジュールを指定することにより、起動中に自動的にDTraceがどのモジュールをロードするか指定できるようになりました。
  • PMC-Sierra PM8001 SAS/SATAコントローラ・ドライバ(pm8001)が追加されました。このドライバは、8ポートおよび16ポートを持つPCIe Gen3 SAS/SATA ホスト・バス・アダプタである新しいAdaptec Series 7Hファミリーをサポートしています。
  • Intel XL710 X710 Virtual Functionネットワークドライバ(i40evf)が追加されました。
  • Intel Sandy Bridgeプロセッサ用P-state ドライバ(intel_pstate)が追加されました。
  • MicrosoftのHyper-V上で動作するOracle Linux仮想マシンをサポートする、種々のネットワークパフォーマンスの改善パッチが同梱されています。
  • NFS over Remote Data Memory Access (RDMA) Clientがテクノロジープレビューとしてご利用いただけます。
  • 主要なパートナーからのデバイスドライバのアップデート(ストレージ装置、ネットワークカードなど)を含んでいます。
    • Broadcom
    • Emulex
    • HP
    • Intel
    • LSI
    • Mellanox
    • PMCS
    • QLogic
    • Tigon
詳細情報は、リリースノートをご覧ください。
Oracle® Linux
Release Notes for Unbreakable Enterprise Kernel Release 3 Quarterly Update 4
https://docs.oracle.com/cd/E37670_01/E58283/html/index.html
ソースコードはパブリックgitリポジトリからご利用いただけます。
oss.oracle.com - linux-uek3-3.8.git/summary
https://oss.oracle.com/git/?p=linux-uek3-3.8.git;a=summary

2015年1月8日

[SOA/BPM] 期限切れしたタスクの判断とタスクの再開

BPMに関する質問&回答その4です。

Q) HumanTaskに期限を設定したんだけど、期限切れしたHumanTaskを再開できるようにするにはどうすればいい?
A) HumanTaskの状態(state)を把握し、その上で、タスクの更新アクティビティを使います。

まず、タスクの状態は、HumanTaskの結果ではないことに注意する必要があります。HumanTaskの結果は、事前に定義した応答を返すもの(Q1における結果)であって、タスクの状態を返すものではありません。

右図はHumanTaskの実行データ(通常、execDataという名称で作成されます)の構造を示していますが、この中で、HumanTaskの結果は、一番下のoutcomeに相当します。
タスクの状態は、中ほどに赤枠で囲んだstateで知ることができます。

タスクの状態が[期限切れ]の場合、outcomeには何も文字が含まれません。そのため、outcomeだけを使って判断すると、期限切れであっても後続の定義に従って、フローが進みます。

タスクの状態を調べるためには、このstateをチェックします。stateは列挙型で以下の値をとります。
  • ASSIGNED
  • ALERTED
  • COMPLETED
  • ERRORED
  • EXPIRED
  • INFO_REQUESTED
  • OUTOME_UPDATED
  • STALE
  • SUSPENDED
  • WITHDRAWN
期限切れの場合はEXPIREDが設定されますので、

bpmn:getDataOutput('execData')/ns:systemAttributes/ns:state

で値を取得し、その内容で判断します。

期限切れになったHumanTaskを再開するには様々な方法がありますが、今回は更新タスクを使います。アクティビティは以下のような図柄です。



このアクティビティは、HumanTaskのプロパティを変更するために使いますが、今回の場合は期限切れしたタスクを再開する、という操作に使います。更新タスクに関する詳細情報は、以下のドキュメントをご覧ください。

Oracle® Fusion Middleware Oracle Business Process Managementでの開発 12c (12.1.3)
更新タスクを使用したユーザー・タスクの更新(日本語)
https://docs.oracle.com/cd/E57014_01/bpm/bpm-develop/human_task_bpmpd.htm#CIHBDGJA

Oracle® Fusion Middleware Developing Business Processes with Oracle Business Process Management Studio
Updating User Tasks Using Update Tasks (英語)
http://docs.oracle.com/middleware/1213/bpm/bpm-develop/human_task_bpmpd.htm#BPMPD11010

タスクの更新アクティビティのプロパティを開き、[実装]タブで、再開したいタスクと、操作(今回の場合は再開)を指定します。


もしかすると、
「期限切れしたタスクを再開するには、排他ゲートウェイで条件分岐し、再度ユーザータスクに遷移させればいいんじゃないの?」
と推測される方もいらっしゃるかもしれませんが、その手法は使えません。
実際にその方法を確認されるとすぐにわかりますが、タスクフォームは表示できても、値を更新し、その値をBPMプロセスへ反映させる、つまりHumanTaskの結果を返すことはできません。これは、期限切れになったタスクに対し、操作ができないようになっているからです。

[SOA/BPM] ヒューマンタスクやビジネス・オブジェクトの変更をデータ・コントロールに反映させる

BPMに関する質問&回答その3です。

Q) HumanTaskのタスクフォームを作ってから、ビジネス・オブジェクトやHumanTaskの結果を変更したんだけど、その変更内容をデータコントロールに反映させるにはどうすればいいの?もしかしてできないの?まさかタスクフォームの作り直し?
A) データコントロールの[定義の編集]を実施すると、最新の定義を反映するよう更新できます。

SOA SuiteやBPM SuiteでHumanTaskを操作するためのタスクフォームを作成するには様々な方法がありますが、JDeveloperで作成している場合、タスクフォームウィザードや自動生成機能を使ってタスクフォームを作成できます(API経由もありますが、今回は説明を省きます)。
ウィザードに従った場合、データコントロールを使ってタスクフォームとプロセスをバインドするのですが、タスクフォームを作成した後に、BPMプロセスを流れるデータ構造が変わることもままある話で、その場合、「せっかく画面をきれいにレイアウトしたのに、まさかウィザードに従って再作成するなんてないよね?」というのが質問の背景にありました。

具体的に以下のようなシンプルなプロセスを例にして考えます。


ビジネス・オブジェクト、ヒューマンタスクは以下のような設定にしてあります。




タスクフォームをウィザードに従って作成すると、以下のようなデータコントロールができあがります。


HumanTaskで設定した結果(APPROVE、REJECT)は、以下のようなInvokeMethodとして定義されます。


では、ビジネス・オブジェクトに属性attribute4(int)を追加し、HumanTaskの結果をAPPROVE、REJECTから、YES、NOに書き換えます。




変更を保存したのちに、[アプリケーション・リソース]の当該データコントロールを右クリックし、[定義の編集]を選択します。



データコントロールに対し、ビジネス・オブジェクトなどへの変更を反映するか否かを問い合わせてきますので、[Refresh Data Control]をクリックしてください。作業は静かに見守ってあげましょう。


すると、データコントロールの定義や、InvokeMethodに変更が反映されていることがわかります。




あとは、タスクフォームに変更を加えるだけです。

[Java] Interceptors in Java EE

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

インターセプターは、実際のビジネスロジックから監査、ロギング、セキュリティに関連するタスクなど横断的関心事を実装するために使用され、これらの横断的関心事とアプリケーションロジックの残りの部分との間を明確に分離しています。全体として、この分離の結果、開発およびアプリケーションのメンテナンスが簡素になっています。

インターセプター自体は新しいものではありません。実際、インターセプターのサポートが最初にJava EE 5で開始、より正確に言えば、EJB3.0仕様で導入されたので、インターセプターが登場してから、およそ10年経っています。しかし、ほぼその10年間で、インターセプターはかなり大きく進化し、今や独自の仕様を持つようになりました。
JSR-000318 Enterprise JavaBeansTM 3.1 (Maintenance Release 2)
https://jcp.org/aboutJava/communityprocess/mrel/jsr318/index2.html
インターセプターが、現在ではEJB仕様とは無関係であるという事実からもわかる通り、自身のスコープを拡大し、Java EEプラットフォーム全体に達しようとしています。

Abhishek Gupta(@abhi_tweeter)は先頃インターセプターに関するエントリを自身のブログに投稿しています。
Java EE Interceptors
https://abhirockzz.wordpress.com/2015/01/03/java-ee-interceptors/
彼の記事では、インターセプターの歴史に始まり、様々な種類のインターセプターの説明や、それらの利用方法について取り上げています。インターセプターについて学びたいという方は、いつも通り、Java EEチュートリアルのインターセプターの章やサンプルをチェックすることもできます。
Java Platform, Enterprise Edition: The Java EE Tutorial
25.6 Using Interceptors in CDI Applications
https://docs.oracle.com/javaee/7/tutorial/cdi-adv006.htm#GKHJX
26.4 The billpayment Example: Using Events and Interceptors
https://docs.oracle.com/javaee/7/tutorial/cdi-adv-examples004.htm#GKHPA