2007年1月27日土曜日

データの移行(β版)その1 TPからの抽出

遅ればせながら・・・あけましておめでとうございます。
このブログを読まれている方が一人も居ないかもしれませんが、皆々様にとって良き一年でありますように。そしてオープン系への移行を考えている方、移行中の方、一緒に頑張りましょう~(^^)/

さてデータの移行です。
東芝TP系を使われている方なら十二分に理解されているかと思いますが、データ形式がちょっと特殊です。厳密に調べた事はありませんが、どうも東芝オリジナルっぽい感じです。
※厳密と言うのは、FDの内容をダンプしてIBMフォーマットと比較した・・・などなど、手間を掛けて調べたことが無い、と言う意味です。

一般的にデータの移行と言えば、外部媒体へSAM形式で出力→読み込み・変換→登録です。
元々東芝TPのSAM形式は、PCでそのまま読み込むことが不可能です。MS-DOS形式での出力ルーチン(APP?)をお持ちなら、それも可能ですが。。。ちなみにウチのTPもMS-DOS出力ルーチンは組み込まれていますが、データ量が多いことと、何よりもFDDがお亡くなりになられているので、FDは最初ッから眼中にはありませんでした。。。
おそらく多くのTPユーザーも似たような状況ではないでしょうか?オフィス・サーバーなのに埃で直ぐ壊れちゃうんですよね。。。ウチの場合、障害時の起動はMOから行っていましたので、余計FDを使う機会はありませんでした。

結論から言うとデータの抽出には「TOPLINK/W」を使用します。
念のため説明しますと、PCとLAN接続し、PCをクライアントとして使用するためのソフトです。端末エミュレータ機能(DSF)の他、マイクロメインフレーム機能(MML)およびデータ転送機能(FOLDER)があります。ウチではTP90/F導入時からTOPLINK/Wを使用し、データをPCへCSV形式で転送していましたので、今回も同様に行おうと思いました。

