メニューボタン
IBMi海外記事2009.05.20

イメージ・カタログでコンピュータ人生に変革を

ジェフ・ケアリー 著

寒い夜、窓のないデータセンターの部屋でアップグレード作業中にCPA2055メッセージが次のCDを挿入するよう指示するのを待っていたという経験はありませんか。もしそのような経験がおありなら、イメージ・カタログと仮想光学ドライブを使用することでそのようなつらい体験を二度としないで済むようになります。 IBMはこれらのツールをOS/400 V5R2で初めて導入しましたが後にPTFでV5R1に戻し、その使用をアップグレードだけに制限しました。AS/400には独自のCD/DVDドライブがあり、1台のマシンには1つのシステムしか存在できませんでした。LPARが登場し、1台のマシンで複数のオペレーティング・システムを同時に稼動することができるようになったと自慢していましたが、CD/DVDドライブは依然として1台に1つでした。では従来ディスクで配布されていたデータを、1つのLPARから別のLPARに頻繁にディスク交換(システム上それが可能な場合)することなく複数のシステムに読み込ませる機能をどのように拡張したのでしょうか。1台の物理的なCD/DVDドライブに複数のOSが同時にアクセスするのをどのように制御できるのでしょうか。

救いの手:仮想光学ドライブとメディア・イメージ・カタログ

その答えは仮想光学ドライブと「メディア」イメージ・カタログを使用することです。CDフォーマットは万国共通ですから、通常の(ハード)ディスク・ファイルにそのフォーマットを簡単に保存し、OS内で仮想的に「マウント」して物理ドライブのように見せることができます。レコード業界はCDフォーマットを20年も前に開発しました。そして音楽ファイルだけでなく、データにも適用できるようにしたという先見の明がありました。重要なのは、存在するフォーマットは1種類だけであるということです。つまり、Mac用にフォーマットされたフロッピー・ディスクをPCで読むことはできませんが、CDやDVDはMacでもPCでも読むことができるのです。特定のCD上のファイルを使用することはできないかもしれませんが、マウントして読み込むことはできます。さらに、光学ドライブを備えているコンピュータであれば同じことができるのです。つまり、PCのようなあるタイプのコンピュータでCDまたはDVDディスク上にファイルを作成し、別のコンピュータ(今回の場合IBM i を稼動しているシステム)でそのディスク上のファイルを読むことができるのです。

ユニバーサル・ディスク・ファイル・フォーマットは国際標準化機構によって発明され、ISO標準と呼ばれています。(ISOという用語は略語ではなく、ギリシャ語の「均等な」という語から取られたものです。同機構はフォーマットのイニシャルは言語によって異なるのでISOという用語をフォーマット名の短縮形として採用しました。) 仮想光学ドライブはハード・ディスクをベースとした光学ディスクのコピーを採用し、オペレーティング・システムに対する物理光学ドライブを模倣することで物理ディスクやドライブがなくても済むようにしています。このツールは、仮想光学ドライブ、イメージ・カタログ、IFS中のISOディスク・イメージ・ファイルという3つのコンポーネントでこれを実現しています。

仮想光学ドライブは(物理ドライブに対して)論理ドライブであり、オペレーティング・システムから見れば物理CDドライブまたはDVDドライブとみなすことができます。イメージ・カタログはIBM i のオブジェクトであり、IFS中の複数のイメージ・ファイルを1つに関連付けるもので、CDチェンジャーのようなものです。CD自体はIFSに格納されている実際のディスクのISOイメージです。しかし実際のディスクだとは言っていません。事実、イメージ・ファイルを配布し、物理ディスクを作成したり出荷したりしないというトレンドになっています。つまり、「ディスク」はインターネットからISOイメージとしてダウンロードできるということです。

これと似ているのがオートローダ付きの旧式の3590テープ・ドライブです。テープ・ドライブ自体は仮想光学ドライブのようなものです。テープはIFSのイメージ・ファイルに相当します。するとイメージ・カタログは複数のテープを格納できるテープ・マガジンということになります。オートローダの場合と同様に、(テープのように)ファイルは次々とドライブに読み込まれていきます。

設定

設定は簡単です。まず、仮想光学ドライブを用意します。(下記に紹介するコマンドはV5R1とは多少異なります。V5R1の場合、仮想光学ドライブサポート:SI10553を提供しているPTFのカバーレターを参照してください。) 次のコマンドを実行します。

