この国では犬が

本と芝居とソフトウェア

JJUG CCC 2014 Fall のメモ #jjug_ccc

JJUG CCC 2014 Fall のメモです。

個人的なメモですが、ブログのエントリになっていると何かと使い勝手がよいので、公開します。

感想については別のエントリがあるので、ご興味がおありの方はぜひ。

これからの Java エンジニアの生きる道

過去最高の参加者数 : 645
SIer(2002) → ベンチャー(2014)
技術の変化による社会の変化
  1. クラウド
  2. 人工知能
  3. Java
クラウド
  • 立ち上げの早さ
  • サービスの成長に合わせたスケールアウト
Docker
  • コンテナ型仮想化を基盤としたアプリケーションの構成管理
  • OS からアプリケーションまでの構成情報をまとめてレポジトリに登録し、配布可能
  • 近い将来、docker で AWSGoogle みたいな乗り換えも容易になる(!)
    クラウドベンダーはデータロックインを狙う?
     →ツール、ミドルウェア、ライブラリの充実
     →(感想)むしろ「移動できるようにする」という戦略もあるのでは……?(誰が言っていたか忘れたけど)

一般企業も、データ活用が用意なクラウドプラットフォームにデータを移行し、大量に蓄積されたデータを人工知能に利用するようになる?

人工知能の 3 フェーズ
  • 認識
  • 意思決定
  • 行動
Watson
  • 銀行がコールセンターへの活用を積極検討中
    →(感想)Salesforce のサジェスト機能とかもそうかな……。

  • 「認識」の精度が上がったため、「意思決定」と組み合わた場合の適用可能性が上がった
    →(感想)「真の人工知能」は「脳の働きをエミュレートするもの」なのか?

JavaOne 2014 のふりかえり
  • 安心して使える堅牢な環境としての JVM
    Java じゃない言語が主流になる可能性も。

  • ビッグデータ・統計解析処理基盤としての JVM

20 年間生き残った Java は 50 年生き残るだろう(COBOL の例がある)

社会の変化は?
  • なくなる仕事、増える仕事
    →デジタル産業は、増える(2018 年に 5 倍に増えるというガートナーの予測)

