これまで何度か紹介してきた通り、私は.NET系のエンジニアです。

中でもWindowsアプリケーション、モバイルアプリケーションといった『アプリ』の案件に多く携わってきました。

『Webシステム』案件への参画はこれまで2回程度と少ないのですが、これまでの経験から「なぜ『Webシステム』なのか?」という事についてお話したいと思います。

『Webシステム』と『アプリ』の違い

本題に入る前に、IT業界入りたてで違いがよく分からないという方の為に少しだけ寄り道します。

『Webシステム』とは

『Webシステム』とは、ブラウザをクライアントとしてサーバとのやり取りを行うシステムのことです。

言語としてはJavaやPHPなど、サーバにはLinuxを基本的に使います。

案件の内容などで「Java 業務システム」とくればだいたい『Webシステム』と言っても過言ではないでしょう。

『アプリ』とは

『アプリ』とは、今の便利になった世の中ではスマホをイメージして頂くと分かりやすいかと思います。

例えば楽天市場Amazonといった大手ECサイトのページを見る際に、パソコンであればブラウザ上から見るのが一般的ですが、スマホであればブラウザもしくは専用のアプリからも商品を閲覧することが出来ます。

ブラウザがパソコンの画面に合わせて設計されているのに対して(最近ではスマホ上で閲覧するブラウザもかなり進化してきてますが)、アプリ版ではスマホ利用に合わせて設計されているため、商品の見やすさや操作性がブラウザよりも優れていることが多いです。

後々触れますが、個々の環境に合わせて独自(既に存在するブラウザと対比して)に作成されたプログラムを『アプリ』と呼びます。

今回この記事を書くに至った理由

もう少しだけ脱線にお付き合いください。

以前、ある案件に参画する為に短期出張することになりました。

出張期間中はマンスリー契約の部屋が用意されるのですが、契約や手続きの都合により出張開始から数日経ってその部屋に入る流れとなりました。(それまでの間はホテル生活)

その為、マンスリー契約の部屋が入居可能となった時期に鍵の受け取りに某大手不動産賃貸業者の元へ。

不動産会社のオフィスという事もあり、内装はとてもきれいにされていて特に目を引いたのが接客カウンターでした。

各カウンターに1台ずつタブレット端末が配置されており、契約上の手続きをその端末で進められるようになっていたのです。

手続きが始まる中しばらくは「最先端だなぁ~」と思いながらタブレット端末を見つめ、私の記入が必要な箇所の所で画面をこちらに見えるように差し出され、覗き込んだその先に映るのは…Webブラウザ

正直、「ダセェ…」「居酒屋でさえアプリだぞ…」と思ってしまいました。「…」の部分はほぼ「w」と同じ感じです。

冒頭で述べたように私は.NET系のエンジニアであり、『Webシステム』にはそれほど親しみが無く、正直Javaという言語は好きではありません。

そうした背景も多少は影響しているのかもしれませんが、「社員だけが使用するならまだしも、消費者に見えるシステムがWebシステムってどうなの?」と思いました。

それからずっと「なぜ(大企業がダサい)『Webシステム』なのか?」を考えてきました。

少し前にある程度の答えは出ていたのですが、.NET側の最近の動向からどう書こうか悩んでいるうちにこんな時期になってしまいました。

それでは本題です。

『Webシステム』の理由 その①

一つ目の理由は『導入コストが安いから』です。非常にシンプルですね。

『Webシステム』の場合、クライアントとなるのはブラウザなのでパソコンを購入した時点で環境が(だいたい)同梱されています。

なので『Webシステム』を公開しておけば、新規購入したパソコンも初期セットアップ完了後にすぐに繋ぐことが出来ます。

対して『アプリ』はというと、サーバサイドのAPIは公開されていたとしてもそのAPIを利用するためのクライアントがパソコン購入時には同梱されていません。

その為、パソコンの初回セットアップ後に専用の『アプリ』をインストールする必要があります。

驚くべきことにこの『アプリ』のインストールが第一の関門になります。

あるメーカーAのパソコンではうまくいったが、あるメーカーBのパソコンではエラーが出る。あるあるです。

