ラベル Coherence の投稿を表示しています。 すべての投稿を表示
ラベル Coherence の投稿を表示しています。 すべての投稿を表示

[Coherence, Docker] Coherence Clusters on Docker Swarm

原文はこちら。
https://blogs.oracle.com/developers/coherence-clusters-on-docker-swarm

Javaのインメモリ・データグリッドは、通常数多くのJVMでクラスタを構成し、データをクラスタ間に分散させるという共通の機能を有しています。JVMが起動時のクラスタ探索にあたっては、マルチキャストを使いますが、これはDockerコンテナ内では機能しません。そのため、インメモリ・データグリッド製品は別の探索機構にフォールバックする必要があります。通常、これはクラスタメンバー・アドレスのリストを手作業で注入したり、別の探索機構を参照したりします。

Oracle CoherenceはDocker Storeからご利用いただけます。
Oracle Coherence
http://store.docker.com/images/oracle-coherence-12c
Docker SwarmでOracle Coherenceクラスタを実行する場合、以前よりもずっとクラスタの探索が簡単になっています。起動時にアドレスリストを挿入する必要がありますが、これはクラスタの開始前にクラスタメンバーのコンテナのIPアドレスのすべてまたは一部を知っている、という点に頼っています。Dockerでは、実行時にコンテナの固定IPアドレスを指定できるため実現できます。とはいえ、アドレス割り当てを気にする必要がないとより柔軟なのは明らかです。

クラスタメンバーが起動すると、クラスタメンバー内のアドレスを検索する必要がありますが、これはクラスタIPアドレスを保持する外部データソースに頼っています。これを実現するDockerサービスの検出に利用可能なアプリケーションがありますが、インフラストラクチャに追加するもう1つの可動要素です。シンプルなアプリケーション・インフラストラクチャであるほど、変なことにならなくなって、より簡単になります。

以前のOracle Coherence on Dockerのブログエントリでは、Coherenceメンバーが複数のDockerホストでクラスタを構成できるようにするために、ホスト・ネットワーキングまたはオーバーレイ・ネットワークを使用する必要がある、と記載しました。
Oracle Coherence on Docker
http://thegridman.com/coherence/oracle-coherence-on-docker/
マルチキャストが可能なホスト・ネットワーキングは最も簡単な解決策ですが、常に利用できるとは限りません。確かに現代のクラウド環境では使えないことがあります。これにより、オーバーレイネットワークを使うことになるわけですが、それに伴い、サービス発見の問題が発生します。しかし、DockerのSwarm Modeが導入されたことで、Oracle Coherenceを使用するコンテナのクラスタ構成がずっと簡単になりました。
Swarm mode overview
https://docs.docker.com/engine/swarm/

Coherence Cluster Discovery

既に触れたように、CoherenceはJVMが起動時にクラスタメンバを探索するための複数の方法を有しています。最も簡単な方法は、マルチキャストですが、これは常に利用可能というわけではなく、確かにDockerコンテナ内では利用できません。もう一つの方法は、well-know-addressingです。これは1個以上のIPアドレスのリストをJVMに渡すというもので、コンテナ内部ではこの方法を使う必要があります。

Well known addressは2方法で提供できます。Coherenceの操作構成ファイル(通常はオーバーライドファイルと呼ばれます)を使って管理します。
<?xml version='1.0'?>
          xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd">
  
    <cluster-config>
        <unicast-listener>
            <well-known-addresses>
              … wka configuration …
            </well-known-addresses>
        </unicast-listener>
    </cluster-config>
</coherence>
well-known-addresses要素の内容は、アドレスの提供方法によって異なり、2種類の方法があります。
一つは、カスタムアドレスプロバイダという、com.tangosol.net.AddressProviderを実装したもので、通常は3rdパーティソースからアドレスリストを取得し、必要に応じてそれらを返すカスタムクラスを使います。例えば、私が関わっていたプロジェクトでは、コンテナ管理にMarathon/Mesosを使用しており、このプロジェクトでは、Coherenceクラスタ内のコンテナのIPアドレスを取得するためにMarathon APIに照会するカスタムアドレスプロバイダを使用しています。このアドレスプロバイダの構成例は以下の通りです。
<cluster-config>
        <unicast-listener>
            <well-known-addresses>
                <address-provider>
                    <!-- Specify AddressProvider class name -->
                    <class-name>com.oracle.coherence.clustering.MarathonAddressProvider</class-name>
                </address-provider>
            </well-known-addresses>
        </unicast-listener>
    </cluster-config>
もう一つの方法は、アドレスを直接overridesファイルに書き込むことです。
<cluster-config>
        <unicast-listener>
            <well-known-addresses>
                <!-- Specify one or more IP addresses or host names where the cluster members are running -->
                <address>foo.oracle.com</address>
                <address>bar.oracle.com</address>
            </well-known-addresses>
        </unicast-listener>
    </cluster-config>
実際、Oracle CoherenceのWKA構成では、単一のアドレスがSystemプロパティを介して渡されるように設定されています。 以下はその設定例です。
<cluster-config>
        <unicast-listener>
            <well-known-addresses>
                <address system-property="coherence.wka"></address>
            </well-known-addresses>
        </unicast-listener>
    </cluster-config>
これはつまり単一のWKAの値を実行時に設定でき、この値を使ってクラスタメンバを特定するため、最初のクラスタメンバを当該サーバで起動する必要があります。具体的には以下のような感じです。
$ java -cp ${COHERENCE_HOME}/lib/coherence.jar \
  -Dcoherence.wka=foo.oracle.com \
  com.tangosol.net.DefaultCacheServer
この場合、各Coherenceメンバはfoo.oracle.com上のメンバを探し、このメンバを使って残るクラスタメンバを探します。
これはつまり、Coherenceに設定を追加せずに、すぐにクラスタを起動でき、一つのアドレスを渡すことができ、このアドレスを持つサーバ上のCoherenceメンバは、新しいJVMクラスタメンバが他のメンバを探し始める際に連絡をうけとる、ということです。当該サーバーに問題がある場合を除いて、これでOKです。例えば、クラッシュした場合にはWKAリストが無効なIPアドレスを指しているため、新しいクラスタメンバを開始できません。これを回避するには、通常、構成ファイルに複数のWKAアドレスを指定します。

Coherence Clusters on Docker Swarm

DockerにSwarm Modeとサービスが導入されたことで、結果としてコンテナ内からDNSを使用してサービスのメンバを検索できるようになりました。Oracle CoherenceがWKA名を使用する方法の1つは、これらの名前がDNSを介して複数のアドレスに解決された場合、CoherenceはそれらのすべてのアドレスをWKAリスト用に使用します。したがって、デフォルトのCoherence構成で単一のホスト名しか指定できない上記の場合、DNSを使用してそのホスト名を複数のサーバーに解決できるのであれば、これは制限とはなり得ません。これこそが、Docker Swarm Modeを使ってサービスを構成するコンテナのためにできることです。DockerでサービスとしてCoherenceクラスタを起動すると、特別なホスト名を使用して、そのサービスを構成するコンテナのIPアドレスをすべて検索できます。Dockerのドキュメントには、Swarm Mode Networkingの仕組みの説明があります。
Attach services to an overlay network
https://docs.docker.com/engine/swarm/networking/
上記URLから、Oracle Coherenceにとって重要なことは、全てのサービスはDNS名を有しており、この名前を使ってIPアドレスの検索に利用できる、ということです。Dockerのドキュメントのサンプルをおさらいすると、どれほど簡単かがわかります。

まず、サービスが利用するオーバーレイ・ネットワークを作成します。
$ docker network create \
  --driver overlay \
  --subnet 10.0.9.0/24 \
  my-network
基本的なコンテナを持つシンプルなサービスを起動します。
$ docker service create \
  --name my-busybox \
  --network my-network \
  busybox \
  sleep 3000
サービスをリストアップすると、my-busyboxサービスが実行中であることがわかるはずです。
$ docker service ls
ID            NAME        MODE        REPLICAS  IMAGE
tpsqpgwh423c  my-busybox  replicated  1/1       busy box
サービスを3個のコンテナにスケールアップすることができます。
$ docker service scale my-busybox=3
my-busybox scaled to 3
実行中のコンテナをリストアップすると、my-busyboxサービスを構成するコンテナが確認できるはずです。
$ docker ps --format "{{.ID}}: {{.Names}}"
443d3ea90e62: my-busybox.2.mx5nq93n8w7z80ndfkqd1zmhj
81893dfcdaf8: my-busybox.3.nd4lp1z7iliys8wsplusxkq0a
19d4fdded3dd: my-busybox.1.xewffdq29h7pomx8jhw9xib14
では、nslookupをコンテナ内で使ってtasks.my-busyboxのアドレスを検索します(訳注:nslookupでよいのかどうかはさておき…)
$ docker exec my-busybox.1.xewffdq29h7pomx8jhw9xib14 nslookup tasks.my-busybox
Server:    127.0.0.11
Address 1: 127.0.0.11
  
