ソフトウェアのクローンとは何か?

2020年6月9日

システムのクローンとは

「クローン」といえば映画などに出てくる遺伝子情報を複製した「クローン人間」などをイメージしますが、IT業界で「クローン」と言うと「複製する」「模造品を作成する」という意味を指します。「ソフトウェアをクローンする」「アプリケーションをクローニングする」という形で使用されます。
クローンを活用すれば故障などの緊急時のトラブルに対応できたり、模造品の作成ができます。
クローンを行う場合、プログラミングファイルをコピーするだけでは、細かな設定まで複製することができず、コピーをしても動かないということが多々あります。
そのため、クローンのための専用ソフトウェアを使用することにより、一般的なファイルやディレクトリのコピーでは複製されない管理領域に記録されているデータも含めて複製することができます。

クローンが必要となる状況

開発環境の構築

ソフトウェアのクローンはどのような状況で必要になるのでしょうか。
例えば、既存のソフトウェアを改修するという場合、本番環境とは別に、開発を行う環境を構築しなければならないことがあります。こうした時にソフトウェアをクローンしなければならない状況が生まれます。
Webサイトに掲載しているシンプルなお問い合わせフォームを開発環境に複製するというだけでも、お問い合わせフォームを作っているプログラミングファイルをコピーすればいいというだけでなく、データベースやサーバー側の設定まで含めて再現できなければ、本番環境と同じ設定の開発環境を構築することはできません
そのため、クローンの専用ソフトを使うことによって、必要な設定をまるごとコピーします。

バックアップ

バックアップをとる場合でも、クローンすることが重要になります。例えば、PCのデータのバックアップを取得していても、HDD・SSDの機器自体が故障してしまった場合は、データの復旧ができません。しかし、データのクローンを作成しておけば、このような緊急時のトラブルにも対応することができます。そのため、法人PCのクローン作成は、最低でも年に1度行うことが推奨されています。
Webアプリケーションであれば、最近であればサーバー会社が自動的にコードを書いたファイルだけでなく、サーバーの設定やデータベースまでバックアップを取得するオプションを提供していることが多々あります。
こうしたサービスを利用して、一定の期間で各種のデータ・設定をクローンし、バックアップを用意しておくとよいでしょう。

異なる機種でソフトウェアを動かす

開発環境を構築するとき以外でも、別の機器で同じ環境を再現しなければいけなかったり、多数の機器に同じシステムを導入しなければならない場合にクローンが必要になります。例えば、テレビゲームをはじめてリリースした時とは別の機種で販売したいときを想定すれば、クローンの必要性がわかるかもしれません。

模造品を作る

専用のクローンソフトを使えば、Webアプリケーションやスマートフォンアプリをクローンし、模造品を作ることも可能です。
クローンした他社のアプリケーションをそのままリリースをするのは倫理的にも法律的にもアウトですが、リバースエンジニアリングとして、中身を見てみるということができれば、技術力の向上につながります。
繰り返しになりますが、コードの著作権も問われる時代になっていますので、模造品を作るためにクローンを行う場合は、法律的に問題がないかだけは注意して行う必要があります。

参考