[製品紹介]
ECモール構築に機能強化
WebSphere Commerce Suite 5.1
山口崇(やまぐち たかし)
日本アイ・ビー・エム システム・エンジニアリング
2001/5/19
コマース製品は、ECサイトを短期間でコストをかけず構築すること、そしてマーケットに遅れることなく、顧客ニーズをつかんだサイトに常に変われることを目的とした製品だ。今回は日本アイ・ビー・エム システム・エンジニアリングの山口崇氏に、IBMのコマース製品であるWebSphere Commerce Suite 5.1を紹介していただく。(編集局) |
インターネット上にストアを開き、広くWebユーザーに対し商品の販売を行う。こうしたECサイトを作成/管理するためには多彩な機能が求められる。サイトを訪れる顧客であるショッパー側から見ると、まず商品カタログの表示、ショップカート機能、配送料金や税金の計算を経てオーダー実行といった機能は最低限必要で、加えてオークションや個人情報に基づいた商品のお薦めなどといった機能を利用して差別化を図る。転じてサイトの管理者側から見ると、販売する商品の管理(商品入れ込み、変更、在庫の確認)、売り上げオーダーの手配、ショッパーの登録情報管理などに始まり、ショッパーの差別化やキャンペーン/オークションの管理など、ショッパーに対しきめ細かなサービスを提供するための機能が重要視される。
ECサイトの特徴として、あるサイトが取り入れた新機能をほかのサイトでも追従して取り入れるケースが多い。そのため多彩な新機能をいち早く取り込んだ多くのコマース製品が市場に出回っている。各製品は、もちろん商品表示やショップカートといった基本機能を共通で提供しているが、加えてそれぞれの特色を打ち出すためサポートしている機能に差がある。ECサイトを構築したいユーザーは、まずこれから構築するサイトに必要とされる機能を、その製品が提供しているかが第一のフィルターになるといえる。さらには、インターネット・アプリケーションは、システムを構築してサービスを開始すれば終わりというわけでなく、開店後もサービスを通じてショッパーからの要望を吸い上げ、定期的なリニューアルを行う必要がある。よって、将来的な機能拡張も見越したうえでの機能選定が必要になるだろう。
図1 ECツールに必要とされる要件 |
ECサイト開発のうえでコマース製品を使用するメリットは、開発期間の短期化とコスト削減の実現、ショッパーへのより良い機能の提供だが、買ったそのままの状態で使うというケースはほとんどなく、機能にせよHTML的な見た目にせよ、ユーザーの希望に応じたカスタマイズを行うことになる。そうしたカスタマイズや運用管理を行う際には、製品が採用している技術基盤が重要視されることになる。ECツールを構成する基本的なコンポーネントとしては、多くの製品が「Webサーバ」、「データベース・サーバ」、そしてその両者を取り持つ「アプリケーションサーバ」の3つのコンポーネントから成り立っている。DBから取得した情報をブラウザにHTMLとして表示、ブラウザから受けた要求をDBに保管するといったECサイト機能を提供するのはこのアプリケーションサーバ上で書かれたプログラムとなるため、顧客要件に応じたカスタマイズを行う場合にそのオープン性や開発生産性が重要視される。
WebSphere Commerce Suiteとは |
WebSphere Commerce Suite(以下WCS)はIBMのソフトウェアであるWebSphereファミリーの1製品として位置付けられている。その中で、ECサイト構築ツールとして提供されているのがWCSだ。
WCSは2001年1月30日に最新バージョンである5.1が発表され、完全Java製品としてリニューアルされた。WCSは、バージョン3までは「Net.Commerce」と呼ばれ、1996年のバージョン1からバージョンアップを重ねてきた。現在では、大手の顧客としてはBtoB大手であるASKULなどで採用されてきている。
WCSの製品ラインナップには、すべての機能を提供するPro Editionと中小規模サイト向けの機能限定版であるStart Editionが用意されている。実行環境であるサーバ製品のWCSと対になる形で、WebSphere Commerce Studioという開発環境があるが、WCSのそれぞれのEditionに応じて、WebSphere Commerce StudioもProfessional Developer's EditionとDeveloper's Editionが提供される。WebSphere Commerce StudioにはVisualAge for Javaをはじめとした開発ツール群がバンドルされ、こうした開発ツールを使用してWCSサイトのカスタマイズの際の開発生産性を向上させることが可能になる。本稿では、Pro Editionをベースに解説する。
WebSphere Commerce Suite V5.1の機能 |
WCS V5.1は、正確にはECモール構築用のツールだ。ECモールとは、サイト内に複数の店舗(ストア)を持ち、その中で商品の販売を行う形態をとる。ショッパーは各ストアで商品を参照し、必要に応じてメンバー登録を行い、欲しい商品をショップカートに入れてオーダーを実行するといったことができる。ここまでは通常のECツール機能としての基本線だが、WCS独自の機能としてさらに以下のような機能を提供している。
機能 | 概要 |
パーベイシブ・サポート | 携帯電話端末向けのECサイト構築用のプラグイン |
マルチカルチャー・ サポート |
1店舗内で複数言語・通貨のサポート |
キャンペーン機能 | ショッパーの属性情報に基づき個別化された商品推奨を行う機能 |
管理ツール | ストアの作成、商品やショッパーなどの管理用のブラウザツール |
オークション | オンラインオークションを行う機能 |
商品アドバイザー | 商品比較、QA形式などでショッパーが商品の絞り込みを行うのを補助する機能 |
WebSphere Commerce Studio |
VisualAge for Javaなどを含んだ開発環境、WCSのオプション製品 |
WebSphere Catalog Manager |
カタログ管理用のツール、WCSのオプション製品 |
WebSphere Commerce Analyzer |
レポート作成・管理用ツール、WCS Proに同梱 |
MQ Adapter | MQを使用した基幹システム接続機能 |
WebSphere Payment Manager |
SETなどオンライン支払い用のコンポーネント、WCSに同梱 |
■パーベイシブ・サポート
近年のECサイト構築でニーズが多いのが携帯電話向け機能拡張だ。携帯電話用のブラウザは基本的にはPCのブラウザと同じだが、各キャリアごとに記述言語が異なる点や、セッション管理用のCookieを使用できない機種が多い点、キー入力が制限される点など、PCブラウザ向けのECツールで作成したサイトをそのまますぐに流用できないなどの制約が多く存在する。WCSのパーベイシブ・サポート機能はこうした制約を解消するためのプラグインを提供することで、リクエスト受領時点でPCブラウザか携帯電話かの判別を行って適切な画面を返す、Cookieを使用しないセッション管理を行うといった機能を提供する。
■マルチカルチャー・サポート
インターネットを通じ広く海外に商品を販売したい顧客向けに、マルチカルチャー・サポートの機能を提供している。これはショッパーがストア内で選択することにより、日本語や韓国語といった複数の言語/通貨を切り替えることができる機能だ。この切り替えは、例えばショップカートに商品を追加した後で行うことも可能で、切り替えに応じて商品の価格も日本円から韓国ウォンに切り替わる。管理者サイドの管理負荷軽減のために商品データとしては共通に使用されるマスターカタログを持たせ、日本語表記、韓国語表記といった使用する各言語分の属性情報を別に保管する形態がとられている。
■キャンペーン機能
週末何時から何時まではタイムセールとして特売品を提供、過去いくら以上の購入のお客様には特別にお薦め商品を表示。こういった機能を提供するのがキャンペーン機能だ。管理ツールを使用してキャンペーンの管理者(マーケティング・マネージャ)が、いつ・どのような条件の、といった対象者を選定することで、条件に合致するショッパーにのみ特定商品の推奨を行うことができる。
■管理ツール
WCSサイト上のストアを作成する。作成したストアを日常的に管理するためのツールもブラウザ・アプリケーションとして提供される。管理者はサイト全体、ストアごとの階層はもちろん、キャンペーンの定義を行う管理者/受領したオーダーの処理を行う管理者/サポートセンターとしてショッパーの代行オーダーを受け付ける管理者など細かな階層管理がなされ、それぞれに応じた機能を使用することができる。管理ツールはその目的に応じて「Commerce
Suiteアクセラレーター」、「管理者コンソール」、「ストア・サービス」の3種類がある。
図2 WCSの管理者画面 |
■オークション
WCS上のストアでオンラインオークションを開くことができる。WCSストア上の商品を3つのタイプでオークションすることが可能で、種類にはオープン・クライ(入札価格公開形式)、クローズド(入札価格非公開形式)、ダッチ(競り下げ方式)の3つがある。オークションの開始・終了や、勝者の選定・通知、オーダーの実行といった処理はWCSが自動的に行ってくれる。
■商品アドバイザー
ストアにある商品から望みのものを探す過程の煩雑さが、時としてショッパーの購買意欲をそぐ結果になってしまうことがある。例えば商品情報に精通していないショッパーに対しては、店頭で販売員が対応するようにQA形式でショッパーの希望を聞き出し、望ましい商品の絞り込みを行う。また商品知識が豊富なショッパーが数ある品ぞろえの中から属性項目を横並びの表にして比較することで希望の商品を見つけ出しやすくする、といった機能を提供するのが商品アドバイザー機能だ。
WebSphere Commerce Suite V5.1の アーキテクチャ |
■MVCモデル
こうした機能を提供するWCSはWebSphere Application Server上のアプリケーションとして稼働する。図3がその概要だ。すべてJavaのテクノロジに準拠した形で提供されているが、特徴として基本となる部分はMVCモデル、すなわちModel(Javaコマンド)、View(JSP)、Controller(Java
Servlet)の形態をとり、コンポーネント化されている点だ。ブラウザからのリクエストを受け取るServletは処理の分配を行い、実際にデータベースから商品情報を取得する/データベースに対してオーダー情報を入力するといった処理はJavaコマンドと呼ばれるクラスが行う。その結果を受けJSPがダイナミックにHTMLを作成し、ユーザー画面に返す処理を行う。ビジネス・ロジックを担当する開発者はJavaコマンドを、プレゼンテーション・ロジックを担当するデザイナー/HTML開発者はJSPを開発するといったように、開発者の役割分担がこのデザインにより実現できるわけだ。
図3 WCSアーキテクチャ概要図 |
■EJBの使用
もう1つの特徴は、WCSはデータベースに対するアクセスをEJBを介して行う点だ。正確にいえばWCSが使用する商品やショッパー情報のテーブルをEJBのEntityBeanとマップして定義し、Javaコマンドからのデータベースに対するアクセスはこのEntityBean経由で行うということになる。ただ、EJBの作法に従ったコーディングの煩雑さを避けるため、EntityBeanはAccessBeanといわれるラッパー経由でアクセスされることになる。結果表示用のJSPも、データベース情報を表示するためにはAccessBeanを継承したDataBeanを介して行う。
EJBを利用できることによって、オブジェクト指向による開発が可能になり、開発者はビジネス・ロジックに注力することができる。また、EJBコンテナによるBeanのプールの機能を利用できる点もメリットとして大きい。さらには、VisualAge for JavaのAccessBeanの自動生成機能を活用することによって、コーディングが容易になるという点も、メリットとして強調したいところだ。
■要求の解析では、ブラウザからWCSに対して投げられた要求がどのように処理されるか、1つ例を挙げて見てみよう。図3を参照しながら読んでいただくと理解しやすいだろう。ブラウザからWCSに対する要求は以下のようなURIの形で行われる。
http://<hostname>/webapp/wcs/stores/servlet/InterestItemAdd?catEntryId=n&… |
これはある商品をショップカートに追加する、"InterestItemAdd"というURLコマンドの構文の一部だ(実際は後ろにパラメータが続く)。ホスト名に続く"/webapp/wcs/stores/servlet"がWebパスとしてWCSのRequestServletというサーブレットをポイントする。このサーブレットは要求を受けた後、HTTP Web Controllerと呼ばれるコンポーネントに処理を渡す。
HTTP Web ControllerはInterestItemAddコマンドがどのJavaクラスを呼ぶべきかということをデータベースから取得し、デフォルトの定義であればInterestItemAddCmdImplというクラスを呼び出す。このクラスはController Commandと呼ばれ、その内部ではAccessBean - EntityBean経由でショッパーのショップカートに商品を入れるというデータベース処理を行う。実行ユーザーがアクションを行う権限があるかチェックするといった仔細な処理に関してはTask Commandと呼ばれる別のJavaクラスがController Command内から呼ばれて行う。こうして処理が正常になされると、HTTP Web Controllerは再びデータベース定義情報に基づき、結果表示のためのJSPを呼び出す。呼び出されたJSPはJSP内のJavaコードに従いDataBean経由で必要なDB情報を取得、この場合では商品が追加されたショップカートの中身を表示するページを作成し、ブラウザに返す。
■カスタマイズ
上記のInterestItemAdd(ショップカートに追加)といった基本的な機能はWCSの製品を導入すればすぐに使い始めることができる。製品には図4のように商品データも含んだサンプルのストアが提供されるので、それを使用すれば簡単に実際のストアフローを見ることができる。しかし実際にお客さまがECサイトを作成する際には、HTMLとして表示される部分の見た目をはじめとしてストアフローの変更や新規機能の追加などのカスタマイズを行うことが通常の流れになる。その場合のカスタマイズのポイントは2点だ。1つがJSPを中心としたプレゼンテーション・ロジックの変更、もう1つがJavaコマンドのカスタマイズによるビジネス・ロジックの変更だ。
図4 WCSサンプルストア(クリックすると拡大します) |
JSPのプレゼンテーション・ロジックを変更する場合、静的なHTML部分と動的に取得されるロジック部分それぞれのカスタマイズが必要になる。JSPのHTML部分はJSPそのものやCSS(カスケードスタイルシート)を書き換えることで、画面の構造や色、リンク先などを変える。カテゴリページの商品カテゴリのリストや、ショップカートページのショップカートの中身などはDataBeanを経由してデータベースから取得されるため、どの場所にどの項目を取得するかといったカスタマイズはDataBeanの呼び出し部分のカスタマイズになる。
ビジネス・ロジックをカスタマイズしようとする場合は、Controller CommandやTask Commandを変更することになる。WCS機能が必要とするデータベース・テーブルは導入時に作成されるが、こうしたビジネス・ロジックのカスタマイズを行う場合は概してテーブルを追加することになる。その場合、新規に作成したデータベースにWCSがアクセスするため、EntityBeanを作成する必要もある。EntityBeanの作成、テーブルとのマッピングなどはVisualAge for Java Enterprise Editionを使用すると、比較的簡単に行うことができる。Controller Command/Task Commandは元となるクラスやインターフェイスが提供されるので、それらを継承して開発することになる。
◆
WCS V5.1は、このように多くのサイトで要望のある多彩な機能を提供している。また基盤技術としてJavaを採用することにより、従来バージョンに比べ開発者の幅を広げている。同時に、WebSphere Application Serverの利点―ロードバランシング機能、データベースへのコネクション・プーリング、ロギング機能など―がそのままWCSで使用しうる点も安定性やパフォーマンスの向上に役立っているといえるだろう。
WebSphere Commerce Suite製品情報:
http://www-6.ibm.com/jp/software/ec/ecprod/index.html
http://www-4.ibm.com/software/webservers/commerce/jp/
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|