Name:      tasks.my-busybox
Address 1: 10.0.9.4 my-busybox.2.mx5nq93n8w7z80ndfkqd1zmhj.my-network
Address 2: 10.0.9.5 my-busybox.3.nd4lp1z7iliys8wsplusxkq0a.my-network
Address 3: 10.0.9.3 19d4fdded3dd
各コンテナに1つずつ、3個のアドレスが返っていることがわかります。Docker Storeから利用可能なCoherence Dockerイメージをそのまま使用し、まったく同じコンセプトでOracle Coherenceクラスタを作成できます。ところで、このイメージはOracle LinuxとオフィシャルなOracle Server JREイメージの上に構築されています。
Put Your Containers on a Diet with Oracle Linux
https://blogs.oracle.com/developers/put-your-containers-on-a-diet-with-oracle-linux
Oracle Java 8 SE (Server JRE)
https://store.docker.com/images/oracle-serverjre-8
コンテナエントリポイントとして実行されるイメージ内のシェルスクリプトは、デフォルトでストレージが有効化されたcom.tangosol.net.DefaultCacheServerインスタンスを開始します。シェルスクリプトを使うと、環境変数を設定することで種々のパラメータを渡すこともできます。その1つが、well-known-addressの値を設定するCOH_WKAです。
$ docker pull store/oracle/coherence:12.2.1.2
$ docker service create  --name coh-cluster \
  --network my-network \  
  -e COH_WKA=tasks.coh-cluster \
  store/oracle/coherence:12.2.1.2
サービス起動時にサイズを指定していなかったので、coh-clusterサービスは1個のメンバだけで動作しています。docker psコマンドを実行すると、コンテナを1個のみ表示します。
$ docker ps --format "{{.ID}}: {{.Names}}"
c4917b7c9b9b: coh-cluster.1.tpz4kby4nwpxi0n89herpfsyp
コンテナのログを見ると、1個のメンバを持つ新たなクラスタがあることがわかります。
$ docker logs coh-cluster.1.tpz4kby4nwpxi0n89herpfsyp
ログは以下のような感じで出力されます。
WellKnownAddressList(
  10.0.9.3
  )
MasterMemberSet(
  ThisMember=Member(Id=1, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="27">2017-04-14</a> 11:12:04.36, Address=10.0.9.3:36273, MachineId=1586,
    Location=machine:c4917b7c9b9b,process:1, Role=CoherenceServer)
  OldestMember=Member(Id=1, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="30">2017-04-14</a> 11:12:04.36, Address=10.0.9.3:36273, MachineId=1586,
    Location=machine:c4917b7c9b9b,process:1, Role=CoherenceServer)
  ActualMemberSet=MemberSet(Size=1
    Member(Id=1, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="33">2017-04-14</a> 11:12:04.36, Address=10.0.9.3:36273, MachineId=1586,
      Location=machine:c4917b7c9b9b,process:1, Role=CoherenceServer)
    )
  MemberId|ServiceJoined|MemberState|Version
    1|2017-04-14 11:12:04.36|JOINED|12.2.1.1.0
  RecycleMillis=<a dir="ltr" href="tel:1200000" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="37">1200000</a>
  RecycleSet=MemberSet(Size=0
    )
  )
ホスト名 task.coh-service という1個のメンバを持つWKAリストによって単一のコンテナを名前解決したことがわかります。

では、サービスをスケールし、複数のクラスタメンバを持つようにしましょう。
$ docker service scale coh-cluster=3
coh-cluster scaled to 3
この場合、3個のコンテナがあるはずです。
$ docker ps --format "{{.ID}}: {{.Names}}"
50db2c5b76ed: coh-cluster.2.r79i1q03q0umup2b8geovc6m0
8f4159035dd1: coh-cluster.3.i8wdao099zbwa5tdeslx9y2bz
c4917b7c9b9b: coh-cluster.1.tpz4kby4nwpxi0n89herpfsyp
3個目のコンテナのログを見てみると…
$ docker logs coh-cluster.3.i8wdao099zbwa5tdeslx9y2bz
3個のメンバがクラスタに存在しています。
WellKnownAddressList(
  10.0.9.3
  10.0.9.4
  10.0.9.5
  )
MasterMemberSet(
  ThisMember=Member(Id=2, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="41">2017-04-14</a> 11:18:01.087, Address=10.0.9.5:42521, MachineId=686,
    Location=machine:8f4159035dd1,process:1, Role=CoherenceServer)
  OldestMember=Member(Id=1, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="44">2017-04-14</a> 11:12:04.36, Address=10.0.9.3:36273, MachineId=1586,
    Location=machine:c4917b7c9b9b,process:1, Role=CoherenceServer)
  ActualMemberSet=MemberSet(Size=2
    Member(Id=1, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="47">2017-04-14</a> 11:12:04.36, Address=10.0.9.3:36273, MachineId=1586,
      Location=machine:c4917b7c9b9b,process:1, Role=CoherenceServer)
    Member(Id=2, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="50">2017-04-14</a> 11:18:00.072, Address=10.0.9.4:39874, MachineId=231,
      Location=machine:df36591c7ab6,process:1, Role=CoherenceServer)
    Member(Id=3, Timestamp=<a dir="ltr" href="tel:2017-04-14" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="53">2017-04-14</a> 11:18:01.087, Address=10.0.9.5:42521, MachineId=686,
      Location=machine:8f4159035dd1,process:1, Role=CoherenceServer)
  )
  MemberId|ServiceJoined|MemberState|Version
    1|2017-04-14 11:12:04.36|JOINED|12.2.1.1.0,
    2|2017-04-14 11:18:00.072|JOINED|12.2.1.1.0,
    3|2017-04-14 11:18:01.087|JOINED|12.2.1.1.0
  RecycleMillis=<a dir="ltr" href="tel:1200000" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="59">1200000</a>
  RecycleSet=MemberSet(Size=0
    )
  )
WKAリストに3つのアドレスがすべて含まれていることがわかります。そんなわけで、Swamを使ってCoherenceクラスタを拡張・縮小することができ、Swamの組み込みDNSのおかげで、CoherenceのWKAはうまく機能します。Docker Storeにあるセットアップ手順には、種々の設定やオプションを使い、Oracle CoherenceのDockerイメージを実行することに関する詳細記述があります。

Container Cloud Serviceを使って、Oracle Cloud PlatformでDockerやCoherenceを試すことができます。
Oracle Container Cloud Service
https://cloud.oracle.com/ja_JP/container
以下のURLにアクセスしてアカウントを取得し、300ドルの無料クレジットを取得してください(訳注:日本はこのエントリ執筆時点では無料クレジットの対象外です)。
トライアルページ
https://cloud.oracle.com/ja_JP/tryit

[Docker, Coherence] Docker support for Oracle Coherence

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/docker_support_for_oracle_coherence

DockerでCoherenceがご利用いただけるようになったことを発表できうれしく思います。これまでもDocker内でCoherenceを動かすことはできたのですが、Dockerでマルチホスト・ネットワークがなかったために利用にあたって制限がありました。Coherenceの実際の利用例はほとんどの場合でマルチホストを使っているため、利用が非常に窮屈だったのです。
DockerのサポートはCoherence Community Projectとして提供されます。
Oracle Coherence Community
https://coherence.java.net/
上記URLから、全てのOracle DockerプロジェクトのあるGitHubリポジトリにたどり着くことができますし、その他にも、Dockerイメージの構築手順やDockerを使ったCoherenceクラスタセットアップのドキュメント、Coherence Extend、Federated Caching、Persistence、Elastic Data、JMXを使えるようにするためのコンテンツがあります。
Dockerサポートの対象は、Coherence 12.2.1以後とDocker 1.9以後のバージョンの組み合わせです。そして当然ながら、サポート対象は先ほどの組み合わせをサポートするプラットフォームに限定されます。
Issueページも用意しましたので、問題があれば投稿してください。
皆様からのフィードバックをお待ちしています。

[Coherence, Java] CoherenceRx 1.0.0

リアクティブ・アプリケーションをCoherence上でよりシンプルに開発できるようにすることとともに、Coherence 12.2.1で導入されたCoherence Asynchronous APIの利用サンプルを提供することを目的として、Oracle Coherence Reactive Extensions (CoherenceRx) が作成され、利用できるようになりました。
これは、人気のあるRxJavaライブラリをベースにしたOracle Coherenceのためのreactive APIです。Coherence Asynchronous APIをラップしたものなので、動作にあたっては、Coherence 12.2.1以後が必要です。
Oracle Coherence Reactive Extensions (Rx)
https://github.com/coherence-community/coherence-rx
RxJava – Reactive Extensions for the JVM
https://github.com/ReactiveX/RxJava
利用方法(Mavenの依存関係、ビルド方法など)はCoherenceRxのGitHubのREADMEをご覧ください。
お試しいただき、不具合、機能改善などのフィードバックをお願いいたします。

[Cloud, Coherence] Announcing Coherence for the Java Cloud Service

原文はこちら。
https://blogs.oracle.com/the-cloud-front/entry/announcing_coherence_for_the_java

Oracle CoherenceがJava Cloud Service(JCS)の機能としてご利用できるようになりました。JCS内のCoherenceセットアップのためのオプション設定をすることで、JCSご利用のお客様はいますぐCoherenceをJCS上でご利用いただけます。

柔軟性はソリューションの主要・重要な箇所です。Coherenceデータ層の初期容量を選択することもできますし、

Advancedオプションを使って、Coherenceで利用したいVMの個数や、VM毎の管理対象Coherenceサーバの個数、各管理対象サーバのヒープサイズなど、ありとあらゆる設定を実施することもできます。

WebLogic Management Frameworkを背後で使っており、管理対象Coherenceサーバを通じて、アプリケーションを開発、デプロイ、管理・監視することができます。

