Source Program Maintenance Online II (略称はSPM、SPM/OL、SPMOL-IIなど、発音は「SPM」または非公式には「Spimoli」)は、 1970年代後半から1980年代初頭にかけてのIBMのソフトウェア製品で、 IBMメインフレームシステムで作業するコンピュータプログラマーにオンライン環境を提供しました。CICSテレプロセッシングモニタ[ 1 ]上で動作し 、 IBM 3270ビデオディスプレイ端末を介して使用されました。 [ 2 ]
SPM の基本的な目的は、パンチカードのデッキを使用する代わりに、オンラインでCOBOLまたはその他のプログラミング言語のソース コードの作成と編集、およびそれらのソース プログラムのコンパイルへの投入を可能にすることでした。[ 1 ] ソース プログラムは SPM でディスクに保存され、編集のために取得され、バッチ ジョブ ストリームとして投入されました。[ 2 ] したがって、ある IBM の文書に述べられているように、SPM は「3270 を介して CICS オンライン システムの機能をプログラマとシステム プログラマに拡張する」ものです。[ 2 ] このようにして、プログラミングの生産性を向上させることができました。[ 3 ]
IBMの製品階層では、SPMはフィールド開発プログラムでした。[ 2 ] SPMは、 MVS / TSOやVM/CMS を実行していないIBMメインフレームサイトでオンライン編集環境を求めるユーザーにとって人気のある選択肢でした。[ 4 ]

