Hatena::ブログ(Diary)

えいのうにっき このページをアンテナに追加 RSSフィード Twitter

iTunes(iPod)の再生回数情報を解析、各種ランキング・プレイリストを作成するフリーソフト、「sa-boom!! client」
(旧・CountDown iTunes!!)を公開中!(Win版DLMac版DLWebアプリ開発記録)(last update 2012/02/03(ver 2.4))
私・a-knowについては、「えいのうのいえ - a-know's home」へどうぞ。

2011-07-16

関ジャバカンファレンス2011〜Java SE 7 Launchイベント全国キャラバン〜 発表内容メモ書いた!

f:id:a-know:20110716150828j:image


「書いた」というよりは「書き殴った」・・・という感じですが!取り急ぎ、会場の無線LAN環境をお借りしてソッコーUP!

明日の帰宅後、落ち着いてから細部を直したいと思ってます!7/17 細部修正しました!見づらい部分も多々あるかと思いますが、Usttwitterハッシュタグ#kancon2011)その他の、何かしらの補足となれば幸いだなぁと思ってます! 私用により、僕はこれからクルマで岡山に帰ります・・・!(懇親会、行きたかった〜)




Java SE 7で切り開く新しいJavaの世界について(寺田佳央氏)

  • 岡山で聞いた内容と同じ部分も多かったです、そのときに書いた内容も参照してくだされば!
  • 2011/7/28 Java SE 7リリース(5年ぶり)
  • JAVA SEのリリースの歴史
    • 革命と進化。
    • 7は「進化」の位置づけ、比較的移行しやすいバージョンかと思う。8は「革命」。
  • プロジェクトCoin
    • Javaの言語使用に対する小さな変更
    • 8でもプロジェクトCoinに位置するプロジェクトはある
  • Java、高速化してます!
  • プロジェクトλ(ラムダ)
    • JSR-166ができるまで
      • 1.4までは並列処理の正しい実装は困難
      • 並列処理の実装を容易に
      • マルチコアCPUを有効活用可能
      • Fork/Joinフレームワークの概念
        • 「大きな問題を細かい問題に分割し、分割した問題を個別に解決した後、最後に結果を集計」する・・・という概念
        • ForkJoinPoolの生成とコンカレントスレッドで実行
        • ForkJoinを使う際には、分割する単位がどんどん小さくなっていくと、新たにタスクをつくるよりもシーケンシャルにこなしたほうが早くなるポイントが出てくる・・・そこらへんを見極めながら
  • 普遍性向上
    • ダヴィンチマシンプロジェクト(JSR292)
      • 動的型言語のサポート
        • JRuby,Jython,JavaScript(Rhino)
        • InvokeDynamicバイトコード命令
        • MethodHandleによるリフレクション
          • ReflectionよりMethodHandle・・・でも実際は速度的にはトントン?(「思想的には」MethodHandleのほうが早いw)
    • 今までのJavaプラットフォームと今後のJavaプラットフォーム
      • マルチ言語プラットフォーム化!
  • モジュール
  • Integeration
    • Oracleが有している二つのVMの統合
    • ライセンスの統合
    • フライトレコーダー・・・障害直前数分間が自動的にレコード・・・がプラスで利用可能に(JRockit?)