同じクラウドのツール群がWebLogicとCoherenceを作成するため、弊社のクラウドで両コンポーネントを一緒に使った場合、サービス間が完全かつシームレスに統合されています。JCSの標準と同じく、自動ローリング方式でCoherenceにパッチを適用することができます。バックアップやリストアは完全にその他のスタックとの間で調整されます。

Common reasons for using Coherence:
  • 負荷を下げ、共有クラウドサービスやデータベースを保護する
  • クラウドアプリケーションにリアルタイムデータを配信する
  • クラウドのデータグリッド層で透過性および高可用性を提供する
Java Cloud ServiceでWebLogic12.1.3+環境を実行しているときには、Coherenceのすべてのクラウド機能にアクセスすることができます。Java Cloud Service Enterprise Edition 11gの場合、Coherenceを一緒に使うためにはCoherenceのクラスタを手作業で作成することができます。

今後、数多くのCoherenceに関連するデータグリッドやキャッシングのサービスを展開する予定にしています。詳細をお楽しみに。

For more information:

[Coherence] Getting Started With The Coherence Memcached Adaptor

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/getting_started_with_the_coherence
[訳注]正しくはAdapterですが、原文のタイトルのままAdaptorを使っています。

Overview

Coherence 12c (12.1.3) でMemcachedクライアントのサポートが追加され、直接CoherenceクラスタにBinary Memcachedプロトコルでデータを格納できるようになりました。このエントリではCoherence Memcached Adapterの設定方法を紹介するとともに、MemcachedクライアントがどのようにCoherenceクラスタへ接続することができるのかを紹介するため、シンプルなPHPのサンプルを用意しました。

Memcached Adapterはプロキシサービスとして構成し、そのプロキシサービスをCoherenceクラスタで実行します。以下はサンプルのCache構成です。
<?xml version="1.0"?>
  <defaults>
    <serializer>pof</serializer>
  </defaults>
  <caching-scheme-mapping>
    <cache-mapping>
      <cache-name>memcache</cache-name>
      <scheme-name>DistributedCacheScheme</scheme-name>
    </cache-mapping>
  </caching-scheme-mapping>
  <caching-schemes>
    <distributed-scheme>
      <scheme-name>DistributedCacheScheme</scheme-name>
      <service-name>DistributedCacheService</service-name>
      <backing-map-scheme>
        <local-scheme/>
      </backing-map-scheme>
      <autostart>true</autostart>
    </distributed-scheme>
    <proxy-scheme>
      <service-name>MemecachdTcpCacheService</service-name>
      <acceptor-config>
        <memcached-acceptor>
          <cache-name>memcache</cache-name>
          <memcached-auth-method>plain</memcached-auth-method>
          <address-provider>memcached-addr-provider</address-provider>
        </memcached-acceptor>
      </acceptor-config>
      <autostart>true</autostart>
    </proxy-scheme>
  </caching-schemes>
</cache-config>
いくつか注意点を。
<memcached-acceptor>以下の<cache-name>要素は、Memcached acceptorのための分散キャッシュを定義しています。このacceptorに接続するすべてのMemcachedクライアントはこのキャッシュにアクセスします。
必要であれば、<memcached-auth-method>を設定し、クライアント認証を有効にすることができます。現時点ではSASL (Simple Authentication and Security Layer)プレーン認証のみをサポートしています。
<address-provider>要素ではMemcached Adapterが接続を待ち受けるソケットアドレスを定義します。Coherenceのオペレーション構成ファイルで定義します。
以下はaddress-providerの設定を紹介するオペレーション構成ファイルの例です。
<?xml version='1.0'?>
<coherence
 <cluster-config>
    <address-providers>
      <address-provider id="memcached-addr-provider">
        <socket-address>
          <address>127.0.0.1</address>
          <port>11211</port>
        </socket-address>
      </address-provider>
    </address-providers>
  </cluster-config>
  <logging-config>
    <destination system-property="tangosol.coherence.log">stdout</destination>
    <severity-level system-property="tangosol.coherence.log.level">9</severity-level>
  </logging-config>
  <security-config>
    <identity-asserter>
      <class-name>memcached.PasswordIdentityAsserter</class-name>
    </identity-asserter>
  </security-config>
</coherence
memcached-addr-providerというidを持つアドレスプロバイダはsocket-addressの参照を定義しています。

Authentication


認証のため、カスタムIdentityAsserterを実装でき、そのIdentityAsserterをオペレーション構成ファイルで宣言できます。上記オペレーション構成ファイルのサンプルから、関連する部分だけ抜き出してみます。
<security-config>
    <identity-asserter>
      <class-name>memcached.PasswordIdentityAsserter</class-name>
    </identity-asserter>
 </security-config>
Memcached AdapterはIdentityAsserterの実装を呼び出し、トークンとしてcom.tangosol.net.security.UsernameAndPasswordオブジェクトを渡します。

以下はIdentityAsserterのサンプルです。
package memcached;
import com.tangosol.net.Service;
import com.tangosol.net.security.IdentityAsserter;
import com.tangosol.net.security.UsernameAndPassword;
import javax.security.auth.Subject;
public class PasswordIdentityAsserter implements IdentityAsserter {
  public Subject assertIdentity(Object oToken, Service service)
  throws SecurityException {
    if (oToken instanceof UsernameAndPassword) {
      UsernameAndPassword secToken = (UsernameAndPassword) oToken;
      String sPwd = new String(secToken.getPassword());
      if (secToken.getUsername().equals("username")
          && sPwd.equals("password")) {
        return new Subject();
      }
    }
    throw new SecurityException("Access denied");
  }
}

PHP Memcached client


PHPのmemcachedクライアントであるMemcacheとMemcachedは非常に人気があります。Memcachedはより新しいもので、Binary MemcachedプロトコルとSASL認証を両方ともサポートしています。MemcachedとSASLを有効にするためには、以下の設定をphp.iniファイルに設定する必要があります。
    extension=memcached.so
    memcached.use_sasl = 1
次のPHPコードはPHP Memcachedクライアントライブラリを使ってCoherenceクラスタに接続し、エントリを追加し、エントリを再度読み出しています。
<?php
  $m = new Memcached();
  $m->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
  $m->setSaslAuthData("username", "password");
  if (!count($m->getServerList())) {
    // List of Coherence proxy service nodes
    $m->addServer('127.0.0.1', 11211);
  }
  print_r($m->getVersion());
  $m->set('test', 'test_string');
  print_r('Cache value: ' . $m->get('test'));
?>

Putting it all together


これは簡単に試すことができます。まずはCoherence、PHP、PHP Memcachedクライアントライブラリをダウンロードしてインストールしましょう。続いて、テスト用ディレクトリに、先ほど説明したtangosol-coherence-override.xmlという名前のオペレーション構成ファイルを作成します。同様に、Memcachedクライアントのためのキャッシュ構成を指定するcoherence-cache-config.xmlという名前のキャッシュ構成ファイルを作成します。最後に、テスト用ディレクトリにmemcachedというディレクトリを作成し、先ほどのコードを含むPasswordIdentityAsserter.javaというファイルを作成します。

PHPで、先ほどのPHPのサンプルコードをtest.phpとして保存しましょう。これでテストの準備は完了しました。

Coherenceを立ち上げるために、Coherenceライブラリを参照する必要があります。簡単のために、Coherenceのインストールディレクトリを環境変数COH_HOMEと定義しましょう。以下ではLinuxやOS X環境を想定していますが、Windowsでも同様です。

テストディレクトリ内で以下のコマンドを実行し、PasswordIdentityAsserterをビルドします。
javac –cp $COH_HOME/lib/coherence.jar memcached/PasswordIdentityAsserter.java
それでは、Coherenceキャッシュサーバを起動し、Memcachedクライアントのデータを保存します。
java -cp .:$COH_HOME/lib/coherence.jar com.tangosol.net.DefaultCacheServer
最後に、PHPクライアントがCoherence Memcached Adapterを使って安全に接続、データの格納および読み出しができることを確認しましょう。
php test.php
出力結果は以下のようになるはずです。
 Array
 (
     [127.0.0.1:11211] => 12.1.3
 )
 Cache value: test_string
PHPクライアントがCoherenceにインサートした値であるtest_stringの読み出しに成功したことを示しています。

[SOA, Exalogic, Coheremce] Canon: A "Snapshot" of Using Coherence, SOA and Exalogic for Millions of Transactions

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/canon_a_snapshot_of_using

カメラやイメージング、ドキュメントテクノロジーを提供する、世界有数の企業であるCanonは、新しく改良されたシステム·アーキテクチャで、数百万件にも及ぶリアルタイム・トランザクションを処理することができるようになりました。
Canon Inc.
http://www.canon.com/
Oracle SOA Suite、Oracle Coherence、Oracle Exalogicなどをベースとし、Engineered Systemの利点により、拡張性、スピード、シンプルさがもたらされています。
動画を表示できない場合はこちらからどうぞ。

[Coherence] Union Pacific Railroad Runs 36K Miles of Rail Track with Oracle Coherence

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

Union Pacific Railroadは北米で最大の鉄道会社であり、Fortune 150に含まれる売り上げ190億ドルのこの会社は、3万6000マイルにも渡る鉄路を所有・管理しています。彼らの所有する鉄道路線には、約4000個のセンサーが設置されており、このセンサーが,
列車や車両の位置といった数多くのイベントを送信します。彼らの"Net Control"システムは、これらのイベントを捕捉し、常にネットワークの状態を再計画します。リアルタイムに感知、検出、分析、計画するこのしくみを、Oracle Coherenceがサポートしています。Arun Giri(Union PacificのEnterprise Architect)が、要件、課題、およびCoherenceがデータセンターで果たす重要な役割について説明します。
是非動画で詳細をご覧ください。

