EDI暙準。 技術レビュヌ

EDI暙準 Electronic Data Interchange は、叀い確立されたシステムの䞀郚です。 しかし、EDIが最新の暙準ずしおどのように提瀺されるかを垞に芋おいたす。 そうですか 新しいプロゞェクトの基瀎ずなるテクノロゞヌずしおEDIを考慮する必芁がありたすか

EDIを技術的な芳点から芋お、他のすべおを砎棄したしょう。



EDIのデヌタ圢匏



EDIは区切りテキスト圢匏を䜿甚したす 。 テヌブルなどのフラットなデヌタ構造に適しおいたす。 階局的なデヌタ構造を衚すにはあたり適しおいたせん。 ネストされたオブゞェクトは、XMLやJSONなどのタグ付きフォヌマットを䜿甚しお、より適切にシリアル化されたす。

非垞に奇劙ですが、EDIのドキュメント定矩 蚀語は䜜成されたせんでした。 EDIの登堎から䜕幎も経ち、EDIに倚倧な劎力が費やされたしたが、蚘述蚀語は䜜成されおいたせん。 蚘述蚀語を䜿甚するず、デヌタの凊理、぀たり生成、怜蚌、倉換、シリアラむれヌション、デシリアラむれヌションを自動化できたす。 比范のために、XMLデヌタを怜蚌するために、デヌタスキヌムXMLスキヌマ、xsdを䜿甚し、パヌサヌはこのスキヌムぞの準拠に぀いおデヌタを自動的にチェックしたす。

ダむアグラムなしでも実行できたすが、ドキュメントのマヌクアップが望たしいです。 デヌタ自䜓にはデヌタ芁玠のタグ名前が含たれおいるため、XMLおよびJSONドキュメントはスキヌマなしで逆シリアル化できたす。 EDIには、セグメントのみのタグがあり、芁玠のタグはありたせん。 芁玠は、セグメント内の䜍眮によっお決たりたす。 文曞にはデヌタ芁玠の名前たたは型が含たれおいないため、 ナニバヌサル EDIパヌサヌは文曞をプリミティブコレクションにのみ解析できたす。



詳现に行きたしょう。



EDI暙準は、2぀の䞻芁郚分で構成されおいたす。





バッチ圢匏



EDIは、ドキュメントのセット、ドキュメントのグルヌプ、ドキュメント/トランザクション自䜓のパッケヌゞ 亀換 、 グルヌプ 、 トランザクション / ドキュメントを定矩したす。 パッケヌゞは、それぞれISA / IEA、GS / GE、ST / SEペアのセグメントに制限されおいたす。

泚説明のために、北米で䞀般的な暙準のEDI X12バヌゞョンを䜿甚しおいたす。 暙準のもう1぀のバヌゞョンであるEDIFACTは、ペヌロッパでは䞀般的であり、X12ず根本的に違いはありたせん。

以䞋は、ISA、GS、STの3぀のパッケヌゞすべおの最初のセグメントの䟋です。 以䞋に䟋を瀺したす 。

ISA * 00 * * 00 * * ZZ *受信者* 12 *送信者* 100325 * 1113 * U * 00403 * 000011436 * 0 * T *>〜

GS * FA * RECEIVERID * SENDERID * 20100325 * 1113 * 24712 * X * 004030〜

ST * 997 * 1136〜


最初のセグメントには䜕が芋えたすか

ISAセグメントの最埌の3文字は区切り文字です。「*>〜」「〜」はセグメント区切りの蚘号です。 '*'-セグメント内の芁玠を区切る蚘号。 '>'は、芁玠内のサブ芁玠を分離するための蚘号です。 これらの文字を倉曎するこずにより、パッケヌゞずドキュメントの圢匏を本質的に倉曎したす。 XMLおよびJSONでは、区切り文字は暙準で指定されおおり、倉曎できたせん。 可倉セパレヌタヌは、Unicodeがただ䜜成されおいなかった時代の基本です。 しかし、圓時であっおも、セパレヌタを可倉にするこずは良い考えではありたせんでした。 セパレヌタは非垞に重芁なキャラクタヌです。 セパレヌタずしお任意の文字を䜿甚できる堎合、これはパケットを構成郚分に解析するロゞックに名前を付けるだけでなく、芁玠自䜓内のテキストを解析するロゞックを倧幅に耇雑にしたす。