CRTDEVOPT DEVD(OPTVRT01) RSRCNAME(*VRT) ONLINE(*YES) TEXT(description)

OPTVRT01は仮想光学ドライブ用の名前として最も一般的なものですが(V5R1では仮想光学ドライブ名用の唯一の形式です)、どんな名前でも構いません。V5R3以前ではシステム上にある物理光学ドライブと同じ台数までしか仮想光学ドライブを作成することができませんでした。V5R3からは何台でも作成することができます。

次に、イメージ・カタログを作成します。イメージ・カタログはテープ・マガジンのようなものです。「テープ」(イメージ・ファイル)を後から追加することができますが、まずはカタログを作っておく必要があります。

CRTIMGCLG IMGCLG(catalog-name) DIR(catalog-path)
 CRTDIR(*YES) TEXT(image-catalog-description)

カタログ名はどんな名前でも構いません。アップグレード・メディア用の名前としてはIBMのデフォルトであるQUPGRADE1、 QUPGRADE2などを使っておいた方が良いでしょう。アップグレード・メディア以外は、「javagrp」や「cumeptfs」などといったようにわかりやすい名前を追加してください。カタログ・パスはIFS内のディレクトリで、このディレクトリにイメージ・ファイルを格納します。この場所も好きなところで構いません。CRTDIR(*YES)パラメータを使用するとカタログ・パスがまだ作られていない場合、カタログ・パスを作成してくれます。

このディレクトリはわかりやすくそして探しやすい場所にしてください。イメージ・ファイルのサイズは大きくなります。作成したイメージ・ファイルをまだ使用し終わってないうちに他の人がIFSディレクトリ内に大きなサイズのファイルがあるのを見つけてイメージ・ファイルを消去してしまうということだけは避けなければなりません。したがって、名前を見ただけでそれが何のファイルであるのかわかるような名前を付けてください。私のやり方はrootディレクトリ中に「imgclg」というディレクトリを作り、各イメージ・カタログはそのサブ・ディレクトリして作成するというものです。例えば以下のようにです。

/imgclg/QUPGRADE1
/imgclg/CUMEPTFS

次に、ISOイメージ・ファイルとイメージ・カタログを関連付けます(イメージ・カタログは単なるポインターの集合です)。ファイルは物理的なCD/DVD-ROM上の物理ディスク上にあるか、またはIFS中のファイルになります。
一番目の方法は、物理ドライブ(この例ではOPT01)にディスクを置き、イメージ・カタログに追加するという方法です。こうするとディスク上のISOイメージがIFSにコピーされ、イメージ・カタログ・オブジェクトにエントリが追加されます。

ADDIMGCLGE IMGCLG(catalog-name) FROMDEV(OPT01)
  TOFILE(file-name) TEXT(text-description)

ファイル名を指定しないと、IFSディレクトリ中のファイルには物理ディスクのラベルの名が付けられます。ファイルが既にIFS中に存在する場合は次のコマンドを使用してそのファイルをイメージ・カタログに追加します。

ADDIMGCLGE IMGCLG(catalog-name) FROMFILE(/directoryname/directory-name/file-name)
  TOFILE(file-name) TEXT(textdescription)

イメージ・カタログ・ファイルの名前を元のファイル名と同じにするには、FROMFILE(*GEN)を使用します。上記のコマンドを使用すると、ISOイメージを現在のディレクトリからイメージ・カタログのディレクトリ(CRTIMGCLGコマンドで指定されたディレクトリ)にコピーします。このイメージはサイズが大きくなることがあります(標準のCDで約700MB、DVDは約4.5GBまたは約8GB)ので、ファイルを重複して存在させないようにしてください。ファイルを重複して存在させないようにするには、イメージ・ファイルがイメージ・カタログのディレクトリ中にすでに存在していることを確認してから次のコマンドを実行します。

ADDIMGCLGE IMGCLG(catalog-name) FROMFILE(file-name)
 TOFILE(*FROMFILE) TEXT(text-description)

マガジンとドライブを関連付ける

これでテープ(イメージ・ファイル)を作り、それをマガジン(イメージ・カタログ)の中にロードしました。またドライブ(仮想光学ドライブ)も作りました。次に、マガジンとドライブを関連付けます。関連付けるには次のコマンドを実行します。ただしここでは仮想光学ドライブ名を「OPTVRT01」としています。