[Coherence, Java] New: VisualVM Plugin for Coherence - released through the Coherence Incubator

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/coherence_jvisualvm_plugin_released_in

新しいCoherence Incubator 12.1.0のリリースにあわせ、開発者向けのCoherence VisualVM plug-inがご利用いただけるようになったことを発表でき、わくわくしています。

このコミュニティプラグインを使ってJMXを有効にしたCoherenceクラスタに接続すると、開発者は集約したCoherenceに関連する統計情報を確認することができます。情報を様々なCoherenceのMBeansから収集・集約し、表形式やグラフ形式で表示します。様々なサービスやキャッシュを選択し、それぞれについてより詳細のノードレベルの情報を表示させることも可能です。

インストールし、MBeanサーバーが動いているCoherenceプロセスに接続すると、Coherenceというタブが追加されていることがわかります。このタブを選択すると、'Cluster Summary'タブが表示されます。

Features

Coherenceタブ内に表示されるタブ数は利用する機能によって変化しますが、以下のものを含んでいます。
  • Cluster Overview - Coherenceクラスタのハイレベルの情報(クラスタ名、バージョン、メンバーの個数、クラスタのStatusHAなど)を表示。全クラスタの利用可能なメモリサイズおよび使用メモリサイズ、パケットの発行・受信の成功率、Coherenceを実行しているマシンの平均負荷をグラフでサマリ表示。
  • Machines - Coherenceクラスタを構成する物理マシンのリストならびに、平均負荷やこれらのマシンで利用可能なメモリに関する情報を表示する。
  • Members - 個々のメンバーのパケット送受信の成功率、メモリおよび送信キューサイズといった、Coherenceメンバー/ノードの完全なリスト。
  • Services - パーティション数とstatusHA値を含む実行中のサービスに関する情報。サービスを選択すると、次回のデータ更新時にサービスの各ノードのスレッド詳細情報ならびにその情報をグラフ化して表示する。
  • Caches - キャッシュサイズ、メモリ使用量といった、任意のキャッシュに関する情報を表示する。メモリ使用量の正しい情報を表示するためには、バイナリ単位変換機能を利用する必要がある。キャッシュを選択した場合、次のデータ更新のタイミングで、サービスやキャッシュをホストしている各ノードの詳細情報を確認出来る。
  • Proxy Servers - クラスタがプロキシサーバーを実行している場合、このタブには、プロキシサーバーおよび各プロキシサーバとの合計接続数に関する情報を表示する。また、NameServiceを含める・除外して表示することもできる。
  • Coherence*Web - クラスタをCoherence*Web用に構成している場合、このタブはデプロイされたアプリケーションの個数、保存されたHTTPセッション数といった情報ならびに、その他のセッション取得に関する情報を表示する。
Membersのタブの例を以下に示します。さまざまな画面に含まれている視覚的な手がかりを使って、潜在的な問題に対する注意を喚起していることがわかります。

Servicesのタブ(下図)では、個々のサービスを選択し、スレッドの利用率のように詳細なメトリックを監視する方法を示しています。


Getting the Plug-in

最新のCoherence Incubator (12.1.0) のためのソースをホストしているGitHubからプラグインを入手することができます。
GitHub for Coherence Incubator 12
http://coherence-community.github.io/coherence-incubator/12.1.0/
The Coherence Incubator  12.1.0
https://java.net/projects/cohinc/
このCoherence IncubatorはCommon Development and Distribution License (CDDL) ライセンスを使っています。
Common Development and Distribution License (CDDL-1.0)
http://opensource.org/licenses/cddl1.php
プラグインのビルド方法やインストール方法が記載されているドキュメントは以下にあります。
The JVisualVM Plug-In
http://coherence-community.github.io/coherence-incubator/12.1.0/jvisualvm/index.html
事前ビルド済みのNetBeans Module (NBM) はsearch.maven.orgから入手できますし、Incubatorのソースからビルドすることも可能です。
Maven Central Repository
http://search.maven.org/#search%7Cga%7C1%7Ccoherence-jvisualvm
VisualVMツールはJDK 1.7をダウンロードするとご利用いただけます。もしくは以下のリンクからダウンロードいただけます。
Visual VM
http://visualvm.java.net
CoherenceプラグインはJDK 7 Update 40以上で動作するように設計されています。

クラスタが以前のバージョンのJavaで動作している場合、これまで通り、最新のJVisualVMを使ってリモートから接続し、統計情報を見ることができます。

(注意)
これは単一クラスタの情報を一度に確認するための開発者向けツールです。他の監視ツール(Oracle Enterprise Managerや他社製品など)はエンタープライズレベルの監視・管理、アラート発信に適したものです。

[Big Data, Coherence] Hadoop MapReduce and Coherence - A Perfect Match

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/hadoop_mapreduce_with_coherence

Hadoop MapReduce (M/R)は、HDFSクラスタ上で大規模データセットを並列・分散アルゴリズムを使って処理するための最も人気のあるプログラミングモデルです。
Hadoop MapReduce(リンクはチュートリアル)
http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
Coherenceは業界をリードするインメモリデータグリッドです。Hadoopはバッチで処理できる、(テラバイト以上のデータを扱うような)大規模な処理操作に対して強みを発揮するのに対し、Coherenceは、よりリアルタイムの処理が必要で、かつデータ量が小さい場合には、データ保持においてHDFSよりも強みを発揮します。

そんなわけで、Hadoop M/Rについて詳しくなろうと思ったのですが、両者を組み合わせるのはそれほど難しくないはず、と認識しました。以下で提示するソリューションは、標準的なHadoop M/R APIを使って、あたかもHDFSクラスタ上に保存されているかのようにCoherenceデータグリッドに格納されているデータを処理する、というものです。HadoopのWordCountサンプルだと以下のようになります。
import com.oracle.coherence.mapreduce.JobClient;
    ...
 
    JobConf conf = new JobConf(WordCount.class);
    conf.setJobName("coherence-wordcount");
    conf.setOutputKeyClass(Text.class);    
    conf.setOutputValueClass(IntWritable.class);
 
    conf.setMapperClass(Map.class);
    conf.setCombinerClass(Reduce.class);
    conf.setReducerClass(Reduce.class);    
 
    conf.setInputFormat(CoherenceInputFormat.class);
    conf.setOutputFormat(CoherenceOutputFormat.class);
    CoherenceInputFormat.setInputPaths(conf,new Path("coherence://wordcount-Input");
    CoherenceOutputFormat.setOutputPath(conf,new Path("coherence://wordcount-Result"));
    RunningJob job =  JobClient.runJob(conf);
元のHadoopサンプルから変更したのは、CoherenceInputFormatとCoherenceInputFormatクラスを使い、入出力パスをHDFSではなくCoherenceキャッシュにした、という点だけです。その他は全て、ユーザー定義のMapクラス、Reduceクラスを含めて、Hadoop M/R APIと同じです。このM/Rジョブを実行するために、Hadoopクラスタを構築・実行する必要はありません。必要なものはCoherenceクラスタです。

Under the Hood

まず、Entry ProcessorsとAggregatorsはmapperとreducerを実装する上で自然な選択のように見えますが、両者には結果を導くために一つのメンバー/スレッドを必要としますので、mapper/aggregatorの結果セットが一つのメンバーヒープにフィットできる場合に限って、このソリューションを適用することができます(詳しくは、Christiona FeldeのCoherenceとM/Rに関するすばらしいエントリをご覧下さい)。
Oracle® Coherence Developer's Guide Release 3.7.1
Performing Transactions
Using Entry Processors for Data Concurrency
http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_transactionslocks.htm#BEIJCGDF
Processing Data In a CacheData Grid Aggrigation
http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_processcache.htm#CHDFFFEI

Oracle® Coherence開発者ガイド リリース3.7.1
トランザクションの実行
データの同時実行性のための入力プロセッサの使用方法
http://docs.oracle.com/cd/E26853_01/coh.371/b65026/api_transactionslocks.htm#BEIJCGDF
データ・グリッドの集計
http://docs.oracle.com/cd/E26853_01/coh.371/b65026/api_processcache.htm#CHDFFFEI

Oracle Coherence and MapReduce (Blog of Christion Felde)
http://blog.cfelde.com/2012/12/oracle-coherence-and-mapreduce/
この制限を回避するため、このソリューションでは分散起動サービス(Distributed Invocation Services)をメンバーアフィニティと共に利用し、MapperとReducer機能を実装します。
Oracle® Coherence Developer's Guide Release 3.7.1
Processing Data In a Cache
Node-Based Execution
http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_processcache.htm#CHDGJJEI

Oracle® Coherence開発者ガイド リリース3.7.1
キャッシュ内のデータの処理
ノードベースの実行
http://docs.oracle.com/cd/E26853_01/coh.371/b65026/api_processcache.htm#CHDGJJEI
これにより、2個の起動サービスとCoherenceキャッシュ上のいくつかのHadoopインターフェースの実装だけが問題になりました。
Fig-1
Fig-1

JobClient

Hadoopでは、JobClientはユーザーのジョブがクラスタと対話するための主要なインターフェースです。JobClientはジョブの発行、進捗の追跡といった機能を提供します。通常ユーザーはアプリケーションを作成し、ジョブの様々な側面をJobConfを使って設定し、JobClientを使ってジョブを発行し、その進捗を監視します。
JobConf (Apache Hadoop Main 2.2.0 API)
https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/JobConf.html
このソリューションはJobClient Hadoopクラスの独自実装を提供します。Mapフェーズの入力データは既にCoherence InputCacheに格納されていることを想定しています。JobClientはその作業をMapperサービスとReducerサービスの実行を調整するRunningJobクラスに委譲します。Mapper、Reducerとも、JobInfo Coherenceキャッシュを通じて進捗やステータス情報を通信します。

MapperService

MapperServiceはCoherence非同期実行サービス(Coherence Async InvocationService)として実装されています。これはCoherenceクラスタの全てのストレージが有効なメンバー上で動作します。データ処理の現場で実装するためには、MapperServiceを実行する各メンバーは、CoherenceRecordReaderを使って、そのメンバーに格納されているInputCacheエントリのみを処理します。MemberPartitionsListenerを使って、クラスタメンバー毎のParitionSetの経過を追跡し、PartitionFilterを使って関連するローカルエントリのみを取り出します。
<distributed-scheme>
    <scheme-name>dist-default</scheme-name>
    <partition-listener>
        <class-name>com.oracle.coherence.mapreduce.listeners.MemberPartitionsListener</class-name>
    </partition-listener>
Fig-2
MapperServiceは、マルチスレッド化されており、各スレッドがMapperTaskを実行し、そのメンバーに格納されているエントリのサブセットを処理します。MapperTaskはユーザー定義された、各InputCacheエントリに対応するMapクラスを実行し、HadoopのOutputCollectorのCoherenceベースの実装に渡します。OutputCollectorはメモリ内のMapperクラスが送出したエントリをバッファリングし、事前に定義されたサイズに達すると、MapperOutputCacheにバッファフラッシュします。

このMapperOutputCacheは、同じ送出されたキーを持つ全てのエントリが同じパーティションに格納されるようにPartition Affiinyを使って構成します。Partition Affiinyを持つことで、Reducerを実行する前にサイドデータをシャッフルする必要がありません。

OutputCollectorは、MapperUniqueKeysCacheに送出された各々の一意なキーに対するエントリも作成します。MapperCacheと同様に、マスタエントリやMapperCacheエントリに関連する全てのエントリが同じCoherenceパーティションに格納されるよう、MapperUniqueKeysCacheは同じ関連キーで定義されたPartition Affinityを持っています。

ユーザ定義のCombineクラスをジョブに設定すると、OutputCollectorはMapperCacheへバッファをフラッシュする前にローカルでCombineクラスを適用します。これにより、reducerが処理するエントリの個数が減ります。

ReducerService

ReducerServiceははCoherence非同期実行サービス(Coherence Async InvocationService)として実装されています。これはCoherenceクラスタの全てのストレージが有効なメンバー上で動作します。サービスの各インスタンスは、サービスインスタンスを実行するメンバーにローカルに格納された中間キャッシュエントリを削減するだけです。

ReducerServiceはMapperがMapperUniqueKeyCacheに送出した一意なキーのリストを反復処理します。各々の一意なキーについて、KeyAssiciatedFilterを使い、同じ一意のキーを持つ全てのMapperOutputCacheエントリを発見します。結果セットをHadoop OutputCollectorクラスのCoherenceベースの実装と共にユーザー定義したReduceクラスに渡します。その後、ReduceクラスはOutputCollectorを使い、(透過的に)結果をCoherenceのResultCacheに送出します。
Fig-3

Installing the demo

デモソリューションを2個用意しました。一つはWordCount、もう一つはStandardDeviationです。サンプルを実行する方法は以下の通りです。
  1. ソリューションをダウンロードしZipファイルを展開します。
  2. ソリューションには全ての依存関係のあるjarファイルがlibディレクトリに入っています(hadoop、coherenceなど)。
  3. setEnv.cmdを編集し、関連する環境変数を変更します。
  4. cache-server.cmd scriptスクリプトを実行し、1個以上のCoherenceキャッシュサーバーを立ち上げます。

WordCount Sample

WordCountは最も有名なMapReduceのサンプルです。このサンプルはまず、テキストの約100,000行をキャッシュに取り込みます。Mapperは行をトークンに分割し、キーとして単語、値として1を持つキー・バリューのペアを送出します。Reducerは同じ単語について全ての1を集約します。
サンプルを実行するには、run-wordcount.cmdを実行します。
2013-11-13 23:27:10.868/16.038 Oracle Coherence GE 3.7.1.1  <Info> (thread=Invocation:InvocationService, member=5):  CoherenceMapReduce:JobId=1660803 JobClient:ReducerObserver - Member 1  Completed :  Machine=MBENOLIE-IL Process=8148
Job Completed
**** Job Summary:
**** Job Id: 1660803
**** Job Name: wordcount
**** Mapper ****
------------Input Cache Size: 100000
------------Duration: 4036 ms
**** Reducer ****
------------Intermediate Cache Size: 162164
------------Unique Entries Size: 11108
------------Duration: 3964 ms

Standard Deviation Sample

Standard Deviationサンプルは、これも有名なサンプルの一つで、MapReduceを使い、図4の式に基づいてサンプルの標準偏差を計算します。
Fig-4
Fig-4

サンプルの各値に対して、MapperはX(値そのもの)、X2、そして数1の三個からなる値を送出します。Reducer/Combinerは送出された値を足しあわせ、N、sum(X2)、(sum(X))2の結果エントリを作成します。
サンプルを実行するには、run-stddev.cmdスクリプトを実行します。次のような出力が出てきます。
2013-11-13 23:44:55.818/6.953 Oracle Coherence GE 3.7.1.1 (thread=Invocat ion:InvocationService, member=6): CoherenceMapReduce:JobId=114742004 JobClient:R educerObserver - Member 1 Completed :  Machine=MBENOLIE-IL Process=8148
Final Calculation : entries in outputcache=3
Count = 20000.0
Sum = 1327351.1950964248
Sum of Sqrt = 8.83890996020529E7
Job Completed
Standard deviation= 3.8474319265580275
**** Job Summary:
**** Job Id: 114742004
**** Job Name: StandardDeviation
**** Mapper ****
------------Input Cache Size: 20000
------------Duration: 313 ms
**** Reducer ****
------------Intermediate Cache Size: 60
------------Unique Entries Size: 3
------------Duration: 51 ms

Tracking the M/R jobs 

非常に原始的なコンソールを提供しています。console-mapreduce.cmdスクリプトを実行してコンソールを起動します。このコンソールを使い、ジョブの進行状況を追跡し、ジョブの結果(つまり数えた単語のリスト)を表示することができます。

Summary

既存のM/Rアセットを維持しつつ、開発者に最も適切なデータストアの選択の自由を提供して、既存の強力なCoherenceの機能を活用して、ソリューションはCoherenceインメモリ・データ・グリッドのリアルタイム/Fast Dataの性質と、人気のあるHadoop MapReduce APIを結びつけています。

[Coherence, Exa*] Coherence on Exalogic: 6x Speeds on Half the Hardware is Possible

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/coherence_on_exalogic_6x_speeds

スケーラビリティとリアルタイムデータ配信の機能を強化したOracle Coherence 12cが先頃リリースされました。お披露目の一環として、CoherenceがExalogic Elastic Cloudと密結合していることをご紹介しました。CoherenceはInifinibandファブリックを活用し、Exalogicのわずか半分のハードウェアで、最大6倍ものスピードで稼働することができます。このブレークスルーはお客様のハードウェア費用を節約しつつ、データグリッドの性能向上のお手伝いをします。

このテクノロジーの関係をより詳しく説明している無料のリソースがあります。
New Coherence 12c White Paper: The Advantages of Coherence on Exalogic
http://www.oracle.com/webapps/dialogue/ns/dlgwelcome.jsp?p_ext=Y&p_dlg_id=14927609&src=7882476&Act=6
Coherenceの詳細情報を知りたい方は、11月5日に開催されるVirtual Developer Dayに参加し、開発者がCoherenceを日々の仕事で活用できる方法を目の当たりにして下さい。
Virtual Developer Day - Harnesing the Power of Oracle WebLogic and Oracle Coherence
https://oracle.6connex.com/portal/harnessingweblogic/login
(訳注)
Virtual Developer Dayは以下の日程で開催されます。APAC向けの時間帯ではありませんが、EMEA向け開催であれば、夜遅くなりますが日本からも参加しやすいかと思います。

  • Americas
    • 2013年11月5日(火)
      • (PDT)9時〜13時
      • (EDT)12時〜16時
      • (BRT)13時〜17時
      • (JST)2時〜6時[2013年11月6日(水)]
  • EMEA
    • 2013年12月3日(火)
      • (GMT)9時〜13時
      • (GST)13時〜17時
      • (IST)14時30分〜18時30分
      • (JST)18時〜22時

[Coherence] One Client Two Clusters

原文はこちら。
https://blogs.oracle.com/felcey/entry/one_client_two_clusters

一つのクライアントが複数のクラスタに接続したほうがよい場合があります。それはデータが離散しているためであったり、例えばクラスタが高可用性を担保するため異なる場所に配置されていたりするためであったりします。TCP通信でプロキシサービスを介しCoherenceクラスタに接続するCoherence拡張クライアントや外部クライアントにとって、これは非常に単純です。このエントリではこの方式の実現方法を説明し、ご自身でも試して頂けるような簡単なサンプルを用意しました。この構成のアーキテクチャは以下のようになっています。

クライアントが同じ環境に共存しない場合には、Coherence*Extendの構成が望ましいでしょう。これはCoherence*Extendの性能がクラスタに影響を与えず、接続・切断時にはデータの復旧やリバランスされず、クラスタメンバーは変化しないからです。

複数のクラスタに接続するクライアントを構成、拡張するには、各クラスタ用の別のキャッシュ構成ファイルを定義するだけでよいのです。ここで各構成ファイルにはキャッシュ名からクラスタのリモートアドレスが引けるようなマッピングが記載されています。これを使うと、複数のクラスタに対し同じキャッシュ名を持たせることができます。このリモートクラスタ構成の一意の要素例を以下に示します。

各リモートクラスタのサービス名は一意である必要があります。ただし、リモートスキーム名が同じでもかまいません。リモートアドレスもまた明らかに各クラスタで異なっています。

各キャッシュ構成ファイルを別のConfigurableCacheFactoryがロードします。そのため、各クラスタにはそれぞれのConfigurableCacheFactoryがあります。このConfigurableCacheFactoryを使って当該クラスタのNamedCacheを開始します。ここで完全に他のクラスタのNamedCacheから分離します。別々のNamedCacheを異なるConfiguratbleCacheFactoryを使用して作成する方法のサンプルを以下でご紹介します。

POFを使っている場合は、クライアントおよび各クラスタには同じシリアライゼーション情報を含める必要がありますが、これは非常に簡単です。

最後に、2個の別のクラスタと接続し、やりとりするところをただ今説明しましたが、12個以上のクラスタであっても、クライアントがJava以外の.NETやC++クライアントであっても同じです。

Coherenceを利用するソリューションの構築にあたり追加の選択肢として、このエントリがお役に立つことを願っています。この方法を試したい方は、簡単な1クライアントー2クラスタのJavaのサンプルを用意しましたのでお試し下さい。

[WLS, FMW] Oracle Cloud Application Foundation 12c – Viewers Loved the Content!

原文はこちら。
https://blogs.oracle.com/cloudappfoundation/entry/oracle_cloud_application_foundation_12c

7月31日(日本時間8月1日未明)、OracleはCloud Application Foundation 12c (WebLogic Server 12.1.2とCoherence 12.1.2)のLaunch webcastを実施しました。ご覧になってない方は、オンデマンドでご覧いただけます。
Online Launch Webcast
Announcing Oracle Cloud Application Foundation for Next-Generation Applications
https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&eventid=651242&sessionid=1&key=C96B0428F5647966361342531047AB28
Cloud Application Foundationを使うと、お客様はミッションクリティカルなクラウドプラットフォームを使って、モバイルアプリケーションのような次世代のアプリケーションを提供が容易になります。このリリースでは生来のクラウド管理にさらに投資をした結果、運用がより簡単になっています。対して開発者にとっては、この新しいリリースがもたらす最新の開発プラットフォームや統合されたツールにより、生産性が向上し、市場投入までの時間を短縮できます。

それでは、Webcast視聴者のお気に入りは何だったのでしょう。実はブレイクアウトセッションでした。アンケート回答の皆様からプレゼンテーションをVery goodもしくはbetterと評し、75%の方がexcellentと評してくれました。ほんと信じられないほどすばらしい評価に感謝しています。

(左) Mike Lehmann, Vice President of Product Management, CAF
(右) Will Lyons, Director of Product Management, WebLogic Server


4コマのブレイクアウトセッションでは、12cの機能詳細を説明しつつ、4個のデモや複数のお客様の声をご紹介しました。

Release Highlights

  • クラウドの弾力性(elasticity)のためのOracle WebLogic ServerのDynamic Clusterに加え、Oracle Database 12cとの深い統合、およびOracle WebLogic ServerとOracle Coherenceの管理フレームワークを集約し、運用効率を向上
  • Oracle CoherenceはOracle GoldenGate HotCacheと統合し、リアルタイムにデータキャッシュを更新可能に。
  • 革新的なアプリケーション開発のため、プラットフォーム全体でMavenとWebSocketをサポート。
  • Oracle Enterprise Managerと開発者のためのツール(Oracle JDeveloper 12c、Oracle Enterprise Pack for Eclipse 12c、Web開発およびモバイル開発のためのOracle Application Development Framework)はこの新リリースをサポート
デモや機能詳細をご覧になりたい方は、以下のYouTube Channelをご覧下さい。
Oracle WebLogic Server YouTube channel
http://www.youtube.com/OracleWebLogic
Oracle Coherence YouTube channel
http://www.youtube.com/user/OracleCoherence
3時間のイベントでは複数のOracle Cloud Application Foundationのお客様や業界のエキスパート(Oracle ACE DirectorのSimon Haslam:17年以上Oracle製品を利用しており、イギリスOracle User Groupの Application ServerおよびMiddleware SIG(Special Interest Group)の議長を5年務めています)の声もご紹介しています。

Live Chat Highlights

ライブチャットセッションは非常にインタラクティブでした。以下に視聴者から頂いた質問と回答の一部をまとめました。
質問 回答
12.1.2でのDynamic Clusterをサポートするってことは、今のクラスタ構成を変更しなければならないってことですか? いいえ。今既に「構成済み」のクラスタ(これまでのやり方のクラスタ)は継続してサポートされますし、今後もサポートされ続けます。構成を変更する必要はありません。
Dynamic Clusterは新しく追加したクラスタ構成のオプションです。
Dynamic Clusterでサーバーを変更(サーバーをもっと追加)する場合、デプロイされているアプリケーションはどうなりますか。新しいサーバーにコピーされ、デプロイされますか? はい、実行時に実施します。Dynamic Clusterは構成済みのクラスタと同様です。新しいクラスタのメンバーサーバーを追加すると、クラスタにデプロイされているアプリケーションは利用しているデプロイメントのステージングモード(stage/nostage/external_stage)に従ってデプロイされます。 
Coherenceのリリース番号体系が変わった理由は何ですか?これは今後WebLogic Serverでしか利用できないことを意味しているのでしょうか。 いい質問ですね!
まず、Coherenceは現在もこれからもスタンドアロンでWLSがなくてもご利用いただけます。いろいろな方面からCoherenceがWLSと統合されると聞いてらっしゃると思いますが、Coherenceは継続して単独でも、他のアプリケーションサーバーと共に利用できます。
Coherence 3.xから12c(12.1.2)という、この番号体系の変更は、Cloud Application FoundationにおけるCoherenceの役割を示しています。
Coherenceは、Oracleのミドルウェアやアプリケーションの全スタックとますます統合していきます。
CoherenceとWLSは同じライセンスになるのでしょうか。 Coherence (Enterprise Edition) はWebLogic Suiteに含まれています。単独製品として販売するCoherence Enterprise Editionには、Managed Coherence Serverを管理するための WebLogic Management Frameworkを利用する権利が含まれています。
同じマシンでJDeveloper 11gと12cをインストール、実行できますか? はい、別のディレクトリにインストールする限り、同時に実行することができます。
WebLogic 12c (12.1.2)でサポートされるADFはどのバージョンですか? ADF 12.1.2はWLS 12.1.2で動作保証・サポートされます。
Oracle Fusion
Middleware 11g (classic domain) には、Forms、Reports、Discovererが含まれていますが、こうした製品をWLS12cで動作保証する予定はありますか。それとも別バージョンがあるのでしょうか. 
FormsやReportsは将来のFusion Middleware 12cでリリースされる予定です。
Mavenのサポートはバージョン縛りがありますか?もしそうだとすれば、どのバージョンをサポートするのでしょうか。 3.0.4
ビルドと依存性の管理のためにMavenをつかっていますが、ADFはMavenをサポートしていますか? はい、CAF 12cの注力エリアはMavenをすべての製品に渡って利用できるようにすることです。ADFライブラリもMavenリポジトリで管理できます。ADF archetypeをプロジェクトレイアウトでご利用いただけます。
JDeveloperでもOEPEでもMavenベースのADF開発をサポートしています。

ライブイベントを見逃した方は、オンデマンドでご覧下さい。

CAF 12cのアセットをダウンロードするには、弊社のWebサイトへどうぞ。
Cloud Application Foundation製品ページ
(日本語)http://www.oracle.com/jp/products/middleware/cloud-app-foundation/overview/index.html
(英語)http://www.oracle.com/us/products/middleware/cloud-app-foundation/overview/index.html
技術的な詳細情報やバイナリのダウンロード、ドキュメントはOracle Technology Networkからどうぞ。
Oracle Technology Network
(日本語)http://www.oracle.com/technetwork/jp/middleware/fusion-middleware/overview/index.html
(英語)http://www.oracle.com/technetwork/middleware/fusion-middleware/overview/index.html

[Coherence, FMW] Planning a Successful Coherence Deployment

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/planning_a_successful_coherence_deployment

できたてほやほやです!うまくいくCoherenceの展開計画に関する新しいホワイトペーパーをダウンロード頂けるようになりました。
Oracle Coherence 12c Planning a Successful Deployment
http://www.oracle.com/technetwork/middleware/coherence/planning-coherence-deployment-1985929.pdf
これは以前発行したホワイトペーパーを書き直したもので、考慮すべき事柄、12cの新機能の適用方法、ヒントやトリック、アプリケーション設計からキャパシティプランニングに至るまでのあらゆることに関する実用的なアドバイスを取り扱っています。Coherenceアプリケーションを管理・監視する必要のある管理者であっても、Coherence初心者の開発者やアーキテクト、はたまた既にCoherenceをお使いのユーザーであっても、このガイドが既存のCoherenceのヘルプやドキュメントと並んできっとお役に立つことでしょう。

[Coherence] Running the Managed Coherence Servers Example in WebLogic Server 12c

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/running_the_managed_coherence_servers

先頃リリースされたCoherence 12c (12.1.2)について新機能の一つであるManaged Coherence Serversの詳細と、WebLogic Server 12.1.2をインストールすると利用頂けるサンプルアプリケーションの実行方法を概説します。

Managed Coherence Serverとは

Managed Coherence Serverは、WebLogic ServerとCoherenceの緊密な統合を提供します。この統合により、分散アプリケーションのための開発および管理環境を簡略化し、合理化しています。この機能を使うと、エンドユーザーは新しいアーカイブタイプ(GARとしても知られるGrid Archive)を作成でき、標準的なWebLogic Serverのベストプラクティスに従って展開、管理することが可能です。開発者は、GARファイルを生成するためのビルドプロセスを合理化することができます。オペレーション部門は、テスト環境ならびに本番環境でのCoherenceとCoherenceアプリケーションの展開を標準化することができます。

これまでは、(多くの場合、DefaultCacheServerクラスを利用する)スタンドアロンキャッシュサーバーJVMの層と共に、CoherenceをJavaアプリケーション(例えば、WARやスタンドアロンJavaアプリケーション)に組み込まれたjarファイルとしてデプロイされることが一般的でした。組み込みJavaの用途(例えばWARファイルでの利用)はクライアントと呼ばれ、スタンドアロンキャッシュサーバーはサーバーと呼ばれています。「クライアント」やキャッシュサーバーののライフサイクルは、キャッシュサーバーをカスタムのシェルスクリプトで管理しつつ、多くの場合は手作業で、それぞれ別々で管理されています。このモデルでのアプリケーション開発や展開は、カスタムの管理プロセスが必要な多くの部品を含む、複雑なプロセスになることがあります。
この新しいモデルでは、Coherenceベースのアプリケーションを走らせるために必要なアーティファクト(例:POJO、サーバー側のロジック、キャッシュ構成)を、GARにパッケージ化しています。これは、Web Archives (WAR) のような他のJava EEアーティファクトの構造をかなりの程度反映しています。このGARファイルを、以下のような標準のWebLogic Serverツールを使用して同じようにデプロイ、管理することができます。
  • 管理コンソール
  • WLST 
  • WebLogic Deployer
  • WebLogic Development Maven Plugin
Coherenceクラスタの運用構成や構造は、管理コンソール内もしくはWLSTから定義し、クラスタ(新しいCoherence Clusterとは違いますので混同しないで下さい)のような、これまで使って来たWebLogic Serverの構造を利用して、データ層、アプリケーション層、プロキシ層を含む、階層化されたアプリケーションアーキテクチャを構築することができます。Coherenceの構成はそれらのWebLogic Serverクラスタを対象としており、WebLogic Serverクラスタに割り当てられた管理対象サーバーは、WebLogic Severクラスタのメンバーであることによって、動作設定を継承します。それゆえCoherenceベースのアプリケーション(EAR、GAR)をクラスタにデプロイでき、さらにクラスタのすべてのメンバーにアプリケーションが自動的にデプロイされます。

詳しく説明した動画やManaged Coherence Serverのデモは是非Oracle Coherence YouTubeチャネルをご覧下さい。
Oracle Coherence YouTube Channel
http://www.youtube.com/user/OracleCoherence

サンプルアプリケーションの実行

WebLogic Server 12cをダウンロードし完全インストールを終了すると、新機能に慣れていただくためのサンプルアプリケーションやサンプルのWLSTスクリプトがあります。以下の手順をご説明しましょう。

WebLogic ServerとサポートされているJDKをダウンロードする

まず、Oracle Technology NetworkからWebLogic Server 12cをダウンロードする必要があります。
Oracle Fusion Middleware Software Downloads
http://www.oracle.com/technetwork/middleware/downloads/index-087510.html 
「Generic WebLogic Server and Coherence Installer」もしくは各自のOS用のインストーラをダウンロードします。generic installerを選択した場合、動作保証されているJDKもダウンロードする必要があります。詳細情報は以下のリンクをご覧下さい。
Planning an Installation of Oracle Fusion Middleware
1 Preparing for Oracle Fusion Middleware Installation
1.7 Installing a JDK
http://docs.oracle.com/middleware/1212/core/ASINS/preparing.htm#ASINS355
今回の例では、最新のJava SE Development Kit 7u25をダウンロードしました。以下のリンクからダウンロードできます。
Java SE Development Kit 7 Downloads
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

WebLogic Serverのインストール

今回の例では、Windows 7上でコマンドプロンプトを管理者として実行し、JAVA_HOMEをインストールしたJDKのパスに設定して、インストーラを起動しました。
Starting the installer
ようこそ画面で[次へ]をクリックし、インストール先として適切なディレクトリを指定(このエントリではC:\Oracle\Middleware)し、[次へ]をクリックします。
次画面では[完全インストール]を選択して下さい。この選択でサンプルもインストールします。[次へ]を押して先へ進みましょう。

インストーラを進めてインストールが終了した後に[WebLogicサンプルの構成]のチェックボックスがチェックされていることを確認し、[終了]をクリックします。
[訳注]
英語では、"Automatically Launch the Quickstart Configuration Wizard"と表示されています。

クイック・スタート構成ウィザードが開始すると、パスワード(例えばwelcome1など)を選択して[作成]をクリックし、サンプルを構成します。

作成が完了したら、これらのサンプルのドメインを起動する必要はありません。

サンプルホームページの表示

サンプルのホームディレクトリ中のindex.htmlを開きます(このエントリの場合、ホームディレクトリはc:\Oracle\Middleware\user_projects\applications\wl_server\index.html)。このページはすべてのWebLogic Serverサンプルのホームページで、Managed Coherence Servers Examples のリンクを選択してサンプルを表示することができます。
数多くのサンプルで新機能を紹介しています。お使いのマシンのメモリが多くない(例えば4GBに満たない)場合、管理サーバーにだけデプロイするというSingle Serverの例を使うことも可能です。以下では、階層型アプローチを使うMulti Serverの例を実行する方法を説明します。

Multi-Serverのサンプルを実行する

コマンドプロンプトを開き、setWLSEnv.cmdもしくはsetWLSEnv.shを使い、WebLogic Serverの環境を設定します。このエントリの場合、setWLSEnv.cmdはC:\Oracle\Middleware\wlserver\server\binにあります。

次に、サンプルのホームディレクトリに移動します。これはかなり長いディレクトリ名です(このエントリの場合、C:\Oracle\Middleware\user_projects\applications\wl_server\examples\src\examples\coherence\managed-coherence-servers)。
[訳注]
原文に間違いがあるので、正しく書き直しています。

このディレクトリには多くのディレクトリがありますが、今回はマルチサーバーのサンプルを実行するので、multi-serverディレクトリに移動します。
次に、 ant deployを実行し、アプリケーションをビルド、インストールします。antが見つからない場合、正しくsetWLSEnv.cmd/shを実行したかどうかを確認して下さい。完了すると、パスワード(これはクリアテキストで表示されます)とマシンのホスト名を入力するようプロンプトが現れます。他のポート番号はデフォルトのままでもOKです。

ビルドプロセスでは新しいドメイン(multi_domain)をデータ層、アプリケーション層と共に作成し、アプリケーションをこのドメインにデプロイします。

完了すると、上記で示されたURLにアクセスし、下図と同じJSPアプリケーションを実行できます。管理コンソールにアクセスしてアプリケーションや作成した構成を表示することもできます。

まとめ

他にも、ローリング再デプロイの実行方法や、すべての管理対象サーバーのスレッドダンプをWLSTを使用して取得する方法を説明するサンプルが同じ場所にあります。
Coherence 12.1.2やManaged Coherence Serverに関する詳細は以下のリンクをご覧下さい。

[Coherence] Coherence on Exalogic: dealing with the multiple network interfaces

原文はこちら。
https://blogs.oracle.com/csoto/entry/coherence_on_exalogic_dealing_with

先日、EECS(Exalogic Elastic Cloud Software)のアップグレード後、以下のようなエラーメッセージがCoherenceサーバー起動時に出る、という事象に対応しました。
Oracle Coherence GE 3.7.1.8 (thread=Thread-3, member=n/a): Loaded Reporter configuration from "jar:file:/u01/app/fmw_product/wlserver_103/coherence_3.7/lib/coherence.jar!/reports/report-group.xml"
Exception in thread "Thread-3" java.lang.IllegalArgumentException: unresolvable localhost 192.168.10.66 at
com.tangosol.internal.net.cluster.LegacyXmlClusterDependencies.configureUnicastListener(LegacyXmlClusterDependencies.java:199)
...
Caused by: java.rmi.server.ExportException: Listen failed on port: 8877; nested exception is:
java.net.SocketException: Address already in use ...
weblogic.nodemanager.server.provider.WeblogicCacheServer$1.run(WeblogicCacheServer.java:26)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.UnknownHostException: 192.168.10.66 is not a local address
at com.tangosol.net.InetAddressHelper.getLocalAddress(InetAddressHelper.java:117)
at
com.tangosol.internal.net.cluster.LegacyXmlClusterDependencies.configureUnicastListener(LegacyXmlClusterDependencies.java:195)
...

Exalogicにはいくつかのネットワークインターフェース(bond/eth 0、1、2など)があることはよく知られていることです。Coherenceがどのインターフェースに接続すべきかを判断する際に利用するロジックでは、tangosol.coherence.localhostパラメータを適切に指定していることを確認することが、(以前のリリースのCoherenceよりもずっと)重要になります。その理由は、具体的には、複数のネットワークインターフェースを持つマシンや、ローカルアドレスをネットマスクとして指定し大規模なクラスタ全体にわたって容易に構成できるような機能強化をサポートするためです。そのIPアドレス(または適切にマッピングされたホストアドレス)から、利用される所望のネットワークインタフェースを簡単に見つけることができます。そうすれば、Coherenceクラスタはうまく動作するはずです。

[Coherence] Upgrading to Coherence for C++ 12.1.2 and The "Ambiguous Compilation Error" in Types Derived From AbstractAggregator

原文はこちら。
https://blogs.oracle.com/middlewareplace/entry/upgrading_to_oracle_coherence_for

今週末、Coherence for C++ 3.7.1 APIを使って作成したいくつかの古いC++アプリケーションを数日前にリリースされた最新の12.1.2のAPIに移行し始めました。12.1.2ではCoherenceに対して多くの素敵な変更や機能が追加されています。インストール、WebLogicとの統合、TCMP、Exabus、RESTおよびCoherence*Extendといったような様々な領域で改善がなされていることは言うまでもありません。こうした変更や改善の詳細は以下のリンクからどうぞ。
Oracle Fusion Middleware Documentation
Release Notes for Oracle Coherence
http://docs.oracle.com/middleware/1212/coherence/COHRX/index.html
数時間で旧バージョンから最新バージョンに移行した後、ビルド時に以下のようなコンパイラメッセージが出てびっくりしました。
call of overloaded 'Float64Sum(const coherence::lang::TypedHandle<coherence::util::extractor::ReflectionExtractor &)' is ambiguous
同じコンパイラメッセージを見たことがあるなら…ご心配無用です。簡単かつ明快な解決策があります。このコンパイラエラーが発生したのは、Coherence for C++ APIの12.1.2で、ファクトリメソッドcreate()のオーバーロードバージョンが、coherence::util::aggregator::AbstractAggregatorクラスから派生した型に導入されたからです。

ver 3.7.1までは、AbstractAggregatorオブジェクトのインスタンスを作成するには、coherence::util::ValueExtractorのインスタンスをファクトリメソッドに渡すしかありませんでしたが、12.1.2からはcoherence::lang::String::Viewのインスタンスを渡してインスタンスを作成することもできるようになりました。このオブジェクトには集約された属性の名称が含まれているはずです。裏で自動的に、Coherence for C++ APIがcoherence::util::ValueExtractorを作ってくれます。

今回の場合、以下の部分を
Float64Sum::Handle scoreAggregator = Float64Sum::create(ReflectionExtractor::create("getScore"));
次のように変更しました。
Float64Sum::Handle scoreAggregator = Float64Sum::create("getScore");
これでプロジェクトが再度コンパイル可能になり、GNU Linux G++でもMicrosoft Visual Studioの両方のC++のコンパイラを使うことができるようになりました。

このエントリがコードデバッグの手助けになることを希望します :-)

