システムは何を選んだら良いのか

先日知り合いからこのような質問を受けたので、今回はこのテーマで書こうかと思います

結論から書きますとシステムを新たに導入されたいのであればまず「パッケージソフト」の検討をお勧め致します。既存のパッケージソフトに業務を合わせる事ができるならばそれが一番良い選択です。

それが難しい場合やパッケージソフト同士をデータリンクさせたりする場合「スクラッチ」と呼ばれるシステム開発を行う必要性が出てきます。今回はそのお話です。

まずシステムは1.どこで動作させるのか、2.データはどこにあるのかによって大まかに分類されます

1点目の「どこで動作するのか」ですが、専門用語でターゲットマシンとも言います、1つはクラサバ(*1)と呼ばれるPCにインストールしPCでプログラムが動作する形、次にwebアプリと呼ばれるweb(AP)サーバー(*2)でプログラムが動作し端末となるPCにはインストールされずブラウザ(*3)を通して操作します、この二つ見た目上はPCでシステムが動作しているので傍目には違いが分かりません

ただ構成的には大きく違います

クラサバ型はPCのリソースに依存するのでPCで並列作業をしているPCの性能が低い場合などは反応が悪くなります、対してwebアプリ型はサーバーの性能とPCの性能に左右されますのでどちらかが過負荷の場合やはり反応が悪くなります

それに加えてwebアプリ型はAPサーバーを別途用意する必要があり、これが止まると当然システムはダウンします

その代わりブラウザ越しにシステムが利用できるため、PCだけでなくスマホやタブレットでの運用も可能になる場合があります。

クラサバ型でこのマルチプラットフォーム(*4)を実現しようとするとそれぞれの端末に合わせたソース(*5)を用意しなければならず、かなり非現実的です。

2点目の「データはどこにあるのか」ですが、これは大きく1.ローカル、2.オンプレミス(*5)、3.クラウド(*6)の3つぐらいに分類されます

まずローカル型ですが、これはプログラムが動作している機体の中にデータベースが格納されている構成です。「今時ローカルなんてあり得ないでしょ」などとおっしゃる方もいるでしょうが、クライアント様にとって何が一番ベストかはシステム屋が決めつけるのは危険だと思うのでこういう構成もあると思います。例えるなら「1台のPCだけでシステムが使えればいい」という場合にはこの構成も選択肢となります

次にオンプレミス型ですが「オンプレ」と略したりもします、これは社内LAN(*7)の中にデータベースサーバーを用意しそこにデータを格納する形態です、事務所内だけでシステムが使えればいいという形態です。一時期この形態(データセンター含めて)が主流でしたがクラウドが主流になり今また「脱クラウド」などと言われてます

3つ目がクラウド型です最近よく聞く単語です。データベースサーバーをインターネット越しの外に用意し広い範囲(例えば日本全国の支店など)で同じシステムを利用したいなどの場合にこの構成が最適になります。

AmazonさんのawsやMicrosoftのAzureなどが有名ですが、前述のとおり主にコスト面から「脱クラウド」などと叫ばれてくるようになりました。

しかし最も大事なのは「潮流に惑わされず自分たちの望むシステムに最も適している形態はどれなのか」を真剣に考える事だと思います。数年前まで「クラウド一択」みたいに言ってたのに今は「脱クラウド」こんなのに振り回されていては経営層はたまったものではありません

それとデータベースサーバーの問題はもう一つ大きな「ミドルウェア」という問題があります

あまりネガティブな事は書きたくありませんがデータベースサーバーは物理的にサーバーを用意しただけでは使えません、そこにミドルウェアと言われるデータベースアプリをインストールする必要があります。

「必要なものならコストがかかるのは仕方ない」と思われるでしょうが、これがン百万円規模となってくると話が変わってきます。

システム構築を請け負う立場としてもいくら必要な費用とは言え構築側が受け取るものではなく、依頼側から見たらシステム構築額に含まれるコストとなりますので、どんなにシステムを安価に構築しても高くなってしまってはモヤモヤするものがあるのも事実です。(このへんの問題はご相談下さい)

では以前書いた「ノーコード」ではどうなのか?と言うと、これら全てパッケージングされ後はお好きに作って下さいという利用者側にとっては面倒がなく、かつミドルウェアの高額費用が(一時的に大きく)かからないため経営的にも嬉しいと思います。

今回はこのあたりで一旦終わります、ご参考になれば幸いです

【今回の単語の説明】

1.クラサバ : クライアント(ユーザーが使うPCのこと) – サーバー(データベースサーバー)の形態の事、スタンダードなシステム構築形態です

2.web(AP)サーバー : webアプリ型はサーバー上でプログラムが動作するため別途APサーバーと呼ばれるサーバーを用意する必要があります

3.ブラウザ : 元々はインターネット上のwebページを閲覧するためのソフトでしたが、プログラムを動作させるなど様々な進化を続け今の形になりました、Microsoft Edge、Google Chromeなどが有名です

4.マルチプラットフォーム : 一つのシステムを複数(Windows、Android、iosなど)の機器で動作させる事

5.ソース : 美味しいアレではなく「プログラムソース」のこと、プログラム言語で書かれた元となる大事なもの、これが流出すると複製や改変は簡単にされます

6.クラウド : インターネットを大きな「雲」に見立て、その中にサーバーを置き利用すること全般を「クラウド」言ってるようです。IT業界ってどうしてこんなに新単語が出て来るんでしょうね

7.社内LAN : 一般的には「インターネットを介して外に出ないネットワーク」を指すと理解してます。「社内」と言うと営業所間の通信はインターネットを介してるのではないのか?となりますので要するにクローズドなネットワークの事だと理解しています(違っていたらゴメンナサイ)

前の記事

プログラマーの素質とは

次の記事

Accessとノーコード