グロースエクスパートナーズ株式会社
ビジネスプラットフォーム事業ゼネラルマネージャー チーフアーキテクト
日本Javaユーザーグループ幹事 / 日本Springユーザー会幹事
鈴木雄介
【19-C-1】
 これからのアーキテクチャを見通す

                   Developers Summit 2010   1
自己紹介


鈴木雄介
75年生まれ
グロースエクスパートナーズ(株)
ビジネスプラットフォーム事業ゼネラルマネージャー/チーフアーキテクト

アークランプ ブログ
http://www.arclamp.jp

JJUG/JSUG幹事
日本Javaユーザー会/日本Sptingユーザー会

97本監修
『ソフトウェアアーキテクトが知るべき97のこと』



                            Developers Summit 2010   2
これからの
アーキテクチャを見通す


     Developers Summit 2010   3
いま、何が起きているのか?



      Developers Summit 2010   4
受注ソフトウェア売上伸び率
  30.0




  20.0




  10.0                  10.5%                                  成熟期

   0.0                                                                1%
         95   96   97    98   99   00   01   02    03     04     05    06   07   08   09




▲ 10.0




▲ 20.0
 経済産業省「特定サービス産業動態統計調査」                       Developers Summit 2010                        5
派遣受入れ従業者(人日)
  30.0




  20.0




  10.0

                        8.5%                                   8.2%
   0.0
         95   96   97   98   99   00   01   02    03     04     05   06   07   08   09




▲ 10.0




▲ 20.0
 経済産業省「特定サービス産業動態統計調査」                      Developers Summit 2010                       6
リーマンショック後
  30.0




  20.0




  10.0                                         衰退期?


                                   -3.0%
   0.0
         08/1   08/5   08/9         09/1               09/5   09/9




▲ 10.0

                                   -9.7%
▲ 20.0
                              Developers Summit 2010                 7
http://www.flickr.com/photos/29007475@N08/3218110963/




                          労働集約的産業
                          生産要素のうちの労働と資本の組み合わ
                          せにおいて、労働者一人当たりの設備な
                          ど固定資産額の小さい産業
                                                    Developers Summit 2010                         8
                                                                      http://kotobank.jp/word/労働集約的産業
「クライアントために」
は手工芸。産業としては
原始的なありかた




http://www.flickr.com/photos/24443965@N08/3286611736/Developers Summit 2010
http://www.flickr.com/photos/eqqman/76493361/                                 9
いま、何が起きているのか?
 世界は変わった。
 受託開発が産業として衰退期を迎え
 つつある。市場縮小=人員削減。



         Developers Summit 2010   10
これから何が起きるのか



     Developers Summit 2010   11
自家発電のための           発電所を運営して
機械を売ろう             電力を売ろう


トーマス・エジソン                   サミュエル・インサル
(1847年-1931年)               (1859年-1938年)
                Developers Summit 2010      12
電力のユーティリティ化は技術がな
       ければできなかった。しかし、経済
       合理性がなければ進まなかった。




ニコラス・G・カー『クラウド化する世界』翔泳社、2008年
http://www.flickr.com/photos/plastique/4021279909/   Developers Summit 2010   13
いかに早く作るか

いかに長く使うか



     Developers Summit 2010   14
いかに長く使うか
           運用保守性の向上
           変化に素早く対応する
           質の良いサービス




いかに早く作るか
開発生産性の向上
動くコード
質の良いコード    Developers Summit 2010                            15
                 http://www.flickr.com/photos/emciek/2683598052/
「Force.comの開発効率はJavaや.NETの5倍」
       開発生産性が5倍(=早く作れる)ではない。

       長く使える、と理解すべき
       ・必要な分だけ作る
       ・開発/本番環境の準備が必要ない
       ・サービスの管理が容易
       ・ユーザー数の変化にはすぐに対応可能

Force.comの開発効率はJavaや.NETの5倍――Nucleus調査
http://www.itmedia.co.jp/enterprise/articles/0905/18/news087.html

                                                      Developers Summit 2010   16
ただし制約がある
                                              データ転送量/速度
                                        専用言語/専用ツール/専用API
                                                 セキュリティ




                                                         Developers Summit 2010