[Coherence, WLS] Can't Miss Event: Oracle Coherence 12c Launch Webcast

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/can_t_miss_event_oracle

今月のCloud Application FoundationのLaunchの一環として、Oracle Coherence 12cのLaunchが迫っていることに、非常にわくわくしています。
是非みなさまにCloud Application FoundationのLaunch Eventに参加いただき、Coherenceのすばらしい機能を知っていただきたいと思っています。
ミッションクリティカルなクラウドプラットフォームをアプリケーションにもたらします。
高可用性を担保するためのデプロイの選択肢を強化しています。統合された製品および管理により、オペレーションが簡素になっています。
アプリケーションをスケールしてモバイルやクラウドの需要を満たしましょう!

Oracle Cloud Application Foundation Launch
(Oracle WebLogic Server、Oracle Coherence、Oracle Enterprise Manager、Oracle Development Toolsを含みます)

[日時]
2013年7月31日(水) 10時(PDT)
2013年8月1日(木) 2時(JST)

登録はこちらからどうぞ!(もちろん無料です)
https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&eventid=651242&sessionid=1&key=C96B0428F5647966361342531047AB28
このCohereceのリリースは初めてOracle WebLogic Serverのリリースと同時にご利用いただけるものですが、偶然ではありません。このLaunchに際して、お使いの皆様にシンプルなオペレーションを享受頂くことが今回のリリースの注力ポイントの一つでした。この中にはWebLogic Serverだけでなく、クラウド管理ツール(Enterprise Manager)、開発ツール(JDeveloper、Eclipse、ADF Mobileなど)と密に統合していることも含んでいます。そのため、使い出したその日からすぐに生産性が高いはずです。