Source Program Maintenance Online の最初のリリースは、現場で開発されたプログラム 5798-BDT でした。[ 2 ]おそらく 1974 年半ばに初めてリリースされたと思われます。[ 5 ] SPM 自体はIBM 370 アセンブリ言語 で記述されています。[ 2 ]
Source Program Maintenance Online II は、フィールド開発プログラム 5798-CFT としてリリースされ、1975 年後半に登場しました。[ 6 ] SPM が最もよく知られるようになったのはこのバージョンでした。[ 7 ] [ 8 ] このバージョンで見られた改善点には、相対位置参照の編集サポート、コードブロックの移動またはコピー、タブ文字のサポート、複数のデータセットと圧縮ディレクトリのストレージサポートなどがありました。[ 6 ]
1979年までに、監査およびアーカイブ機能と個別のドキュメントも実装されました。[ 9 ] この機能では、SPMで管理されているプログラムに加えられた変更の詳細なリストが保持されました。[ 10 ] また、アーカイブからプログラムを選択的に復元することもサポートしていました。[ 10 ]
最高レベルでは、SPM 機能はCICS トランザクションの4 文字コードによって構成されていました。主な編集操作は、またはのいずれかで行われましたSPIN。SPUDジョブ ステータス表示はによって生成されました。出力は、またはのSPMDいずれかで表示されました。[ 11 ]SPDORPDO
ソースプログラムはディスク上の専用ライブラリに保存されていた。[ 10 ] 画面内では、SPMは3文字の編集コマンドを使用して動作した。[ 11 ]
コンパイルのための提出では、SPM が CICS を実行しているオペレーティングシステムパーティションからプログラムを取り出し、必要なジョブ制御ステートメントとともにバッチ プログラムに割り当てられた他のパーティションのいずれかに挿入しました。[ 10 ]
状況によっては、プログラムの出力を端末に送り返すことで、プログラムの検査やテストを行うことができます。[ 3 ] つまり、バッチ ジョブも SPM への入力として使用できます。通常の出力のJCLは に送信されSYSOUT=S、特別な出力は に送信される場合がありますSYSOUT=R。[ 12 ] 基本的な使用法では、コンパイルの結果を端末に表示できます。[ 3 ] これは、コンパイルとリンクのアクションを実行する JCL カタログ プロシージャを用意し、エラー メッセージと警告 メッセージを に送信するようにコーディングしSYSOUT=R、SPM ユーザーがRPDO関数を介してそれらにアクセスできるようにすることで実現できます。[ 12 ]
バッチと SPM 間の双方向のやり取りには、他にもさまざまな方法がありました。たとえば、パーティション化されたデータセットのメンバーをJCL プロシージャで読み出してSYSOUT=RSPM にキャプチャし、編集し、メンバーが送信可能な JCL ラッパーに関連付けられるかどうかをインラインでテストし、その後、別の JCL プロシージャで修正されたメンバーをパーティション化されたデータセットに更新することができました。[ 12 ]
SPM で保持されているプログラムの目録を一覧にしたレポートが入手可能でした。[ 10 ]レポートには、SPM の SPIN、HPIN、および PPIN ライブラリのメンバーとインデックスが含まれており、プログラマごとに分類することができました。[ 12 ]
SPMにはバックアップと更新のための機能があった。[ 13 ] 特に、SPMで管理されているプログラムは磁気テープにアーカイブすることができた。[ 10 ]
SPM の主な用途は、プログラマーがコードを記述およびコンパイルしやすくし、それによってプログラマーの生産性を向上させることでした。[ 3 ] 1979 年にComputerworldに掲載された IBM の広告記事では、食品および飲料業界のある企業が、開発者が SPM を使い始めると生産性が 50 % 向上したと述べています。[ 14 ] SPM を使用するとSCRIPT/VSテキストマークアップ言語フォーマッタを実行して出力を表示できるため、テクニカル ライターも恩恵を受けることができます。[ 15 ]
SPMには監査機能があったものの、多くのIBMメインフレームサイトでは、プログラムの変更を追跡するために、The Librarianなどの確立されたバッチ指向のサードパーティ製ソフトウェア製品を使用していた。 [ 16 ]この場合、SPMを使用してソースコードに対してLibrarianの追加、削除、更新ステートメントを作成することができた。しかし、これは初期開発には扱いにくく、一部のサイトでは、SPMをフルプログラムエディタとして使用して新しいプログラムを作成し、プログラムが本番環境に移行した後は、継続的な変更のためにLibrarianの制御ステートメントに切り替えるというハイブリッドアプローチを採用していた。[ 12 ]
しかし、コンピュータ言語処理はSPMの使用目的のすべてである必要はなく、アプリケーションシステムのコンテキストでも使用できた。[ 7 ] あるサイトでは、オンラインデータ検索機能の一部としてSPMの修正版を使用していた。[ 7 ] 別のサイトでは、データ入力および表示アプリケーションの一部としてSPMを使用していた。[ 8 ]
一部のベンダーは、 POWER リーダー キューに入力を供給するなど、SPM/OL 用のアドオン ユーティリティを作成しました。[ 13 ]また、 DOS/VS環境 で POWER からのコンソール メッセージを取得するなど、この分野で開発された他のプログラムも存在しました。[ 10 ]
1970年代後半にはSPMOL-IIの使用が十分に一般的になり、IBMは延長サポートと月額料金プランの両方を提供しました。[ 6 ] そのような料金プランの1つは月額124ドルで、12か月後には料金が免除されるものでした。[ 17 ]
1979 年にIDCが行った調査によると、System/370 サイトの約半数が、プログラム開発に何らかのオンライン編集および送信製品を使用していた。その半数のうち、ハイエンドの 370 モデルを使用しているインストールでは、 MVSオペレーティングシステムが稼働しており、関連する対話型TSO環境を編集およびプログラム開発に使用していたが、ハイエンドではないOS/VS1などの他のオペレーティングシステムが稼働しているインストールでは、 VM/CMS、SPM、Roscoeなどさまざまな製品を使用していた。全体として、370 ユーザー向けのオンライン編集およびプログラム開発における SPM のシェアは約 10 パーセントであった。調査によると、IBM 303Xシリーズなどのより新しく大型の IBM メインフレームを使用しているサイトでは、SPM の使用頻度が低かった。[ 4 ] Roscoe および競合製品であるLibrarian/Onlineの開発元であるApplied Data Research は、 IBM が SPM を低価格で提供していたため、SPM に対抗して販売するのが困難であると判断した。[ 17 ]
SPMは非常に人気があったため、1980年代初頭までにIBMはVM/CMSライブラリメンテナンスおよびSPMOL-IIシミュレータと呼ばれる別のフィールド開発プログラムをリリースしました。これは、IBMの資料によると、「SPMOL-IIからVM/CMSに移行するユーザーの移行を容易にするため」に、VM/CMS環境のエディタ内でSPM編集コマンドの行番号指向の側面をエミュレートするものでした。[ 10 ]