IBM iの特徴ってなんだろう
入社2年目、IBM iを触り始めて9ヶ月ちょっと、ついに1年目の子にIBM iについてレクチャーする機会が先日あり改めてIBM iの良さについて考えてみることに。
そこで奥が深いIBM iの特徴について、新人の子向けにざっくり4つまとめてみました。
IBM iの特徴
① 色々な機能が丸っとOSに包含
IBM iの大きな特徴の1つにIBM i OSを導入するだけで色々な機能がついてくるというのがあります。
データベース機能(DB 2 for i)だったり、セキュリティ機能だったり、実行管理機能だったりと色々OS組み込みのため、OSとアプリケーション・プログラムさえ用意すれば、システムとしてすぐに利用できる状態にあると言えます。
これの何がメリットなのかというと
- 必要機能一式をOS統合しているのでシステムの一元管理が可能
- トラブル発生時はIBM一社で問題切り分けを行なうので、迅速な対応が可能
この2点が大きいのかなと思ってます。
一般的に1つのシステムを動かす際、DB担当の人、OS管理の人、、、みたいに複数人でシステムを見守るイメージがあるのですが、IBM iではシステムの一元管理が可能なので1-2人の少数精鋭でシステムを見守っていることが多い気がします。(壊れず安定性稼働できる基盤だからという理由もある気がする)
またトラブル時も各担当者と連携しなくてはならない、また各SWベンダーに問い合わせを行わなければならない、、といった手間もなくIBMにさえ問い合わせをすればOK!という仕様になっています。
そしてIBM iを触るとなるとOSに入っている様々な機能を学習することになります。それ故に幅広いIT知識が身につくので、IT初心者が基礎を学ぶ上ではうってつけのOSであると個人的には思っています。
② TIMI
TIMI(Technology Independent Machine Interface)はIBM iの設計思想の1つで、ソフトウェアとハードウェアを分離するための仮想化層です。
TIMIの詳細についてはこちら
https://www.i-cafe.info/column/serials/offcon003
ざっくり言うと、TIMIがSWとHWレイヤーを分断しているため、HWのテクノロジー更新がソフトウェアに影響しません。
つまりHWの更改を行っても、アプリケーションの再構築の必要がありません。
これってユーザーにとっても便利ですし、IBM iを使い始めるとずっと使っていただける理由はこのテクノロジーが大きいと思っています。
③ 単一レベル記憶
単一レベル記憶(Single-level storage, SLS)とは、メモリとディスクを同じアドレッシング方式で管理する方法です。
通常のシステムにおいてメモリとディスク(補助記憶領域)はそれぞれ独立しており、別々のアドレス(データの住所みたいな)で管理されています。そのためデータを探しにいく際は、まずメモリ内を探し、そこにお目当てのデータがなかったら次にディスクへ探しにいきます。行ったり来たりが多いわけです。
一方IBM iはメモリとディスクが同じアドレス方式で管理されているため、OSから見るとこの二つは大きなメモリに見えます。
そのため、レスポンスが高速です。
使っている人はその恩恵をよくわかっていると思いますが、多くのユーザーが同時に処理をする場合や、大量データを扱うバッチ業務などにおいては特に他のサーバーよりも高いパフォーマンスを発揮できます。
単一レベル記憶に関する詳細: https://www.e-bellnet.com/category/column/1612/1612-30.html
④ オブジェクト
IBM iに存在する操作対象をオブジェクトと呼びます、これはIBM iにおける大事な設計思考の一つです。(javaなどにおけるオブジェクト指向と根本的な考え方は似ている気がします)
IBM i上においてオブジェクトはオブジェクト名+定義域で構成されています。ちなみに定義域というのは、オブジェクトの属性を表すもの(*PGM,*FILE,*LIBLなど)です。
WRKOBJ
コマンドで各オブジェクトのタイプ欄でオブジェクトの定義域が確認できます。
IBM iのオブジェクトは正式な手順、すなわちSTROBJCVN
などのコマンド操作を行わなければ属性の変更はできません。
これによってデータ(オブジェクト)の誤動作を防ぎ、セキュリティー性の向上を図ることができます。
逆にデータ属性が簡単に変えられてしまうとどうなるのか、オブジェクト思考のOSではないMac OSを用いて例を挙げてみます。
このようにHello Worldと表示されるプログラムを、勉強の一環としてテキストファイルにメモしたとします。
Macでは拡張子を変更するだけで、データ属性の変更ができます。
なので名称変更から、テキストファイルの拡張子.txtをApple scriptの拡張子.scptに変更するだけで、プログラムが実行可能な状態になってしまうわけです。
もしこのメモされてるプログラムがデータを全部削除してしまうプログラムだった場合、ユーザーが拡張子を間違えてしまっり、またはシステム上の誤作動で拡張子が書き換えられてしまったりでシステム上のデータが削除される危険性が出てくるわけです。
IBM iのオブジェクト思考はこのような危険性を排除してくれくれるわけです。
またこのオブジェクトの考えがあることによって自然言語に近いコマンド操作、動詞+操作対象、ができるとのことみたいです。