リソース指向アーキテクチャによるカラーマネジメント
8
0
0
全文
(2) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report. 2. 業務におけるカラーデザイン支援システム. 3.1 REST. REST とは、ソフトウェアアーキテクチャのスタイルの1つであり、いくつかの 原則がある。REST スタイルのアーキテクチャには次に示すような 4 つの原則が存 在し、それらを満たすような Web サービスを RESTful な Web サービスと呼ぶ。. カラーマネジメントとは、ディスプレイやデジタルカメラ、プリンタなど、画像を 扱う機器の間で細かい色の調整を行い、表示色の統一を図るためのシステムのことで ある。これは通常ではデバイス間の調整での話である。一般的なカラーマネジメント システムでは、各デバイスにおける色の特性が記述された ICC(International Color Consortium)プロファイルを利用して、カラーマネジメントを行う。 本稿では、 「カラーマネジメント」をより幅広くとらえ、デバイス間の表示色の調整 や、染料の調合など生産品の色彩に関する管理を行うことを含める。また、NCS のよ うな、色彩調和の理論に基づいて色を運用するシステムと連携させるような、デザイ ンにおける「色決定を色彩理論に基づいて支援する」総合的なカラーデザイン支援シ ステムをカラーマネジメントシステムと位置付ける。 Web サービスとして、こうしたカラーマネジメントシステムの機能をコンポーネン ト的に提供することで、クロスプラットフォーム環境下で、必要なものを連携させて 総合的なカラーマネジメントシステムとして運用することができる。これにより、色 に関するデザインから生産までの業務フローをスムーズにする支援方法を、簡単かつ 柔軟に提供することが可能である。 本稿では、このカラーマネジメントシステムの機能の一つとして、NCS を利用した カラーデザイン支援システムを実装する。以下 4.で NCS についてとシステムの実装に ついての詳細を説明するものとする。. I. II. III. IV.. アドレス可能性 ステートレス性 接続性 統一インターフェース. REST スタイルの代表例の1つとして Web が挙げられる。Web サービスをこれら の原則に従うよう設計することにより、Web のようなステートレス性やスケーラビ リティを持った Web サービスを提供できる。 3.2 RESTful Web サービスとリソース運用. リソースとは、それ自体が参照するに値するほどの重要性を持つものである。リ ソース指向とは、アプリケーション構築の際リソースに注目する考え方である。リ ソース指向の手法による Web サービスの設計では、設計者はリソースの構成を最も 重要視する。RESTful な Web サービスでは、リソースへのアクセスに URI と、その サービス内のリソース全てに適用できる統一されたインターフェースを用いる。こ れにより、リソースへのパスである URI さえ分かっていれば、統一されたインター フェースにより簡単にリソースを利用することが可能となる。RESTful な Web サー ビスを構築する際、統一インターフェースとして HTTP メソッドが利用されること が多い。HTTP メソッドを用いることにより、HTTP メソッドを知っているプログラ マであれば、URI が分かれば全てのリソースを操作できるというメリットがある。. 3. ROA(Resource Oriented Architecture) ROA とは、システム構築に際して情報システムに蓄積されているデータを重要な 経営資源(リソース)と捉え、リソースの柔軟な利活用を志向する情報システムを 構築するものである。「Web サービス」等で培われた近年の最新の Web 技術を駆使 し、リソースの運用が柔軟に行え、リソースを活用する新しいビジネスモデルの登 場にも迅速に対応できるシステム構成が実現できる。この ROA は RESTful な Web サービスによって問題を解決する手段であり、Web サービスをリソースに着目して 設計する手法である。ROA により設計されたサービスは REST の原則のひとつであ る統一インターフェースを持っている。この統一インターフェースには基本的に HTTP メソッドが用いられる。このため、サービス設計の際、インターフェースの デザインに気を取られずリソース構成の設計のみに集中できる。以下では、RESTful Web サービスに基づいてリソースを提供する設計に関して述べる。. 3.3 ROA による実装. 本稿では ROA による RESTful Web サービスとして ColorAPI を実装する。この実 装環境として、クラウド環境である GAE(Google App Engine)を利用している。これ は、REST のステートレス性により処理が独立し、サーバー側で負荷分散が容易に なる。このため RESTful Web サービスをクラウド環境で公開することでパフォーマ ンスを低下しづらくすることができる。また、GAE とそのデータベースである BigTable を利用するため、それらに最適化されたフレームワークとして Slim3 を利 用している。ColorAPI の構造は図1に示すように、プラットフォームとして GAE が存在し、その上に ColorAPI が存在する。Slim3 は ColorAPI の処理部分と GAE や BigTable、及びクライアントとの橋渡し役として存在している。 2. ⓒ 2012 Information Processing Society of Japan.
(3) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report. にスウェーデン工業規格に採用され、ヨーロッパを中心に、現在ではアジアまで広 く普及し、世界標準の表色系の一つとなった。この NCS 表色系を、プラットフォー ムを気にすることなく利用できる Web サービスという形で提供することの意義は 大きい。. 図 2 NCS カラーコードの構成 出典)NCS Digital Atlas 1950 図1. ColorAPI の構造とクライアントとの関係 NCS の色彩規則を図 2 に示す。Red, Blue, Green, Yellow を基準とするカラーサー クルと blackness と chromaticness を基準としたカラートライアングルで構成されて いる。これは、純色量、黒色量、白色量からなり、これ自体が調和論(ドミナント配 色)となっている。このカラーサークルとカラートライアングルの 2 つを合わせたも のが、図 2 の NCS Colour Space であり、これをカラーアトラスともいう。NCS のコ ードは、カラートライアングルに関する S(blackness), C(chromaticness)の値で構成さ れる nuance 部分と、カラーサークルに関する hue 部分で構成されている。NCS は、 色彩を調和的にデザインするためのシステム(カラーデザイン支援システム)であり 単なる色見本とは異なる。. 4. NCS 体系に基づいた色の運用サービスの実装例 4.1 NCS について. 色を扱うデザイナによく利用される色体系として NCS がある。NCS は、ヒトの 色知覚に基づく表色系(顕色系―color appearance system)である。心理4原色(赤、 青、緑、黄)と、純色量(chromaticness)、白色量(whiteness)、黒色量 (blackness) の見え方(色知覚)によって、色を特定する。ドイツの心理学者へリング(Karl Ewald Konstantin Hering)の反対色説を発展させた理論体系である。1979 年に物理的な色 票集(color order system) 「NCS カラーアトラス」が発行され、実用的なものとなっ た。現在は RGB 値、CMYK 値など混色系(color mixing system)のデータが公開さ れ、デジタル環境でも利用が可能である。NCS は色知覚を体系的に示すため、色彩 調和 など色彩の感覚的な扱いに優れている。この特徴は、アパレル、工業デザイ ン、グラフィックデザイン、建築など産業デザインの分野で有用性が高い。1990 年. 4.2 ColorAPI と NCS. NCS 体系に基づいた色運用サービスとして、ColorAPI を実装した。これは、NCS の色に関するデータを保持し、リクエストに応じてデータを加工・利用して結果を リソースとしてクライアントに返すものである。ColorAPI の構造は図1のようにな っている。NCS のデータは GAE に存在する BigTable に保管され、必要に応じて 3. ⓒ 2012 Information Processing Society of Japan.
(4) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report. ColorAPI がデータをリクエストするようになっている。この際、クライアントは HTTP メソッドとリソースへのパスを送信することでこのサービスの提供するリソ ースを利用できる。サーバー側では、受信したリクエストを規則に従って加工し、 処理に必要なパラメータを取り出して処理を行う。このサービス内のリソース操作 に用いるのは HTTP メソッドだけであり、その他のインターフェースは用意されて いない。また、このサービスは読み取り専用なので、受け付ける HTTP メソッドは GET のみである。この ColorAPI は RESTful な Web サービスとして設計したため、 クラウド環境に設置することでパフォーマンスの低下をある程度防ぐことができる。 このため、オープンなクラウド環境である GAE を利用している。サービスの実装に 際して、この GAE に最適化された Java フレームワークである Slim3 を利用した。 この Slim3 によって実装することで、データのモデル化やその処理の記述を簡単に できる。これにより、コードの可読性向上や開発の効率化ができる。. があり、画面遷移に関するクラスである Controller クラス、GAE のデータベースで ある Bigtable に格納するデータの構造を記述する Model クラス、Bigtable 内のデー タを利用した処理を記述する Service クラスに分けられる。また、単純な CRUD 処 理に関しては、DAO(Data Access Object)クラスを利用することで、単純処理を繰り 返し書かずに済み記述ミスによるバグが発生しにくく、コード量を減らすことで可 読性の向上も見込める。図 3 で Slim3 を使用した際の各クラスの関係を表したもの を示す。 RESTful な Web サービスを実現する上で重要なのは、ユーザにわかりやすく構造 化された URI と、統一インターフェースとしての HTTP メソッドによる操作の指定 である。ColorAPI においては、DB が BigTable であり NCS の情報を Model クラスに よってモデル化して格納する。Controller クラスは Service クラスを介してデータセ ットを取得する。あるいは DAO を直接呼び出してデータを取得し、それらを処理 している。提供しているリソースは Controller クラスと JSP ファイルによって、デ ータを特定の表現に加工してクライアントに提供している。. 4.3 ColorAPI の設計と実装. 今回の ColorAPI は、読み取り専用の RESTful な Web サービスとして設計を行う。 そこで、RESTful な Web サービスの設計手法として、[2]で取り扱われているリソー ス設計を用いるものとする。リソース設計とは、クライアント・サーバー間におけ るインターフェースの設計である。このとき、どのようにリソースを分割し、URI で名前を付け、相互にリンクを持たせるかが重要になる。リソース設計の指針とし ては ROA を指針とし、以下の 7 つのステップで設計を行う。 ① ② ③ ④ ⑤ ⑥ ⑦. Web サービスで提供するデータを特定する データをリソースに分ける リソースに URI で名前を付ける クライアントに提供するリソースの表現を設計する リンクとフォームを利用してリソース同士を結び付ける イベントの標準的なコースを検討する エラーについて検討する なお、③~⑦に関しては各リソースに対して行う。 以降では設計と実装についての詳細を述べていく。以下の 4.3.1.で実装に利用す るフレームワークについての説明を、4.3.2.~4.3.6.では上述した 7 つのステップに ついて説明していく。 図3. 4.3.1 Slim3. slim3 における各クラスの関係. Slim3 とは、GAE に最適化された Java フレームワークであり、主に Web アプリ ケーションを作成するためのものである。Slim3 には大きく分けて 3 種類のクラス 4. ⓒ 2012 Information Processing Society of Japan.
(5) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report 4.3.2 提供するデータの特定. 最初のステップとして、その Web サービス・API が提供するデータを特定する。 ColorAPI は、NCS を利用した色彩運用のためのサービスであるため、提供するデー タは以下の 2 つである。 NCS カラーコード そのコードが表現する色の情報 ここで特定するのは単なるデータである。ColorAPI が提供するデータは色の情報 であり、提供するリソースそのものではない。 データのリソース分け ここで、4.4.1 で特定したデータをリソースに分割していく。以下に分割したもの を挙げていく。 NCS カラーコードリソース 1 つの NCS カラーコードに対応するリソース。NCS コード、CMYK の値、RGB の値、16 進数の RGB の値が含まれる。 検索結果リソース NCS コードの一部や、CMYK、RGB 及びその一部で色を検索した結果のリソース。 カラーサークルリソース カラーサークル、カラートライアングルのリソース。カラーサークルは、その下 位リソースであるカラートライアングルを、カラートライアングルはその下位リソ ースである色を含む。 トップレベルリソース サービスの開始点。カラーサークルリソースと検索フォームを含む。 4.3.3. 図4. リソース分けした際の各リソース. 4.3.4 リソースへの URI による名前付け. ここで、各リソースに対して URI で名前を付けていく。各リソースへはここでつ けた URI を使用してアクセスするためこのステップは重要である。一般的に URL というのは、短く、長期間変更されることがなく、ユーザがそのページがどの位置 にあるのか把握できるものがよいとされている。ここでつける URI もそれと同じで、 無駄に長くならず、今後仕様変更があってもできるだけ影響がなく、リソース同士 の関係や構造がユーザからわかりやすいものをつけるようにするとよい。 NCS カラーコードリソース このリソースでは、わかりやすく NCS のコードを URI とする。 URI は以下のようになる。 http://colorapi.appspot.com/{NCS コード}. 4.4.1 で特定したデータそのものは NCS カラーコードリソースにより、リソース として提供される。また、NCS のデータを加工・利用して、参照されるほどの重要性 を持つものにしたのが検索結果リソース、カラーアトラスリソース、トップレベルリ ソースである。これらのリソースでは、どのリソースでも最終的に提供するデータは NCS カラーコードとそれに対応する色情報である。以下の図4に、この工程における ColorAPI の提供する各リソースとその構成についてを示す。. 5. . 検索結果リソース 検索結果リソースはクライアントからの入力が必須となる。このサー ビスでは、q にクエリパラメータ格納する。q に NCS コードの S,C,hue のいずれか一つまたは複数の数値を入力し、それぞれアルファベットで S,C,H で値を分ける。URI は以下のようになる。 http://colorapi.appspot.com/{検索コード}. . カラーサークルリソース カラーサークルの情報とそこに含まれるカラートライアングルへのリ ンクのリソース。URI は以下のようになる。 http://colorapi.appspot.com/circle. ⓒ 2012 Information Processing Society of Japan.
(6) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report. . トップレベルリソース Web サービスの開始点。ルートとなる URI が与えられる。URI は以 下のようになる。 http://colorapi.appspot.com. 4.3.6 エラーについての検討. 以下でエラーについて検討していく。基本的なエラー処理に関してはサーバーが デフォルトでサポートされているため自分でコードを書く必要はない。 存在しない URI の指定 存在していない URI が指定された場合、404 Not Found を返す。 必須パラメータを指定していない 検索結果において、クエリパラメータは必須であるため、このパラメータが 指定されていない場合、400 Bad Request を返す。これは自分で処理を記述する 必要がある。特に記述しない場合処理の関係で 500 Internal Server Error が返さ れてしまう。. 以下の図5に URI による名前付けがされたリソースを示す。ユーザはこの URI を利用して各リソースにアクセスすることになる。また、トップレベルリソースや カラーサークルリソースのように、他のリソースを含んでいる場合も URI を用いて 他のリソースを利用している。. 4.4 実際の Web サービスとリソースの運用. 図5. Web サービスにおいて、人間が直接リソースにアクセスすることはもちろん、Java や JavaScript 等のプログラムがアクセスしてリソースを利用することもある。人間 がアクセスする場合、データと UI および他のリソースへのリンクを提供する必要 がある。また、データに関してはユーザが理解しやすい形で提供することも重要で ある。ColorAPI においては HTML 表現を人間の利用するリソース表現として想定し ている。このとき、提供する色情報を視覚的にわかるように HTML5 の SVG タグを 用いてその色のついたオブジェクトと数値を表示するようにしている。JSONP の表 現形式についてはプログラムが利用することを想定している。 Web サービスによってリソースを提供し、そのリソースをプログラムが利用しや すい形にすることでユーザはそれを利用して新しいサービスやアプリケーション を作りやすくなる。これは、ローカルなディスクスペースにデータを設置する手間 を省けたり、既に提供されているリソースのようなデータセットに加工したりする 手間も省ける。これにより、マッシュアップを効率化できたりハードウェアの節約 ができる等のメリットが生じる。. URI による名前付けされたリソース. 4.3.5 クライアントへ提供するデータの表現. 今回のサービス提供の表現として、HTML5 の利用できる XHTML と、JavaScript と親和性の高い JSONP を利用する。基本的には、URI の拡張子を html とすると XHTML で、json とすると JSONP 形式でリソースを返すようにする。JSONP 形 式でリクエストする場合は、URI に引数 callback を callback={処理するメソッド名} の形で追加することにより受け取った JSONP 形式のデータを処理するメソッドを 指定することができる。callback を指定しない場合は callback({JSON 形式のデー タ})で返されるようになっている。なお、トップレベルリソースは XHTML のみと する。. 5. むすび REST に準拠した設計により、Web サービスを構築することで Web のようなスケ ーラビリティやユーザビリティを持たせることができる。また、統一インターフェ ースとして HTTP メソッドを用いることにより、Web と同じようにリソースを提供 することができる。Web と同じようにリソースにアクセスできることにより、クラ イアントは URI を知るだけで、リソースに対する基本的な操作方法を知っているこ とになる。これにより、Web サービスやアプリケーションとの連携を取りやすくな り、より高度なサービスをより簡単に構築できるようになる。. 6. ⓒ 2012 Information Processing Society of Japan.
(7) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report. 本文では、NCS の色運用システムを ColorAPI という Web サービスとして実装し た。これにより、NCS による色の運用をプラットフォームに依存することなく利用 できるようになった。また、提供されるリソースは HTTP メソッドと URI によって 操作できる。このため、ColorAPI を利用したアプリケーションやサービスを構築す る際、URI と HTTP メソッドを知るだけでリソースを利用できるようになる。最終 目標として、画像を扱う機器間での色味補正を行うカラーマネジメントシステムを Web サービスとして提供し、この ColorAPI と連携を取ることを想定している。 ColorAPI を利用して、デザイナが色彩デザインを行い、それを Web サービスのカラ ーマネジメントシステムを通して実物を出力する。これにより、デザイナやその周 辺業務に携わる人はプラットフォームを気にすることなく業務に集中できる。一般 に浸透してきたクラウドと、クラウドとの親和性が高い REST スタイルのリソース 指向アーキテクチャによるカラーマネジメントシステムは、多くの人間や様々な機 器が関わってくるであろうデザイン業務において有用である。. しては、HTML と JSONP が用意されている。HTML 形式では、データの視覚化や JavaScript を用いたユーザインターフェース、他のリソースへのリンクが含まれてい る。以下に例として、いくつかの HTML 表現のリソースを示していく。以下の図 A1 はトップレベルリソースの画面である。ここでは、hue が Y のカラートライアン グルが表示されており、NCS の 0580Y の色が表示されている場面である。. 参考文献. 図 A1. 1) Roy Thomas Fielding, Architectural Styles and the Design of Network-based Software Architectures, 博士論文, カリフォルニア大学アーバイン校, 2000 2) 山本陽平, Web を支える技術 ── HTTP,URI,HTML,そして REST, 技術評論社, 2010-4 3) Lenard Richardson, Sam Ruby, 山本陽平監訳, RESTful Web サービス, 株式会社オライリー・ ジャパン, 2007-12. トップレベルリソース. 以下の図 A2 は NCS カラーのうち、Chromaticness が 80 のものを検索した際の 検索結果リソースである。. 付録 付録 A. ColorAPI の仕様. 概要 ColorAPI は NCS 表色系に基づいて色を運用するための Web サービスである。NCS のコードやその一部を用いてリクエストすることで、それに応じた NCS のコードと その色情報を提供する。 提供するデータとリソースの表現 提供するデータは NCS のコードとその色の情報である。具体的には、NCS カラ ーコード、シアン(C)の値、マゼンタ(M)の値、イエロー(Y)の値、ブラック(K)の値、 レッド(R)の値、グリーン(G)の値、ブルー(B)の値となっている。データの表現に関. 図 A2 Chromaticness が 80 のものに対する検索結果リソース JSONP 形式では、データのみが提供される。以下の表1では、JSONP 形式でリク エストした場合のラベルと値の説明がまとめられている。 7. ⓒ 2012 Information Processing Society of Japan.
(8) Vol.2012-EIP-55 No.9 2012/2/10. 情報処理学会研究報告 IPSJ SIG Technical Report. 表1. NCS カラーコードリソース http://colorapi.appspot.com/{NCS コード} 検索結果リソース http://colorapi.appspot.com/{検索コード} カラーサークルリソース http://colorapi.appspot.com/circle トップレベルリソース http://colorapi.appspot.com. JSONP 形式におけるデータのラベルとその説明 ラベル 説明 NCS NCS カラーコード C C の値 M M の値 Y Y の値 K K の値 R R の値 G G の値 B B の値. 検索コードについては、NCS コードの S,C,hue を指定して色情報を検索できる。 検索コードは、各パラメータを S,C,H で区切ることで成り立っている。リクエスト 例を以下に示す。 NCS コード 1080Y を HTML 形式でリクエストする場合. JSONP 形式のリクエストでは、callback にデータを処理させる関数を指定できる。 これを指定しなかった場合は callback(JSON 形式のデータ)の形でデータが返却され る。以下に、JSONP 形式のデータのリクエスト例を示していく。 NCS コード 1080Y を callback 無指定でリクエストした場合. http://colorapi.appspot.com/1080Y.html. . callback([{"G":"188","NCS":"1080Y","B":"0","R":"236","C":"0","M":"20","Y":"100","K":"5"}]);. . NCS コード 1080Y を callback=function1、JSONP 形式でリクエストする場合. http://colorapi.appspot.com/1080Y.json?callback=function1. NCS コード 1080Y を callback=function1 としてリクエストした場合. NCS において Blackness が 10 である色を、callback を無指定、JSONP 形式でリ クエストする場合. http://colorapi.appspot.com/10S.json. function1([{"G":"188","NCS":"1080Y","B":"0","R":"236","C":"0","M":"20","Y":"100","K":"5"}]);. . NCS において Blackness が 10 である色をリクエストした場合の一部 callback([{"G":"242","NCS":"1000N","B":"240","R":"242","C":"0","M":"0","Y":"2","K":" 6"},{"G":"232","NCS":"1002B","B":"234","R":"227","C":"4","M":"0","Y":"0","K":"10"}, {"G":"235","NCS":"1002B50G","B":"230","R":"231","C":"4","M":"0","Y":"5","K":"8"}, …………{"G":"29","NCS":"1085Y80R","B":"22","R":"218","C":"0","M":"98","Y":"100", "K":"0"},{"G":"11","NCS":"1085Y90R","B":"37","R":"208","C":"0","M":"100","Y":"85", "K":"5"}]);. NCS において Chromaticness が 80 である色を、HTML 形式でリクエストする場 合. http://colorapi.appspot.com/80C.html. . NCS において hue が Y10R である色を、callback=function2、JSONP 形式でリク エストする場合. http://colorapi.appspot.com/Y10RH.json?callback=function2. . NCS において Blackness が 05、hue が Y である色を、HTML 形式でリクエスト する場合 http://colorapi.appspot.com/05SYH.html. リクエストと URI ColorAPI は読み取り専用の Web サービスである。各リソースに対するインターフ ェースには HTTP メソッドを利用している。読み取り専用サービスのため、各リソー スへのリクエストは GET メソッドのみをサポートしている。ColorAPI には HTML と JSONP という2通りの表現が用意されているため、リクエストする表現形式を指定し なければならない。ここでは、表現形式の指定に拡張子を用いる。URI のパスの末尾 に拡張子(.html か.json)を付けることで表現形式を指定できる。各リソースの URI は以 下にまとめておく。. 8. ⓒ 2012 Information Processing Society of Japan.
(9)
図
関連したドキュメント
「国宝」 に当たるんです。これが枚 方にあるって スゴいこと なんです よ!建設当時の礎石に触れてみま しょう!」.
では,フランクファートを支持する論者は,以上の反論に対してどのように応答するこ
従って、こ こでは「嬉 しい」と「 楽しい」の 間にも差が あると考え られる。こ のような差 は語を区別 するために 決しておざ
うのも、それは現物を直接に示すことによってしか説明できないタイプの概念である上に、その現物というのが、
手術前に夫は妻に対し、自分が死亡するようなことがあっても再婚しない
90年代に入ってから,クラブをめぐって新たな動きがみられるようになっている。それは,従来の
次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな
ヒュームがこのような表現をとるのは当然の ことながら、「人間は理性によって感情を支配