Techno-
AirPlas
による
Application
開発
株式会社 テクノ産業
平成22年5月
ソフトウェアベンダーの課題
•
ユーザー様、販売店様のご要望、市場のニーズに
即応
できない。
•
ソフトウェア生産に伴う品質、コスト、納期について経営的評価をしながら、
事業として会社を健全に発展させてゆくために不可欠な
商品の改良、新商
品の開発が思うように進められない。
•
一つの要望、ニーズに対して、これを解決するための提案(デザイン)を見
直したり、複数案を用意するだけの
余裕がない。
•
インターネット越しに大量の情報活用できるWebアプリケーションの開発に
は、それまでとは異なる新しい体制(生産手法)を用意すべきだが、 これと
言った
新しい開発体制を整えることができない。(個人技に依存)
•
体制未整備の一因として、これまでローカルアプリケーションを開発してきた
実務経験豊かな技術者を、Webアプリケーション開発の現場でも活躍でき
るように
起用、育成することが非常に難しい。
アプリユーザー(お客様)
<言葉によるコミュニケーション>アプリ開発者
<ActionScript,MXML>
ライブラリ開発者
業務上の要望、問題提起 業務改善の提案 ライブラリ機能の要望、調整 ライブラリ、仕様書、 サンプル、作業手順書機能
特徴
データベース 共有、ローカ ル・ネッネ ワーク (LAN)対応 広域、イン ターネット、 多拠点運用 (WAN)対応 グラフィカル・ ユーザー・イ ンターフェー ス(GUI) ブラウザ要 否、利用者 側の操作性 使いやすさ 機種OS依 存度、シス テム保守の 難易度 システム開発 資産(人材育 成)継承の難 易度 システム 開発の効率、 速度、難易 度Delphi
○
×
○
○
×
△
○
Java
△
○
△
△
○
×
△
AirPlas
○
○
◎
◎
◎
○
○
◎:非常に良い、○:良い(可能)、△:まあまあ(可)、×:良くない(不可)
AirPlas
の概要(1)
課題
インターネット、広域運用 (WAN)対応 ユーザー・イン ターフェース の柔軟性 ブラウザ要否、 利用者側の、 使いやすさ 機種、OS依存、 システム保守の難 易度 システム開発資 産継承の難易度 システム開発 の難易度Web Side Client (User) Side Server (DataBase)Side
JAVA
<★前提:ブラウザ使用> HTML,CSS,JavaScript,Ajax サーバーサイドによる画面設計、 画面切り替えによる遷移 <★前提:WebアプリがHTMLを生成する> オープンソースに基づくJava中心の開発環境 Java,JDBC,Hibernet,Tomcat,Eclipse 多種資産のバージョン管理RoR
<★前提:ブラウザ使用> HTML,CSS,JavaScript,Ajax サーバーサイドによる画面設計、 画面切り替えによる遷移 <★前提:WebアプリがHTMLを生成する> Ruby on Rails,MySQL フレームワーク:Rails、ORMapper:ActiveRecord、 MVC(Model,View,Controller)の採用AirPlas
<★ユーザーに分かりやすい操作性> MXML,ActionScript,SQLite ブラウザ使用は前提ではない。 クライアント側の自由な画面設計、 ローカルDB,複数画面の同時利用可 <★技術者に優しい開発環境> Ruby on Rails,MySQL,E4X, RESTful コンセプトによるWeb結合 フレームワーク:Rails、Ver.管理:Subversion、 エディター:EclipsePlugin等の活用AirPlas
の概要(2)
Webアプリケーション開発環境(手法)の比較Adobe Air
について
■ 特徴【1】OSを超えて動作が可能
Windows に限らず、MacOSX や Linux 上で動作するデスクトップ・プログラムを単一の手法で開発 することができます。
■ 特徴【2】クライアント開発技術に既存技術を流用
Flex、Flash、ActionScript、HTML、JavaScript 等「既にノウハウを蓄積した技術」を流用できます。
■ 特徴【3】多様なサーバ側の開発技術
サーバサイドの開発技術としてさまざまな技術を選ぶことができます。ポピュラーなサーバサイド開 発技術としては Java が挙げられますが、サーバ側を PHP や Perl、 Ruby や .NET で構築するこ とも可能です。もちろん、Air を用いてサーバ側の処理が無いデスクトップで単体で動くアプリケー ションも作ることできます。
■ 特徴【4】新しいマッシュアップの可能性
AIR の内部には HTML や PDF を再生する技術が入っており、それらを「オブジェクト」として扱うこ とができます。例えば、特定の Web ページを AIR の中で開き、その画面をくるくる回転させたりす ることができます。 Google マップや Yahoo! Maps などのような「HTML で作られているアプリケー ション/サービス」を AIR 上で同時に表示して組み合わせて新たなアプリケーション/サービスを 構築すること(マッシュアップすること)も可能です。
■ 特徴【5】「デスクトップ」との連携
AIR はデスクトップ・アプリケーションとして、ローカルのリソースとある程度ですが連携できます。
Ruby on Rails
について
Ruby on Rails
は、Devid Heinemeier Hansson氏が中心となって開発、改良を続けている
Ruby
製のオープンソースWebアプリケーション
フレームワーク
です。 Hansson氏によれば、
それまでは「すぐに作れるけどゴチャゴチャしがちなPHPと、きれいだけど作るのに時間
がかかるJavaを使ってWebアプリケーション開発をしていた」、そこで両者のいいとこどり
をした「早くてきれいな」コードが書けるフレームワークが必要だったと語られている。
優れた特徴を持つ
Rails
は、リリース直後から世界的に注目され、
Rails
の影響を受けて誕
生とされる代表的なフレームワークには、 Java >[Trails] 、Perl >[Catalyst] 、PHP>
[Cake] 、ython >[Django]、Groovy >[Grails]、 .Net >[MonoRail] 等がある。
Rails
がここまで多くの支持を獲得してきた本質を探ると、そこには従来のフレームワーク
には無い数々の特徴が見うけられる。例えば、
Convention over Configuration
(設定より
規約に則ることによる簡素化)、
Don‘t Repeat Yourself
(同じロジックを重複させないしく
み)、 開発・テスト・本番用の作業環境を用意、 ソースコードの雛形を生成できる
Scaffold
(ジェネレータ)、画面周り、データ周りや自動テスト機能等、まさに独創的、革新的なア
イデアが盛り込まれている。
Ruby
について
「気軽な」 インタプリタ 変数に型が無い 変数宣言が不要 シンプルな文法 メモリ管理が不要(GCあり) 「オブジェクト指向プログラミングを支援」 全てがオブジェクト クラス,継承,メソッドなど 特異メソッド モジュールによるMixin イテレータとクロージャ 「スクリプト言語」 インタプリタ 強力な文字列操作/正規表現 OSへの直接アクセスが可能 「その他」 多倍長整数を持つ 例外処理機能あり ダイナミックローディングWebアプリケーションの開発手段として
Ruby on
Rails
が爆発的に広まりました。Twitter.comのよ
うに秒間4,000メッセージを処理する高負荷な
サイト構築に使われたことや、企業のシステム
開発の標準プラットフォームとして採用が発表
されるなど、利用範囲が拡大したため、
Ruby
に
ついての記事を目にする機会が増えています。
Ruby
を開発したのは「まつもとゆきひろ氏」です。
同氏が当初、目指したのはPerlのように手軽に
扱えながら、本格的なオブジェクト指向プログラ
ミングができる言語だと語っています。
Ruby
は1993年から開発がスタートし、フリーソ
フトウェアとしてソースコードが公開されたのは
1995年です。奇しくもJavaが一般に公開された
ことやPHPの開発がスタートしたのも同じ年です
から、これらは同世代の言語と言えるかもしれ
ません。
補足資料
画面、印刷物デザイン
業務改善、操作指導
システム機能の抽出
モデル、データベース設計
総合テスト、保守
ライブラリ開発
開発環境調整
業務上の要望、問題提起 課題解決の提案 運用マニュアル ライブラリ、仕様書、 サンプル、作業手順書 ライブラリ機能の要望、調整画面、印刷物デザイン 業務改善、操作指導
システム機能の抽出
モデル、データベース設計
総合テスト、保守
ライブラリ開発 開発環境調整Application Programming Process
<UI構想宣言>
・・・・・・・・・・・・・・・・・・・承認要求11.印刷物・画面デザイン、モデル(クラス)の設計 2.モデル間の継承、参照関係を解析・明示
<UI構想確認>
・・・・・・・・・・・・・・・・・・・承認要求23.
AirBase
(Techno版 Scaffold with AirPlas)の作成 (1.2.の以外作業を一切行わないで、全ての レコードに対して登録、参照、修正、削除が可能)<UI構想確認>
・・・・・・・・・・・・・・・・・・・承認要求3 4.プログラミング (分かりやすさ、使いやすさ、作業効率の追求)<UI構想確認>
・・・・・・・・・・・・・・・・・・・承認要求4 5.テスト(モニターテストを含む)<UI構想確認>
・・・・・・・・・・・・・・・・・・・承認要求5Application Programming
AirPlas
の概要(3)
AirPlasアプリケーション
のイメージ (画面サンプル)