SharePoint Online のデータセンターの場所と速度

2015年1月14日に、アップロード速度が十分に出る時間帯で再計測した結果を追加しました。

Office 365 の日本データセンターが稼働していますね。以下に、現在利用しているテナントが何処のリージョンにあるかを調べる方法が記載されていますので、これまで取得していた東アジアリージョンと新しく検証用に取得した日本リージョンの速度の違いを比べてみます。

Office 365 のデータセンターの場所を調べる方法
http://community.office365.com/ja-jp/b/office_365_community_blog/archive/2014/12/17/how-to-figure-out-the-location-of-datacenter.aspx

速度に一番顕著な差が出るのは SharePoint Online (OneDrive for Business) だと思われますので、1 GB のファイルをダウンロード・アップロードする速度で比較してみましょう。
なお、検証環境および検証結果は、全て 2015年1月12日現在のもので、簡易な検証結果でもあり、結果が保障されるものではありません。

検証環境

今回利用した検証環境は以下の通りです。

  • OS : Windows 8.1 64bit版
  • ハードウェア : Intel Core i7-3635QM @ 2.4GHz、メモリ 16 GB、LAN Intel 82579LM Gigabit Ethernet (オンボード)
  • ブラウザ : Internet Explorer 11 (32bit)
  • ルーター : NEC Aterm WR9500N
  • 回線 : フレッツ 光ネクスト ハイスピードタイプ (ダウンロード 最大 200 Mbps、アップロード 最大 100 Mbps)
  • 価格.com のスピードテスト・回線速度診断価格.com のスピードテスト・回線速度診断によると、以下の計測結果
    アップロード : 21.7 Mbps (2.71 MB/s、1 GB アップロードを 6 分 17 秒相当)
    ダウンロード : 69.7 Mbps (8.71 MB/s、1 GB ダウンロードを 1 分 57 秒相当)
    2015年1月14日に再計測した結果です。
    アップロード : 94.8 Mbps (11.85 MB/s、1 GB アップロードを 1 分 26 秒相当)
    ダウンロード : 96.4 Mbps (12.05 MB/s、1 GB ダウンロードを 1 分 24 秒相当)
  • 検証方法 : Web UI 経由で 1 GB のファイルを 3 回ダウンロード・アップロードし、平均値を算出
  • 計測方法 : ストップウォッチの Windows アプリケーションを手動で利用

検証結果と推察

検証結果は以下の表の通りです。

リージョン アップロード速度 (時間) ダウンロード速度 (時間)
東アジア 1.34 MB/s (12分44秒)

2.46 MB/s (6分57秒)

日本 2.60 MB/s (6分33秒) 3.54 MB/s (4分49秒)
速度向上 (%) 94% 43%

日本リージョンを利用することで、ダウンロード速度は 40~50% 程度向上し、アップロード速度は 100% 程度向上していますが、日本リージョン利用時のアップロード時間は、3 回の計測時それぞれ「6分35秒」「6分32秒」「6分32秒」と回線速度診断のほぼ上限のため、この検証環境よりも高速な回線を利用している場合には更なる向上が望めるかもしれません (早くフレッツをギガに変更しなくては…)。

2015年1月14日に再計測した結果は以下の通りです。日本リージョンを利用することで、ダウンロード速度は 400~500% と大幅に程度向上し、アップロード速度も 120% 程度向上しています

リージョン アップロード速度 (時間) ダウンロード速度 (時間)
東アジア 1.87 MB/s (9分9秒)

3.72 MB/s (4分35秒)

日本 4.12 MB/s (4分8秒) 21.33 MB/s (48秒)
速度向上 (%) 120% 473%

いずれにせよ、少なくとも日本リージョンを利用することで、日本から SharePoint Online / OneDrive for Business を利用するユーザーにとっては、これまでよりもネットワーク速度が高速に感じられるのは間違いないでしょうね。

Office Graph からドキュメントの取得

少し前ですが、ブログに「SharePoint の「最近使ったドキュメント」の取得」という内容を投稿しました。これと、その前に投稿した「Office Graph とグラフ クエリ言語と REST API と」を組み合わせて、Office Delve で表示する内容と同様のものをスクリプト エディター Web パーツを利用して SharePoint サイト上に表示します。
ハッキリ言って、検索で投げるクエリーさえわかれば余裕です。