さらに、リアルタイムデータ処理、弾性スケーラビリティ、開発者にとってテクノロジー・フレンドリーで、7月10日にLaunch EventがあるOracle Database 12cとの密な統合、といったあたりの非常に重要な機能をCoherenceが提供しています。
でも言い過ぎましたね。皆様とお会いできるのを楽しみにしています!
Launch Webcast: Plug into the Cloud with Oracle Database 12c
https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&eventid=617926&sessionid=1&key=8D5918DABF87924314A8E84FA29A9178.

[Coherence] Oracle Coherence Special Interest Group Presentations Published

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/oracle_coherence_special_interest_group1

2012年11月15日、ロンドンのCoherence Special Interest Group(CSIG)で数多くのすばらしいプレゼンテーションがあり、これらを録画することができました。そしてこのたび、YouTube Channelに動画をUpし、新しいCSIGプレイリストに追加しました。
November 15th 2012, London, UK -  Coherence Special Interest Group
http://coherence.oracle.com/display/CSIG/15+November+2012+-+London%2C+UK
Oracle Coherence YouTube Channel
http://www.youtube.com/oraclecoherence
Coherence Special Interest Group
http://www.youtube.com/playlist?list=PLxqhEJ4CA3JubAjL-KCkdKmAPiKdNsBYt
以下のコンテンツが含まれています。
  • Oracle Event Processing and Oracle Coherence (Phil Aston, Technical Director, Oracle)

  • Evolving the Evolvable in Coherence (Aleksander Seović, Solutions for Human Capital)
  • Oracle Coherence Pivot Tables (Jonathan Knight, TheGridMan)
  • Oracle Coherence MessageBus (Rob Lee, Coherence Architect, Oracle)