※※※もしFDもTOPLINK/Wも使えない状況なら??※※※
東芝さんがTPのサポートを原則として行わない状況では、かなり深刻であると言えます。一度購入先へ相談されることをお薦めいたします。もしかしたらHDDから抜き出せるかもしれません(未確認です)。MO上のデータもオリジナルらしく、PCで読めますが形式は不明です。FDが生きていてMS-DOS出力が可能なら自力でも可能だと思いますが現実的では無いようにも思います(データ量によりますが)。
東芝さんでは「TP/CARE」というCOBOL85+Javaを使用して従来通り動作できるシステムを出されていますので、導入が前提なら問題解決に向けて最大限の努力をしてくれると思います。私はTP/CAREのデモをしてもらいました。JCLもそのまま使用できますし、SORTのみならずFILMAN等ユーティリティも動作する優れものです。しかしながらプログラムの移行作業が少々煩雑な感じがしたのと、デモ担当者がしきりに「先は無い」を連呼したので導入しませんでした(^^;
ちなみに、TOPLINK/Wは純粋にPC用のソフトですが、端末エミュレート以外の機能(ファイル転送)を使用する場合、TP側にOALINKというAPPが必要になります。つまりTOPLINK/W単体では機能制限となってしまう訳で。。。この辺りの所は東芝さんの販売目的なので理解できますが、TOPLINK/W未導入で、これから移行したいユーザーにとっては頭の痛い所、いえ、腹の立つ所です。APPの提供はもちろん、PCL登録のサポートは絶望的ですので。。。最悪の場合、データの印刷→パンチャーに依頼、しかないように思います。一応、以下の本文が、何らかのヒントになれば幸いに思います。

本題に戻ってTOPLINK/Wでのデータ転送についてです。
当初は従来通りCSVで転送しようと思いました。ここで最初の壁に当りました。ファイル転送機能では項目ごとにパラメタを切らなければならないのですが、上限があります。A、B、C・・・・・と続いてExcel的に数えていくのですが、BLまで、つまり64フィールドしか定義できません。これは困りました(^^;
64フィールドでは足りないレコードがありましたから、TP側で分割処理を作成しなければならないかと考えてみたり、でも結合処理も作らなければならなくなるし、面倒だし。。。と、ここでファイル転送機能にCSV以外の形式もあることに気が付きました。
ASCII(区切記号あり)とASCII(区切機能なし)です。これまで使う機会も必要も無かった(CSV→Access)という運用でしたので、挑戦してみることにしました。大事なのは何でもやってみることですね。
試行錯誤・検証を重ねた結果
ASCII形式で漢字以外は1フィールド(キャラクタ)として定義し、区切記号なしで取り込む
のが正解のようです。区切記号は無い方がPC側での処理が楽だと思います。つまりレコード長そのままで読み込めるからです。無論、区切記号付きでも読み込めますが、
従来使用しているコピー句をそのまま使った方が間違いが少ない
と言うものです。

なぜ漢字フィールドは単一フィールドとして定義するのか?、ゾーン形式ならいざ知らずパック形式はどうするねん?と思われるかと思います。(・・・思わないかな)

・漢字について
TPはJISマシンなので、漢字もJISコードです。しかしながらPC(WINDOWS)はシフトJISなので変換が必要です。流石に自力で変換をする気力も無いですし、折角TOPLINK/Wが変換してくれるのですから、単一フィールドにする方が確実です。

・数値データについて
ゾーン形式はそのまんまなのでキャラクタで良いわけです。
パック形式も符号はPCでも同一
なので実は問題ありません。PC側でそのまま使えます。

蛇足&推測ですが、TPは限りなくPCに近い、もしかしたらPCかもしれない?と、随分前から感じていました。基盤などにもSCSIの表記もありますし、MOもPCに流用できたりします(^^;
恐らくMOやHDDも要件さえ満たせば・・・と考えた事もありますが、確かめてはいません。


と、結論だけ書くとTOPLINK/WでASCII&キャラクタ定義で転送可能と簡単な話ですね。。。
ただタイトルにあるようにβ版としたのは、本当にこれで良いという確信が持てない部分があるからです。それはデータのズレが発生している節があるからです。

実はデータの転送テストの際、別の処理でも試していました。それは昔々東芝のSEさんから内緒?で貰った転送プログラムです。これはデータ(SAM、ISAM)のみならず、ライブラリ中のソースもPCと相互に交換できる物です。このプログラムでは、レコード長を指定してPCに取り込むことができますし、レコード単位にCR(キャリッジ・リターン)を付けて取り込むこともできます。(惜しいのは漢字データの変換ができないことです。。。)
このプログラムで抽出したデータと、TOPLINK/Wで取り込んだデータを比較すると、稀に桁ズレが発生するレコードがあるようなのです。「あるようだ」と言うのは発生頻度が少ない為、検証が難しいのと、テストしているうちにハッキリしなくなった為です(^^;
これはPC側での変換処理(COBOL2002)を幾度と無く作り変えたのと、プログラム移行を急いでいたため途中でOKにしてしまったからです。最終的には再度検証しますが、ほぼ問題はないと考えています。結果については、追々ここで報告いたしますので、今の所はご容赦くださいませ。

余談ですが・・・この転送プログラム、動作環境が今一つ不明(OALINK系が必要かどうか)ですが、TOPLINK/Wがあれば最悪の場合使えるツールかと思います。漢字が変換できませんが、それ以外のデータは救える可能性が残されていますので。無論、最終的には試してみなくてはわかりませんので保障する話ではありません。が、可能性には掛ける価値あり。かと思います。
最終最悪、TOPLINK/Wが無くてもLAN基盤が入っていれば何とかなると思うのですが。。。

次回は「データの移行(β版)その2 PCでの変換」について述べます。

システムの移行手順

実際の移行作業を始めるに当っては、日立SEさんの方でプログラム内容をチェックして貰いました。結論から言うと次のような問題がありました。

・予約語
・システム
・サブルーチン・画面制御

予約語とサブルーチンはある程度予想していましたが、東芝COBOLに比べ、日立COBOLでは提供されているサブルーチン自体が少ない事もあり同機能サブルーチンは存在しません。もっともそれほどシステム・サブルーチンを使用していない事もあり、大きな問題ではありませんでした。ちなみにそのようなシステム・サブルーチンを使用しているかと言うと、

・プリンタの割当・開放
・ISAMレコードの逆読み
・タスク読み込み
・25行目へのメッセージ出力
・日付チェック
などです。

Windowsなオープン・システムではあまり問題にならない・使用しない機能ばかりだと思います。皆さんの中でもっと高度な処理をされているなら問題も大きいかもしれません。が、COBOLの移行を考える皆さんなら、無いものは作る!くらいの気合はお持ちかと思います(^^;
ぶっちゃけ言いますと、一等最初はソフトだけでも売ってくれと日立さんに言った位ですので、最初から無ければ作ろうと考えていました。蓋を開けてみると、それほど大した物は使ってなかったので、運が良かった?と思います。まぁ前任者(ソフトハウス)が、そう凝った物を使わなかったからですけれど。。。

現在は作業を始めて2ヶ月程ですが、システム的な問題はさほど発生していません。
これから先は少々壁が待ち構えていますけど(^^;
データ送受とか自動化とか・・・初めて扱う物ばかりなので大変です。
まぁそれは追々お話していきますが、プログラム的な部分で一番問題になるのは画面周りです。
FORMALからXMAP3への移行が、最も手間の掛かる作業となります。

以上を踏まえ移行手順は次のようになります。

1.データの移行
2.画面の移行
3.プログラム本体の移行
4.単体テスト
5.連動テスト


ちなみに今回の移行は私一人で行っている為、手間が掛かると歩みが遅いという点が辛いですね(+_+)
次回からはデータの移行について簡単に触れた後、画面の移行についてお話します。

元記事2006/12/18 21:08

2007年1月26日金曜日

現構成と新構成


現行システムの構成はこのようになっています。

本社メイン・オフコンと営業所とはISDNによるダイアルアップにて接続しています。ルーター接続している営業所も一部あります。どちらにしても従量課金なので接続はデータの送受信とメンテナンスが必要な時に限定しています。

処理の流れとしては各営業所で入力したデータを本社に送信し、本社にて一括集計を行っています。本社へデータの集約を図っていますので、請求書等資料の印刷には本社へ接続する必要があります。当初は本社集中型とする案もあったのですが、通信費の問題から断念し、このような形になっています。
この辺りの仕掛けは時代ごとに集約型か分散型かを繰り返していますね。それは時代のニーズと言うよりも、通信と機器の発達の度合いによるものかと思います。今の時代はネット経由などで通信コストが安く抑えられますが、安いと通信品質が落ちますからリアルタイム処理となると結局は難しくなります。またレスポンスの問題もありますので、どこで妥協するかがポイントになります。メタフレームも各社から勧められましたが、印刷では遅くなるかも…と言われては使えないですね。対応するプリンタもまだ少ないですから。

私はよく『便利は不便』と言う言葉を使いますし意識します。
安易に便利さを求めても、何かあった時、結局は不便を強いられるのが落ちです。
『誰にとって』『何に対して』『何をもって』便利と言うのか?
使う人にとって、そして、システムにとって、真に便利なものは何か。その点を熟考し、その上で不便の無いようベストを尽くす。それがシステム屋としての勘所ではないかと思います。お金を掛けたから良い物ができる訳でもありませんから、やはり、お金を掛ける前に智恵と手間を掛けなければ良いシステムはできないでしょう。

と言う訳で、新システムの構成は分散型とし、本社サーバーへのデータ集約を自動化する形にしました。
回線はNTTのグループ・アクセスを使用します。分散型にしたのはレスポンスを確保するとともに、回線が落ちても業務が停止しないようにする為です。大都市ならいざ知らず、地方だと高速で安価な回線がありません。光回線も普及にはまだまだ掛かりますから現状ではADSLしかないのですが、これがまた落ちやすくて。。。
また、業務的にもリアルタイムにする必要は無いと判断しました。『リアルタイムに見たい』という要望が無い訳ではありませんが、その為にサーバーを増やしたり何だりと、コストを掛けるのに見合うかどうかです。大仰に『今』の在庫を知りたいと言っても、仕入から出庫まで全てのデータをリアルタイムに入力できないのですから、逆立ちしても『今』を知る事は不可能です。これはハンディターミナルを使用しようと何を導入していようとも「無いデーター」はどうにもなりません。なので24時間フルに繋がっていなくとも、2~3時間、または6時間毎にでもデータを集約できれば良いと判断しました。
日立さんにはJP1という優れたジョブ管理ソフトがあります。色々できるのですが、その中でも基本的な部分であるデータの受け渡し制御ができるのも、日立に決めた理由の一つです。スケジュールに従って、また、ファイルの更新を切っ掛けにして自動転送を掛ける事ができますから、組み方次第でかなりの事が手間要らずにできてしまいます。制御情報データを書き換えると自動的にその内容が転送され、転送された側ではそれを切っ掛けにしてアプリケーションを起動、制御情報を読み込んでデータ抽出。抽出されたら自動的に転送が掛かり、受け取ったらアプリを起動して…一つのアクションから関連する処理を遠隔地を含めて構築できるのは、とても助かります。
データ構成はRDB…と考えていたのですが価格の問題もありましたが、何しろオフコンの耐用年数・保守部品不足の問題から機器の入替を最優先にする必要がありました。その為現行と同じくISAMとし、乗せ変え移行を先に行うこととしました。機能改善・追加を行っている時間がないための措置ですが、ISAMもまだまだ捨てた物ではありません。いえ、遮二無二DB化する必要もありません。何と言っても軽いですからね。ISAMで無理が出てからでもDB化は遅くありません。大事なのはレコード構成ですから。それさえ大丈夫ならDB化も経験上問題ないと思います…たぶん…きっと(^^;
レガシーの良い部分と今時の良い部分を取り入れながらです。と言う訳で、今は東芝→日立への移行作業真っ最中です。専門に移行をやって貰える会社さんもあるようですが、お金も掛かる事ですから、勉強の意味も込めての自社移行です。似たような事を検討している方の役に経てば幸いです。

最後に新システムで使用する日立アプリケーションを書いておきます。
COBOL2002 :言わずと知れたCOBOL
XMAP3     :画面・帳票マップ
ISAM       :ISAM制御※
ISAM/D    :ISAM制御※(サーバー処理用)
JP1        :統合ジョブ制御
※スタンドアロンの場合、ISAM/Dは不用。
 サーバー上のISAMファイルを複数のクライアントから使用する場合には必要。
 つまりISAM/Dが排他制御を行っています。

なぜCOBOLなのか

閑話休題
今の時代になぜCOBOLなのか?
『現行システムがCOBOLだからでしょ』と言ってしまっては身も蓋もありません。でも、大多数の方(特に若い方)はそう思うのではないでしょうか。私自身も前々からVBやRDBを使用して…と考えていた時期もありますし、実際にプロトタイプを作成した事もあります。しかし…個人的にはVBとかCとか嫌いなんですよね~(^^;
どうにも馴染めない、と言うよりもハッキリ言って
低級言語じゃないですか~~~!
言い過ぎでしょうか?
でも思うんです。オブジェクト指向も良いですが、簡単な事をするのに非常に手間が掛かります。まぁ私が勉強不足なのかもしれませんけど、売上入力一つ作るのにもえらく手間の掛かること。機能が多すぎて使いこなせない家電のような感じがありますね。それに資料を残し難いのも良くないですね。確かに資料として出す事はできても、使えるかどうかは別の話なので。。。

私は構造化プログラミングが流行り出した辺りの世代ですので、シンプルな構造が好きですし、部品的な使いまわしもCOBOLの方が直感的に分かり易いと思います。もっとも証券・銀行系とかの大規模システムなら違うかもしれません。潤沢な資金と人材を確保できる業界なら時代の最先端を突っ走れます。でも私の会社は普通の会社ですし、販売・在庫管理が基幹処理ですからね。潤沢な資金もありませんし使う気もありません。なので凝った仕掛けは必要ない、足りない分は智恵と手間で乗り切る、というのが基本です。

とにもかくにも高級言語として昔から親しまれ、機能を拡充してきたCOBOL。まだまだ捨てた物ではありません。むしろ進化しています。WEBにも対応していますからPearlなんか使うよりも、きっと素敵で楽に構築できると思います。うちでは使いませんけど(^^;
「今時COBOLなんて」ではなく、「今だからCOBOL」です。
そして年代を問わず分かり易い言語ですから、将来に渡って引き継ぐにはベストな言語です。
バージョンアップを頻繁に行っている言語では、将来が不安ですからね。。。
元記事:2006/12/14


日立COBOL2002に至る道

これまでの経緯と、日立COBOLに至った経緯です。

私の会社では長年に渡って東芝のオフコンを使用しており、現システムは私が入社する頃にリプレースされました。各地にある営業所にも東芝のオフコンが導入されていましたので、本社システムの更新を受け営業所も段階的にリプレースを重ねてきましたが、2004年をもって東芝さんがオフコン事業から撤退したのを受け、オープン・システムへの移行を行うことになりました。
東芝さんは勿論の事、あちこちのシステムを見て回ったのですが、皆一様にパッケージ・ソフトを勧めてきます。確かに稼動までの期間を考えるとパッケージ・ソフトは強いのですが、肝心の中身が・・・ 現行システムはCOBOLで作られており、かなりカスタマイズされていることに加え、機能を追加したいことがパッケージでは上手くカスタマイズできないからでした。まぁ8割はOKなんですけどね。。。 残り2割で引っ掛かったのと、8割の割には費用が掛かりすぎることから、COBOLの移行を検討しました。
COBOLを扱っているメーカーは色々ありますし、費用だけで言ったら安く抑えられであろう物もあります。
しかしながらシステム全体を考えた時に、営業所とのデータ交換・連動、保守に疑問と言うか不安が多いのも事実です。 FTPや市販のリモート・ソフトを使う方法もありましたが、いかんせん、肝心のPCを操作する人のスキルの問題もあります。 全員が全員、PCが得意でも好きでもない訳ですから、何か作業する度にソフトを起動する…と言うのは。。。
第一そういうのは私が一番嫌いなのでボツです。(^^;
事務担当者は事務処理に専念すれば良く、それ以外の…機械周りの事など、極力知らなくて良いのですから。

技術は人の為にあるもの

そう考えます。

昔のPCのように、コマンドを入力しなければ動かないのは仕方ないにしても、このようなブログやHPを作成するのに、タグを打ち込んで作成しなければならないのは、面倒臭い話です。デザインなんかコマンドでするもんじゃ無いですからね~。3DCGを作成するのに座標をポチポチ入れていく位なら、いれなくて良いソフトが出るまで手は出したくない…やりたいけどやらない。そう言う人なんですね。私って。PCに限らず、意外と多いんですよ。製作者の押し付けって。
話が横道に逸れましたが、そう言った諸々の事を踏まえ、トータルに構築でき、かつ国際規格最新版であるCOBOL2002を事業として取組んでいる日立さんがとても気に入ったのでした☆

ちなみに。

他にも某大手メーカー&ソフト・メーカーさん、地元企業も含めてですが、問合せして打合せをしたっきり来なくなる方が多かったですね。見積りも出さずに消えていくなんて「やる気あんのか~!」って言いたくなっちゃいます。いいんですけどね。来たく無いなら。。。せめて見積り位だすとか、熱意を見せて欲しいと。値段だけじゃないのにね。
長くなってしまいました。

経緯をあれこれ書いていても仕方が無いので、次回はシステム構成の話をしたいと思います。

注:私は日立の回し者ではありません(^^;
私と似たような環境におられる方、レガシーからオープンに移行を検討されている方にとって、何かしらの役に立てば幸いです。
元記事:2006/12/13 21:19

はじめまして

インターネット歴は10年以上ですが、ネット上で何かを発信するのは今回が初めてです。
なので見難いかと思いますが、よしなに。。。
そんな私がブログを立ち上げようと思ったのは、システムの移行に当ってネットで色々調べたにも関わらず、全く見当たらなかったからです。もっとも技術系でコア?な内容ですから仕方ないのでしょうけれど、このブログが誰かの役に立てばと思っています。
(私のメモ的な意味~もありますが(^^;
なので本当に興味のある方だけしかご覧にならないかと思いますが、愚痴も交えながら時間の許す限り更新していきたいと思います。
これまでの経過を記しておきます。
2005年 春~ システム選定開始
2006年 6月 導入決定
2006年 7月 移行方法検討&操作方法等学習(日立SEさんと)
2006年10月 画面移行開始(FORMAL → XMAP3)
2006年11月 プログラム移行開始

一応。。。私がどこの誰か、会社名も伏せさせていただきます。悪しからずです。
またコメント付けていただいても、お返事できないかもです。
(コメントが付けば、ですが(^^;
たぶん…きっと…お返事できないと思います。。。あぁ時間が欲しい。。。
これまでの経過も次回より簡単にまとめて載せたいと思います。
※元記事:2006/12/12 22:56