世界を代表するMicrosoft(IEやEdge)やGoogle(Chrome)といった企業が行っている努力(どんなパソコンでも動作するブラウザを作ること)と同じだけの努力が『アプリ』の開発には必要と言っても過言ではないのかもしれません。

続いて必要なのが『アプリ』の設定。この設定が第二の関門です。

サーバへの通信設定が他のパソコンと同じように設定されているのに動かない。あるあるです。

メーカー固有のウイルス対策や機能が盛り込まれている場合に、『アプリ』で意図している操作が制限されている場合があります。

しらみつぶしに見ていくことで解消する場合もありますが、『Webシステム』みたいに起動して繋いでOKみたいな簡単さからは程遠くなってしまいます。

さらに、既に述べた通り『アプリ』は個々の環境に合わせて作成されています。

当ブログでもおなじみのクロスプラットフォーム技術が発達してきていますが、いまだにWindowsのアプリケーションとMacのアプリケーションには正確な互換がありません。

すなわち、『Webシステム』を導入すればパソコンはWindowsだろうがMacだろうがLinuxだろうがChromeだろうが何でもOKなのが、『アプリ』を導入した場合は使うパソコンまで制限されてしまいます。

もちろんWindowsもMacも対応した『アプリ』を開発することは出来ますが、「その分開発コストがかかります」となるわけです。

『Webシステム』の理由 その②

続く理由もコストに関わってきちゃうのですが、第二の理由は『運用コストが安いから』です。

第一の理由を説明する中でも述べましたが、『アプリ』は個々のパソコンに対してインストールを行う必要があります。

なので『アプリ』のバージョンアップの際には全てのパソコンで動作することを確認しなければなりません。

万が一不具合が発生しても、それが他のパソコンでも同様に発生するかというとそうではない場合も多く、修正にかかるコストは倍以上と言ってもいいでしょう。

対して『Webシステム』の場合、バージョンアップデートの際に動作確認が必要となるのは対応しているブラウザだけです。

もっと細かく追及するのであれば各パソコンに入っているブラウザのバージョンまで気にする必要もありますが、そこまで苦ではありません。

極論を言えば、『アプリ』のバージョンアップで必要となる確認作業の大部分をMicrosoftやGoogleといった企業に負担してもらっている、と言えるかもしれません。

『アプリ』を導入されている方々へこれだけは強くお伝えしたいのですが、『アプリ』より『Webシステム』の方が運用コストを安く済ませることが出来ます

私の知人に医療系システムの導入を担当していた方がおり、「『Web』という言葉にアレルギーがあるようでなかなか切り替えに乗ってくれない」と当時を回顧しておられました。

『アプリ』の場合は担当者が直接パソコンを触って確認することが必要になりますが、『Webシステム』の場合は何と担当者が直接現場に向かわなくてもサポートすることが可能なのです。(VPNとか引いてれば別ですが…)

『Webシステム』の理由 その③

第三の理由は業界事情になるかもしれませんが、『開発コストが安いから』です。

主に『Webシステム』に使われる言語のひとつであるJavaは大体のIT企業で新人研修と称して教育しています。

なので相対的にJavaエンジニアの供給量が多く、需要をカバーすることが出来るため、人件費を安く抑えることが出来ます。

また、サーバサイドも同様にJavaで開発することが出来るため、サーバのコストも削減することが出来ます。

(.NETでサーバーサイドを開発しようとすると、冒険しない限りはWindows端末が必要になります。つまりJavaで開発する場合に使用されるLinuxとは異なり、そこそこの費用が掛かってしまいます。)

まとめ

思ったよりも熱く書いてしまいました。

なぜ『Webシステム』なのか?
  • 導入コストが安い。 ⇒ パソコン買ってすぐに利用できる。
  • 運用コストが安い。 ⇒ 確認する内容が少なくて済む。
  • 開発コストが安い。 ⇒ Webシステム開発者が非常に多い。

何故か『Webシステム』を持ち上げるような記事になってしまいましたが…それでも私は『アプリ』の開発がしたいです!

次は『アプリ』の良さを伝えられたらいいな…。

以上です。

スポンサーリンク