Windows365時代のシステム構成について考察

2021年8月7日土曜日

システム開発 技術的備忘録

t f B! P L
先日、Windows365がリリースされて私もいくつか記事を書いた。
 
 
 
 
また、IT系ではない一般ユーザー向けにクライアント・サーバーの解説記事を書いた。
 
 
 
これらの記事の内容を踏まえて、クラウドPC時代の社内業務システムのあり方について、個人的な意見を述べたいと思う。
個人的意見なので、特にこの記事で新しい情報は得られない。
 
興味の無い方はスルーしていただいて結構です。
 
また、これから話すシステムの話は「社内業務システム」の話であり、社外に向けてITサービスを提供するオンラインショップなど、顧客が直接扱うITシステムは含まない。
「社内業務システム」は従業員が業務を遂行する為に使用しているシステムの事で、顧客が扱うシステムではない。
この点を間違えないようにご注意ください。
 
 

2階層と3階層クライアント・サーバー

 
以前も解説したが、クライアント・サーバー型のシステムは2階層型と3階層型に分かれる。
 
2階層クライアント・サーバー図


 
3階層クライアント・サーバー図


 
元々、クライアント・サーバー型のシステムは2階層型ばかりだったのだが、パソコンやサーバー機などのオープン系技術の進歩と共に、「ビジネスロジックの分離」と「APサーバーの負荷分散」を理由にサーバー機を「APサーバー」と「DBサーバー」に分離した「3階層クライアント・サーバー」が主なクライアント・サーバーのシステム構成になった。
通常はビジネスロジックをAPサーバーに実装し、データはDBサーバーに配置する。
ストアドプロシージャなどビジネスロジックの一部をDBサーバーに配置する変則的なシステムの作り方もあるが、基本的設計のあり方は両者を分離するものになる。
 
しかし、社内業務システムの場合、扱うのは社内の従業員だけでその人数は大企業でない限りは多くない。
大企業のでも特定業務専用のシステムなら、ユーザー数は少人数になる。
 
ユーザー数が少ないシステムの構成に、複雑な3階層型クライアント・サーバー構成でシステムを開発するのは、工数を無駄に増大させるだけだと考える人も多い。
そのため、今でも意図的に単純な2階層型クライアント・サーバー構成でシステムを開発する事は多い。
 

オンプレミスだけの時代の社内システム

 
クラウドが登場する以前は、企業の情報システムは社内のデータセンターか、レンタルサーバーを借り受けて、運用していた。
今でもクラウドを使用しない会社は、そのようにしている。
社内のデータセンターと言ってもピンからキリまであり、小さい会社では社内の一角にデータルームを作って、そこにパソコンのサーバー機を並べて、社内サーバーとして運用する事も珍しくない。
この場合、ネットワークは社内LANであり、外部から閉鎖されているので、セキュリティ的にはそれほど悪くない。
 
こういう社内の閉じた仕組みをオンプレミスと言う。
 
オンプレミスで構成された社内業務システムでは、単純な2階層型クライアント・サーバー構成のシステムを開発したり、初めから2階層型で開発されているパッケージソフトを導入していたりする。
パッケージソフトは全て3階層型クライアント・サーバーで開発されていそうなイメージがあるが、2階層型で開発されているパッケージも意外に多い。
 
オンプレミスなら外部から社内ネットワークが隔離されているので、ユーザーがDBサーバーにアクセスしても、簡単なパスワード認証などでアクセス制御できる。
そもそも悪意のあるユーザーはアクセスして来ない。
 
ユーザー数も従業員だけなので、少ない。
 
だから2階層型クライアント・サーバーで低コスト開発した方が良い事が多い。
 
 

クラウド登場後の社内システム

 
クラウドが登場してからは、サーバー側が社外に設置される事になる。
 
社内のデスクトップPCから、社外のクラウドにアクセスするので、クラウド側のサーバー機をセキュリティ的に隔離し守る必要がある。
 
デスクトップPCとクラウドの間のネットワークはVPNで保護する必要がある。
 
クラウドになった事で、社外との連携もやりやすくなった面もあり、クラウドの内と外のセキュリティ管理は必然的に厳しくなる。
 
クライアント・サーバーの場合、システム構成は安全性の高い「3階層クライアント・サーバー」になる。
必ずしも3階層で無ければならないわけではないが、3階層構成でDBサーバーを隠蔽した方が、クライアントは自由にAPサーバーにアクセス出来る側面もある。
仮に悪意のあるユーザーがAPサーバーにアクセスしても、クライアント・ソフトウェア無しにAPサーバーのソフトウェアを不正操作するのは難しいからだ。
APサーバーは安全性を保証する「外界への窓口」の役割を果たす。
 
