CNR(One-Click & Run)は、Linuxソフトウェアの検索とインストールを容易にするために開発された、無料のワンクリックソフトウェア配信サービスでした。ユーザーがコンピュータ上でソフトウェアを検索してインストールするのを支援し、使用されていないときはシステムトレイに常駐していました。
CNRは、日常的な用途から専門的な用途まで対応できる、大規模なLinuxプログラムデータベースを提供していた。Linspireとその派生版、そしてその他様々なLinuxディストリビューションで利用可能だった。
2002年、 Linspire , Inc.によってデジタルソフトウェア配信サービスとしてCNRが誕生しました。このサービスは、デスクトップLinuxユーザーにオンラインソフトウェアウェアハウスを提供し、ユーザーはそこから製品をクリックするだけでデスクトップに自動的にインストールすることができました。サービスを利用するには、49.95ドルの有料会員登録が必要でした。ウェアハウスには、無料、非無料、商用のLinuxソフトウェアがホストされていました。このサービスは、クライアントアプリケーションがDebianのAPTおよびdpkgと連携して依存関係を解決し、ファイルをインストールする仕組みになっていました。
2006年、Linspireはコミュニティを支援するため、会員制度をCNR BasicとCNR Goldの2段階制に変更しました。当初は年間19.95ドルの購読料として導入されたCNR Basic会員制度は、後に無料化され、ユーザーは購読料を支払うことなく無料および有料ソフトウェアにアクセスできるようになりました。
Linspireは2006年4月24日、CNRをフリーソフトウェア/オープンソースライセンスの下でリリースする計画を発表した。これにより、他のLinuxディストリビューションでもCNRを利用できるようになる。
2007年初頭、Linspireは、自社のディストリビューション以外にも、Debian、Ubuntu、そして将来的にはRPMにも対応するなど、CNRサービスを拡張していくと発表した。Linspire は、この取り組みを通して、デスクトップLinux向けのソフトウェアを全て一つのサービスに集約し、より簡単に検索・インストールできる方法を提供することを目指していた。
2007年12月、Linspireは、更新されたLinspireおよびFreespireディストリビューション、Ubuntu 7.04 FeistyおよびUbuntu 7.10 Gutsyをサポートする新しいCNR.comサービスのベータ版リリースを発表しました(Ubuntu 8.04 Hardyについては2008年4月にサポート予定)。
2008年3月10日、Linspireは従来のCNRサービスを終了しました。[ 1 ]
CNRは数千ものWebベースのアプリケーションへのアクセスも提供しており、Linuxコミュニティは単一のソースからローカルLinuxとWebソフトウェアの両方を利用できるオプションを利用できます(2008年2月現在)。製品ライブラリの閲覧や検索機能はそのままに、Webソフトウェアの利便性を向上させるための追加機能(ブックマーク機能など)も計画されています。コミュニティは、既に豊富なアプリケーションライブラリに新しい製品を追加することもできます。
CNR.comは、一般的にサービス指向アーキテクチャ(SOA)と呼ばれる方式で、サービスの集合体として構築されています。この拡張性の高いアーキテクチャは、以下のJEE 5テクノロジーを使用して構築されています。
以下に、主要なサービスの一覧と、それぞれのサービスに関する説明を記載します。
インポートサービスは、パッケージリポジトリのインポート、パッケージメタデータの解析、複雑なヒューリスティックアルゴリズムを用いたパッケージと製品のマッチングを担当します。インポートサービスは、Debianベースのディストリビューションであればどれでもサポートします。RPMベースのパッケージも、RPMパッケージメタデータスキーマとリリース管理手法に特化した追加作業を行うことで、ドメインモデルでサポート可能です。インポートサービスは、パッケージと製品のマッチングにおいて98%の成功率を誇り、管理者サポートツールによって問題の発見と迅速な修正が可能です。このサービスのおかげで、CNR.comはデスクトップLinux向けソフトウェアウェアハウスとして最大規模を誇ります。
倉庫サービスには、外部クライアントがCNR.comから製品にアクセスしてインストールするために使用するWebサービスAPIが含まれています。これらのAPIは一般公開されており、SOAPベースです。APIは以下のとおりです。
partnerLightupこのpartnerLightupAPIは、クライアントのインストール期間を表すUUID MachineIDを提供します。生成されたMachineIDは、他のウェアハウスAPIリクエストに必要となります。このAPIは、クライアントの使用状況を監査し、発信元パートナーに報告する目的で存在します。lightup– APIは、記録するビルド追跡番号がない点を除いて、従来のAPIlightupと同じです。partnerLightupgetOsesAPIgetOsesは、サポートされているオペレーティングシステムの一覧をデータウェアハウスから取得するために使用されます。この一覧は、クライアントが実行中のオペレーティングシステムを正しく識別できない場合に必要となり、サポートされているオペレーティングシステムの一覧からユーザーに選択を求める必要があります。getDistSnapIndexこのgetDistSnapIndexAPIは、指定されたオペレーティングシステムに関する製品情報を集約してサーバーに問い合わせるために使用されます。このAPIは、クライアントでの検索、並べ替え、表示に役立つ簡潔な製品情報を含むペイロードのURIを返します。getDisstSnapIndexDelta– このgetDisstSnapIndexDeltaAPIは、指定されたオペレーティングシステムの製品情報ストアにおける集計された更新および削除情報をサーバーに照会するために使用されます。productActionRequestこの productActionRequestAPIは、特定の単一製品のダウンロードURLをサーバーに問い合わせるために使用されます。サーバーが製品へのアクセスを許可できない場合は、代わりに解決URLがクライアントに返され、リクエストが解決されて再実行されます。reportActionRequest– このreportActionRequestAPIは、の実行状況を報告するために使用されますproductActionRequest。このデータは、reportActionRequestAPIの成功および/または失敗を監査するために使用されます。getProductIdsForPkgBinsこのgetProductIdsForPkgBinsAPIは、クライアントが初期設定時やディストリビューション変更後に、マシンに既にインストールされている製品を特定するために使用されます。クライアントは、システムに現在インストールされているすべてのバイナリパッケージを特定し、このAPIを使用して、これらの製品をディストリビューションのスナップショット内の製品と照合できます。倉庫サービスでは、製品要件管理も行います。製品要件とは、ユーザーが製品のインストールアクセス権を取得する前に満たさなければならないユーザーアクセス要件のことです。製品要件は以下のとおりです。
このeコマースサービスは、商用ソフトウェアの購入、会員サービスの購入、および使用許諾契約(EULA)へのユーザーの同意が必要な製品については、それらの購入手続きをすべて処理します。また、eコマースサービスは、 DRM(デジタル著作権管理)が必要なソフトウェアについては、ユーザーへのアクティベーションコードの配信やISV(独立系ソフトウェアベンダー)へのアカウント登録など、DRM関連の要件の処理も担当します。
ユーザー管理サービスは、ユーザーアカウントの作成と管理、およびユーザーアカウントとユーザーアクセスの認証と認可をそれぞれ処理します。認証はLDAPを使用して管理され、シングルサインオン(SSO)はトークンフェデレーションサービスを介して利用されます。
パッケージ管理サービスは、すべてのパッケージの安全な保管と安全でない保管を管理し、無料、非無料、商用などあらゆる種類のパッケージの安全な配信を提供することで、CNR.comをデスクトップLinuxソフトウェア配信の業界リーダーにしています。このサービスは、各製品のカテゴリ分類も担当しています。カテゴリはXDGをベースに、検索性を向上させるためにXDGには含まれていないCNR独自のカテゴリセットを追加したものです。
コミュニティサービスは、コミュニティ全体および各製品向けに、フォーラム、Wikiドキュメント、ブログ機能を提供します。各製品には独自のミニコミュニティがあり、そこで活発な議論やセルフヘルプ型のコミュニティサポートが行われます。
これはCNR.comアーキテクチャのプレゼンテーション層であり、Web 2.0インターフェースを提供する役割を担っています。これらのインターフェースにより、以下の機能が利用可能になります。
その他のインターフェースとしては、10分ごとに更新される製品チャートや、製品データおよびユーザーデータの表示と管理を行うための各種管理インターフェースなどがあります。
このサポートサービスは、ユーザーから寄せられたサポート問題の追跡、管理、解決を行います。また、有料サポート機能と無料サポート機能を選択できる機能も備えています。
メールリストサービスは、メーリングリストへの登録と購読管理、およびサイト上でのユーザーによる何らかの活動の結果としてユーザーにシステムメールを送信する役割を担います。
セキュアデータサービスは、ユーザーが保存することを選択したクレジットカードプロファイルの安全な保管を担当します。
カテゴリデータサービスは、製品カテゴリに関連付けられたデータの保存を担当します。
監査データサービスは、インストール、クライアント登録、マシン登録などのユーザーアクティビティ記録の保存を担当します。
製品データサービスは、製品固有のデータと製品集計データの保存を担当します。
倉庫データサービスは、パッケージレベルのデータと配送レベルのデータの保管を担当します。
リソースデータサービスは、ロゴやスクリーンショットなど、ユーザーが提供する画像を含む、製品に関連付けられたすべての画像の保存を担当します。
CNRクライアントは、デスクトップ上のaptおよびdpkgと、サーバー上のデータウェアハウスWebサービスと連携するデスクトップクライアントアプリケーションです。コミュニティが独自のクライアントソフトウェアを開発するための出発点となることを目的としています。アプリケーションはC++で記述されており、GUIはQTフレームワーク上に構築されています。API統合はgsoapフレームワークを介して行われます。CNRクライアントはオープンソースかつオープンライセンスであるため、ライセンスを取得する必要なく、誰でも自分の目的に合わせて使用できます。主な機能は以下のとおりです。
Linspire社はCNRサービスをUbuntuディストリビューションに移植する計画を立てており、2006年4月24日にはCNRをフリーソフトウェア/オープンソースライセンスで公開する計画を発表した。これにより、他のLinuxディストリビューションでもCNRを利用できるようになる。
2007 年 1 月 23 日に、CNR for all のWeb サイトが立ち上げられましたが、ウェアハウス自体の立ち上げは 2007 年の第 2 四半期に発表されました。新しい無料/オープンソースの CNR クライアントとプラグインのリリースは、Freespire 2.0 と Linspire 6.0 のリリースと同時に行われる予定で、どちらにも無料/オープンソースの CNR クライアントとプラグインが含まれます[ 2 ] (この新しい CNR は、Linspire/Freespire の内部では「CNR 7」として知られています)。[ 3 ]
2008 年 7 月 1 日、Linspire は社名を Digital Cornerstone [ 4 ]に変更し、 Xandrosに買収されました[ 5 ]。この取引により、Xandros は CNR を含む Linspire のすべての商標、特許、および資産の所有権を取得しました。CNR クライアントは最終的に Xandros のデスクトップ Linux オペレーティングシステムで利用可能になると予想されています。2009 年、Xandros は CNR をベースにした新しい「アプリ ストア」を導入し、Prestoオペレーティングシステムに CNR へのアクセスを含めました。
CNR 7 のリリース時には、Debian、Fedora Core、Freespire、Linspire、openSUSE、Ubuntu (Feisty Fawn) の6 つのディストリビューションがサポートされる予定でした。[ 6 ]他のディストリビューションのサポートは 2008 年以降に開始される予定でした。[ 6 ]
CNR 7のテスト版は2007年7月19日にリリースされた。[ 7 ]