_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

◇ 柿食えば鐘が鳴るなり法隆寺 ・・・・・・ 第731
☆モバイルオフィスの作り方 ★
Vol.0731

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

□ OneDriveに出来ること、出来ないこと
□ 楽しいサボのプログラミング講座ーその18

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ OneDriveに出来ること、出来ないこと
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
週の半場を大阪の堺で暮らしていますが、この家は4階にありしかもエレベータ
がない!家具などを運ぶときには膝は笑うし息は上がる・・・・
寄る年波には勝てませんね。


◇ 意外な OneDriveアプリの強み
元々複数のファイルをプログラムから操作することは出来ないと考えていまし
た。しかしこれは間違いで、プログラムが必要なデータは全て実体化して操作
が可能でした。

例えば納品伝票を起動すると・・・・

1. データ領域を参照                #Path.txtをオープン
2. ある伝票を検索
    ・ データ検索エンジンをオープン
    ・ データベーステーブルをオープン
    ・ 検索補助ファイルををオープン
    ・ インデックスファイルをオープン
    ・ 伝票Noの補助ファイルをオープン
これだけのことを伝票プログラム、とデータ検索エンジンが行います。
私はこれは無理だと思っていたのですが、必要なファイルを順次ダウンロー
ドして1個づつ実行しているようで、結果としてうまく稼働します。
 
ただし時間がかかりますからあらかじめ使用するプログラムのフォルダーや
データのフォルダーは一時的にせよ実体化しておきます。
 
該当のフォルダーを選択して右クリックし、”このデバイス上で保持する”
をクリックすると多少時間がかかりますが、単純に普通のファイルになりま
す。
 
これらの操作はVBやVBAで操作する昔ながらのデスクトッププログラムの場合
ですね。
 
◇ OneDriveアプリで出来ないこと
OneDriveフォルダーから直接ならよいのですが、OneDriveをドライブ割り
当てした場合に意外な問題が起こりました。

ドライブ割り当てをする理由は、一般的にデータ領域は”I:\Data”とか”H:\
Data”とかいったサーバー上にあり、お客様の環境になるだけ近い環境にした
いからです。

そこでOneDriveフォルダーを共有し、それをドライブ割り当てでH:とかI:にす
るのです。
これでデータベースの検索やVB、VBAで作ったプログラムは問題なく稼働する
のですがびっくりするような別の問題が起こりました。

デスクトップアプリではなくHTML5で稼働する今どきのプログラムは自身の環
境にはそれほど影響されず、HTMLもJSも単なるテキストファイルであり、秀丸
で編集するので何の問題も無いと思っていました。

ところで私は秀丸で書いたプログラムを”WinSCP”というソフトを使ってサク
ラサーバーのプログラム領域やデータ領域にアップロードするのですが、信じ
がたいことにこの仮想的なドライブ領域からではアップできませんでした。

本当のOneDriveフォルダー(CドライブやDドライブにある)からは問題なくアッ
プできるのでよいのですが、ドライブ割り当てしたIドライブなどからはアッ
プできませんでした。

次いでOneDrive領域のファイルの圧縮や解凍ですがこれは基本的にそのままで
は出来ません。
当たり前の話で、ファイルが存在するように見せているだけで実際にはないの
ですからうまくはいきません。

単純な圧縮でよければエクスプローラ→右クリック→送る→圧縮(Zip)フォル
ダーで出来ます。
これはマイクロソフトの標準圧縮機能を利用しますから、もし実態がない場合
には”ダウンロードしてから圧縮するか?”と尋ねてきます。

例えば7Zipのような他の機能を使いたい場合にはメニューさえ出てきません。
やはりこのフォルダーは特殊なようで、最初から出来ることや出来ないことが
コントロールされています。

他のフォルダーにコピーか移動して圧縮します。

◇ 使い分けですね・・・
今までそれなりに快適に過ごしてきたのは会社はもちろん、サテライトオフィ
スでも何らかの同期を取ったファイルサーバーが存在したからでした。
ところが前進基地の大阪の堺にあるサテライトオフィスではPC1大しか持ち込
めませんでした。

ファイルサーバーはないのです。そこでOneDriveアプリを使って仮想的なサー
バーを使っています。
もちろんたった1台のPCは単にクライアントですから容量はさほどはありませ
ん。

そこで前回までにご紹介した実際にはディスク容量を消費しないがサーバーの
ファイルは見えているという仮想の同期を行い、非力なクライアントPCでも
サーバーが存在するように見せているのです。

この状態ですでに一ヶ月近く仕事をしていますが、出来ないこともあるのです
がそこは工夫と使い分けで今まで致命的に困ったことはありません。

