• 検索結果がありません。

既存資産を活用したシングルページアプリケーション(SPA)開発方式の考察

N/A
N/A
Protected

Academic year: 2021

シェア "既存資産を活用したシングルページアプリケーション(SPA)開発方式の考察"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 79 回全国大会. 6A-05. 既存資産を活用した シングルページアプリケーション(SPA)開発方式の考察* 太†. 株式会社日立製作所. 森田. 2. SPA と MSA の特徴と効果 MSA を前提とした SPA によるアーキテクチャ (図 1)は、JSON 形式の REST API を使用した連携 により SPA と MSA の親和性が高い。 これにより、既存資産のアーキテクチャに比べ て、次のような効果が期待できる。 ・SPA が持つモバイルクライアントへの順応性 ・SPA が持つビジネスロジックの明確な分離に よるサービスの再利用性の向上 ・MSA が持つ疎結合なサービスの設計による レジリエンスおよびスケーラビリティの向上 ・MSA が持つリリースまでの期間短縮の効果 Function Layer. Data-Access Layer. Single Page Application. REST API. Micro Service Single Page Application. Micro Service Micro Service Micro Service Micro Service. Client. Web/AP Server. 佐藤. 裕介†. プロジェクトマネジメント統括推進本部‡. 1. はじめに 近年、エンタープライズアプリケーションの分 野でもシングルページアプリケーション[1](SPA) やマイクロサービスアーキテクチャ[2](MSA)と いった比較的新しい Web アプリケーション開発 方式の適用検討が進んでいる。一方、Servlet/JSP といったアーキテクチャで開発したソフトウェ アの既存資産が多く存在している。 エンタープライズアプリケーションの再構築に あたり、新しい開発方式を採用しながら既存の 大規模システム資産を活用することは、検討す べき課題の一つである。 本稿では、MSA を前提とした SPA における既 存資産を活用した効果的な開発方式について、 開発事例を通して考察する。. Presentation Layer. 孝哉†. DB Server. 図 1:MSA を前提とした SPA によるアーキテクチャ によるアーキテクチャ *A consideration of single-page application architecture with legacy application software †Futoshi Okada, Takaya Morita, Yusuke Sato ‡Project Management Division. Systems & Services Business Management Division. Information & Communication Technology Business Division. Hitachi, Ltd.. 3. 既存資産のアーキテクチャとの違い 既存資産の多くは、Servlet/JSP による MVC に 基づくサーバサイドベースのモノリシックなア ーキテクチャ(図 2)である。 Presentation Layer. Dynamic Web Page Client. Function Layer Data-Access Layer. Servlet/JSP. 岡田. Monolythic Application. Web/AP Server. DB Server. 図 2:既存資産のアーキテクチャ 既存資産のアーキテクチャ. 図 2のアーキテクチャが全ての処理をサーバサ イドの Java で実装するのに対し、SPA は画面制 御に関する処理をクライアント側で実装するこ とになる。また、MSA ではアプリケーション全 体に対してサービス単位に分離が求められるた め[2]、全面的な作り直しが必要となる。従って、 既存資産の活用を検討することが重要となる。 4. 既存資産の活用 既存資産の活用に関する研究には、異なるプロ グラミング言語間の再構築における効率化[3]や、 同等なアーキテクチャでの移行[4]に関するもの がある。前者は画面制御に関する処理の再利用 に着目内容になっており、アプリケーション全 体の再利用には触れていない。後者は設計変更 の影響が少なく、再利用性が高い。本稿では、 図 2のアーキテクチャで構築された既存資産に対 し、全面的な作り直しを伴う SPA と MSA の適 用に向け、再構築の効率化を目的にアプリケー ション全体の再利用性に着目して漸進的な対応 を検討する。 SPA の適用は基本的にビジネスロジックの見 直しが不要で、リライト[5]での対応が見込める 一方、MSA の適用はビジネスロジックの見直し が必要となる。MSA については、画面制御に関 する処理の分割に留め、将来的に MSA の全面的 な適用を想定した課題を抽出する。 5. SPA の適用方針 既存資産の流用による生産性向上を目的として、 以下 2 点を前提条件にリライトする方針とした。. 1-197. Copyright 2017 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 79 回全国大会. ① 画面遷移先の決定処理をサーバ側に残す。 ② クライアントとサーバ間のインターフェー スにおけるデータ項目を変更しない。 開発事例では、既存資産は MVC フレームワー クとして Apache Struts 1.2 を使用しており、SPA の 適 用 に は MVC フ レ ー ム ワ ー ク と し て AngularJS 1.4 を使用した(図 3)。 Presentation Layer. 既存資産 ActionForm. JSP. Action チェック編集. 画面レイアウト 業務コンポーネント呼出. 通信インターフェース チェック編集. 画面遷移制御 画面表示制御. 6.3 技術的な実現性の評価 リライトによる技術的な実現性を、リライト作 業中に挙がった問題点(表 3)から評価した。結果 的に未対策となったのは 3 件だけであり、実現 性には概ね問題無いと評価する。未対策の課題 として、画面全体の再描画におけるタイミング の差異や、HTML の部品化に伴う CSS の名称競 合の他、サブウィンドウ制御に関する処理方式 等について、再検討が必要なことが判明した。 また、サービスを跨ぐ箇所での認証情報の引き 渡 し や 二 重 送 信 防 止 用 の 作 り込みに関する、 MSA の全面的な適用に向けた課題が判明した。. Apache Struts. 表 3:リライト作業中の問題点 :リライト作業中の問題点. Web/AP Server. Client. Rewrite. #. SPA適用後 HTML/JavaScript. JavaBeans. 画面レイアウト. 1 2 3 4 6 7 5 8 9. 通信インターフェース. チェック編集. チェック編集. 通信インターフェース. 業務コンポーネント呼出. 画面表示制御. 画面遷移制御. AngularJS. Jersey Web/AP Server. Client. 図 3:SPA 適用におけるリライトのイメージ. 6. 評価 6.1 設計作業の効率化 リライトを前提とした適用方針により、作り直 す場合に比べ、画面制御に関する処理の設計項 目における再設計の対象を削減できた(表 1)。 表 1:画面制御に関する処理 :画面制御に関する処理の再設計要否 制御に関する処理の再設計要否 # 1 2 3 4 5 6 7 8. 設計工程 設計項目 画面基本設計 画面遷移設計 画面レイアウト設計 画面詳細設計 画面項目設計(通信インターフェース設計) イベント処理クラス設計 画面イベント チェック編集処理設計 設計 画面遷移制御ロジック設計 画面イベント 画面表示制御ロジック設計 詳細設計 業務コンポーネント呼出ロジック設計. 再設計要否 不要 不要 不要 不要 不要 要(一部) 要 不要. 6.2 開発規模(SLOC) 既存資産と SPA 適用後におけるリライト対象 の開発規模を比較した(表 2)。#1 は小さくなった が、#5 と#7 は大きくなった。HTML の部品化に より規模が圧縮された反面、通信インターフェ ースの制御処理で規模が膨む結果となった。. 1 2 3 4 5 6 7 8. 処理要素 画面レイアウト チェック編集(クライアント) 通信インターフェース(クライアント) 画面表示制御 通信インターフェース(サーバ) チェック編集(サーバ) 画面遷移制御 計. 既存資産 種別 開発規模 JSP 6.8 JavaScript 2.8 - - Java 3.8 Java 2.0 Java 1.5 Java 7.5 24.3. SPA適用後 種別 開発規模 HTML 2.7 JavaScript 1.4 JavaScript 1.1 JavaScript 3.7 Java 14.9 Java 1.5 Java 13.9 39.1. 画面レイアウト チェック編集(クライアント) 通信インターフェース(クライアント) 画面表示制御 チェック編集(サーバ) 通信インターフェース(サーバ) 画面遷移制御 その他 計. 対策済 7 0 3 5 0 1 9 4 29. 暫定 対策済. 未対策 計 5 0 0 1 0 0 0 0 0. 0 12 0 0 0 3 1 7 0 0 0 1 1 10 1 5 3 38. 7. まとめ サーバサイドベースのモノリシックなアーキテ クチャによる既存資産を活用した SPA 開発方式 の研究の結果、画面制御に関する処理における 再設計の対象項目の削減により、開発工数の削 減に効果が得られた。SPA 開発方式の妥当性を 評価できたことに加えて、残った問題点におけ る技術的な課題を洗い出した。 8. 今後の課題 本稿で抽出した課題に加えて、既存資産の流用 を目的に設定した前提条件に対して、SPA とし てのメリットを活かす観点で改めて検討する。 また、MSA の全面的な適用に向けて、リバー スエンジニアリングを活用したアプリケーショ ン全体の最適化の手法を検討する。 参考文献 [1] [2] [3]. 表 2:プログラム開発規模の比較 :プログラム開発規模の比較( の比較(単位:Kstep) 単位:Kstep) #. 処理要素. [4]. [5]. 1-198. 池添 明宏, 金井 健一, 吉田 徹正. AngularJS リファレ ンス. インプレス, 2014, 166-168p. Sam Newman 著, 木下哲也 訳. マイクロサービスアー キテクチャ. オーム社, 2016, 1p-9p, 93-119p. 米谷 雅樹, 『Visual Basic から J2EE 環境への移行支援ツ ール』, 情報処理学会第 66 回全国大会. 倉持 和彦、他『Struts アプリケーションのパブリッ ククラウド(Google App Engine)への移行に関する考 察』, 情報処理学会第 72 回全国大会. IT モダナイゼーションソリューション, ”IT モダナ イ ゼ ー シ ョ ン と は ”. 日 立 製 作 所 . 2016, (URL:http://www.hitachi.co.jp/Prod/comp/soft1/solution/ search_s/modernization/whats_modernization.html). Copyright 2017 Information Processing Society of Japan. All Rights Reserved..