http://www.flickr.com/photos/greendragonflygirl/3387375487/                       17
 クラウドに移行しない理由
     セキュリティの懸念:46%
     制御できないこと   :39%
       コスト      :36%
       既存インフラ投資 :32%
       性能懸念     :31%
       レガシーシステムおよび統合懸念:26%

Cloud Computing Adoption Survey Results Released
http://www.thehostingnews.com/cloud-computing-adoption-survey-results-released-12517.html


                                                  Developers Summit 2010                    18
何かを得れば、何かを失う。そして
何ものをも失わずに次のものを手に
入れることはできない。
                                 - 開高健




        Developers Summit 2010           19
これから何が起きるのか
開発の現場に産業革命がおきる。
新たな価値感は新たなアーキテク
チャによってもたらされる。当然、
失うものもある。


        Developers Summit 2010   20
これからの
アーキテクチャを見通す


     Developers Summit 2010   21
いかに長く使うか
運用保守性の向上
変化に素早く対応する
質の良いサービス




     Developers Summit 2010   22
本当に我々は
変化に
適応できるのか?
   Developers Summit 2010   23
オブジェクト指向



      Developers Summit 2010   24
ソフトウェアの基本構造
    変化しない”モノ”
   構造 構造  構造
   要素 要素  要素




                                  変化する”コト”
    サービス/機能

    サービス/機能

    サービス/機能
         Developers Summit 2010              25
散乱ともつれ合い
散乱:複数のクラスを横断するような変更
もつれ合い:ユースケースに共通のクラスへの変更

                         責務

   クラスA           クラスB           クラスC             ユースケースA




                                                  ユースケースB
                     もつれ合い
       散乱            (tangled)
    (scattered)


                         Developers Summit 2010             26
DI(依存性の注入)
利点
・構造要素間の関係を外出しできる

ただし、
・インターフェースの変更に対応でき
 ない
・依存性が複雑になると管理が煩雑に
 なる

         Developers Summit 2010   27
アスペクト指向
利点
・クラスを変更せずに後から処理を追
 加できる
・クラスに横断する関心事を扱える

ただし、
・アスペクト間の依存に影響を受ける
・クラスの変更に影響を受ける

          Developers Summit 2010   28
オブジェクト指向の限界
  ・予見できる変化にしか最適に変化で
   きない
  ・柔軟性を上げるには複雑にするしか
   ない(DI、アスペクト…)
  ・人の経験や認識力に強く依存する


萩原正義『アーキテクトの審美眼』翔泳社、2009年
                     Developers Summit 2010   29
アジャイルプロセス



      Developers Summit 2010   30
デザインパターンからXPへ
パターンの適用対象を設計からプロセスへ


  構造:変化しにくく、長く残る
  プロセス:変化しやすく、後に残らない


江渡浩一郎『パターン、Wiki、XP ―― 時を超えた創造の原則』 2009


                       Developers Summit 2010   31
動的平衡には
エネルギーが必要



http://www.flickr.com/photos/ralphunden/3380101930/   Developers Summit 2010   32
アジャイルの限界
・変化しやすいが維持しにくい
・スケールしない(教育が必要)
・人の経験や能力に非常に強く依存す
 る



        Developers Summit 2010   33
結論:
変化に適応する
のは難しい
   Developers Summit 2010   34
オブジェクト指向と
アジャイルプロセスは
優れた手法だが、
それだけでは足りない


     Developers Summit 2010   35
これからの
アーキテクチャ


     Developers Summit 2010   36
構造の不変性を利用し、
 変化の影響を管理する。
  →モジュール
 変化の方向を管理する。
  →プラットフォーム

     Developers Summit 2010   37
モジュール
変化の影響を管理する   Developers Summit 2010                            38
             http://www.flickr.com/photos/rltherichman/4241350513/
モジュールとは
実装の追加情報をメタデータとして
持ち、内部の実装方法を隠蔽する。
(コンポーネント)
追加情報の例:
バージョン、呼び出しの事前/事後
条件、呼び出しのポリシー定義、依
存性など
         Developers Summit 2010   39
OSGi
Java用のモジュール管理基盤。
モジュール=バンドル