しかもOneDriveアプリはかなり高速で、今までサテライトオフィスでサーバー
にフォルダー1個作るのに数秒から数十秒かかっていたといったことはありま
せん。

もちろん、仮想的なファイルにアクセスするのは最初の1回はダウンロードが
発生するのでそれなりに時間はかかるのですが、仕事を始める前に使いそうな
ファイルたちは”このデバイス上で常に保持する”をクリックしておけば優先
的にダウンロードしておいてくれます。

いったんダウンロードしてしまうと普通のファイルですから作業の間はごく普
通に使えます。
そしてもう当分使わないと分かった時点で”空き容量を増やす”をクリックし
てやれば元の仮想的なファイルに戻ります。

これを複数のファイルやフォルダーに対して行えますから単なるPCでもサー
バーがいるのと同じように仕事が出来ます。

全般的にはDropBoxで同期しているサテライトオフィスのサーバーより高速で
あるような気がします。

◇ PCの環境
さて、これはOneDriveアプリにもDropBoxにも言えることですが、アプリを常
駐させるだけでかなりのメモリを消費します。

・ DropBox                    2G〜3G
・ OneDriveアプリ          2G〜5G

メモリの消費量だけ見るとOneDriveの方が激しく消費します。
私のダイナブックはつい先頃までは6Gしか搭載していなくて、ちょっとファイ
ルの追加などするとメモリ不足でかなり遅くなっていましたが、8Gに増設(こ
のダイナブックの限界)して少しマシになりました。

でもやはりこの手のファイル同期をしたいなら16Gは必要な気がします。
前進基地に持ち込んだPCは16Gを搭載したWin10のPCですが、かなり大きなファ
イル同期があっても速度が低下する気がしません。

でも8Gのダイナブックは以前よりマシですが、やはり重くなります。

ディスク容量を気にせずクライアントPCで快適に稼働するファイル同期アプリ
ですが、くれぐれも小さなメモリでは実用性がないことに留意してください。

注)
ただしここでメモリを消費するというのはとんでもなく大容量の(大きさより
数が多い)私どものサーバーをまるごと同期しているせいで、一般の企業の
サーバーには当てはまらないかも知れません。

これはOneDriveやDropBoxの名誉のために申し上げます。
ここまで小さくて大量のファイルを保持するサーバーはまず無いだろうと思い
ます。
私どもは仕事柄、数十社のサーバーの基幹システムの内容を保持しており、な
おかつ開発のために世代ごとのバックアップも持っていて、しかも不精者揃い
の私どものプログラマが事故や何らかの調査で取ってきた小さな、しかし数の
多いLogファイルなどを削除もせずにそのままにしているというカオスな状態
が長いこと続いている最悪の状況です。

これほどの悪条件にもめげずに仮想サーバーを実現するこれらのアプリは超優
秀だと思っています。
だからメモリはあるに越したことはありませんが、一般的にはここまで必要で
はないように思います。


私はいつもながらカタログスペックなど信用しません。自身で経験したことだけ
を信じます。今回のシリーズでOneDriveアプリはこのひどい状況でもちゃんと役
に立つことが分かりました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその18
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
データをどう保管するのか?というのはどんな環境であってもいつも最大のテー
マです。今回は本のさわりですが本当にデータを保管する方法をお話しします。


◇ HTMLでデータはどこに保管するのか?
前回までは説明を自身のPCの中で完結するためにわずか5MしかないLocalStora
geに保管することで簡単にご説明しました。

しかし実際の業務システムで5Mの容量で足りることはまずありません。
そうしたらどこにどのように保管するのか??と言うことを考えないといけま
せん。

結論から言うと、何らかの外部のサーバーに保管します。
私の場合だと借りているサクラサーバーのデータ領域に保管しています。
一般にプログラムが保管されている場所は借りているサーバーの”www”とい
う領域以下です。
httpというブラウザがアクセスできる領域はここだけなのです。

それでちょっとだけ安全な"www"の上にデータ領域(フォルダー)を作ってそこ
にデータは保管します。

◇ ちょっとだけ安全な領域
"www"より上はちょっとだけ安全とはいっても、それはブラウザでは決して見
えないという程度で攻撃されたら全然安全ではありません。

そこで一般的にはデータは暗号化して保管し、たぶん何らかのデータベースに
格納します。
とはいえ、仮に"www"の傘下であってもJavaScriptはデータを書き込むことは
出来ません。

出来ることはメモリ的に(通信的に)データを送信するだけであって、サーバー
が受けとってくれる仕組みがないとそれで終わりです。

今回の説明は何らかのサーバー側の仕組みが必要というお話しなのです。
ただし、今までと性質も違いますしそれなりに難しいのであくまでも概要をご
説明するにとどめます。


