OPEN系エンジニアのためのAS400入門①

〜まずは構造と“考え方の違い”を理解する〜

■ この記事で分かること

✔ AS400のざっくりした構造
✔ Linuxとの違い(重要)
✔ プログラムがどう動くのか(流れ)


■ はじめに

LinuxやWeb系の開発を経験してきて、
AS400(IBM i)に触れたとき、最初にでてくる違和感はこれです。

  • ディレクトリ構造じゃない?
  • DBってどこにあるの?
  • 同じ名前なのに見つからない?
  • なにがどこにあるのかわからない

👉 独特の環境なので混乱する最初のポイント

この記事では
**「システム開発する上で何がどう違うのか」**にフォーカスして整理します。


■ AS400の基本構造

ざっくり分けるとこうなります👇

例:慣習としてライブラリIDはうしろにLIBを付与することがおおい(ライブラリのこと)
[ソース]     ISRCLIB
[DB]         IDBLIB
[プログラム] IOBJLIB
[外部連携]   IFS

■ ポイント:ライブラリは役割ごとに分ける

AS400では通例として、用途ごとにライブラリを分けて管理します。

ソース用ライブラリ      → ISRCLIB
DB(データ)用ライブラリ → IDBLIB
プログラム用ライブラリ  → IOBJLIB

✔ なぜ分けるのか?

① 管理しやすい

👉 ソース・データ・プログラムを切り分けて扱える

② 環境分離がしやすい

DEV_***
PRD_***

③ LIBL(探索順)と相性がいい

👉 どのプログラム・データを使うか制御しやすい


■ AS400の開発〜実行の流れ(重要)

① ソース作成(ISRCLIB)
        ↓
② コンパイル
        ↓
③ プログラム生成(IOBJLIB)
        ↓
④ 実行(LIBLで探索)
        ↓
⑤ DBアクセス(IDBLIB)
        ↓
⑥ ジョブ内で処理実行

■ ここが重要

✔ ソースと実行体は別物
✔ 実行時はLIBL(探索順)で決まる

👉
「どこにあるか」ではなく
 「どの順番で探すか」で動く


■ Linuxの構造(比較)

Linuxはシンプルです👇

/home
/var
/etc
/bin

👉 すべてはファイルとして管理


■ Linuxの開発〜実行の流れ

① ソース作成
        ↓
② ビルド or スクリプト
        ↓
③ 実行(パス指定)
        ↓
④ DB接続
        ↓
⑤ プロセスとして実行

例:

./app

■ AS400とLinuxの違い(核心)


◆ 違い①:管理単位

  • Linux → ファイル
  • AS400 → オブジェクト

👉
Linux:ファイルを置く世界
AS400:オブジェクトを管理する世界


◆ 違い②:実行方法

  • Linux → パス指定
  • AS400 → LIBLで探索

👉
同じ名前でも結果が変わる


◆ 違い③:DB

  • Linux → 外部サービス
  • AS400 → OS内蔵

👉
AS400はDB込みのOS


◆ 違い④:実行単位

  • Linux → プロセス
  • AS400 → ジョブ

■ なぜ分かりにくいのか

理由はシンプルです👇

👉 Linuxの常識が通用しない

特にこの2つ:

  • パスではなく「探索順」で動く(LIBL)
  • ファイルではなく「オブジェクト」で管理される

■ まとめ

👉
AS400は
「ファイルシステム」ではなく
「オブジェクト管理システム」

最初はクセが強いですが、
慣れると一貫性があります。


■ あるある

  • プログラムあるのに動かない
     → LIBLにない
  • 更新したのに反映されない
     → 別ライブラリ見てる
  • 処理が止まる
     → ロック