(3)

図     1 1 1 : 1 : : MSA  : MSA  MSA  を 前 提 と し た MSA  を 前 提 と し た を 前 提 と し た を 前 提 と し た SPA SPA SPA SPA に よ る に よ る ア ー キ テ ク チ ャ に よ る に よ る ア ー キ テ ク チ ャ ア ー キ テ ク チ ャ ア ー キ テ ク チ ャ
表     2 2 2 : プ ロ グ ラ ム 開 発 規 模 2 : プ ロ グ ラ ム 開 発 規 模 : プ ロ グ ラ ム 開 発 規 模 の 比 較 : プ ロ グ ラ ム 開 発 規 模 の 比 較 の 比 較 の 比 較 ( ( ( 単 位 ( 単 位 単 位 :Kstep) 単 位 :Kstep) :Kstep)   :Kstep)

参照

関連したドキュメント

外声の前述した譜諺的なパセージをより効果的 に表出せんがための考えによるものと解釈でき

 処分の違法を主張したとしても、処分の効力あるいは法効果を争うことに

tiSOneと共にcOrtisODeを検出したことは,恰も 血漿中に少なくともこの場合COTtisOIleの即行

タラソテラピーを代表する海水入浴療法(バルネオ セラピー)とボディパックを取り入れた、本格的な

納付日の指定を行った場合は、指定した日の前日までに預貯金口座の残

絡み目を平面に射影し,線が交差しているところに上下 の情報をつけたものを絡み目の 図式 という..

このため、都は2021年度に「都政とICTをつなぎ、課題解決を 図る人材」として新たに ICT職

個別の事情等もあり提出を断念したケースがある。また、提案書を提出はしたものの、ニ