2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JJUG CCC Fall 2015

Posted at

Keynote2 - Java EE 8 Work in Progress -

Java EE 8 のテーマ

  • HTML5のサポート
  • 開発容易性
  • クラウド対応

けっこう開発が進んでるものもあるし、イマイチなのもある
特にWeb層の拡張はけっこう進捗進んでる

Java EE8でHTML5サポートするのは自然な流れ

追加フィーチャー

JSON-B 1.0

Java ObjectをJSONに変換するAPI
JacksonとかGsonあるから再発明するわけじゃない。
ベストプラクティスの開発。
Gsonとかの上に乗っかって動くもの。好きな物使えばいい。
デフォルトマッピングを提供する。

JSON−P 1.1

Java EE7から入ってるやつのアップデート
JSON-Pointer IETF RFC6901

JsonCollectors
JsonArray

Server sent Events

JAX-RSのAPIで実装した
リファレンス実装のJerseyがすでにSSEをサポートしてたから

MVC

コンポーネントベースのMVC

JCache

グレッグ
HazelCastのCEO

キャッシング入門

キャッシュとは、キャッシュを使ってない人は使うべき、使ってる人はもっと使うべきもの。

キャッシュの利点

  • パフォーマンス
  • オフロード
  • スケーラブルではないアーキテクチャでも重要
    • メインフレームとか
  • スケールアウト

ブラックフライデーみたいな一時的な負荷に備えて一時的にキャッシュ用のノードを追加する
クラウドでデータグリッドを実現

JCacheはこれらを迅速に可能にする技術

いつキャッシュを使うのか

  • アプリケーションが同じデータに二回以上アクセスするなら使う価値がある
  • データベースにフェッチするよりかは遙かに早い

どんなところに使うか

  • Webアプリケーション
  • ネットワークにまたがるRESTfulなシステム
  • ゲーム会社とかみたいなところに有効
  • オブジェクトはグラフ構造になっているので、100TBとかになっても有効
  • データの永続化

データベースキャッシング

複数アプリ→一つのDBな例

従来ならこれをスケールすることは難しい

NoSQLとかを採用しなくても、キャッシングだけでも相当な効果がある

キャッシュはRAMに構築

典型的な例では、JVMのヒープ領域を使う
→GC対象

フレームワークには色んなものがある

Amdahl

キャッシングについて

問題点

スタンドアロンキャッシュをやめて、分散キャッシュにする
Immutableなデータなら移行は安全

JCache

完成した
12年かかってできた

コンセプト

Map vs Cache API

どちらもキーバーリュー

ChacheManager=データベースみたいなもん
Cache=テーブルみたいなもん

Spring

SpringはアノテーションでJCacheを色々使えるようになってる

Hazelcast JCache Support

  • フル実装

Reactive Web Application - そしてSpring5へ

アムダールの法則

ブロッキングIOは悪

今でもとりあえずブロッキングコード書いてても動いてるしいいじゃん
たしかに今は問題ない

IoTとかMSAでコール数は増えるはず

ブロッキングコード使ってると金がかかる

ノンブロッキング

リアクティブプログラミングはGUIの世界で使われてる

タイムマシン採用 明日のエンタープライズJavaの世界を予想する

タイムマシン経営
最近はそんな時間差もなくなってきた

日本のIT業界も似たような状態ではないか

  • イノベーションスピードの優先 (Web企業)
  • リスクの最小化を優先 (SI系企業)

この二つに技術の時間差があるんじゃないか、という話

全く異なる技術が使われてるわけじゃない。
Web系は試行錯誤してうまくいったのをドンドン進化させる

タイムマシン採用

必ずしも全部がSIに入るって分けではない

採用確実な技術

  • HTML5
  • MSA
  • Java EE7 / Java SE8
  • Docker
  • Chef

エンタープライズ

これからエンタープライズの分野でも分割による再利用をちゃんとやらないと行けなくなってくる

ブラウザ・クライアント環境が増えてきた
これらの変化のスピードが速いため

きしださんの話

CPUをパワーアップさせようという発想する人は今はいない
CPUの性能が頭打ちだから

データ船トリックシステム
Hadoopのコンセプト

処理を行うのはCPUだけじゃなくなる。
じゃあどこ?→GPU

ノイマン型アーキテクチャ
メモリから命令を呼び出して、命令に従って回路で処理を行う

  • CPU
    • 色んな機能がある
    • OSが動くかどうかが基準
  • GPU
    • ちょうたくさんコアがある

非ノイマン型アーキテクチャ
ノイマン型じゃないやつ

  • FPGA
  • ニューラル型コンピュータ
  • 量子コンピュータ

JavaでGPU

ディープラーニング実装してみた

Javaで色々できるか?→足りてない

Close to Metal
→ハードウェアに近づこうと言うアプローチ

Unsafe
けっこう使われてるけど近いうちに廃止される

Specialization

Arrayがやりたい

G1GCの話

G1GC=たこ焼き器

GCログはしっかり取る!

まずはSuvivorに移動
いっぱいになったり古かったらOldに移動
そして回収

G1はけっこうガンガン回る

元々G1はヒープがでかいものに対してできたものなので、ヒープがでかいやつに使え!
ムリせずCMS GC使え

OutOfMemoryErrorが発生したらどうしたらいい?
起動し続けるのは進めない。停止するべき。
OutOfMemoryErrorが発生した場合にHeapDumpを吐き出すオプションを付けとくといい

HeapStats入れるといいよ!

カードって何?
CT=CardTable

懇親会

LTやりました。
GCPUG Shonanのイベントを宣伝しました。
前日なので当然申込はありませんでしたw

でも、LT終わった後二人ほど話しかけて頂けてすごく嬉しかったです。
次回のGCPUG Shonanには参加してください!お願いします!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?