採用プロダクト
・Eclipse
・アプリケーションサーバ
・Spring DM/iPOJO…
              Developers Summit 2010   40
A.jar


      Foo                       ただの
                                アーカイブ
Bar
                                ファイル

            Hoge




                   Developers Summit 2010   41
Aバンドル

      Foo                    バージョン
                           〒 ベンダー
Bar
                             公開
                             依存
            Hoge




                   Developers Summit 2010   42
A
バージョンを利用した
クラスロード解決                                     a.Foo   1.0
                                             1.0


   a.Foo           OSGi                      a.Foo
                                                     1.1
   [1.3.0,2.0.0]                             1.1


                                         a.Foo
                                         2.0
                                                     2.0

                    Developers Summit 2010                 43
モジュールの可能性
・これまでの開発手法は流用可能
・より”疎”を実現。部分単位の入れ替
 えを可能に
 ・SOAはモジュールの一形態とし
  て捉えられる
・時間軸上での再利用が可能
・変化の影響を管理できる
         Developers Summit 2010   44
プラットフォーム
変化の方向を管理する




http://www.flickr.com/photos/saturnism/195649679/   Developers Summit 2010   45
プラットフォームとは
狭義:アプリケーションソフトを動
   作させる際の基盤(OS、ミ
   ドルウェア)
広義:ソーシャルグラフ上でコミュ
   ニケーションをするための基
   盤

         Developers Summit 2010   46
エンタープライズ
ソーシャルアプリケーション
ソーシャルグラフを前提に、ユー
ザー同士がコミュニケーションを行
うためのアプリケーション。
のエンタープライズ適用


         Developers Summit 2010   47
横断的プラットフォーム




 A   B                 C



ベース的プラットフォーム


      Developers Summit 2010   48
ガジェット/ウィジット
ベース的プラットフォームの例。
特定のプラットフォームを前提とし
た埋め込み式のものが増えている




         Developers Summit 2010   49
覇権抗争中

Facebook アプリ
mixiアプリ
OpenSocial(Google)

      Googleガジェット
      W3C Widgets
      OpenAjax Metadata/iWidget


               Developers Summit 2010   50
Chatter by SFDC
横断的プラットフォームの例。

すべてのデータが喋り出す。
データ(ネタ)を中心としたコミュ
ニケーションなので時間軸の中で流
れていくが、論点がブレない。

           Developers Summit 2010   51
デブサミ2008講演より

ナレッジマネジメント(KM)の変遷 … 文書共有を中心と
したグループウェアなどの第1世代ナレッジマネジメントを
「Document Centric KM」、第2世代であるQ&Aコミュ
ニティーやソーシャルネットワーキングサービス(SNS)
など情報を持っている人を中心としたものを「Human
Centric KM」 … 動画共有サイトのニコニコ動画や初音ミ
クをはじめとしたVOCALOIDシリーズの製品などがネット
上で流行している現象をKMの第3世代「Neta Centric
KM」ではないかと仮説をたてる。
                                                            吉川日出行氏


http://japan.cnet.com/news/media/story/0,2000056023,20367358,00.htm
『ニコニコ動画から見える第3世代のナレッジマネジメント論--「コト」「人」の次は「ネタ」』

                                   Developers Summit 2010             52
プラットフォームの可能性
・既存システムは流用可能。価値向上
・横断的機能を緩やかに分離可能
・時間軸上での再利用が可能
・変化の方向を管理できる



        Developers Summit 2010   53
プロセスと
アーキテクチャは
補完的である


    Developers Summit 2010   54
http://www.flickr.com/photos/seandreilinger/1247300270/

                   アジャイルとアーキテクチャの補完関係

                   Agile



Architecture



                                                          Developers Summit 2010   55
その他のトピックス

並列化(GPGPU)
スレート端末(Android)
ソリューション型OSS(BI,オンライン会議…)
空間情報システム(a.k.a GIS)




            Developers Summit 2010   56
何かを得れば、何かを失う。そして
何ものをも失わずに次のものを手に
入れることはできない。
                                 - 開高健




        Developers Summit 2010           57
あなたはどこにいますか?




http://www.flickr.com/photos/dingo_x/3721358864/   Developers Summit 2010   58

デブサミ2010 これからのアーキテクチャを見通す