スクリプト エディター Web パーツを利用して SharePoint サイト上に JSON 形式で取得して表示しましょう。

  1. (必要に応じて) SharePoint サイトを作成
  2. ページの編集画面から、[挿入] – [メディアおよびコンテンツ] – [スクリプト エディター] でスクリプト エディター Web パーツを挿入
    image_thumb1
  3. Web パーツの編集から、[タイトル] に「最近使ったドキュメント」、[枠の種類] に「タイトルのみ」 を選択後に Web パーツが表示された箇所に表示された [スニペットを編集] をクリックし、下記に示すコードを入力して、SharePoint ページを保存したら完了です
    image_thumb3
    delve_parts_thumb[2]

今回のコードのポイントは以下の通りです。

  • テナント名は、各自のテナント名に変更してください。
  • 検索条件は、SharePoint 用アプリの「Mavention Office Graph Query Tester」をインストールして利用すれば、すぐに判明します
  • 検索パラメータ RowLimit で、取得する件数を制限しています
  • JSON 形式で取得すると、各プロパティは検索結果の PrimaryQueryResult.RelevantResults.Table.Rows に各ドキュメントが、PrimaryQueryResult.RelevantResults.Table.Rows[n].Cells に各ドキュメントの管理プロパティが管理プロパティごとに入っているので、管理プロパティ名に応じて利用しています
  • JavaScript ライブラリはパフォーマンス向上を目的に CDN から取得しています

実際のコードを以下で紹介します。

<script type=”text/javascript” src=”//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js”>
</script>
<script type=”text/javascript” src=”//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js”>
</script>
<script type=”text/javascript”>
function addFigure(str) {
    var num = new String(str).replace(/,/g, “”);
    while(num != (num = num.replace(/^(-?\d+)(\d{3})/, “$1,$2”)));
    return num;
}

jQuery.ajax({
  url: “https://テナント名.sharepoint.com/_api/search/query?Querytext='(*) AND (FileExtension:doc OR FileExtension:docx OR FileExtension:ppt OR FileExtension:pptx OR FileExtension:xls OR FileExtension:xlsx OR FileExtension:pdf)’&Properties=’TitleBasedSummaries:true,GraphQuery:AND(ACTOR(ME\\,action\\:1021)\\,ACTOR(ME\\,OR(action\\:1021\\,action\\:1036\\,action\\:1037\\,action\\:1039))),GraphRankingModel:action\\:1021\\,weight\\:1\\,edgeFunc\\:weight\\,mergeFunc\\:max’&SelectProperties=’Author,AuthorOwsUser,DocId,DocumentPreviewMetadata,Edges,EditorOwsUser,FileExtension,FileType,HitHighlightedProperties,HitHighlightedSummary,LastModifiedTime,LikeCountLifetime,ListID,ListItemID,OriginalPath,Path,Rank,SPWebUrl,SecondaryFileExtension,ServerRedirectedURL,SiteTitle,Title,ViewCountLifetime,ViewsRecent,siteID,uniqueID,webID’&RankingModelId=’0c77ded8-c3ef-466d-929d-905670ea1d72’&RowLimit=10&StartRow=0&ClientType=’PulseWeb’&BypassResultTypes=true”,
  type: “GET”,
  headers: {“Accept”: “application/json; odata=nometadata”},
  cache:false,               
  success: function(data){
    var items = [];

    $(data.PrimaryQueryResult.RelevantResults.Table.Rows).each(function (i, e) {
      var o = {};
     
      $(e.Cells).each(function (ii, ee) {
        if (ee.Key == ‘Title’)
          o.title = ee.Value;
        else if (ee.Key == ‘Author’)
          o.author = ee.Value;
        else if (ee.Key == ‘Path’)
          o.path = ee.Value;
        else if (ee.Key == ‘FileExtension’)
          o.fileextension = ee.Value;
        else if (ee.Key == ‘FileType’)
          o.filetype = ee.Value;
        else if (ee.Key == ‘HitHighlightedSummary’)
          o.hithighlightedsummary = ee.Value;
        else if (ee.Key == ‘LastModifiedTime’)
          o.lastmodifiedtime = ee.Value;
        else if (ee.Key == ‘ServerRedirectedURL’)
          o.serverredirectedurl = ee.Value;
        else if (ee.Key == ‘SiteTitle’)
          o.sitetitle = ee.Value;
        else if (ee.Key == ‘Size’)
          o.size = ee.Value;
        else if (ee.Key == ‘ViewCountLifetime’) {
          if (ee.Value == null)
            o.viewcountlifetime = “0”;
          else
            o.viewcountlifetime = ee.Value;
          o.viewcountlifetime = addFigure(o.viewcountlifetime);
        }
        else if (ee.Key == ‘ViewsRecent’) {
          if (ee.Value == null)
            o.viewsrecent = “0”;
          else
            o.viewsrecent = ee.Value;
          o.viewsrecent = addFigure(o.viewsrecent);
        }
      });

      if (o.filetype != null)
        o.iconurl = ‘https://テナント名.sharepoint.com/_layouts/images/ic’ + o.filetype + ‘.gif’;
      else
        o.iconurl = ‘https://テナント名.sharepoint.com/_layouts/images/ic’ + o.fileextension + ‘.gif’;

      items.push(‘<img src=”‘ + o.iconurl + ‘”> ‘ +
      ‘<a href=”‘ + o.path + ‘”>’ + o.title + ‘</a> (直近 ‘ + o.viewsrecent + ‘ | 合計 ‘ + o.viewcountlifetime + ‘)</p>’);
    })
   
    $(“.delveDocsInfo”).html(items.join(”))
  }
});
</script>
<div class=”delveDocsInfo”></div>