LODIMGCLG IMGCLG(catalog-name) DEV(OPTVRT01) OPTION(*LOAD)

このコマンドを実行することでイメージ・カタログ(およびその中にあるすべての個々のISOイメージ)と仮想光学ドライブが関連付けられます。また、このコマンドにより最初のイメージ・カタログのエントリを仮想光学ドライブにロードします。これはテープ・ドライブがマガジン中にある最初のテープをテープ・ドライブ内に吸い込むのと同じイメージです。また、テープ・マガジンの場合と同様に、最初のボリュームの処理が終わると次のボリュームが自動的にロードされます。したがって、オートローダつきのテープ・ドライブが回復処理中にテープを次から次へとロードするのと全く同じように、仮想光学ドライブとイメージ・カタログがイメージを次から次へとロードします。この方式は、PTFの読み込みやアップグレードなどといった複数ボリュームのディスク集合を処理する際のオペレーションには便利です。

WRKIMGCLGEコマンドを使用するとイメージ・カタログとそのすべてのエントリの状態を確認することができます。

イメージ・カタログ・エントリの処理

イメージ・カタログ . . . . . . . :  QUPGRADE1
イメージ・カタログの状態 . . . . :  Not ready
仮想光学ドライブ. . . :
ディレクトリ . . . . . . . . . :  /imgclg/qupgrade1

オプションを選択してEnterキーを押してください。
1=Add 2=Change 4=Remove 6=Mount 8=Load 9=Unload

オプション インデックス 状態 イメージ・ファイル名
  *AVAIL    
  1 Mounted sf99520_4.bin
  2 Loaded sf99520_5.bin
  3 Loaded sf99520_6.bin
  4 Loaded sf99520_7.bin
  5 Loaded sf99520_8.bin
  6 Loaded sf99520_1.bin
  7 Loaded sf99520_2.bin
  8 Loaded sf99520_3.bin

上記の場合、QUPGRADE1というイメージ・カタログは仮想光学ドライブにまだロードされていません。このカタログには8つのイメージ含まれています。カタログがロードされると最初のイメージ(sf99520_4.bin)が仮想ドライブに接続されます。カタログが「マウント」状態にあるからです。イメージはすべてIFSの/imagclg/qupgrade1ディレクトリにあります。

「ちょっと待って!上記のイメージ・ファイルは順番がでたらめでは(しかもかなり古いのでは)?」という読者の方がいるかもしれません(しかもかなり古いように見えます)。WRKIMGCLGE画面から(あるいはコマンドラインでVFYIMGCLGコマンドを実行して)、オペレーティング・システムが特定のタイプのイメージを並べ替えられるようにすることができます。VFYIMGCLGと入力するか、またはWRKIMGCLGE画面でF7キーを押すと*UPGRADE、*PTF、*OTHERという並べ替えの3つのオプションが表示されます。「*UPGRADE」を選択すると、すべてのOSアップグレードのイメージを順番に並べ替え(I_BASE、B29XX_01など)、ISOイメージをアップグレードしないイメージはアンロードします。「*PTF」はPTFに対して同様の動作をしますが、ボリューム・シーケンス別にグループ化するだけという点に注意してください。つまり、同じイメージ・カタログ中に累積のISOイメージのパッケージとHIPER ISOのイメージの両方が存在している場合、並べ替えをすると各集合の複数のボリュームは順番通りに並べ替えられていますが、HIPERの前に累積があるとかあるいはその逆とかいった並びは保証されていません。*OTHERはヘルプ・テキストによれば何もしないことになっています。イメージ・カタログをロードはしますが、並べ替えも検証もしません。

修正の入手

システムの物理CD/DVD光学ドライブに入っている物理ディスクのコピー以外でイメージ・ファイルはどこから来るのでしょうか。もう1つの場所はこれからもっと便利になる場所なのですが、市場に出ている有名なMP3プレーヤーを使用するのと似ています。

もしそういった道具をお持ちであれば、あらゆる種類のメディアを読み込ませることができるのはご存知でしょう。物理ディスクからイメージ・カタログのエントリを作成できるのと全く同様に、音楽CDをこうした道具にコピーできるのです。さらに、インターネットからPCに有り余るほどのメディアをダウンロードして携帯用プレーヤーにコピーすることもできます。