祝Preview卒業!Google App Engine for Java(小川信一氏)

  • 今年もGoogle I/Oが盛り上がりました
    • 今日はそのI/OでのGAE系の大きなトピックをいくつか紹介
    • Android一色やんけ!
    • 実際はそうではなかった!
    • 今年後半に、ようやく正式リリース!という特大ニュース
      • それ以上にお金のニオイもしましたよ・・・
    • Google様「そろそろ本気出す
  • Google App Engineとは
    • PaaS
    • 既存のレンタルサーバとの違い
    • 特徴、制約
      • RDBMSが使えない。KVSベース。
      • ファイルシステムスレッド・ソケットが使用できない
      • ユーザからのリクエストへの応答は30秒以内・・・など
      • 開発環境でもほぼ全ての機能をエミュレートできる
      • テスタビリティが考えられたSDKが提供され、開発効率がとても高い
    • 使いどころ
      • 自社サイト(静的なサイト)
      • コンシューマ向け自社サービス
        • 特定期間・特定の時間帯のみ負荷がかかるようなサイトには向いてる
      • Google AppsなどのSaaSプラットフォームと連携するエンタープライズ向けアプリケーション
      • 「規模が小さい」業務アプリケーション
        • 社内で使うことを前提としたシステムとか
      • 「規模が大きい」業務アプリケーション・・・?
      • 事例紹介
        • 衆院戦公式サイトとか、ロイヤルウェディングサイト、buyなう、・・・とか
    • プラットフォームの仕組み
    • 開発環境
      • 3言語向けのSDKが提供されてる
      • Java向けにはEclipse用のプラグインが提供されている
      • 開発環境のみでカンタンに動作確認できる
      • Production環境へのデプロイもボタンをクリックするだけ。
      • つまり・・・
        • とにかく開発効率が高い
        • DB等の機能もカンタンに自動テストできる
        • Slim3を使えばさらに強力にテスト環境がサポートされる
    • データストア(DB機能)
      • 分散KVSに分類される「Bigtable」を拡張した「データストア」を使用する
      • スキーマ?そんなのありません
        • データ=KeyとValueの二種類
      • 特定の値の条件でデータを検索する、クエリという概念はない
      • 基本的には複数行に対するトランザクションという概念は存在しない
      • まとめると・・・
        • データを作成したときにインデックスを構築し、それをスキャンして連続する範囲を取得することができる
        • エンティティグループと呼ばれる概念があり、同一グループ内のエンティティ群の範囲内でトランザクションが使用できる。
    • 検索
      • 同じテーブル内の業がどんなフィールドの構成を持つのか、読み込んでみないとわからない。
        • 検索条件がかなり制限される。
          • 不等号を使うフィルタはフィールドひとつにだけ
            • a>10 and b<10・・・できない
          • a like '%topgate%'・・・できない
    • 保存
      • 普通にやると、Atomicに処理できない
      • Entity Group
        • 複数エンティティをグループで束ねる
        • RDBMSではなんでもない処理に対して、2フェーズコミットのような複雑なしくみが必要になってしまう
    • その他の機能
      • TaskQueue
      • Memcache
      • Mail,XMPP
      • URLFetch
      • User
      • Blobstore
      • Image
      • Channel
    • App Engineでのポイント
      • データベースの設計では非正規化を多用する
        • 合わせて整合性を維持する工夫も必要
      • UIの機能も、どれだけ価値を提供できる機能なのか?を今まで以上に吟味する必要がある
        • App Engineだからこそ難しくなるところもある。ページングとか。複数検索条件が入力できる画面とか。
      • リソースをムダに消費したりする、従来の汎用的なフレームワーク等はまず使えない。必要最小限の効率が良い実装を行うことで運用コストを下げる。
      • まとめ
        • 従来の設計パターンそのまま、では通用しない。新しいプラットフォームであることを理解する必要がある。
  • Google I/Oでの大きなトピック
    • Leaving preview
      • 今年後半にpreviewを卒業
      • SLA 99.95%
      • 課金体系の変更
        • 基本値上げの方向で・・・googledevjp 2011 07 app engine faq
      • 3years deprecation
        • Googleが「GAE辞める」と言ってから3年間は保証する
    • Google App Engine for Businessとかありましたが
      • なくなります・・・統合
      • GAE4Bのテスト版を使用してきたエンプラ系の大規模なサービスの実ユーザからの意見では、課金体系の変更などは概ね良好な反応を見せていた
      • 特に3yearsにはよろこんでいた
    • Google App Engine 1.5.0
      • Backends
        • EC2のように、インスタンスを確保できる
          • 通常のs英訳は存在する
        • 処理時間は上限なし
      • Pull task/Push task
        • 非同期処理として、自動的に処理をQueueに積む機能を、AppEngineの仕組み以外の場所で実行可能
      • Go SDK
      • Full-text search
        • 3年前から要望が上がっていた
        • Gmail等の検索と似たような、強力な検索機能
      • The App Monitoring API
        • App Engineの管理コンソールで見ることができるいろいろな値をAPIで取得できる
        • エンタープライズ目的で使うことを考えたら大きなAPI
  • Google Appsとは
    • Apps Marketplaceのアプリケーションを導入(購入)することで、Appsの機能を拡張できる
    • APIが提供されている
  • Google Apps Marketplaceとは
  • まとめ
    • Google Apps Marketplaceという市場によって、BtoB,CtoBがより身近になる。
      • Appsの利用企業数300万社にリーチできる
    • さらにGoogle App Engineを使えば、インフラをあまり気にせず、アプリケーション屋だけで、安く、アプリケーションを提供できる
      • 開発企業はもちろん、実際の体験からの解決案を持っているユーザ企業にとっても、エンプラ向けのサービスをグローバルに展開するチャンスだと思ってます!
  • 質疑応答
    • 課金体系が代わるということだが、無料でできるとこがなくなる?
      • なくなるわけではないが、ものすごく狭くなる。botとかなら大丈夫と思うが・・・
  • 感想
    • やっぱぼくGAE大好きだぁv


NetBeansJava SE 7(とJavaEE6)を勉強しよう(きしだなおき氏)

  • NetBeansでJavaSE7
  • 「7のアップデートは地味」w
  • Java7の文法のはなし
    • を、NetBeansで。ライブコーディング形式。
    • ダイヤモンド演算子型推論
    • 文字列のキャッチ(文字列switch
      • ハデなように見えるけどあまり使いどころはないかもね
    • マルチキャッチ
      • 例外処理でおなじことをやってたのが、記述一回で済む
    • 安全な再throw
      • いろんな例外をまとめて「Exception」としてcatch後、そのまま再throw・・・というのが、今まではできなかった
      • catchブロック内、Exceptionにfinalつけないとダメ(コンパイルは通るけど)
    • 数値リテラル
      • アンダースコア区切りできるようになったよ!
    • 自動close
    • オマケ・Java7のFilesクラス便利!どんなメソッドがあるかは見といたほうがいいよ!
  • NetBeansでJavaEE6開発
  • 感想
    • きしださん、味のある文字をお書きになるな〜w
    • いい意味で、すごく「ゆるい」かんじな方で、とてもイイなぁ♪
      • いろんなモノに「さん」付けなさるしw
    • 今回のように、目の前でコードを交えながらのお話は、ホント、スッと入ってくるね!


Java FX 2.0 〜リッチクライアントのためのUI基盤〜(櫻庭祐一氏)

  • みなさんFX興味なし??
    • FX触ったことのある人、僕含めて2人しかいないとか・・・w
    • このスライド、一部は以前拝見したことのあるのと同じかも。ブクマしてた気がする。あとで探してURL貼ります。
  • What is JavaFX 2.0
    • SwingプログラマとしてはFX2.0の一方はGoodでは?
    • Good
      • 開発スピードUP
      • パフォーマンスUP
      • FXを使える言語増加
    • Bad
      • 記述量もUP
      • 複雑さUP
      • 言語でサポートした機能Down
    • FX Scriptはなぜなくなった?
    • 基本構造
      • SceneGraph・・・GUIツリー構造で表しましょう、という考え方
      • Shape(四角・丸などの描画要素)がFXは使える
      • MVC間やりとりの自動化・・・bind!
    • Key Features
    • その他にも・・・
      • Prism
      • 非同期処理
      • JSONパーサー
        • なぜかJava SE本体にはないw
        • 「使いたければぜひFXを」w なんという抱き合わせ商法w
      • Swingとの連携
  • まとめ
    • 今のところ開発者がターゲットに・・・
      • デザイナー向けのツールが待たれる
      • 近々リリースされるとか?
  • 質疑応答
    • cssでの指定内容は何に当たっている?
      • shape。例示ではボタンだったが、何にでも当てられる
    • 商用的には何に使われるべき?
      • やはりSwingに置き換わるべきものかと。
  • 感想
    • 櫻庭さんもスゴク味のある方だなぁ♪
    • プレゼンにもお人柄がよく表れていたのではないかと思います♪BGMかけながらのプレゼンもナイスだと思いますです!(ちょっと音量大きかったかもですねw)


AWSではじめるProgrammable Cloud(染田貴志氏)

  • What's AWS
  • Who uses AWS
    • すっごいたくさん。
    • Cacoo on AWS
  • AWSの全体像
    • Region と Availability Zone
    • lots of services
      • 30個近く・・・
    • Divided into 3 groups
      • 押さえておきたいもの
        • とりあえずこういうものがあるっていうのは知っとけっていうもの
        • EC2
        • EBS
          • 外付けHDD、EC2に接続して使用。スナップショット機能も
        • S3(Simple Storage Service)
          • HTTP経由でアクセス、99.999999999%の可用性。事実上ここに置いてあるファイルは壊れない
          • 5TB/ファイル、容量は無制限。最終的に整合性は取れてる状態にしてくれる
        • Cloudfront(CDN:Contents Delivery Network)
          • 静的コンテンツをアクセスしてきたユーザに地理的に近いサーバから配信
          • 以前は非常に高価なイメージ
        • Services for scaling
          • ELB:ロードバランサ
          • CloudWatch:CPUなどのモニタリング ここで取ったデータを元にAutoScaling・・・というような使い方。カスタムメトリクス(ユーザーが指定したものを収集・蓄積・表示)にも対応
          • AutoScaling:予め設定されたしきい値に従い、インスタンスの上げ下げを行う
      • ミドルウェア
        • 使いたいものがハッキリしてるときに使えばいんじゃねってもの
        • メール配信、メッセージ通知、メッセージキュー、RDBMS、KVS、DNS、分散処理・・・
        • 可用性と拡張性をカンタンに手に入れることができる!
        • Elastic Beanstalk
          • 自動的にスケールする環境を用意してくれる
      • その他
        • こういうものもあるんだ程度で
        • WEB+DB PRESS vol.62も見てみてね






もうJavaEE6でいいんじゃない?(寺田佳央氏)



Lightning Talks

とある言語の既存機能(グルービー)奥さん
FX2.0のイカしたはじめかた  野崎(いろふ)さん
  • 読書会とかやってます
  • GroovyでFX2.0
  • Javaで書かれたFX2.0コードをGroovyで書いてみた
    • JavaができればGroovyもできる(かも)
  • わざわざGroovy使う理由?
  • GroovyFX
    • FX2.0のツリー構造に近いカタチでより簡潔に書けるようにするもの
  • FX2.0を触るついでにGroovyFXもさわってみてね!
Javaによるフィジカルコンピューティング  綾木さん
アプレットサーバシステム・シングルウインドウ C/Sシステム  柳瀬さん
  • 別途パンフレットも頂いた
  • Webアプリ特有の問題点
  • 解決策としてのシングルウインドウ C/Sシステム
  • タブ型ブラウザと比較したときとの優位性は??
    • そもそもこの質問が的外れ??あとでパンフレットよんでみよ
組み込みGlassFishで遊ぼう!  浦上さん
  • 自己紹介
    • 大阪のJava屋さん
  • GlassFish v3.x イイ!
  • あとはJUnitテストとかカンタンにできたら・・・
    • 組み込み用jarあった!
  • glassfis-embedded-all
    • jarひとつでEE6をフル体験できる
  • 組み込みGlassFishカンタンな使い方
  • まとめ
  • 浦上さん「関西でGlassFish勉強会をしましょう!」(会場拍手)
    • 素晴らしい感応性、行動力!
Eclipse3.7の新機能 WindowBuilder使ってみた  稲垣さん
5分でわかるG1GC  櫻庭さん
  • 新しいGC
  • Garbage First Garbage Collection
  • OpenJDK7から使用できます!
  • 徹底解剖「G1GC」アルゴリズム編 読んでね
  • JavaGC
    • Mark&Sweep
    • 世代別GC
    • Mostly Concurrent M&S
    • Parallel GC
  • なぜG1GC
    • 評価基準:スループットと応答速度、そのバランス
    • それを両立させるのがG1GC
    • YoungとOldを動的に割り当て、最大停止時間を指定できる
    • (時間切れ・・・)とにかく本読んで!w


クロージング

  • 本日のセッションの振り返り
  • アンケートのお願い
    • 帰宅後ゆっくり書かせていただきま〜す
  • ありがとうございました!
    • こちらこそ、ありがとうございました!!


そのほか、思ったこと

  • JSF、全然しらなんだ。ちらっと勉強してみよかなー。
    • 使えるのEEだけ?
    • id:backpaper0さんにブクマで補足頂きました!
      • JSFはEEフル装備のAPサーバだけではなく、Tomcatなどのサーブレットコンテナでも利用できますよ(別途JARを用意する必要はあります)。』
      • 全然ハードル低いですね〜!!実際に動かしながら勉強、っていうのもラクにできちゃいそう!
  • GlassFishいいね!
    • でも僕がなんか作るとしたら、基本はGAEでやっちゃえってなっちゃうだろなぁ。諸々の手間・リソースを考えて・・・。。
    • GAE大好き!
  • WindowBuilderきになる!要検討だなこりゃ
  • やっぱりすごい人ばっかり。僕も、できるところ・やりたいと思えるところから少しづつ頑張っていこう。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。