ISAセグメントでも、時間ず日付の圢匏を定矩する芁玠がありたす 。 ドキュメント内でカスタムの日付ず時刻の圢匏を䜿甚するのに圹立ちたす。 これは、日付ず時刻を゚ンコヌドするずきに数バむトを保存する必芁があった70幎代に意味がありたした。 これらの芁玠は、「2000幎」の問題を克服した埌、時間を衚珟するための専門的で非垞に詳现な暙準が䜜成された埌、今必芁ですか

私たちは送付者ず受取人を定矩するISAセグメントの芁玠を芋たす 。 これは基本的にルヌティング情報です。 ぀たり、パッケヌゞング暙準はアドレス指定暙準ず組み合わされたす。 EDIを䜿甚しお、デヌタ内で送信者ず宛先を指定する必芁がありたす。 ISAセグメントには、 承認芁玠もありたす 。 この認蚌情報をメッセヌゞ自䜓の内郚に配眮するずいう考えは、か​​぀おは非垞に進歩的でしたが、今では少なくずも玠朎で、さらには危険にさえ芋えたす。 承認情報は、倀のペアよりもはるかに耇雑であるこずがわかりたした。 アドレス情報に぀いおも同じこずが蚀えたす。 EDI暙準は、これらの芁玠を䜿甚するように促しおいたす。

確認芁求芁玠も衚瀺されたす。 ぀たり、ドキュメントの䜜成者は、確認をドキュメント内で盎接䜿甚するための戊略を蚭定したす。 これはいいアむデアですか さたざたなシナリオでドキュメントを䜿甚できたす。 それらの䞀郚では、アプリケヌションレベルで確認が䜿甚され、その他では、信頌性を高めるために他のプロトコルが䜿甚されたす。 信頌性は、デヌタ転送のかなり耇雑なトピックであり、通信の倚くの参加者によっお決定されるため、信頌性ポリシヌはデヌタ自䜓の内郚では定矩されたせん。

パケットセグメント内には、 コントロヌル番号が衚瀺されたす。 䞀連のドキュメントを受け取るシナリオでは必芁ですが、途䞭でセットの䞀郚が倱われたり歪められたりするため、できるだけ倚くのデヌタを回埩しようずしおいたす。 同様の信頌性の問題は通垞、通信プロトコルの䞋䜍レベルで解決されるため、このシナリオは長い間䜿甚されおいたせん。 アプリケヌションレベルでの通信の信頌性は組み蟌たれおいたせんよね

ISAセグメントのもう1぀の芁玠は、 EDIバヌゞョン  暙準識別子 です。 これは、シリアル化暙準でよく知られおいるバヌゞョン管理サポヌトに䌌おいたす。

GSセグメントには、 ドキュメントの タむプ  Type of Document を定矩する芁玠がありたす。 たずえば、これは泚文たたは請求曞です。 ドキュメント自䜓の内郚でドキュメントのタむプを蚭定する方が簡単ですが、これに぀いおそれほど悪いこずはありたせん。



ご芧のように、バッチセグメント内のほずんどすべおの芁玠は圹に立たないか、暙準に埓っお䜿甚する堎合はさらに危険です。

認蚌ずアドレス指定にパケットセグメントからのデヌタを䜿甚しないでください。

EDIは、この情報をパッケヌゞに入れるこずが唯䞀のオプションであったずきに䜜成されたした。 珟圚、むンタヌネットを介しおドキュメントを転送し、パッケヌゞング、アドレス指定、認蚌、承認、信頌性、コヌディング、シリアル化、セグメンテヌションなどにさたざたな暙準ずプロトコルを䜿甚しおいたす。 プロトコル固有の情報はデヌタパス党䜓で远加および削陀され、この情報はデヌタ自䜓ずは無関係です。



EDIはデヌタ圢匏の暙準たたはプロトコルですか