同様の方法で(PTFやアップグレードのディスクなどといった)メディアを入手してシステムの仮想光学ドライブにコピーすることができます。IBMのFix CentralではPTFディスクのイメージを手元のPCにダウンロードすることができ、しかもシステムのIFS上のインデックスとして直接コピーし、前述のコマンドを使用してそこからイメージ・カタログに追加することができます。また、V5R4ではほとんどのオペレーティング・システムを同様にダウンロードすることができ、物理ディスクの必要性がほとんどなくなってきています(その代わりにシステムがアクセスできる高速なインターネット接続の必要性が高まってきています)。

「ちょっと待って。ISOフォーマットは万国共通なのだからどんな種類のCDやDVDでも自分のIBM iシステムに保存できるのではないか。」とおっしゃるかもしれません。その答えはもちろん「その通り」です。

多くのベンダーが自社のソフトウェアをディスクで配布しています。そうしたディスクをIBM i にアップロードしてイメージ・カタログを作成し、直接読み込めるようにすることができます。私は以前ブラジルの開発者のグループと一緒に仕事をしましたが、彼らは自分たちが必要とするソフトウェアをシステム上に保存していました。彼らはディスクを入手していますが、彼らのシステムは米国にある会社のデータセンター上のLPARにあるのです。彼らはあたかも物理光学ドライブにアクセスしているかのようにディスク・イメージをアップロードしてイメージ・ファイルからソフトウェアをインストールすることができるのです。こうすることでディスクを米国に郵送して我々が物理的なドライブにロードするという手間と時間が省けたのです。

彼らはどうやってアップロードしたのでしょうか。ISOフォーマットは万国共通なので、一般的に使用可能なPCソフトウェアを使用してPC上にディスク・イメージ(.isoや.binファイルがほとんど)を作成し、そこからIBM i システムのIFSに直接アップロードできるのです。Nero、CloneCD、Easy CD Creator、UltraISO (シェアウェア)などといったプログラムを使用すればこれができます。

ファイル名を.isoファイルに変更する必要がある場合がある点に注意してください。設定しなければならないその他のパラメータとしては、シングル・セッションのデータ用CD(「データCD」や「モード1 CD-ROM」など)用の標準データ・フォーマットの指定、RAWデータ・モード、(トラック・アット・ワンスではなく)ディスク・アット・ワンスなどがあります。イメージ・ファイルをPCにダウンロードしたら、何らかの種類のバイナリ・ファイル転送方法(FTPなど)でオプションの「bin」を指定するか、SmartFTP (シェアウェア)またはiNavigatorのGUIを使用しても構いません。

オペレーティング・システムのアップグレードとPTF

イメージ・カタログと仮想光学ドライブを主に使用するのはオペレーティング・システムのアップグレードとPTFであることが多いでしょう。PTFの作成はきわめて簡単です。物理ドライブと同じように仮想光学ドライブを使用するだけです。しかもPTFの処理中にディスクを交換しなくても良いというおまけつきです。

同様に、オペレーティング・システムのアップグレードもイメージ・カタログと仮想光学ドライブを使用することでずっと簡単になります。実際、HMCのような信頼性の高いリモート・コンソールを使用するとアップグレード処理のすべてをリモートで実行することができます。もちろん、アップグレード用の十分なウィンドウがない場合(ほとんどがそうでしょうが)は、物理的なメディアを用意しておくことや何か予期せぬことが起こったときに備えてデータセンターと連携ができるようにしておいて損はないでしょう。

そうした確率をできるだけ少なくするためには、アップグレードの説明書を注意深く読み、イメージ・カタログからのアップグレードに必要な前提となるPTFを確認しておいてくださいV6R1の場合、APAR II14310を読んでおいてください。イメージ・カタログを準備作業用に使用することもできます(「インストールの準備」メニューの「ターゲット・リリース用のライセンス・プログラムの扱い」)。こうしておけば実際のインストール作業が楽になります。V5R2およびそれ以後のリリースでは、次のコマンドを使用して自動インストールをすると指定するだけです。

PWRDWNSYS OPTION(*IMMED) RESTART(*YES)  IPLSRC(*IMGCLG) IMGCLG(catalog name)

