特許第6263282号(P6263282)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社野村総合研究所の特許一覧

<>
  • 特許6263282-開発支援システム 図000002
  • 特許6263282-開発支援システム 図000003
  • 特許6263282-開発支援システム 図000004
  • 特許6263282-開発支援システム 図000005
  • 特許6263282-開発支援システム 図000006
  • 特許6263282-開発支援システム 図000007
  • 特許6263282-開発支援システム 図000008
  • 特許6263282-開発支援システム 図000009
  • 特許6263282-開発支援システム 図000010
  • 特許6263282-開発支援システム 図000011
  • 特許6263282-開発支援システム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6263282
(24)【登録日】2017年12月22日
(45)【発行日】2018年1月17日
(54)【発明の名称】開発支援システム
(51)【国際特許分類】
   G06F 8/38 20180101AFI20180104BHJP
【FI】
   G06F9/06 620C
【請求項の数】2
【全頁数】16
(21)【出願番号】特願2016-569209(P2016-569209)
(86)(22)【出願日】2015年1月16日
(86)【国際出願番号】JP2015051113
(87)【国際公開番号】WO2016113914
(87)【国際公開日】20160721
【審査請求日】2017年6月21日
(73)【特許権者】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】110002066
【氏名又は名称】特許業務法人筒井国際特許事務所
(72)【発明者】
【氏名】塩川 祐介
(72)【発明者】
【氏名】宮前 英子
(72)【発明者】
【氏名】清水 護
【審査官】 杉浦 孝光
(56)【参考文献】
【文献】 特開2014−110018(JP,A)
【文献】 米国特許出願公開第2011/0302516(US,A1)
【文献】 宮崎綾子,徹底検証 BiND FOR WEBLiFE* 6,Mac Fan,日本,株式会社マイナビ,2013年 3月 1日,第21巻,第3号,P.120-123
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048
G06F 9/44
(57)【特許請求の範囲】
【請求項1】
クライアント端末からのリクエストを受けて前記クライアント端末のデバイスの種類に応じた処理結果画面を応答するWebアプリケーションの画面開発を支援する開発支援システムであって、
1つ以上の画面パーツの組み合わせからなり、前記各画面パーツが画面表示される際の外観を前記デバイスの種類毎に規定したテンプレートを有し、前記Webアプリケーションの画面開発に再利用可能なコンポーネントについて、その開発に係る要求を開発者端末を介して受け付けるコンポーネント開発コントローラと、
前記コンポーネント開発コントローラからの指示に基づいて、前記コンポーネントについてのソースコードを含む情報を取得するコンポーネント開発モデルと、
前記コンポーネント開発コントローラからの指示に基づいて、前記開発者端末から指定されたデバイスの種類に対応した所定の背景画像を前記開発者端末に表示させるとともに、前記背景画像に重ねて、開発対象の前記コンポーネントの外観を表示するためのコンポーネント開発領域を前記開発者端末に表示させるコンポーネント開発ビューと、を有し、
開発対象の前記コンポーネントのソースコードが編集された場合に、当該ソースコードに基づいて、開発対象の前記コンポーネントを、前記開発者端末から指定されたデバイスの種類に対応した前記テンプレートによって規定される外観により前記コンポーネント開発領域に表示させる、開発支援システム。
【請求項2】
請求項1に記載の開発支援システムにおいて、
前記コンポーネント開発領域は、大きさおよび/または位置を開発者の指示により変更可能である、開発支援システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webアプリケーションの開発技術に関し、特に、マルチデバイスに対応した画面表示を行うWebアプリケーションの開発を支援する開発支援システムに適用して有効な技術に関するものである。
【背景技術】
【0002】
近年、例えば、タブレット端末やスマートフォンなどのいわゆるスマートデバイスの業務活用が本格化しており、企業の基幹システムと連携するような中・大規模なシステムの開発案件も増える傾向にある。このような状況で、ユーザ企業の要件は複雑となり、ITベンダー等の開発者にとって開発難易度も高くなってきていることから、開発の効率化を図って生産性を向上させることが重要となる。
【0003】
この点につき、例えば、ソースコードなどの開発成果物における共通部分・汎用部分の部品化や、開発時の部品の再利用を推進することが効果的である。さらに、マルチデバイスやマルチプラットフォーム(以下では単に「マルチデバイス」と総称する場合がある)対応を行うことで、デバイスやプラットフォーム毎の個別の開発部分を低減させることも有効である。
【0004】
マルチデバイスに対応した再利用可能な部品化の技術に関連して、例えば、特開2013−235387号公報(特許文献1)には、入出力項目を表示するためのコントロールの外観や属性、制御処理などを含むユーザインタフェースを、デバイスに応じてソースコードを変更することなく動的に変更するWebサーバシステムが記載されている。当該システムは、例えば、クライアント端末からの要求に基づいて、クライアント端末のデバイスの種類に係る情報を取得するデバイス取得部と、ソースコードに含まれるパーツオブジェクトについて、デバイス取得部により取得したクライアント端末のデバイスの種類に応じた、パーツオブジェクトの承継元の上位クラスに実装された、コントロールを表示する際の調整内容に基づいて、クライアント端末の画面上に対応するコントロールを表示させるHTMLデータを生成する応答処理部とを有する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013−235387号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、特許文献1に記載されたような技術を用いることで、Webアプリケーションの開発に際して、部品(パーツオブジェクト)を再利用可能とするとともに、1つのソースコードでマルチデバイス対応をすることが可能となる。
【0007】
しかしながら、実際は、1つのソースコードによるマルチデバイス対応といっても、例えば、ソースコード中でif文などによりデバイス毎に処理を書き分けることが必要となる場合もある。また、新たにデバイスが追加された場合にソースコードに処理を追記しなければならないなど、画面開発者にとって1つのソースコードによって完全なマルチデバイス対応をすることは困難である。
【0008】
また、マルチデバイス対応として、例えば、デバイスの画面サイズに応じてユーザインタフェースを切り替えることができる場合でも、実際は、ある画面において表示されるコントロールやパーツなどの大きさや表示形式、配置などを変更できるのみであり、複数画面の遷移を伴った変更を行うことは困難である。
【0009】
例えば、PC(Personal Computer)やタブレット端末に比べてスマートフォンの画面サイズは小さく、表示できる情報量に制約がある。そのため、例えば、メニューなどの一覧表示について、PCやタブレット端末では1つの画面に常時全て展開した状態で一覧表示するのに対し、スマートフォンでは、通常時はメニュー表示を指示するアイコン等のみを表示しておき、当該アイコン等を介してメニュー表示が指示された際に別画面としてメニュー一覧を表示する、というようなインタフェースが採用される場合がある。従来技術ではこれらの場合に1つのソースコードで各パターンに対応できるようにすることは困難である。そこで、再利用可能な部品を用いて画面開発を行う場合に、デバイスが異なる場合でも1つのソースコードによってマルチデバイス対応を可能とするような仕組みが望まれる。
【0010】
一方で、上記のような仕組みを実現するには、画面開発者に対して再利用可能な部品を提供することが必要であり、これらの部品を作成・開発する作業にも効率性が求められる。再利用可能な部品は、最終的には背景や他のコントロール、パーツなどと組み合わせて画面上に配置されることから、特に外観においてこれらとの整合・調和が必要となる。この点、再利用可能な部品を単独で開発する場合には、作成→実行(テスト画面上での表示)→外観の確認→外観の再調整、という試行錯誤を繰り返すことになり、テスト環境の準備なども含めて作業効率が大きく低下してしまう。
【0011】
そこで本発明の目的は、部品化された要素を再利用することでマルチデバイス対応のWebアプリケーションに係る画面開発を可能とする仕組みにおいて、再利用可能な部品を、画面全体の外観との整合や調和を図りつつ容易に開発できるようにする開発支援システムを提供することにある。
【0012】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0013】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0014】
本発明の代表的な実施の形態による開発支援システムは、クライアント端末からのリクエストを受けて前記クライアント端末のデバイスの種類に応じた処理結果画面を応答するWebアプリケーションの画面開発を支援する開発支援システムであって、以下の特徴を有するものである。
【0015】
すなわち、開発支援システムは、1つ以上の画面パーツの組み合わせからなり、前記各画面パーツが画面表示される際の外観を前記デバイスの種類毎に規定したテンプレートを有し、前記Webアプリケーションの画面開発に再利用可能なコンポーネントについて、その開発に係る要求を開発者端末を介して受け付けるコンポーネント開発コントローラと、前記コンポーネント開発コントローラからの指示に基づいて、前記コンポーネントについてのソースコードを含む情報を取得するコンポーネント開発モデルと、前記コンポーネント開発コントローラからの指示に基づいて、前記開発者端末から指定されたデバイスの種類に対応した所定の背景画像を前記開発者端末に表示させるとともに、前記背景画像に重ねて、開発対象の前記コンポーネントの外観を表示するためのコンポーネント開発領域を前記開発者端末に表示させるコンポーネント開発ビューと、を有する。
【0016】
そして、開発対象の前記コンポーネントのソースコードが編集された場合に、当該ソースコードに基づいて、開発対象の前記コンポーネントを、前記開発者端末から指定されたデバイスの種類に対応した前記テンプレートによって規定される外観により前記コンポーネント開発領域に表示させる。
【発明の効果】
【0017】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0018】
すなわち、本発明の代表的な実施の形態によれば、部品化された要素を再利用することでマルチデバイス対応のWebアプリケーションに係る画面開発を可能とする仕組みにおいて、再利用可能な部品を、画面全体の外観との整合や調和を図りつつ容易に開発することが可能となる。
【図面の簡単な説明】
【0019】
図1】本発明の実施の形態1であるWebサーバシステムの構成例について概要を示した図である。
図2】(a)、(b)は、本発明の実施の形態1におけるデバイス毎のレイアウトの相違の例について概要を示した図である。
図3】(a)、(b)は、本発明の実施の形態1におけるデバイス毎のレイアウトの相違の他の例について概要を示した図である。
図4】(a)、(b)は、本発明の実施の形態1におけるデバイス毎のコンポーネント表示の相違の例について概要を示した図である。
図5】(a)、(b)は、本発明の実施の形態1におけるデバイス毎のコンポーネント表示の相違の他の例について概要を示した図である。
図6】本発明の実施の形態1におけるエディットビューでの指定内容と、これに伴う画面表示時の処理の流れの例について概要を示した図である。
図7】本発明の実施の形態2である開発支援システムの構成例について概要を示した図である。
図8】本発明の実施の形態2におけるコンポーネントの開発画面の例について概要を示した図である。
図9】本発明の実施の形態2におけるコンポーネントの開発画面の例について概要を示した図である。
図10】本発明の実施の形態2におけるコンポーネントの開発画面の例について概要を示した図である。
図11】本発明の実施の形態2における画面開発を行う場合の処理の流れの例について概要を示した図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0021】
(実施の形態1)
<システム構成>
図1は、本発明の実施の形態1であるWebサーバシステムの構成例について概要を示した図である。本発明の実施の形態1であるWebサーバシステム100は、画面パーツをコンポーネント化してコンポーネント190の一覧として有するとともに、コンポーネント190が配置される1つ以上の画面領域からなるレイアウトのパターンとしてレイアウト180の一覧を有している。そして、各レイアウト180および各コンポーネント190は、それぞれ、デバイス毎に最適化された画面出力をするように作成されたテンプレートを有しており、Webサーバシステム100は、これらに基づいてデバイス毎に最適化された画面出力を自動的に行う。
【0022】
Webサーバシステム100は、例えば、サーバ機器やクラウドコンピューティングサービス上に構築された仮想サーバからなるサーバシステムであり、例えば、図示しないOS(Operating System)や、Webサーバプログラム110、言語処理系120、フレームワーク130などのミドルウェアや基盤等の上で稼働する、もしくはこれらを利用するソフトウェアとして、MVC(Model View Controller)モデルによって開発、実装されたコントローラ140、モデル150、エディットビュー160、コンポーネントビュー170、レイアウト180およびコンポーネント190などの各部(モジュール)を有する。
【0023】
Webサーバプログラム110としては、例えば、Apache(登録商標) HTTP Serverなど、Webサーバにおいて一般的に用いられているものを適宜用いることができる。また、Webサーバプログラム110上で稼働するアプリケーションシステムの基盤となる言語処理系120およびフレームワーク130としては、例えば、動的なWebページを作成するために用いられるPHPなどのスクリプト言語、およびPHPで実装されたZend Frameworkなどを適宜用いることができる。
【0024】
コントローラ140は、MVCモデルにおけるコントローラ(C)としての機能を有し、クライアント端末200上の図示しないWebブラウザ等からのリクエストを受けて、モデル150に対してデータの操作要求を行ってデータを取得したり、エディットビュー160に対して画面表示を要求したりする。モデル150は、MVCモデルにおけるモデル(M)としての機能を有し、ビジネスロジックを実行してデータの操作や取得を行う機能を有する。ビジネスロジック(BL)は、例えば、データベースなどを有する他のBLサーバ300に対して要求を行って実行させるようにしてもよい。
【0025】
エディットビュー160およびコンポーネントビュー170は、MVCモデルにおけるビュー(V)としての機能を有し、モデル150のデータに基づいて画面生成を行って表示する機能を有する。エディットビュー160は、画面の構成を行う機能を有し、後述するように、画面において用いるレイアウト180を指定するとともに、レイアウト180によって表示される領域に配置するコンポーネント190をそれぞれ呼び出して設定を行う。コンポーネントビュー170は、このレイアウト180およびコンポーネント190の情報に基づいてレンダリングを行ってHTML(HyperText Markup Language)データを作成し、クライアント端末200に対して出力する。
【0026】
このとき、コンポーネントビュー170は、後述するように、クライアント端末200のデバイスに応じてレイアウト180およびコンポーネント190に対して設定されている画面表示のためのWebテンプレートをテンプレートエンジン171により処理することで、対象のデバイスに最適化された画面出力を行う。
【0027】
Webテンプレートは、図示するように、クライアント端末200の種別(PC、スマートフォン(スマホ)、タブレット端末)毎に、レイアウト180に対するものとして、それぞれ、テンプレート(PC用)181p、テンプレート(スマホ用)181s、テンプレート(タブレット用)181t(これらを総称してテンプレート181と記載する場合がある)、およびコンポーネント190に対するものとして、それぞれ、テンプレート(PC用)191p、テンプレート(スマホ用)191s、テンプレート(タブレット用)191t(これらを総称してテンプレート191と記載する場合がある)を有する。図1の例では、PC、スマートフォン、およびタブレット端末の別にテンプレート181および191を用意しているが、これに限らず、他のデバイスのものや、同じ種類でも画面サイズが異なったり、OSやWebブラウザが異なるデバイスのものを有していてもよい。
【0028】
テンプレートエンジン171は、テンプレート181および191などのWebテンプレートに規定されたデザインや外観の内容に基づいて実際の画面を作成する機能を有する。なお、テンプレートエンジン171には、例えば、PHPにおいて主に用いられているSmartyなどの一般的なテンプレートエンジンを適宜用いることができる。
【0029】
コントローラ140やコンポーネントビュー170は、Webサーバシステム100として汎用的に提供することができる。また、画面部品としてのレイアウト180やコンポーネント190(テンプレート181および191も含む)は、他の開発案件で作成されたものを再利用したり、対象の開発案件において予め作成されたものを用いたりすることができる。また、モデル150についても、対象の開発案件等において別途作成されたものを用いることができる。一方、エディットビュー160は、画面開発者がソースコードとして作成することになるが、デバイス毎の相違は、テンプレート181や191(およびテンプレートエンジン171)が吸収するため、画面開発者がデバイス毎の相違を意識することは不要である。
【0030】
<レイアウトとコンポーネント>
図2は、本実施の形態におけるデバイス毎のレイアウトの相違の例について概要を示した図である。レイアウトとは、画面全体を1つ以上の領域に区分し、その領域の配置のパターンを指すものであり、図2(a)では、タブレット端末でのレイアウト、図2(b)では、スマートフォンでのレイアウトの例をそれぞれ示している。
【0031】
図2の例では、レイアウト180として「一覧、明細型レイアウト」を選択した場合を示しており、ヘッダ領域(ヘッダ領域401、411)およびフッタ領域(フッタ領域404、414)の他に、複数の項目を一覧表示する一覧領域(一覧領域402、412)と、その中から特定の項目を選択した際にその詳細な内容を表示するコンテンツ領域(コンテンツ領域403、413)とを有するレイアウトについて示している。
【0032】
図示するように、図2(a)のレイアウトでは、1つの画面内に4つの領域が全て配置されている。一方、図2(b)のレイアウトでは、左側の画面において一覧領域412が表示されている状態で、一覧領域412の中から特定の項目を選択すると、右側の画面に遷移して、一覧領域412に代って、選択された項目を表示するためのコンテンツ領域413が表示されることを示している。同一のレイアウト180におけるこのようなデバイス毎の相違は、上述したように、テンプレート181(この場合はテンプレート(タブレット用)181tおよびテンプレート(スマホ用)181s)に規定され、コンポーネントビュー170のテンプレートエンジン171によって実際の画面に反映される。
【0033】
このように、画面上に表示される部品やコントロールの単位だけではなく、画面全体のレイアウト(画面遷移を伴うものも含む)の単位でも、レイアウト180およびテンプレート181によりデバイス毎の相違を吸収・隠蔽する。これにより、デバイスによっては画面遷移を伴うレイアウトを有しているような場合であっても、エディットビュー160についてはデバイスを意識することなく開発することができる。
【0034】
図3は、本実施の形態におけるデバイス毎のレイアウトの相違の他の例について概要を示した図である。図2と同様に、図3(a)では、タブレット端末でのレイアウト、図3(b)では、スマートフォンでのレイアウトの例をそれぞれ示している。図3の例では、レイアウト180として「検索条件、結果表示型レイアウト」を選択した場合を示しており、ヘッダ領域(ヘッダ領域401、411)およびフッタ領域(フッタ領域404、414)の他に、検索の際の条件を入力、指定するパーツ等を表示する検索条件領域(検索条件領域405、415)と、その検索条件に基づく検索結果を表示する検索結果領域(検索結果領域406、416)とを有するレイアウトについて示している。
【0035】
例えば、図3(a)と図2(a)において各領域の配置が異なるように、エディットビュー160において指定するレイアウト180を変更することで、コンポーネントビュー170のテンプレートエンジン171によって各領域のデザイン、外観を自動的に切り替えることができる。
【0036】
図4は、本実施の形態におけるデバイス毎のコンポーネント表示の相違の例について概要を示した図である。図2と同様に、図4(a)では、タブレット端末でのレイアウト、図4(b)では、スマートフォンでのレイアウトの例を示しており、それぞれ、図2の例で示した「一覧、明細型レイアウト」において「メニュー」のコンポーネント190をヘッダ領域401、411に表示させた場合を示している。
【0037】
図示するように、図4(a)のタブレット端末でのレイアウトでは、ヘッダ領域401に4つのメニューボタンが横並びに表示されている。一方、図4(b)のスマートフォンのレイアウトでは、左側の画面において、ヘッダ領域411にはメニューを表示させるアイコンのみが表示されており、このアイコンをタップすると右側の画面に遷移して、ヘッダ領域411が拡張され(ヘッダ領域411’)、この領域にメニューボタンが縦並びに表示されることを示している。同一のコンポーネント190におけるこのようなデバイス毎の相違は、レイアウト180の場合と同様に、テンプレート191(この場合はテンプレート(タブレット用)191tおよびテンプレート(スマホ用)191s)に規定され、コンポーネントビュー170のテンプレートエンジン171によって実際の画面に反映される。
【0038】
なお、本実施の形態におけるコンポーネント190は、1つの画面パーツやコントロールからなるものに限らず、図示するように、複数のパーツやコントロール(図4の例では4つのメニューボタン)の集合や組み合わせによって構成してもよい。
【0039】
図5は、本実施の形態におけるデバイス毎のコンポーネント表示の相違の他の例について概要を示した図である。図3と同様に、図5(a)では、タブレット端末でのレイアウト、図5(b)では、スマートフォンでのレイアウトの例を示しており、それぞれ、図3の例で示した「検索条件、結果表示型レイアウト」において「検索結果一覧」のコンポーネント190を検索結果領域406、416に表示させた場合を示している。図示するように、図5(a)のタブレット端末でのレイアウトでは、検索結果領域406に検索結果一覧が表形式で表示されている。一方、図5(b)のスマートフォンのレイアウトでは、遷移した右側の画面の検索結果領域416に検索結果一覧がリスト形式で縦並びに表示されることを示している。
【0040】
<処理の流れ>
図6は、エディットビュー160での指定内容と、これに伴う画面表示時の処理の流れの例について概要を示した図である。上述したように、画面開発者は、ソースコードとして以下の処理を行うようなエディットビュー160を作成するが、その中では、デバイス毎の相違を意識することなくレイアウト180およびコンポーネント190を指定して配置、設定するだけでよい。デバイス毎に最適化された画面表示は、テンプレート181や191に規定された内容に基づいてコンポーネントビュー170(およびテンプレートエンジン171)が実行時に動的に行う。
【0041】
エディットビュー160では、まず、予め作成されているレイアウト180の一覧の中から、画面表示に用いるレイアウト180を取得する(S01)。この時点ではレイアウト180に設定された各領域にはまだ何も表示すべきコンポーネント190は配置されていない。次に、予め作成されているコンポーネント190の一覧の中から、ステップS01で取得したレイアウト180に配置する1つ以上のコンポーネント190を取得する(S02)。この時点ではまだコンポーネント190には表示すべきデータなどの設定は何もされていない。
【0042】
その後、ステップS190で取得した各コンポーネント190に対して、表示すべきデータとして、モデル150から取得したデータを設定する(S03)。なお、モデル150によるデータの取得は、コントローラ140を介した指示により実行される。次に、データを設定した各コンポーネント190を、ステップS01で取得したレイアウト180における適当な領域に配置されるよう位置指定する(S04)。そして、各コンポーネント190の配置位置を指定したレイアウト180をコンポーネントビュー170に渡して画面描画を指示する(S05)。
【0043】
このとき、クライアント端末200のデバイスの種類に係る情報も併せてコンポーネントビュー170に渡す(もしくはコンポーネントビュー170自身がリクエストメッセージの内容から取得する)。デバイスの種類に係る情報は、例えば、クライアント端末200からのリクエストメッセージのUser−Agentヘッダから取得するなど、公知の技術により取得することができる。なお、ここでのデバイスの種類に係る情報には、機器の種別の他に、例えば、OS、Webブラウザやそのバージョン等の情報も含まれるものとする。
【0044】
コンポーネントビュー170では、渡されたレイアウト180および各コンポーネント190について、それぞれ、デバイスの種類に対応したテンプレート181および191を取得して、テンプレートに規定されているデザインに従ってデータを含めた画面描画を行う。例えば、各コンポーネント190については、デバイスの種類(図6の例ではスマートフォン)に対応したテンプレート(スマホ用)191sを取得して、これに規定されているデザインに基づいてデータを含めてコンポーネント190を画面描画する(図6の例では検索結果の一覧表示)。また、レイアウト180については、テンプレート181sを取得して、これに規定されているデザインに基づいて各領域を描画するとともに、指定された領域の位置に画面描画された各コンポーネント190を配置する(図6の例では検索結果領域416に検索結果の一覧表示を配置する)。
【0045】
以上に説明したように、本発明の実施の形態1であるWebサーバシステム100によれば、画面パーツをコンポーネント化するとともに、コンポーネント190が配置される1つ以上の領域からなるレイアウト180のパターンを有している。そして、各レイアウト180および各コンポーネント190は、それぞれ、デバイス毎に最適化された画面出力をするように作成されたテンプレート181、191を有しており、Webサーバシステム100は、これらのテンプレートを処理するテンプレートエンジン171を有するコンポーネントビュー170を備える。
【0046】
これにより、画面のレイアウトおよびコンポーネントが部品化され、エディットビュー160のソースコードにおいてこれらを呼び出すことにより、デバイスに応じて最適化された画面表示を動的に行うことが可能となる。すなわち、画面開発者は、デバイス毎の相違を意識することなくエディットビュー160のソースコードを作成することができる。さらに、レイアウト180やコンポーネント190におけるデータの処理や振る舞いを制御する機能と、テンプレート181、191によって規定されるデザイン(HTMLやCSS(Cascading Style Sheets)など)とを分離することで、デザイナーによる開発成果物を画面パーツとして容易に取り込むことが可能となる。
【0047】
(実施の形態2)
上記の実施の形態1において、画面開発者は、エディットビュー160のソースコードから部品化されたコンポーネント190を呼び出すことで画面開発を行うことができる。しかしながら、そのためには、部品化されたコンポーネント190を予め作成・開発して画面開発者に対して提供することが必要であり、コンポーネント190を作成・開発する作業にも効率性が求められる。コンポーネント190は、最終的には背景や他のコンポーネント190などと組み合わせてレイアウト180に応じて画面上に配置されることから、特に色彩や大きさなどの外観においてこれら周辺環境との整合・調和を図りつつ開発することが必要となる。
【0048】
そこで、本発明の実施の形態2である開発支援システムは、画面開発者が利用可能なコンポーネント190を、画面全体の外観との整合や調和を図りつつ容易に開発できるようにするコンポーネント開発機能を提供する。具体的には、画面開発者が利用可能なコンポーネント190を、画面全体の外観を表示する背景画像上で外観の整合・調和を確認しながら開発するようなWebアプリケーションを、上記の実施の形態1におけるWebサーバシステム100を利用して、Webサーバシステム100上で稼働する1つのアプリケーションとして実装することで実現する。
【0049】
<システム構成>
図7は、本発明の実施の形態2である開発支援システムの構成例について概要を示した図である。本実施の形態の開発支援システム101は、上述したように、実施の形態1において図1に示したWebサーバシステム100をベースとして構成された開発環境であり、画面開発者が使用するPC等の開発者端末201に対して、再利用可能なコンポーネント190を、画面全体の外観を表示する背景画像上で開発可能とするコンポーネント開発機能を提供するシステムである。
【0050】
開発支援システム101におけるWebサーバプログラム110、言語処理系120、およびフレームワーク130については、実施の形態1の図1に示したWebサーバシステム100と同様であるため、説明は省略する。
【0051】
コンポーネント開発コントローラ141は、MVCモデルにおけるコントローラ(C)としての機能を有し、本実施の形態では、開発者端末201上の図示しないWebブラウザ等からのリクエストを受けて、後述するコンポーネント開発モデル151を介して、開発者端末201を使用して開発者が開発するコンポーネント190のソースコードのテキスト情報を取得する。ソースコードの保存や更新機能を有していてもよい。また、開発対象のコンポーネント190について、後述するコンポーネント開発ビュー161に対してソースコードのテキスト、もしくは実行時の外観を画面表示するよう要求する。
【0052】
コンポーネント開発モデル151は、MVCモデルにおけるモデル(M)としての機能を有し、本実施の形態では、開発対象のコンポーネント190の情報を取得してコンポーネント開発コントローラ141に応答する。これを実現するため、本実施の形態では、全てのコンポーネント190(実際には、当該コンポーネント190のソースコードが記録されたファイル)は、所定のフォルダやディレクトリに配置されているものとする。
【0053】
コンポーネント開発ビュー161は、MVCモデルにおけるビュー(V)としての機能を有し、コンポーネント開発モデル151のデータに基づいて画面生成を行って表示する機能を有する。すなわち、本実施の形態では、コンポーネント開発モデル151が取得した開発対象のコンポーネント190の情報に基づいて、ソースコードのテキストを編集可能なように表示し、もしくは実行時の外観を背景画像と併せて画面上に表示する。
【0054】
背景画像の表示は背景表示部162が行い、コンポーネント190のソースコードのテキスト表示および実行時の外観の表示は開発領域表示部163が行う。コンポーネント190の実行時の外観の画面表示の際には、実施の形態1の場合と同様に、テンプレートエンジン171が、デバイス毎に最適化された画面出力を行うよう作成されたテンプレートを呼び出してこれを処理することで表示する。
【0055】
開発者端末201に表示される画面においてデバイスの種類を指定できるようにすることで、指定されたデバイスに応じたテンプレートおよび背景画像を用いてコンポーネント190の画面表示を切り替えられるようにしてもよい。これにより、同一の開発者端末201上でデバイス毎に画面表示を動的に切り替えてコンポーネント190の外観等を確認することができる。
【0056】
なお、実施の形態1では、コンポーネント190を含む画面を表示するクライアント端末200のデバイスに応じて、レイアウト180を用いて画面表示を最適化するものとしていたが、本実施の形態では、開発中の未完成なコンポーネント190を表示させることから、コンポーネント190の外観を表示させる際にレイアウト180を利用した画面の構成は行わず、固定的な背景画像上に表示させるものとする。従って、図7の構成例では、実施の形態1の図1に示した構成例におけるレイアウト180の一覧を有さない構成となっている。一方でこれに限られず、開発対象のコンポーネント190の外観の確認の際にも、実施の形態1と同様に、レイアウト180を用いて画面上での配置と表示を行うようにしてもよい。
【0057】
また、本実施の形態では、Webアプリケーションの開発環境である開発支援システム101を、実行環境である実施の形態1の図1に示したWebサーバシステム100とは別に独立して実装した場合を例としているが、これらを同一のサーバシステムとして共存させる構成とすることも可能である。また、このサーバシステムを開発者端末201上に構築し、スタンドアロンの開発環境を構成することも可能である。
【0058】
<画面例>
図8図10は、開発支援システム101によって開発者端末201の画面上に表示されるコンポーネント190の開発画面の例について概要を示した図である。開発画面では、画面上部において開発対象のデバイスを選択することができる(図8の例では「PC」が選択されている)。開発者端末201の実際のデバイス種別に関わらず、開発支援システム101は、ここで選択されたデバイスに対応する表示形式とすることで、デバイスをエミュレートする。これを実現するため、例えば、開発者端末201から開発支援システム101に対して開発画面表示のリクエストを送信する際に、リクエストに含まれるデバイスを特定する情報を、ここで選択されたデバイスによって更新する等の対応を行う。
【0059】
図8に示した例は初期画面であり、背景画像164と、これに重ねてコンポーネント開発領域165として白地の枠が表示されている。図8の例では背景画像164の詳細内容は省略しているが、フレームやコントロール、パーツなどの表示の単位や区切りについての例を網掛け枠によって示している。なお、本実施の形態では、背景画像164は、例えば開発対象のWebサイトのトップページ等をスクリーンキャプチャした静的な画像データを用いるものとしているが、これに限られない。例えば、実施の形態1において説明したものと同様の構成により、各コンポーネント190をレイアウト180に基づいて配置して、デバイスの種類に応じて動的に画面描画したものを用いることもできる。
【0060】
開発者は、コンポーネント開発領域165をマウス等によりサイズ変更したり、ドラッグ&ドロップによって適当な位置に移動させたりすることができる。ここで設定されたサイズは、開発されたコンポーネント190が実際に表示される際のサイズとなるよう自動的にソースコードに設定するようにしてもよい。なお、位置については、当該コンポーネント190が実際に利用される際には、実施の形態1において示したように、レイアウト180によって配置位置が規定されることになる。
【0061】
コンポーネント開発領域165は、初期状態の開発モードではテキスト編集が可能なように構成されており、開発者は、コンポーネント開発領域165のサイズおよび位置を設定した後、図9の例に示すように、コンポーネント開発領域165内でソースコードを直接編集する。編集したソースコードは、例えば、図示しない保存ボタン等を介した開発者からの指示・操作により、サーバサイド、すなわち開発支援システム101上にコンポーネント190のソースコードとして直接保存することができる。
【0062】
開発したソースコードに基づいてコンポーネント190の外観等を確認するため、開発者からの指示・操作に基づいて、コンポーネント開発領域165は開発モードから確認モードに切り替えられる。確認モードでは、コンポーネント開発領域165は、対象のコンポーネント190を呼び出し、図10の例に示すように、テンプレートエンジン171を介して実行時の外観を実際に画面上に表示させることができる。開発者は、コンポーネント190の動作や外観について背景画像164との整合・調和などを確認した後、図9の画面に示す開発モードに戻って、再度ソースコードの修正等を行うことができる。
【0063】
なお、ソースコードの編集・保存やバージョン管理等の開発機能として、例えば、Eclipseなどの一般的に利用可能な外部の開発環境を用いることもできる。この場合、開発者は、Eclipse上で直接ソースコードの編集や保存等を行ってもよいし、コンポーネント開発領域165を外部エディタとしてここで編集等を行うようにすることも可能である。
【0064】
図11は、開発支援システム101によって開発者端末201上で画面開発を行う場合の処理の流れの例について概要を示した図である。ここでは、図8図10の画面例において示した処理の流れの概略を示しており、まず、開発支援システム101のコンポーネント開発ビュー161における背景表示部162が、開発者端末201の図示しないWebブラウザ上に背景画像164を表示させる。背景画像164のデータは、例えば、開発支援システム101に予め登録しておいてもよいし、開発者が随時指定できるようにしてもよい。さらに、コンポーネント開発ビュー161における開発領域表示部163が、白地のコンポーネント開発領域165を背景画像に重ねて表示させて開発モードとする。
【0065】
なお、コンポーネント開発領域165は、例えば、IFRAMEタグによるインラインフレームとして、開発者端末201上において当該開発画面を表示している図示しないWebブラウザに対して入れ子のブラウザ要素として形成することができる。また、上記の例では、新規にコンポーネント190を開発するものとし、白地のコンポーネント開発領域165を表示させているが、開発者からの指示により既存のコンポーネント190を修正のために呼び出して、そのソースコードを表示させるようにしてもよい。
【0066】
開発者は、図8に示したように、コンポーネント開発領域165のサイズおよび位置を設定した上で、図9に示したようにソースコードを作成し保存する。コンポーネント190のソースコードは、開発支援システム101上の所定のフォルダやディレクトリに保存される。そして、開発者からの指示等により開発モードから確認モードに切り替えられると、コンポーネント開発ビュー161は、対象のコンポーネント190を呼び出して、テンプレートエンジン171により外観を形成し、図10に示すようにコンポーネント開発領域165上に表示させる。
【0067】
ソースコードの開発環境として、Eclipseなどの外部の開発環境を用いる場合は、例えば、コンポーネント開発領域165は常時確認モードとなっており、Eclipse上で行われたソースコードの更新・保存等を、コンポーネント開発ビュー161の開発領域表示部163が監視することで、更新された対象のコンポーネント190を呼び出して、コンポーネント開発領域165に動的に外観を表示させることができる。
【0068】
以上に説明したように、本発明の実施の形態2である開発支援システム101によれば、開発者が、開発者端末201上において背景画像164上に重ねて表示されたコンポーネント開発領域165上で、コンポーネント190のソースコードの開発と、実行による外観表示とを随時切り替えて行えるようにする。これにより、画面全体での外観の整合・調和などを適宜確認しながら、コンポーネント190の開発を効率的に行うことが可能となる。
【0069】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【産業上の利用可能性】
【0070】
本発明は、マルチデバイスに対応した画面表示を行うWebアプリケーションの開発を支援する開発支援システムに利用可能である。
【符号の説明】
【0071】
100…Webサーバシステム、101…開発支援システム、110…Webサーバプログラム、120…言語処理系、130…フレームワーク、140…コントローラ、141…コンポーネント開発コントローラ、150…モデル、151…コンポーネント開発モデル、160…エディットビュー、161…コンポーネント開発ビュー、162…背景表示部、163…開発領域表示部、164…背景画像、165…コンポーネント開発領域、170…コンポーネントビュー、171…テンプレートエンジン、180…レイアウト、181p…テンプレート(PC用)、181s…テンプレート(スマホ用)、181t…テンプレート(タブレット用)、190…コンポーネント、191p…テンプレート(PC用)、191s…テンプレート(スマホ用)、191t…テンプレート(タブレット用)、
200…クライアント端末、201…開発者端末、
300…BLサーバ、
401…ヘッダ領域、402…一覧領域、403…コンテンツ領域、404…フッタ領域、405…検索条件領域、406…検索結果領域、411、411’…ヘッダ領域、412…一覧領域、413…コンテンツ領域、414…フッタ領域、415…検索条件領域、416…検索結果領域
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11