前回の投稿「SharePoint の「最近使ったドキュメント」の取得」と同様に、戻ってくる情報さえわかれば console.log(data); で出力して、Internet Explorer の開発者モードで確認すれば OK です。
image_thumb[3]

この方法さえわかってしまえば、検索条件で絞りこんで、PowerPoint ドキュメントだけを表示したり、特定の SharePoint サイトのドキュメントだけを表示することが可能であるなど、利用用途はかなり広がります。
ドキュメントをどんどん Office 365 (SharePoint Online、Exchange Online、Yammer、OneDrive for Business など) に置きましょう。そうするだけで、機械学習によって、今、あなたが見るべきドキュメントが、あなたの元に届きます!

Office 365 ProPlus と QoS

興味深いブログ記事を見つけましたので、今回は Office 365 に含まれる Office である Office 365 ProPlus とネットワーク帯域に関して考えてみます。

MukkuMuku備忘: Office 2013 クイック実行 Office 展開 – 8
http://mukkumuku.blogspot.jp/2014/12/Office-2013-Click-to-Run-Office-Deployment-8.html

相応の流量を見積もっておく必要があるという傾向みたいなものです。この程度まったく平気だという環境ならばよいのですが。。。

はい。ダウンロードのサイズ、意外と多いですよね。毎月リリースされますね。ですので、ネットワークが気になりますよね。。。はい、そこで、気になっているのはネットワークの何でしょうか?

きっと、「ネットワークの圧迫」や「ネットワークの輻輳」ということですかね。
そうだとすると、特に Office 365 ProPlus だから、、、ではなく、(更新された差分を取得するための) ファイル サーバーとして利用する Windows Server 全般のお話です。
ファイル サーバーとして利用する Windows Server には、ネットワーク QoS 機能が備わっていますので、こを利用して Windows Server からネットワークに出ていくパケットの最大帯域幅を (許容範囲内に) 設定すればいいでしょう。

Windows Server 2012 以降で SMB プロトコル (Office 365 ProPlus のファイル サーバーからのインストールや自動更新で利用します) の最大帯域幅を 200Mbps (= 25MB/秒) に制限する場合のコマンドレットは以下の通りです。

New-NetQosPolicy -Name “ProPlus” -SMB -ThrottleRateActionBitsPerSecond 200000000

New-NetQosPolicy
http://technet.microsoft.com/en-us/library/hh967468(v=wps.630).aspx

