比較

PDFmyURL vs IronPDF:技術比較ガイド

PDFmyURLvs IronPDF:PDF生成のためのクラウドAPI vs ローカル.NETライブラリ

.NET開発者がURLやHTMLコンテンツをPDFに変換する必要があるとき、PDFmyURLのようなクラウドベースのAPIサービスか、IronPDFのようなローカル処理ライブラリかという基本的なアーキテクチャの選択に直面します。 この比較では、両方のアプローチを検証し、技術的な違い、プライバシーへの影響、さまざまなアプリケーション要件への適合性を分析します。

PDFmyURLとは何ですか?

PDFmyURLは、URLをPDFに変換するために設計されたクラウドベースのAPIサービスです。 このサービスでは、外部サーバーで処理を行うため、開発者はローカルマシンに大きな処理能力を必要としません。 PDFmyURLは.NETアプリケーションでPdfcrowd SDKを使用し、変換操作のたびにリモートサーバーと通信するHtmlToPdfClientクラスを提供します。

このサービスは、ウェブの使いやすさを重視し、一貫したレンダリングのためにW3C標準に準拠しています。 しかし、スタンドアロンライブラリではなくAPIラッパーとして、PDFmyURLは一貫したインターネット接続を必要とし、すべての文書を処理のために外部サーバーに送ります。

PDFmyURLの主な特徴は以下の通りです:

  • クラウドベースの処理:すべての変換はPDFmyURLの外部サーバーで行われます。
  • サブスクリプション価格: 月額39ドルから。
  • インターネット依存:すべての変換にはネットワーク接続が必要です。
  • APIキー認証:リクエストごとにユーザー名とAPIキーが必要
  • レート制限:APIコールはサブスクリプションプランに基づいて制限されることがあります。

IronPDFとは何ですか?

IronPDFは、アプリケーション環境内でローカルにPDFを処理する包括的な.NETライブラリです。 ChromePdfRenderer クラスは、HTML から PDF への変換に最新の Chromium ベースのエンジンを使用し、外部サーバーにデータを送信せずに CSS3 と JavaScript を完全にサポートします。

PDFmyURLのクラウドベースのアプローチとは異なり、IronPDFはすべてをお客様のインフラ内で処理します。 このアーキテクチャは、PDF操作、テキスト抽出、透かし、セキュリティ機能など、基本的な変換を超える機能を提供しながら、外部処理に関連するプライバシーの懸念を排除します。

アーキテクチャの比較

PDFmyURLとIronPDFの基本的な違いは、処理がどこで行われるかにあります: 外部サーバーとローカル処理です。

アスペクトPDFmyURLIronPDF
タイプAPIラッパー.NET ライブラリ
加工場所外部サーバーローカル(お客様のサーバー)
依存性についてインターネット接続が必要ローカル処理
認証リクエストごとのAPIキーワンタイムライセンスキー
費用月額39ドル以上永久ライセンスあり
プライバシーについて外部送信データデータはローカルのまま
料金の制限あり(プランによる)なし
プラットフォームサポートウェブベースクロスプラットフォーム
ユースケース少量のアプリケーション大容量およびエンタープライズ

契約書、財務報告書、個人データなど、機密性の高い文書を扱うアプリケーションでは、処理場所がプライバシーやコンプライアンスに大きく影響します。 PDFmyURLは全てのドキュメントを外部サーバーに送りますが、IronPDFは全てをコントロールされた環境内に保ちます。

URLからPDFへの変換

ウェブページをPDFに変換することで、これらのソリューション間のAPIパターンの違いを示します。

PDFmyURL URLからPDFへのアプローチ:

// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.convertUrlToFile("https://example.com", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.convertUrlToFile("https://example.com", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF URL-to-PDF アプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは変換操作のたびにAPI認証情報を必要とし、外部サービスへの依存関係を作ります。HtmlToPdfClientコンストラクタはユーザー名とAPIキーの両方を必要とし、変換メソッドはAPI固有のエラーのためのtry-catch処理を含みます。

IronPDFのChromePdfRendererは初期設定の後、独立して動作します。RenderUrlAsPdf()メソッドは内蔵のChromiumエンジンを使ってローカルでURLを処理し、保存やさらなる操作が可能なPdfDocumentオブジェクトを返します。 URLからPDFへの変換についてはIronPDFのドキュメントをご覧ください。

HTML文字列からPDFへの変換

HTMLコンテンツを直接PDFに変換しても、同様のアーキテクチャの違いが見られます。

PDFmyURLのHTML文字列変換:

// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            string html = "<html><body><h1>Hello World</h1></body></html>";
            client.convertStringToFile(html, "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            string html = "<html><body><h1>Hello World</h1></body></html>";
            client.convertStringToFile(html, "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFのHTML文字列変換:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLを使うと、HTMLコンテンツはconvertStringToFile()を介して外部サーバーに移動します。 これは、HTMLテンプレート、動的コンテンツ、埋め込みデータがサードパーティのインフラストラクチャを通過することを意味します。

IronPDFのRenderHtmlAsPdf()はHTMLをローカルで処理し、コンテンツをアプリケーションの境界内に保ちます。 HTMLからPDFへの変換パターンに関する詳しいガイダンスについては、HTML to PDF tutorialをご覧ください。

設定付き HTML ファイル変換

ページ設定を構成することで、2つのソリューション間で異なるAPI設計パターンが明らかになります。

設定によるPDFmyURLファイル変換:

// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.setPageSize("A4");
            client.setOrientation("landscape");
            client.setMarginTop("10mm");
            client.convertFileToFile("input.html", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.setPageSize("A4");
            client.setOrientation("landscape");
            client.setMarginTop("10mm");
            client.convertFileToFile("input.html", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

設定によるIronPDFファイル変換:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは、文字列パラメータを持つセッターメソッドを使います(setPageSize("A4"), setOrientation("landscape"))。 このアプローチでは、APIが期待する文字列値を正確に把握する必要があります。

IronPDFはRenderingOptionsオブジェクトを通して強く型付けされたプロパティを使用します。 PdfPaperSize.A4PdfPaperOrientation.Landscapeは、インテリセンスのサポートとコンパイル時の検証を提供する列挙値です。 マージンの値は、単位の接尾辞が付いた文字列ではなく、数値(ミリメートル)です。

APIマッピングリファレンス

PDFmyURLからIronPdfへの移行を検討しているチームにとって、APIマッピングを理解することは開発工数の見積もりに役立ちます。

コア メソッド

PDFmyURL (Pdfcrowd)IronPDFノート
new HtmlToPdfClient("user", "key").new ChromePdfRenderer().リクエストごとの認証なし
<コード>client.convertUrlToFile(url, file)renderer.RenderUrlAsPdf(url).SaveAs(file)URLからPDFへ
<コード>client.convertStringToFile(html, file)renderer.RenderHtmlAsPdf(html).SaveAs(file)HTMLからPDFへ
<コード>client.convertFileToFile(入力, 出力)</コード><コード>client.convertFileToFile(入力)renderer.RenderHtmlFileAsPdf(input).SaveAs(output).ファイルからファイルへ
response.GetBytes()<コード>pdf.BinaryData</コード生のバイトを取得

設定オプション

PDFmyURLIronPDFノート
setPageSize("A4")RenderingOptions.PaperSize=PdfPaperSize.A4用紙サイズ
setOrientation("landscape")RenderingOptions.PaperOrientation=PdfPaperOrientation.Landscapeオリエンテーション
setMarginTop("10mm")RenderingOptions.MarginTop = 10.マージン (mm)
setMarginBottom("10mm")RenderingOptions.MarginBottom = 10<//code>.下部の余白
setMarginLeft("10mm")RenderingOptions.MarginLeft = 10<//code>.左余白
setMarginRight("10mm")RenderingOptions.MarginRight = 10.右マージン
setHeaderHtml(html)を使用してください。RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = html }.ヘッダー
setFooterHtml(html)のようにします。RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = html }.フッター
setJavascriptDelay(500)とします。RenderingOptions.RenderDelay = 500<//code>.JSの待ち時間
setUsePrintMedia(true)を設定してください。RenderingOptions.CssMediaType = PdfCssMediaType.Print.CSSの印刷
setUserPassword("pass")pdf.SecuritySettings.UserPassword = "pass".ユーザーパスワード

PDFmyURLで使用できない機能

IronPDFの特徴翻訳内容
PdfDocument.Merge()を使用してください。複数のPDFを結合
pdf.ExtractAllText()を使用してください。テキストコンテンツの抽出
<コード>pdf.ApplyWatermark()</コード></コード透かしの追加
<コード>pdf.SecuritySettings</コードパスワード保護と暗号化
<コード>pdf.Form</コードフォーム入力と操作
<コード>pdf.Sign()</コードデジタル署名

IronPDFのこれらの追加機能は、基本的な変換を超えて、完全なPDFライフサイクル管理を提供します。 PDF操作機能については、PDFのマージと分割ガイドを参照してください。

プライバシーとデータセキュリティ

処理場所の違いにより、データの取り扱いに大きな影響が生じます。

PDFmyURLプライバシーへの配慮:

  • すべての文書は外部サーバーを経由して送信されます。
  • 機密性の高い契約書、財務報告書、個人データは外部で処理されます。
  • サードパーティのインフラストラクチャ上のデータ保持を制御できない
  • コンプライアンス要件により、外部処理が禁止される場合があります。

IronPDFプライバシーの利点:

  • ドキュメントがサーバーから離れることはありません
  • データ処理を完全に制御
  • 規制業界(医療、金融、法律)に適しています。
  • サードパーティのデータ露出なし

機密情報を扱う組織や、コンプライアンス要件(GDPR、HIPAA、SOC 2)の下で運営されている組織では、ローカル処理により、サードパーティのデータ処理慣行を評価する複雑さが解消されます。

コスト構造の比較

価格モデルは、サブスクリプションと永久ライセンスで根本的に異なります。

価格面PDFmyURLIronPDF
モデル月額サブスクリプション永久ライセンスあり
開始費用月額39ドル1回限りの購入
年間コスト468ドル以上/年継続料金なし
料金の制限プラン依存なし
ボリューム・スケーリングより高いレベルが必要無制限の処理

長期的なプロジェクトや大量のアプリケーションの場合、PDFmyURLのサブスクリプションモデルは時間の経過とともに大きなコストがかかります。IronPDFの永久ライセンスオプションは継続的な料金や量の制約がなく、予測可能な経済性を提供します。

認証パターン

認証アプローチは、2つのソリューションで大きく異なります。

PDFmyURL認証:

// API credentials required for every conversion
var client = new HtmlToPdfClient("username", "apikey");
// API credentials required for every conversion
var client = new HtmlToPdfClient("username", "apikey");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF認証:

// One-time license configuration at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// One-time license configuration at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは、HtmlToPdfClientをインスタンス化するたびに認証情報を必要とするため、APIキーの管理と公開に関する潜在的なセキュリティ上の懸念が生じます。 IronPdfのライセンスキーはアプリケーションの起動時に一度だけ設定され、通常はコンフィギュレーションで設定されます。

ヘッダーとフッターのプレースホルダーの構文

PDFmyURLから移行するチームは、ダイナミックヘッダーとダイナミックフッターのプレースホルダーの構文の違いに注意してください。

PDFmyURLプレースホルダ:

client.setHeaderHtml("<div>Page {page_number} of {total_pages}</div>");
client.setHeaderHtml("<div>Page {page_number} of {total_pages}</div>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFプレースホルダ:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>Page {page} of {total-pages}</div>"
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>Page {page} of {total-pages}</div>"
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは{page_number}<//code>と{total_pages}<//code>を使用し、IronPDFは{page}<//code>と{total-pages}<//code>を使用します。 この構文の違いは、PDFmyURLの移行作業中に注意が必要です。 包括的なヘッダーとフッターの実装については、headers and footers documentationを参照してください。

非同期パターンの違い

この2つのソリューションでは、非同期操作の扱いが異なります。

PDFmyURL非同期:

// PDFmyURL: Native async
var response = await client.ConvertUrlAsync(url);
// PDFmyURL: Native async
var response = await client.ConvertUrlAsync(url);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF非同期:

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは、ネットワーク依存のアーキテクチャを反映して、ネイティブの非同期メソッドを提供します。 IronPDFの操作はデフォルトでは同期ですが、非同期コンテキストのためにTask.Run()でラップすることができます。

エラーハンドリング

例外の種類とエラー処理のパターンは、ソリューションによって異なります。

PDFmyURLのエラー処理:

try
{
    client.convertUrlToFile(url, file);
}
catch (Pdfcrowd.Error e)
{
    Console.WriteLine("Error: " + e);
}
try
{
    client.convertUrlToFile(url, file);
}
catch (Pdfcrowd.Error e)
{
    Console.WriteLine("Error: " + e);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFエラー処理:

try
{
    var pdf = renderer.RenderUrlAsPdf(url);
    pdf.SaveAs(file);
}
catch (IronPdf.Exceptions.IronPdfRenderingException e)
{
    Console.WriteLine("Error: " + e);
}
try
{
    var pdf = renderer.RenderUrlAsPdf(url);
    pdf.SaveAs(file);
}
catch (IronPdf.Exceptions.IronPdfRenderingException e)
{
    Console.WriteLine("Error: " + e);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは、API関連の問題(ネットワーク障害、認証問題、レート制限)に対してPdfcrowd.Errorを投げます。 IronPDFはIronPdfRenderingExceptionのような特定の例外タイプを持つ標準的な.NET例外パターンを使用します。

チームがPDFmyURLからIronPDFへの移行を検討するとき

PDFmyURLの代替としてIronPDFを評価するチームにはいくつかの要因があります:

プライバシーとコンプライアンス要件:機密データを扱う組織では、文書を外部サーバーに送信できないことがよくあります。 IronPdfのローカル処理はこの要件に直接対応します。

コスト予測可能性:PDFmyURLのサブスクリプションモデルは、プロジェクトのライフタイムにわたって蓄積される継続的な費用を生み出します。 IronPDFの永久ライセンスオプションは、ボリュームベースのスケーリングの心配をすることなく固定コストを提供します。

オフライン機能:制限されたネットワーク環境で展開されるアプリケーションやオフライン機能を必要とするアプリケーションは、クラウドベースのAPIに頼ることはできません。IronPdfは初期設定後、インターネットに接続しなくても動作します。

拡張PDF機能:PDFmyURLは変換に重点を置いていますが、IronPDFは追加機能-結合、分割、テキスト抽出、透かし、フォーム入力、電子署名-を単一のライブラリ内で提供します。

レートリミットの排除: 使用量の多いアプリケーションは、ピーク時にPDFmyURLのスロットリングに遭遇する可能性があります。 IronPDFは外部からの制約なしに無制限のドキュメントを処理します。

サービス依存性の除去:クラウドAPIの可用性はアプリケーションの信頼性に影響します。 ローカル処理により、サードパーティのサービス稼働時間への依存を排除します。

インストールの比較

PDFmyURLのインストール:

# Install Pdfcrowd SDK
Install-Package Pdfcrowd
# Install Pdfcrowd SDK
Install-Package Pdfcrowd
SHELL

ユーザー名とAPIキーを含むPlus APIアカウントのセットアップ。

IronPDFのインストール:

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPDFはライセンスキーの設定が必要です:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

どちらのソリューションもNuGet経由で統合されます。 IronPdfの最初の実行はChromiumレンダリングエンジン(約150MB)をダウンロードし、その後のオフライン操作を可能にします。 このライブラリは、.NET Framework、.NET Core、.NET 5+、および.NET 10とC# 14への前方互換性をサポートしています。

決定する

PDFmyURLとIronPDFのどちらを選択するかは、異なるアプリケーション要件と組織の優先順位を反映します:

次のような方はPDFmyURLをご検討ください: 少量のアプリケーションのために迅速な統合が必要で、文書処理にプライバシーの制約がなく、インフラストラクチャの制御よりも運用の簡素化を好み、継続的なサブスクリプションのコストを受け入れられる方。

IronPDFをご検討ください: ローカル処理が必要な機密文書を扱う場合、サブスクリプション料金なしで予測可能なコストが必要な場合、オフライン機能が必要な場合、または制限されたネットワークで運用する場合、変換以外の拡張PDF機能が必要な場合、またはレート制限を気にせずに大量に処理する場合。

IronPdfのローカル処理アーキテクチャは、ほとんどのプロダクションアプリケーション、特にビジネス文書や顧客データを扱うアプリケーション、コンプライアンス要件の下で運用されるアプリケーションにとって、プライバシー、コスト予測可能性、機能の幅において大きな利点を提供します。

IronPDFを始めよう

IronPDFをPDF生成のニーズに合わせて評価する:

1.NuGet経由でインストールします:IronPdfをインストールします。 2.使い始めのドキュメントを確認してください。 3.変換パターンについては、HTML to PDF チュートリアルを参照してください。 4.完全なメソッドのドキュメントについては、APIリファレンスを確認してください。

IronPDFチュートリアルは、基本的な変換から高度なPDF操作まで、一般的なシナリオをカバーする包括的な例を提供します。

結論

PDFmyURLとIronPDFは、.NETアプリケーションにおけるPDF生成への根本的に異なるアプローチを表しています。 PDFmyURLはクラウドベースの利便性を提供しますが、外部データ処理、継続的なサブスクリプション費用、インターネットへの依存というトレードオフがあります。 IronPDFはプライバシー保護、永久ライセンスオプション、拡張PDF機能を備えたローカル処理コントロールを提供します。

また、技術的な実装だけでなく、データ処理、コスト構造、能力ニーズなどの組織的な要件も考慮する必要があります。 ドキュメントのプライバシー、予測可能な経済性、基本的な変換以上の機能を必要とするアプリケーションのために、IronPdfのローカル処理アーキテクチャは、制御された環境内で包括的なソリューションを提供します。

これらのアプローチを選択する際には、プライバシーに関する制約、期待されるボリューム、機能のニーズ、コストの好みなど、お客様固有の要件を評価する必要があります。 処理場所の選択は、技術的な実装だけでなく、コンプライアンス態勢、運用コスト、長期的なアプリケーション・アーキテクチャにも影響します。