CSIGに参加すると、Coherenceや製品をとりまく活発なコミュニティで起こっていることを知ることができます。Coherenceのエンジニアやアーキテクトに出会ったり、他のCoherenceユーザーやお客様ととつながったりしましょう。近日開催のイベントはWikiをご覧下さい。
Coherence Special Interest Group (Coherence Wiki)
http://coherence.oracle.com/display/CSIG/Home

[Coherence] Coherence Incubator 11 Now Available

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/coherence_incubator_11_now_available

Incubator 11が正式にリリースされました。詳しくは、Brian OliverのCoherence Incubator 11のリリースに関するエントリや、最近の変更に関するエントリをご覧下さい。
Coherence Incubator 11 Released
http://brianoliver.wordpress.com/2013/02/26/coherence-incubator-11-released/
Coherence Incubator 11 (coming to an open-source repository near you soon…)
https://brianoliver.wordpress.com/2013/02/03/coherence-incubator-11-coming-to-an-open-source-repository-near-you-soon/
[訳注]
ロジ子も以下のエントリでご紹介しましたね…。
[Coherence] Open Sourcing the Coherence Incubator
http://orablogs-jp.blogspot.jp/2013/02/open-sourcing-coherence-incubator.html
Coherence Incubatorを使い始めるにあたって、以下のリンクが参考になるかと思います。

[Coherence] Open Sourcing the Coherence Incubator

原文はこちら。
https://blogs.oracle.com/OracleCoherence/entry/incubator_goes_opensource


一年間でOracle Coherence Incubatorプロジェクト界隈で数多くの変更がありました。多くのお客様、パートナー、現場の専門家と相談し、Coherence Incubatorプロジェクトをオープンソースにすることを決定しました。リリース11現在、すべてのソースコードおよびドキュメントが正式にCDDLの下でライセンスされ、Incubatorプロジェクトにさらなるオープン性をもたらしています。
Coherence Incubator (Release 10)
http://coherence.oracle.com/display/INC10/Home
Coherence Incubator 11
http://coherence-community.github.com/coherence-incubator/11.0.0-SNAPSHOT/
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
https://oss.oracle.com/licenses/CDDL
この変更をサポートするために、以下のような数多くのインフラ面での変更も必要でした。
(Brian Oliverが彼のブログで言っているように)maven.java.netでご利用いただけるリリースを使ってプロジェクト全体がMavenizedされました。
Coherence Incubator 11 (coming to an open-source repository near you soon…) (Brian Oliver)
http://brianoliver.wordpress.com/2013/02/03/coherence-incubator-11-coming-to-an-open-source-repository-near-you-soon/
maven.java.net
http://maven.java.net
この動きに非常にわくわくしています。Oracle Coherenceコミュニティがさらに広がることを期待しています。