Windows Server 2008 R2 以前の場合には、グループ ポリシーの [コンピュータの構成] – [Windowsの設定] – [ポリシーベースのQoS] で設定します。ポート番号を指定すれば、他への影響が少なくなります。

ポリシー ベースの QoS の概要
http://technet.microsoft.com/ja-jp/library/dd759093.aspx

はい、完了!
会社のネットワークでどの程度の帯域を Office 365 ProPlus 用に利用できるかはおおよそわかると思いますが、上記の設定は適用後にすぐ反映されるので、展開を開始して何かあればすぐに変更可能です。

最大帯域幅を小さくすると、ダウンロード、つまり、Office 365 ProPlus の更新までに時間が掛かるだけ、です。ダウンロード処理の途中で PC を閉じても、再度処理してくれますよ。

SharePoint の「最近使ったドキュメント」の取得

ノルウェーの Mikael Svenson さんが、ブログで面白い投稿を行っているので、少し深堀りしてみました。簡単に書くと、SharePoint Online 上の OneDrive for Business ライブラリ上に表示される「最近使ったドキュメント」 (自分自身が最近参照した Office ドキュメント) をどうやって API で取得するか、というものです。ここには、以下の URL で取得できる、と記載があり、実際に試したところ、確かにデータが取得できました。

https://<テナント名&gt;.sharepoint.com/_api/me/getrecentdocs

注意 : 私自身が探した限りでは、TechNet ライブラリや MSDN ライブラリには記載が見られなかったので、いつでも利用できるとは思わない方がいいです。サポートへ問い合わせるも難しいので、自己責任の範囲で、ちょっとした確認に留めた方がいいかもしれません。

JSON 形式か XML 形式で取得できるということなので、スクリプト エディター Web パーツを利用して SharePoint サイト上に JSON 形式で取得して表示しましょう。

  1. (必要に応じて) SharePoint サイトを作成
  2. ページの編集画面から、[挿入] – [メディアおよびコンテンツ] – [スクリプト エディター] でスクリプト エディター Web パーツを挿入
    image
  3. Web パーツの編集から、[タイトル] に「最近使ったドキュメント」、[枠の種類] に「タイトルのみ」 を選択後に Web パーツが表示された箇所に表示された [スニペットを編集] をクリックし、下記に示すコードを入力して、SharePoint ページを保存したら完了です
    image
    image

実際のコードは以下の通りです。<テナント名> は、各自のテナント名に変更してください。
JSON 形式で取得すると、IconUrl にアイコンの URL、FileName にファイル名、LinkLocation にドキュメントの URL が入っているので、そのまま利用しているだけです。JavaScript ライブラリは CDN から取得していますが、SharePoint サイト コレクション内などにアップロードして参照しても問題ないです。

<script type=”text/javascript” src=”//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js”>
</script>
<script type=”text/javascript” src=”//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js”>
</script>
<script type=”text/javascript”>
jQuery.ajax({
url: “https://<テナント名&gt;.sharepoint.com/_api/me/getrecentdocs”,
type: “GET”,
headers: {“Accept”: “application/json;odata=verbose”},
cache:false,
success: function(data){
var items = [];
var loopcount = 10;
var num = 1;
$(data.d.results).each(function(){
items.push(‘<img src=”‘ + this.IconUrl + ‘”> ‘ +
‘<a href=”‘ + this.LinkLocation + ‘”>’ + this.FileName + ‘</a></p>’);
num++;
if (num > loopcount) {return false;}
});
$(“.recentDocsInfo”).html(items.join(”))
}
});
</script>
<div class=”recentDocsInfo”></div>

戻ってくる情報さえわかれば、簡単コーディングです。戻ってくる情報は、開発ツールを利用してもいいですが、この程度なら console.log(data); で出力して、Internet Explorer の開発者モードで確認すれば OK です。楽々 LaTeX…もとい楽々 SharePoint!!

image

Office Graph とグラフ クエリ言語と REST API と

Office Delve とは

先日より、Office 365 ユーザーに「Office Delve」と呼ばれる、会社の上司や同僚の仕事ぶりから、ユーザー自身が、今、最も関心があると思われる情報を見つけるためのツールが提供されています。

