パスワードを忘れた? アカウント作成
8218 story

レガシーを追放せよ! 167

ストーリー by yoosee
これも時代の流れか 部門より

von_yosukeyan曰く、"日経コンピューター5月23日号の記事(閲覧には無料の会員登録が必要)によると、独立行政法人日本貿易保険(NEXI)は、COBOLベースで稼働している基幹系システムをJavaで再開発する予定だ。

現行システムは1992年に稼働したもので、250万ステップのCOBOLコードがNECのACOS-6メインフレーム上で動作していた。しかし長年の機能追加などで、コード量は現在550万ステップまで肥大化し、保守性が悪化していた。
今回、NEXIが日本IBMに発注したシステムは、このうち保険業務システムと呼ばれる基幹系システムの核となる部分で、400万ステップのCOBOLコードをJavaに置き換える。興味深い点は、このプロジェクトは自民党のe-Japan重点計画特命委員会によるレガシーシステム改革指針に基づき刷新が決定された第一号システムで、ハードウェア調達とソフトウェア調達が分離して行われる。IBMが受注したソフトウェア部分は、ハードウェアやミドルウェアに固有の依存性を極力排除することが要件とされる。

ハードウェア入札は今後行われる予定だが、この新入札方式が公共系システムのコスト削減と、レガシーシステム追放に繋がるかどうか注目されるだろう。なお、欧米でも同様のレガシーシステム追放政策が進められている(過去の記事)"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 別にCOBOLが (スコア:4, すばらしい洞察)

    by Anonymous Coward on 2004年05月26日 11時27分 (#555978)
    絶対的に悪いってわけではないでしょう?
    JAVAにすれば絶対的に保守性がよくなるとか、安全だとかって確信(自信?)
    あるの?
    悪いのはシステム/開発管理をいいかげんにしてきた事が悪いわけで、言語
    やシステムを換えたからどうなるというのでもないだろうに。根本から変え
    ないと結局JAVAでスパゲティボール作るだけになるんではないか。
    非常に胡散臭い話に思える。
    • Re:別にCOBOLが (スコア:4, 興味深い)

      by Anonymous Coward on 2004年05月26日 11時38分 (#555994)
      COBOLからJAVAに変えるって事は、開発手法そのものも変わるよね。
      でも、受け入れ側が工程管理する際、オブジェクト手法の開発手法が
      理解出来なくって、二重線表や二重ドキュメントを要求してきて、現場が
      混乱するんじゃないかと。

      #実際某所の期間システム開発で、言語は新旧ともにCOBOLだった
      #けど、開発手法を変えた(ウォーターフォールモデルから構造化
      #手法)時、そういう線表とドキュメントを要求されて、無茶苦茶
      #になった経験あります。;-(
      親コメント
    • Re:別にCOBOLが (スコア:3, すばらしい洞察)

      by goro.q (6593) on 2004年05月26日 12時01分 (#556013)
      絶対的に悪いってんじゃなくてもさ、開発/保守要員の確保のしや
      すさとか、開発環境の充実度とか周辺が違ってきたりするじゃん?
      そういうのも考えるとここらで移行しとくかって事じゃないのかな?
      まあ私の妄想ではあるんですが。
      --

      (I can't get no) satisfaction
      親コメント
      • これからこの先、COBOLの大規模システムの保守や改修を行えるだけの技術者を確保する事が困難になる.....という前提はあるのでしょうね。
        親コメント
        • 2007年問題 (スコア:2, 参考になる)

          by gedo (7079) on 2004年05月26日 12時46分 (#556061) 日記
          これからこの先、COBOLの大規模システムの保守や改修を行えるだけの技術者を確保する事が困難になる.....という前提はあるのでしょうね。
          いわゆる2007年問題と一部では騒がれているようです。
          中小企業IT110番 [it-planning.jp]の解説がわかりやすそうですが、COBOLはもう既に若手がぜんぜん参入しないので、技術者の高齢化どころか、COBOLベースのシステムの基本部分を作った初期の人に至っては、2007年頃には定年退職で引退する人すら出始めるのだそうです。
          で、誰もメンテできなくなる前に今時の言語で再構築ということをやり始めるところが出ているようです。
          親コメント
    • Re:別にCOBOLが (スコア:2, すばらしい洞察)

      by L.star (163) on 2004年05月26日 11時45分 (#556003) ホームページ
      絶対的に悪いってわけではないでしょう?
      はい。Javaと比べて、相対的に悪いだけです。
      親コメント
      • by cassandro (6035) on 2004年05月26日 12時47分 (#556064)
        > はい。Javaと比べて、相対的に悪いだけです。

         それはどうでしょうね。特に最近のJava屋さんは、クソみたいなコードを量産するレベルの人間が多いですから。保守性最悪、機能に比べて巨大なコード、そういうJavaプロジェクトが多かったりします。

         私見とすれば、Javaの開発効率はCなどと比べて決して良いとは言えません。ぼく的な体験とすれば、クソではないコードで同等な機能を実装する場合、Javaのコード量はCの1.5から4倍ですね。Cと比較するとJavaは冗長な、持って回ったコーディングを強いられる場合が多いと思います。エラーハンドリングがexception主体である事も、利点よりもコード量を大増加させる欠点の方がより強く出るでしょう。

         もちろん、cobolの開発効率はお世辞にも良いとは言えず、Javaの方がマシは言えると思います。ですが、Javaを選択する事は少なくとも開発効率の面からすれば、最適解では無いでしょう。良くないものは一層良くないものよりもマシ、これが「Javaと比べて、相対的に悪いだけです」の真意だとすれば、それは御意!でしょう。

         もっともCが大規模開発に向くかと言えば、それは多分に否でしょうね。言語仕様が柔らか過ぎるC、あるいはJavaは、コードのレビューに十分な時間を取らないと危険だと考えています。PL/Iなぞが向いているのではないでしょうか。

         Javaで開発を行う事に大きなメリットがあるとすれば、それはOOP的な開発手法を取り入れる事でしょう。という事は、開発対象の機能を実装する場合にその下支えとなるクラスライブラリが揃っていて、かつそのクラスライブラリは相当に信頼出来る、が大前提となるでしょう。NEXIのプロジェクトがどういうものはは知りませんが、今から下支えのクラスライブラリを作って行きます、なら、担当者には相当な能力が要求されますし、大変な過酷労働を強いられる事になるのではと、思います。

         まあしかし、以上の事はプロジェクト立案段階では基本的な事ですが、プロジェクト推進段階では些末な事と言えるでしょう。テクニカルな事よりも管理運営手法の方が遥かに重要なのですから。JavaだからOK、cobolだからNG、と言うPMが居れば、そいつは首にすべきですね。
        親コメント
        • Re:別にCOBOLが (スコア:3, 興味深い)

          by L.star (163) on 2004年05月26日 13時25分 (#556095) ホームページ
          それはどうでしょうね。特に最近のJava屋さんは、クソみたいなコードを量産するレベルの人間が多いですから。
          内容については同意ですが、それは「Java屋」と「COBOL屋」の比較であって、JavaとCOBOLの比較ではないです。
          クソではないコードで同等な機能を実装する場合、Javaのコード量はCの1.5から4倍ですね。
          ほう、私と正反対ですね。Javaで5000行クラスのアプリケーションを書くのを考えると、Cのほうが4倍ぐらい大きくなる印象です。主にクラスライブラリの充実度の違いがうれしい結果に結びつく事が多いです。例えば、現在Java Servletで書かれたアプリケーションをCに移植する事を考えてみてください。

          もちろん、CとJavaでは得意分野が違うので、Cのほうが優れている部分もあると思います。

          親コメント
    • by nekopon (1483) on 2004年05月26日 11時28分 (#555981) 日記

      Javaの上でCOBOLのインタ(ry

      # おもろないね。

      親コメント
    • Re:別にCOBOLが (スコア:1, 参考になる)

      by Anonymous Coward on 2004年05月26日 12時15分 (#556029)
      例えばJavaだと、

      ・浮動小数点の取り扱いの違いを意識しなくて済む
      ・モニタなどの言語レベルでの排他制御などがついている

      というような利点があります。僕は面倒なセマフォなんぞに
      戻りたくないです。それに、

      ・COBOL人員はコスト高

      になっていくのは、時代の背景からして明らかです。

      別にうさんくさい話でもなんでもないと思います。

      技術者(またはプログラマ)の心得として、現場からの叫びとして
      なら同意します。:-)
      親コメント
      • Re:別にCOBOLが (スコア:3, すばらしい洞察)

        by nekopon (1483) on 2004年05月26日 12時31分 (#556047) 日記
        浮動小数点の取り扱いの違いを意識しなくてすむ

        うそつけ。

        親コメント
      • 例えばJavaだと、

        ・ まともに金銭計算に使える数値型が用意されていない。
        ・ クラスに対して演算子を定義できない。

        という欠点があります。
        ここをどう対処する予定なのかなぁと........
        親コメント
      • by Anonymous Coward on 2004年05月26日 12時53分 (#556067)

        ・浮動小数点の取り扱いの違いを意識しなくて済む

        とくに通貨を取り扱う場合においては、
        ・普通に10進演算が使えて、言語レベルで数値計算の精度が保証されている
        というCOBOLの利点のほうが重要ではないかと思いますが。

        COBOLも最新の標準仕様では、オブジェクト指向を取り入れているようなんですよね。クラスやらメソッドやら継承やら、可能になっているらしい。
        オープン系COBOLでは、GUIビルダーやIDEなどとの連携も可能だったりするようだし。

        Java一辺倒、Javaマンセー、では、足元をすくわれるかもよ。
        親コメント
        • >COBOLも最新の標準仕様では、オブジェクト指向を取り入れているようなんですよね。クラスやらメソッドやら継承やら、可能になっているらしい。
          >オープン系COBOLでは、GUIビルダーやIDEなどとの連携も可能だったりするようだし。

          えーとその場合、COBOLでオブジェクト指向を前提とした
          開発をするんですよね?
          ・・・・COBOLでするメリットは?
          # 結局新しいパラダイムを使ってシステムを作る場合
          # 従来のCOBOL技術者が皆オブジェクト指向を理解しなきゃだめなんですよね・・・?
          親コメント
        • 個人的には、COBOL で MOVE 文や ADD 文で計算するのが燃えます。

          ENVIRONMENT DIVISION.
          OBJECT-COMPUTER.
          本当は COBOL 使ったこと無い人.
          親コメント
  • 非効率さの認識 (スコア:2, 参考になる)

    by Anonymous Coward on 2004年05月26日 11時33分 (#555987)
    積極的に外部から「プロデューサー」の様な権限のある人を作る感じで呼んで、悪い点を指摘改善してもらう様な感じでやってもらいたいですねえ。

    どうも省庁の方ってコスト意識が低くて(そもそもコストなんて無いと言われたらそれまでなんだが)、判子一個押してもらいに遠くの省庁まで半日出張して、その後終電後まで残業してみたりとあまり良い印象が無いです。
    そういう方々に何が問題なのか認識できるのでしょうか。中の個々人は変だなと思ってたって、結果としてやり方が変わらないならねえ。

    レガシー追放たって今ある業務をそのままjavaにするならあまり意味は無くて、業務の無駄を分析して(業務自体の廃棄とかも含めて)そのやり方を改善できるあたりに意味がある様な気がしています。
    あまりに巨大だと分析…っても鎖にがんじがらめってのも分かるのだけど。
    • Re:非効率さの認識 (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2004年05月26日 12時30分 (#556046)
      効率的にすると、お役所仕事って言葉の定義が揺らぐので、できません!!。
      っていうのはおいといて、お役所で「プロデューサー」って認めてもらえる人って、どうせ現場の苦労をしらない大学教授かなんかでしょ。そのこと自体が非効率だったりして。
      親コメント
  • 昔の計算機は能力もそれほどではなかったので、そこで動くシステムもその制限に縛られたものになっていたわけですよね。 保守なんてあまり考えないで開発されたコードもいっぱいあるだろうし。

    そういう部分に手をつけるのがこわかったので、増築に増築を重ねて、老舗の温泉旅館のごとく、旧館新館本館別館アネックス本家新家分家みたいな複雑怪奇な状態になってしまって、どうしよう!?と悩んでいるのが現状では?

    ということで、COBOLかJavaかという言語レベルでの議論は本質的なものじゃないでしょうね。

    複雑怪奇なシステムにあわせた人間の業務をみなおす部分から手をつけるのが正解だと思うけど、これは人間が痛みを伴う作業だし、保守的な組織だと業務見直しには相当の抵抗が出てくるだろうから、現状の仕様維持で終了でしょうね。システムの保守性はなにも改善されない、に一票。
    --
    ---- 末は社長か懲戒免職 なかむらまさよし
    • COBOLだろうがJavaだろうが、システムのライフサイクルが短くなってきてるような気がするんです、最近(汗
      やっぱ、
      ・GUI要望が高度化した
      ・他所とのデータ連係やオペレーション連係が爆発的に増えた
      ・要員の流動性が上がりシステム習熟度が下がった
      ・実現方法の選択肢が増えすぎてニーズにあった人材が集まらない
      ・そもそもPG担当者のレベルが下がった(汗
      ・バブル期に比べるとコストにシビアになった
      ・丸投げ保守が敬遠されメンテナンスフリーを要求されるようになった
      などなどが原因で、保守を考えない「作りっぱなし」コードが増えたり、つぎはぎの頻度が上がっているのでしょう。間違いない。

      まぁよっぽどの事情がない限り、3年後から1~2年かけて再構築する「5年周期」くらいが実情にあってると思います。
      # 90年代だと10年経過で3~5年かけて再構築ってのが主流だったかも
      --
      ---- 何ぃ!ザシャー
      親コメント
  • by hash (95) on 2004年05月26日 14時26分 (#556121) 日記

    COBOLだからレガシー、Javaだから非レガシー、なのではなくて、事実上ハードとソフトが一体で調達され、運用開始後も特定ベンダー1社にずっと依存してしまっている形態が「レガシー」だと考えられているのではないでしょうか。

    だから、ハードとソフトの分離調達が要件とされているのでしょう。

  • このシステムって (スコア:2, すばらしい洞察)

    by ncube2 (2864) on 2004年05月26日 14時31分 (#556125)
    「大量の帳票を出力しなきゃなんねえ」ってことはないのかな?
    短時間で大量に複写紙の帳票出力するためだけに、結局メインフレームが残ったりして。
    • by von_yosukeyan (3718) on 2004年05月26日 17時54分 (#556280) ホームページ 日記
      貿易保険とはちょっと違うのですが(貿易保険も通関手続きに必要な要素だけど)、行政系システムのレガシー放棄の理由に運用コストの低減や調達の透明性確保の他に、他システムとの連携と、決済業務の効率化の二つもあります

      たとえば、通関業務などは典型的なのですが、現状のシステムは他システムとの連携が前提となっていないため、通関手続きでは大量の帳票出力が必要で、手続きを行う側からしても、大量の書類を、各行政庁の窓口に直接出向いて提出しなければなりません。もうひとつの決済も、手数料や税の支払いなどを、印紙や金融機関の窓口で書面で行う必要があるなど、非効率性が高い分野でもあります

      こういった非効率性は、航空貨物や海上コンテナなど、世界的に見れば24時間化されている通関手続きが、日本だけ古いままになっているというところがあって、日本の国際競争力を低下させる要因にもなっています。決済に関しては、今年から稼働しているマルチペイメントネットワーク [jampa.gr.jp](ペイジー)の活用により、インターネットバンキングやATMなどによる支払い基盤を整備している最中で、電子申請に必要な公的認証制度の整備も進んでいます

      ただ、こういった基盤整備に手間取っているところと、既存の書類での申請システムも残しておく必要があるので、平行して古いシステムを稼働させたり、新しい基盤に旧来のシステムを移植するなどの過渡的な処置はある程度あると思います
      親コメント
  • 伝えてある…? (スコア:2, すばらしい洞察)

    by argon (3541) on 2004年05月26日 21時20分 (#556369) 日記
    >システム室長は、「アプリケーションは、OSやミドルウエア、ハードウエアの
    >構成にかかわらず稼働するようベンダーには伝えてある」と語る。

    ここで吹き出してしまった私は未熟者なのでしょう。
  • by TxG (7966) on 2004年05月26日 12時06分 (#556016)
    インプレッサで!
  • by patagon (1453) on 2004年05月26日 12時17分 (#556033) 日記
    結局、○割、あるいはほとんどMicro Focus [microfocus.co.jp]のCOBOLへの移行だったりして。

    おまいら、汎用機じゃなくサーバっていいたいだけちゃうんかと小一時間
    • by Pen2 (18210) on 2004年05月26日 12時40分 (#556053)
      最近のCOBOLはJava連携とか、ブラウザ内スクリプトとか
      何でもあるから、書き換えの圧力は少ないと思っていたが?

      ツールでCOBOL→Java変換で、見た目はJavaで中身は
      COBOLなら安上がりにハードをできるかも。
      親コメント
  • by Anonymous Coward on 2004年05月26日 12時33分 (#556049)
    某銀行のシステム移行で、アセンブラから第六世代言語とかいうやつにする時に、偉い人が「1ステップづつ書き直せばバグが出ない!」とのたまわっておりました。 で、偉い人には逆らえないようで、アドレスを直接いじるモジュールがあったりしたのを見たことがあります。 結果は予想通り処理時間が..... 守秘義務があるような気もするのでAC
  • by Anonymous Coward on 2004年05月26日 12時55分 (#556069)
    というと、その昔「動かないコンピュータ」か「誤算の検証」で取り上げられてた、九州方面の某病院でのSmalltalkのシステムが頭に浮かぶんですが…
typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...