Upload
imj-group
View
405
Download
2
Embed Size (px)
Citation preview
Copyright©IMJ Corporation.All Rights Reserved.
「Jelly CMS開発ストーリー ~次世代CMSの背景・コンセプト・機能~」
IMJ JellyCMSフォローアップセミナー
2014.11.06 システム開発本部/チーフアーキテクト 野瀬 直樹
第1.0版
Copyright © IMJ Corporation. All Rights Reserved. 1
自己紹介
野瀬 直樹 株式会社 アイ・エム・ジェイ システム開発本部 チーフアーキテクト 経歴 ・株式会社ラック ・株式会社NTTデータ先端技術 ・現職:アイ・エム・ジェイ(IMJ Mobile含む)
Copyright © IMJ Corporation. All Rights Reserved. 2
My Works
社内向けソフトウェア基盤の開発をリード
・ Jelly Framework(2008-2010) - フィーチャーフォン向け案件で実績多数
・ Jelly2 Framework(2011-2012) - PC向けに汎用化、実績多数
・ Jelly CMS(2013-)
Copyright © IMJ Corporation. All Rights Reserved. 3
アジェンダ
1. Jelly CMSとは?
2. 開発の背景
3. 設計思想
4. 今後の課題
Copyright © IMJ Corporation. All Rights Reserved. 4
Section#1
1. Jelly CMSとは?
Copyright © IMJ Corporation. All Rights Reserved. 5
Section#1
オウンドメディアのPDCAを加速するCMS
更新頻度の高いWebサイト運用を 少人数でカバーできるCMS
Copyright © IMJ Corporation. All Rights Reserved. 6
Section#1
①Webサイト運用のPDCAを幅広くサポート
②運用効率を下げる要素を丁寧に除去
IMJのノウハウを凝縮
Copyright © IMJ Corporation. All Rights Reserved. 7
Section#1
デモンストレーション
Copyright © IMJ Corporation. All Rights Reserved. 8
Section#2
2. 開発の背景
Copyright © IMJ Corporation. All Rights Reserved. 9
Section#2
CMSの光と闇
光 = 「だれでも簡単にサイトが更新できます!」
闇 = 「…」
Copyright © IMJ Corporation. All Rights Reserved. 10
Section#2
闇① 編集の自由度が低い
Copyright © IMJ Corporation. All Rights Reserved. 11
Section#2
例えばこんな変更が困難な場合が…
ヘッダ
フッタ
本文 (編集エリア)
ナビ
ヘッダ
フッタ
本文 (編集エリア)
ナビ
バナー
通常のレイアウト あるページだけバナーを入れたい
Copyright © IMJ Corporation. All Rights Reserved. 12
Section#2
• CMSによるコンテンツ編集には必ず制約がある • 決められたレイアウトのページしか作れない • 所定のデータ構造に従ったコンテンツしか作れない • 等…
編集のバリエーションを増やすには開発ベンダに依頼
自由をあきらめるか、コスト増を容認するかの二択
Copyright © IMJ Corporation. All Rights Reserved. 13
Section#2
闇② カスタマイズが困難
Copyright © IMJ Corporation. All Rights Reserved. 14
Section#2
• スクラッチ開発で会員システムを構築 • CMS管理下のコンテンツに会員専用ページがある
会員システム CMS
会員専用ページ
例えば…
Copyright © IMJ Corporation. All Rights Reserved. 15
Section#2
CMSはユーザが会員としてログイン済みだと どうやって知るのか?
会員システム CMS
会員専用ページ
Copyright © IMJ Corporation. All Rights Reserved. 16
Section#2
解決策: 振り分けシステムを導入
会員システム CMS
会員判定
振り分けシステム
コンテンツ取得
Copyright © IMJ Corporation. All Rights Reserved. 17
Section#2
会員システム CMS
会員判定
振り分けシステム
コンテンツ取得
• メリット • CMSの改修が不要
• デメリット • 仕組みが複雑
Copyright © IMJ Corporation. All Rights Reserved. 18
Section#2
CMSの制約によりカスタマイズ要件を満たせない
要件を満たすためにシステム構成が複雑化
保守性を捨てて複雑なシステム構成を容認するか、要件をあきらめるかの二択
Copyright © IMJ Corporation. All Rights Reserved. 19
Section#2
闇③ 運用性への考慮の欠如
Copyright © IMJ Corporation. All Rights Reserved. 20
Section#2
例えば以下のような運用作業を実施するとします。
以下のコンテンツを11/6 17:00 にアップ
× 3
× 7
Webページ
画像
Copyright © IMJ Corporation. All Rights Reserved. 21
Section#2
落とし穴①公開もれのリスク
× 3
× 7
Webページ
画像
編集中
× 3
× 6
Webページ
画像
公開中
Copyright © IMJ Corporation. All Rights Reserved. 22
Section#2
落とし穴② コンテンツ登録作業が2回必要
× 3
× 7
Webページ
画像
ステージング環境
本番環境
登録
登録
Copyright © IMJ Corporation. All Rights Reserved. 23
#Section2
11/1 0:00
ステージング環境
11/3 12:00
11/2 10:00
更新頻度が高いサイトで深刻な問題
11/4 0:00
11/1 0:00
本番環境
11/3 12:00
11/2 10:00
11/4 0:00
11/2 12:00
Copyright © IMJ Corporation. All Rights Reserved. 24
Section#2
CMSの運用性に対する考慮が浅い
効率を捨てて安全性を重視した運用手順を構築するしかない
Copyright © IMJ Corporation. All Rights Reserved. 25
Section#2
「簡単さ」の代償は大きい
開発コストと運用効率が犠牲に
CMSの「得意なパターン」から外れると…
Copyright © IMJ Corporation. All Rights Reserved. 26
Section#2
「要件定義が重要」だが…
CMSの闇の部分が常にリスクに
• 事前に要件を完全に分析することは難しい • 全てのCMS製品を検討するわけにはいかない • Webサイトは成長する、要件は変わる
Copyright © IMJ Corporation. All Rights Reserved. 27
Section#2
既存CMSの多くは デジタルマーケティングの基盤として脆弱
Copyright © IMJ Corporation. All Rights Reserved. 28
Section#2
オウンドメディアのPDCAを加速するCMS
更新頻度の高いWebサイト運用を 少人数でカバーできるCMS
Copyright © IMJ Corporation. All Rights Reserved. 29
Section#2
①Webサイト運用のPDCAを幅広くサポート
②運用効率を下げる要素を丁寧に除去
基本を見直す+αの価値
PDCAのDo以外の機能を実現
Copyright © IMJ Corporation. All Rights Reserved. 30
Section#3
3. 設計思想
Copyright © IMJ Corporation. All Rights Reserved. 31
Section#3
• 簡単さと自由のバランスを取る • カスタマイズにCMSの制約を課さない • 運用性に対する考慮 • Webサイト運用のPDCAを幅広くサポート
Copyright © IMJ Corporation. All Rights Reserved. 32
Section#3
簡単さと自由のバランスを取る
~ページとアセット~
Copyright © IMJ Corporation. All Rights Reserved. 33
Section#3
アセット=ページを構成する部品 ページ=アセットの組み合わせ
ヘッダ
フッタ
本文 ナビ
• ヘッダ、本文、ナビ、フッタは全てアセット
Copyright © IMJ Corporation. All Rights Reserved. 34
Section#3
アセットは入れ子に出来る
ヘッダ
フッタ
本文 ナビ
段落
段落(画像あり)
新着
おすすめ
• あらかじめ汎用的なアセットを定義しておく
• アセットは自由に組み合わせることができる
Copyright © IMJ Corporation. All Rights Reserved. 35
Section#3
例えば、バナーを追加する
ヘッダ
フッタ
本文 ナビ
段落
段落(画像あり)
新着
おすすめ
• アセットの組み合わせが自由な分、編集の自由度が上がる
• 汎用的なアセットを使いまわすことで、サイトのレギュレーションが保たれる
バナー
Copyright © IMJ Corporation. All Rights Reserved. 36
Section#3
カスタマイズにCMSの制約を課さない
~標準技術ベースのアーキテクチャ~
Copyright © IMJ Corporation. All Rights Reserved. 37
Section#3
一般的なCMSのアーキテクチャ
CMS
プラグインA プラグインB プラグインC
• CMSがWebアプリケーションの基盤 • 機能拡張はCMSが提供するプラグイン機構を利用する • 拡張性がCMSのプラグイン機構の制約を受ける
Copyright © IMJ Corporation. All Rights Reserved. 38
Section#3
Jelly CMSのアーキテクチャ
Zend Framework 2
Jelly CMS 機能A 機能B
• Zend Framework2 がWebアプリケーションの基盤 • Jelly CMSはZend Framework2のモジュール • 追加機能もZend Framework2のモジュールとして実装 • 追加機能の実装時にJelly CMSの知識は不要
Copyright © IMJ Corporation. All Rights Reserved. 39
Section#3
運用性に対する考慮
~タスク~
Copyright © IMJ Corporation. All Rights Reserved.
◯月×日 XX時XX分公開
コンテンツ
40
Section#3
タスクとは
Webページ 画像 ソーシャル
メディアへの投稿 A/Bテスト
同じタイミングで公開されるコンテンツを管理しやすい単位でまとめた作業フォルダのようなもの
配信
申請 承認 公開
ワークフロー
Copyright © IMJ Corporation. All Rights Reserved. 41
Section#3
マルチステージ配信
編集 本番配信申請 本番配信
ステージング環境 本番環境
編集中はステージング環境にのみ配信可能。
申請が承認されると本番配信が可能に。
Copyright © IMJ Corporation. All Rights Reserved. 42
Section#3
PDCAを幅広くサポート
~レポートとダッシュボード~
Copyright © IMJ Corporation. All Rights Reserved. 43
Section#3
Copyright © IMJ Corporation. All Rights Reserved. 44
Section#3
新しい概念を導入し、既存CMSの限界を突破
デジタルマーケティングの基盤として耐えうる製品を目指す
Copyright © IMJ Corporation. All Rights Reserved. 45
Section#4
4. 今後の課題
Copyright © IMJ Corporation. All Rights Reserved. 46
Section#4
2014年上期は実プロジェクト からのフィードバックが多数
Copyright © IMJ Corporation. All Rights Reserved. 47
Section#4
主な機能追加
• LDAP認証に対応 • 静的HTMLの出力 • メール通知、警告表示の強化
Copyright © IMJ Corporation. All Rights Reserved. 48
Section#4
細かい修正依頼に多数対応 • メタデータ編集ダイアログで、画像を編集した時に、ダイアログが画面からはみ出てしまう場合がある • metadataレンダラ―でデフォルト値がnullのメタデータが返却されない • クリーニングバッチに、fs.chunks、delivery_content、deliverable、delivery_jobのクリーニング処理を追加してほしい • プロパティカテゴリタイプがHTMLであるアセットを編集した時にデフォルト値がリセットされる • ページコンテンツカテゴリのメタデータで画像参照のデフォルト値を設定しない場合はキーごと指定なしにしなければ
ならないのが分かりづらい • 複数サイトのファイルコンテンツカテゴリを登録する際に、specが同じものが登録してしまうとプレビューが正常にでき
なくなってしまう • アセット編集画面のCodeMirrorの検索機能をONにしてほしい • 使わないレポート種別は非表示にしたい • ログイン種別のプルダウンの順番を指定できるようにしたい • Windows環境で配信したものをそのまま閲覧できるようにしたい • LDAPログイン直後のID/PASS取得を、ログインユーザでバインドしないようにしたい • プロパティエディタを1つだけ持つアセットをページ編集画面でプロパティエディタ編集をした時にラベルが表示されな
い • パスワード変更画面で、現在のパスワードと新しいパスワードが同じ場合にエラーにしたいです • MongoDBのバージョン違いにより、重複エラー時のエラーコードが異なる • LDAPパスワードのバリデーションが差し替え可能になっていない • datetime型のプロパティエディタタイプのマージ • 【マニュアル】配信設定のトランスポートタイプの定義の一覧が欲しい • アセットのJS/CSSのインポートを、複数のコンテンツカテゴリで指定したい • アセットIDをdata属性でも保持できるようにする
Copyright © IMJ Corporation. All Rights Reserved. 49
Section#4
2014下期開発項目(検討中) • 配信・配信取消のメールの件名と本文を変えたい • UI上から消せなくなったプロパティをページ保存時に消したい • プロパティエディタのコピー時にCopyOf[プロパティ名]_[数字]という名称になるが、CopyOfを取ってほしい • テキストファイルをCMS上で編集出来るようにする • ボタンにツールチップを設定する • ワークフローステータスがボタンだとわかりやすくする • 「編集不可」のプロパティを作成出来るようにする • コンテンツ編集画面で編集不可の状態がもっとわかりやすいようにする • タスクに連番のIDを振ってほしい • タイムラインに表示するタスクをフィルタ出来るようにする • タスク検索で詳細条件を指定できるようにする • コンテンツの更新履歴を表示する • プロパティエディタのサイズが小さい。もっと大きくならないか • コンテンツエクスプローラの一覧画面でリスト表示のビューが欲しい • 配信確認ダイアログで予約配信をデフォルトにする • コンテンツを別のタスクにコピー出来るようにして欲しい • コンテンツの競合を検知する • ファイルの差分を表示できるようにしたい • 配信失敗にみんな気づいていない人が多すぎるので、もっと強調するようにしたい • ページプレビュー時に一部アセットの枠を表示したくないケースがある • アセット選択ダイアログでアセットを絞り込んで表示したい • 画像ファイルを選ぶ際、ルートからではなく既に入っている画像と同じ階層から選べるようにしたい • 画面のボタンを選択した時に、名前を表示するようにしてほしい • 本番環境に即時配信した時はに、配信予定日時をその即時配信した時の日時に更新したほうが良いのでは? • テンプレート管理のメニューのソート順を指定できるようにしたいです
Copyright © IMJ Corporation. All Rights Reserved. 50
Section#4
想定を超える運用担当者の人数、 更新頻度への対応が急務
Copyright © IMJ Corporation. All Rights Reserved. 51
Section#4
Webサイト運用をワンストップで 引き受ける弊社だからこそ 迅速な対応が可能
Copyright © IMJ Corporation. All Rights Reserved. 52
Section#4
Jelly CMSは 今後も成長を続けます!
ご清聴ありがとうございました
<IMJのサービスに関するお問い合わせ>
株式会社 アイ・エム・ジェイ マーケティング&セールス本部