1

クラウドストレージサービスのデータへのアクセスと処理について疑問があります。

1.主流のクラウドストレージプロバイダー(Amazon s3、Googleクラウドストレージ、Windows Azure)のアプリケーションを作成するために使用できる一般的なAPIはありますか?このリストで見逃したプロバイダーを指摘してください。私はエンタープライズドメインのみに集中しています、個人用ストレージではありません)

2.SDKの部分になりました。iCloudでデータを処理するアプリケーション(j2eeアプリケーションとしましょう)を作成したい場合、iCloud SDKはそのような柔軟性を提供しますか?

3.クラウドストレージサービスはトランザクションサポートを提供しますか?つまり、ACIDプロパティのサポートを意味しますか?それとも私が責任を負う必要がありますか?

4

5 に答える 5

2
  • jCloudsは、優れたストレージ抽象化を提供します。これは、Amazon s3、MS Azureなど、最も一般的に使用されるクラウドストレージプロバイダーの多くをサポートします。ストレージプロバイダーのリストについては、こちらを参照してください:http ://www.jclouds.org/documentation/reference/supported-providers

jCloudsストレージコンテキストの使用方法は次のとおりです。



    import static 
        org.jclouds.aws.s3.options.PutObjectOptions.Builder.withAcl;

    // get a context with amazon that offers the portable BlobStore API
    BlobStoreContext context = new BlobStoreContextFactory().
                         createContext("aws-s3", accesskeyid, secretkey);

    // create a container in the default location
    BlobStore blobStore = context.getBlobStore();
    blobStore.createContainerInLocation(null, bucket);

    // add blob
    Blob blob = blobStore.newBlob("test");
    blob.setPayload("test data");
    blobStore.putBlob(bucket, blob);

    // when you need access to s3-specific features,
    // use the provider-specific context
    AWSS3Client s3Client =
         AWSS3Client.class.cast(context.getProviderSpecificContext().getApi());

    // make the object world readable
    String publicReadWriteObjectKey = "public-read-write-acl";
    S3Object object = s3Client.newS3Object();

    object.getMetadata().setKey(publicReadWriteObjectKey);
    object.setPayload("hello world");
    s3Client.putObject(bucket, object, withAcl(CannedAccessPolicy.PUBLIC_READ));

    context.close();

  • iCloudの専門家ではありませんが、前の回答で述べたように、一般的なプラットフォームではなく、さまざまなアップル製品でのみ使用するためのものであるという印象を受けました。
  • クラウドストレージサービスは通常、ACIDプロパティを提供しません。探しているものは、Amazon SimpleDBRDS、MS SQL Azureなどのクラウドデータベースサービスのように聞こえます。JDBCドライバーを使用して、それらのいくつかに接続できる場合があります。ただし、これらは「ストレージ」サービスではありません。これらはクラウドで実行されるデータベースであり、それぞれに独自のセマンティクスがあります。
于 2012-05-29T07:52:58.137 に答える
1

クラウド サービス プロバイダーの基本は、REST インターフェイスを使用することです。言語がネットワークと PKI セキュリティ インフラストラクチャをサポートしている限り、任意の言語を使用して REST 要求をラップできます。すべての現代言語にはそのような機能があります。

ほとんどの場合、SDK はこれらの REST インターフェイスのラッパーにすぎないため、コーダーと同期または非同期の方法を非常に簡単に記述して、探しているものを取得できます。SDK は、REST を直接使用する場合と比較して、作業を多様化するだけで迅速化します。これは、REST 直接を使用できないという意味ではありません。特定のクラウド サービスに接続するのに役立つ SDK が存在するだけです。

SDK がどのように実装され、どのような機能が提供されるかは、プロバイダーや提供するサービスによって異なります。内部サービス接続エンドポイントとその下のインターフェイスが SDK 自体にカプセル化されているため、Windows Azure SDK for Amazon Cloud を使用することはできません。すべてのクラウド サービス プロバイダーに接続するための SDK を作成できないわけではありませんが、各クラウド サービス プロバイダーはクラウド サービスの SDK を個別化します。

クラウド サービスは、ユーザーがアプリケーションを展開するためのインフラストラクチャとプラットフォームを提供します。ACID については、アプリケーション レベルの作業を処理する必要がありますが、ACID はまったく別の長い議論になる可能性があります。

于 2012-05-17T17:34:44.643 に答える
0

あなたの3つの質問について:

  1. これは実際には特定のプログラミングの質問ではなく、利用可能な製品の調査のようなものです。すべてのクラウドプロバイダーに完全に汎用的なインターフェイスを提供する特定のライブラリを知りません。
  2. 私の理解では、iCloudはMac / iPad / iPodコンテンツの保存と同期用であり、コンピューティングプラットフォーム用ではありません。
  3. すべてのクラウドプロバイダーが、それぞれ独自のトランザクションサポート(またはサポートの欠如)を備えた、異なるリレーショナルおよび非リレーショナルデータストアを提供していると確信しています。Windows Azureでは、SQL Azureは、分散トランザクションを除いて、SQLServerと同様のACIDサポートを提供します。Windows Azureテーブルストレージは、特定のパーティション内でアトミック操作を提供します。マルチレコードの書き込みが同じパーティションに書き込まれている限り、これは1回のアトミック操作で実行できます。SQL Azure、およびWindows Azureストレージ(ブロブ、テーブル、キュー)は、ストレージが冗長性のために3重に複製されるため(Windows Azureストレージも地理的に複製されるため)、耐久性があると見なされます。
于 2012-05-18T02:21:16.963 に答える
0

質問 1 について。リストに挙げたすべてのサービスが共通の API を共有しているかどうかを尋ねている場合は、いいえ。それらはすべて REST を使用します。つまり、JSON をそれらのいずれでも使用できますが、呼び出しの名前と構文が異なる可能性があります。

于 2012-05-18T17:05:39.383 に答える
-1

iClous は、iOs および Mac OS X 用の Apple の SDK を介してのみ使用できます。j2ee アプリケーションからはアクセスできないと確信しています。

于 2012-05-19T07:11:26.780 に答える