基幹システムの過去と未来をアーキテクチャで考える

基幹システムの過去と未来をアーキテクチャで考える

皆様、はじめまして。

株式会社システムエグゼ・ライブラリ室の相田と申します。
ソフトウェア/アプリケーションアーキテクトとして、主に皆様が業務でお使いになる、基幹システム開発において提案から開発に携わっております。

今回は「基幹システムの過去と未来をアーキテクチャで考える」と題して、ここ10年程のユーザ企業様の基幹システム向けアーキテクチャの変遷とあわせて、弊社がお客様に提供してきた技術的取り組みをご紹介させていただこうと思います。

Web システムと Java の登場

今から10年前の2005年と言えば、90年代のバブル崩壊に始まる、日本の長い不景気の只中であり、
各企業においては業務のシステム化を進めつつも、その「コスト」が大きな制約条件であった時代です。
この年は「Web 2.0」という言葉が流行した年であり、
企業向けシステムのWeb化が急速に進んだ年でもありました。
また、Web開発用の言語として、Javaが一気に普及した時期でもあります。

WebとJavaの、当時における最大のメリットは、何よりも「コスト」でした。

Webは、それまでのクライアントサーバシステム(C/S)に比べ、
資源の集約による保守・運用コストの削減が可能でした。
Java言語は、開発元であるSunのオープンソース戦略により、開発環境一式が無償で入手可能でした。
これは当時としては画期的な事で、その分システム開発コストも削減することが可能となりました。
さらに、Javaはライセンス費用が安価なLinuxサーバ上でも動作したため、
インフラ調達コストも併せて削減されました。

これらのコストメリットもあり、多くのユーザ企業様がWeb + Javaによる開発を希望されました。
結果、我々ベンダは、新しいアーキテクチャであるWeb、そしてJavaへの急速な対応を求められました。



オブジェクト指向とアプリケーションアーキテクチャ

2005年から2010年にかけては、Javaを中心としたオブジェクト指向開発の、正に黄金期だったと思います。
この時期弊社では、オブジェクト指向開発への転換に当たり、
「デザインパターン」を軸とした、新しい設計モデルへの転換を図りました。
これは、従来の開発の進め方そのものも大きく変えるという決断であり、大きな痛みを伴う改革でした。

しかしこの転換により、それまで家内制手工業的だったソフトウェア製造を、
ライン生産に近い分業制の製造へと変化させる事が出来ました。
この事が、弊社におけるシステム開発の生産性を大きく向上させました。
また、この時期には、ネットワークやサーバのアーキテクチャにも様々な変化があり、
それに呼応する形で、ソフトウェア開発におけるアプリケーションアーキテクチャも、加速度的に進化しました。

この頃になると、ユーザ企業様から、いわゆる基幹システム開発をWebとJavaにより、
低コストで行いたい、というご要望が多く寄せられるようになりました。
幸いにも、アプリケーションアーキテクチャは、
既に基幹システムのような大規模開発にも耐えられるまでに成熟していました。
弊社は、その進化を積極的に受け入れる事で、ユーザ企業様のご要望に応えて参りました。



「Web」は、企業の課題を解決したのか?

しかし、2010年頃、私は一つの疑問を持つようになりました。

それは、果たしてWebとJavaは、本当にユーザ企業様の課題を解決したのだろうか?
という疑問です。

たしかに、C/Sシステムに比べれば、運用コストは引き下げられました。
しかし、同じメリットが得られる、他の技術も既に出現していました。
開発環境コストについても、この頃には既に驚くほど安価になっており、
以前ほど大きな課題ではなくなっていました。

そしてWebには、ユーザ企業様にとっての、2つの大きな課題が生じていました。
それは「セキュリティ」と「ユーザビリティ」という課題です。

Webは、いわゆるWebブラウザを基盤とした仕組みです。
このため、インターネット上のセキュリティ脅威がそのままシステムにとっての脅威となります。
セキュリティ対策のためのコストが、無視できない程に大きくなってしまいました。

もう一つの課題が、Webのユーザビリティの低さです。
かつてのC/S時代のユーザビリティは、Webシステムよりも明らかに優れています。
Webはユーザビリティを犠牲にしてコストメリットを得ている、と言っても過言ではありません。
基幹システムを利用する社員の皆様の業務効率を低下させているのではないか、
という懸念を抱かざるを得ません。

この頃から弊社では、Java + Web開発を継続しつつも、
ユーザ企業様の課題を解決するための、新たなアーキテクチャを模索し始めました。



2015年に考える、基幹システムのアーキテクチャ

2015年現在、「コスト」という課題が最優先だった時代は過ぎ、
「セキュリティ」「ユーザビリティ」そして「スケーラビリティ(拡張性)」を満たす、
新たなアーキテクチャが必要とされています。
これらの課題を解決する次世代技術の候補はいくつかあります。

その一つがHTML5/JavaScriptであり、この技術は現在、爆発的な進化の途上です。
しかしながら、あくまでも進化途上であり、数年後の姿を正確に予測する事は困難です。

もう一つの候補として、私が現在取り組んでいるのが、
C#.NETを中心とした、Microsoftのアーキテクチャです。
Microsoftは、ここ数年で大きく企業姿勢を転換しました。
積極的なオープンソース戦略と、開発環境製品の低価格化および無償化により、
開発コストは大きく引き下げられました。
また、MicrosoftはOSからミドルウェア、アプリケーションまでを提供する総合ベンダです。
ここには、セキュリティ対策をオールインワンで提供出来るという、保守・運用上の優位性があります。

実際に、2014年のある調査では、基幹系システムの約40%にWindows Serverが使用されており、
最も使用されているサーバOSとなっています。
そして何よりユーザビリティに関して、Microsoftには非常に大きな優位性があります。

業務用パソコンのデファクトスタンダードは、間違いなくWindowsです。
そのWindows上で最も優れたユーザビリティを実現するのは、
当然ながらMicrosoftが提供する.NETテクノロジです。

私は現在、Java開発で培った開発のノウハウをC#.NET開発に注入し、
さらにはモバイルデバイス向けの最新のアーキテクチャを取り込む事で
スケーラビリティも確保した、新たなソリューションを構築中です。
これは、高度なユーザビリティを実現しつつも Web のメリットも併せ持つ、
「基幹システム開発のための」新しいアーキテクチャです。
このソリューションの一部は、既に何社かの大規模基幹システム開発に採用させていただき、
ユーザ様より「とても使い易い」という高いご評価をいただきました。

このお言葉は、正にアーキテクト冥利に尽きる一言です。



おわりに

いかがでしたでしょうか。

さて、ここまで技術視点でのお話をお届けして参りましたが、
これだけは最後に申し上げておかなければなりません。
弊社が最も重要だと考えているのは、あくまでもユーザ企業様の課題解決であり、
ユーザ様のビジネスの成功こそが、弊社のゴールです。

技術基盤もアーキテクチャも、それを実現するためのツールに過ぎません。
その信念を元に、変化を恐れず磨き上げたツールだからこそ、弊社は技術に自信を持っています。
もしも、何か課題を抱えておられ、弊社に少しでもご興味を持たれましたら、是非一度お声がけ下さい。
私も、アーキテクトとしてお伺い致します。

クラウド化への対応や、関数型言語のような新しいプログラム言語への対応を含め、
今回書ききれなかった話題も、まだまだたくさんあります。
その際には、もう少しヨコモジを減らした平易な言葉で説明できるよう努力致します。

末筆ながら、貴社ますますのご繁栄とご発展をお祈り申しあげます。