イメージ・カタログを使用できるのは修正やアップグレード、サードパーティ製ソフトウェアだけではありません。仮想光学ドライブはAIX、Linux、IXA、IXSなどといったホストLPARのドライブとして割り当てることが可能です。実際、多くのLinux用ソフトウェアはISOイメージである「tar」ファイルとしてインターネット上で配布されています。仮想光学ドライブからLinuxのLPAR全部をインストールすることもできます。

システムからシステムへ

イメージ・カタログをご自分のシステムでどのように使えるのかおわかりいただけたと思いますので、たとえば、修正用パッケージを横展開したり複数のシステムをアップグレードしたりするなどといった時にシステム間でイメージ・カタログを移動させたい場合もあるでしょう。V6R1より前のリリースではIBMはFTP、iNavigator (ドラッグ・アンド・ドロップまたは管理セントラル)、QFilesvr.400 (一部のIBMドキュメント)の3つの方法があるとドキュメントに記載していました。QFilesvr.400はたびたび触れていますが私の経験ではシステム間のイメージ・カタログの移動はうまくいきません。IBM i V6R1時点での最新の方法はイメージ・カタログをネットワーク・ファイル・システム(Network File System)上にマウントするという方法です。

NFSを使用しない最も高速な方法はシステム間でダイレクトFTP を使用するというものです。IFSでイメージ・ファイルを転送するときにFTPサブコマンドの「bin」を使用することを忘れないでください。また転送先システム上でイメージ・カタログを再構築する必要がないことも覚えておいてください。単にイメージ・ファイルを転送してからイメージ・カタログ・オブジェクト自体を転送すればよいのです。このオブジェクトはQUSRSYSにあり、そのタイプは「*IMGCLG」です。このオブジェクトを保存ファイルに保存して転送して回復するか、またはSAVRSTOBJ コマンド (無料のオペレーティング・システムのオプション22であるObjectConnectは便利なツールではあるのですが、ANYNETまたはエンタープライズ・エクステンダでTCP/IP接続することができるAPPC接続が必要となります) を使用します。

イメージ・ファイルをシステム間で転送する際は、ファイルのサイズに注意してください。ディスクのフル・イメージは最大で8 GBになりますので、PTFグループやアップグレード・メディアの全集合は数GBになりえます。同じシステム上のあるLPARから別のLPARへ転送する場合は仮想イーサネット(あるいは仮想イーサネットに比べるとそれほどは使用されていない仮想OptiConnect)を使用してください。外部ネットワークを経由する必要がある場合は、使用するネットワークのトラフィックの種類に注意してください。帯域幅に制限があったり距離がかなり離れていたりする場合はすべてをテープに保存する方法も検討してください。

もう1つ気をつけなければいけない点は「保存可能」フラグです。イメージ・ファイルの属性を見てみると(WRKLNK画面のオプション8を使用)、このフラグが「no」に設定されているかもしれません。仮想テープ(これもまたイメージ・カタログとIFS中のファイルを使用します)が「保存の保存」を避けられるようにするためにはこのフラグを「no」に設定しておくことが重要ですが、これに気づかないでいるとイメージ・ファイルをシステム間で移動させるのが遅くなることがあります。このフラグが設定されている場合は次のコマンドを使用して設定を元に戻すことができます。

CHGATR OBJ('/image catalog directory name')
 ATR(*ALWSAV) VALUE(*YES) SUBTREE(*ALL)

イメージ・カタログは(V5R4で初めて提供された)仮想テープ技術を支えるものです。仮想テープの詳細については本稿では触れませんが、V5R3まで遡ると次のコマンドを使用して書き込み可能な仮想光学メディアを作成することができます。

ADDIMGCLGE FROMFILE(*NEW)

このコマンドを使用してオブジェクトの保存や配布メディアの作成を行うことができます。しかし書き込み可能な光学メディアはメインのストレージ・ダンプ、ライセンス内部コード、大規模カスタム・フィックス・パッケージ(2ボリューム以上)、統合xSeriesサーバー、ダウンしているシステムでの回復操作(サーバーがイメージ・カタログをマウントするにはサーバーが稼動中でなければなりません)には使用できないのでいくつかの制限があります。

頭痛の種

