オープンソースCMS「ZOMEKI」を利用した 業務システムの開発手法 第2版 2013年11月25日 サイトブリッジ株式会社
Ruby / Rails を利用した業務システム開発の課題 開発での各種の課題 1.プログラマが中心の作業となり、開発期間と開発費の圧縮が難しい。 2.Webページの構成がプログラムにより固定となり、システム完成後に変更しにくい。 3.公開画面や管理画面の枠組みをシステムごとに毎回作ることになり、開発効率が悪い。 4.Ruby / Rails のバージョンアップへの対応方法が個々のシステムで異なり、対応が容易ではない。 とりあえずデータを表示するのが優先であり、完成度の高いページを作る余裕がない システムが完全に完成しないと、データの入力が行えない 設計の枠組みがないため、ゼロから考えることになる システム設計 プログラミング サイト構築 データ入力 総合試験 Railsの機能を使い、ゼロから全部作ることになる 担当プログラマだけが簡単な総合試験を行うだけになることがある
スクラッチでの開発では3つの階層が新規開発となる ZOMEKIの機能階層 ZOMEKIにて業務システムの開発を行う場合、業務システム専用のコンテンツ(プログラム・モジュール)を開発し、そのコンテンツを利用して、管理画面および公開画面の機能を実現する。 一般的なホームページ制作の場合、ZOMEKIに標準的に実装されている記事コンテンツやカテゴリタイプコンテンツを利用して、ホームページを構築している。 Rails上にてスクラッチで業務システムを開発すると、これら3つの階層の枠組みがないため、すべての機能を開発することとなる。 業務システム専用のコンテンツを開発 業務システムの画面をCMS機能で構築 ホームページ用コンテンツを利用して構築 スクラッチでの開発では3つの階層が新規開発となる 業務システム ホームページ 業務システム 業務システム用コンテンツ 記事コンテンツなど ZOMEKI Ruby on Rails Ruby CentOS
コンテンツによる管理画面と公開画面の対応 コンテンツはデータの入力画面とデータの表示画面を生成する。 業務処理をコンテンツとして実装することにより、入力データを処理して、その結果を画面に表示できる。 コンテンツのデータ入力画面からのデータを格納するテーブルが存在する。 データ入力 画面 データ表示 画面 コンテンツデータ 管理画面にコンテンツのデータ入力画面の基本的な枠組みがある コンテンツ CMSの機能により、柔軟なデータ表示画面の構成が可能 業務処理をコンテンツとして実装
コンテンツによる公開画面の生成 コンテンツに入力した各種のデータは、CMS機能により公開画面に表示する。 また管理画面にてレイアウトを変更すると、公開画面の表示形式を柔軟に変更できる。 カテゴリ一覧ピースにより分野一覧を表示 カテゴリタイプコンテンツ [[piece/ category]] カテゴリ一覧ピース 記事ページを生成し、記事の内容を表示 [[content]] 汎用記事コンテンツ
コンテンツとピースの違い 業務ロジックは、ZOMEKIのコンテンツまたはピースとして実装する。 コンテンツとピースの違いは次に示すものである。 コンテンツと対応するピースを開発し、それらをレイアウトに配置して公開画面を構成する。 ■コンテンツ ・ページを作成できる。 ・ページ送りを生成できる。 ・データの登録UIを持ち、登録されたデータを管理する。 ・レイアウトに[[content]]で記述 ・ステータスを持つ場合がある。 (カテゴリタイプコンテンツの現在のページのカテゴリなど) ・管理画面のコンテンツメニューから操作 ■ピース ・ページを作成できない。 ・ページ送りを生成できない。 ・日々の運用で利用するようなデータ登録UIは持たない。 ・レイアウトに[[piece/xxx]]で記述 ・ステータスを持たない。 ・管理画面のデザイン-ピースメニューから操作 記事一覧を表示するピース 記事を管理するコンテンツ 汎用記事一覧 汎用記事コンテンツ 新着タブ
ホームページ用コンテンツの種類 ZOMEKIのホームページ向けのコンテンツとして、下記の種類がある。 作成したコンテンツは、CMS機能により公開画面に自由に配置することができる。 コンテンツ作成画面 現在、サイト構築に利用しているコンテンツは次のもの。 <コンテンツ一覧> 汎用記事 汎用カテゴリタイプ グローバルナビ 汎用カレンダー 汎用アンケート マップ アクセスランキング 広告バナー 承認フロー 関連ワード 作成するコンテンツの種別を選択する
コンテンツ一覧画面 お知らせ・注目情報記事 汎用記事コンテンツ 定型記事 災害・被災情報記事 コンテンツ種別は、コンテンツの雛形となっているため、それぞれのコンテンツ種別から複数のコンテンツの実体を生成することができる。 複数のコンテンツを作成し、用途ごとに使い分けることができる。 コンテンツ一覧画面 作成したコンテンツはコンセプトと呼ぶ論理的なフォルダに格納される。 管理画面の左上のコンセプトの選択を行うと、選択したコンセプトに含まれるコンテンツの一覧が表示される。 コンセプトの選択 記事コンテンツを分けると、記事一覧など記事の管理がそれぞれ別になる 汎用記事コンテンツの種別で、3つのコンテンツを作成 お知らせ・注目情報記事 汎用記事コンテンツ 定型記事 災害・被災情報記事 各種記事コンテンツを作成
コンテンツの画面構成 コンテンツは専用のデータ登録、一覧画面を保有し、データの各種操作が行えるようになっている。 データ登録 画面 データ一覧 画面 汎用記事コンテンツ 汎用記事一覧ピース データ詳細 画面 コンテンツ専用の各種テーブル
コンテンツのデータ登録画面(汎用記事コンテンツ) 記事登録画面 この部分のメニューがコンテンツ専用のメニューに切り替わる。 コンテンツには専用のデータ入力画面があり、コンテンツが処理する対象のデータを入力できるようになっている。 コンテンツを選択すると、管理画面メニューの第2階層が選択したコンテンツに関する専用のメニューに切り替わる。 業務フローにより状態が遷移する場合などは、この第2階層のメニューを業務フェーズごとに分けて、業務項目の選択に利用する。 入力項目が多数にあり、入力画面が縦に長くなりすぎる場合は、タブにより入力画面を切り替える。 入力項目が多い場合はタブに分ける
コンテンツのデータ一覧画面(汎用記事コンテンツ) 記事一覧画面 コンテンツに入力したデータは、それぞれのコンテンツでのデータ一覧画面にて一覧表示する。 データ一覧の絞り込みや検索をデータ一覧画面にて行えるようにする。 データの詳細は、データ一覧右端の詳細を選択して表示する。 記事一覧の各種絞り込みコマンドを配置 詳細を選択すると、詳細情報を表示する画面に切り替わる コンテンツに入力したデータを一覧表示
コンテンツのデータ詳細画面(汎用記事コンテンツ) 記事詳細画面 記事に対する各種コマンドを配置 コンテンツに入力したデータを詳細画面で確認できる。 個々の記事に対する操作コマンドは詳細画面に配置している。 この画面はビューであるため、編集を行うには編集コマンドを選択する
コンテンツのデータ登録画面(カテゴリタイプコンテン ツ) カテゴリタイプ登録画面 カテゴリタイプコンテンツは、分野などのカテゴリのツリーを作成するコンテンツである。 各分野での記事表示の形式などを登録する。 この部分のメニューがコンテンツ専用のメニューに切り替わる。
コンテンツのデータ一覧画面(カテゴリタイプコンテン ツ) カテゴリタイプ一覧画面 カテゴリは階層構造であるため、カテゴリ一覧で分野名を選択すると、下層の分野一覧が表示される。
記事コンテンツ側から利用するカテゴリタイプコンテンツを指定する。 複数のコンテンツの連携での画面表示 右の「届出・登録・証明」のページでは、複数の記事コンテンツのデータから、カテゴリタイプコンテンツにより、特定のカテゴリのデータのみを絞り込み、公開画面に表示している。 このように複数のコンテンツを連携させて、一つの公開画面を生成することもできる。 お知らせ・注目情報記事 カテゴリタイプ コンテンツ 定型記事 FAQ記事 記事コンテンツ側から利用するカテゴリタイプコンテンツを指定する。
コンテンツ間連携の設定(汎用記事コンテンツの場合) 汎用記事コンテンツとカテゴリタイプコンテンツの連携の場合、汎用記事コンテンツの記事設定にて、連携するカテゴリタイプコンテンツを選択する。 「カテゴリタイプ」という名称のカテゴリタイプコンテンツを選択している。 利用するカテゴリを設定 管理画面に表示するカテゴリを設定 管理画面に表示しない場合、初期値として設定を固定
開発の期間と費用の圧縮 システム設計 プログラミング 総合試験 データ入力 サイト構築 コンテンツの設計なのでわかりやすい コンテンツのみのプログラミングなので速い プログラマだけでなく、Webクリエイタやデザイナなど多くのメンバーで検証や対応が可能 プログラミング 総合試験 管理画面の枠組みがあるので、早期のデータ入力が可能 データ入力 従来はプログラマが順次行っていた開発作業を多様な担当者が分業し、並行して進められる。 このような共同作業は、ZOMEKIという共通の開発プラットフォームがあることにより実現できる。 サイト構築 コンテンツやピースが出来たらすぐサイトに構築に利用可能
高いレイアウトの自由度(公開画面) 公開画面は、テンプレートとそこに配置するコンテンツおよびピースにより構成する。 すべての操作を管理画面から行えるため、管理画面を操作することにより、システム完成後も自由に公開画面の構成を変更することができる。 一般に、スクラッチで開発した業務システムでは公開画面の構成を変更することが容易ではないが、ベースにCMSを利用すると、Webクリエイタによる画面構成の変更が可能となる。 ZOMEKIの画面構成の構造
管理画面の基本的な枠組みを標準化 ZOMEKIの管理画面には、物理ディレクトリの管理、ユーザ/グループの管理、複数サイトのドメイン管理など、汎用的な管理機能が標準的に実装されている。 これらの各種機能を活用すると、開発しなければならない管理機能を省略することができる場合がある。 また開発フェーズの初期の段階から、開発中のプロダクトの管理業務に利用することができる。 物理ディレクトリの一覧画面
Ruby/Railsのバージョンアップへの対応 Ruby / Railsを利用したシステムは、Ruby / Railsのバージョンアップに長期的に対応するためのコストが大きい。 ZOMEKIを開発ベースとして利用することにより、ZOMEKI以下の部分の保守コストを削減でき、業務システム固有の部分の保守に注力することができる。 ZOMEKIと業務用コンテンツのインタフェース部分の仕様が変わらなければ、ZOMEKI以下をバージョンアップしても、問題なく稼働すると考えられる。 ZOMEKIとのインタフェースに変更がなければ、ZOMEKIをバージョンアップしても問題なく稼働する。 ZOMEKI以下の階層については、ZOMEKIの開発プロジェクトで動作試験済み 業務システム 業務システム用コンテンツ ZOMEKI バージョンアップ可能 Ruby on Rails Ruby CentOS
今後の開発構想 現在、存在するコンテンツはすべてデータを管理画面から入力し、公開画面でデータを表示するのみの動作となっている。 公開画面においてすべてのデータを操作を行うことを前提とするコンテンツはまだ存在しない。 公開画面からのデータ操作は操作するユーザを特定し、そのユーザの権限に応じた操作範囲を設定する必要があるため、公開画面でのログイン認証を行うこととなる。 公開画面にてログイン認証を行い、ユーザに対応した公開画面を動的に生成するコンテンツは、グループウェア対応コンテンツとして、来年度開発する計画で仕様の検討を進めている。
サイトブリッジ株式会社概要 http://www.sitebridge.co.jp/ サイトブリッジ株式会社概要 http://www.sitebridge.co.jp/ ZOMEKIについてのお問い合わせは、下記までお願いします。 市町村公式サイト、地域・観光ポータルの構築などを承っております。