重要な情報はDBサーバー内に存在し、これさえ隠しておけば安心できるという言い方もできる。
 
物によるがタブレット端末のアプリなどは、3階層構成でなければシステムを構築できないものもある。
 
パソコン以外のデバイスが使用されるようになったことも、3階層構成中心にならざる得ない状況を作ったとも言える。
 
 

クラウドPC時代の社内システムはどうなるか

 
クラウドPCは、クライアント端末がクラウドの中に存在する。
 
クラウドPC図


 
図の「クラウド・サーバーOS」は「APサーバー」を示す。
この背後に「DBサーバー」が存在している。
 
3階層クライアント・サーバー構成図


 
クライアント端末がクラウドの中に存在するのなら、セキュリティ的には「APサーバー」を外部に露出する必要が無く、デスクトップPCからクラウドの中にアクセスする「窓口」になるのはクラウドPCのクライアント端末だけになる。
 
セキュリティ的意味合いだけなら、「APサーバー」は必要無い。
クラウドPCが「外界への窓口」なのだから、その役割の「APサーバー」はお役御免である。
 
「APサーバー」には他に「負荷分散」と「ビジネスロジックの分離」の役割がある。
 
「負荷分散」については、ユーザー数が少なければ問題にならない。
 
「ビジネスロジックの分離」は、システムのモジュール構成整理の手法なので、オブジェクト指向など他の手法で工夫すれば良いだけである。
 
つまり、クラウドPC導入により、社内の全てのシステムをクラウド内に配置するなら、社内業務システムは3階層クライアント・サーバーである必要はなく、2階層クライアント・サーバーだけで問題無い事になる。
例外としてユーザー数の多い大企業は別とする。
 
もし、全ての社内業務システムが、構成の単純な2階層クライアント・サーバーだけで開発されるようになると、システム開発コストはある程度縮小できる。
 
社内システム全体が、かなり単純な構成に変更できる可能性があると、私は思っている。
 
システム開発のとき、ネットワークや通信周りの仕組みを考える事がなくなるかも知れない。
 

ここから先はSFの話

 
将来の5Gフェーズ2のレイテンシ(通信遅延)は1ミリ秒以下だそうだ。
(現在の5Gはフェーズ1で、まだ5Gの本領発揮していない)
 
レイテンシが1ミリ秒ならクラウドPCの操作感は、デスクトップPCと区別が付かない。
全ての端末の情報処理をクラウド側に移動する事ができるようになる。
 
デスクトップPCやスマホやタブレット端末など、フロントエンドの役割は、入出力処理だけになる。
キーボードやマウスやタッチの情報をクラウドに送信して、クラウドからスクリーン画像を受信して表示するだけ。
デバイスは単純な機器で済むようになる。
 
この構成だとフロントエンド・デバイスは安価で軽量で小さな物で済む。
 
IT機器のデザインが根本的に変わってしまうかも知れない。
 
ARデバイスになって、眼鏡のように小さく軽量なデバイスになるかも知れない。
 
ペラペラの紙のようなタブレット端末になるかも知れない。
 
安価になって、オフィスのそこら中の壁に端末が貼り付けてあり、個人認証でどこに居てもクラウドPCを使用できるようになるかも知れない。
 
 
この変化は、クラウド側のOSの設計も変える可能性がある。
 
パソコン(サーバー機)筐体という概念が消滅するかも知れない。
 
クライアント端末・APサーバー機・DBサーバー機という概念が消滅して、無限に近い仮想メモリ空間と仮想ストレージ領域を自由に使用して、単純な構成でアプリを作れるようになるかも知れない。
 
 
元々、「端末」と「OS」はハードウェアの制約に合わせた物であり、クラウドによる仮想化はハードウェアの制約を外す可能性を秘めている。
既にクラウドでは分散ストレージ技術で、物理的ストレージでは存在しない巨大容量の仮想ストレージを実装している。
 
 
従来型の端末やOSやソフトウェアがなくなるとは思わない。
しかし、新たな製品が登場する可能性もあると思っている。
 
 
 
 
Windows365を見ていて思った雑感でした。
 
個人の妄想に最後までお付き合いしていただきありがとうございます。
 

このブログを検索

Translate

人気の投稿

自己紹介

自分の写真
オッサンです。実務経験は Windows環境にて C#,VB.NET ,SQL Server T-SQL,Oracle PL/SQL,PostgreSQL,MariaDB。昔はDelphi,C,C++ など。 趣味はUbuntu,PHP,PostgreSQL,MariaDBかな ?基本無料のやつ。

QooQ