IBMはこうしたいくつかの(物理的メディアと比較した場合の)欠点を各リリースで修正してきました。最初の大きな頭痛の種の1つが仮想光学ドライブとイメージ・カタログに対するセキュリティ要件でした。IBMは、従来は物理的なセキュリティ下(物理光学ドライブは通常データセンター内のシステム内に格納されている)にあったものが、今や仮想化されシステムをネットワーク経由で使用しているあらゆるユーザーが使用できる可能性があることに気づいたのです。このリスクを減らすためにIBMはイメージ・カタログ・コマンドを使用できるのは「trusted」プロファイルでしか使用できないようにしました。つまりV5R4以前ではイメージ・カタログのコマンドを実行する際には*ALLOBJと*SECADMの両方の特殊な権限が必要でした。IBMはこれをV5R4で修正し、イメージ・カタログのコマンドを*PUBLIC *EXCLUDE権限で実行できるようにし、各システム管理者が自分のシステムに合っているようにコントロールできるようにしました。

依然として問題になっている小さな頭痛の種は私が「イメージ・カタログの消失」と呼んでいる問題です。V5R3以前のリリースではシステム上のすべてのイメージ・カタログの状態を確認するコマンドはありませんでした。したがって、特定の仮想光学ドライブにイメージ・カタログをロードしたい場合にそのドライブが使用されているかどうかを確認する最良の方法はWRKOPTVOLコマンドを実行することでした。このコマンドを実行するとドライブ中に光学ボリュームがないという結果になる場合があり、続いてLODIMMGCLGコマンドを実行すると「『カタログ名』というカタログは『ドライブ名』というドライブにロードされませんでした」というエラーメッセージが出力されてしまいます。ここでカタログ名とドライブ名は使用しようとしているイメージ・カタログの名前とドライブの名前です。

ジョブ・ログをもう少し調査してみると「CPDBC12 『ドライブ名』というドライブは現在使用中です」というエラーが出ているのが見つかります。さらに調べてみると光学ドライブが関連付けられているイメージ・カタログが見つかります。そのイメージ・カタログを取り外すと新しいイメージ・カタログを正常にロードすることができます。

上記を正しく理解する最良の方法はテープ・ドライブ、マガジン、テープのたとえに戻って考えることです。テープ・ドライブにテープがロードされていなくてもロードされているテープのマガジンは依然として存在しています。これはイメージ・カタログを仮想光学ドライブにロードしたのにイメージ・カタログがマウント状態になっておらずにロード状態あるいはアンロード状態になっている場合に発生します。そのマガジンからテープ・ドライブにテープが引き出されていなくても、そのマガジン(LODIMGCLG OPTION(*UNLOAD)を削除してから新しいマガジンをロードしなければなりません。

WRKIMGCLGコマンド:頑張ってやってみる

V5R3以後のリリースでは依然としてWRKOPTVOLを使用する際の落とし穴にはまる場合がありますが、今はそれよりずっと良いWRKIMGCLGコマンドがあります。このコマンドはシステム上のすべてのイメージ・カタログとそのイメージ・カタログがロードされているすべての仮想光学ドライブを(もしあれば)表示します。

またWRKIMGCLGコマンドは使用を終えたイメージ・カタログを整理する際にも便利です。オプション4を指定するとイメージ・カタログ・オブジェクトとそれに関連付けられているすべてのイメージ・ファイルを削除します(IFSに空のディレクトリだけを残すことになります)。同様に、WRKIMGCLGEコマンドでオプション4を指定するとエントリとその元になっているイメージ・ファイルをIFSから削除します(誤ったイメージを誤ったイメージ・カタログにロードした場合にとても便利です)。

DLTIMGCLGコマンドはデフォルトではイメージ・カタログ・オブジェクトだけを削除し、イメージ・ファイルはIFS中に残したままであることに注意してください(KEEP (*NO)パラメータはこれを無効にしてイメージ・ファイルも削除します)。このコマンドは、イメージ・カタログが思い通りに動作しないので再構築したい場合に便利です。イメージ・カタログ・オブジェクトはかなり小さいですが、IFS中のイメージ・ファイルはかなり大きなものとなることがあり、特にこの機能を使えば使うほどサイズが大きくなる可能性があるということを覚えておいてください。

徹夜や週末、祝日にシステムの名誉ディスク交換要員として働く必要はもはやありません。もっと良い方法があり、しかも結果が劣るのは嫌だということをi システムに教えてあげてください。イメージ・カタログのパワーを使ってシステムの共依存関係から脱却してください。

あわせて読みたい記事

PAGE TOP