JJUG CCC 2014 Fall のメモです。
個人的なメモですが、ブログのエントリになっていると何かと使い勝手がよいので、公開します。
感想については別のエントリがあるので、ご興味がおありの方はぜひ。
これからの Java エンジニアの生きる道
過去最高の参加者数 : 645
SIer(2002) → ベンチャー(2014)
技術の変化による社会の変化
クラウド
- 立ち上げの早さ
- サービスの成長に合わせたスケールアウト
Docker
- コンテナ型仮想化を基盤としたアプリケーションの構成管理
- OS からアプリケーションまでの構成情報をまとめてレポジトリに登録し、配布可能
- 近い将来、docker で AWS → Google みたいな乗り換えも容易になる(!)
→クラウドベンダーはデータロックインを狙う?
→ツール、ミドルウェア、ライブラリの充実
→(感想)むしろ「移動できるようにする」という戦略もあるのでは……?(誰が言っていたか忘れたけど)
一般企業も、データ活用が用意なクラウドプラットフォームにデータを移行し、大量に蓄積されたデータを人工知能に利用するようになる?
人工知能の 3 フェーズ
- 認識
- 意思決定
- 行動
Watson
銀行がコールセンターへの活用を積極検討中
→(感想)Salesforce のサジェスト機能とかもそうかな……。「認識」の精度が上がったため、「意思決定」と組み合わた場合の適用可能性が上がった
→(感想)「真の人工知能」は「脳の働きをエミュレートするもの」なのか?
JavaOne 2014 のふりかえり
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
- Morocco JUG joins JCP(Java Community Process)
- Active member of JSR 364
- Participating in Adopt-a-JSR
- 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
- JDK 8
- 8u20
2015
- 8u40
- 8u60
2016
- JDK 9
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
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
JCP の参加プロセスをシンプルにして、個人で参加しやすくしようとしている
Open JDK , GlassFish への contribution もよい
Java が見るニュータイプの夢
だいたいスライドとブログのエントリ見たら思い出せるので省略
KDDI Business ID にみる疎結合 / 高可用を実現するアーキテクチャ
環境
- 競争市場(クラウド利用→市場環境がすぐに変化する)
- 信頼性(高可用性、高セキュリティ)
目標
REST API ベースで疎結合なシステムを設計し、実際、Client MVC を一度作り直した。
→いまは backbone.js を使っているが、AngularJS への乗り換えも(必要があれば)可能
Spring Batch を利用して、Act - Act 構成を構築した。
REST API を利用するうえではステートレスが望ましい
→Cookie ?
→不正取得されて悪用されかねない
→セッション?
→複数サーバの場合に対応が難しい
→Open ID connect
→OAuth 2.0 ベース
→Cookie ではなく、アクセストークン
→クライアント側にはセッショントークンを渡し、サーバ側でアクセストークンに変換し、認証
→リフレッシュトークンにより生存時間をコントロール
課題
今後の取り組み
- RDB から NoSQL への一本化
- Spring Batch からメッセージキュイーングへの置換
password is dead
→スマートフォンを利用した指紋認証(!)
KDDI Cloud Blog
リクルートにおけるソリューション開拓と実装展開~elasticsearch による検索基盤と新ソリューションの開拓
既存の Solr から elasticsearch への移行
→Solr のクエリをプラグイン内で変換
→Solr との A/B テストにも使えて便利
ATL における Java プラットフォーム活用
検証
貢献
公開
Java エンジニアのためのアーキテクト講座
システム開発に起きている大きな変化
良いアプリケーションの開発→良いサービスの運営
エンタープライズ IT の「第三の時代」(デジタル化)
IT サービス運営のモデル v0.1
静的な構造←開発プロセス →↓ 動的な構成←運用プロセス ↓ サービスの振る舞い→企画プロセス ↓ →↓ 利用者の体験価値←業務プロセス <フィードバック>
IT サービスにおけるアーキテクチャとは
- IT サービス運営に関わる利害関係者の関心事を整合させた、
- IT サービスが提供すべき利用者の体験価値を実現するために、
- IT サービスの構成する要素の分割と関係のことであり、
- IT サービスがフィードバックを受けながら継続的に成長できることを保証する
アーキテクトは、「アーキテクチャをデザインする」
「フレームワークを選ぶ(つくる)」人のことではない
(感想)「個々に独立したサービス」ということと「IT サービス運営のアーキテクチャ」がどう関係あるのか?
→サービスが小さな単位で独立しているから、業務→企画→開発のフィードバックや運用→開発のフィードバックに対応しやすい?
(感想)「IT サービスの運用モデル」に課題やソリューションをマッピングしながらアーキテクチャを設計するのはなかなかよさそう。
Microservices の落とし穴
→ドメイン毎の独自性を強くすると、全体的な保守性が下がってくる可能性が高い
「アーキテクトと名乗らなくても、アーキテクト的な発想はできるし、日常で役に立つはず」
Migration from Swing to JavaFX
JavaFX = Swing + Java 2D + Java3D + α(JMF、...)
機能
- ブラウザ
- アニメーション
- エフェクト
- 3D
- バインド
Auto Property Synchronization
違い
Structure
- Java / FXML
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 は NetBeans、IntelliJ IDEA(SceneBuilder を内包!)、eclipse + efxclipse で
- 画面の構造を解析して、FXML に変換する。
おしまい
以上です。