Office Delve とは
https://support.office.com/ja-JP/Article/Office-Delve-%e3%81%a8%e3%81%af-1315665a-c6af-4409-a28d-49f8916878ca?ui=ja-JP&rs=ja-JP&ad=JP

Office Delve と Office Graph

Office Delve は、「Office Graph」と呼ばれるユーザーやドキュメントなどのエンタープライズ オブジェクトに関する関係性や相互作用を含めた情報を蓄積し、提供する仕組みを利用しています。

Office Graph と GQL と REST API

Office Delve を利用せずに Office Graph を利用する方法の一つとして、Office Graph に対して「グラフ クエリ言語 (Graph Query Language; GPL)」を利用して、「SharePoint 検索 REST API」で情報を取得する、という方法があります。

詳細な利用方法は MSDN を参照してもらいたいですが、Office 365 のテナントが利用可能な状態で、以下の URL を Web ブラウザに入力して実行すると、Office Delve にアクセスした際に表示される情報と同じものが XML 形式で表示されます!

http://<テナント名&gt;.sharepoint.com/_api/search/query?querytext=’*’&properties=’GraphQuery:ACTOR(ME\, action\:1020),GraphRankingModel:{“features”\:[{“function”\:”EdgeWeight”}]}’&rankingmodelid=’0c77ded8-c3ef-466d-929d-905670ea1d72′

グラフ クエリ言語 (GQL) を SharePoint Online 検索 REST API で使用して Office Graph にクエリを実行する
http://msdn.microsoft.com/ja-jp/library/office/dn783218(v=office.15).aspx

簡単に GQL を試すには

SharePoint 2013 の検索機能の確認にはお世話になっている人も多い「SharePoint 2013 Search Query Tool」の最新版 (v2.2) で、この GQL の実行に対応していますので、是非、最新版を利用してみてください。

SharePoint 2013 Search Query Tool
https://sp2013searchtool.codeplex.com/

image

最後に

Office Graph を利用したアプリケーションとしては、GitHub にサンプル コードもあるので、参考にするといいでしょうね。

Developing Apps against the Office Graph – Part 2
http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2014/09/17/developing-apps-against-the-office-graph-part-2.aspx

Office 365 ProPlus の共有コンピュータ認証への対応

クラウドを活用したビジネス用の最新の Office である Office 365 ProPlus において、以下に記載されている通り、今月 (2014 年 9 月) から共有コンピュータやリモート デスクトップ サービス (RDS) などのデスクトップ仮想化環境に対応しています。

Office 365 shared computer activation
http://blogs.technet.com/b/uspartner_ts2team/archive/2014/09/03/office-365-shared-computer-activation.aspx

Office 展開ツール (ODT) を利用し、設定ファイルに次のように記述して、これらの環境に展開を行うことで利用可能です。

<Display Level=”None” AcceptEULA=”True” />
<Property Name=”SharedComputerLicensing” Value=”1″ />

詳細は以下を参照してください。

Overview of shared computer activation for Office 365 ProPlus
http://technet.microsoft.com/en-us/library/dn782860(v=office.15).aspx

Deploy Office 365 ProPlus by using Remote Desktop Services
http://technet.microsoft.com/en-us/library/dn782858(v=office.15).aspx

利用可能な場面が、更に広がることになりますね。

クイック実行形式 Office の 2014 年 7 月更新での新機能

以下に記載されている通り、2014 年 7 月更新 (先日リリースされました) における Office 365 ProPlus などクイック実行形式の Office における新機能が提供されています。

Improvements included in the July 2014 update of Office 2013 for Office 365
http://blogs.technet.com/b/odsupport/archive/2014/07/11/improvements-included-in-the-july-2014-update-of-office-2013-for-office-365.aspx

簡単に記載すると、以下の 2 つの機能が提供されるとのことです。

  • 毎月、自動更新を行っている場合に、「バイナリ差分圧縮」の仕組みでダウンロード サイズを「~70% 削減」しています
  • ユーザー モード ストリーミング機能で、ファイル サーバーからインストールや更新を行う際に必要だったコンピュータ アカウントの読み取り権限が不要になっています

セキュリティの観点からも最新版に更新することがお薦めですが、ネットワーク消費量の面からもお勧めになりますね。