JP2016051235A - マイグレーション支援装置 - Google Patents

マイグレーション支援装置 Download PDF

Info

Publication number
JP2016051235A
JP2016051235A JP2014174745A JP2014174745A JP2016051235A JP 2016051235 A JP2016051235 A JP 2016051235A JP 2014174745 A JP2014174745 A JP 2014174745A JP 2014174745 A JP2014174745 A JP 2014174745A JP 2016051235 A JP2016051235 A JP 2016051235A
Authority
JP
Japan
Prior art keywords
character
program
code
data
width
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014174745A
Other languages
English (en)
Other versions
JP6491438B2 (ja
JP2016051235A5 (ja
Inventor
孝介 坂井
Kosuke Sakai
孝介 坂井
佳範 城代
Yoshinori JODAI
佳範 城代
厚志 粟河
Atsushi Awakawa
厚志 粟河
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Social Information Services Ltd
Original Assignee
Hitachi Government and Public Sector System Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Government and Public Sector System Engineering Ltd filed Critical Hitachi Government and Public Sector System Engineering Ltd
Priority to JP2014174745A priority Critical patent/JP6491438B2/ja
Priority to PCT/JP2015/074401 priority patent/WO2016031959A1/ja
Priority to CN201580046561.8A priority patent/CN106663020B/zh
Publication of JP2016051235A publication Critical patent/JP2016051235A/ja
Publication of JP2016051235A5 publication Critical patent/JP2016051235A5/ja
Application granted granted Critical
Publication of JP6491438B2 publication Critical patent/JP6491438B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】異なる文字コード体系への切り替えが伴うマイグレーションにおいて、マイグレーションの対象となるプログラムの変換を容易にする。【解決手段】作業用PC1(マイグレーション支援装置)は、EBCDIK+KEISコードからUTF−8コードに変換する文字コード変換部11と、入力プログラム22を出力プログラム32に変換するプログラム変換部12と、UTF−8コードが割り当てられた文字データを出力プログラム32に読み込ませることで、読み込まれた文字データについて、出力プログラム32が指定するメモリ上のエリアの数を、文字データに割り当てられていたEBCDIK+KEISコードを表現するバイト列のバイト数と同じに定める交換情報Eを生成する交換情報生成部13と、交換情報Eにより定められた数からなるエリアに、読み込まれた文字データに割り当てられた1つのUTF−8コードを格納するエリア格納部14と、を備える。【選択図】図1

Description

本発明は、いわゆるレガシーマイグレーション(以下、単に、「マイグレーション」と称する場合がある)の技術に関し、特に、文字コード体系の切り替えを伴うマイグレーションの技術に関する。
近年、これまで現行コンピュータで稼働してきた業務システム(レガシーシステム)を新規コンピュータに移行させるためのマイグレーションサービスを望む企業、自治体などが多い。マイグレーションの形態としては、例えば、汎用系のホストコンピュータ(または、オフコン)から、WINDOWS(登録商標)、UNIX(登録商標)、LINUX(登録商標)などのOS(Operating System)が稼働するオープン系のサーバコンピュータへのマイグレーション、という形態がある。なお、マイグレーションに関する技術は、数多く公開されており、例えば、特許文献1に公開されている。
しかし、所定の文字コード体系(例:EBCDIK(Extended Binary Coded Decimal Interchange Kana Code)、KEIS(Kanji processing Extended Information System)、JIS8、SJIS(Shift JIS)。以下、「旧文字コード体系」と称する場合がある)でデータを取り扱っているホストコンピュータが、その文字コード体系にて標準では登録されていない外字を数多く登録していた場合(ホストコンピュータの外字エリアは9024文字分)がある。この場合、小さな外字エリアしか提供できないOS(WINDOWSが提供する外字エリアは1880文字分)が稼働するサーバコンピュータへのマイグレーションは実現できない。
また、近年では、使用できる文字数が限られている現行コンピュータに対して、新規コンピュータでは、使用できる文字数を増やしてほしい、という要望が多くの企業、自治体などから出されている。具体的には、国際化に伴い、漢字だけでなく簡体字やハングル文字などの外国の文字も表現できるようにして欲しい、個人を正しく表記するために旧漢字も表現できるようにして欲しい、などの要望がある。
そこで、これらの事情に対する対応策として、UTF(Unicode Transformation Format)−8、UTF−16など、といったより大規模な文字コード体系を、新文字コード体系として取り扱う新規コンピュータへのマイグレーションが考えられる。
マイグレーションでは、主に、(1)業務システム上の既存のデータの移行、および、(2)そのようなデータにアクセスする、業務システム上で動作する既存のプログラムの移行、がなされる。よって、移行する既存の文字データは、新文字コード体系に対応するように文字コードを変換する必要がある。また、既存のプログラム(例えば、COBOL言語で記述されたプログラム)は、文字コードを変換した文字データを読み込むことができるように変換する必要がある。
しかし、従来技術では、文字データに割り当てられた文字コードの変換と比較して、プログラムの変換は、非常に煩雑かつ困難である、という問題点があった。この問題点は、旧文字コード体系と新文字コード体系との組み合わせによっては、同じ文字であっても、その文字を表現するバイト列のバイト数が両文字コード体系間で相違すること、既存のプログラムが文字のバイト列を格納するために指定するメモリ上のエリアの長さが固定長であること、に起因する。プログラムの変換の際は、これらの事情を考慮してプログラムの記述内容を適宜修正する必要がある(修正をしないと、文字データの溢れ、位置ずれなどが生じ、プログラムは、目的とする文字データとは異なる文字データを取得してしまう)。しかし、エリアに格納される文字のバイト列によって修正パターンが異なるため、修正は非常に煩雑かつ困難な作業となる。特許文献1の技術を含めた従来技術において、このような作業に対する改善策は何ら存在しない。
特許第4405571号公報
そこで、本発明は、このような事情に鑑みてなされたものであり、異なる文字コード体系への切り替えが伴うマイグレーションにおいて、マイグレーションの対象となるプログラムの変換を容易にすることを目的とする。
前記目的を達成するために、本発明は、
第1のコンピュータから第2のコンピュータへのマイグレーションを支援するマイグレーション支援装置であって、
前記第1のコンピュータが有する第1の文書ファイル中の文字データに割り当てられた第1の文字コードを、記憶部が有する文字コード変換表を参照して、前記第2のコンピュータが有する第2の文書ファイル中の文字データに割り当てられた第2の文字コードに変換する文字コード変換部と、
前記第1のコンピュータが有する、前記第1の文書ファイルを処理するための第1のプログラムを、前記第2のコンピュータが有する、前記第2の文書ファイルを処理するための第2のプログラムに変換するプログラム変換部と、
前記第2の文字コードが割り当てられた文字データを前記第2のプログラムに読み込ませることで、前記読み込まれた文字データについて、前記第2のプログラムが指定するメモリ上のエリアの数を、前記文字データに割り当てられていた第1の文字コードを表現するバイト列のバイト数と同じに定める交換情報を生成する交換情報生成部と、
前記交換情報により定められた数からなる前記エリアに、前記読み込まれた文字データに割り当てられた1つの前記第2の文字コードを格納するエリア格納部と、を備える、
ことを特徴とする。
その他の手段については後記する。
レガシーとしての第1のプログラムは、文字データのサイズ(項目の長さ)をバイト列のバイト数として扱い、バイト数と同じ数のエリアをメモリ上に指定して文字データのバイト列を格納していた。つまり、従来のように、第1のプログラムは、メモリ上に指定するエリアを、1バイトのデータを格納するためのエリアとし、バイト数単位で文字データを処理していた。また、第1のプログラムのソースコードの記述内容はその処理に対応したものとなっていた。
これに対し、変換した第2のプログラムは、文字コードの変換によって、1文字を表現するバイト列のバイト数が異なった文字データを処理する際、交換情報を参照することで、第1のプログラムが使用したエリアの数と同じ数のエリアを使用することができる。つまり、第2のプログラムは、メモリ上に指定するエリアを、1文字のデータを格納するための1または複数のエリアとし、文字数単位で文字データを処理することができる。よって、第2のプログラムで組まれたロジックを第1のプログラムで組まれたロジックと同じにすることができ、第2のプログラムのソースコードの記述内容のうち、ロジックに関する部分(例えば、COBOL言語における桁数)を修正する必要はない。
したがって、異なる文字コード体系への切り替えが伴うマイグレーションにおいて、マイグレーションの対象となるプログラムの変換を容易にすることができる。
本発明によれば、異なる文字コード体系への切り替えが伴うマイグレーションにおいて、マイグレーションの対象となるプログラムの変換を容易にすることができる。
本実施形態のマイグレーション支援装置の機能構成を示す図である。 交換情報のデータ構造を示す図である。 本実施形態のマイグレーション支援装置の処理を示すフローチャートである。 比較例として、EBCDIK+KEISコードからUTF−8コードへの変換に合わせてCOBOL言語のプログラムを変換する際、ソースコードの記述内容の修正を必要とすることを説明するための図である。 本実施例として、EBCDIK+KEISコードからUTF−8コードへの変換に合わせてCOBOL言語のプログラムを変換する際、ソースコードの記述内容の修正を不要とすることを説明するための図である。
図1に示すように、作業用PC1は、現行コンピュータ2から新規コンピュータ3へのマイグレーションを担当する作業員が操作するコンピュータであって、本実施形態のマイグレーション支援装置である。作業用PC1は、現行コンピュータ2から入力ファイル21および入力プログラム22を取得し、所定の変換(詳細は後記する)をした後、出力ファイル31および出力プログラム32として新規コンピュータ3に出力する。
現行コンピュータ2(第1のコンピュータ)は、汎用系のホストコンピュータである。
新規コンピュータ3(第2のコンピュータ)は、オープン系のサーバコンピュータである。
入力ファイル21(第1の文書ファイル)は、文字データを含む文書ファイルであって、現行コンピュータ2のレガシーである。入力ファイル21中の文字データは、現行コンピュータ2が取り扱っている文字コード体系に従う。現行コンピュータ2が取り扱っている文字コード体系は、半角英数文字、半角記号、および半角カナ文字の文字データについてはEBCDIKであり、全角文字の文字データについてはKEISである。本実施形態では、入力ファイル21中の文字データに割り当てられた文字コードを「EBCDIK+KEISコード」と称する場合がある。
なお、EBCDIKは、半角英数文字、半角記号、および半角カナ文字については、1文字を1バイトで表現する(バイト数=1)。KEISは、全角文字については、1文字を2バイトで表現する(バイト数=2)。
入力プログラム22(第1のプログラム)は、入力ファイル21を処理するためのプログラムであって、現行コンピュータ2のレガシーである。入力プログラム22は、COBOL言語で記述されており、その記述内容は、EBCDIK兼KEISからなる文字コード体系に即している。
出力ファイル31(第2の文書ファイル)は、文字データを含む文書ファイルである。出力ファイル31中の文字データは、新規コンピュータ3が取り扱っている文字コード体系に従う。新規コンピュータ3が取り扱っている文字コード体系は、半角英数文字、半角記号、半角カナ文字、および全角文字のいずれの文字の文字データについてもUTF−8である。本実施形態では、出力ファイル31中の文字データに割り当てられた文字コードを「UTF−8コード」と称する場合がある。
なお、UTF−8は、半角英数文字および半角記号については、1文字を1バイトで表現し(バイト数=1)、半角カナ文字および全角文字については、1文字を3バイトで表現する(バイト数=3)。
出力プログラム32(第2のプログラム)は、出力ファイル31を処理するためのプログラムである。本実施形態では、出力プログラム32は、COBOL言語で記述されているとする。しかし、周知の形式的な記述を施すことで、出力プログラム32を、JAVA(登録商標)言語で記述することができる。
なお、作業用PC1は、入力部、出力部、制御部、および記憶部といったハードウェアを含む。例えば、制御部がCPU(Central Processing Unit)から構成される場合、その制御部を含むコンピュータによる情報処理は、CPUによるプログラム実行処理で実現する。また、そのコンピュータが含む記憶部は、CPUが指令し、そのコンピュータの機能を実現するためのプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。前記プログラムは、記録媒体に記録したり、ネットワークを経由したりすることで提供される。
図1に示すように、作業用PC1は、文字コード変換部11と、プログラム変換部12と、交換情報生成部13と、エリア格納部14といった機能部を有し、文字コード変換表Tと、交換情報Eとを記憶部に記憶している。
文字コード変換部11は、入力ファイル21中の文字データに割り当てられたEBCDIK+KEISコード(第1の文字コード)を、文字コード変換表Tを参照して、出力ファイル31中の文字データに割り当てられたUTF−8コード(第2の文字コード)に変換する。
プログラム変換部12は、文字コード変換部11による文字コードの変換に対応するように、入力プログラム22を出力プログラム32に変換する。プログラム変換部12は、出力プログラム32の記述言語を、入力プログラム22の記述言語と同じにするように変換することもできるし(例:COBOL→COBOL)、異なるように変換することもできる(例:COBOL→JAVA)。
交換情報生成部13は、UTF−8コードが割り当てられた文字データを出力プログラム32に読み込ませることで、読み込まれた文字データについて、出力プログラム32が指定するメモリ上のエリアの数を、文字データに割り当てられていたEBCDIK+KEISコードを表現するバイト列のバイト数と同じに定める交換情報Eを生成する。
出力プログラム32が読み込む、UTF−8コードが割り当てられた文字データは、例えば、出力ファイル31から抽出した文字データである。
エリア格納部14は、交換情報Eにより定められた数からなる前記エリアに、出力プログラム32に読み込まれた文字データに割り当てられた1つのUTF−8コードを格納する。
文字コード変換表Tは、所定の文字集合(例えば、現行コンピュータ2が取り扱うEBCDIK兼KEISからなる文字コード体系にて規定されている文字の文字集合)に含まれる文字について、当該文字に割り当てられている、EBCDIK+KEISコードとUTF−8コードとを対応付けている。対応付けの詳細は周知であり、説明は省略する。
交換情報生成部13が生成する交換情報Eは、UTF−8コードが割り当てられた文字データごとに、当該文字データのサイズ(項目の長さ)であるバイト数と、出力プログラム32が指定するメモリ上のエリアの数とを対応付けている。
図2に示すように、さまざまな文字データに割り当てられるUTF−8コードは、半角英数記号の文字(半角英数文字+半角記号)を表す文字コード、半角カナの文字を表す文字コード、全角文字を表す文字コードに分類することができる。分類された文字コードに対して、上記した「バイト数」および「エリアの数」が決定される。
半角英数記号の文字を表す文字コードに対しては、先述の通り、UTF−8は対応する1文字を1バイトで表現するので、「バイト数」は「1」となる。また、先述の通り、EBCDIKは、半角英数文字および半角記号については、1文字を1バイトで表現するので、交換情報生成部13の機能により、「エリアの数」は「1」となる。
半角カナの文字を表す文字コードに対しては、先述の通り、UTF−8は対応する1文字を3バイトで表現するので、「バイト数」は「3」となる。また、先述の通り、EBCDIKは、半角カナについては、1文字を1バイトで表現するので、交換情報生成部13の機能により、「エリアの数」は「1」となる。
全角文字を表す文字コードに対しては、先述の通り、UTF−8は対応する1文字を3バイトで表現するので、「バイト数」は「3」となる。また、先述の通り、KEISは、全角文字については、1文字を2バイトで表現するので、交換情報生成部13の機能により、「エリアの数」は「2」となる。
交換情報Eの内容は、現行コンピュータ2で取り扱う文字コード体系と、新規コンピュータ3で取り扱う文字コード体系との組み合わせによって決まる。
≪処理≫
本実施形態の処理について説明する。この処理の主体は、作業用PC1の制御部であるが、説明の便宜上、「制御部」という語は省略する。
図3に示すように、作業用PC1は、現行コンピュータ2から新規コンピュータ3へのマイグレーションを行うにあたり、ステップS1から処理を開始する。
ステップS1において、作業用PC1は、現行コンピュータ2から入力ファイル21および入力プログラム22を取得する。ステップS1の後、ステップS2に進む。
ステップS2において、作業用PC1は、文字コード変換部11によって、取得した入力ファイル21中の文字データに対して、文字コードを、EBCDIK+KEISコードからUTF−8コードに変換し、出力ファイル31を生成する。ステップS2の後、ステップS3に進む。
ステップS3において、作業用PC1は、プログラム変換部12によって、取得した入力プログラム22を出力プログラム32に変換する。ステップS3の後、ステップS4に進む。
ステップS4において、作業用PC1は、UTF−8コードが割り当てられた文字データを出力プログラム32で読み込む。ステップS4の後、ステップS5に進む。
ステップS5において、作業用PC1は、交換情報生成部13によって、ステップS4にて読み込まれた文字データについて、交換情報Eを生成する。ステップS5の後、ステップS6に進む。
ステップS6において、作業用PC1は、エリア格納部14によって、交換情報Eが定めた数からなるエリア(出力プログラム32が指定するメモリ上のエリア)に、対応するUTF−8コード、つまり、ステップS4にて読み込まれた文字データに割り当てられたUTF−8コードを格納する。ステップS6の後、図3の処理を終了する。
作業用PC1にて生成された出力ファイル31、出力プログラム32、および交換情報Eは、新規コンピュータ3に出力される。ここで、新規コンピュータ3にて、所定の業務処理を実行するために、出力プログラム32が出力ファイル31を開く場合を考える。この場合、出力プログラム32は、交換情報Eを参照して、出力プログラム32が指定するメモリ上のエリアに格納されているUTF−8コードに、出力プログラム32が定める順番でアクセスする。
入力プログラム22は、入力ファイル21中の文字データのサイズ(項目の長さ)をバイト列のバイト数として扱い、バイト数と同じ数のエリアをメモリ上に指定して文字データのバイト列を格納していた。つまり、従来のように、現行コンピュータ2にて、入力プログラム22は、メモリ上に指定するエリアを、1バイトのデータを格納するためのエリアとし、バイト数単位で入力ファイル21中の文字データを処理することで、実質的に文字データを1文字ずつ順番に処理していた。
EBCDIK+KEISコードからUTF−8コードに文字コードが変換されたことでバイト列のバイト数が変更した文字データに対して、交換情報Eは、出力プログラム32がメモリ上に指定するエリアの数を、入力プログラム22がメモリ上に指定していたエリアの数と同じにすることを可能にする。例えば、EBCDIK+KEISコードからUTF−8コードに変換されると、バイト列のバイト数が「2」から「3」に変更される全角文字の文字データに対して、出力プログラム32は、交換情報Eを参照することで、メモリ上に指定するエリアの数を、従来技術のように「3」ではなく、「2」にすることができる。エリア格納部14は、(連続する)2つ分のエリアに当該全角文字に割り当てられた1つのUTF−8コードを格納する。
よって、出力プログラム32は、メモリ上に指定するエリアを、1バイトのデータを格納するためのエリアではなく、1文字のデータを格納するためのエリアとすることができ、文字数単位で出力ファイル31中の文字データを処理することができる。その結果、入力プログラム22が入力ファイル21中の文字データを1文字ずつ順番に処理するのと同様に、新規コンピュータ3にて、出力プログラム32は出力ファイル31中の文字データを1文字ずつ順番に処理することができる。つまり、文字データのサイズが異なる文字コードの変換を伴うマイグレーションを行ったとしても、出力プログラム32で組まれたロジックを入力ファイル21で組まれたロジックと同じままにすることができる。マイグレーションを行う作業者は、出力プログラム32のソースコードの記述内容のうち、ロジックに関する部分を修正する必要はない。
なお、作業用PC1は、UTF−8コードが割り当てられた文字データのバイト列を1バイトずつ格納する規定個数分(例えば、全角文字であれば3個分)のエリア(1バイトのデータを格納するためのエリア)を、出力プログラム32がメモリ上に別途指定するように制御することができる。そして、作業用PC1は、エリア格納部14が1つのUTF−8コードを格納する1つまたは2つ分のエリアと、前記規定個数分のエリアとを紐づけるように制御する。よって、新規コンピュータ2にて、出力プログラム32が、エリア格納部14が格納したUTF−8コードにアクセスするとき、前記紐づけられたエリアに格納されているバイト列にアクセスすることで、対象となる文字データを処理することができる。
≪具体例≫
図4、図5を参照して、文字コード体系の切り替えを伴うマイグレーションによってプログラムを変換することの具体例を説明する。本具体例では、変換前プログラム(入力プログラム22に相当)も変換後プログラム(出力プログラム32に相当)もCOBOL言語で記述されている。変換前プログラムが扱う文字コードはEBCDIK+KEISコードであり、変換後プログラムが扱う文字コードはUTF−8コードである。
図4には、従来技術としての比較例を示す。図4(a)の上部には、変換前プログラムのソースコードのうちデータ部ワーキング節の記述例が示されている。集団項目DATA‐Aのなかに、DATA‐A1およびDATA‐A2という変数(項目)がこの順番で宣言されている。
DATA‐A1において、「PIC X」は、1文字1バイトのデータ(EBCDIK)格納エリアをメモリ上に確保することを表しており、「(03)」は、このエリアが3つあることを表している(桁数は3)。よって、DATA‐A1に(半角文字)3文字分のデータを入力できる。
DATA‐A2において、「PIC N」は、1文字2バイトのデータ(KEIS)格納エリアをメモリ上に確保することを表しており、「(03)」は、このエリアが3つあることを表している(桁数は3)。よって、DATA‐A2に(全角文字)3文字分のデータを入力できる。
なお、COBOL言語は、変数を固定長で宣言する。
図4(a)の下部には、上記記述例を具現化したエリアの模式図が示されている。1つのエリアを1つのボックスで表わすと、このボックスは、1バイトのデータ格納エリアを表している。この模式図によれば、変換前プログラムは、DATA‐A1に対して3バイト分のエリアをメモリ上に指定することで、DATA‐A1に3文字分のデータを入力できる。また、DATA‐A2に対して6バイト(2バイト×3)分のエリアをメモリ上に指定することで、DATA‐A2に3文字分のデータを入力できる。このように、変換前プログラムは、従来のように、文字データのバイト列が格納されるエリアを1バイトごとに指定しており、バイト数単位で文字データを処理する(左から順番にボックス内のバイト列に1つずつアクセスする)。
ここで、マイグレーションにて文字コードを変換し、プログラムも変換する場合、1文字を表現するバイト列のバイト数が異なった文字データを間違いなく処理するために(目的とした文字データを確実に読み出すために)、従来技術では、変換後プログラムのロジックを手作業で修正する必要があった。
図4(b)の上部には、変換後プログラムのソースコードのうちデータ部ワーキング節の記述例が示されている。プログラムの変換前後でロジックを同じにするためには、図4(a)の記述例に対して図中の下線部で示したような記述を追加する修正が必要である。
前記修正として、DATA‐A1については、桁数を3から9に変更している。このように桁数を変更させる理由は、EBCDIKが半角カナ1文字を1バイトで表現するのに対し、UTF−8は半角カナ1文字を3バイトで表現するため、DATA‐A1に半角カナ3文字分のバイト列が入力された場合に対応できるように(データの溢れを防ぐように)、DATA‐A1に9バイト分のエリア(3バイト×3文字)を持たせるためである。
また、前記修正として、DATA‐A2については、桁数を3から5に変更している。このように桁数を変更させる理由は、KEISが全角文字1文字を2バイトで表現するのに対し、UTF−8は全角文字1文字を3バイトで表現するため、DATA‐A2に全角文字3文字のバイト列が入力された場合に対応できるように、DATA‐A2に少なくとも9バイト分のエリア(3バイト×3文字)を持たせるためである。図4(b)の例では、DATA‐A2の桁数を5にすることで、DATA‐A2に10バイト分のエリアを持たせている。
図4(b)の下部には、上記修正がなされた記述例を具現化したエリアの模式図が示されている。図4(b)に示すボックスは、図4(a)に示すボックス同様、1バイトのデータ格納エリアを表している。前記修正の結果、ボックスの数を増やすことで、DATA‐A1に3文字分のデータを入力できること、および、DATA‐A2に3文字分のデータを入力できること、という変換前プログラムの特性が変換後プログラムにおいても保持される。ただ、このようなボックスを増やすように、プログラムに組まれたロジックを修正することは、プログラム中のすべての変数に対して行う必要があるので、多大な作業量を必要とする。
図5には、本実施例を示す。図5(a)は、図4(a)と同じである。つまり、変数DATA‐A1には3文字分のデータを入力でき、変数DATA‐A2には3文字分のデータを入力できる。
図5(b)の上部には、変換後プログラムのソースコードのうちデータ部ワーキング節の記述例が示されている。本実施例にてプログラムを変換する場合、すでに説明した交換情報Eが用いられる。
すでに説明したように、交換情報Eによって、変換後プログラムがメモリ上に指定するエリアは、1バイトのデータを格納するためのエリアではなく、1文字のデータを格納するためのエリアとして機能する。このことは、図5(b)の下部に示すように、1つのボックスが、1つのエリアを半角英数記号カナ文字1文字のデータ格納エリアとして表すことと同義である。ここで、「半角英数記号カナ文字」という語は、半角英数文字、半角記号、および半角カナ文字をまとめた語である。半角英数記号カナ文字1文字のデータ格納エリアは、2つ並べると全角文字1文字のデータ格納エリアを表すことができる。
したがって、図5(b)の記述例において、DATA‐A1の「PIC X(03)」は、半角英数記号カナ文字1文字のデータ(UTF−8)格納エリアをメモリ上に3つ確保することを表すことができる。このことは、図4(b)のように桁数を増やさなくても(ロジックを修正しなくても)、変数DATA‐A1には3文字分のデータ(UTF−8コードが割り当てられた文字データ)を入力できることを意味する。
また、DATA‐A2の「PIC N(03)」は、全角文字1文字のデータ(UTF−8)格納エリアをメモリ上に3つ確保することを表すことができる。このことは、図4(b)のように桁数を増やさなくても(ロジックを修正しなくても)、変数DATA‐A2には3文字分のデータ(UTF−8コードが割り当てられた文字データ)を入力できることを意味する。
すでに説明したように、1つまたは2つの半角英数記号カナ文字1文字のデータ格納エリアには、1つのUTF−8コードが格納される。よって、所定の業務処理の実行の際、変換後プログラムは、エリアに格納されたUTF−8コードに所定の順番でアクセスすれば、文字数単位で文字データを処理することができる。
このように、交換情報Eを用いることで、変換後プログラムがメモリ上に指定するエリアの取り扱いを変えることで、プログラムに組まれたロジックを修正する、といった多大な作業量を無くすことができる。
≪まとめ≫
本実施形態によれば、変換した出力プログラム32は、文字コードの変換によって、1文字を表現するバイト列のバイト数が異なった文字データを処理する際、交換情報Eを参照することで、入力プログラム32が使用したエリアの数と同じ数のエリアを使用することができる。つまり、出力プログラム32は、メモリ上に指定するエリアを、1文字のデータを格納するための1または複数のエリアとし、文字数単位で文字データを処理することができる。よって、出力プログラム32で組まれたロジックを入力プログラム32で組まれたロジックと同じにすることができ、出力プログラム32のソースコードの記述内容のうち、ロジックに関する部分を修正する必要はない。
したがって、異なる文字コード体系への切り替えが伴うマイグレーションにおいて、マイグレーションの対象となるプログラムの変換を容易にすることができる。
≪その他≫
本実施形態では、EBCDIKおよびKEISを用いた文字コード体系から、UTF−8を用いた文字コード体系への切り替えが伴うマイグレーションについて説明した。しかし、JIS8およびSJISを用いた文字コード体系から、UTF−8を用いた文字コード体系への切り替えが伴うマイグレーションについても本発明を適用できる。
なお、JIS8は、半角英数文字、半角記号、および半角カナ文字については、1文字を1バイトで表現する(バイト数=1)。SJISは、全角文字については、1文字を2バイトで表現する(バイト数=2)。
また、本実施形態では、エリア格納部14が、出力プログラム32が指定するメモリ上のエリアにUTF−8コードを格納していた。しかし、UTF−8コードではなく、該当文字データを識別できる任意の形式のデータを格納することも可能である。
また、本実施形態では、交換情報生成部13が交換情報Eを生成する際、出力プログラム32が読み込む、UTF−8コードが割り当てられた文字データは、例えば、出力ファイル31から抽出した文字データとした。しかし、例えば、作業用PC1が、所定の文字集合(例えば、UTF−8を取り扱うオープン系サーバコンピュータへのマイグレーションの場合、現存するすべての文字からなる文字集合)に含まれるすべての文字について、交換情報Eを生成するために、UTF−8コードが割り当てられた文字データを外部から事前に取得しておき、取得した文字データを出力プログラム32に読み込ませてもよい。
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
1 作業用PC(マイグレーション支援装置)
11 文字コード変換部
12 プログラム変換部
13 交換情報生成部
14 エリア格納部
2 現行コンピュータ(第1のコンピュータ)
21 入力ファイル(第1の文書ファイル)
22 入力プログラム(第1のプログラム)
3 新規コンピュータ(第2のコンピュータ)
31 出力ファイル(第2の文書ファイル)
32 出力プログラム(第2のプログラム)
T 文字コード変換表
E 交換情報

Claims (3)

  1. 第1のコンピュータから第2のコンピュータへのマイグレーションを支援するマイグレーション支援装置であって、
    前記第1のコンピュータが有する第1の文書ファイル中の文字データに割り当てられた第1の文字コードを、記憶部が有する文字コード変換表を参照して、前記第2のコンピュータが有する第2の文書ファイル中の文字データに割り当てられた第2の文字コードに変換する文字コード変換部と、
    前記第1のコンピュータが有する、前記第1の文書ファイルを処理するための第1のプログラムを、前記第2のコンピュータが有する、前記第2の文書ファイルを処理するための第2のプログラムに変換するプログラム変換部と、
    前記第2の文字コードが割り当てられた文字データを前記第2のプログラムに読み込ませることで、前記読み込まれた文字データについて、前記第2のプログラムが指定するメモリ上のエリアの数を、前記文字データに割り当てられていた第1の文字コードを表現するバイト列のバイト数と同じに定める交換情報を生成する交換情報生成部と、
    前記交換情報により定められた数からなる前記エリアに、前記読み込まれた文字データに割り当てられた1つの前記第2の文字コードを格納するエリア格納部と、を備える、
    ことを特徴とするマイグレーション支援装置。
  2. 前記第1の文字コードを規定する文字コード体系は、半角英数文字、半角記号、および半角カナ文字に対する文字コードについてはEBCDIK(Extended Binary Coded Decimal Interchange Kana Code)とし、全角文字についてはKEIS(Kanji processing Extended Information System)とし、前記第2の文字コードを規定する文字コード体系はUTF(Unicode Transformation Format)−8とし、
    前記文字データが半角英数文字、半角記号、または半角カナ文字の文字データである場合には、前記交換情報により定められた、前記エリアの数は1であり、
    前記文字データが全角文字の文字データである場合には、前記交換情報により定められた、前記エリアの数は2である、
    ことを特徴とする請求項1に記載のマイグレーション支援装置。
  3. 前記第1の文字コードを規定する文字コード体系は、半角英数文字、半角記号、および半角カナ文字に対する文字コードについてはJIS8とし、全角文字についてはSJIS(Shift JIS)とし、前記第2の文字コードを規定する文字コード体系はUTF−8とし、
    前記文字データが半角英数文字、半角記号、または半角カナ文字の文字データである場合には、前記交換情報により定められた、前記エリアの数は1であり、
    前記文字データが全角文字の文字データである場合には、前記交換情報により定められた、前記エリアの数は2である、
    ことを特徴とする請求項1に記載のマイグレーション支援装置。
JP2014174745A 2014-08-29 2014-08-29 マイグレーション支援装置 Active JP6491438B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014174745A JP6491438B2 (ja) 2014-08-29 2014-08-29 マイグレーション支援装置
PCT/JP2015/074401 WO2016031959A1 (ja) 2014-08-29 2015-08-28 マイグレーション支援装置
CN201580046561.8A CN106663020B (zh) 2014-08-29 2015-08-28 迁移支持装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014174745A JP6491438B2 (ja) 2014-08-29 2014-08-29 マイグレーション支援装置

Publications (3)

Publication Number Publication Date
JP2016051235A true JP2016051235A (ja) 2016-04-11
JP2016051235A5 JP2016051235A5 (ja) 2017-09-28
JP6491438B2 JP6491438B2 (ja) 2019-03-27

Family

ID=55399842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014174745A Active JP6491438B2 (ja) 2014-08-29 2014-08-29 マイグレーション支援装置

Country Status (3)

Country Link
JP (1) JP6491438B2 (ja)
CN (1) CN106663020B (ja)
WO (1) WO2016031959A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6720993B2 (ja) * 2018-03-07 2020-07-08 オムロン株式会社 サポート装置およびサポートプログラム
CN117270961B (zh) * 2023-11-21 2024-04-12 武汉蜂鸟龙腾软件有限公司 一种Linux环境下MFC字符资源的解析和加载方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348453A (ja) * 1993-06-11 1994-12-22 Nec Corp データコンバージョンプログラム自動生成方式
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
JP2010224656A (ja) * 2009-03-19 2010-10-07 Ns Solutions Corp ソースコード生成装置、プログラム及びソースコード生成方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900700973A (ko) * 1987-12-11 1990-08-17 시우 창 로 문자인식장치
US5309358A (en) * 1992-02-18 1994-05-03 International Business Machines Corporation Method for interchange code conversion of multi-byte character string characters
JPH11203279A (ja) * 1998-01-19 1999-07-30 Toshiba Corp かな漢字変換装置、かな漢字変換方法、及び記憶媒体
JP4136066B2 (ja) * 1998-05-11 2008-08-20 パイオニア株式会社 文書データ作成装置及び文字表示装置
JP2000105765A (ja) * 1998-09-28 2000-04-11 Toshiba Corp データ変換装置
JP4776050B2 (ja) * 1999-07-13 2011-09-21 ソニー株式会社 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
JP3917343B2 (ja) * 2000-02-25 2007-05-23 株式会社東芝 マルチプラットフォーム環境における文字コード変換方式および文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体
CN101079023B (zh) * 2003-01-24 2012-03-21 株式会社理光 字符串处理装置、字符串处理方法和成像装置
JP4072691B2 (ja) * 2004-07-15 2008-04-09 ソニー株式会社 文字情報変換装置および文字情報変換方法
JP4890551B2 (ja) * 2006-08-10 2012-03-07 シャープ株式会社 文字変換装置、文字変換装置の制御方法
CN104412255A (zh) * 2012-06-29 2015-03-11 株式会社战略经营研究所 文本处理***、电子文本、文本处理方法以及程序

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348453A (ja) * 1993-06-11 1994-12-22 Nec Corp データコンバージョンプログラム自動生成方式
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
JP2010224656A (ja) * 2009-03-19 2010-10-07 Ns Solutions Corp ソースコード生成装置、プログラム及びソースコード生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COBOL2002ユーザーズガイド 解説・手引書, vol. 第3版(3020-3-D42-10), JPN6019004258, September 2004 (2004-09-01), JP, pages p.686−687 *
安室浩和: "APIから知るWindowsの仕組み:第16回 Unicodeを利用して複数の言語に対応する", 日経ソフトウエア, vol. 第6巻,第10号(通巻65号), JPN6018025920, 24 September 2003 (2003-09-24), JP, pages p.160−168 *

Also Published As

Publication number Publication date
JP6491438B2 (ja) 2019-03-27
CN106663020A (zh) 2017-05-10
CN106663020B (zh) 2020-05-01
WO2016031959A1 (ja) 2016-03-03

Similar Documents

Publication Publication Date Title
US9857949B2 (en) Generating a context for translating strings based on associated application source code and markup
CN109799970A (zh) 一种资源引用关系生成方法及***
CN102741811A (zh) 改善基于模板的JavaScript小部件的性能
JP6491438B2 (ja) マイグレーション支援装置
CN102063415B (zh) 向pdf文件内嵌单字节字体的方法及其***
US11372742B1 (en) Mining software specification from online documentation
Liu et al. MatrixConverter: Facilitating construction of phenomic character matrices
US9921858B2 (en) Apparatus and method for realizing runtime system for programming language
EP3920022A1 (en) Information processing device, method, and program
JP2011154495A (ja) 文字コード変換装置、文字コード変換方法、および文字コード変換プログラム
JP2018037031A (ja) データ移行プログラム作成システム及びデータ移行プログラム作成用プログラム
US20150278089A1 (en) Execution control method and execution control apparatus
US9792197B2 (en) Apparatus and program
CN111279350B (zh) 用于在服务管理应用接口中提供全球化特征的***和方法
JP2010282248A (ja) プログラム言語解析実行プログラム
WO2016121509A1 (ja) 情報処理装置、および、情報処理方法
Feiler et al. Looking Inside a Document
Sharan et al. Character Encodings
Olsson et al. String
CN114416035A (zh) 一种数据处理方法、装置、电子设备及存储介质
Paranj et al. Character-to-Number Conversion
Horton et al. Basic Ideas
Kelly et al. How BlitzMax Works
Sinha et al. General Syntaxes
Olsson et al. Strings

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190301

R150 Certificate of patent or registration of utility model

Ref document number: 6491438

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250