今まで説明しているのはクライアントサイドのプログラミングであって、今回
説明するのはサーバーサイドのプログラミングです。
あくまでも概論だけ・・・・

◇ サーバーサイドのプログラミング
サーバーサイドのプログラミングは今まで説明してきたJavaScriptとは全く違
ってユーザーインターフェースはありません。
操作すべきフォームやボタンはないのです。

全く自動処理をするサーバーでのみ稼働するプログラムで、もっとも似ている
のはバッチファイルです。
例えばAutoExec.batとか言ったMS-DOSの時代にはPCが起動したら最初に稼働す
るバッチファイルというものを編集することは必須でした。

これは単にテキストファイルなのですが、コマンドを羅列して一連の処理をさ
せます。

同じようにサーバーサイドのプログラムもJavaScriptから呼び出すのですが、
その際にデータやその他のパラメータを引き渡します。

これらのサーバーサイドのプログラムは起動した際に指定されたデータなどを
受けとると、自動処理を行い、仕事が終わると終了します。


例えば簡単なテキストファイルを書き込むことでもこのサーバーサイドプログ
ラムがないと始まりません。

◇ サーバーサイドプログラムの種類
サーバーサイドのプログラムは有名どころが数点あり、ごく簡単に説明します。

・ perl
とてもシンプルでほぼ全てのサーバーで稼働するプログラミング言語です。
ただしかなり歴史がある言語で、説明が難しく、私は途中で断念しました。
https://ja.wikipedia.org/wiki/Perl
★サクラサーバー標準装備

・ PHP
これは私が現在主力で使っているサーバーサイドのプログラム言語です。
機能が豊富で何より説明書の良いものがあります。
https://www.php.net/manual/ja/index.php
★サクラサーバー標準装備

・ Ruby
使ったことはないのですがかなり人気の高いサーバーサイドのプログラミン
グ言語です。
https://www.ruby-lang.org/ja/
★サクラサーバー標準装備

・ Node.js
Googleさんが開発した今後人気が高くなると思われるサーバーサイドのプロ
グラミング言語です。
https://nodejs.org/ja/

・ python
パイソンはAIと親和性が高いそうで人気の高い言語です。
しかし私はその独特の記述方法が嫌いです。
https://www.python.jp/
★サクラサーバー標準装備

ここに紹介したのは有名どころのサーバーサイドプログラムであり、Node.js
を除いて全てサクラサーバーで標準装備されています。
私はサクラサーバーの環境設定をするつもりはないので、今のところNode.js
を使ったことがありません。

ほぼPHPでサーバーサイドのプログラミングは行っています。

◇ サーバーサイドプログラミングの実際
どのプログラミング言語も全てテキストファイルであり、スクリプト言語と呼
ばれる一定のルールに従って記述する言語で、記述が済んだらサーバーの一定
の場所("www"の傘下に例えばMyPHPとか言ったフォルダー)を作って送信する)
に置くことが多いです。

難易度はJavaScriptと同程度なのですが、サーバーサイドで一瞬で稼働し、Ja
vaScriptのようにブレークポイントを作って動作の確認などは出来ませんから
独特の難しさがあります。

一方で誰かが入力してボタンを押して・・・とか言った要素は全くないのでか
なり論理的なプログラミングが必要です。

ただし失敗してもたいていの場合はサーバーが30秒ほどで落としてくれるので
過度に恐れる必要はありません。
私は処理の経過を出力するLogを書かせながら何度もトライして制作します。

まだ皆さんがサーバーサイドプログラミングをするのはもう少し先になるかと思
いますが、サーバーサイドのプログラミングをするようになるとほぼこの講座は
終了ですね。
今回は具体的なサーバーサイドのプログラミングではなくて、JavaScriptで書い
たプログラムが生成したデータがどこにどのように格納されるかという原理的な
部部分の風景をご紹介しました。
次回はJavaScriptの外部ファイル(js)をご説明します。
━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
http://sabot.jp/MailMagazine/Merumaga.html
==========================================
★発行責任者:
 (有)ファクトリー・サボ
  真鍋隆彦
 兵庫県神戸市垂水区東舞子町9-9
           マリタイム舞子501号
 Tel:078-787-3602 Fax:078-787-3619
 Mail:manabe@sabot.co.jp
 http://www.sabot.co.jp/
 ☆ソフトウェアーギャラリーに遊びに来てください
  https://secure3552.sakura.ne.jp/sabot.jp/Mitumori/
==========================================
 
◎このメルマガに返信すると発行者さんにメッセージを届けられます
※発行者さんに届く内容は、メッセージ、メールアドレスです
 
◎モバイルオフィスの作り方
  の配信停止はこちら
⇒ https://www.mag2.com/m/0000109792.html?l=ywj17bb991