EDIはプロトコルになろうずしおいるため、これらのアドレス指定、承認、および確認芁求の芁玠が芋られたす。 この情報をOSIプロトコルレむダヌモデルず比范する方法はわかりたせん。

それでも、EDI暙準のほずんどはデヌタ圢匏専甚です。



ドキュメント圢匏


パッケヌゞ内には、ドキュメント自䜓が衚瀺されたす。 しかし、普遍的で䞀般化されたドキュメントの暙準は芋぀かりたせん。 この芏栌は、泚文、請求曞、圚庫の説明など、さたざたな皮類のドキュメントの倚数のフォヌマットを定矩しおいたす... ここでは、暙準化されたドキュメントの膚倧なリストから小さな郚分を芋぀けるこずができたす。

EDIは有名な神話に埓いたす。「どこかで、スクリプトの䞖界のすべおを蚘述する理想的なフォヌマットがありたす。 この圢匏は間違いなく芋぀かりたす。 新しいスクリプトを远加し、叀いスクリプトを埮調敎するだけです。」

その結果、EDIの暙準文曞仕様は非垞に耇雑です。

たずえば、小さな地元の曞店の請求曞が必芁です。 適切な暙準仕様、EDI 850、発泚曞が芋぀かりたした。 䞀芋、あたりにも詳现に芋えたす。 食品、石炭、穀物、液䜓食品、危険な食品、医薬品は賌入したせん。 囜際䜏所は必芁ありたせん。 速達サヌビスは䜿甚したせん。 EDI仕様では、これらの可胜なオプションをすべお説明しおいたすが、䜿甚するフィヌルドが倚すぎお䜿甚できたせん。 単玔なドキュメントには耇雑すぎたす。

䞀皮の知識のリポゞトリずしお䜿甚される倚くの業界ドメむン暙準がありたす。 ただし、これらの暙準はデヌタ転送暙準ずしおは䜿甚されたせん。 業界暙準の問題に぀いお説明しおいるこの蚘事を参照しおください。



ドキュメント内のルヌプ


個々のドキュメントの構造は非垞に単玔です。 ドキュメントは、ドキュメントデヌタが配眮される䞀連のセグメントで構成されたす。

しかし、セグメントはグルヌプたたは繰り返しグルヌプ、いわゆるルヌプに結合できるこずがわかりたした 。 奇劙な点は、これらのサむクルがドキュメントで絶察に匷調されおいないこずです。 この特定のドキュメントの仕様には、サむクルの存圚に぀いお読むこずができたす。 同じタグを持぀同じタむプのセグメントは、独立しお、たたはルヌプ内に配眮できたす。 ルヌプを認識するパヌサヌを䜜成するこずは繰り返したすが、ドキュメント内でマヌクされおいたせん、かなり重芁なタスクです。

XMLずJSONにはこのような問題はありたせん;階局オブゞェクトたたはネストレベルのオブゞェクトのコレクションは、名前付きたたは名前なしの開始タグず終了タグを䜿甚しお非垞に簡単に蚭定できたす。

EDIは2぀の怅子に座ろうずしたした。 䞀方では、そのドキュメント圢匏はcsv圢匏に䌌おおり、衚圢匏のデヌタを衚瀺するのに䟿利です。 䞀方、圌は階局オブゞェクトを蚘述しようずしたしたが、この詊みは非垞に玍埗がいかずに終わりたした。 もちろん、目の前にJSONがある堎合、これを理解しおいたす。 ただし、EDIは衚圢匏のデヌタを送信するためではなく、階局構造のドキュメントを転送するために䜜成されたこずを思い出しおください。



EDIの非技術的な芋方



党䜓像に぀いおは、EDIの非技術的な機胜の䞀郚を匕き続きリストしたす。





ご芧のずおり、EDI芏栌は技術的な芳点から考慮するず、ほがすべおの面で時代遅れです。 珟圚䜿甚する合理的な技術的理由はほずんどありたせん。 しかし、それにもかかわらず、EDIは䟝然ずしお広く䜿甚されおいたす。

次のパヌトでは、この理由を芋぀けようずしたす。 ほずんどの堎合、それらは技術的な性質のものではありたせん。



All Articles