必要なこと

  • 最新技術への追随
  • グローバル対応(英語など)
  • 熱い心とコミュニティ!

  • 21 世紀は心の時代(井深大
    →Kickstarter の例がある

人は企業とコミュニティが補完しあいながら成長する時代へ

Java: Create The Future

  • Platform
  • Language
  • Library
  • VM

Java is a Community!

many aspects of java / several communities
standard of java
open source
java user group

aspects

Conference

Java Land(Germany, Austria, Switzerland)

  • 2 days / 65 sessions
  • Over 800 attendees
  • Organized by 22 JUGS

London Java Community

  • Simon lives in London

Standards

JCP

  • IBM, …
  • Smaller companies, users(individuals), …

Java 8 Roadshow
Java Evangelism Outreach
NightHacking Tour
New MOOC Course
Virtual Java Developer Days

The community growth continues

About technology

Core platform

Java SE 8

  • Many many publications on Java SE 8!

Big changes

Lambda

  • modernizing Java Language
  • modernizing Java Libraries
  • Biggest upgrade ever to the Java programming model
  • elements of functional programming

Streams

  • a new key Java Library abstraction
  • Convenient way to aggregate operations on sequences
  • Easy way to introduce Parallelism to your applications
  • Compatible with your existing code because of default methods

Performance improvements

  • Fork/Join improvements
  • Faster atomics, concurrent libraries
  • Faster optimizations

Security

Enterprise requirements

Java SE roadmap

2014

2015

  • 8u40
  • 8u60

2016

Modularity - Jigsaw Improving performance and security JDK 9 + YOU, DOWNLOAD TODAY

Java ME(Micro Edition) 8

Java ME 7 was complicated

  • CDC / CLDC のいずれも、Java SE 7 とはベン図で少ししか重なっていなかった

Java ME 8

  • many overlaps in APIs
  • Language now is subset of Java SE 8!
  • easier for Java developers to use

Java Embedded is adopt rapidly today
because Java runs well in micro devices(like desktops / servers in 90's)

Java EE 7

  • many publications again!
  • community contributions again

Open JDK

  • Date and Time API is from Open JDK

JCP の参加プロセスをシンプルにして、個人で参加しやすくしようとしている
Open JDK , GlassFish への contribution もよい

Java が見るニュータイプの夢

だいたいスライドとブログのエントリ見たら思い出せるので省略

KDDI Business ID にみる疎結合 / 高可用を実現するアーキテクチャ

環境
  • 競争市場(クラウド利用→市場環境がすぐに変化する)
  • 信頼性(高可用性、高セキュリティ)
目標
  • アーキテクチャの変更が可能でスケールアウトしやすい疎結合なシステム
  • 高可用性を実現する全 Act - Act 構成
  • 高セキュリティを実現する API セキュリティ

REST API ベースで疎結合なシステムを設計し、実際、Client MVC を一度作り直した。
→いまは backbone.js を使っているが、AngularJS への乗り換えも(必要があれば)可能

Spring Batch を利用して、Act - Act 構成を構築した。

REST API を利用するうえではステートレスが望ましい
Cookie
 →不正取得されて悪用されかねない
→セッション?
 →複数サーバの場合に対応が難しい
→Open ID connect
 →OAuth 2.0 ベース
 →Cookie ではなく、アクセストークン
 →クライアント側にはセッショントークンを渡し、サーバ側でアクセストークンに変換し、認証
 →リフレッシュトークンにより生存時間をコントロール

課題
  • RDB の Act / Sby 構成(スケールアウトに限界あり)
  • Spring Batch と RDB の密結合
今後の取り組み
  • RDB から NoSQL への一本化
  • Spring Batch からメッセージキュイーングへの置換

password is dead
スマートフォンを利用した指紋認証(!)

KDDI Cloud Blog

リクルートにおけるソリューション開拓と実装展開~elasticsearch による検索基盤と新ソリューションの開拓

既存の Solr から elasticsearch への移行
→Solr のクエリをプラグイン内で変換
 →Solr との A/B テストにも使えて便利

ATL における Java プラットフォーム活用

検証
  • Apache UIMA
  • IBM の Watson でも利用
  • LINE 公式アカウント(パン田一郎)で活用
貢献
公開
  • RedPen
  • 自動文書検査ツール
  • フォーマットや可読性についての問題を自動で検査
  • Java
  • 来週から技評で連載開始!

Java エンジニアのためのアーキテクト講座

システム開発に起きている大きな変化
  • 良いアプリケーションの開発→良いサービスの運営

  • エンタープライズ IT の「第三の時代」(デジタル化)

IT サービス運営のモデル v0.1
静的な構造←開発プロセス
     →↓
動的な構成←運用プロセス
↓
サービスの振る舞い→企画プロセス
↓       →↓
利用者の体験価値←業務プロセス

<フィードバック>
IT サービスにおけるアーキテクチャとは
  • IT サービス運営に関わる利害関係者の関心事を整合させた、
  • IT サービスが提供すべき利用者の体験価値を実現するために、
  • IT サービスの構成する要素の分割と関係のことであり、
  • IT サービスがフィードバックを受けながら継続的に成長できることを保証する

アーキテクトは、「アーキテクチャをデザインする」
フレームワークを選ぶ(つくる)」人のことではない

(感想)「個々に独立したサービス」ということと「IT サービス運営のアーキテクチャ」がどう関係あるのか?
    →サービスが小さな単位で独立しているから、業務→企画→開発のフィードバックや運用→開発のフィードバックに対応しやすい?

(感想)「IT サービスの運用モデル」に課題やソリューションをマッピングしながらアーキテクチャを設計するのはなかなかよさそう。

Microservices の落とし穴
ドメイン毎の独自性を強くすると、全体的な保守性が下がってくる可能性が高い

「アーキテクトと名乗らなくても、アーキテクト的な発想はできるし、日常で役に立つはず」

Migration from Swing to JavaFX

Aerosmith

JavaFX = Swing + Java 2D + Java3D + α(JMF、...)

機能
  • ブラウザ
  • アニメーション
  • エフェクト
  • 3D
  • バインド
    Auto Property Synchronization
違い

Structure

Look & Feel

Logic

GUI Parts

  • similar : JLabel / Label、JButton / Button、JTextField / TextField
  • similar but different : JComboBox / ComboBox、JOptionPane / Dialog/Alert(u40 から)
  • different : JList / ListView、JTable / TableView

Layout

  • Container + Layout Manager / Container(including Layout Manager)
    FlowLayout / FlowPane、BorderLayout / BorderPane、BoxLayout / HBox/VBox、SpringLayout / AnchorPane

Async Task

  • SwingWorker / Service/Task
  • doInBackground() / Task#call()
  • done() / Callback Method

FXML は SceneBuilder で
Controller、Model は NetBeansIntelliJ IDEA(SceneBuilder を内包!)、eclipse + efxclipse で

マイグレーション

  • 画面の構造を解析して、FXML に変換する。

おしまい

以上です。