KR100250120B1 - 전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법 - Google Patents

전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법 Download PDF

Info

Publication number
KR100250120B1
KR100250120B1 KR1019970077356A KR19970077356A KR100250120B1 KR 100250120 B1 KR100250120 B1 KR 100250120B1 KR 1019970077356 A KR1019970077356 A KR 1019970077356A KR 19970077356 A KR19970077356 A KR 19970077356A KR 100250120 B1 KR100250120 B1 KR 100250120B1
Authority
KR
South Korea
Prior art keywords
loop
segment
electronic document
value
data structure
Prior art date
Application number
KR1019970077356A
Other languages
English (en)
Other versions
KR19990057306A (ko
Inventor
염용섭
Original Assignee
이계철
한국전기통신공사
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 이계철, 한국전기통신공사 filed Critical 이계철
Priority to KR1019970077356A priority Critical patent/KR100250120B1/ko
Publication of KR19990057306A publication Critical patent/KR19990057306A/ko
Application granted granted Critical
Publication of KR100250120B1 publication Critical patent/KR100250120B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Communication Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

1. 청구 범위에 기재된 발명이 속한 기술분야
전자문서 교환시스템에서의 세그먼트 반복사용에 대한 유효성 검증방법.
2. 발명이 해결하려고 하는 기술적 과제
송수신되는 전자문서가 송수자가 합의한 표준전자문서 구조를 준수하는지를 검사할 수 있도록 하고자 함.
3. 발명의 해결방법의 요지
전자문서 구조 정보를 전자문서 데이타 스트럭쳐에 세그먼트 및 루프들의 상관관계 정보를 루프데이타 스트럭쳐에 각각 맵핑시키고, 세그먼트의 단위사용횟수가 세그먼트 반복횟수를 초과하였으면 세그먼트 반복초과사용에 따른 오류처리하고 초과하지 않았으면 세그먼트가 루프속에 포함된 세그먼트인지 조사하며 포함된 세그먼트가 아니면 루프반복횟수 값을 초기화하고 포함된 세그먼트이면 루프의 현재루핑횟수가 루프반복사용 상한값을 초과하였으면 루프반복사용에 따른 사용오류를 처리하고 초과하지 않았으면 세그먼트의 총 누적사용횟수 값이 반복사용 한계값을 초과하였는지 조사하여 초과하였으면 세그먼트 상한초과사용에 따른 오류를 처리한다.
4. 발명의 중요한 용도
전자문서교환시스템에 이용됨.

Description

전자문서 교환시스템에서의 세그먼트 반복사용에 대한 유효성 검증방법
본 발명은 전자문서교환시스템(EDI : Electronic Data Interchange)에서의 국제표준 타입의 전자문서들의 구성요소인 세그먼트(Segment)들의 반복 사용에 대한 유효성 검증방법에 관한 것이다.
여기서, 유효성 검증이라 함은, 전자문서 교환시스템에서 문서 변환부(Translator)가 표준 전자문서(Interchange)를 생성하는 송신변환 과정과, 표준전자문서를 입력으로 하여 응용 프로그램이 이용할 수 있는 응용 데이타를 생성하는 수신변환 과정에서 전자문서에서 하나의 문장에 해당된다고 볼 수 있는 세그먼트들이 전자문서상에서 규정된 최대 허용 반복사용 횟수를 초과해서 사용되지 않았는지, 또는 세그먼트가 루프(들) 속에 포함되어서 사용될 때, 세그먼트를 포함하고 있는 "루프들의 최대허용 반복수 곱하기 세그먼트 최대 허용 반복수"를 초과해서 사용되지 않았는지 여부를 검사하는 것을 말한다.
따라서, 본 발명은 전자문서 교환 시스템을 이용하여 전자문서를 송수신할때, 송수신되는 전자문서가 송수자가 합의한 표준전자문서 구조를 준수하는지를 검사할 수 있도록 하고, 전자문서가 올바르게 응용 프로그램과 맵핑될 수 있도록 하거나, 응용 프로그램이 생성하는 응용 데이타들이 올바르게 표준전자문서로 변환될 수 있도록 하는 전자문서 세그먼트의 반복 사용에 대한 유효성 검증 방법을 제공하는데 그 목적이 있다.
도1은 본 발명이 적용되는 전자문서교환시스템의 개략적인 블럭 구성도.
도2는 전자문서의 루프 구조도.
도3a 및 3b는 전자문서의 세그먼트 테이블의 구조도.
도4는 전자문서의 세그먼트 테이블을 데이타 스트럭쳐화한 구조도.
도5는 루프 정보관리를 위한 루프 데이타 스트럭쳐를 나타낸 도면.
도6은 세그먼트 반복 사용 정보 관리를 위한 빈도 데이타 스트럭쳐를 나타낸 도면.
도7은 전자문서 구조 정보를 포함하는 전자문서 데이타 스트럭쳐를 나타낸 도면.
도8은 본 발명에 따른 전자문서의 세그먼트 및 루프들의 상관관계 정보들을 전자문서, 루프, 빈도 데이타 스트럭쳐로 설정하는 흐름도.
도9a 및 9b는 본 발명에 따른 세그먼트 반복 사용에 대한 유효성 검증 흐름도.
* 도면의 주요부분에 대한 부호의 설명
101 : 가입자장치 102 : 문서변환부
103 : EDI 메세징장치 104, 107 : 가입자 처리부
105 : 메세지 중계 처리부 106 : 메세지 저장부
상기 목적을 달성하기 위한 본 발명은, 전자문서 교환시스템에서의 세그먼트 반복사용에 대한 유효성 검증방법에 있어서, 전자문서 구조 정보를 전자문서 데이타 스트럭쳐에, 각 전자문서내에 포함된 세그먼트 및 루프들의 상관관계 정보를 루프 데이타 스트럭쳐에 각각 맵핑시키고, 전자문서내의 세그먼트들의 사용빈도를 나타내는 빈도 데이타 스트럭쳐를 초기화하는 제1단계; 사용할 세그먼트의 빈도 데이타 스트럭쳐내의 단위 사용 횟수가 전자문서 데이타 스트럭쳐의 세그먼트 반복횟수를 초과하였는지 조사하는 제2단계; 상기 제2단계에서 초과하였으면 세그먼트 반복 초과사용에 따른 오류 처리를 수행하는 제3단계; 상기 제2단계에서 초과하지 않았으면 세그먼트가 루프속에 포함된 세그먼트인지 조사하는 제4단계; 상기 제4단계에서 루프속에 포함된 세그먼트가 아니면 루프 반복 횟수 값을 초기화하는 제5단계; 상기 제4단계에서 루프속에 포함된 세그먼트이면 루프의 현재 루핑 횟수가 루프반복사용 상한값을 초과하였는지 조사하는 제6단계; 상기 제6단계에서 초과하였으면 루프 반복 사용에 따른 사용오류를 처리하는 제7단계; 상기 제6단계에서 초과하지 않았으면 세그먼트의 총 누적 사용 횟수 값이 반복 사용 한계값을 초과하였는지 조사하는 제8단계; 및 상기 제8단계에서 초과하였으면 세그먼트 상한 초과 사용에 따른 오류를 처리하고, 초과하지 않았으면 정상적인 사용이므로 종료하는 제9단계를 포함한 것을 특징으로 한다.
먼저, 본 발명의 이해를 돕기 위하여 전자문서교환시스템(EDI)에 대하여 설명한다.
전자문서교환시스템(EDI)이란 상업용 거래문서 및 행정문서 등을 거래 당사자가 합의한 표준에 따라 컴퓨터로 처리 가능하도록 구조화된 전자문서로 변환하여 컴퓨터 통신망을 통하여 상호교환하는 새로운 문서 전달방식을 말한다.
이러한 전자문서교환시스템에서 전자문서의 내용과 구조(문서표준) 및 통신방법(통신표준) 등에 관해 국제적으로 합의된 UN/EDIFACT 문서표준과 ITU-T X.435통신표준에서 규정하고 있다.
전자문서교환시스템에서 전자문서 변환부는 응용 프로그램이 생성한 사설 데이타파일을 맵핑과 변환과정을 통해 국제(UN/EDIFACT) 표준 전자문서 구조로 이루어진 인터체인지파일로 변환하여 전송하거나, 그 역의 동작으로 인터체인지 파일을 수신하면 그 역동작을 통해 사설 데이타파일로 변환시키는 기능을 수행한다.
일반적으로 전자문서 변환부는 국제(UN/EDIFACT)표준에서 규정한 제반 구문규칙을 준수하여 문서변환을 수행하며, 크게 나누어 송신변환부, 수신변환부, 맵핑부, 그리고 표준데이타 관리부로 이루어진다.
현재 도로, 항만, 철도 등의 사회 간접자본과 마찬가지로 정보통신은 전 산업분야에 막대한 영향을 끼치고 있으며, 기업 및 국가경쟁력을 결정짓는 중요한 척도가 되고 있다. 그 중에서도 종이없는 거래라는 새로운 비지니스 방식을 제공하는 전자문서교환시스템은 전세계 기업들의 경쟁력 확보에 필수적인 수단으로 등장하고 있다. 종래의 팩스 및 전자우편은 송수자간에 상호 합의되지 않은 비정형화된 데이타를 사람이 읽을 수 있는 형태로 표현하여 전자적으로 전송하지만, 표준화된 형태가 아니므로 수신자가 수신 데이타를 이용하기 위해서는 수신 자료를 재가공하거나 컴퓨터에 재입력해야 한다. 이는 사람 대 사람(man-to-man) 통신 형태(type)를 가정하고 있기 때문이다. 즉, 사람의 개입이 필수적일 수 밖에 없다.
그러나, 컴퓨터 대 컴퓨터(computer-to-computer) 통신 형태(type)를 가정 하고 있는 전자문서교환시스템에서는 상기 팩스 및 전자우편과는 다르게 컴퓨터 응용프로그램에 의해 생성(Generation)된 데이타들을 전자문서교환 시스템의 표준전자문서 형태로 변환(Encoding)시켜 수신 시스템으로 전달한다. 이 표준전자문서는 다시 수신 컴퓨터의 문서변환부에 의해 국제 표준 전자문서 구문규칙에 따라 해석(Interpretation) 즉, 역변환(Decoding)되어 응용프로그램이 처리할 수 있는 형태로 가공됨으로써, 기업과 기업간에 거래되는 문서를 사람의 개입없이 컴퓨터에 의해 처리할 수 있게 해 준다.
이렇게 각 기업들의 정보 시스템을 연결해 주는 전자문서교환 시스템은 컴퓨터 하드웨어, 소프트웨어, 지정학적 위치, 시간대, 통신 설비 등의 제한을 받지 않고, 전자문서교환시스템의 문서표준 및 통신표준에 따른 문서를 생성하고 해석할 수 있는 소프트웨어만 있으면 누구나 전세계 어느곳에나, 언제나, 어느 거래처에게나 종이 없는 전자 문서를 전송할 수 있다. 즉, 전자문서교환시스템의 범위는 매우 넓어서 수직적 정보 흐름 뿐만 아니라 업종간, 산업간의 수평적 정보 흐름, 나아가 국가간 국제 정보 흐름을 가능케 한다. 따라서, 기존의 전화, 우편, 팩스 등 전통적인 문서 처리 방식으로는 데이타가 반복되어 입력되므로 업무 처리 시간이 지연되고, 재입력에 의한 데이타의 정확도가 낮아지며, 많은 시간과 인력이 소모되고, 업무 진행 및 처리가 비효율적이며 복잡하나, 전자문서교환시스템을 이용하므로써 재고 비용, 운송비용, 데이타 오류 감소 등의 비용 절감과, 업무 능률 향상, 고객 서비스 향상, 거래처와의 관계 증진, 국제 경쟁력 향상의 효과를 얻을 수 있다.
상기와 같은 전자문서교환시스템이 실현되기 위해서는 송수신자간에 교환되는 전자문서에 대한 표준이 있어야 한다. 각 기업에서 사용되는 문서의 양식은 각각 다르기 때문에 문서의 호환성을 유지시키기 위해서는 교환할 전자문서의 내용 및 구조에 관한 제반 표준이 필요하다.
전자문서교환시스템에 적용되는 표준에는 크게 문서표준과 통신표준이 있다. 문서표준은 유엔유럽경제위원회(UN/ECE)를 중심으로 표준이 제정, 공표되었으며, 통신표준은 ITU(구CCITT)와 ISO를 중심으로 표준이 제정 공표되었다. 현재 유엔에서는 국제 문서표준으로 UN/EDIFACT를 발표하였고(1987), ITU-T에서는 국제통신표준으로 X.435권고안을 제정 발표하였다.
UN/EDIFACT(UN/EDI for Adiministration Commercial Transportation)란 행정, 상역, 운송 데이타의 전자적 교환을 위한 국제연합규칙이다. 이는 구조화된 데이타의 전자적 교환을 위해 국제적으로 합의된 표준, 디렉토리, 메세지 설계 가이드라인으로 구성되어 있다. 이 규칙은 UN의 기구내에서 권장되고 있는데, UN의 유럽 경제위윈회(UN/ECE)가 UNTDID(United Nations Trade Data Interchange Directory : 유엔 거래 데이타 교환목록)로 승인, 공표하였으며, 합의된 절차에 따라 유지 개선된다.
UN의 유럽경제위원회(UN/ECE)는 UN 경제사회위원회에 설치된 5개의 지역위원회 중의 하나이다. 유럽경제위는 그 명칭에도 불구하고 유럽은 물론 북미지역도 포함하고 있다.
UN/EDIFACT에서 규정하고 있는 내용은 구문규칙(Syntax Rules, ISO 9735 ), 메세지 설계지침(Message Design Guidelines), 구문 구현지침(Syntax Implementation Guidelines), 데이타 요소사전(Data Element Directory : EDED), 복합요소 사전(Composite Element Directory : EDCE), 세크먼트 사전(Segment Directory : EDSD), 코드 리스트(Code List), 표준 메세지 사전(UN Standard Message Directory : EDMD), 원격전송에 의한 거래 데이타 교환절차의 통일규칙(UNCID), 관련 해설자료 등으로 구성되어 있다.
UN/EDIFACT에서 사용될 수 있는 문자집합은 다음과 같이 2개의 집합으로 분류된다. UN/EDIFACT에서 사용되는 문자 집합은 A와 B가 있다. 문자집합 A를 사용하는 메세지를 A레벨, 문자집합 B를 사용하는 메세지를 B레벨 메세지라 한다. 단, 문자집합 B를 사용할 때는 양자간에 합의가 있어야 한다.
문자집합 A
영문자(대문자) A 부터 Z
숫자 0 부터 9
한글 각 음절
기타문자 . ,-()/=
예약문자 '+:?
텔렉스 전송에는 사용할 수 없는 문자 !"%&*;<>
문자집합 B
영문자(대문자) A 부터 Z
영 문자(소문자) a 부터 z
숫자 0 부터 9
한글 각 음절
기타문자 . ,-()/=
' +: ?
! "%&*;<>
예약문자 IS4 IS3 IS1(인쇄되지 않는 문자)
UN/EDIFACT 표준 전자문서를 필요 없는 부분을 전송하지 않는 유연 양식(flexible format)으로 나타내기 위해서는 데이타 엘리먼트나 세그먼트의 시작과 끝을 표시할 수 있어야 한다. UN/EDIFACT에서 구분자는 이러한 용도로 사용되며, 문자집합에 따라 서로 다른 문자를 사용한다. 구분자의 이름과 사용하는 문자는 다음과 같다.
- 세그먼트 종결 부호( ' : 윗쉼표) : 세그먼트의 끝을 나타낸다. 이 뒤에 나오는 태그는 바로 뒤의 세그먼트 이름을 나타낸다.
- 세그먼트 태그와 데이타 엘리먼트 분리 부호(+) : 세그먼트 태그와 그 뒤의 데이타를 분리할 때와 세그먼트 안에서 독립 데이타 엘리먼트들을 서로 분리할 때 사용한다.
- 구성 데이타 엘리먼트 분리 부호( : ) : 복합 데이타 엘리먼트 안에서 구성 데이타 엘리먼트를 서로 분리할 때 사용한다.
- 해제 부호 ( ? ) : 문자 집합 A를 사용할 때 구분자로 쓰이는 문자를 일반 데이타로 쓰고 싶을 때 그 문자 앞에 사용한다.
UN/EDIFACT에서 데이타 엘리먼트(Data Element)는 마치 언어에서 단어와 같은 역할을 하는 것으로, 크게 단순 데이타 엘리먼트(Simple Data Element)와 복합데이타 엘리먼트(Composite Data Element)로 나눌 수 있다.
단순 데이타 엘리먼트(Simple Data Element)는 자신의 데이타 엘리먼트 만으로 의미가 층분히 정해지므로 부연자 또는 한정자가 필요 없는 데이타 엘리먼트를 말한다.
예를 들어, "3207 국가 코드 an3 id"은 IS0 3066에 지정된 국가명 또는 기타 지리적인 이름에 대한 식별자를 의미한다.
그러나, 자신의 데이타 엘리먼트만으로는 의미가 완전히 정해지지 않기 때문에 부연 설명을 위한 한정사(Quilifier)를 필요로 하는 엘리먼트를 한정 데이타 엘리먼트(Quilified Data Element)라 한다.
예를들어, "6063 수량 n..15 n"은 수량의 수치값을 의미한다.
위의 예에서 보면 수량의 수치값이 무엇인지 알 수가 없으므로 부연설명이 필요하다. 예를 들면 수량의 수치값이 '10'일 때 한정사에서 '114'(승객수)라든지 '115'(승무원 수)라고 부연 설명을 해주어야 수량의 의미가 확실해질 것이다. 이처럼 한정 데이타 엘리먼트의 속성을 상술해 주는 데이타 엘리먼트가 한정사이다.
복합 데이타 엘리먼트는 개념적으로 관련되어 있는 단일 데이타 엘리먼트들의 집합으로 이루어진 데이타 엘리먼트이다. 이때, 복합 데이타 엘리먼트안의 단일 데이타 엘리먼트를 구성 데이타 엘리먼트라고 한다. UN/EDIFACT에서 복합 데이타 엘리먼트는 반드시 대문자 'S' 또는 'C'로 시작된다.
아래의 예는 세개의 구성 데이타 엘리먼트들로 이루어진 복합 데이타 엘리먼트이다. 이 복합 데이타 엘리먼트를 사용할 때는 필수적으로 선언된 '6060 수량'은 반드시 사용하여야 하나 선택적으로 선언된 '6063수량 한정사'나 '6411 측정 단위 한정사'의 경우는 사용하지 않아도 된다.
예) C186 수량 세부 사항.
내용 : 6063 수량 한정사 C an..3 id
6060 수량 Mn..15 n
6411 측정단위 한정사 C an..3 id
복합 데이타 엘리먼트 중에서 S로 시작하는 S001부터 S010까지의 복합 데이타 엘리먼트를 서비스 데이타 엘리먼트라고 한다. 이들은 전송에 관련된 내용을 나타내는 데이타 엘리먼트들이다.
UN/EDIFACT의 ISO 7372/UNTDED에 기술되어 있는 데이타 엘리먼트의 자료표현은 다음과 같다.
a 영문자
n 숫자
an 영문자/숫자 혼용
a3 3개의 영문자(고정길이)
n3 3개의 숫자(고정길이)
an3 3개의 영문자/숫자 혼용(고정길이)
a..3 3개의 영문자까지(가변길이)
n..3 최대 3개의 숫자(가변길이)
an..3 최대 3개의 영문자/숫자 혼용(가변길이)
M 필수적인 엘리먼트 속성
C 선택적인 엘리먼트 속성
UN/EDIFACT에서 세그먼트(Segment)는 서로 관련된 데이타 엘리먼트(단순, 복합 데이타 엘리먼트)들이 모여 이룬 의미있는 집합을 세그먼트라 한다. 각 세그먼트는 유일한 3글자의 태그로 구분되어야 하며, 그 구조가 사전에 정의되어야 한다.
하나의 세그먼트는 세그먼트 형태 식별자인 세그먼트 태그(Tag), 데이타 요소 구분자(Separators), 단순 또는 복합 데이타 요소(Simple or Composite Data Element ), 세그먼트 종결자(Terminator)로 구성된다.
예를 들어, "CLU+BEF:IN-IN"에서 "CUX"는 "통화" 세그먼트와 태그이고, "+"는 구분자, "BEF"는 데이타 요소 "통화코드"의 값이며, ":"는 복합데이타 요소 내의 데이타 요소 구분자. "IN"는 송장(Invoice) 메세지 상의 금액에 적용되는 통화임을 나타내는 통화코드의 한정사, "、"는 세그먼트 종결자를 각각 나타낸다.
세그먼트는 크게 데이타 세그먼트(Data Segment)와 서비스 세그먼트(Service Segment)로 나눌 수 있다.
데이타 세그먼트는 사용자가 실제로 전송하고자 하는 자료를 포함하는 세그먼트로서, 반드시 영문자 "UN"으로 시작되지 않는 세그먼트 태그를 갖는다.
아래는 그 예를 든 것이다.
CLX 통화 세그먼트
설명 : 문서에서 사용되는 통화를 기술하여 환율과 관계된 내용을 기술
C180 참조통화 M
6345 통화코드 M a3 id
6343 통화 한정사 C an..3 id
C182 목표통화 C
6345 통화 코드 M a3 id
6343 통화 한정사 C an..3 id
5402 환율 C n..12 n
6341 외환 시장 코드 C an3 id
C034 시차 C
2005 날짜/시간 한정사 C an..3 id
2001 날짜 코드 C n6 n
2002 시간 C n4 n
2461 시간대 코드 C an3 an
서비스 세그먼트는 "UN"으로 시작되는 세그먼트 태그를 갖는 세그먼트로서, UN/EDIFACT 메세지 구성에 반드시 사용되어야 하는 필수 세그먼트(UNA, UNS 세그먼트는 경우에 따라 사용하지 않을 수 있음)들이다. 데이타 세그먼트와는 달리 제어용으로 사용되는 서비스 세그먼트는 인터체인지와 메세지의 시작과 끝을 구분하거나, 선택적으로 사용될 수 있는 기능그룹의 시작과 끝 등을 구분하기 위해 사용된다.
UN/EDIFACT에서 사용되는 서비스 세그먼트들은 아래와 같다.
UNB 인터체인지 헤더는 인터체인지 시작 세그먼트이고, UNZ 인터체인지 트레일러는 인터체인지 종료 세그먼트, UNG 기능적 그룹 헤더는 기능적 그룹의 시작 세그먼트, UNE 기능적 그룹 트레일러는 기능적 그룹의 종료 세그먼트, UNH 메세지헤더는 메세지의 시작 세그먼트, UNT 메세지 트레일러는 메세지의 종료 세그먼트, UNS 부문 통제는 메세지의 표제, 내역, 요약 부문 분리 세그먼트, UNA 서비스 스트링 통지는 인터체인지에 사용된 구분자 세그먼트를 각각 나타낸다.
아래에 이에 대한 예제를 하나 들었다.
UNB 인터체인지 헤더
기능: 인터체인지의 시작을 표시하고, 전송에 필요하거나, 문서변환에 필요한 제어 데이타를 포함.
S001 구문 식별자 M
0001 구문 식별자 M a4
0002 구문 개정 번호 M n1
S002 인터체인지 송신자 M
0004 송신자 식별 M an..35
0007 식별 코드 한정사 C an..4
0008 반송 주소 C an..14
S003 인터체인지 수신자 M
...
S004 작성 날짜 및 시간 M
...
S005 수신자 참조, 암호 C
...
0026 적용 참조 C an..14
0029 처리 우선순위 코드 C a1
0031 수령 통지 요구 C n1
0032 통신 협정 식별자 C an..35
0035 시험 표시자 C n1
UN/EDIFACT 표준 전자문서는 다음과 같이 크게 3개 부분으로 구분 지을 수 있다. 각 데이타 세그먼트는 메세지를 구성하고 있는 일련의 세그먼트들의 특정한 자리에 위치하고 있고, 메세지내의 다음 세부분 안에 나타날 수 있다.
표제부문(Heading Section) :이 부문에서 나타나는 세그먼트는 메세지 전체와 관련되어 있다.
내역부문(Detail Section) : 이 부문에서 나타나는 세그먼트는 사용자가 상대방에게 전달하고자 하는 상세한 정보에만 관련이 있으며, 표제부문에서 정의된 어떤 유사한 지침에 우선한다.
요약부문(Summary Section) : 요약부분에서는 메세지(예, 송장, 주문서 등)상의 총액, 라인 수 등과 같은 총계 또는 통제 정보용 세그먼트들만 나타난다.
UN/EDIFACT에서 메세지 루프는 동일한 세그먼트 형태가 메세지내의 2개 이상의 부문, 예를 들어 표제부문과 내역부문에 중복되어 나타날 수 있으며, 일부 세그먼트들은 메세지내의 특정위치에서 정해진 횟수만큼 반복 사용될 수 있다. 상태(status)즉 필수적이냐 선택적이냐 하는 것과 세크먼트 형태의 최대 반복 횟수는 메세지 구조내에 표시된다.
한 메세지내에서 기능적으로 관련된 세그먼트들의 특정 그룹들이 반복될 수 있으며, 불필요시 생략될 수 있다. 이 세그먼트 그룹들을 "루프(loop)"라고 한다. 특정 위치의 최대 반복 횟수는 메세지 구조내에 표시된다.
전자문서 교환을 위한 소프트웨어로는 가입자(EDI가입자)측에 설치되는 가입자 시스템과 가입자 간에 전달되는 메세지를 전송하고, 잠시 보관해주는 기능을 가진 전송 호스트에 설치되는 메세지 저장기 및 중계 시스템이 필요하다. 전자문서 교환시스템은 통신용 모뎀과 함께 개인용 컴퓨터(PC), 워크스테이션, 미니컴퓨터, 메인프레임 등 어느 하드웨어 플랫폼에서도 가능하여 저렴한 가격의 고성능 개인용 컴퓨터, 그리고 많은 전자문서 교환시스템용 소프트웨어의 출현으로 개인용 컴퓨터를 기반으로 하는 전자문서교환시스템 구축이 낮은 비용으로 가능해져 전자문서 교환시스템의 확산에 기여하고 있다.
국제 전신전화 자문위원회(CCITT)의 X.400권고를 기반으로 X.435와 F.435 표준 및 국제 문서 표준에 따른 전자문서교환시스템의 일예를 설명하면 다음과 같다.
일단 전자문서교환시스템은 적용되는 응용 업무나 사용하는 사용자의 환경에 따라 다양한 하드웨어 및 소프트웨어 구성을 가질 수 있는데, 소프트웨어는 기본적으로 가입자 시스템과 가입자 처리기, 중계기, 메세지 저장기로 구성되고, 사용자의 하드웨어, 소프트웨어 환경에 따라 여러가지 조합으로 각 서브시스템이 설치될 수 있고, 각 서브시스템들이 설치되는 하드웨어 플렛폼이 달라질 수 있다.
도1은 본 발명이 적용되는 전자문서 교환시스템의 개략적인 블럭 구성도를 나타낸다.
가입자 장치(101)는 공중 전화망(PSTN)을 통해 가입자 처리부(104), 메세지저장부(106), 다수의 메세지 중계기를 구비한 메시징 장치(103)에 접속되어 메세지를 다른 가입자에게 보내거나, 다른 가입자가 보낸 메세지를 검색 수신하여 처리하는 기능을 수행한다. 즉, 사용자가 전자문서 메세지를 생성하여 전송하거나. 수신하도록 하는 제반 기능을 제공하며, 가입자 장치(101)는 문서 편집기, 문서변환부, 중계 호스트와 가입자 장치간의 전자문서 메세지의 송수신을 담당하는 통신처리부, 메세지 저장부 액세스 프로토콜(P7)에 따른 메세지 저장부 조회 처리부, 송수신 문서와 관리 정보를 객체화하여 관리하는 문서관리부로 구성된다.
가입자 장치(101)내의 문서 변환부(102)는 송수신되 는 모든 메세지를 대상으로 사설문서와 표준전자 문서간의 상호변환을 수행하여 메세지의 상호 호환성을 유지시켜주는 기능부로서, 응용시스템이 생성한 사설 데이타 파일(DF : Data File)을 맵핑과 변환과정을 통해 국제표준 전자문서 구조로 이루어진 인터체인지 파일(IC : Inter change File)을 생성하거나, 그 역의 동작으로 응용시스템이 이용할 수 있는 사설 데이타 파일을 생성한다. 일반적으로 문서변환부(102)는 국제표준(UN/EDIFACT)의 제반 구문규칙(IS09735)을 준수하여 변환을 수행하며, 크게 나누어 송신변환기, 수신변환기, 맵퍼, 그리고 표준 데이타 관리기로 이루어진다.
중계 호스트인 메시징장치(103)의 가입자 처리부(104)는 가입자 장치(101)와 메세지 저장부(106) 사이에 전송되는 메세지를 대상으로 하여 부호화하거나, 복호화하는 기능을 수행한다. 즉, 가입자 장치(101)에서 작성되어 전송된 메세지를 부호화규칙(ASN. 1)에 따라 부호화하여 메세지 저장부(106)로 전송하거나, 메세지 저장부(106)에서 전송된 메세지를 복호화하여 가입자장치(101)로 전송한다.
메세지 저장부(106)는 가입자 처리부(104)와 중계 호스트의 중계 역활을 하는 기능부로 가입자로부터 전송되는 메세지를 메세지 중계 처리부(105)로부터 전달받아 저장하는 기능을 수행한다. 또한, 메세지 저장부(106)에 저장된 메세지들에 대해 사용자가 가입자 장치(101)를 이용하여 특정 조건을 만족하는 메세지들의 수를 검색하거나, 특정 메세지 전체를 가져가거나, 저장된 메세지들의 목록을 검색해보는 등의 다양한 방법으로 검색할 수 있는 기능을 제공한다. 메세지가 가입자 처리부(104)와 메세지 저장부(106) 사이에 전달될 때는 P7 프로토골(메세지 저장기검색 규약)이 적용되며, 메세지 저장부(106)와 메세지 중계 처리부(105) 간에 전달될 때는 P3프로토콜(제출 및 배달 규약)이 적용된다.
메세지 중계 처리부(105)는 가입자 장치(101)를 통하여 메세지 저장부(106)로부터 제출된 메세지를 다른 중계 시스템으로 전송하거나, 자신의 중계 시스템에 접속된 메세지 저장부(106)에 배달하는 기능을 수행한다. 즉, P3프로토콜을 이용하여 메세지 저장부(106)로 메세지를 저장하거나, 메세지 저장부(106)로부터 메세지를 제출받고, P1프로토콜(메세지 전송규약)을 이용하여 다른 메세지 중계기로 메세지를 전송한다. 또한, 여러 메세지 중계기가 연결되어 메세지를 중계할 수 있으며, 축적-저장 방식을 이용하여 메세지를 전달하고, 메세지 배달요청자에게 해당메세지 전달의 성공 또는 실패 여부를 전달하는 확인 서비스, 각 메세지의 배달 우선순위에 따른 지원, 자원 배달등의 배달 선택 기능, 다양한 매체로의 내용 변환, 메세지의 제출 및 배달에 따른 오류의 진단 기능 등의 다양한 서비스를 제공한다.
도2는 루프 구조를 설명하기 위한 전자문서의 루프 구조의 일예를 나타낸 것이다.
도2에서 세그먼트 그룹 1은 임의의 세그먼트 AAA와 세그먼트 그룹2, 3을 포함하는 구조로 이루어져 있으며, 루프상태(status)가 선택적(C)이므로 생략될 수 있다. 그러나 사용 된다면 최대 10번까지 반복될 수 있다.
세그먼트 그룹 2는 임의의 세그먼트 BBB와 세그먼트 CCC로 이루어져 있으며,세그먼트 그룹 1이 반복될 때마다 세그먼트 그룹2는 루프상태가 필수적(M)이므로 생략될 수 없고, 반드시 최소 2번은 반복되어 사용되어야 한다. 세그먼트 그룹2가 반복될때에는 임의의 세그먼트 BBB는 반드시 사용되어야 하며, 임의의 세그먼트 CCC는 생략될 수도 있고, 사용된다면 매 반복시 마다 2번까지 사용될 수 있다.
세그먼트 그룹 3은 임의의 세그먼트 DDD와 임의의 세그먼트 EEE로 이루어져있으며, 세그먼트 그룹1이 반복될 때마다 세그먼트 그룹3은 루프상태가 선택적(C)이므로 생략될 수 있다. 그러나, 사용된다면 임의의 세그먼트 DDD는 반드시 사용되어야 하며, 세그먼트 EEE는 생략될 수도 있고, 사용된다면 임의의 세그먼트 EEE는 최대 9번까지 반복 사용될 수 있다.
세그먼트란 전자문서에서 하나의 문장을 이루는 단위로서, 세그먼트 태그(Tag)로 시작하여 마침표 " ' "로 끝나며, 단어 역할을 수행하는 복수의 엘리먼트(Element)로 구성된다. 세그먼트 태그는 그 문장을 대표하는 접두어 역할을 수행하는 영문자 대문자 3자리로 이루어진 요소로서, 그 문장이 포함하는 정보의 내용을 유추할 수 있는 이니셜(Initial)을 갖는다.
하나의 전자문서는 복수의 세그먼트들의 집합으로 이루어지며, 세그먼트의 반복적 사용을 통해 특정문장의 반복적 표현을 실현한다.
도3a 및 3b는 전자문서에서 세그먼트 그룹은 의미상 서로 관련있는 세그먼트의 집합으로서, 루프형태로 표현되며 포함된 세그먼트들을 논리적으로 한 덩어리로 취급할 수 있게 한다.
도3a 및 3b의 전자문서의 루프 구조를 문서 변환부가 인지할 수 있는 데이타 스트럭쳐로 변환시킨 구조는 도4와 같다.
도3a 및 3b에서는 세그먼트들의 상관관계 및 루프관계가 그래픽 선을 이용하여 표현되지만, 도4에서는 그 관계를 데이타 값으로 표현하고 있다.
도3a 및 3b에 나타낸 세그먼트 그룹들의 식별자(ID)는 도4에 도시된 바와 같이 'A'부터 시작하여 ASCII 코드값이 증가하는 순서로 식별자(ID) 값이 부여된다. 루프 식별자(ID)의 ASCII코드값이 큰 루프 ID를 갖는 세그먼트 그룹은 ASCII코드값이 상대적으로 더 작은 루프 ID를 갖는 세그먼트 그룹보다 먼저 나타난다. 도3a 및 3b에서 세그먼트 그룹 5는 세그먼트 그룹 6,7을 포함하고 있는데, 세그먼트 그룹5는 세그먼트 그룹 6,7의 부(Parent) 루프가 되며, 세그먼트 그룹 6,7은 세그먼트 그룹 5의 자(Child) 루프가 된다.
도3a 및 3b에서 세그먼트 그룹들에 포함되지 않는 세그먼트들은 루프를 갖지않으므로, 도4의 데이타 스트럭쳐에서 부 루프 ID가 "$", 자신의 루프 ID가 "0"으로 표현된다. 또한 루프 조건 및 루프 반복수도 "0"으로 표현된다.
이와 달리 도3a 및 3b의 세그먼트 그룹 1에 포함된 세그먼트들은 루프에 포함된 세그먼트들이므로, 도4의 데이타 스트럭쳐에서 부 루프 ID가 "$", 자신의 루프 ID 가 "A"로 표현되고, 루프 조건은 선택적을 나타내는 "C"이고, 루프 반복수는 99이다. 이는 세그먼트 그룹 1은 생략될 수도 있고(루프조건이 선택적이므로), 최대 99번까지 루핑시켜 사용할 수도 있다는 것을 의미한다.
도3a 및 3b의 세그먼트 그룹 6은 세그먼트 그룹 5에 포함되어 있으므로, 세그먼트 그룹 6에 포함된 세그먼트들은 도4의 데이타 스트럭쳐에서 부 루프 ID가 "E", 자신의 루프 ID가 "F"로 표현되고, 루프 조건은 "C", 루프 반복 횟수는 9이다. 이는 부 루프인 세그먼트 그룹 5가 한 번 루핑될 때 세그먼트 그룹 6은 생략될 수 있고(루프조건이 선택적이므로), 사용된다면 최대 9번까지 루핑시켜 사용할 수도 있다는 것을 의미한다.
도4와 같은 전자문서 데이타 스트럭쳐를 이용하여 세그먼트의 반복사용에 대한 유효성을 검증하기 위하여 필요한 데이타 스트럭쳐들은 도5,6 및 7에 도시되어 있다.
본 발명에서는 알고리즘과 소요되는 데이타 스트럭쳐를 표현함에 있어서 편의상 "C" 유사 언어를 사용하여 기술한다.
도5는 전자문서에 포함된 루프들의 순서 및 상관관계 정보를 포함하는 루프정보 스트럭쳐이다.
도5에 도시된 구성요소는 다음과 같다.
루프 식별자(loop_id) : 전자문서에서 사용된 루프를 식별하는 식별자(ID)로서, 'A' 부터 시작하여 ASCII 코드값이 증가하는 순서로 식별자(ID) 값이 부여된다.
부루프 식별자(parent_loop_id) : 자신을 포함하고 있는 부 루프 ID를 갖는다.
루프 시작 위치(loop_start_position) : 전자문서상에서 루프가 시작되는 세그먼트의 인덱스 값을 갖는다.
루프 반복 횟수(loop_repeat_count) : 루프의 루핑 누계 값을 갖는다.
루프 반복 상한수(loop_repeat_upper_limit) : 전자문서상에서 규정된 루프의 최대 허용 반복수 값을 갖는다.
본 발명에서는 하나의 전자문서에 최대 60개의 루프가 포함될 수 있는 것으로 가정하고 있다.
도6은 세그먼트의 사용 횟수 정보를 갖는 데이타 스트럭쳐로, 구성요소는 다음과 같다.
단위 사용 횟수(accurency) : 세그먼트의 단위 사용 횟수를 의미한다. 이 값은 루핑될 때마다 1로 초기화 된다.
총 누적 사용 횟수(total_accurency) : 세그먼트의 총 누적 사용 횟수를 의미한다.
도7은 전자문서 구조 정보를 갖는 데이타 스트럭쳐로서, 다음과 같은 구성요소로 이루어져 있다.
세그먼트 식별자(segment_id) : 전자문서를 구성하는 세그먼트들의 태그를 갖는다.
세그먼트 조건(segment_condition) : 세그먼트의 사용 속성 즉, 필수사용(M)또는 선택사용(C) 세그먼트인지를 나타낸다.
세그먼트 반복수(segment_repeat_number) : 전자문서에서 규정된 세그먼트에 허용된 최대 반복수를 갖는다. 이 반복수는 루핑 없이 허용될 수 있는 반복수를 의미한다.
부루프 식별자(parent_loop_id) : 세그먼트가 포함된 루프를 포함하고 있는 부 루프 ID를 의미한다.
루프 식별자(loop_id) : 세그먼트를 포함하고 있는 루프 ID를 의미한다.
루프 조건(loop_condition) : 세그먼트를 호함하는 루프의 사용 속성 즉, 필수사용(M) 또는 선택사용(C) 루프인지를 나타낸다.
루프 반복 횟수(loop_repeat_number) : 전자문서에서 규정된 세그먼트를 포함하는 루프의 최대 허용 반복수를 갖는다.
도8은 본 발명에 따른 전자문서의 세그먼트 및 루프들의 상관관계 정보들을 전자문서, 루프, 빈도 데이타 스트럭쳐로 설정하는 흐름도를 나타낸다.
전자문서의 세그먼트 반복사용에 대한 유효성 검증을 위한 첫 번째 작업은 도4에 도시된 바와 같은 전자문서를 레코드 단위로 도7의 전자문서 데이타 스트럭쳐에 설정하는 것이다(801). 이때, 전자문서의 각 레코드들은 인덱스 변수 'n'에 의해 구분되는 전자문서 데이타 스트럭쳐를 통해서 참조된다. 여기서, 인덱스 'n'은 전자문서내의 세그먼트들의 위치번호를 나타낸다. 즉, 'n'의 값이 '1'이면 전자문서내의 첫 번째 세그먼트를, '2'이면 두 번째 세그먼트를 각각 의미한다.
또한, 인덱스 'n', 'm' 등에 해당되는 데이타 스트럭쳐를 표현할 때, "데이타스트럭쳐[n]"이라 이하 표현하며, 이는 'n'번째 데이타 스트럭쳐를 의미한다.
다음, 전자문서에 포함되어 있는 세그먼트와 루프들의 포함 및 상관관계 정보를 도5의 루프 데이타 스트럭쳐에 설정하기 위하여, 전자문서 내의 모든 세그먼트들을 수행할 때까지 인덱스 'n'을 '1'씩 증가시킨다(802).
그리고, 전자문서 데이타 스트럭쳐[n]의 세그먼트의 루프 반복 횟수가 '0'인지를 검사하여(803), '0'이면 그 해당 세그먼트는 루프 시작 세그먼트가 아니므로 스킵해야 하므로 인덱스 'n'값을 '1' 증가시키는 단계를(802) 반복하고, 루프 반복횟수가 '0'이 아니면 도5의 루프 데이타 스트럭쳐를 설정하기 위한 인덱스 'm'값을 구한다(804).
(804) 단계의 'm'값은, 전자문서 데이타 스트럭쳐[n]의 해당 세그먼트의 루프 식별자(ID)의 십진 아스키 코드값을 '64'로 나눈 나머지 값이 할당된다. 따라서, 순서적으로 루프 식별자 'A'인 첫 번째 루프 정보는 인덱스 'm'값이 '1'이므로 첫 번째 루프 데이타 스트럭쳐에, 루프 식별자가 'B'인 두 번째 루프 정보는 인덱스 'm'값이 '2'이므로 두 번째 루프 데이타 스트럭쳐에 설정한다.
전자문서 데이타 스트럭쳐[n]의 루프 식별자(ID), 부루프 식별자(ID), 루프가 시작된 세그먼트의 전자문서내의 위치 번호, 루프의 반복 횟수 값을, 루프 데이타 스트럭쳐[m]의 루프 식별자(ID), 부루프 식별자(ID), 루프 시작 위치, 루프 반복 상한수 값으로 각각 맵핑 시키고, 루프 데이타 스트럭쳐내의 루프 반복 횟수를 '0'으로 설정한다(805 내지 808).
전자문서내의 세그먼트들의 사용빈도를 초기화 하기 위해 도6의 빈도 데이타스트럭쳐를 '0'으로 초기화 한다(809).
상기의 (801) 단계에서부터 (809) 단계 까지를 수행하므로써 전자문서내에서세그먼트들의 반복 사용에 대한 유효성 검증을 시행할 수 있는 필요 데이타 스트럭쳐(도5,6,7) 정보가 확보되었다.
도9a 및 9b는 본 발명에 따른 세그먼트 반복 사용에 대한 유효성 검증 흐름도로서, 전자문서내의 모든 세그먼트들은 전자문서의 데이타로서 처리되기 전에 사용 또는 참조될 때마다 세그먼트 반복 사용에 관한 유효성을 검증 받아야 한다. 즉, 세그먼트의 사용이 도4와 같은 전자문서가 구조적으로 규정하고 있는 허용된 사용횟수 범위를 벗어나지 않았는지 여부를 반드시 사용전에 확인해야 한다.
본 발명에서는 사용하기 전에 유효성을 검증하고자 하는 현재 세그먼트의 전자문서내 위치 인덱스를 'p'라 가정하고, 직전에 사용된 세그먼트의 전자문서 내의 위치 인덱스를 'q'라 가정하고 도9a 및 9b의 알고리즘을 시작한다.
먼저, 빈도 데이타 스트럭쳐[p]의 현재 세그먼트의 단위 사용 횟수와 총누적사용 횟수를 각각 1씩 증가시킨다(901). 여기서, 단위 사용 횟수는 해당 세그먼트가 루프속에 포함된 세그먼트가 아닐 경우에는 항상 총누적 사용 횟수와 같다. 그러나, 루프에 포함되어 있는 세그먼트라면 루핑(즉, 루프반복)이 발생될 때 마다 단위 사용 횟수는 1로 초기화 된다. 이와는 달리 총 누적 사용 횟수는 해당 세그먼트가 사용될 때마다 1씩 증가만 될 뿐 결코 초기화 되지않으므로 그 세그먼트에 대한 총 사용 횟수를 갖는다.
먼저, 현재 사용할 세그먼트에 해당하는 빈도 데이타 스트럭쳐[p]의 단위 사용 횟수 값이 전자문서 데이타 스트럭쳐[p]의 세그먼트 반복 횟수 값을 초과하였는지를 검사(902)하여, 초과하였으면 전자문서 구조에서 정의한 허용된 세그먼트 반복 횟수를 초과하여 사용되었으므로 세그먼트 초과 사용 오류에 따른 처리를 수행하고(903) 검증을 종료한다.
한편, 초과하지 않았으면 현재 사용할 세그먼트가 루프속에 포함된 세그먼트인지를 조사한다(904). 이는 전자문서 데이타 스트럭쳐[p]의 루프 식별자 값이 0이 아니고, 루프 반복 횟수가 0인지를 조사하므로써 이루어진다.
세그먼트가 루프속에 포함된 세그먼트이면, 그 세그먼트가 속한 루프의 현재 루핑 횟수가 전자문서에서 구조적으로 규정된 루프 반복 사용 상한값을 초과하였는지를 조사한다(905). 이는 전자문서 데이타 스트럭쳐[p]의 해당 세그먼트의 루프식별자(ID)의 십진 아스키 코드값을 64로 나눈 나머지 값을 인덱스 'm'에 할당하고, 루프 데이타 스트럭쳐[m]의 루프 시작 위치값을 인덱스 'l'에 할당한 후, 루프 데이타 스트럭쳐[m]의 루프 반복 횟수 값이, 전자문서 데이타 스트럭쳐[l]의 루프반복 횟수 값 보다 큰지를 조사하므로써 이루어진다.
905 단계에서의 조사결과 초과되었으면 루프 반복 사용 상한값 초과 사용 오류에 따른 처리를 수행하고(906), 초과하지 않았으면 912 단계를 수행한다.
한편, 세그먼트가 루프속에 포함된 세그먼트가 아니면(904) 인덱스 'p'값이 인덱스 'q'값 보다 크고, 인덱스 'p'에 해당하는 현재 세그먼트가 루프시작 세그먼트이면(907) 즉, 전자문서 데이타 스트럭쳐[p]의 루프 반복 횟수가 0보다 크면, 루프 데이타 스트럭쳐[m]의 루프 반복 횟수 값을 1로 초기화 한다(908). 908 과정을 통해서 첫 루핑이 시작됨을 알 수 있다.
한편, 인덱스 'p'값이 인덱스 'q'값 보다 적고(이는, 현재 사용할 세그먼트가 직전에 사용한 세그먼트 보다 전자문서 구조상 먼저 나타나는 위치에 있다는 것을 의미함과 동시에 루핑이 이루어짐을 의미한다), 인덱스 'p'에 해당하는 세그먼트가 루프시작 세그먼트이면(909) 즉, 전자문서 데이타 스트럭쳐[p]의 루프 반복횟수가 0보다 크면, 루프 데이타 스트럭쳐[m]의 루프 반복 횟수 값을 1증가 시키고, 빈도 데이타 스트럭쳐[p]의 단위 사용 횟수 값을 1로 초기화하며, 인덱스 'p'값을 인덱스 'q'값으로 대치 시키고(910), (911) 단계를 수행한다. (910) 단계를 통하여, 루프로 진입할 때는 해당 루프 데이타 스트럭쳐의 루프 반복 횟수 값은 1씩 증가되고, 그 세그먼트에 해당하는 빈도 데이타 스트럭쳐의 단위 사용 횟수 값은 항상 1로 초기화 됨을 알 수 있다.
사용할 세그먼트가 루프에 관련없는 즉, 세그먼트의 루프 식별자 값이 0인지를 검사하여(911) 루프와 관련없는 세그먼트이면 검증작업을 종료한다.
912 부터 916까지의 단계는 사용할 세그먼트의 총 누적 사용 횟수 값이 전자문서가 구조적으로 허용할 수 있는 반복 사용 한계값을 초과하였는지를 검사하는 단계다.
먼저, 사용할 세그먼트가 포함된 루프를 포함하고 있는 부루프가 존재하는지를 검사한다(912). 이는 루프 데이타 스트럭쳐[m]의 부루프 식별자 값이 '$'인지를 검사하므로써 확인할 수 있다.
만약 부루프가 존재하지 않으면, 빈도 데이타 스트럭쳐[p]의 사용할 세그먼트의 총 누적 사용 횟수 값이, 루프 데이타 스트럭쳐[m]의 루프 반복 상한 값에 전자문서 데이타 스트럭쳐[p]의 세그먼트 반복수 값을 곱한 값 보다 더 큰지를 조사(913)하여, 크면 세그먼트 상한 초과 사용에 따른 오류 처리를 수행한다(914).
만약 크지 않다면 세그먼트 반복 사용에 대한 유효성이 검증되었으므로 수행을 종료한다.
한편, 912 단계에서 부루프가 존재하면, 현재 사용할 세그먼트의 총사용 빈도 누계 값이, 그 세그먼트를 포함하는 각각의 부 루프들의 루프 반복 상한값 곱하기 그 세그먼트의 반복사용 허용 상한 값을 초과하였는지 조사한다. 이를 위해 먼저 전자문서 데이타 스트럭쳐[p]의 세그먼트 반복수 값과, 루프 데이타 스트럭쳐[m]의 루프 반복 상한 값을 곱하고, 이 값을 임시 변수 'A'에 저장한다(915). 인덱스 'm'에 해당하는 루프를 포함하는 또다른 루프 (즉, 부루프)가 존재하면(916), 루프 데이타 스트럭쳐[m]의 부루프 식별자의 십진 아스키 코드값을 64로 나눈 나머지 값을 인덱스 'm'에 다시 할당하고(917), 루프 데이타 스트럭쳐[m]의 루프 반복 상한 값과 다시 상기에서 구한 임시변수 'A'에 저장된 값을 곱하여, 다시 그 결과 값을 임시변수 'A'에 저장한다(918). 위의 과정을 부루프가 존재하지 않을 때까지(즉, 루프 데이타 스트럭쳐[m]의 부루프 식별자가 '$'일 때 까지) 반복하여 처리하면 결국 전자문서가 구조적으로 허용하고 있는 현재 사용할 세그먼트에 허용되는 최대 반복 횟수 값을 구할 수 있게 된다.
현재 사용할 세그먼트의 총 누적 사용 횟수 값이, 그 세그먼트를 포함하는 각각의 부 루프들의 루프 반복 상한값 곱하기 그 세그먼트의 반복사용 허용 상한값(임시변수 'A'에 저장된 값)을 초과하였는지 조사한다(919).
반복 허용 횟수를 초과하였으면 세그먼트 상한 초과 사용에 따른 오류 처리를 수행(920)하고 종료한다.
상기와 같이 이루어지는 본 발명은 전자문서 교환시스템을 이용하여 전자문서를 송수신할 때, 송수신되는 전자문서가 송수자가 합의한 표준 전자문서 구조를 준수하는지를 검사할 수 있게하고, 전자문서의 한 문장에 해당되는 세그먼트들의 반복 사용에 대한 유효성을 표준 전자문서 구조를 기초로 하여 검증할 수 있게 한다. 또한, 전자문서가 올바르게 응용 프로그램과 맵핑되도록 하거나 응용 프로그램이 생성하는 응용 데이타들이 올바르게 표준전자문서로 변환될 수 있도록 하는 효과가 있다.

Claims (8)

  1. 전자문서 교환시스템에서의 세그먼트 반복사용에 대한 유효성 검증방법에 있어서, 전자문서 구조 정보를 전자문서 데이타 스트럭쳐에, 각 전자문서내에 포함된 세그먼트 및 루프들의 상관관계 정보를 루프 데이타 스트럭쳐에 각각 맵핑시키고, 전자문서내의 세그먼트들의 사용빈도를 나타내는 빈도 데이타 스트럭쳐를 초기화하는 제1단계; 사용할 세그먼트의 빈도 데이타 스트럭쳐내의 단위 사용 횟수가 전자문서 데이타 스트럭쳐의 세그먼트 반복횟수를 초과하였는지 조사하는 제2단계; 상기 제2단계에서 초과하였으면 세그먼트 반복 초과사용에 따른 오류 처리를 수행하는 제3단계; 상기 제2단계에서 초과하지 않았으면 세그먼트가 루프속에 포함된 세그먼트인지 조사하는 제4단계; 상기 제4단계에서 루프속에 포함된 세그먼트가 아니면 루프 반복 횟수 값을 초기화하는 제5단계; 상기 제4단계에서 루프속에 포함된 세그먼트이면 루프의 현재 루핑 횟수가 루프반복사용 상한값을 초과하였는지 조사하는 제6단계; 상기 제6단계에서 초과하였으면 루프 반복 사용에 따른 사용오류를 처리하는 제7단계; 상기 제6단계에서 초과하지 않았으면 세그먼트의 총 누적 사용 횟수 값이 반복 사용 한계값을 초과하였는지 조사하는 제8단계; 및 상기 제8단계에서 초과하였으면 세그먼트 상한 초과 사용에 따른 오류를 처리하고, 초과하지 않았으면 정상적인 사용이므로 종료하는 제9단계를 포함하여 이루어진 세그먼트 반복사용에 대한 유효성 검증방법.
  2. 제1항에 있어서, 상기 제1단계는, 전자문서 구조 정보를 전자문서 데이타 스트럭쳐에 설정하는 단계; 전자문서를 구성하는 모든 세그먼트들에 대해 수행될 때까지 인덱스 값을 증가시키고, 현재 세그먼트가 루프 시작 세그먼트인지를 조사하는 단계; 루프시작 세그먼트가 아니면 상기 인덱스 값을 증가시키는 단계를 수행하고, 루프 시작 세그먼트이면 루프 데이타 스트럭쳐를 설정하기 위한 루프 인덱스 값을 산출하여 전자문서 데이타 스트럭쳐의 루프 식별자 값, 부루프 식별자 값, 루프반복횟수를 상기 산출한 인텍스 값에 해당하는 루프 데이타 스트럭쳐의 루프 식별자값, 부루프 식별자 값, 루프 반복 상한 값으로 각각 설정하는 단계; 및 루프 시작 위치 값을 상기 세그먼트의 인덱스 값으로 설정하고, 루프 반복횟수 값을 초기화하고, 빈도데이타 스트럭쳐의 단위 사용 횟수와 총 누적 사용 횟수 값을 초기화하는 단계를 포함하여 이루어진 세그먼트 반복사용에 대한 유효성 검증방법.
  3. 제1항에 있어서, 상기 제5단계는, 현재 세그먼트의 인덱스 값이 직전 세그먼트의 인덱스 값보다 크고, 현재 세그먼트가 루프 시작 세그먼트이면 루프 데이타 스트럭쳐의 루프 반복 횟수 값을 초기화하는 단계; 및 현재 세그먼트의 인덱스 값이 직전 세그먼트의 인덱스 값보다 작고, 현재 세그먼트가 루프 시작 세그먼트이면 루프 데이타 스트럭쳐의 루프 반복 횟수 값을 증가시키고, 빈도 데이타 스트럭쳐의 단위 사용 횟수 값을 초기화하며, 현재 세그먼트의 인덱스 값을 직전 세그먼트의 인덱스 값으로 대치하는 단계를 포함하여 이루어진 세그먼트 반복사용에 대한 유효성 검증방법.
  4. 제1항에 있어서, 상기 제8단계는, 사용할 세그먼트가 포함된 루프를 포함하고 있는 부모루프가 존재하는지 조사하는 단계; 부모 루프가 존재하지 않으면 빈도 데이타 스트럭쳐의 사용할 세그먼트의 총누적 사용 횟수 값이 루프 반복 상한값에 세그먼트 반복수를 곱한값보다 큰지를 조사하는 단계; 총 누적 사용 횟수 값이 더 크면 세그먼트 상한 초과 사용에 따른 오류를 처리하는 단계; 총 누적 사용 횟수 값이 더 크지 않으면 정상적인 사용으로 종료하는 단계; 부모루프가 존재하면 현재 사용할 세그먼트의 총 사용 빈도 누적 값이 상기 세그먼트를 포함하는 각각의 부모루프들의 루프 반복 상한값에 상기 세그먼트의 반복 사용 허용 상한값을 곱한 값을 초과하였는지 조사하는 단계; 및 초과하였으면 세그먼트 상한 초과 사용에 따른 오류를 처리하고, 초과하지 않았으면 정상적인 사용으로 종료하는 단계를 포함하여 이루어진 세그먼트 반복사용에 대한 유효성 검증방법.
  5. 제1항 내지 제4항중 어느 한 항에 있어서, 상기 현재 세그먼트가 루프 시작 세그먼트인지를 조사하는 단계는 전자문서 데이타 스트럭쳐의 세그먼트의 루프 반복 횟수가 '0'인지를 조사함으로써 이루어지는 것을 특징으로 하는 세그먼트 반복사용에 대한 유효성 검증방법.
  6. 제5항에 있어서, 상기 루프 인덱스 값은 전자문서 데이타 스트럭쳐의 해당 세그먼트의 루프식별자 코드 값을 '64'로 나눈 나머지 값을 구함으로써 얻어지는 것을 특징으로 하는 세그먼트 반복사용에 대한 유효성 검증방법.
  7. 제5항에 있어서, 상기 루프속에 포함된 세그먼트인지를 조사하는 단계는 전자문서 데이타 스트럭쳐의 루프 식별자 값이 '0'이 아니고, 루프 반복 횟수가 '0'인지를 조사함으로써 이루어지는 것을 특징으로 하는 세그먼트 반복사용에 대한 유효성 검증방법.
  8. 제5항에 있어서, 상기 사용할 세그먼트가 포함된 루프를 포함하고 있는 부모루프가 존재하는지 조사하는 단계는 루프 데이타 스트럭쳐의 부모루프 식별자 값이 '$'인지를 검사함으로써 이루어지는 것을 특징으로 하는 세그먼트 반복사용에 대한 유효성 검증방법.
KR1019970077356A 1997-12-29 1997-12-29 전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법 KR100250120B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970077356A KR100250120B1 (ko) 1997-12-29 1997-12-29 전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970077356A KR100250120B1 (ko) 1997-12-29 1997-12-29 전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법

Publications (2)

Publication Number Publication Date
KR19990057306A KR19990057306A (ko) 1999-07-15
KR100250120B1 true KR100250120B1 (ko) 2000-03-15

Family

ID=19529548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970077356A KR100250120B1 (ko) 1997-12-29 1997-12-29 전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법

Country Status (1)

Country Link
KR (1) KR100250120B1 (ko)

Also Published As

Publication number Publication date
KR19990057306A (ko) 1999-07-15

Similar Documents

Publication Publication Date Title
US5227893A (en) Pseudo-bar code control of image transmission
CN101350858B (zh) 一种短信解码的方法和用户终端
JP2001217720A (ja) データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
CN105376225A (zh) 一种软件服务化的方法及装置
CN104199812A (zh) 一种支持多语言的数据系统和方法
US20130013647A1 (en) Method and device for importing backup data for a mobile terminal
US20120034939A1 (en) System and methods for cost-effective bilingual texting
US20080313291A1 (en) Method and apparatus for encoding data
US7133142B2 (en) Information providing system and apparatus and methods therefor
Kille MIXER (mime internet X. 400 enhanced relay): Mapping between X. 400 and RFC 822/MIME
CN107851226A (zh) 用于用户与计算机系统之间通信的方法和系统
KR100250120B1 (ko) 전자문서 교환시스템에서의 세그먼트 반복사용에대한 유효성 검증방법
KR100250119B1 (ko) 전자문서교환시스템에서의 응용 프로그램과 전자문서의 맵핑 방법
CN111049813A (zh) 报文组装方法、解析方法、装置及存储介质
KR100574886B1 (ko) 전자문서변환을 위한 표준자료 배치 방법
US8027838B2 (en) Method and system for connecting characters, words and signs to a telecommunication number
CN100387075C (zh) 短信扣费方法
KR100278290B1 (ko) 전자문서 교환시스템에서의 매트릭스 알고리즘을이용한 전자문서 인증방법
KR0139556B1 (ko) 전자 문서 교환 시스템의 가입자 시스템에서 디렉토리를 이용한 문서 관리 방법
CN111914513A (zh) 一种rdp窗口标题文字识别的方法及装置
WO2022196772A1 (ja) メッセージ通信プログラム
Robinson et al. Encoding header field for internet messages
CN102073623A (zh) 文件编码的转换系统及其方法
Dubuisson ASN.
Bence Teleservice developments in CCITT-migration to the ISDN

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101207

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee