SQL Servicesは、データベースエンジン部分のSQL Data Services、データの同期を行うData Sync、レポーティングを行うReporting、データマイニングを行うData Mining、Reference Data、ETL(データの抽出・加工・書き出し)などの機能を持っている。つまり、Azureには、データベースだけでなく、ビジネスインテリジェント(BI)、データウェアハウスなど、最新のSQL Server 2008が有するさまざまな機能が提供される。
Data Syncの仕組みは、ADO.NET Data Services FrameworkやSync Frameworkが利用されている。これらのフレームワークは、サーバーだけでなく、クライアントPC、モバイル端末などもデータ同期の対象にしている。
CTPのAzureでは、SQL Data ServicesとData Syncが公開されている。そのほかのサービスに関しては、今後サービスが提供される。
■ SQL Data Services(SDS)
SQL Servicesでデータベースエンジン部分がSQL Data Servicesだ。データベースエンジンのベースには、SQL Serverが使われている(現状ではSQL Server 2008をベースとしている)。
昨年開催されたPDC 2008では、SQL Data Serviceは、クラウド上のデータベースとなるため、SQL Serverなどのリレーショナルデータベースがそのまま利用できるわけではなかった。Authority(オーソリティ)、Container(コンテナ)、Entity(エンティティ)というACEモデルが採用されていた。
しかし、さまざまなフィードバックにより、ACEモデルが非常に使いづらく、Azure上でのアプリケーション開発を難しくしているという問題点が明確になった。そこで、2009年3月に入り、Microsoftでは、SQL Data Servicesの仕様を根本的に変更して、ACEモデルから、リレーショナルデータベースモデルに変更した(SQL Serverとまったく同じ)。
SQL Data Servicesでは、SQL Serverが持っているTabular Data Stream(TDS)プロトコルがサポートされることになった。TDSは、SQL Serverにアクセスするためのプロトコルだ。TDSがサポートされることで、SQLクエリ、リレーショナル・スキーマ、ストアド・プロシジャといったリレーショナルデータベースが持つ機能がそのまま利用できるようになった(TDSはTransact SQL言語互換)。TDSのサポートにより、SQL Data Servicesへのアクセスは、SOAPやRESTプロトコルではなく、ADO.NETやODBC、OLEDBなど、現状でSQL Serverにアクセスするためのインターフェイスがそのまま利用できる。
また、ADO.NET Data Services(開発コード名:Astoria)を利用すれば、クライアントから簡単にAzure上のSDSにアクセスできるだけでなく、オンプレミスのリレーショナルデータベースと連携して動作することができる。
リレーショナルモデルになったことで、データベースへのアクセスは、ADO.NETや
OLEDB、ODBCなどを利用することになる。オンプレミスのデータベースとSQL Data
Servicesが連携して動作するには、ADO.NET Data Servicesが必要になる
新しいSQL Data Servicesのアーキテクチャ図
Microsoftでは、リレーショナルモデルのSQL Data Servicesを6月頃までにテスト公開する予定だ。また、現在のAzureのCTPで利用されているACEモデルのSQL Data Servicesは、リレーショナモデルのSQL Data Servicesのテストが開始された時点で、機能の提供は中止される。
このため、SOAPやRESTを使ってSQL Data Servicesにアクセスしている場合は、新しいSQL Data Servicesが提供された後は、そのままでは利用できなくなる。この場合、ADO.NET Data Servicesを使ってSOAPやRESTでアクセスするように変更する必要がある。
今回の変更は、Azure上でのサービス開発においては、根幹部分の大きな変更といえる。しかし、多くの開発者に話を聞くと、ACEモデルでは既存のデータベースをAzure上に移植することができない。できたとしても、非常に工数がかかるため、開発コストが増すといわれていた。また、開発者にとっても既存のSQL ServerとSQL Data Servicesではまったく異なるため、技術の習得に時間もかかるし、ACEモデルでは制限も多かった。
今回、リレーショナルモデルへとSQL Data Servicesの仕様を変更したことで、多くの開発者にとっては、既存のSQL ServerベースのアプリケーションをAzure上に展開することが容易に行えるようになる。これにより、Azure上にサービスを展開していこうという企業の数は、大幅に増えるだろう。また、短期間でオンプレミスのサービスをAzure上に展開することもできる。
Microsoftでは、オンプレミスのSQL ServerとAzureのSQL Data Services間でデータを同期させるためにADO.NET Data Services(開発コード名:Astoria)を開発している。
SQL Data Services上にあるデータをオンプレミスのSQL Serverで利用するには、スキーマが必要になる。また、SQL Server上のデータをSQL Data Servicesで利用するには、データのフレックスエンティティをサポートする必要がある。これらの橋渡しをするのが、ADO.NET Data Servicesだ。
オンプレミスとクラウド間でデータベースを連携させるのがADO.NET Data Services(開発コード名:Astoria)だ
ADO.NET Data Servicesは、オンプレミスのデータベースとクラウドのSQL Data Servicesの違いを吸収するブリッジだ
現在のCTPでは、データベースエンジンのSQL Data Servicesだけが公開されており、BI機能などの詳細に関しては、まだ未定だ。機能としては、SQL Server 2008で提供されているものとほぼ同じモノが提供されると予測されるが、クラウド上に展開されているので、どのようなAPIやインターフェイスを持つのか、詳細に関して未定といった状況だ。このあたりは、2009年秋に行われるPDC(Professional Developers Conference)で明らかにされるだろう。
SQL Data Servicesとは直接関連はしないが、簡単に説明しておきたいのが、Velocity(ベロシティ:開発コード名)だ。Velocityは、アプリケーションサーバーとデータベースサーバーの間に入って、データベースのキャッシュを行う分散型メモリ・キャッシュ技術だ。