インターシステムズは、40年以上に渡って、人命や生活を支える停止することの許されない大切なアプリケーションのデータ基盤技術を提供し、開発者の方々のアプリケーション開発を支援してきました。
開発者の方にデジタル時代のアプリケーション開発におけるヒントや参考となる何かをご提供できれば幸いに思います。具体的な開発解説の前に、まずはアプリケーション開発を取り巻く環境について考察したいと思います。
IT環境が急速に変化する時代で求められる、開発者のスキル対応
ビッグデータ、IoT、DX(デジタル変革)、Digital Disruption(デジタル破壊)などIT業界ではさまざまなバズワード(流行語)とともに多種多様なソフトウェア、ハードウェア技術/製品が次から次へと開発され、すさまじいスピードでIT技術も進歩しています。
ソフトウェア開発者は、それらの新しい技術を学習し、使いこなすことを強く求められており、新しいことにチャレンジできることにわくわくしている方もいる一方で、そのスピード、量に追従することに大きなプレッシャーやストレスを感じている方々、新しい技術を学びたい気持ちは十分もっているが、日々の業務に追われて時間がないという方々もいらっしゃることでしょう。
急速な変化の背景は、急増するデータ
なぜこういう状況になっているのか、大局的な目線で物事を見てみると1つの方向性が見えてきます。
近年コンピュータの性能が劇的に上がり、処理能力が向上し、処理技術が洗練されることで、必然的に処理できるデータは激増しています。そしてその傾向は、将来においても留まる気配はありません。また、データ量の急増だけに留まらず、データの種類(IoT、非構造データ)も増えています。
データの急増というと単にデータ量だけの問題と捉えがちですが、データの処理方法にも大きな変革が求められているという点についても理解が必要です。世の中のITシステムがすべてコンピュータのみで処理されているのであれば、データ量の増加に応じてコンピュータの処理能力を増強すれば良いということになりますが、大抵のITシステムにはコンピュータが処理する部分と、人が介在して処理する部分(人が入力する、コンピュータの出力を人が判断して処理するなど)が混在しています。処理するデータ量が増えると、人が介在する処理にもそのデータ量に応じて負担が増えることになります。
人手不足により処理の自動化は必然
コンピュータと異なり、人が介在する処理量は簡単に増やすことはできません。データ量が増えるにつれ、人手の処理は対応が困難になっていき、やがて限界を超えることが容易に想像できます。ましてや日本では少子高齢化が進み生産年齢人口の減少が避けられない現状の中、諸外国に比べても事態は深刻です。
限界を超えるということは、いままで対応できていたものが対応できなくなるということで、何らかの対応策が急務です。対応策として考えられるものは、人手が介在する処理をできる限り減らしていくしか方法がありません。つまり「処理の自動化」を強力に推進するしか道がありません。
自動化を推進する技術としてRPA(Robotic Process Automation)が注目されています。しかし、RPAでは人の判断が必要となる部分に関して置き換えが難しく、その置き換えとしてAIや機械学習に大きな注目が集まっているのは必然といえるでしょう。
1つ見えてきました。そうです。キーワードは「自動化」です。それでは自動化を推進するには何が必要でしょうか?
自動化、AI、機械学習は重要だが、より重要なものは「正しいデータ」
「自動化」とは、コンピュータが人に代わって判断することです。それには、コンピュータ自身がデータの意味を良く理解する必要があります。そのためにはデータを適切に処理するアルゴリズムや処理手法の研究開発が欠かせません。まさにAI、機械学習に関してさまざまな活発な議論、試みが行われていることがその査証でしょう。
一方で見過ごされがちなことがあります。それは、いかに優れたアルゴリズム、手法であったとしても、入力データが正しくなければ、正しい結果は決して得られないという事実です。つまり、”Garbage In Garbage Out”――無意味なデータを入力しても無意味な結果しか得られない――ということです。
実は、正しいデータを揃えるということが、いかに難しいかということを理解している人は少ないかもしれません。
難しい理由には、
- データがいろいろな所に分散しているために、多角的な判断が必要な際に、データを集めてくる必要がある
- 同種のデータが違う場所に違う表現で存在しているので、どちらがより正しいデータなのか判断ができない
- 今ほしいデータが欲しい形になっていないので、自分で形を整える必要がある
などがあります。
正しいデータ整備と、その活用のためのテクノロジ―
インターシステムズは、1978年の創業以来、データをいかに整理して使いやすく管理し、そのデータを活用したアプリケーションをいかに素早く開発して、そのアプリケーションが実行時に最大限の性能を発揮できるような開発/実行環境を提供することを徹底的に追及してきました。最新のデータプラットフォーム製品「InterSystems IRIS Data Platform」は、インターシステムズの40年の経験と知見を集約して現在のニーズに対応し、2018年に満を持して発表しました。
インターシステムズにはソフトウェア開発について4つの原則があり、これが製品名であるIRIS(アイリス)に反映されています。すなわち、
- (I)Interoperable:他のソフトウェアと連携して動作すること
- (R)Reliable:信頼性が高いこと
- (I)Intuitive:直観的に使用できること
- (S)Scalable:スケール(拡張性が高い)すること
です。これらがIRISの主な特徴となりますが、さらに、トランザクションと分析を同時に行うマルチワークロード、AI/機械学習に対応するオープンな分析環境、クラウド配備のサポートを提供し、デジタル時代のデータ集約型アプリケーション開発を支援します。
複雑なIT環境の中で「シンプルであること」の大切さ
インターシステムズの開発者は常に先に述べた4点、I・R・I・Sを念頭に製品開発を行っています。さらに、この4原則の背後に1つの理念を持っています。
それが、Elegant Simplicity(エレガントでシンプルであること)です。物事はシンプルに越したことはありませんが、シンプルであり続けることは実は非常に難しいことです。特にソフトウェア製品やITの世界では、さまざまなユーザーの要望に答えていく内に段々複雑になっていくことは、ほぼ不可避です。それでもシンプルでありたいと常に意識して製品開発に取り組むことが、大きな違いを生んで行きます。
そして、シンプルだからこそできることがあります。
- 他とつなぐことが難しくない: Interoperable
- 信頼性を損なう部分も少ない:Reliable
- 使い方に迷うことなく直観的に使える:Intuitive
- 容易にスケール(どんどん大きく)できる:Scalable
すなわち、シンプルさがIRISを支えているのです。
データベース機能という観点で競合となる商用、あるいはオープンソースのデータベース製品と比較した際、他のデータベース製品の経験者の方々がIRISを使用してまず感じるのが、構成パラメータの類のものが極端に少ないという点です。これは、構成パラメータを追加することが、複雑性を増すこと以上のメリットを生むかを常に意識して開発されてきた結果です。
そしてこの理念が守られているかをチェックするための指針があります。それが、「製品の新バージョンは、常にその前のバージョンより高性能でなければならない」という制約です。
新バージョンは、前のバージョンから何らかの新しい機能が追加されます。その影響で遅くなる可能性がありますが、それが許されない。となると、どこかで余計なものを削る、または内部のアルゴリズムをシンプルになるように改善するしかありません。性能の追及が製品のシンプルさを支えているとも言えます。
これらのことは、実際にお使いいただく際には意識せずとも、使っていただく内に、「あ、そういうことか」とか、「そこが他の製品との違いだ」ということに気づいていただけると嬉しく思います。急速な技術進化やさまざまなデータが溢れる現代に、このシンプルさが意味することは大きいと思います。
最後になりますが、第三者リサーチ会社Neuralytixが、オープンソースを組み合わせた場合とIRISを使った場合とで、データ集約型アプリケーション開発について、定量的に比較したレポートがあるのでご紹介します。開発時間、開発コスト、総合的維持コストなどを比較した結果、オープンソースの組み合わせよりもシンプルな統合データプラットフォームIRISでの開発の方が、多くの点で利点があると結論づけています。よろしければご覧ください。
- 「ポイントソリューションと統合データプラットフォームデータ集約型アプリケーション開発の定量的比較」(Neuralytix社)
次回より、InterSystems IRISを使ったIoTアプリケーション開発について解説します。シンプルで素早くご開発いただけることを体感いただけると幸いです。
この連載を通して、一人でも多くの方が、InterSystems IRIS Data Platformを実際に使ってみて、何か役に立ちそうだ、面白いと思っていただくことを願って止みません。