Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)

1.040 Aufrufe

Veröffentlicht am

【そのまま表示すると見づらいため、ダウンロードしてご参照ください】Oracle OpenWorld2017とJavaOne2017のレポートです。IBM社、Oracle社に設定いただいた個別セッションの内容も含めています。社内向けに公開したものから、一部公開範囲の都合により差し替えています。
※画面で見るなら↓のほうが見やすいかもしれません
https://speakerdeck.com/dnishino/oow2017-and-javaone2017-report-daisuke-nishino-sompo-systems

Veröffentlicht in: Technologie
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)

  1. 1. REPORT 2017 Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  2. 2. REPORT 2017 はじめに:おすすめの読み方 この一枚で今年の話題総ざらい! JavaOne 2017を知るキーワード10 IBM Special Session #1 IBMが“Java 8”を推奨する理由 IBM Special Session #2 IBMの“オープン化戦略”と MicroProfileが成したこと IBM Special Session #3 “IBM × アメリカン航空”の事例で見る カスタマー・ソリューションの現実解 Oracle Special Session #1 我々は なぜJava EEをEclipse Foundationに移管したか Oracle Special Session #2 オープンソースへのコミットと Oracle Cloudが持つ品質への自信 Oracle Special Session #3 Some Pieces of Advice JavaOne Session #1 “偉大なテストケース”に必要な10のシンプル・ルール JavaOne Session #2 あなたが知りたくて、でも誰にも聞けなかったこと JavaOne Session #3 “RESTful API” のつくりかた JavaOne Session #4 Java9、言語とツールはどう進化したか Oracle OpenWorld Keynote #1 “自律型DB”その威力 Oracle OpenWorld Keynote #2 ビッグデータに価値はない the Ambience of San Francisco See You Next Year 5 9 13 14 15 19 20 21 25 27 28 29 33 35 39 41 Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)P.3 P.4Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  3. 3. (注:以下は、社内への展開時に、主として当社の非オープン 系アプリ開発担当のメンバーに向けたメッセージです) 分量が多いので、全部読まなくてOKです! 難しければ本文は読まず、キーワードだけ拾ってください! 全く興味ない方は、写真だけでもさらっと見てみてください! 開いてくださった皆様が、技術に関する新たな知識を ひとつでも獲得してくださったら、それだけで嬉しいです。 また、少しでも読まれたら、 ぜひお気軽にご感想をお寄せいただければ幸いです。 それでは、次ページより始まる、年に一度のJavaの祭典を しばしお楽しみください。 SOMPOシステムズ株式会社 西野大介(@nishino_chekhov) はじめに:おすすめの読み方 P.5 P.6Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  4. 4. E V E N T OUTLINE P.7 P.8Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  5. 5. この一枚で今年の話題総ざらい! JavaOne2017を知るキーワード10 年に一度、サンフランシスコで行われる世界最大のJavaカンファレンス“JavaOne”。Javaは“世界で最も人気のある言語”とされ るだけあり、IT業界全体で注目度を集めるHOTなワードをイベントの各所で頻繁に耳にしました。ここでは、今のJava、そし て今のIT業界を知るうえで欠かせない10のキーワードをもとにして、JavaOne 2017の話題を総ざらいします。(初学者の方 は、すぐに全てを覚えるのは難しいと思いますので、まずはここで用語に慣れ、少しずつなじんでいきましょう) #1: “EE4J” 今年最も欠かせないキーワード はこれ。Java EEについては、こ れまで実質的にOracleが仕様策定 等の主導権を握っていた。今回、 今後はオープンソース団体であ るEclipse Foundationに移行され ることを発表(つまり、同団体 に参画しているRedhatやIBMなど と、Oracleが権利者として同列に なることを意味する)。経緯等 についての詳細はP.14およびP.19 参照。なお、“EE4J”というのは “Eclipse Enterprise for Java”の略 称で、移行自体のプロジェクト 名称である(これがJava EE とい う名称にとって代わるのか、ま た別の名称となるかは不明)。 IBM、Redhat、Tomitribeの 開発者が登壇し、これはポジ ティブな移管であると強調 今後、Java EE の開発主体は Oracle から Eclipse Foundation へ #2: “Java SE 9” 9月にリリースされた“Java SE 9” について、キーノートでも大々 的に取り上げられた。本バージ ョンの目玉は“Project Jigsaw”(プ ロジェクトジグソー)と呼ばれ るモジュール化の採用(詳しく はP.29参照)。さらにリリース ポリシーも変更され、仕様が固 まってから出すというこれまで の方針から、必ず6ヶ月ごとに出 すという“時間”ドリブンのリリー スサイクルに変更。バージョン 名はナンバリング方式をとりや め、年+月となる(初回は18.3)。 バージョンによりサポート種類 が全く異なる点も把握しておき たい(P.13参照)。 会場には巨大な"9"のモニュメ ントも設置され、Java9のリリ ースをアピール。なお、Java SE 9と同時にJava EE 8がリリ ースされたということも、業界 動向としてあわせて押さえてお きたい Java SE 9 遂にリリース! 新機能の目玉は「モジュール化」 #3: “Docker” “Docker”とはコンテナ型とよばれ る仮想化環境のこと。いわゆる “仮想マシン”(注:Windowsの上 でmac OSなど別のシステムを動 かすソフトウェアを見たことは ありますか?あれのことです) とよく似ているが、仮想マシン が「OSごと仮想化する」のに対 し、Dockerは「OSは仮想化せず、 その上の部分に“コンテナ”と呼ぶ 枠組みを作りそこだけ仮想化す る」点が異なる。Oracleは“Kube rnetes”(#4参照)と共にDocker サポート強化を強調している。 詳しくはMike Lehmann氏への特 別インタビュー(P.20)参照。 仮想マシンと比較した場合の 最大のメリットは、OSより 上だけを仮想化することによ るサイズと処理の軽さ。大量 のアプリを同一ハードウェア 上で動かすクラウド時代だか らこそ、そのメリットが最大 限に活かされる Docker とは仮想化環境のこと。 Oracle は今後のサポート強化を強調 [関連] P14,19 [関連] P20 [関連] P13,29 #4: “Kubernetes” “Kubernetes”とは、“Docker” (#3参照)用の補助ツールのこ と。Docker単体ではコンテナの 作成や実行の機能などしかなく、 コンテナはあくまで単独のマシ ン の 中 に し か 配 置 で き な い 。 Kubernetesを使うことで、あたか も1台に配置されているかのよう に見せながら、複数台のマシン にコンテナを配置するというこ とができる。1台のマシンパワー では足りない状況で簡単に台数 を増やしたり、障害時にマシン の切り替えが容易にできたりす るというメリットがある。 Docker向けの同様のツール は他にもいくつかあるが、 OracleはKubernetesが業界 で勝利すると予測し、Kube rnetesにコミットすることを 宣言している(p.20参照) Docker の効果を最大化する 補助ツール。更なる台頭は確実 [関連] P20 #5: “Microservices” 昨年に引き続きよく耳にしたこ のキーワード。これまでのよう に「一枚岩に固まった巨大なシ ステム」としてアプリケーショ ンを作るのではなく、「ひとつ ひとつの小さいシステムを連携 させる」ことでアプリケーショ ンを実現させようというシステ ム構造の考え方のこと。機能変 更が容易、障害時に大規模サー ビス停止を避けやすいなど様々 なメリットがあり、大手企業が メインシステム刷新時に適用す るケースが増えている。 Soptifyのプリンシパルアーキ テクトNiklas Gustavsson氏 が登壇。Pythonで構築されて いたシステムをMicroservices の考え方に沿ってJavaで再構 築したエピソードを紹介した 有名企業での活用事例が増加中。 Microservices は今後もトレンド継続 [関連] P20 #6: “Serverless” 去年と違い、今年は“Microserv Ices”(#5参照)と同時に発言さ れることが非常に多かったこの キーワード。“Serverless”という 言葉の通り、「サーバを意識せ ずにシステム構築できる」とい う考え方を指し、サーバが存在 しないわけではない。やや定義 があいまいだが、サーバを意識 して管理せず済むよう(そうい ったことはクラウドに任せる)、 DBや認証などの機能がサービス として事業者から提供されるも のが一般的。 Oracle社のバイスプレジデン ト、 Mike Lehmann氏も、 MicroservicesとServerless について、必ずセットで言及 していた(P.20参照) 使い手がサーバの存在を意識不要に。 クラウドは急速にその方向へシフト [関連] P20 #7: “FaaS” “FaaS”とは、“Function as a Service”の略称。“Servlerless”(#6 参照)の考えをさらに推し進め たもので、機能そのものを事業 者(Amazonなど)が公開し、1 呼出ごとに課金といったサービ ス形態で提供される。有名なの はAmazonの“AWS Lambda”。 ※Serverless = FaaSとして解釈してい る巷の記事も多い。現時点でそれは 拡大解釈であるものの、今後FaaSが 隆盛してきた場合、実際にそういう 用語として定着する可能性もあるだ ろう クラウドサービスは様々種類 があるが、アマゾンはそのい ずれでもかなりのシェアを誇 っている 機能を従量課金する FaaS 。 その使い勝手の高さから大人気に [関連] P20 #8: “Fn Project” “Fn Project”は“FaaS”(#7参照) を実現するプラットフォームで あり、オープンソースとして公 開された。構成要素は“FaaS”を 実現する“Fn Server”、開発用キッ トである“Java FDK”、実行を管理 する“Fn Flow”の3つ。壇上では画 像投稿サイトから画像を取得・ 処理しSNSに投稿するサンプルコ ードが公開され、機能の実行を 直感的な実装で実現できること がアピールされた。Java以外に GoやPythonなど様々な言語に対 応していくという。 ベンダーロックインしないと いう昨今のOracle Cloudのコ ンセプトを受け継いでいると 言える、オープンソースのプ ラットフォーム。Serverless やFaaSが隆盛していく中で、 どれだけ支持を得られるかに 今後注目していきたい その実力はまだまだ不明。 FaaS の雄になれるかはこれから [関連] P20 #9: “Open J9” & “Open Liberty” IBMは、自社のJava VMをEclipse Foundationに寄贈、“Open J9”と して公開したことを発表。さら に、アプリケーションサーバで ある“WebSphere Liberty”の中核 部分も同様に“Open Liberty”とし て寄贈された。「規模の大小を 問わず幅広い開発者が活用する ことで、より多くのイノベーシ ョンがもたらされること」を期 待しているという。開発者の話 から、ロングタームサポートと いう考え方への適応としての側 面も見えてくる(P.13参照) #1に記載した通り、Java EE も移管されることとなり、 Javaに関する多くの資産が Eclipse Foundationに収束し てきている Java VM もアプリケーションサーバも 全部 Eclipse Foundation へ! [関連] P13,14 #10: “Future Projects” 今後のJavaの新機能として開発さ れ て い る も の が 紹 介 さ れ た 。 “Project Panama”、“Project Valhalla”、“Project Amber”、 “Project Loom”の4つ。残念なが ら時間の都合もあり説明は省略 されていたものの、Valhallaは基 本データ型を自分で定義できる ようにし、Panamaはネイティブ コードの最適化を行うものとい う既存情報あり。どちらも導入 されれば、処理速度の向上に貢 献するだろう。 キーノートではAmberのみ説 明された。varという万能な 型を使用できるようにするコ ン セ プ ト で 、 一 見 す る と JavaScriptなどに近い印象を 受ける。 Java は今後も機能拡充し、 簡単実装&高速処理を追求していく イーイーフォージェイ ジャバ エスイー ナイン ドッカー クーバネティス(*1) マイクロサービス サーバレス ファース エフエヌ プロジェクト オープン ジェイ ナイン & オープン リバティ *1:最も近い発音。現時点で正式日本語名はなく、呼び方は人によりまちまち P.9 P.10Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  6. 6. S P E CI AL S E S S I O N P.11 P.12Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) at IBM JavaOneを契機に、IBM社の錚々たるメンバーがサンフランシスコに 集結。それにあわせ、我々だけに向けた特別セッションを設定してい ただきました。EE4JやOpen J9戦略の実態から、詳細なカスタマーソ リューション事例まで、壇上を降りたスペシャリストが間近で語る臨 場感を、ぜひ想像しながらお読みください。 写真は公開NG となったため、 別のものに差し 替 え て い ま す
  7. 7. IBMが現時点で “Java 8”を推奨する理由 IBM Java Roadmap [IBM Special Session #1] Javaのリリースモデルの変更にともない、IBMがどのように対応してい くのかを解説。推奨バージョンについても言及され、“8”を推奨すると いうこと、そしてその理由についても説明がなされました。 Open Source団体にJavaEEを移管しよう と思っており、それをJavaOneで発表し ようと考えていることを切り出しました。 我々に対し、その案をどう思う?と。 Happyか?それとも、それによりあなた たちのカスタマーに何か問題がありそう か?と。 その場で伝えられたのはわたしの意見 ですが、Elicpse FoundationがJava EEプ ラットフォームとして最高だと言いまし た。MicroProfileもありますし、イノベー ションも起こしやすいでしょう。それも、 とても速い、ここ数年のJava EE標準とは 比べ物にならない速度で。 Eclipse Foundationへの移管に踏み切っ た最初のきっかけは、MicroProfileであっ たでしょう。しかし2番目の理由として は、Javaユーザーにとってそれが最も良 い選択であると考えたからだと思います。 Oracleだけでなくもっと多くのメンバー たちがJavaのオーナーとなることで、 Java EEを守り、そしてより速い速度で拡 張していくことができますから。 Libertyをオープン化するということ 我々は先月、Libertyの中核コードを Eclipse Foundationの下でオープンソース 化するというプロジェクト“Open Liberty” について発表しました。我々は、これに よって多くの開発者が自らのアイデアを 本格的なアプリとして実現することに役 立てることを願っています。そして、こ の決断により、Eclipse Foundationには Open Liberty、Open J9、EE4Jといった多 くのJavaのフィーチャーが集結すること になりました。 MicroProfileが成したこと Eclipse Foundationには、MicroProfileが あります。IBMがRedhatやTomitribeなど とコラボしているもののひとつで、Java を使用したマイクロサービス向けのプロ ファイル(注:特定の機能を抜き出して まとめるという概念)です。Java EE 7の サブセット(一部仕様の抜粋)から始ま り、現在は独自仕様も追加されています。 立ち上げのきっかけは、Java EE 標準 のマイクロサービス対応が遅かったから です。過去、我々はかなり長い間、マイ クロサービスをJava EEのターゲットのひ とつとすることをディレクションしてい ました。多くの人々がそれについてシリ アスでしたが、残念ながらOracleはその 中にはいませんでした。それが18ヶ月前 に我々がMicroProfileをスタートしたきっ かけです。そして、このプロジェクトを 説明し、伝える場を設けたのは去年の JavaOne 2016の期間でした。私は、これ こそがOracleがJava EEをEclipse Foundati onに移行することを決断させたきっかけ だと思っています。 Oracleとの話し合い、そして移管へ 実は8月に、話し合いの場を持つため にOracleをIBMに招待し、RedHatを含め3 社で対話をしました。Oracleはそこで、 Ian Robinson , DE WebSphere Foundation Chief Architect ントチャート参照)。ひとつは6ヶ月ご とのリリースにあわせ、次のバージョン がリリースされるまでの間(つまり6ヶ 月)のみサポートされるというもの。 Java 9がその初めての対象となり、その 次の18.3も同様です。 もうひとつは、5年間のサポートが行 われるバージョンで、こちらはロングタ ームサポートの対象であるという表現を されます。直近では18.9がその対象とな ります。IBMがJava 8の次にサポートす るのはこのバージョンとなります。 IBMはJava 8 を推奨 ガントチャートを見てお気づきかと思 いますが、“旧”リリースモデルの最終版 であるJava 8は、“新”リリースモデルのロ ングタームサポート対象よりもさらに長 い保証期間となります。 我々は、最新のハードウェアとベスト なテクノロジーで、Java 8を2025年まで サポートします。セキュリティなど保守 上の懸念もカバーされますし、このバー ジョンが最も推奨できるJavaです。 もちろん、最新を使用したいというニ ーズがあるユーザーもいらっしゃること を想定しています。常に最新バージョン を使用するために、我々はOpen J9とい う選択肢を用意しました。 安定性と最新、そのどちらを選ばれる かは、ユーザーの用途により決められる でしょう。 Javaのリリースモデル変更 先月リリースされた“9”を皮切りに、 Javaのリリースモデルは変更されます。 これまでは、新機能が実装されたら新バ ージョンとしてリリースする“機能”ドリ ブンのリリースモデルでした。しかし、 それでは変化の速い現代に適応しにくく なることから、“時間”ドリブンのリリー スモデルに変更となります。機能の仕様 策定状況に関係なく、6ヶ月ごとに必ず バージョンアップされるようになり、バ ージョンもナンバリングではなく“18.3” などの日付を表すものとなります。 IBM SDKの対応方針 まず、IBMはJava9向けのIBM SDKを作 成しません。Java9を使用したいユーザー は、Open JDKに加え、今回オープン化を 発表したOpen J9(経緯などの詳細はIBM Special Session #2参照)を使うことで、 オープンソースではありますが、IBMの テクノロジーをもとに開発を進めること ができます。重要なのは、9月にリリー スしたIBM SDK for Java(SR5)と同じJVM を、Java 9や18.3、18.9にも適用できると いうことです。 ロングタームサポート “時間”ドリブンのリリースモデルは、2 種類のサポート種類に分かれます(下ガ 当セッション最大のポイントはこの表。3行目に示 されている8のサポート期間が、それより未来にリ リースされるロングタームサポート対象のバージ ョン(6行目)よりも長いというところにある。 IBM社はもともとProject Jigsawに対しJCPで反対票 を投じる(その結果Java 9のリリースが遅れた)ほ ど、モジュール化に対し慎重派の姿勢を見せてい た。もしかしたら、それがこのサポート期間の表 明にもつながっているのかもしれない Steve Wallin , Program Director - IBM Runtime Technologies IBMの“オープン化戦略”と MicroProfileが成したこと WebSphere Update - On-Premises and in the cloud [IBM Special Session #2] 今回発表されたLiberyのオープン化の話から、Eclipse Foundationへの移 管について、Oracleから受けた相談内容を含めて経緯を伺いました。一 年前のあの時期にMicroProfileを発表した意図も説明くださっています。 移管により仕様策定のプロセスがどうなるか不 明で、その点が気がかりです。 JCPとEclipseとの進め方はまさに今議論中です。 まずはGlassfishとそのソースコード、TCKの移 管を優先し、その後、仕様策定のプロセスやガ バナンスなどの見直しが行われると思います。 これには数ヶ月要することを想定していますが、 その見直しを経ることで、JCPの今の仕組みの よいところは残しつつ、新たなプロセスを作っ ていくことになるでしょう。 JCPは仕様策定に年単位の年月を要する点がネ ックでした。 我々もJCPの活動をもっと速いものにしたいと 思っていました。その点でも今回の移管は効果 を発揮するでしょう。 What About JCP? IBM社の見解 - Steve Wallin 移管にともないJCPは どうなるのか。この点 に関するIBM社の見解 については、会社代表 としてJCPのExecutive Committeeに参加して いるSteve氏(前ペー ジ参照)が回答してく れました P.13 P.14Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) ――― Steve ――― Steve 写真は公開NG となったため、 別のものに差し 替 え て い ま す
  8. 8. “IBM × アメリカン航空”の事例で見る カスタマー・ソリューションの現実解 American Airlines Customer Solution [IBM Special Session #3] ――――――――――――――――――――――――――――――― ――――――――――――――――――――――――――――――― ――――――――――――――――――――――――――――――― ――――――――――――――――――――――――――――――― ――――――――――――――――――――――――――――――― ――――――――――――――――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― ―――――――――――――――――――― P.15 Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) このページは写真・本文ともに公開 NGとなりました(興味深い事例を丁 寧にまとめたページだったので、皆様 にお見せできないのが残念です)
  9. 9. P.17 P.18Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) S P E CI AL S E S S I O N at Oracle CVC JavaOne講演の隙間を狙い、Oracleの未来を握る重鎮の方々から直接 お話をうかがいました。オープンソースにコミットする意気込みや、 Oracleから見たEE4Jへの思いなど、顔を突き合わせたからこそ見える その真意を、この記録から読みとってください。 * * CVC : Customer Visit Center
  10. 10. 我々は なぜJava EEを Eclipse Foundationに移管したか Eclipse Enterprise for Java (EE4J) [Oracle Special Session #1] IBM社の特別セッションでも話があった今回の移管について、こちらは Oracle社側の視点で解説されています。両者の立場の違いによる微妙な トーンの差を比べると、今後のJava EEの動きが少し予測できるように 思います。 それが我々がビジネスに勝つという手段 であり、決して独自機能を持つことでは ありません。独自の機能を持つというこ とは、ユーザーを環境へロックインする ことと同義でもあるからです。それはユ ーザーの望まない方向であり、我々もそ れを望みません。 Fn Project 我々は、月曜のJava Keynoteで、コン テナネイティブなサーバレス開発のプラ ッ ト フ ォ ー ム を 発 表 し ま し た 。 “ F n Project”という名前で、オープンソース化 します。これを用いることで、クラウド ニュートラルな開発を行うことができま す。このプラットフォームが持つ開発キ ットでビルドしたサーバレスアプリケー ションは、Oracle Cloudだけでなく、 Google Cloud、Microsoft Azure、Amazon AWS、どこでも動かすことができます。 DockerとKubernetesに対応している限り。 我々はクラウドニュートラルなマイク ロサービス&サーバレスのプラットフォ ームを求めていました。AWS Lambda、 Google Functions、Azure Functionsなど、 いくつかサーバレスプラットフォームは ありますが、いずれも本来オープンソー スで完結するプラットフォームであるべ きです。そして、我々は、その考え方を 体現していきます。Fn ProjectとOracle Cloud Infrastructureによって。 Kubernetes will win Dockerに代表されるコンテナ型のアプ リケーション実行環境。そのデプロイメ ントプラットフォームはMesosやDocker Swarmなど、様々あります。しかし、 我々はその中でKubernetesが勝者となる と考えています。Oracle Cloud以外でも、 Amazon AWS、Microsoft Azure、Google Cloud、どのクラウドもサポートしてい ますし、そして、クラウドニュートラル です。もちろん、オンプレでも動きます。 Oracleは3週間ほど前、Cloud Native Computing Foundationにプラチナ会員と し て 加 入 し ま し た 。 そ れ に 先 立 っ て Kubernetesのプロジェクトにも参画して います。その事実からもお伝えしたいの は、我々は他のクラウドプロバイダとは 違うということ。オープンソースの一部 分をサポートするのではなく、オープン ソースで完結すべきという考えを持って います。 そして我々は、Very Heavilyに、オープ ンソースコミュニティ側に立つことにコ ミットしています。これは過去のOracle のやり方とは異なる方向です。実際のと ころ、我々はSpringOneやKubeConなど もスポンサードしていますし、カンファ レンスコミュニティへの参加にもVery Activeです。Oracleは製品開発だけをして いるのではないのです。 純粋にクラウドの品質で勝つ さて、ここまでの話から、あなたはお そらくこう言うでしょう。「全てをオー プンソースにしたら、Oracleはどうやっ てビジネスで勝つのか?」と。その答え は、クラウドの品質です。Oracle Cloud Infrastructureというベアメタルプラット フォームは、セキュアかつハイパフォー マンスであり、高稼働率を誇る上に、コ ストパフォーマンスが非常に良い。この 通り、純粋にクラウドの品質そのもの、 Mike Lehmann VP Product Management Container Native Application Development ープンソース団体に移管することを決意 しました。我々はこの8月、その評価を すべく、IBMとRedhatにコンタクトをと り、会話をし、彼らにアイデアを求めま した。その場では、Apache Software Foundationなどのいくつかの団体につい て話しましたが、会話の結果、Eclipse Foudationを選択しました。よく知られて いる団体であり、Java EEについても熟 練しています。何より、MicroProfileプロ ジェクトもやっていて実績があります。 そこで、我々はJava EEをEclipse Founda tionに移管し、同時にコミュニティスポ ンサーとなることを決めました。Eclipse Foundationの持っているテクノロジーを サポートし、EE4Jに貢献するために。 Oracleが提供するもの 我々は、GlassFishやTCKといったJava EEの技術群をEclipseにRelicenseします (注:TCKとはJava EEの認証を取るため のテストキットのこと。これを使用した テストを通らないとJava EE認証済のアプ リケーションサーバーを名乗ることはで きない)。そして、Eclipse Foundationは Nimbleに動いていきますので、JCPのゆ っくりとした仕様策定のリズムとは、必 然的に足並みがそろわなくなってきます。 つまり仕様策定においても、Eclipse Fou ndationが関わってくる流れに自然になっ ていくでしょう。 全てがNimbleになる。それによりJava EEはさらなる進化を遂げていくでしょう。 Java EEとOracleを取り巻く課題 9/21にリリースしたJava EE 8。これは 現代的な能力を持っていて、 特にRESTf ulサービスやJSONへの対応、新たなセキ ュリティ対応などの面でとてもよい進化 をしています。しかし、これまで系譜を 乱すことなく進化を続けてきたEEですが、 8の先はよりNimble(ページ下参照)に 対応し、プロセスを柔軟にすることが求 められています。 例えばライセンス許諾の流れ。これま でベンダー各社は我々にライセンス許諾 を得てから、アプリケーションサーバー に機能搭載ができるという流れになって いました。このプロセスは、ベンダーに とってハッピーではありませんでした。 仕様策定においてもそうです。Java EE は37の要素で構成されていますが、Oracl eはそのうちの33の要素をリードしてい ます。この事実は多くのベンダーにとっ て懸念であり、Javaのコミュニティにと ってもハッピーではないことでしょう。 そして、これらの事実はパブリックな問 題に発展してしまっていました。ベンダ ーたちはコミュニティのメンバーに、ア ンハッピーであることを表明し、プレス にも伝えています。 IBM、Redhatとの鼎談 我々は、Java EE 8のリリースを迎えた 今、これらの課題に対応する時機が来た のだと考えました。そして、Java EEをオ 今回の移管については、頻繁に“Nimble”(すばや い、俊敏)という単語が使われていた。この件の 意思決定において、いかにその点が重要視されて いたかが推察される Will Lyons Senior Director, Oracle WebLogic Server and Java EE Product Management オープンソースへのコミットと Oracle Cloudが持つ品質への自信 Oracle Cloud - Container Native Application Development [Oracle Special Session #2] Cloudを主軸に据えたOracle社のビジネス戦略について語っていただき ました。その内容は、戦略として実にシンプルで、かつ我々ユーザー にとってメリットの大きい内容でした。これが市場にどのように受け 入れられていくのかということが、今後のCloud業界全体の在り方に大 きな影響を及ぼすのではないでしょうか。 *Mike氏の言う“サーバレス”は主として “FaaS”のことを指していると思われま すが、ここでは氏の表現を尊重しその ままとしています P.19 P.20Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Fn Projectが流行るかどうか、それは FaaSの未来に直結するのではないか
  11. 11. P.21 P.22Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Some Pieces of Advice [Oracle Special Session #3] 機能数が多いアプリケーションにおいて、開発やテストを効率的に行うための アドバイスをいただけますか? Jez HumbleとDavid Farleyが書いた“Continuous Delivery”いう本を知っています か?(*1) その中では、テストの重要性について言及されています。テストと はコミットするたびにすべきものであり、そのために、テストが高速で完了す るような仕組みを持つべきです。重要なのは、継続的なテストをやめてはなら ないということ。そのためには自動的にビルド、デプロイする環境をもつこと が重要となります。これはJSFやプレゼンテーション層だけの話ではなく、アプ リケーション開発全般において言えることです。 Continuous Deliveryを導入す ると、何か問題があったときにすぐその直前の状態に巻き戻せます。それが非 常に重要です。また、同種の手法は他にもあります。例えばcanary releaseと呼 ばれるもの(*2)。こういったDevOps開発手法(*3)はいろいろありますので、 開発チームに合ったものを選定して適用すべきでしょう。 JavaScriptを自前で開発することに対するメリット・デメリットなどをご教示く ださい。 PrimeFaces(*4)などのコンポーネントは便利ですが課題もあります。例えば、 PrimeFacesはSpecificなバージョンのjQuery(*5)を持っています。異なるコン ポーネントライブラリがまた別のバージョンのjQueryを持っていた場合、コン フリクトを起こしてしまう原因となります。自前で開発したJavaScriptの場合、 そういった問題を孕まないのがメリットです。また、多くのJavaScriptを開発す るならOracle JETという当社のツールをおすすめします。用いることで非常に簡 単に実装できるためです。 プレゼンテーション層のパフォーマンスをあげるには、どういったアプローチ をすべきでしょうか? EL式を少なくすべきでしょう。あれはとてもヘビーウェイト。なぜなら、EL式 は非常にダイナミック(動的)だからです。 将来的なJava EE 8への移行に備えるには、アプリケーションをどのような構造 にしておくべきでしょうか? CDIを活用しておくことでしょう。あの技術はJAX-RSやJSFの統合にとても良い です。CDIでの依存性注入を活用した構造にしておくことが、Java EE 8対応準 備の重要なポイントとなります。 Ed Burns, JSF Spec Lead, Oracle OracleのCVC特設会場。関係者のみ が入場できるスペースで、プレハブ のように建てられた会議室が特別セ ッションの舞台となる。 このセッションでは特定の技術や製品について説明いただくのではな く、こちらから持ち込んだ質問に対し一問一答で答えていただきまし た。出てきたのはアプリケーション品質に直結する具体的なアドバイ スばかりで、どれも今後の開発に役立ちそうです。 Continuous Deliveryの重要性 ―― Ed PrimeFaces の問題点 ―― Ed EL式に注意 ―― Ed Java EE 8移行への準備 ―― Ed *1:Continuous Delivery 継続的デリバリー(CD)と呼ばれる DevOps開発手法のひとつ。コード修 正の発生時に、自動でビルド、テス ト、さらに環境配置までを実行する というもの。 *2:Canary Release(カナリアリリー ス) 炭鉱で有毒ガス発生を検知するため にカナリアを用いていたことからネ ーミングされた開発手法。新しいサ ービスなどを一部の特別ユーザーだ けに先行公開するというもので、問 題発生時にはそのユーザーの権限を 一般ユーザーと同じに戻すことで、 すぐに復旧作業を行えるというメリ ットがある。 *3:DevOps開発手法 開発 (Development) と運用 (Operatio ns) を組み合わせた用語であり、開 発担当者と運用担当者が連携して協 力する開発手法を指す。主に、アプ リケーションのビルド、テスト、リ リースを迅速かつ頻繁に行うために 用いられる。 *4:PrimeFaces JSF用のリッチUIコンポーネント集の こと。パスワード入力ボックスやエ ラーメッセージ表示など、様々な部 品が用意されているので、開発者が 各自で作り込まなくとも見栄えのす る画面が構築できる。 *5:jQuery Javascriptのライブラリ(作り込んだ 機能を他者も利用可能な状態にして まとめたもの)のひとつ。利用者は、 短い実装で様々な機能が利用できる。
  12. 12. JAVAONE SESSION P.23 P.24Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  13. 13. #7 独立したケースのみとせよ 機能変更やテストの速度向上の ために、一部のケースを削除す ることもあるでしょう。それら を素早く、ミスなく、容易に実 現するために各ケースは独立さ せなければなりません。 #8 診断用データを用意せよ アサーション(注:テストコー ドに埋め込み調査を容易にする メッセージ機能)や環境情報を 活用すべく準備します。デバッ グをシンプルにするためです。 #9 環境情報は外出しせよ テストは環境に依存させず、持 ち運び可能にしなければなりま せん。ポート情報、IPアドレス、 ファイルパス、DB接続情報な どは、テストケースといえど実 装に組み込んではなりません。 プロパティファイルやモックオ ブジェクトを活用しましょう。 #10 無関係な出力は避けよ 多すぎる出力物は混乱を招く元 となります。何事もなく通過し たことそのものが、テスト成功 の結果なのです。 #3 スモール&シンプルにせよ 各ケースを独立させるためにも、 それぞれは小さく、シンプルに。 そのためにも、必ずロジックと セットアップは分けます。 #4 1要素のみテストせよ 1シナリオにつきテストはひと つにします。なぜなら、なぜフ ェイルしたかを明らかにすべき であるからです。それこそが、 迅速なデバッグを可能にします。 #5 速いテストのみ実行せよ 単体テストは可能な限り繰り返 すべきです。それにより、プロ ジェクトが進行する中でも全体 の品質レベルを保つことが可能 となります。そのためには、実 行に一晩かかるようなケースで はなく、すぐに完了するケース としておくことが重要です。 #6 絶対の再現性を保て すべてのテストは信頼できるも のでなくてはなりません。フェ イルしたが、それがどのように 発生したか再現できないテスト は頭痛の種となり、価値がない どころかリソースの無駄です。 #1 まず事前に考えよ 偉大なテストを始めるために必 要なこと。その第一ステップは、 いきなりテストを始めるのでは ないということです。「何をテ ストするのか」そして「なぜテ ストするのか」を事前に考える ことから始まります。 そのためには、テストを単体⇒ 結合⇒業務テストのように小さ い順に考えることは適しません。 まず業務テストとして何があり、 それをブレイクダウンしていっ て結合・単体テストに落とすと いう順に考えるべきです。 #2 わかりやすいケースにせよ わかりにくく作ろうとする人は いませんが、わかりやすく作れ ていないケースは散見されます。 「わかりやすさ」にはいくつも の視点があります。「文章がわ かりやすい」ことはもちろんで すが、「このテストの結果何が 期待されているのか」や、「こ のケースで何が診断されるの か」といった意図の面。そして、 「どのようにすればデバッグで きるか」という解析の面でもわ かりやすいケースにしなければ なりません。 極めてシンプルな、しかしなかなか徹底できないテストの掟について、 わかりやすくまとめられたセッションです。経験の長い方はあらため て初心に返るために、若手の方は基礎を知るために、ぜひこの記事で TIPSを確認してみてください。 “偉大なテストケース”に必要な 10のシンプル・ルール Ten Simple Rules for Writing Great Test Cases Stuart Marks, Oracle Steve Poole, Developer Advocate, IBM [JavaOne Session #1] P.25 P.26Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  14. 14. “RESTful API” のつくりかた Effective design of RESTful APIs Mohamed Taman, Enterprise Architect / Innovation & R&D Sr. Manager, e-Finance [JavaOne Session #3] マグカップなどの身近な例をもとに、APIデザインの進め方をわかり やすく教えてくれるセッションでした。あなたは、関連サブシステム とのIFを適切に定義できている自信はありますか?ぜひ、このまとめ で手順を再確認してみてください。 APIファーストの精神 APIについて考える際、前提と として最も大事なのは、「APIフ ァースト」で考えること。それに より、新しい技術の利点を活かせ るだけでなく、価値のある成果物 を生み出せるので、チームメンバ ーも活性化できます。 価値のあるAPIを作るための 5ステップ 価値のあるAPIを作る為のプロ セスは、5つに分解できます(写 真(上)参照)。ひとつずつ解説 しましょう。 ①関係者を特定する。関係者ひ とりひとりをとらえる必要があり ます。彼らは誰なのか、組織内 部・外部どちらの人間か、どうい う存在か、簡単な説明も必要です。 ここからは、コーヒーショップの 例で説明していきましょう。 あなたは店の常連客です。他に マグカップのハンドルは すばらしいAPI RESTful APIの効果的なデザイ ン。それを語る上で初めに述べた いのは、「APIデザインは難し い」ということ。どの機能をAPI として公開するのか、公開する最 良の方法は何か、公開したらどの ように改善のアプローチをとるの か。考えるべきことはたくさんあ ります。そして何より、使う側に とって使いやすく、わかりやすく、 無駄がない姿を追求しなければな りません。 よいAPIデザインというのは、 身近にたくさんあります。例えば、 マグカップのハンドル。これはコ ーヒーと我々をつなぐ、実にすば らしいAPIです。この形状により、 コーヒーが熱くても影響なく持つ ことができます。握るのも簡単で す。そして、何の説明がなくても 誰もが使うことができるでしょう。 これこそがAPIの理想形です。 APIを作るための5つのス テップは左記のとおり。 これらはウォーターフォ ールのように一方通行で 進めるのではなく、前後 に進んで戻ってを繰り返 しながらブラッシュアッ プするのがよいとのこと。 ト化する」「商品を参照する」 「商品を検索する」「商品を追 加・変更する」などがリソース定 義としてあげられます。(b)次に、 aの整理をもとにHTTPアクショ ンに紐づけましょう(詳細は写真 (下)参照)。(c)そしてそれぞ れのリソースを「独立タイプ(単 体で存在できるもの)」、「依存 タイプ(親がいないと存在できな いもの)」「リソースとリソース を結合するもの」に分けます。 ⑤APIを検証する。最後にする のは、まず各リソースのアクショ ンを付箋に書き出し、それを並べ て各アクションを関連付けしまし ょう。そして俯瞰し、欠けている 要素があればそれを書き加えた付 箋を足します。 以上がAPI定義の手順です。 REST、そしてHTTPは価値のある ものですが、適切に活用できなけ れば効果が出ません。あなたの APIがすばらしいものになること を祈っています。 いるのは、レジ係、バリスタ、他 の客などですね。関係者はこれで 特定できました。 ②関係者の活動を特定する。常 連客のあなたは、(a)コーヒーを オーダーし、(b)できあがりを待 ち、(c)コーヒーを受け取るでし ょう。これは活動です。 ③活動を詳細化する。(a)あな たはレジ係とともに、オーダーを 完成させます。すると、(b)レジ 係はバリスタにオーダーを投げ、 (c)バリスタは受け取ったオーダ ーをキューに追加します。そして、 (d)完成したコーヒーをあなたに 渡すでしょう。 ④APIを定義する。ここからは オンライン書店に例を換えて説明 します。APIを定義する際の手順 は、ここでさらに3つのステップ に細分化されます。(a)リソース ごとの活動定義。商品リソース、 カートリソース、注文リソースな ど様々ありますが、それぞれ定義 します。商品なら、「商品をリス [JavaOne Session #2] Q. A. Q. A. Q. A. HTTPのアクションはGET、 POST、PUT、DELETEの4 種類。整理したリソース の活動に対応するアクシ ョンを整理していくのが、 API定義をする上で欠かせ ない手順となる。 あなたが知りたくて、でも 誰にも聞けなかったこと Everything You Ever Wanted to Know About Java and Didn’t Know Whom to Ask Speakers:Java Champions, open source developers, JCP experts, JavaOne speakers, and others 第一線で活躍するJavaのエキスパートがずらりと並び、その場で質問 を受けて答える怒涛のセッション!45分という限られた時間で答えた Q&Aの数は全29個。具体的な内容まで踏み込まれたものは一部でした ので、ここでは選りすぐった回答をご紹介します。 P.27 P.28Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) (左上・左下)その場で観客に質問を 募集し、テキストで内容を書いていく という極めてインタラクティブなセッ ション。“JavaとCはどちらが速い?” という意地悪な(?)質問もあり、会 場から笑いが起こった (右上)その場で質問に答えるのは、 JCPのエキスパートやオープンソース の開発者、Javaチャンピオンなどの 錚々たるメンバーたち 他言語と比較した場合のJavaの優位性とは? まず、Write Once, Run Anywhereであること。加えて、一般的な アプリケーションからIoTまで、ひとつの言語を学ぶだけで多種 多様な開発が行えるということ。さらに、最も人気のある言語な ので、検索すればたくさんの資料が見つけられるということ。 Java EEの未来はどうなる? ご存知の通りJava EEはEclipse Foundationに移管される。それに よって起きるのはポジティブな変化だ。プロセスはオープンにな り、Java EEにはより革新的な進化が続くだろう。なぜなら、こ こにいる我々全員がそこに強い興味を持ち続けるからだ。 Javaはもう古い言語か? Javaはこれからも進化し続ける言語だ。Project Panama、Loom、 Valhalla、Amberと様々なプロジェクトが立ち上げられ並行開発 されている。リリースサイクルも変わり6ヶ月ごとにその新しい フィーチャーを使うことができる。進化してるでしょ?(笑)
  15. 15. JShell RubyやScalaなど、多言語では標準で ついている“REPL(対話型評価環境)”。 JavaでもついにJShellというツールが 導入され、その環境が使えるようにな りました。REPLとは、プログラムを 読み込み(Read)、評価し(Evaluat e)、表示(Print)、これを繰り返す (Loop)。の略。なんだか難しそうで すが、要するに、コマンドラインで一 行ずつJavaを書き、一行ずつ実行でき るというツールです。以下に例を示し ます。jshell>というのがコマンドプロ ンプトで、例では2回実行しています (まず変数に文字列を入れ、次にその 文字列を出力)。開発者の利便性向上 に貢献するでしょう。 ツールの主な変更点 jshell> String str = “test msg” str ⇒ “test msg” jshell> System.out.println(str) test msg 言語仕様(細部)の主な変更点 “核”への主な変更点 Javadoc Next Java実装からHTMLを生成するJavadoc。 これまではHTML4で記述されていま したが、9からHTML5に対応すること に。また、検索窓が追加され、利便性 が大幅に向上します。 Java9、言語とツールは どう進化したか JDK 9 Language, Tooling, and Library Features Joe Darcy, JDK Engineer, Oracle [JavaOne Session #4] Java9(JDK9)の主な変更点をざっとまとめました。細かいも のは他にもあるものの、これさえ知っていれば9の知識として まずは十分だと思います。ここではセッション内容の範囲を超 えた解説も加えながら、ひとつひとつを紹介します。 一行ずつ実行できるのでちょっと した検証も簡単。その手軽さから、 教育分野などでの利用者も多い クロスコンパイルの新ポリシー javacコマンドによる、過去のバージョ ンをターゲットにしたコンパイル(= クロスコンパイル)には、“one plus three back”というポリシーが導入され ました。対応可能なのは現ver + 3ver 前までとなります。 右上が検索窓。結果をtypeと memberで分けて表示するなど、 細かい気配りも効いている コレクションへの値設定 of()というメソッドが追加されました。 これにより、冗長的だったコレクショ ンへの値設定をまとめて行うことがで きるようになります。 モジュール化:①実装方法 “Project Jigsaw”と呼ばれていたモジュ ール化がついにJava 9で導入されまし た。モジュール化とは、「そのクラス がどのクラスと関係しているか」を、 より厳密化できる仕組みのことです。 これが一体どんなものかをイメージす るには、実装方法から見るのが良いで しょう。モジュール化対象とするクラ スはこれまでと変わらない書き方で実 装するのですが、アプリケーションの ルートディレクトリにmodule-info.java というファイルを作成して配置する点 が異なります。 module-info.java(公開側) 上記は、com.example.helloというパッ ケージをsampleserviceというモジュー ル名で公開するという記述です。 そして利用する側もmodule-info.javaを 配置し、以下のように書きます。 module-info.java(利用側) これでsampleserviceを利用できるよう になります(なお非公開のモジュール 名を書くとコンパイルエラーとなる)。 モジュール化:②効果 公開範囲を明確化することで、これま であいまいになりがちだった各クラス 間の依存関係が明確化できます。さら に、標準ライブラリも含めて、必要な モジュールだけを組み込んで動かせる ようになるため、ランタイムのサイズ を軽くできます。個々のサービスが小 さく数が多いマイクロサービスに適し た変更点と言えるでしょう。 内部APIが利用不可に モジュール化導入にともない、JDKの 標準ライブラリそのものもモジュール 化され、公開範囲が明確に指定される こととなりました。その結果、ほとん どの内部APIはアクセスできなくなり ます。なお、代替APIの提供が未完の ものは当分の間利用可能とのこと。 モジュール化は必須ではない なお、後方互換に優れたJavaという方 針通り、従来の構造で実装し続けるこ とも可という点も覚えておきましょう。 List<String> list = new ArrayList<>(); list.add("val1"); list.add("val2"); Map<String, String> map = new HashMap<>(); map.put("key1", "val1"); map.put("key2", "val2"); 従来の実装 List<String> list = List.of("val1", "val2"); Map<String, String> map = Map.of("key1", "val1", "key2", "val2"); String コンパクト化 Stringクラスの内部仕様を変更し、メ モリ効率を向上させたとのことです (中身の変更のみであるため、我々が この変更を実装時に意識することはな い)。これまで全ての文字を一律2バ イト文字(char[])で扱っていました が、大半の場合1バイト文字で足りる ことが分かっていたため、半分が無駄 になっていたといいます。今回の変更 により、1バイト文字/2バイト文字と しての管理が適切に使い分けられるよ うになったとのこと(注:ネット上の 開発者情報では、むしろ遅くなったと いう報告も見られ、どのような効果が 出るかは現時点で未知数のようです)。 今回でいうと9 + 8,7,6までが範囲 となる(さらに6は非推奨) 新実装。一度に値を設定できる Applet API 非推奨へ ひとつの時代が終わります。一時期ま ではそれなりに存在感を持っていた Appletですが、ついに9で非推奨となり ました。実態として多くのブラウザで 稼働しなくなりつつあり、時代の流れ に 沿 っ た 対 応 と 言 え る で し ょ う (Appletがどんなものかという説明は 今さらなので割愛)。 ・java.applet.AppletStub ・java.applet.Applet ・java.applet.AudioClip ・java.applet.AppletContext ・javax.swing.JApplet 今回非推奨となるApplet関係の クラスは上記の通り P.29 P.30Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) module sampleservice { exports com.example.hello; } module sampleclient { requires sampleservice; }
  16. 16. OPENWORLD K E Y N O T E P.31 P.32Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  17. 17. Oracle OpenWorld Keynote - Larry Ellison “自律型DB”その威力 Oracle Database 18c。Oracleが世界初の自律型DBとうたうそのデータベースは、DBAの仕事内容を大きく変える可能性を秘め た、新しいデータベースでした。恒例となったAmazonへのDisrespectとともに、そのデータベースの革新性に触れてください。 No Human Labor, No Human Error 自動走行車は安全です。なぜなら、 人の手の介入がないから。システム において、人の手の介入があるとい うことは、ミスが入りこむ余地があ るということです(No Human Lab or, No Human Error)。 Oracleはこれをデータベースで実 現しました。Oracle Database 18c。 これは世界初の“自律型DB”です。シ ステムの世界における脅威とはサイ バー犯罪の観点、特にデータを盗ま れること。その際はセキュリティホ ールが狙われます。自律型DBは、 自動でそのパッチを施します。その 脅威からデータを守るために。 サイバー犯罪が狙う"隙間"対策 通常、パッチ適用にはシステムを 止めなければなりません。だから、 セキュリティ懸念を発見した直後で はなく、少し期間を置いてから対応 をします。その隙間こそが狙われる。 自律型DBであれば、自動で、即座 に実行できます。ヒューマンエラー “AWSに比べ半額”を契約に盛り込む その上、Amazonのクラウドは高 額です。我々のシステムを使えば、 Amazonの半額で機能が実現できま す。今日この場で約束しましょう。 我々のシステムなら、Amazon AWS より半額になる、それを契約書の中 に盛り込むことを(ここで拍手喝 采)。我々はそれだけ自信があるの です。 自動化がもたらす真の効果 自動化することで何が起きるか。 システムにとってよいことはもちろ んですが、データベースプロフェッ ショナルにとってもそれは同じです。 彼らの仕事は減りません。むしろ増 えるでしょう。バックアップなどの 日常的に行っていた作業はなくなり、 その分、データベースのデザインや、 アナリティクスに時間を費やせるよ うになります。それは、より生産的 な時間の使い方になるでしょう。そ してそれこそが、我々の望んでいた ことです。 Larry Ellison, Chief Technology Officer, Oracle が入り込む余地もありません。 自動で行えるのはセキュリティ対 応だけではありません。プロビジョ ンやシステムアップデート、チュー ニングも自動です。 自動で行えるため、稼働率も上が る。このシステムは99.995%の稼働 率を誇ります。この数値は、年間の ダウンタイムが30分未満であること を意味します。とても短い時間です。 Amazon AWSとの違い 他社もこういった数値を出してい ますが、それらには必ず例外が含ま れています。Amazon AWSの契約条 項をお見せしましょう。この通り例 外が書いてあります。稼働率保証に おいて、システムがダウンしている 時間は除外、Amazonのメンテナン ス時間も除外、地域の停電時間も除 外、ソフトウェアのバグによって起 こった時間も除外...99%を超える保 証をうたっていても、必ずこういっ た例外が書かれています。我々の契 約にそれらの文言はありません。 P.33 P.34Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) 昨年に引き続きAmazon AWSを痛 烈に批判。今年は出典を明記した 上で契約条項にまで踏み込む 自律型DBを使うことで、DBAは よりInnovativeな仕事に時間を使 えるようになると力説
  18. 18. ①群衆 - ビッグデータ - オープン コンテスト 俳優業のかたわらで続ける クリエイター支援 俳優業を辞めたことがあるんです。 大学に進学するために。でも、実際 には通ったのは“20分”でした。その あとまたすぐ俳優に戻りたかったん ですが、現実は厳しく、もう仕事は なかった。そこで“HITRECORD”とい うサービスを立ち上げました。オン ラインで人とつながり、クリエイテ ィブなことを一緒にできるという事 業です。立ち上げはもう10年前にな りますが、その間、本を出したりTV 番組を作ったり...エミー賞をとった 作品もあります。 そんな経緯もあり、わたしはイン ターネットが好きです。この発明の おかげで、いいことがたくさんあり ました。 しかし、今のネット文化の中では、 コンテンツ作成における大きな制約 が存在しています。 インターネット上の クリエイティブを縛る3要素 キーワードを挙げましょう。1つ 目は“群衆(crowd)”。群衆はパワーが あります。“ビッグデータ”と呼ばれ る 統 計 に よ り 、 た く さ ん の 人 が “いいね”をはじめとするインターネ ット上の行動により数多くのデータ を提供し、企業はそれを活用してい ます。でも、その中の多くの人たち は、自分がデータを提供しているこ とを知らないかもしれませんね。 また、群衆が参加する“オープン コンテスト”。ランク付けですね。 インターネットでたくさん見られる 手法です。あるテーマに対し募集が あれば、誰でも参加できます。誰も が平等です。でも、彼らは“競争”を しており、“協力”しているわけでは ありません。ある人の良いアイデア は、別の人には障害になることがあ るからです。 “幻となった” OpenWorld Keynote ビッグデータに価値はない ジョセフ・ゴードン=レヴィット。映画“スノーデン”などで知られる俳優が、最終日のOpenWorldキーノートに登壇。その内容は、 「データが未来を創る」と断言したIntelのJavaOneキーノートや、そのデータ分析能力を喧伝したOracle Analytics Cloudのプレゼン を真っ向から否定するテーマで、聴講者に衝撃が走る講演でした(そして、OpenWorldのキーノートは全てYoutubeにアーカイブさ れていますが、唯一この講演部分のみ存在しなかったかのように除去されています)。あまり知られていませんがクリエイター支 援者としての側面を持つ氏の経験から語られるその内容は、エンジニア畑でないからこそ見える、インターネットの未来を予見し た貴重な講演でした。長めの文章ですが示唆に富む内容なので、ぜひ多くの方に読んで頂きたいと思います。 次のキーワードは“フリーカルチ ャー”。何でもタダになりました。 その最もいい例はGoogle検索でしょ う。わたしたちは無料で多くのコン テンツやサービスを使うことができ ます。 しかし、それらは本当にタダなん でしょうか?Web上では広告による 収益モデルが普及しており、そして それは、コンテンツの作者でない人 にお金を届けています。音楽業界は それが原因で衰退しました。 最後のキーワードは“ソーシャル”。 これは、コンテンツを生み出しませ ん。コミュニケーションのためだけ に消費されるものです。インスタグ ラムの写真、いくら“いいね”がたく さんついているものでも、そんなに 長い時間見ないでしょう? “群衆”、“フリーカルチャー”、 “ソーシャル”。この三本柱が変わら なければ、インターネット上でのク リエイティブに支障があるままです。 これまでの制約を打ち消す、 代替の3要素 これらのキーワードを打ち消す3 つの要素があります。これはわたし が単に想像したことではなく、HIT RECORDで実際に経験して学んだこ とです。 まず1つ目、“群衆”を打ち消すの は“コミュニティ”です。大事なのは “ビッグデータ”のように人を“数”で 計るのではなく、“個”で見なければ なりません。何かを調査したいとき、 “いいね”の数を計算しても、深いこ とは何もわからないのです。うちの HITRECORDについては、ビッグデ ータには何もヒットしないでしょう。 つまり、ビッグデータでHITRECOR Dの活動は復元できないのです。 また、群衆が参加する“オープン コンテスト”に対立するのが“リミッ クス”。例えば、ハンバーガーの絵 を誰かが描いたとしましょう。する と次に、それをアニメにする人がい ます。最初の作者が考えもしなかっ たことを、別の誰かがクリエイトす る。これが“協力”です。これは、イ ンターネット以前にはできませんで した。 2つ目。“フリーカルチャー”の文 化には、代わりに“正当報酬(fair compensation)”を提案します。我々 は、リミックスに参加した人たちに 対し、報酬を支払っています。 その金額は6年間で200万ドルになり ました。そして、その間の訴訟は0 件です。 3つ目の“ソーシャル”に対しては、 “コラボレーティング”です。人々は 単につながるのではなく、共通の目 標に向かっていくことが大事です。 HITRECORDはそうしています。例 えば、“クリエイティブチャレンジ” と呼んでいる制度があります。写真 や文章などさまざまなコンテンツに ついて、誰もがプロジェクトを発行 し、資金調達を含めた作品制作が行 える仕組みです。 インターネットは、 もっと“大人”になるべき 今日の話の最後に、そのプロジェ クトの事例紹介として、ひとつのシ ョートムービーを紹介しましょう。 “今夜初めて見た星”という名の作品 です。ある日投稿された日記から脚 本が作られ、ディレクションされま した。そして演じる俳優が集まり、 イラストレーターは動画に重ねる絵 を描きました。さらにコンポーザー が作曲し、ミュージシャンたちが演 奏した音楽も加えます。こうしたプ ロセスを経て作り上げた作品は、ハ リウッドでは真似できないような出 来栄えに仕上がりました。 今回取り上げるのは映像作品です が、クリエイティビティというのは 芸術分野だけではないでしょう。例 えばジャーナリズム。優秀なブロガ ーはたくさんいます。教育はどうで しょうか。競争ではなく、コラボさ せてはどうか、それもクラスの中で はなく世界中と。わたしはここで強 調して言いたいんです、インターネ ットがそういった存在であればと! そのために、オンラインコミュニテ ィはもっと“大人”になるべきなので す。そして、それこそがわたしのお 伝えしたかったメッセージです。 ジョセフ氏が壇上を去った後、講演の 最後に流れたのは、日記の投稿をきっ かけに作られたというショートムービ ー。3分弱で終わるごく短いストーリ ーの中では、視覚障害を持つ少女が父 のくれた赤外線カメラで初めて星を見 るまでの過程を描いている。俳優とイ ラストが融合したその映像は、マスに 向けた商用映画などにはない手作りの 味わいが感じられる仕上がりとなって いた。少女が見た星空がどのような景 色だったかは、ぜひ皆様にも実際にご 覧いただきたい。タイトルで検索する か、以下のURLから視聴可能 https://www.youtube.com/watch?v=nX5 iuHnLlX8 “FIRST STARS I SEE TONIGHT” (今夜初めて見た星) ②フリー カルチャー ③ソーシャル ①コミュニティ - 個人 - リミックス ②正当報酬 ③コラボ レーティング 氏の講演は負の要 素と正の要素を完 全に対比構造とし てとらえ、説明し ていた。図で示す と右記の通り インターネット上のクリエイティブ、これまでとこれから これまで これから P.35 P.36Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  19. 19. Ending P.37 P.38Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社)
  20. 20. the Ambience of San Francisco Ed Bunrsと対面。用意 していた質問のうち、 一つ目は細かい話すぎ たのと緊張でなかなか 伝わらず、冷や汗...。最 終的には理解してもら えたものの、業務に寄 り過ぎた内容でFW視点 ではないから回答でき ないとばっさり。めげ ずに二つ目の質問をし たところ、そちらは伝 わって一安心 Mike Lehmann(左)と Will Lyons(右)とも隣 でしっかり相対し、質 問の時間をいただけま した 毎 年 恒 例 、 世 界 各 国 J a v a コ ミ ュニ ティ の 方々のコラボ寸劇。今 年 は マ ト リ ッ ク ス ! Kang-Fu Masterとして 日本からはOracle伊藤 敬さん、Java女子部横 田さん、Javaチャンピ オン桜庭さんが登壇。 次々出てくるJavaジョ ークに会場は大受け 桜庭さんと寺 田さん、二人 のJavaチャン ピオンに囲ま れて写真撮影。 感無量すぎる 完全自費でプライベートと して参加したというOracle 伊藤智博さんとselfie!!(ピ ースサインしましょうと言 ってノリで強制させてしま いました...快くやってくだ さる伊藤さんに感謝) The Chainsmokersのライブにも無 料招待。映像効果がすごく、空一 面に雷のようなレーザービームが。 写真にうまく写らないのが残念! 今年も出てます Oracleショップ。 書籍は当然すべ て英語 ランチは無料配布されています。 味は...しかし、セッションがツメ ツメでお昼に行く時間もとれない ため、あるだけでありがたい! 月曜夜はJC P メンバーが参 加できるパー ティへ。会場 はこんな感じ でめちゃくち ゃ混んでます 会場のトイ レをふさぐ Duke 外はこんなで す。暑そうで 意外と冷える 02:JCP Party 01:Special Sessionの裏側 IBMセッションの最後は皆で 記念撮影!(一部の方が帰ら れたあとだったのが残念!) 03:会場の様子 当社のアーキテクチャ説明を 真剣な面持ちで聴くスペシャ リストの面々 企業ブースはたく さん出展されてま す。JavaやDukeの グッズ(バッグと か栓抜きとか)が いろいろ無料配布 されていました 04:余興 05:グルメ 物価は高めですがおいし いものがたくさんあるサ ンフランシスコ。今年は やわらかいステーキとカ ニをいただきました! P.39 P.40Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) 本編に入りきらなかったエピソード、ここで一気にお見せします。現地の雰囲気を感じてみてください! 一部の写真は公開 NGとなったため マスクしています
  21. 21. P.41 P.42Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) Oracle OpenWorld / JavaOne 2017 REPORT | 取材・構成・文:西野大介(SOMPOシステムズ株式会社) SEE YOU NEXT YEAR!! (写真は同行させていただいた浦川社長と、帰国前夜ホテル前にて)

×