KR100305373B1 - 범용분석시스템 - Google Patents

범용분석시스템 Download PDF

Info

Publication number
KR100305373B1
KR100305373B1 KR1019950701834A KR19950701834A KR100305373B1 KR 100305373 B1 KR100305373 B1 KR 100305373B1 KR 1019950701834 A KR1019950701834 A KR 1019950701834A KR 19950701834 A KR19950701834 A KR 19950701834A KR 100305373 B1 KR100305373 B1 KR 100305373B1
Authority
KR
South Korea
Prior art keywords
analysis
level
analysis module
module
control
Prior art date
Application number
KR1019950701834A
Other languages
English (en)
Other versions
KR950704917A (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 에를링 블로메, 타게 뢰브그렌
Publication of KR950704917A publication Critical patent/KR950704917A/ko
Application granted granted Critical
Publication of KR100305373B1 publication Critical patent/KR100305373B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54591Supervision, e.g. fault localisation, traffic measurements, avoiding errors, failure recovery, monitoring, statistical analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)
  • Steroid Compounds (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)
  • Monitoring And Testing Of Exchanges (AREA)

Abstract

한 산업처리의 제어에서 사용된 분석을 수행하기 위한 범용 분석 시스템. 이 범용 분석 시스템은 한 세트의 자료를 통해 적어도 한 분석을 수행하기 위한 범용 분석 프로그램과 자료세트의 분석을 제어하기 위한 분석 제어자료를 포함한다. 본 발명에 따라, 범용 분석 프로그램은 다수의 분석 원시함수를 포함하며 분석 제어자료는 다수의 분석모듈을 포함한다. 한 분석이 한 세트의 분석모듈로부터 구성되며 적어도 하나의 분석 원시함수를 사용하여 상기 세트의 분석모듈을 번역하므로써 수행된다.

Description

[발명의 명칭]
범용 분석 시스템
[도면의 간단한 설명]
제1도는 두 전화가입자, A와 B 사이의 통신을 설정하는 절차에서 로컬 교환기에 의해 수행되는 몇가지 분석 기능에 대한 개략적 설명도.
제2도는 제1도에서 도시된 로컬 교환기에서 수행된 분석기능에 대한 종래기술의 저장된 프로그램 제어의 개략적 설명도.
제3도는 본 발명의 일반 분석 시스템에 대한 개략적 블럭도표.
제4도는 제3도에서의 간단한 형태로 도시된 범용 분석 시스템의 확장된 개략적 블럭도표.
제5도는 제3-4도에서 도시된 범요 분석 프로그램과 분석 제어자료에 대한 구성을 도식적으로 도시한 도면.
제6도는 제4도에 도시된 호출 제어자료의 구성을 도식적으로 도시한 도면.
제7도는 본 발명의 범용 분석 시스템에 의해 수행된 예시적 분석에서 범용 분석 프로그램, 분석 제어자료 및 호출 제어자료 사이의 상호작용에 대한 도식적 도면.
제8도는 제5-7도에서 도시된 형태의 분석 모듈 체인으로부터 목적지 분석의 구성을 도식적으로 도시한 도면.
제9도는 분석 모듈의 제어필드내에 제어자료의 두 예시적 사용을 개략적으로 도시한 도면.
제10도는 본 발명의 범용 분석 프로그램에 대한 바람직한 실시예의 구조에 대한 개략적 도면.
제11도는 본 발명의 분석 제어자료에 대한 바람직한 실시예의 구조에 대한 개략적 도면.
제12도는 제11도에서 도시된 분석 제어자료의 바람직한 실시예에서 분석모듈의 일정타입 구조의 개략적 설명도.
제13도는 제12도에서 도시된 타입의 예시적 분석모듈의 사용에 대한 도식적 도면.
제14도는 저-수준 분석모듈이 저-수준 분석 프리미티브로부터 구성되는 방법에 대한 도식적 도면.
제15도는 제14도에 도시된 사용자-규정 저-수준 분석모듈이 어떻게 고-수준 분석모듈을 만드는데 사용될 수 있는가에 대한 도식적 도면.
제16도는 제12도에서도 도시된 예시적 분석 모듈과 유사한 제어-수준 분석모듈이 제15도에 도시된 고-수준 분석모듈의 빌드(build) 절차으로 어떻게 실시될 수 있는가에 대한 도식적 도면.
제17도는 본 발명의 범용 분석 시스템으로의 오퍼레이터 접속기에 대한 도식적 설명도.
[발명의 상세한 설명]
본 발명은 특히 전화 스위치를 포함하는 다양한 장치에서 다양한 정보분석을 수행하기 위한 범용 분석장치에 관한 것이다.
본 발명은 분석-특정 컴퓨터 프로그램에서 각 분석 알고리즘을 실행하므로써 이제까지 수행되어온 것을 대체시키는 자료분석에 대한 신규한 접근을 포함한다. 종래에는 일반적이었던 각가 다른 타입의 분석에 대하여 각기 다른 컴퓨터 프로그램을 발생시키는 것을 대신하여, 본 발명의 신규한 접근은 한 포괄적인 분석 프로그램을 만들고 이 포괄적인 분석 프로그램에 의해 작용되는 자료내에서 분석들간의 차이에 대한 내역을 관찰한다. 따라서 이같은 접근은 소프트웨어-구동 내장분석이 아닌 자료-구동 분석으로 특정된다. 여기서의 자료는 컴퓨터 프로그래밍 언어 포맷과는 달리 특수한 전문지식, 훈련 또는 숙련을 필요로 하지 않은 간단한 포맷으로 사용자에 의해 규정될 수 있다.
본 발명의 신규한 접근은 광범위한 산업 응용범위에서 장점을 지닌다. 일반적으로, 각기 다른 설비에 따라 주문을 받아 만들어지는 그리고 각 처리로의 새로운 입력과 출력에 대해 칙임지기 위해 각 설비에서 주기적으로 수정되어야 하는 산업 처리 제어장치에서는 본 발명의 가르침으로부터 이익을 받을 수 있다.
이같은 산업처리의 중요한 예가 통신분야에서 발견되며 특히 전화 가입자간의 호출 연결에서 두드러진다. 다음의 설명에서 “스위치” 또는 “스위칭 머신”은 톨(toll) 트래픽 제어스위치, 지정 셀룰러 스위치 또는 로컬 교환 스위치를 포함한다.
오늘날 전화 스위치는 중앙 스위칭을 통해 다수의 전화 가입자에게 제공된다. 중앙 사무소에서의 중앙 스위칭 머신은 로컬 전화가입자에게로의 호출 스위칭을 제어하며 트렁크(trunk)를 통해 네트워크내 다른 중앙 사무소와 통신한다. 각 중앙사무소는 간단한 호출을 처리하는때 일정한 기능을 수행한다. 가령 중앙사무소는 고객의 전화가 접속되지 않고 고객이 발신하는때 고객이 서비스를 받고자 하는가를 감지해야 한다. 일단 중앙사무소가 발신이 발생하였음을 인식하면, 즉 정해진 라인이 오프-후크 상태임을 발견하면, 중앙사무소는 다이얼 음을 통해 가입자에게 가령 중앙사무소는 다이얼 음을 통해 가입자에게 가령중앙사무소가 가입자로부터 정보를 수신할 준비가 되어있음을 통지하기 위한 수단과 이같은 정보를 수신하기 위한 수단을 라인으로 연결시켜야 한다. 가령 호출된 숫자와 같은 정보는 기계식 또는 전자식 다이얼을 사용하여 가입자에 의해 입력되며 중앙사무소에서 기록된다. 다음에 이같은 정보가 호출된 라인의 장소를 식별하기 위해 중앙사무소 장비에 의해 번역된다.
만약 호출받은자와 호출하는자가 같은 중앙사무소에 의해 서비스된다면, 호출받은 라인에 대하여 호출중 검사가 이루어진다. 그리고 호출받은 라인이 사용되고 있지 않다면 호출받은자는 가령 가청의 신호음을 통해 정보를 듣게된다. 호출받은 선은 호출받은자에 의한 응답을 기다리거나 호출하는자에 의한 포기를 기다리며 감독을 받게된다.
반면에, 호출받은자가 다른 중앙사무소에 의해 서비스된다면, 즉 호출이 사무소간 호출이라면, 호출받은자를 서비스하는 중앙사무소로의 직접적인 트렁크에 대해 혹은 호출받은자의 중앙사무소로의 호출을 계속 진행시킬 수 있는 중간 중앙사무소로의 직접적인 트렁크에 대해 조사가 이루어진다. 호출받은 번호에 대한 정보는 발신하는 중앙사무소로부터 전송되며 최종의 중앙사무소로 정보를 전달하는 중간 중앙사무소에 의해 수신된다. 만약 호출받은 자의 라인이 호출중이면 또는 네트워크내 어딘가에서 호출이 차단되면, 또는 필요한 사무소간 트렁크가 모두 호출중이면 호출하는 가입자는 호출중 음, 패스트 호출중 음 또는 녹음된 목소리를 듣게된다.
상기에서 설명된 간단한 전화 호출을 처리하기 위한 스위칭 기능은 신호수신, 신호중재, 저장, 통로선택, 네트워크 통로제공 및 제어 그리고 신호전송으로 분류된다. 이같은 고객 서비스 기능에 추가하여, 스위칭 시스템은 용법을 등록하고 주기적으로 특정번호부 번호로부터 발생되는 용법과 관련된 요금을 계산하여야 한다. 현대의 스위칭 머신은 전자제어(논리 또는 저장된 프로그램)하에서 이들 및 다른 기능의 적어도 몇가지를 수행한다. 특히 실시간 처리 개념, 즉 빠르게 변경되는 사건을 따라가기에 충분한 빠른 속도로의 동작, 그리고 상호영향을 미치는 동작, 즉 여러 트랜잭션을 통해 컴퓨터 시스템과 관련되 있는 사람으로부터의 정보와 상호작용하며 이들을 받아들이고 처리하는 능력을 점점더 전화 스위칭 머신으로 적용되고 있다.
제1도는 두 전화가입자A와 B 사이의 통신을 설정하는데 사용되는 많은 분석 기능의 몇가지를 개략적으로 도시한다. 가입자 A는 가입자B로 호출하기 위해 전화기(10)을 사용하며 로컬교환기(12)로 연결된다. 로컬교환기(12)는 A-가입자로부터의 서비스요구, 즉 다이얼된 디지트의 도달을 탐지하며 서비스 분석(SA)(14), 목적지 분석(DA)(16) 그리고 경로배정 분석(RA)(18)을 포함하는 다수의 분석절차(기능)을 수행한다. 설명의 편의를 위해 제1도에서는 단 세개의 분석 SA(14), DA(16), 및 RA(18)만 도시되어 있으나, A-가입자로부터 B-가입자로의 호출을 완성하기 위해 로컬 교환기(12)에서는 여러개의 더욱더 많은 분석 기능이 수행될 수 있다.
SA(14)의 목적은 호출하는 가입자(A-가입자)를 식별하고 호출가입자가 가입상태와 다른 적당한 참작을 받아 호출할 수 있음을 입증하는 것이다. A-가입자의 디렉토리 번호는 이들 목적을 위해 검사될 수 있다. DA(16)의 주요한 목적은 B-가입자가 네트워크, 즉 전화유닛(24)의 위치에 연결되는 위치를 결정하는 것이다. 이같은 목적을 위해, 디어얼된 번호(B-가입자 전화번호)가 B-가입자가 센트렉스(centrex)그룹)(센트렉스는 특징에 있어서 PBX에 필적하는 서비스이나 중앙사무소에 몇가지 또는 모든 제어로 실시된다), 그리고 다른 적합한 요소에 속하는가에 대하여 A-가입자(같은 교환기 또는 다른 교환기)의 위치에 비추어 해석된다.
RA(18)의 목적은 A-가입자로부터 B-가입자로의 호출이 연결되는 네트워크 경로를 찾은 것이다. 이같은 분석은 호출의 최종 목적지, 즉 B-가입자 위치뿐 아니라 네트워크내 트래픽 혼잡, 즉 네트워크를 통한 각기 다른 경로에서의 부하, 호출의 특성, 즉 아날로그 또는 디지탈, 그리고 네트워크 용량의 유사한 표시에 달리게 된다. RA(18)의 결과를 기초로하여, 로컬 교환기(12)는 중간(toll 또는 transit) 교환기(20)으로의 호출을 경로배정하며, 상기 중간교환기(20)은 다시 로컬교환기(22)를 통하여 B-가입자의 전화유닛(24)로 호출을 경로배정한다.
제2도는 제1도의 로컬 교환기(12)에서 수행된 분석기능의 저장된 프로그램 제어를 설명한다. 제2도에 따라, 각 분석 가령, SA(14), DA(16), 그리고 RA(18)은 각기 다른 분석프로그램(30)으로 실시된다. 각 분석프로그램(30)으로의 입력은 호출파라미터, 가령 A-가입자번호 및 지역코드, B-가입자 번호 및 지역코드등 파라미터(32)의 예정된 배열로부터 공급된 파라미터들을 포함한다. 이들 파라미터들은 각 분석타입에 대하여 명시된 그리고 파라미터 값들의 조합을 해석하여 분석결과를 발생시키는 자료구조(34)에 간련하여 분석된다. 각 분석프로그램(30)과 각 관련된 자료구조(34)는 인간-기계 접속기(36)을 통해 네트워크 오퍼레이터에 의해 제어될 수 있다. 특히, 네트워크 오퍼레이터는 각 자료구조(34)내 자료로 적절한 값을 적용하여 관련된 분석이 네트워크내에서 로컬교환기(12)의 위치넘버링 플랜등을 부여받은 바람직한 결과를 발생시키도록 한다. 가령, 오퍼레이터는 일정 목적지로의 호출이 RA(18)과 관련된 자료구조(34)내의 자료로 적절한 값을 적용시키므로써 네트워크내에서 경로가 배정되는 방식을 변경시킬 것을 선택할 수 있다.
제2도에서 설명된 종래기술의 분석 접근 다수의 결점과 단점을 갖는다. 특히, 각각 다른 특수한 분석이 특수한 분석 프로그램(30)을 필료오 하기 때문에, 특수한 자료구조(34)에서 구성된 특수한(분석-특수된) 자료세트가 준비되고 각 분석프로그램(30)을 위한 특수한 인간-기계 접속기(36)을 통해 입력된다. 가령, DA(16)에서 사용되기 위해 넘버링 플랜을 규정하는 자료구조(34) 그리고 RA(18)에서 사용되기 위해 트렁크 네트워크에서 바람직한 경로배정 패턴을 규정하는 또다른 자료구조(34)는 이들 자료세트 각각을 위해 특별히 준비되어야 한다. 따라서 매우 숙련된 요원에 의한 프로그래밍 시간과 노력의 상당한 양이 각가 다른 상이한 분석과 전체 분석 패키지를 발생시키고 개발하는데에 투자되어야 한다. 더욱이, 각 분석으로의 입력 파라미터 타입 그리고 각 분석으로부터의 출력결과의 특성은 모두 예정된다. 겨로가적으로 새로운 타입의 파라미터 또는 결과의 소개는 기존 버젼의 재프로그래밍이나 관련된 분석 그로그램(30)과 자료구조(34)의 새로운 버전을 모두 상당한 비용으로 릴리이스할 것을 필요로하게 된다.
설제의 동작중에, 가령 네트워크가 과부하되는때 트래팩을 재조정하고, 네트워크의 일정부분을 통해 트래픽의 규모 또는 밀도와 같은 각기 다른 파리미터를 측정하며, 분석에서 추가의 파라미터를 포함시키도록 하기 위해 특정한 분석기능을 수정하는 것이 필요하거나 바람직하다. 그러나 제2도에서 설명된 바와 시스템 같은 종래기술의 분석 시스템에 따라, 네트워크 오퍼레이터 또는 스위치 벤더(vendor)는 네트워크 또는 네트워크내 특정 스위치의 모든 변경을 하려는 불가능한 작업을 해야하거나, 적어도 새로운 코드를 기존코드와 결합시키고 결과의 조합에서 잘못을 제거하는 빈번한 작업을 해야한다.
종래기술의 이같은 단점에 비추어, 본 발명의 목적은 어떤 단일분석에 특정되지 않으며 수행된 각 분석의 특색에도 불구하고 광범위한 분석을 수행하기 위해 사용될 수 있는 범용 분석 시스템을 제공하는 것이다. 이같은 범용 분석 시스템은 종래기술 시스템의 여러확장되고 더욱이 비싼 특수한 프로그램을 대신하여 일반 분석 시스템으로서 사용될 수 있다.
본 발명의 또다른 목적은 일반 분석 프로그램과 어떠한 바람직한 분석도 수행하도록 사용될 수 있다. 범용 분석 시스템내 분석 제어자료 구조를 제공하는 것이다.
본 발명의 또다른 목적은 새로운 기능이 규정될 수 있으며 분석에 영향을 미치도록된 새로운 파라미터가 분석 제어자료로부터 나타내질 수 있는 범용 분석 시스템을 제공하는 것이다. 새로운 기능과 새로운 파라미터가 범용 분석 프로그램에서 오퍼레이터에 의해 공급되는 자료 또는 분석을 위한 토대를 형성시키는 분석 제어자료내 사용자에 의해 공급되는 자료를 사용하므로써 일반 분석 프로그램을 재프로그램하지 않고 분석으로 추가될 수 있다.
본 발명의 또다른 목적은 입력 파라미터와 출력 결과를 저장하며 파라미터가 분석제어 자료로부터 더욱더 표시될 수 있도록 하는 호출제어 자료 구조를 제공하는 것이다.
본 발명의 구조 및 동작이 다음에 상세히 설명된다. 본 발명은 산업처리의 제어에서 사용되는 분석을 수행하기 위한 범용 분석 시스템을 제공한다. 범용 분석 시스템은 한 세트의 자료를 통해 적어도 하나의 분석을 수행하기 위한 범용 분석 프로그램과 자료세트의 분석을 제어하기 위한 분석 제어자료를 포함한다. 본 발명에 따라, 범용 분석 프로그램은 다수의 분석 원시함수를 포함하며 분석 제어자료는 다수의 분석모듈을 포함한다. 분석은 한세트의 분석 모듈로부터 구성될 수 있으며 분석 원시함수의 적어도 하나를 사용하여 이같은 세트를 해석하므로써 수행된다.
또다른 특징에서, 본 발명은 적어도 하나의 교환기, 그리고 각 교환기에서 다수의 분석 원시함수를 포함하는 범용 분석 프로그램, 다수의 분석 모듈을 포함하는 분석 제어자료, 교환기를 통한 각 전화호출에 대하여 하나씩인 다수의 호출기록을 포함하는 한 호출 제어자료로 구성된 전화호출을 처리하기 위한 시스템을 제공하는 것이다. 상기 분석모듈은 다수의 분석구조로 그룹으로 될수 있으며, 이들 각각은 각기 다른 분석을 제공한다. 가령, 분석구조는 경로배정 분석구조 그리고 목적지 분석구조를 포함한다.
또다른 특징에서, 본 발명은 산업처리를 위한 다수의 파라미터를 저장하고, 각각이 상기 파라미터의 분석일부를 제어하며 그중 적어도 하나가 분석으로부터 결과를 발생시키는 다수의 분석모듈을 수행하며, 그리고 상기 발생된 결과를 기초로하여 산업처리를 제어하는 단계를 포함하는 산업처리를 제어하기 위한 방법을 제공한다. 파라미터들은 산업처리로부터 발생된 입력, 산업처리의 특징을 규정하는 자료, 그리고 앞서-실행된 분석의 결과를 포함한다. 상기 결과는 중간이거나 분석으로부터의 최종 결과일 수 있다.
또다른 특징으로, 본 발명은 산업처리를 제어하도록 사용된 적어도 한 분석을 컴파일하고 실행하기 위한 방법을 제공하는 것으로서, 각각이 빌드절차와 두(do) 절차를 포함하는 다수의 고수준 분석 원시함수를 제공하며, 한가지 분석을 나타내는 나무구조를 형성시키는 제어-수준 분석모듈로 고-수준분석의 적어도 하나에 대한 빌드절차를 사용하는 다수의 제어-수준 분석모듈을 컴파일하고, 그리고 제어-수준 분석모듈을 컴파일하도록 사용되었던 고-수준 분석 원시함수의 두절차를 사용하여 나무구조내 각 제어-수준 분석모듈을 수행하는 단계를 포함한다.
하기에서는 첨부도면을 참조하여 본 발명을 상세히 설명한다.
본 발명의 여러특징들의 개요를 통해 우선실시예의 상세한 설명을 이해하는데 있어서 약간의 도움을 얻을 수 있을 것이다.
본 발명의 범용 분석 시스템의 구조를 통해 분석 제어 데이타에서 전반적인 분석의 명세화가 가능하게 된다. 즉, 분석대상 및 방법에 대한 질문의 해답이 분석제어 데이타의 특정요소들(이후 “분석모듈”이라 명명함)내에서 작업자에 의해 명시될 수 있다. 본 발명의 범용분석 시스템의 분석 제어 데이타 요소의 구조는 인간 및 기계간 인터페이스가 사용자에 익숙한 방식으로 작업자의 필요성을 충족시킬 수 있도록 한다. 더우기, 본 발명의 범용 분석 시스템의 범용 분석 프로그램 요소의 구조는 분석될 주체 및 의도된 분석결과와 크게 무관하다. 분석에 있어서 수행되는 범용 분석 프로그램내의 특정 서브프로그램들(이후 “분석원시함수”라 명명함)은 분석 제어 데이타내의 분석 모듈들에 의해 지시된다. 분석제어 데이타내의 분석모듈들은 또한 분석제어 데이타내에 대신 상주하는 다른 서브프로그램들의 실행을 지시할 수 있다. 분석들을 수행하는것 외에도, 본 발명의 서브프로그램들은 예컨대, 네트워크내의 다른 스위치들로부터 분석 데이타를 수집하거나 네트워크의 거동 또는 네트워크에 연결된 모든 전화가입자들에 관한 기술적 또는 통계적인 정보를 기록할 수 있다.
제3도에 본 발명의 범용 분석 시스템의 간략화된 블록 다이어그램이 도시되어 있다. 다수의 분석 프로그램들 및 대응하는 데이타 구조들 대신, 범용 분석시스템은 다수의 유용한 분석들 사이에서 분석 제어데이타(42)의 제어하에 필요한 분석을 수행하는 범용 분석 프로그램을 포함하고 있다. 말하자면, 분석 제어데이타(42)는 각각의 분석 수행을 위해 상이할지도 모르는 데이타 세트, 예컨대, 유사하게 분석될 여러 전화신청에 대한 상이한 데이타 세트들의 특정분석 거동을 제어하기 위한 하나의 계획을 제공한다. 제3도에 보여진 바와 같이, 분석되고 있는 데이타 세트는 일반적으로 특정 분석 또는 일련의 분석들을 수행하도록 요청될 때 범용 분석 프로그램(40)에 의해 수신된 입력데이타(44) 및 하나이상 분석을 수행하는 절차동안 범용 분석 프로그램(40)에 의해 접근될 수 있는 파라미터들(46)로 구성되어 있다.
입력데이타(44)는 설계자의 선택 및 특정응용의 필요성에 따른 여러형태의 정보를 포함할 수 있다. 일반적으로, 입력 데이타(44)는 하나이상의 분석될 데이타 세트들(실질적인 파라미터들), 분석될 데이타 세트들을 포함한 하나이상의 관련 구조체들에 대한 포인터들 또는 레퍼런스들 및 다른 유용한 정보를 포함할 수 있다. 파라미터들(46)의 형태들은 범용 분석 시스템의 각각의 응용에 크게 특유하다. 제4도에 보여진 봐와 같이, 입력데이타(44)는 통일체, 예컨대 범용분석 프로그램(40)이 분석을 수행하도록 하는 컴퓨터 프로그램에 의해 제공될 수 있는 반면, 파라미터들(46)은 응용에 있어서의 다수의 상이한 소스들에 의해 제공될 수 있다.
제4도에는 제3도에서 더욱 간략화된 형태로 표시된 범용 분석 시스템의 확장된 블록 다이어그램이 도시되어 있다. 이 다이어그램은 전화 스위치 또는 교환기에서의 전화신청 처리에 대한 본 발명의 응용을 도시하고 있다. 제4도에서, 입력 데이타(44)는 각각의 전화신청에 대한 여러분석들, 예컨대 디지트 또는 절차분석을 수행하기 위해 범용 분석 프로그램(40)에 대한 실행절차를 포함하여 교환기에서의 전화신청 처리의 전반적인 제어를 수행하는 호출 제어 프로그램(56)으로부터 범용 분석 프로그램(40)으로 제공된다. 이경우에 있어서, 파라미터들(46)은 호출 제어 데이타 구조체(54)안에 저장된 여러 호출 관련 데이타를 포함한다. 제4도에 보여진 바와 같이, 호출 제어데이타(54)안에 저장된 파라미터들(46)은 범용 분석 프로그램(40) 및 호출 제어 프로그램(56)에 의해 판독될 수 있다.
아래에 상세히 기술된 본 발명의 우선 실시예에서는 다수의 호출 레코드들이 호출 제어 데이타(54)안에 저장된다. 각각의 호출 레코드는 교환기를 통한 특정호출에 대한 하나의 데이타세트, 즉 호출 파라미터값들의 세트를 포함한다(모든 호출 레코드들은 호출 파라미터 위치들의 동일 세트를 포함하지만 각 호출 레코드 내의 파라미터값들은 특정 호출에 특유하다). 우선 실시예에서, 입력 데이타(44)는 분석되고 있는 호출를 위한 특정 호출 레코드에 대한 하나의 포인터 또는 헤퍼런스, 즉 호출 파라미터 값들(46)의 필요한 세트를 포함한다(우선 실시예에서, 분석 제어 데이타(42)는 여러 상이한 분석구조체들 및 하위구조체들을 포함하며, 입력데이타(44)는 또한 분석 프로그램(40)에 의해 실행될 특정 분석 구조체의 식별을 포함한다). 아래에 상세히 설명된 바와 같이, 범용 분석 프로그램(40)은 입력데이타(44)에 의해 지시된 호출 레코드내의 위치들중 하나로부터 특정 파라미터(46)의 값을 일기 위해 하나의 파라미터 식별(ID)(74)을 사용한다.
제4도에서, 호출 제어데이타(54)는 가입자 데이타 베이스(52)로부터 가입자 데이타(50) 및 전화가입자로부터의 가입자 입력(58), 예컨대 전화기(10)를 사용하여 A 가입자에 의해 입력된 숫자들을 포함한다. 가입자 데이타(50)는 예컨대 A 가입자의 지역번호, 서비스등급(사업 또는 거주고객) 및 다른 유사한 정보를 포함할 수 있다. 따라서, 호출 제어데이타(54)내의 각각의 호출 레코드는 특정호출에 대해서만 유효한 “일시적” 데이타, 즉 가입자입력(58) 및 특정 가입자로부터의 모든 호출에 대해서 유효한 “반영구적” 데이타, 즉 가입자 데이타(50) 모두를 저장할 수 있다.
가입자 데이타(50) 및 가입자 입력(58) 외에도, 호출 제어 데이타(54) 또한 분석 제어 데이타(42)의 제어하에 범용 분석 프로그램(40)에 의해 수행된 선행분석의 중간 또는 최종결과들, 다른 호출 처리 결과들 및 호출 제어 프로그램(56)에 의해 호출 제어 데이타(54) 안으로 쓰여진 다른 데이타를 포함할 수 있다. 모든 분석으로부터 얻어진 결과들은 범용분석 프로그램에 의해 호출 제어 데이타(54) 안으로 쓰여질 수 있으며, 후에 계속적인 분석을 수행하기 위해 범용 분석 프로그램(40)에 의해 사용되거나, 약간의 외부처리를 제어하기 위해 호출 제어 프로그램(56)에 의해 사용될 수 있다. 예컨대, 범용 분석 프로그램(40)은 절차분석을 수행하기 위해 종착분석의 결과들을 호출 제어 데이타(54)안으로 기록할 수 있다. 그후, 절차 분석의 결과들은 범용 분석 프로그램(40)에 의해 호출 제어 데이타(54) 안으로 기록될 수 있으며, 네트워크를 통해 호출을 전송하기 위한 하나의 트렁크(trunk)를 선택하기 위해 호출 제어 프로그램(56)에 의해 사용될 수 있다.
본 발명에 따르면, 범용 분석 프로그램(40)은 분석 제어 데이타(42)의 제어하에 수행되는 다수의 분석들중 어떤 하나를 일반적으로 지시하기 위해, 더나아가서는 지시된 분석이 수행되는 호출 제어데이타(54)내으 파라미터들(46)의 세트를 일반적으로 표시하기 위해 입력데이타(44)를 사용한다. 그런, 특정 파라미터값들이 분석되는 특정 절차 또는 순서 및 범용 분석 프로그램(40)에 의해 각 파라미터값에 수행되는 특정분석은 모두 분석 제어 데이타(42)에 의해 결정된다. 예컨대, 숫자(호출번호 또는 피호출번호) 분석의 경우, 숫자들이 분석되는 순서 및 분석중인 각 숫자에 수행되는 작업들은 분석 제어 데이타(42)에 의해 지시되거나, 더욱 특수하게는 숫자 분석을 위해 분석 제어 데이타 구조체에 상주하는 특정분석 모듈들에 의해 지시된다.
이러한 분석 제어데이타(42)의 특성이 상이한 형태의 분석들을 수행하기 위한 범용 프로그램, 즉 범용 분석 프로그램의 사용 및 새로운 파라미터들을 추가하여 오직 하나의 인간-기계 인터페이스와 함께 새로운 형태의 결과들을 생산하는 자유도를 가능케한다. 작업자는 오직 하나의 데이타 구조체, 즉 분석 제어데이타(42)의 형식만을 아는 것이 필요하며, 실재의 함수들을 쉽게 수정할 수 있고, 범용 분석 프로그램(40)에 대한 코드를 수정하거나 한줄을 코드를 추가하지 않고도 인간-기계 인터페이스를 사용하여 실제 작업동안 새로운 함수를 추가할 수 있다. 어떤 의미에서는 범용 분석 프로그램(40)이 단지 분석 제어데이타(42)의 해석기로서 작동하게 된다. 범용 분석 프로그램(40), 분석 제어데이타(42) 및 호출 제어데이타(54)의 한 실시예가 제5-6도에 도시되어 있다.
제5도에서는 제3-4도에서 보여진 범용 분석 프로그램(40) 및 분석 제어 데이타(42)의 구조가 도시적으로 표시되어 있다. 범용 분석 프로그램(40)은 “분석 원시함수들”(78)로서 언급되는 다수의 서브 프로그램들로부터 구성될 수 있다. 분석 제어데이타(42)는 “분석 모듈들”(70)로서 언급되는 다수의 요소들로부터 구성될 수 있다. 본 발명의 우선 실시예에 있어서, 여러 범주의 분석 원시함수들(78) 및 분석모듈들(70)이 사용된다. 특히, 분석 원시함수들(78)은 “저 레벨 분석 원시함수들” 또는 “고레벨 분석 원시함수들”일수 있다. 더우기, 분석 모듈들(70)은 “저레벨 분석 모듈들”, “고레벨 분석 모듈들” 또는 “제어 분석 모듈들”일 수 있다. 달리 문맥이 요구되지 않으면, “분석 원시함수” 및 “분석 모듈들”이란 용어가 각각 모든 범주의 분석 원시함수 및 분석모듈을 언급하기 위하여 사용되는 반면, 각각의 개별적인 범주는 적절한 수식어, 즉 “저레벨”, “고레벨” 또는 “제어레벨” 등과 함께 언급될 것이다.
분석 원시함수들(78) 및 분석 모듈들(70)의 범주 각각은 이후 상세히 기술되는 본 발명의 우선 실시예에서 특별한 역할을 수행한다. 우선 실시예에서, 저레벨 및 고레벨 분석 원시함수들(78)은 여러종류의 내장 원시함수들이다. 저레벨 분석 원시함수들(78)은 저레벨 분석모듈들(70)을 구성하기 위해 사용될 수 있으며, 또한 저레벨 분석모듈들(70)은 고레벨 분석모듈들(70)을 구성하기 위해 사용될 수 있다. 사용자 정의 고레벨 분석모듈들(70) 및 내장 고레벨 분석 원시함수들(78)은 특정 분석을 제어하기 위한 여러종류의 제어레벨 분석모듈들(70)을 구성하기 위해 사용될 수 있다. 본 논의의 목적상 제5도는 분석 제어데이타(42)내의 일반적 형태의 제어 레벨 분석모듈(70)을 나타낸다.
제5도에서, 각각의 제어레벨 분석모듈들(70)은 전체 분석의 특정부분을 제어하는 예정된 구조체를 갖고 있으며, 예컨대 전화번호의 하나의 숫자를 분석한다. 제5도에 있는 전형적인 제어레벨 분석모듈(70)은 예컨대, 파라미터 식별(ID)(74) 및 다른 제어 데이타(76)를 포함하는 변수-내용 제어필드(60) 및 함수지시자(72)로 구성되어 있다. 이 제어레벨 분석모듈(70)은 또한 분석 제어 데이타(42)내의 적어도 하나의 다른 제어레벨 분석모듈(70)의 제어필드(60)내에 포함될 수 있는 모듈 지시자(80)에 의해 식별된다.
제5도를 참조할때, 함수지시자(72)는 범용 분석 프로그램(40)내에 상주하는 고레벨 분석 원시함수들(78)중 하나를 지시한다. 그러나, 우선 실시에에 대한 논의로부터 명백해지는 바와 같이, 함수지시자(72)는 고레벨 분석 원시함수들(78)과 유사한 방식으로 작동하지만 분석 제어데이타(42)내에 상주하는 고레벨 분석 모듈들(70)중 하나를 대신 지시할 수 있다. 참조된 고레벨 분석 원시함수(78) 또는 고레벨 분석 원시모듈(70)은 참조 제어레벨 분석모듈(70)내의 제어필드(60)의 내용들, 즉 이경우, 파라미터 ID(74) 및 제어 데이타(76)의 특성 및 배치를 결정하며, 이 내용들을 역으로 해석할 수 있다. 파라미터 ID(74)는 제어레벨 분석모듈(70)에 의해 분석될 호출 파라미터값(데이타 부분집합)의 위치를 지시한다. 제어데이타(76)는 예컨대, 분석모듈들(70)의 모둘 지시자들(80)을 포함할 수 있으며, 이로부터 파라미터ID(74)에 의해 지시된 파라미터값의 분석에 기초한 실행을 위해 다음 분석모듈(70)이 선택된다.
제6도에서, 제4도에 도시된 호출 제어데이타(54)의 구조가 도식적으로 표시되어 있다. 제4도와 관련하여 앞서 논의된 바와 같이, 호출 제어데이타(54)는 가입자 데이타(50), 가입자입력(58), 범용 분석 프로그램(40)에 의해 기록된 초기의 분석결과들, 호출 제어프로그램(56)에 의해 기록된 다른 처리결과들 및 다른 데이타를 포함한다. 따라서, 전호 가입자로부터의 호출와 관련된 모든 데이타는 호출 제어 데이타구조체(54)안에 저장될 수 있으며, 호출 분석시 파라미터 ID(74)의 도움으로 범용 분석 프로그램(40)에 의해 또는 범용 분석 프로그램을 통해 접근될 수 있다. 제6도에 보여진 바와 같이, 호출 제어 데이타(54)는 분석되는 각각의 호출를 위해 호출 레코드(116)를 포함한다. 호출 레코드(116)는 한 세트의 파라미터 값들을 포함하며, 이들 각각은 독특한 파라미터ID(74)에 의해 식별되고 관련되는데, 말하자면, 호출 레코드(116)는 파라미터ID들(74) 및 대응하는 호출 파라미터값들의 목록으로서 구체화될 수 있다.
제6도에서, 각각의 호출 파라미터값, 즉 호출 레코드(116)내의 값들중 하나의 분석은 분석 제어데이타(42)안의 적어도 하나의 제어 레벨 분석모듈(7)에 의해 제어될 것이다. 제어 레벨 분석모듈(70)내의 함수지시자(72)에 의해 참조된 고레벨 분석 원시함수(78)(또는 고레벨 분석모듈(70))은 호출 레코드(116)안의 파라미터값과 관련된 대응 파라미터 ID(74)와 제어레벨 분석모듈(70)에서 발견된 파라미터 ID(74)를 일치시키므로써 호출레코드(116)로부터 필요한 파라미터값을 검색할 수 있다. 파라미터값이 검색된 후 이값은 예컨대, 제어레벨 분석모듈(70)로부터 적절한 출구를 선택하기 위해, 즉 해석될 다음 분석모듈(70)의 모듈지시자(80)를 선택하기 위해 제어레벨 분석모듈(70)내의 제어필드(60)를 해석하고 있는 분석 원시함수(78)에 의해 사용될 수 있다.
분석을 시작할때, 범용 분석 프로그램(40)은 분석 제어 데이타(42)안의 분석 구조체에 대한 포인터 및 호출제어 데이타(54)내의 호출레코드(116)에 대한 포인트, 즉 한세트의 파라미터들을 수신한다. 범용 분석 프로그램은 분석 제어데이타(42)내의 특정 분석모듈(70), 예컨대 제5-6도의 분석모듈의 내용들을 해석한다. 분석모듈(70)내의 파라미터ID(74)에 의해 지시된 파라미터는 호출 제어 데이타(54)로부터 불리워지며 함수지시자(72)에 의해 지시된 분석 원시함수(78)는 범용 분석 프로그램(40)으로부터 불리워져 실행된다. 그다음, 분석모듈(70)의 제어필드로부터 선택된 모듈지시자(80)에 의해 지시되는 다음 분석모듈(70)과 함께 분석이 계속된다. 이러한 절차은 분석이 끝날때까지 같은 방식으로 반복될 수 있다. 결과적으로, 모든 필요한 분석은 다수의 분석모듈들(70)을 이들의 제어필드들(60)내의 모듈지시자(80)를 통해 서로 연결시키므로써 구현될 수 있다. 즉, 하나이상의 분석모듈들(70)이 다른 분석모듈(70)로의 출구를 가지는 곳에서, 즉 다른 분석모듈(70)을 지시하는 모듈지시자(80)를 포함하는 장소에서, 제7도에 도시된 바와 같이, 입력데이타(44) 및 다른 인자들에 의해 지시된 파라미터들(46)에 기초하여 분석제어 데이타를 통해 출구들의 경로를 선택하므로써 분석이 수행될 수 있다.
제7도에는 본 발명의 범용 분석 시스템에 의해 수행된 모범적인 분석에 있어서 범용 분석 프로그램(40), 분석 제어 데이타(42) 및 호출 제어데이타(54)들 사이의 상호작용이 도식적으로 나타나있다. 제7도에서, 분석 제어데이타(42)(도시되지 않음)내의 세개의 전형적인 분석모듈들(70)이 명백성과 편리성을 위해 분석모듈들(82,84,86)으로써 독립적으로 번호가 매겨져 있으며, 범용 분석 프로그램(40)내의 두개의 전형적인 분석 원시함수들(78)이 또한 분석 원시함수들(88,90)으로써 독립적으로 번호가 매겨져 있다. 간단히 하기 위하여, 분석 원시함수(88)는 참조분석 모듈(70)로부터 이 모듈(70)에 의해 분석되는 파라미터값에 기초한 다음 분석모듈로의 출구, 즉 모듈지시자(80)를 선택하는 “선택자”의 형태인 것으로 가정한다. 한편, 분석 원시함수(90)는 중간 또는 최종결과값을 호출 제어 데이타(54)안으로 기록하는 결과 생성 분석 원시함수이다.
전형적인 분석을 시작함에 있어서, 범용 분석 프로그램(40)은 실행될 함수(분석 원시함수 78)를 식별하기 위하여 분석모듈(82)을 해석한다. 분석모듈(82)내의 함수지시자(72)는 분석 원시함수(88)를 지시하기 때문에, 범용 분석 프로그램(40)은 분석 원시함수(88)를 실행시키며, 또한 이 함수(88)는 다음 분석모듈(70)로서 분석모듈(84)을 선택하기 위하여 분석모듈(82)내의 파라미터 ID(74)에 의해 식별된 파라미터값을 사용한다. 이 시점에서 범용분석 프로그램(40)은 분석모듈(84)을 해석하면, 분석모듈(84)내의 함수지시자(72)에 의해 지시된 분석 원시함수Z(88)를 다시 실행시킨다. 분석모듈(84)내의 파라미터 ID(74)에 의해 식별된 파라미터값을 기초로하여 분석모듈(86)은 분석에 있어서 다음번 분석모듈(70)로서 선택된다. 전형적인 분석은 이 선들을 따라 진행되며, 예컨대, 분석이 분석모듈(86)을 통과할때 결과 생성 분석 원시함수(90)에 의해 중간 또는 최종결과가 결국 생성되어 호출 제어 데이타(54)안으로 기록될 수 있다.
제8도에는 제5-7도에 보여진 형태의 제어레벨 분석모듈들의 사슬들로부터의 종착분석의 구조가 도식적으로 나타나 있다. 제8도는 제7도에 더욱 일반적으로 도시된 변형적인 분석의 본보기를 나타낸다. 제8도에서는 4개의 전형적인 제어레벨 분석모듈들(70)만이 도시되어 있으며, 명백하게 하기 위해 분석모듈들(92,94,96,98)로서 독립적으로 번호가 매개져 있다. 제어 레벨 분석모듈들(92,96)은 하나의 같은 형태이며, 제어레벨 분석모듈들(94,98)은 또다른 형태를 갖고있다. 특히, 각각의 제어레벨 분석모듈들(92,96)내의 함수지시자(72)는 “선택자”라 불리는 일종의 고레벨 분석 원시함수들(78)을 지시하며, 반면 각각의 제어레벨 분석 모듈들(94,98)내의 함수지시자(72)는 “최종결과”라 불리는 다른종류의 고레벨 분석 원시함수들(78)을 지시한다(그러나, 선택자 및 최종 결과는 고레벨 분석 원시함수들(78) 대신 고레벨 분석 모듈들(70)이 될수 있다). 선택자 분석 원시함수(78)의 기능은 참조 제어레벨 분석모듈(70)내의 파라미터 ID(74)에 의해 지시된 파라미터값에 기초한 참조 제어 레벨 분석모듈(70)의 제어필드로부터 모듈지시자들(80)중 하나를 선택하는 것이다. 한편 최종 결과 분석 원시함수(78)의 기능은 예정된 값을 참조 제어레벨 분석모듈(70)의 제어필드(60)에서부터 참조 제어레벨 분석모듈(70)내의 파라미터ID(74)에 의해 지시된 파라미터로 할당하는 것이다.
언급된 바와 같이, 모든 제어레벨분석모듈(70)내의 제어필드(60)의 형식은 함수 지시자(72)에 의해 참조된 고레벨 분석 원시함수(78)(또는 고레벨 분석모듈(70))의 종류에 의존한다. 선택자 형태의 제어레벨 분석모듈들(92,96)의 경우, 제어필드(60)는 분석사슬에서 다음번 분석모듈(70)이될 지원자들인 여러 다른 제어레벨 분석모듈들(70)을 지시하는 다수의 모듈 지시자들(80) 및 하나의 파라미터ID(74)를 포함한다. 각각의 제어레벨 분석모듈들(92,96)내의 파라미터ID(74)에 의해 지시된 파라미터값에 따라, 제어레벨 분석모듈(92,96)이 각각 실행될때마다 다른 분석모듈(70)이 분석사슬에서 다음번 분석모듈(70)로서 선택될 수 있다.
한편, 각각의 최종 결과 형태의 제어 레벨 분석모듈들(94,98)내의 제어필드(60)는 대응하는 제어레벨 분석모듈(94 또는 98)이 실행될때 파라미터ID(74)에 의해 지시된 파라미터에 대한 위치안으로 쓰여지게될 하나의 예정값 및 하나의 파라미터ID(74)를 포함한다. 제8도의 결과 생성 분석모듈들(94,98)은 최종결과를 생성하기 위해 사용되는데, 즉 이들 함수 지시자들(72)은 최종 결과 형태의 분석 원시함수(78)를 참조하며, 따라서 분석의 종착점들을 구성하게 된다. 중간 결과들을 생성하는 분석 원시함수들(78)의 예들이 부록 A에 보여진다. 중간 결과들을 생성하기 위해 사용되는 분석모듈들은 이들이 분석에서 종착점들이 아니기 때문에 다음번 분석모듈(70)에 대한 분석 지시자(80)를 필요로 한다는 것을 제외하고는 구조상 분석모듈들(94,98)과 유사하다.
제8도에서, 제어 레벨 분석모듈들(92,94,96,98)은 호출, 예컨대, 전화기를 사용하여 A-가입자에 의해 입력된 전화번호의 숫자들의 종착분석을 수행하기 위해 사용된다. 분석되는 호출에 대한 호출 레코드(116)내의 관련 파라미터들의 일부가 제8도에 나타나 있다. 제8도의 전형적인 종착분석을 위해, 실제는 많은 다른 파라미터들이 호출레코드(116)안에 기록되지만 4개의 파라미터들만이 호출레코드(116)에 저장된 것으로 표시되어 있다. 4개의 전형적인 호출 파라미터들은 대응 파라미터ID들(74)(포인터들)도 번역되는 외부명들, 즉 “수신지”, “디지트 1”, “디지트 2”, 및 “디지트 3”으로 주어진다. 파라미터 “수신지”는 종착분석의 최종분석(48)을 참조한다. 호출 레코드(116)내에서 이 파라미터의 위치는 종착분석의 종료시의 값을 수용한다. 파라미터들 “디지트 1”, “디지트 2” 및 “디지트 3”은 각각 가입자입력(58)에서의 제1, 제2 및 제3입력 숫자들을 참조한다. 호출 레코드(116)내의 이들 파라미터들의 위치들은 호출의 시작시의 값들을 수용한다.
제8도에서, 분석모듈(92)은 “디지트 1”로 식별되는 제1입력 숫자의 분석을 제어하는데, 10개의 가능한 제1숫자값들(0-9)에 대응하는 분석모듈(92)로부터 총 10개의 가능한 출구들이 있게된다. 분석모듈(92)의 실행은 분석모듈(92)내의 함수지시자(72)에 의해 지시된 선택자 분석 원시함수(78)의 실행을 유발시킨다. 예컨대 “디지트 1”이 0이 되어 장거리 호출를 지시하게되면, 분석모듈(94)은 종착분석에서 다음 분석모듈(70)로서 선택될 것이다. 분석모듈(94)은 결과 “장거리 호출”가 쓰여져야 하는 장소인 호출 레코드(116)내의 위치를 식별하는 파리미터ID(74)의 “수신지”를 포함한다. 분석모듈(74)의 실행은 값 “장거리 호출”를 파라미터 “수신지”에 할당하는 최종결과 분석 원시함수(78)의 실행을 유발한다(명칭 “장거리 호출”는 파라미터ID “수신지”에 대응하는 위치로 기록되는 특정 상수값으로 번역될 것이다). 이러한 경우, 스위치는 제2, 제3등의 입력된 숫자들의 또다른 종착분석을 수행할 필요가 없으나 호출를 네트워크 계층내에 적절한 장거리 스위치에 단순히 연결시킬 수 있다.
한편, 최초 입력된 숫자가 1이면, 분석모듈(96)은 종착 분석에서 다음번 분석모듈(70)로서 선택될 것이다. 분석모듈(96)은 92와 같은 형태이나 “디지트 2”로 식별되는 제2입력 숫자의 분석을 제어한다. 분석모듈(96)의 실행은 유사하게 분석모듈(96)내의 함수지시자(72)에 의해 지시된 선택자 분석 원시함수(78)의 실행을 유도한다. 제2입력숫자도 또한 1이 되어, 숫자화 계획에 의해 할당된 동일 목록영역에 있는 또다른 스위치에 의해 서비스를 받는 B 가입자와의 호출를 지시한다면, 분석모듈(98)은 종착분석에서 다음 분석모듈(70)로서 선택될 것이다. 분석모듈(98)은 94와 동일한 형태이나 호출 레코드(116)내의 파라미터ID(74)의 “수신지”에 대응하는 위치에 쓰여져야 하는 것에 대한 결과, 즉 “또다른 스위치”(“장거리 호출” 대신에)를 포함한다. 분석모듈(98)의 실행은 파라미터 “수신지”로 값 “또다른 스위치”를 할당하는 최종 결과 분석 원시함수(78)의 실행을 유발한다. 이경우, 스위치는 제3, 제4등의 입력된 숫자들에 대한 또다른 종착분석을 수행할 필요가 없으나 신청된 B 가입자를 서비스하는 다른 스위치로 단순히 호출를 연결시킬 수 있다.
제8도는 두가지 경우들, 즉 제1입력이 0이거나 또는 제1 및 제2입력들이 모두 1인 경우에 대한 종착분석의 진행을 나타낸다. “디지트 1”이 0값을 가지게 되면, 종착분석 절차이 진행된 후에 파라미터 “수신지”는 “장거리 호출”값을 가지게 된다. 한편, “디지트 1” 및 “디지트 2”가 모두 1값을 갖게되면 “수신지” 호출 파라미터의 값은 종착분석의 실행후 “또다른 스위치”가 될것이다. 간단히 하기 위하여, “디지트 1” 및 “디지트 2”의 값들이 다른 분석(또는 같은 사건에 대해 나머지 숫자들, 예컨대 “디지트 3”의 분석)은 제8도에 보여지지 않으나 유사한 선들을 따라 진행되는 것으로 고려되어야 한다. 예컨대, “디지트 1”이 0도 1도 아니어서 이 스위치에 의해 서비스받는 B 가입자와의 호출를 지시하면, 디지트값들(2-9)중 하나에 대응하는 모듈지시자들(80)중 하나가 선택되며 지시된 다음 분석모듈(70)이 실행될 것이다. 입력된 나머지 숫자들중 하나이상이 분석되고 최종결과(48)가 “수신지” 파라미터 위치로 기록될때까지 종착분석은 계속될 것이다. 스위치는 결국 호출를 피신청 가입자에게 또는 피신청 가입자가 연결된 PBX(사설 구내 교환기)에 직접 연결할 것이다.
따라서, 본 발명의 범용 분석 시스템에 의해 수행된 분석은 분석모듈들의 제어필드들(60)로부터 도출된 포인터들에 의해 상호 연결된 다수의 분석모듈들(70)(노드들)로 구성된 트리구조체로 표현될 것이다. 특정 제어필드(60)의 내용들 및 다음 모듈지시자(80)(존재한다면)가 특정 필드로부터 도출되는 방식은 함수지시자(72)에 의해 지시된 고레벨 분석 원시함수(78)의 형태에 의존한다. 제5-8도에 도시된 제어레벨 분석모듈들(70)을 위해, 제어필드(60)는 단일 파라미터ID(74)를 포함한다. 그러나, 다른 제어레벨 분석모듈들(70)은 여러 호출 파라미터값들을 사용할 수 있는데, 즉 여러 파라미터ID들(74)을 포함하거나 호출 파라미터값들을 전혀 사용하지 않을 수도 있다. 달리 말하면, 분석 제어 데이타(42)내의 제어 레벨 분석모듈(70) 각각이 함수지시자(72)를 포함하는 반면, 파라미터ID(74)는 선택적인 특성이다. 사실상, 전체 제어필드(60)의 내용들은 선택적이며 필드를 분석하는데 사용되는 고레벨 분석 원시함수(78)의 형태에 의존한다. 달리 말하면, 각 형태의 고레벨 분석 원시함수들(78)에 대한 코드는 제어레벨 분석모듈들(70)의 특정 대응구조체를 해석한다.
여러분석들에서 기본 요소들로서 사용될 수 있는, 즉 제어레벨 분석모듈들(70)을 해석하기 위해 불리워진 고레벨 분석 원시함수들(78)은 여러 다른 형태가 될수 있으며, 이들중 일부는 유사한 기능, 예컨대 선택, 결과 생성등을 수행할 수 있다. 고레벨 분석 원시함수들(78)은 제어레벨 분석모듈(70)내의 여러 가능한 출구들, 즉 모듈지시자(80)중 하나이상을 선택하여 선택된 모듈지시자(80)에 의해 지시된 다음 분석모듈(70)로 분석을 진행하기 위하여 파라미터들(46)의 값들중 하나이상을 사용하는 “선택자들”일수 있다. 일종의 선택자는 분석모듈(70)의 제어필드(60)내의 출구들의 목록에 대한 인덱스로서 파라미터들(46)중 하나를 사용할 수 있는 반면(예컨대, 제8도와 관련하여 논의된 “선택자” 분석 원시함수(78)), 다른종류의 선택자는 파라미터(46)의 값을 제어필드(60)내의 다수의 값들과 비교하여 하나의 문자열, 부울, 비트형 또는 하나의 산술 비교가 될수 있는 이러한 비교를 기초로하여 출구를 선택할 수 있다. 다른 선택자들은 예컨대, 원형의 확률적인 또는 백분율 분포에 따라 출구들 사이에 분포되는 분산자들일 수 있다.
고레벨 분석 원시함수들(78)의 다른형태들은 결과 생성작업, 즉 분석모듈(70)의 실행으로부터 호출 제어데이타(54)로의 출력 데이타의 전달(예컨대, 제8도와 관련하여 논의된 “최종결과” 분석 원시함수(78)), 또는 분석 제어작업, 즉 예컨대, 분석모듈들(70)의 그룹 또는 서브그룹에 대한 요청 및 그룹 또는 서브그룹의 분석이 완성되었을때의 회귀를 포함하는 분석절차의 제어에 할당될 수 있다. 고레벨 분석 원시함수들(78)은 또한 분석 제어 원시함수들, 예컨대 선택자들과 달리, 분석을 통한 경로의 선택에 영향을 미치지 않는 대신 예컨대, 통계등록, 결과보고, 파라미터 값들의 수정 또는 네트워크내의 다른 스위치들로의 신호 전달등과 같은 특정 기능을 수행하는 특정 분석 원시함수들을 포함할 수 있다.
위에 언급된 많은 고레벨 분석 원시함수들(78)은 또한 부록 A에서 논의된다. 특히 인덱스 선택자 분석 원시함수(78)에 대한 논의 또한 아래의 우선실시예의 기술에서 발견될 수 있다. 여기에서 논의된 고레벨 분석 원시함수들(78)의 형태들은 단지 본보기에 불과하며 본 발명에 사용될 수 있는 많은 가능한 형태들의 부족을 나타내지 않는다는 것을 당해기술자들은 인지할 것이다. 또한, 부록 A에 기술된 함수들이 범용 분석 프로그램(40)에 상주하는 고레벨 분석 원시함수들(78) 대신 분석 제어 데이타(42)에 상주하는 고레벨 분석 원시함수들(78) 대신 분석 제어 데이타(42) 내에 상주하는 고레벨 분석 모듈들(70)에서 실행될 수 있다는 사실이 본 발명의 우선 실시예의 계속되는 설명으로부터 인지될 것이다.
제어 레벨 분석모듈들(70)을 해석하는 고레벨 분석 원시함수들(78)(또는 고레벨 분석모듈들(78))과 같이 제어레벨 분석 모듈들(70)은 여러 대응형태들일 수 있다. 예컨대, 함수지시자(72)가 인덱스 선택자 분석 원시함수(78)를 참조하는 제어레벨 분석모듈들(70)의 경우, 제어데이타(76)는 모듈 지시자들(80)의 목록으로 배열될 수 있으며, 인덱스 선택자(78)는 목록을 인덱스하고 실행될 다음분석 모듈(70)에 대한 포인터로서 대응 모듈 지시자(80)를 선택하기 위해 파라미터(46)의 값을 사용할 수 있다(제13도 참조). 그러나, 제9(a)-(b)도에 보여진 바와 같이, 제어필드(60)는 모듈 지시자들(80)외에 다른 유용한 정보를 포함할 수 있다.
제9(a)-(b)도에서 분석모듈의 제어필드(60)내의 제어데이타(76)의 두 전형적인 사용예가 도식적으로 도시되어 있다. 제9(a)도는 함수지시자(72)가 인덱스 선택자(78)과 대조적으로 다수의 모듈지시자들(80)중 하나를 선택하기 위해 파라미터(46)를 사용하지 않지만 대신 제어필드(60)내의 모듈지시자들(80) 사이에서 주기적으로 선택하는 원형분포 선택자 분석 원시함수(78)를 지시하는 경우에 분석모듈(70)의 제어필드(60)의 내용물의 배열을 도시하고 있다. 제9(a)도에 보여진 제어필드(60)는 다음 모듈지시자들(80)외에 다른 제어데이타를 저장하는 다수의 서브필드들 또는 슬롯들(76a-f)을 포함한다. 제9(a)도에 보여진 원형분포예에서, 슬롯(76a)은 가능한 출구들, 즉 다음 분석모듈들(70)의 가능한 수의 수신지를 포함하며, 슬롯(76b)은 분석뮬(70), 즉 분석경로가 제9(a)도에 보여진 분석모듈(70)을 마지막으로 횡단한때에 선택된 다음 분석모듈(70)로부터 마지막 사용된 출구에 대한 하나의 레퍼런스를 포함하는 반면, 슬롯들(76c-f) 각각은 분석모듈(70)로부터 가능한 출구들중 하나를 참조하는 모듈지시자(80)를 포함한다. 이 특수에에서는 4개의 가능한 출구들이 있으며, 마지막 사용된 출구는 슬롯(76d)내의 모듈 지시자(80)에 의해 지시된 분석모듈(70)이었다.
분석이 제9(a)도에 보여진 분석모듈(70)을 통과할때, 원형 분산자(78)는 원형 분포에서 마지막으로 사용된 모듈지시자(80)를 순차적으로 따르는 모듈 지시자(80)를 선택하며, 선택된 모듈지시자(80)를 지시하기 위해 슬롯(76b)에서 마지막으로 사용된 출구에 대한 레퍼런스를 수정할 것이다. 하나의 실행에 있어서, 슬롯(76b)내의 레퍼런스는 단순히 분석이 제9(a)도에 보여진 분석모듈(70)을 통해 진행될때마다 증분되는 계수기의 값일수 있다. 그다음, 슬롯(76a)내에 저장된 값은 계수를 반복하기 위해 상한을 넘을때마다 하한으로 리셋되는 계수기의 값에 대한 상한을 나타낼 것이다. 제9(a)도에 보여진 예에서, 원형 분산자(78)는 슬롯(76e)내의 모듈 지시자(80)를 선택하여 슬롯(76e)을 지시하기 위해 슬롯(76b)내의 레퍼런스를 갱신할 것이다. 보여지는 바와 같이, 원형 분산자(78)에 의한 출구, 즉 다음번 분석모듈(70)의 선택은 파라미터(46)를 참조하여 이루어지지 않지만 마지막으로 사용된 출구슬롯(76b)내의 계수기값에 의존한다.
제9(b)도는 제어필드(60)에서 제어데이타(76)의 또다른 사용을 도시하고 있다. 특히, 제9(b)도는 함수지시자(72)가 분석이 제9(b)도에 보여진 분석모듈(70)을 통해 진행되는 순간의 시각을 기초로하여 제어필드(60)내의 모듈지시자(80)를 선택하는 시간종속 선택자 분석 원시함수(78)를 가르키는 경우에 제어필드(60)의 내용들의 배열을 도시하고 있다. 이러한 방법으로, 특정절차가 특정시각동안 처리된 호출들을 위해 선택될 수 있으며, 다른 절차가 또한 다른 시각동안 처리된 호출들을 위해 선택될 수 있다. 예컨대, 정상 업무시간동안 전화 고객에게 이루어진 호출들은 정상호출 취급을 받으며, 반면 일과후 이루어진 호출들은 자동적으로 음성 우편 시스템 또는 응답 서비스로 처리된다. 제9(b)도에 보여진 전형적인 분석모듈(70)은 호출 처리시 수행된 절차분석에 있어서 필요한 시간 차별화를 달성하기 위하여 사용될 수 있다.
제9(b)도에서, 제어필드(60)는 시간 종속 선택자(78)에 의해 선택될 수 있는 경로들의 수를 표시하는 하나의 서브필드(76w)를 포함한다. 설명을 위해 세개의 경로들 X,Y 및 Z가 제9(b)도에 도시되어 있다. 각각의 경로는 시각시간 데이타, 종료시간 데이타 및 경로와 관련된 다음 분석모듈(70)에 대한 레퍼런스, 즉 모듈 지시자(80)를 각각 포함하는 세개의 슬롯으로 구성된다. 시작 및 종료시간 데이타는 시간 종속 선택자(78)가 경로와 관련된 다음 분석모듈을 선택하게 되는 시간간격을 정의한다. 예컨대, 슬롯(76x-1)에서의 시작시간 데이타 및 슬롯(76x-2)에서의 종료시간 데이타는 슬롯(76x-3)에서 모듈 지시자(80)가 선택되어지는 시간간격을 정의한다. 유사하게, 슬롯(76y-1)에서의 시작 시간데이타 및 슬롯(76y-2)에서의 종료시간 데이타는 슬롯(76y-3)에서의 모듈 지시자(80)가 선택되어지는 시간 간격을 정의하며, 슬롯(76z-1)에서의 시작 시간데이타 및 슬롯(76z-2)에서의 종료시간 데이타는 슬롯(76z-3)에서의 모듈지시자(80)가 선택되어지는 시간간격을 정의한다. 따라서, 분석이 제9도에서 보여진 분석모듈(70)을 통해 진행될때, 시간장속 선택자(78)는 경로들, X,Y 및 Z에서 정의된 시간간격들과 시각을 비교하여 시각과 일치하는 시간간격을 가진 경로와 관련된 모듈지시자(80)에 의해 지시된 경로를 선택할 것이다.
따라서, 제9(a)-(b)도는 어떠한 파라미터ID들(74)도 포함하지 않는, 즉 참조 제어레벨 분석모듈들(70)에서 특정 제어데이타(76)를 해석함에 있어서, 어떠한 파라미터들도 전혀 사용하지 않는 고레벨 분석 원시함수들(78)(또는 고레벨 분석모듈들(70))의 특정형태들을 참조하는 제어레벨 분석모듈들(70)의 두가지 예를 나타내고 있다. 이러한 관점에서, 제9(a)-(b)도에 나타난 제어레벨 분석모듈들(70)은 완전히 “독립식”으로 간주될 수 있는데, 즉 이들은 피참조 고레벨 분석 원시함수들(78)(또는 피참조 고레벨 분석모듈들(70)에 의해 요구되는 모든 정보를 포함하고 있다. 한편, 제5-8도의 제어레벨 분석모듈들(70)은 단일 파라미터값의 사용을 개별적으로 요구하는 다른형태의 고레벨 분석 원시함수들(78)을 참조한다. 여러호출 파라미터값들을 개별적으로 사용하는, 따라서 여러 파라미터ID들(74)을 요구하는 제어레벨 분석모듈들(70)의 몇가지 예들이 이 모듈들(70)을 해석하는 특정 고레벨 분석 원시함수들에 대한 부록A에서의 논의로부터 발견될 수 있다. 물론, 이러한 예들은 설명을 목적으로 할뿐, 본 발명에서 사용될 수 있는 제어 레벨 분석모듈들(70)의 전체범위를 차지하지는 않는다.
저레벨 분석 원시함수들(78)은 일반적으로, 더욱 복잡한 작업에 있어서 기본적인 실행블록들로 사용되는 원시함수 작업들, 예컨대 추가, 채취등으로 구성된다. 고레벨 분석 원시함수들(78)과 달리, 저레벨 분석원시함수들(78)은 분석을 실행하기 위해 직접 사용되지 않지만, 대신 분석 제어데이타(42)에서 새로운 저레벨 분석모듈들(70)을 순환적으로 구성하기 위해 사용된다. 새로운 저레벨 분석모듈들(70)은 기본적으로 저레벨 분석 원시함수들(78)의 조합이며, 이들은 유사하게 분석제어 데이타(42)에서 범용 분석 프로그램(40)에서 고레벨 분석 원시함수들(78)과 기능상 동일한 새로운 고레벨 분석 모듈들(70)을 순환적으로 구성하기 위해 사용될 수 있다. 새로운 저레벨 분석모듈들(70)로부터 구성될 수 있는 새로운 고레벨 분석모듈들(70)은 또한 특정분석을 제어하기 위한 새로운 제어레벨 분석모듈들(70), 예컨대 절차분석에 있어서 전화 번호의 세번째 숫자를 분석하는 제어레벨 분석모듈(70)을 구성하기 위해 고레벨 분석 원시함수들(78)과 함께 사용될 수 있다. 그다음, 이러한 새로운 제어레벨 분석모듈들(70) 각각의 함수지시자(72)는 제어레벨 분석모듈(70)이 구성된 고레벨 분석 원시함수(78) 또는 고레벨 분석모듈(70)을 참조할 것이다.
부록 C에서, 한 세트의 저레벨 분석 원시함수들(78)이 가단히 기술된다. 그러나, 이들은 총망라한 것이 아니라, 본 발명의 우선 실시예, 즉 장거리 통신 시스템 또는 특히 중앙국의 교환기에서 처리되는 호출의 제어를 위한 범용 분석 시스템의 응용에서 사용될 수 있는 저레벨 분석 원시함수들(78)의 형태를 예시하기 위해 의도된 것이다. 당해기술자에 의해 인지되어지는 바와 같이, 여러 다른 저레벨 분석 원시함수들(78)이 본 발명의 범용 분석 시스템에서 전형적인 전화통신 응용 또는 다른 응용을 위해 구성될 수 있다.
본 발명의 범용 분석 시스템에 수행될 수 있는 분석의 형태들은 여러 응용 필요성에 따라 변하게 된다. 아래기술된 본 발명의 우선 실시예는 장거리 통신 시스템(예컨대, 장거리 또는 지역 교환기, 패킷스위치등)에서 호출처리에 응용할 수 있으며, 따라서 다른 관련 분석들 사이에서 디지트 분석 및 절차분석과 같은 분석들을 수행한다. 부록 B에서, 간략화된 분석예가 가설 전화 네트워크에서의 지역교환을 위해 기술되어 있다. 이 분석예는 부록 A에 기술되어 있는 많은 고레벨 분석 원시함수들(78)(또는 고레벨 분석 모듈들(70))을 사용하는데, 이 함수들(78)은 부록 C에 기술된 저레벨 분석 원시함수들(78)로부터 구성될 수 있다. 부록 B에 기술된 분석들의 형태들(또한, 각 분석을 구성하는 분석 원시함수들(78) 및 분석 모듈들(70)의 형태들)이 다소 전화통신 응용에 특유한 반면, 본 발명은 다른 응용들에서 여러형태의 분석들을 완전히 수행하기 위해 사용될 수 있다는 사실이 인지될 것이다.
본 발명의 범용 분석 시스템의 전반적인 구조 및 동작이 기술되었기 때문에, 나머지 논의는 대표적인, 그러나 실행, 변화 및 설계 대체등의 수많은 가능성중의 하나인 특정 우선 실시예에 집중될 것이다. 본 발명의 범용 분석 시스템의 개념을 수행하기 위한 많은 기술들이 앞서의 논의를 읽은후 당해기술자에게 상상될 수 있는 반면, 확장성 번역어(TIL) 기술 및 특히 제4프로그래밍 언어가 이제부터 범용 분석 시스템의 우선실시예의 기초가 되는 개념들의 일부를 설명하기 위해 사용될 것이다. 따라서, 우선 실시예를 논의하기전에 확장 코드 시스템들에 대한 간단한 설명이 아래 도입된 개념들의 일부에 대한 기초를 닦는데 도움이 될것이다. 확장 코드 시스템들의 주제에 관한 또다른 배경은 1982년 3월자 컴퓨터라는 잡지의 22-23page에 실린 “확장 코드 시스템들에 대한 구조적 트레일”이 라는 논문에서 발견될 수 있다. 추가적인 설명이 부록 C에서 설명된 저 레벨 분석 원시함수들에 대한 기술내용으로부터 얻어질 수 있다.
일반적으로, 컴퓨터 언어들은 컴퓨터가 수행하도록 설계된 기본작업들, 예컨대, 추가 메모리로부터의 채취등의 작업들과 사용자가 수행하려는 작업들, 예컨대 행렬변환, 화일검색등과 같은 작업들 사이의 갭을 연결하도록 의도된다. 많은 사용자들이 여러 응용면에서 많은 요구를 갖고 있기 때문에, 하나의 비확장성 언어로서 이러한 모든 요구를 동일하게 충족시키는 것은 실질적으로 불가능하다. 이러한 딜레마에 대한 하나의 해결책은 언어속에 모든 가능한 유용한 작업들, 구조들 및 기능들을 포함시키는 것일 수가 있다. 그러나, 이러한 방법은 어렵고 폐쇄적이다. 확장성 번역어들은 상이하고 개방된 해결책을 갖고 있다. 이 해결책은 사용자가 그의 특정 응용에서 필요한 특수작업들을 추가할 수 있게 하는 몇개의 기술들을 제공하는 것이다. 언어기능들 및 컴파일러 구조들을 추가하는 능력을 “확장성”이라 부른다. 이러한 확장성은 적어도 두 레벨의 성능향상, 즉 기존의 컴파일러들을 사용하여 언어기능들을 추가하는 능력 및 더욱 유용한 언어기능들을 추가하기 위하여 사용될 수 있는 새로운 응용특수 컴파일러들을 만드는 능력을 증가시킨다. 예컨대, 1980년 8월자 바이트라는 잡지의 164-196페이지에 게재된 해리스 킴의 “제4의 확장성: 또는 25 단어 이하로 컴파일러를 작성하는 방법”이라는 제목의 논문을 참조하라.
일반적으로 말해서, 확장성 번역언어(TIL)로 예컨대, 포스(Forth) 또는 포스트스크립트(Postscript)로 작성된 컴퓨터 프로그램은 컴퓨터에서 언어의 기본작업들이 이루어질때까지 서브루틴들의 주소들 등등의 목록으로 표현되는데, 이 주소들은 다른 서브루틴들의 주소들로 구성되어 있다.
확장성 번역언어는 주소들을 읽어 그 주소들로 점프하는 것외는 할일이 없기 때문에 매우 빠르게 실행된다. 여러형태의 주소 해석기들이 확장 코드시스템에 사용된다. 직접 확장 코드 시스템에서, 서브루틴들의 순차는 이들의 엔트리 주소들의 목록안으로 도입된다. 특히, 종래의 고급 프로그래밍 언어 예컨대, 에이다(ADA) 또는 파스칼(PASCAL)등으로 작성된 컴퓨터 프로그램에서 최저 서브루틴 바로 위의 중첩레벨(호출된 각 서브루틴은 다른 서브루틴들을 호출하고 있지 않다)에 있는 각각의 서브루틴에서의 중첩된 서브루틴 호출들은 간단한 주소들의 목록으로 표현될 수 있다. 해석기로서 알려진 소형의 기계어 루틴은 이 목록을 통해 순차적으로 실행되어 각 단계에서 간접 브랜치들을 만든다. 하나의 번역기 레지스터가 실행될 절차들의 목록에 있는 다음 주소를 지시하는데, 즉 다음 절차를 위한 실제 기계코드의 주소를 지시한다. 이 기술의 하나의 변형은 주소 해석기에 하나의 간접 레벨을 추가한다. 간접 확장 코드 시스템에서, 해석기 레지스터는 다음 절차의 주소를 직접 지시하지 않고, 대신 다음 절차에 대한 포인터의 주소를 지시한다. 그러나, 하나이상의 간접 레벨이 주소 해석기에 추가될 수 있다. 간접 토큰 확장 코드 시스템에서는 해석기 레지스터가 다음 절차에 대한 가능한 포인터들의 목록에 대한 인덱스로서 작용하는 토큰의 주소를 지시한다.
하나의 TIL 응용이 TIL 시스템내의 사전에 존재하는 한 세트의 응용 특수워드들(또는 객체들)에 의해 정의된다. TIL 사전에서 각 “워드”는 외부의 영숫자 이름으로 주어질 수 있는 하나의 실행 가능한 절차(단순한 메모리의 일부 또는 바이트가 아님)를 나타낸다. 각 워드에 대한 내부 TIL 사전 엔트리는 일반적으로 워드의 컴파일된 이름을 포함하는 이름필드, 워드가 실행될때 실행될 명령어들에 대한 레퍼런스를 포함하는 코드필드, 및 워드의 컴파일된 정의, 예컨대, 정의에 있어서 다른 워드들에 대한 일련의 레퍼런스들을 포함하는 파라미터 필드로 구성되어 있다. TIL 사전은 대부분의 사용자 응용에 기본적인 내장 워드들의 제1세트 및 사용자가 사전에 추가되는 새로운 응용 특수워드들을 만드는 것을 허용하는 내장 워드들의 제2세트를 포함한다. 하나의 워드가 TIL 사전에서 정의되면, 이 단어는 많은 다른 응용 특수워드들을 정의하기 위해 사용될 수 있다. 따라서, TIL 사전은 확장가능하다.
TIL 사전에 새로운 워드등을 입력하는 절차은 보통 편집상태로서 언급된다. 편집상태에서, TIL 시스템은 여러 외부소스, 예컨대 대량 저장장치 또는 비디오 단말기로부터의 새로운 응용 특수워드들의 정의들을 읽는다. 각각의 새로운 워드의 정의는 정의되는 워드의 이름 및 새로운 워드, 예컨대 다른 워드들 또는 번호들에 대한 정의본체에 의해 추적되는 정의워드로 구성되어 있다. 정의 워드는 정의본체를 번역하고 TIL 사전에 정의되어 있는 워드를 위한 엔트리를 추가하기 위하여 TIL 시스템을 편집상태에 들어가게 하는 내장 또는 사용자 정의(응용특수) 워드이다(엔트리는 번역된 정의를 포함할 것이다). 포스(Forth) 언어에서 내장 정의 워드들의 실례는 “;”, 상수(CONSTANT) 및 변수(VARIABLE), 다른 내장 포스 워드들의 예로서는 (:)에 의해 정의된 새로운 워드의 정의를 끝마치는 “;”(세미콜론)이 있다. 본 발명의 우선 실시에에서 정의 워드의 일례는 PROC이다. 다른 워드로서는 PROC에 의해 정의된 새로운 워드의 정의를 끝마치는 ENDPROC이 있다.
정의 워드의 정의는 워드들이 정의 워드에 의해 번역될때 실행되는 BUILD(컴파일)부분 및 정의 워드에 의해 번역된 워드들이 실행될때 실행되는 DO(인터프리트)부분을 모두 포함하고 있다는 점에서 다른 워드들의 정의와 다르다. BUILD부분(편집상태에서 실행됨)의 기능은 새로운 워드의 정의를 TIL 사전 안으로 컴파일하는 것이다. 편집은 일반적으로 새로운 워드의 이름을 이름필드에 기록하며, DO 부분에 대한 새로운 워드를 위한 사전 엔트리의 레퍼런스를 코드필드안에 기록한다. 정의 워드의 BUILD 부분은 또한 새로운 워드가 실행될때마다 DO 부분이 파라미터 필드를 해석할 수 있는 방법으로 새로운 워드의 정의본체를 대응하는 사전 엔트리의 파라미터 필드안으로 컴파일할 것이다.
예컨대, 새로운 워드가 포스 프로그램 언어의 정의 워드(:) 또는 본 발명의 범용 분석 시스템의 우선실시예의 정의 워드 PROC에 의해 컴파일될때, 새로운 워드의 정의 본체는 일반적으로 TIL 사전에서 하나씩 조사되는 내장 또는 사용자 정의(응용특수) 워드들의 배열로 구성되며, 조사되는 각 워드에 대해, 대응하는 사전 엔트리의 주소는 컴파일되는 새로운 워드를 위한 사전 엔트리의 파라미터 필드안에 기록된다. 새로운 워드가 실행될때, (:) 또는 PROC의 DO 부분에서 해석기는 단순히 주소들을 읽어 참조된 워드들을 실행시킨다. 그러나, 포스 프로그램이 언어에서의 정의 워드 VARIABLE에 의해 컴파일된 정의들을 위해 각각의 새로운 워드의 정의몸체는 VARIABLE 정의 워드의 BUILD 파트에 의해 새로운 사전 엔트리의 파라미터 필드로 할당되어지는 변수의 크기를 포함할 수 있다. VARIABLE에 의해 정의된 새로운 워드가 실행될때, VARIABLE 정의 워드의 DO 부분이 실행되고 변수의 주소를 반환할 수 있다. 따라서, 이러한 정의 워드들은 실제로 상이한 컴파일러들인데, 즉, 정의 워드 (:) 및 PROC는 절차 정의들(연산자들)을 컴파일하며, 반면 정의 워드 VARIABLE은 데이타 정의들(피연산자들)을 컴파일한다.
TIL 시스템은 시스템제공(내장) 워드들과 같이 사용자 정의 워드들을 처리하는데, 즉 모든 사용자 정의 연산자들 및 피연산자들은 시스템 제공 버젼들처럼 사용될 수 있다. 결과적으로, TIL 시스템은 적어도 두 단계의 확장성을 제공한다. 첫단계에서, 사용자는 시스템 제공 또는 사용자 정의 워드들에 의해 정의되는 새로운 워드들(절차들)을 TIL 사전에 추가하기 위한 표준 정의 워드들을 사용한다. 순차적으로 컴파일된 워드의 정의에 있어서 앞서 컴파일된 워드의 포함은 서브루틴 호출들의 중첩과 유사하게 고려될 수 있다. TIL 사전의 특정 워드(사용자 정의 또는 내장워드)에 의해 지시된 절차는 새로운 워드의 정의에서 단순히 워드의 이름을 사용하므로써 호출된다. 확장성의 두번째 단계에서, 사용자는 TIL 사전에 워드들의 새로운 “패밀리들”(형태들)을 추가하기 위해 사용되는 새로운 정의 워드들을 만든다. 이러한 더높은 단계에서, 사용자는 각각의 대응 패밀리의 요소, 즉 새로운 정의 워드에 의해 컴파이리된 새로운 워드가 컴파열되고 실행되는 방법을 기술하기 위해 각각의 새로운 정의워드를 사용한다.
워드들의 새로운 패밀리의 새로운 각각의 요소의 컴파일-시간 거동 및 실행-시간 거동은 대개 예컨대, 포스언어에서 각각의 새로운 정의 워드의 정의에 있어서, 특수(키) 워드들 <BUILDS and DOES>을 각각 사용하므로써 기술된다(문자들 “<” 및 “>”은 이 키워드들의 이름의 일부이며 <BUILD들이 DO들 앞에 온다>는 것을 지시하는데, 즉 BUILD 부분이 DO 부분 앞에 온다는 것을 지시한다). 컴파일-시간 거동은 워드 <BUILD and any words following up to the word DOES>에 의해 기술된다. 정의 워드의 실행은 새로운 패밀리 구성요소에 대한 사전정의를 구성한다. 이 정의의 내용들은 컴파일-시간 워드들에 의해 구성된다. 실행-시간 거동은 워드 DOES> 및 정의의 끝부분까지 이어지는 모든 워드들에 의해 기술된다. 특정 패밀리 요소를 실행하는 것은 실행-시간 워드들을 실행시킨다. 새로운 요소가 컴파일되고 새로운 정의 워드가 실행될때, <BUILDS 절차가 실행될 것이다. <BUILDS 절차는 새로운 요소, 즉 입력 문자열에서 새로운 정의 워드의 다음 워드의 이름을 읽으며, 사전의 끝부분에 새로운 정의에 대한 이름필드 및 코드필드를 추가한다. 이름필드는 새로운 요소의 이름을 포함하며, 코드필드는 새로운 요소가 실행될때 실행되는 새로운 정의워드의 사전 정의에서의 실행-시간 워드들에 대한 포인터를 포함한다. 새로운 요소가 실행될때 DOES> 절차는 실행되며, DOES> 및 새로 정의 워드 정의의 끝부분 사이의 워들에 의해 이어진다. DOES> 절차는 새로운 요소의 사전 정의안에 파라미터 필드의 주소를 반환한다.
포스 언어에서의 <BUILDS and DOES>의 사용을 포함하여, TIL의 원리들은 범용 분석 시스템의 우선 실시예에 적용될 수 있다. 예컨대, 부록 C에서의 저레벨 분석 원시함수들(78)의 일부, 예컨대 DUPLICATE는 TIL에서의 표준(내장) 워드들에 대응하는 것으로 간주될 수 있다. 다른 저레벨 분석 원시함수들(78), 예컨대 PROC은 TIL에서의 내장정의 워드들에 대응하는 것으로 간주될 수 있다. 부록 A에서의 고레벨 분석 원시함수들(78) 및 고레벨 분석모듈들(70)은 TIL에서의 더욱 복잡한 내장 및 사용자 정의 정의워드들에 각각 대응하는 것으로 간주될 수 있다. 제어 레벨 분석 모듈들(70)은 더욱 복잡한 정의 워드들로부터 정의되는 TIL의 워드들에 대응하는 것으로 간주될 수 있다.
제10-16도에는 본 발명의 범용 분석 시스템에 대한 우선 실시예의 하나이상의 성분들 또는 요소들의 구조를 각각 도시하는 일련의 도식적인 설명들이 나타내 있다. 제10도는 범용 분석 프로그램(40)에 대한 우선실시예의 귀조를 나타내고 있으며, 제11도는 분석 제어데이타(42)에 대한 우선실시예의 구조를 나타낸다. 제12도는 제11도에 보여진 분석 제어데이타(42)의 우선실시예에서 제어 레벨 분석모듈들(70)의 한 형태의 구조를 나타내며, 제13도는 제12도에 보여진 형태의 전형적인 제어레벨 분석모듈(70)의 사용을 나타내고 있다. 제14도는 저레벨 분석모듈(70)이 저레벨 분석 원시함수들(78)로부터 구성될 수 있는 방법을 나타내고 있으며, 제15도는 제14도에 보여진 사용자 정의 저레벨 분석모듈(70)이 고레벨 분석모듈(70)을 구성하는데 사용되는 방법을 나타내고 있다. 제16도는 제12도에 보여진 전형적인 분석모듈(70)과 유사하게 제어레벨 분석모듈(70)이 제15도에 보여진 고레벨 분석모듈(70)의 구성 절차에 의해 구성될 수 있는 방법을 나타내고 있다. 제10-16도에 보여진 우선실시예는 부분적으로, 위에 언급된 간접 토큰 확장코드 시스템들에 의해 수행된 기술들에 기초하고 있다.
제10도에서, 범용 분석 프로그램(40)은 범용 분석 소프트웨어의 하나의 블록(100) 및 다수의 분석 원시함수들(78)로 구성되며, 우선 실시예에서는 DO 절차(112) 및 BUILD 절차(114)를 포함하는 각각의 고레벨 분석 원시함수들(120)로 번호가 다시 매겨진다. 제10-16도 및 수반된 논의의 검토후 인지되는 바와 같이, 범용 분석 프로그램(40)내의 소프트웨어 블록(100)으로부터 분석 원시함수들(120)을 물리적으로 또는 개념적으로 분리하는 것은 범용 분석 소프트웨어(100)를 수정하지 않고도 새로운 분석 원시함수들(120)이 범용 분석 프로그램(40)의 순차적 해제에 쉽게 추가될 수 있도록 허용한다.
설명을 위해, 4개의 전형적인 고레벨 분석 원시함수들(120)만이 제10도에 도시되어 있으며, 이들의 기능은 알파벳 순으로 즉, “A-D”로 표시되어 있다. 그러나, 앞의 논의로부터 원시함수들(120)이 저레벨 및 고레벨 분석 원시함수들을 포함하며, 또한 고레벨 분석 원시함수들(120)의 수는 실제적으로 4개보다 더클것이라는 것이 인지될 것이다. 소프트웨어 블록(100)은 예컨대, 오픈 시스템스 인터커넥션(OSI) 모델에 따른 연산자 인터페이스(200)와 통신하는 분석 구성 절차(102)를 포함한다. 특히, 본 발명의 편집상태의 기술과 관련하여 이제부터 더욱 상세히 논의되는 바와 같이, 분석구성 절차(102)는 우선 실시예에서 130으로 표시된 새로운 제어레벨 분석 모듈들(70)을 구성하기 위하여 고레벨 분석 원시함수(120)의 구성절차(114)와 연관하여 사용될 수 있다. 또한, 사용자 정의 고레벨 분석모듈(130)의 구성 절차(114)는 새로운 제어 레벨 분석모듈들(130)을 구성하기 위해 유사하게 사용될 수 있다.
제10도에서, 분석 원시함수사전(104)은 EXTERNAL A라 명명된 특수분석 원시함수(120)를 식별하는 숫자(347)와 같은 원시함수 토큰 안으로 연산자 인터페이스(200)를 통해 연산자에 의해 입력된 EXTERNAL A와 같은 분석 원시함수(120)의 외부(심볼) 이름을 변형시킨다. 원시함수 토큰은 분석 원시함수 “A”와 같은 고레벨 분석 원시함수들 “A-D”중 하나를 포함하여, 분석 원시함수들(120)중 하나를 배치하기 위해 사용되는 분석 원시함수 토큰 목록(106) 안으로의 인덱스로 사용된다. 분석 원시함수 토큰 목록(106)은 347과 같은 원시함수 토큰의 값을 이 토큰값과 관련된 저레벨 분석 원시함수(120)의 포인터 또는 고레벨 분석원시함수(120)의 두 포인터들로 변형시킨다.
고레벨 분석 원시함수(120), 예컨대 분석 원시함수 “A”에 대한 두개의 포인터들은 실행 절차(112)에 대한 제2포인터 및 고레벨 분석 원시함수(120)의 구성 절차(114)에 대한 제2포인터로 구성된다. 이후 상세히 설명되는 바와 같이, 고레벨 분석 원시함수(120)의 실행 절차(112)는 분석 원시함수(120)가 분석을 수행하기 위해 사용될때 실행되며, 반면 동일한 분석 원시함수(120)의 구성 절차(114)는 분석 원시함수(120)가 새로운 제어 레벨 분석모듈(130)을 컴파일하기 위해 사용될때 실행된다. 이러한 점에서, 제7-8도에서 보여지고 앞의 기술의 일반적인 검토부분에서 논의된 분석 원시함수들(78)은 제10도에 보여진 분석 원시함수들(120)의 실행 절차들(112)에 더욱 정확하게 일치한다.
제10도에서, 소프트웨어 블록(100)은 또한 특정분석을 실행하는 순서에 응답하여 분석모듈들(130)의 트리를 해석하는 분석 해석기 절차(108)를 포함한다. 특정분석을 실행하는 순서는 모든 “분석 사용자” 즉, 분석을 사용하는 스위치내의 모든형태의 프로그램에 의해 전달될 수 있다. 분석사용자의 전형적인 예는 스위치를 통해 아날로그 또는 디지탈 트래픽 예컨대 전화호출들을 제어하는 호출 제어 프로그램(56)이다. 다른 분석 사용자들은 여러종류의 동작 유지 프로그램들일 수 있다. 그러나, 본 논의를 위해, 특정분석을 실행하는 순서는 호출 제어 프로그램(56)으로부터 전달된다고 가정된다.
우선 실시예에 따르면, 호출 제어 프로그램(56)은 (i) 수행될 분석에 대한 외부이름, 예컨대, “디지트 분석” 또는 “절차분석”, (ii) 파라미터 레코드 포인터 및 특정 분석들에 대해 문맥 종속적인(분석특수), (iii) 다른 정보를 구성된 입력데이타(44)를 분석해석기 절차(108)로 보낸다. 분석의 심볼 이름은 수행될 분석을 위해 특정 분석 제어 데이타에 접근하기 위해 사용된다. 파라미터 레코드 포인터는 호출 제어 데이타(54)에서 분석될 호출(호출 레코드)를 위해 파라미터 값들의 블록을 접근하기 위해 사용되는데, 호출로부터 또는 호출로, 고레벨 분석 원시함수들(120)(또는 고레벨 분석모듈들(130))은 필요할때, 지시된 분석을 위해 제어레벨 분석 모듈들(130)에서 파라미터 ID들(74)에 의해 지시된 모든 호출 파라미터값들을 얻거나 기록할 수 있다.
모든 호출 레코드들은 동일세트의 파라미터 ID들(74)에 의해 식별되는 동일세트의 파라미터들을 포함하며, 그러나 각각의 호출 레코드는 동시에 분석되는 또다른 호출 레코드내의 파라미터값들과 전혀 다를 수 있는 특정 호출에 대한 파라미터 값들을 포함한다는 것을 상기하라. 따라서, 파라미터 레코드 포인터는 분석될 호출 파라미터값들의 특정 세트를 구별한다. 입력데이타(44)에 포함된 다른 정보는 고레벨 분석 원시함수들(120(또는 고레벨 분석 모듈들(130))에 의해 분석될 수 있는 특정 분석 특수정보를 포함할 수 있다.
제10도에 보여진 바와 같이, 파라미터 레코드 포인터 및 존재한다면, 다른 정보는 호출 제어 데이타 저장 조정기(118)와 접속된 분석 실행 입력 데이타 조정기(110)안에 저장된다. 파라미터 레코드 포인터는 호출 제어 데이타 저장조정기(118)에 저장되는 호출 제어 데이타 베이스(54)에서 분석되는 호출을 위해 호출 제어 데이타의 블록의 위치를 가리킨다. 호출 제어 데이타블록(116)은 분석되는 호출를 위한 모든 관련 데이타(각 호출은 여러 다른 분석들을 포함할 수 있다), 즉 가입자에 의한 데이타 입력 및 가입자로부터의 모든 호출들을 위해 유효한 가입자의 예약 또는 위치와 관련된 데이타는 물론 이러한 특정호출에 대해 유효한 다른 호출 처리결과들을 포함한다.
호출 제어 데이타 저장조정기(118)는 고레벨 분석 원시함수(120)의 실행 절차(112)로부터의 요구에 따라 작용하며 분석시 호출 제어 데이타 베이스(54)로부터 데이타를 읽고 데이타베이스(54)안으로 데이타를 기록하는 분석 실행 입력 데이타 조정기(100)에 이해 또한 다른 목적을 위해 데이타를 읽고 쓰는 호출 제어 프로그램(56)에 의해 접근될 수 있다. 예컨대, 분석 원시함수(120), 예컨대, 분석 원시함수 “A”의 실행 절차(120)는 호출 제어 데이타블록(116)내의 모든 파라미터값들을 얻기위해 분석 실행 입력 데이타 조정기(110)를 사용할 수 있다. 이 예에서, 실행 절차(112)는 파라미터 ID(74)를 포함하는 파라미터 요구를 호출 제어 데이타 저장조정기(118)로 보내진 새로운 파라미터 요구안으로의 저장 파라미터 레코드 포인터와 수신된 파라미터 ID(74)를 조합하는 분석 실행 입력 데이타 조정기(11)를 보낼것이다.
호출 제어 데이타 저장조정기(118)에 대한 파라미터 요구를 형성하는 방법의 매우 간단한 일례로서, 또한 당해 기술자에 친숙한 많은 가능한 실시에 관한 제한없이, 파라미터 레코드 포인터는 블록(116)내의 제1위치를 나타내며 파라미터ID(74)는 파라미터 레코드 포인터의 값에 추가되는 제1위치로부터의 오프셋을 나타낼 수 있다. 그다음 호출 제어 데이타 블록(116)내의 파라미터ID(74)와 관련된 파라미터값은 호출 제어 데이타 저장조정기(118)로부터 분석 실행 입력 데이타조정기(110)를 통해 요구 분석 원시함수(120)까지 전달되어 분석에 사용될 수 있다. 그후, 또다른 분석 원시함수(120)는 호출 제어 데이타 저장조정기(118)로 보내져 호출 제어 데이타 블록(116)에 저장되는 중간 결과 또는 퇴종 결과를 생성할 수 있다.
이경우에 부록 A에 기술된 전형적인 고레벨 분석 원시함수들(120)의 목적을 위해 입력데이타(44)는 분석 및 파라미터 레코드 포인터의 외부 이름으로만 구성되는 것으로 가정되며, 입력데이타(44)에는 어떠한 다른 정보도 포함되지 않은 것으로 가정된다. 결과적으로, 부록 A의 전형적인 분석 원시함수들(120)의 어떤것도 입력 데이타(44)에 포함될 수 있는 어떠한 다른 정보도 사용하지 않는다. 부록 A 또는 C에서 명백히 언급되지 않은 반면, 당해 기술자는 본 발명의 저레벨 분석 원시함수들(120) 및 고레벨 분석 원시함수들(120)이 입력데이타(44)에 포함될 수 있는 다른(문맥특수) 정보를 쉽게 사용할 수 있다는 것을 인지할 것이다.
예컨대, 저레벨 분석 원시함수들(120)은 파라미터 스택을 통해 다른 정보를 사용할 수 있는데, 즉 호출 제어 프로그램(56)에 의해 제공된 문백특수 정보는 입력 데이타(44)에 기술된 분석의 실행에 앞서 제1스택 프레임으로서 스택의 꼭대기에 놓일수 있다. 그다음, 분석은 저레벨 분석 원시함수들(120)로부터 순환적으로 구성된 고레벨 분석모듈들(130)에 의해 정의된 제어레벨 분석모듈들(130)을 통해 이 정보를 사용할 수 있다. 예컨대, 절차분석에 있어서 다른 정보에 대한 하나의 사용은 동일 요구 수신지로의 주요 절차경로가 혼잡한 것으로 알려질때(주요경로를 통한 절차 분석의 선행실행에 의해) 네트워크의 제2절차경로를 통해 절차분석의 실행을 지시할 수 있다. 또다른 예로써, 다른 정보는 파라미터 레코드 포인터에 의해 참조된 호출 레코드에 유사하게, 분석될 다른 호출들에 대한 호출 레코드들에 대한 포인터들을 포함할 수 있다.
제11도에서, 분석 제어 데이타(42)의 우선 실시예는 호출 제어 프로그램(56)에 의해 지시된 분석의 외부이름을 특정분석을 위한 분석 제어 데이타에 대한 포인터로 변환하는 분석제어 데이타사전(132)을 포함한다. 분석 외부이름들의 두가지 특수예들 즉, “디지트분석” 및 “절차분석”이 제11도에 보여진다(외부이름은 문자열로 제한될 필요는 없으나, 일반적으로 범용분석 시스템에 외부적으로 즉, 연산자 인터페이스(200) 및 호출처리 소프트웨어에 의해 인식되는 표현 또는 객체일 수 있다). 분석 제어 데이타 사전(132)은 “디지트분석” 및 “절차분석”을 변환하여 대응하는 분석 제어 데이타 즉, 디지트분석 제어데이타(134) 및 절차분석 제어데이타(136) 각각에 대한 포인터들을 반환한다.
우선 실시예에서, 특정 분석을 위한 분석 제어 데이타 예컨대, 디지트 분석 제어 데이타(134)의 구조는 다른 분석 예컨대 절차분석 제어 데이타(136)의 구조와 유사하다. 각각의 분석 제어 데이타 구조, 예컨대 절차분석 제어 데이타(136)는 분석모듈들(130)의 외부명들을 모듈토큰들, 즉 특정 분석 제어 데이타내의 분석 모듈들(130)을 간접적으로 식별하는 숫자들로 변환하는 분석 모듈사전(138)으로 구성되어 있다. 우선 실시예에 따르면, 분석 제어 데이타 구조내의 분석모듈들(130) 각각은 예컨대, 숫자에 의해 이어지는 특정분석을 식별하는 접두사, 예컨대 RA275(이 형식은 예시적이며, 연산자는 접두사에 관계없이 다른 적절한 형식을 선택할 수 있다)로 시작될 수 있는 외부형을 갖고있다. 본 발명의 실행 및 편집상태의 논의로부터 명백해지는 바와 같이, 분석 모듈사전(138)은 분석모듈들(130)을 컴파일하는데(실행이 아니라) 사용된다.
제11도에서, 각각의 분석 제어 데이타 구조는 또한 시작 토큰(142) 및 활동성 토큰 목록 포인터(144)를 포함하는 분석 실행 시작 데이타(140)를 포함한다. 시작 토큰(142)은 특정분석, 예컨대 절차분석에서의 시작 제어레벨 분석모듈(150)을 위한 분석 트리의 트렁크에 대한 포인터를 제공하는 반면, 활동성 토큰 목록 포인터(144)는 분석을 수행하기 위해 사용된 분석모듈들(130)을 참조하는 “활동성” 분석모듈 토큰목록(146)에 대한 포인터를 제공한다. 활동성 토큰 목록 포인터(144)는 네트워크를 통해 실제의 트래픽을 분석하기 위해 사용되는 활동성 분석모듈 토큰목록(146) 및 특정분석을 위한 분석 제어 데이타안에 더많은 분석 모듈들(130)을 수정하기 위하여 연산자에 의해 사용될 수 있는 하나이상의 “수동성” 분석모듈 토큰목록들, 예컨대 분석모듈 토큰 테이블(148)을 포함하는 여러분석 모듈 토큰 테이블들의 병렬 사용을 허용하는 반면, 활동성 분석모듈 토큰목록(146)은 실제적인 분석을 수행하기 위해 즉, 분석모듈들(130)을 실행하기 위해 사용된다.
각각의 분석 모듈 토큰목적들(146,148)은 분석 모듈들(130)의 실제적인 저장위치들(주소들)을 가르키는 모듈 토큰에 의해 인덱스된다. 분석 원시함수 토큰 및 분석 원시함수들처럼, 분석모듈들(130)에 대한 포인터로 직접 지시하는 대신, 모듈토큰, 즉 간접토큰 확장기술의 사용은 메모리의 재할당, 예컨대 메모리안에서의 분석모듈들(130)의 이동, 수정 및 교체등을 용이하게 한다. 특히, 수메가 바이트 단위가 될수 있는 특정분석을 위한 분석 제어 데이타의 수정은 수동형 분석모듈 토큰목록들중 하나에서 분석모듈들에 대한 포인터들을 수정하므로써 간접적으로 완성될 수 있다. 특정 분석 예컨대, 절차분석을 수정하기 위하여, 연산자는 활동성 분석 모듈 토큰목록(146)을 수동형 분석모듈 토큰목록(148)으로 단순히 복사할 수 있고(분석모듈들을 복사하는 대신 포인터들을 복사), 분석모듈들(30)에 대한 포인터들의 적어도 일부를 수정할 수 있으며, 새로운 분석구조를 시험하고, 또한 시험이 완료된후 분석모듈 토큰목록(148)을 작동시킬 수 있다(목록(148)을 지시하도록 활동성 토큰 목록 포인터(144)의 값을 바꿀 수 있다).
제11도에 따르면, 각각의 분석을 위한 분석 제어 데이타 예컨대, 디지트 분석 제어 데이타(134) 또는 절차 분석 제어 데이타(136)는 분석의 트렁크에 대한 포인터를 포함하는데, 즉 시작토큰(142)은 분석을 위한 시착점을 가리킨다. 그러나, 필요하다면, 각 분석은 하나이상의 가능한 시작점, 즉, 동일 분석 제어 데이타 구조안의 여러 다른 가능한 시작 제어 레벨 분석 모듈들(130)을 가질수 있다. 이러한 목적으로, 시작토큰(142)은 분석 제어 데이타 사전(132)내의 각 엔트리가 세개의 속성들 즉, 외부면, 분석 제어 데이타 포인터 및 시작토큰을 갖도록 제3열을 형성하기 위해 분석 실행 시작 데이타(140)로부터 분석제어 데이타사전(132)으로 이동될 수 있다. 결과적으로, 이러한 실시예는 대응하는 분석 제어 데이타에 대한 포인터 및 대응하는 분석 제어 데이타내의 대응하는 시작 분석모듈(130)에 대한 포인터로 변형되는 상이한 외부면에 의해 식별되는 각각의 상이한 분석과 함께 동일 분석 제어 데이타내의 여러분석들의 수행을 허용한다. 예컨대, 외부면들 “절차분석-1”, “절차분석-2” 및 “절차분석-3”은 동일 분석제어 데이타, 즉 절차 분석 제어데이타(136)를 가리키지만, 각각은 다른 시작 분석모듈(130)을 지시할 것이다.
제12도에서 예컨대, 절차분석에서 사용될 수 있는 일반형의 제어레벨 분석모듈들(130)의 구조는 분석 관리모듈헤더(160), 원시함수 토큰(162), 파라미터영역(164) 및 다음 모듈 참조영역(166)으로 구성되어 있다(이 구조의 내용들은 설명을 명확히 하기 위한 목적으로 한 세트의 연속적인 메모리 위치들로서 배열된다). 분석 관리 모듈 헤더(160)는 관리목적으로 사용되며, 예컨대, 제어레벨 분석모듈(130)의 편집된 이름을 저장할 수 있다. 원시함수토큰(162)은 고레벨 분석 원시함수(120) 또는 고레벨 분석모듈(120)을 참조한다. 실행시, 원시함수 토큰(162)은 분석 원시함수 토큰목록(106)에 의해 또는 절차분석 제어 데이타(136)의 분석모듈 토큰 목록(146)에 의해 제어 레벨 분석모듈(130)의 특정형태를 해석하는 특정 분석 원시함수(120)의 실행 절차에 대한 포인터로 변환된다.
제12도에 보여진 분석모듈(130)을 위햐, 원시함수 토큰(162)은 “인덱스 선택자” 형태의 고레벨 분석 원시함수(120)를 참조할 수 있으며, 파라미터영역(164) 및 다음 모듈 참조영역(166)의 내용들은, 제13도에 보여진 바와 같을수 있다. 파라미터 영역(164)은 분석될 파라미터 또는 데이타에 대한 레퍼런스를 포함하며, 예컨대, 호출 제어 데이타(54)내의 파라미터값을 가리키는 파라미터 ID(74) 및 차미조된 파라미터에 대한 최대값을 저장한다(일반적으로, 파라미터영역(164)은 원시함수 토큰(162)에 의해 참조된 분석 원시함수의 기능에 따라 상수등의 조합 및 호출 데이타에 대한 레퍼런스들을 포함할 수 있다). 다음 모듈 참조 데이타(166)는 분석모듈 토큰 목록(146)에 의해 다음 분석모듈(154)에 대한 포인터로 변환되는 모듈 토큰을 선택하기 위해 인덱스 선택자 분석 원시함수(120)에 의해 인덱스된 분석모듈 토큰들의 목록을 포함한다.
논의된 바와 같이, 특정 제어레벨 분석모듈(130)의 제어 필드(60)내의 정보의 특정 내용 및 구성은 원시함수토큰(162) 즉, 특정형태의 제어레벨 분석모듈(130)을 해석하기 위해 사용된 고레벨 분석 원시함수(120)(또는 고레벨 분석모듈(130))에 의해 참조된 고레벨 분석 원시함수(120)의 형태에 의존한다. 제12-13도는 원시함수 토큰(162)이 인덱스 선택자 분석 원시함수(120)를 참조하며, 따라서 제어필드(60)는 파라미터 영역(164) 및 다음 모듈 참조영역(166)으로 구성되는 경우를 나타낸다. 원시함수 토큰(162)이 예컨대, 제9(a)도에 보여진 형태의 원형분배 선택자 또는 제9(b)도에 보여진 형태의 시간 종속 선택자를 참조하는 경우에, 제어필드(60)는 파라미터 ID(74) 또는 분석모듈 토큰들의 인덱스된 목록을 저장하지 않지만, 대신 다른형태의 제어데이타(76) 예컨대, 제9(a)도에서 마지막으로 사용된 출구 원형계수기(76b), 및 다음 분석모듈(130)로서 선택될 수 있는 다른 분석모듈들(130)에 대한 토큰들을 저장한다. 따라서, 제12도에서 보여진 분석모듈(130)의 구조에 대한 많은 변형들이 가능하며, 원시함수(162)만이 각 제어레벨 분석모듈(130)의 구조의 필요 요소라는 사실이 인정될 것이다.
우선 실시예에서, 본 발명의 범용 분석 시스템은 두상태, 즉 실행 및 번역의 하나 또는 둘을 수행한다. 실행상태에서, 분석 해석기 절차(108)는 분석을 수행하기 위하여 분석 원시함수들(120)의 실행(do) 절차(112)를 사용한다. 설명을 위해, 호출 제어 프로그램(56)은 특정 분석을 실행하기 위하여 분석 해석기 절차(108)를 요청한다고 가정하자. 논의된 바와 같이, 호출 제어 프로그램(56)은 분석에 사용될 입력 데이타(44)를 분석 해석기 절차(108)를 전달한다. 입력데이타(44)는 분석의 시작점, 즉 분석 트리의 트렁크를 기술하는 수행된 분석의 외부명, 예컨대, “디지트분석” 또는 “절차분석”을 포함한다. 입력데이타(44)는 또한 분석되는 호출(116)를 위한 호출 제어데이타(호출 레코드)를 가르키는 파라미터 레코드 포인터 및 특정 분석에 특유한 다른 정보를 포함한다.
제10도에 보여진 바와 같이, 파라미터 레코드 포인터 및 다른 정보는 후에 사용될 분석 실행 입력 데이타 조정기(110)에 저장된다. 한편, 분석기 외부명은 제11도에 보여진 바와 같이, 호출 제어 프로그램(56)에 의해 호출될 수 있는 모든 다른 분석 제어 데이타의 목록을 포함하는 분석 제어 데이타 사전(132)으로 전달된다. 호출 제어 프로그램(56)에 의해 전달된 외부명을 위한 분석 제어 데이타 사전(132)의 검색은 필요한 분석을 위한 적절한 분석 제어 데이타에 대한 포인터를 반환한다. 예컨대, 호출 제어 프로그램(56)이 절차분석을 요구한다고 가정하면, 예컨대 외부명 “절차분석”을 분석 해석기 절차(108)로 전달한다고 가정하면, 분석 제어 데이타 사전(132)은 절차분석 제어 데이타(136)에 대한 포인터를 반환할 것이다.
제11도에서 보여진 바와 같이, 절차 분석 제어 데이타(136)는 절차분석을 위한 시작토큰(142) 및 활동성 토큰 목록 포인터(144)를 포함하는 분석 실행 시작 데이타(140)를 포함한다. 시작 토큰(제11도에서 값 28)은 절차분석내의 제1제어레벨, 분석모듈 즉, 절차분석 트리의 트렁크에 대한 포인터를 얻기 위하여 활동성 토큰 테이블 포인터(144)에 의해 지시된 활동성 분석 모듈 토큰 테이블(146)을 인덱스하기 위해 사용된다. 제1제어 레벨 분석 모듈(150)내의 원시함수 토큰(162)은 제1분석모듈(150)의 제어필드(60) 예컨대, 인덱스 선택자 형태 분석모듈(150)을 위한 파라미터영역(164) 및 다음 모듈 참조영역(166)의 특정 구조 및 내용들과 관련된 즉 해석할 수 있는 고레벨 원시함수(120)의 실행절차(112)에 대한 인덱스하기 위해 사용된다.
예컨대, 또한 제1제어 레벨 분석 모듈(150)의 원시함수 토큰(162)이 인덱스 선택자 형태 분석 원시함수(120)를 참조한다고 가정하면, 인덱스 선택자 분석 원시함수(120)의 실행 절차(112)는 제1제어 레벨 분석모듈(150)의 파라미터 영역(164)으로부터 파라미터 ID(74)를 읽어 들이며, 분석되는 호출(116)를 위한 호출 제어 데이타내의 파라미터ID(74)와 관련된 파라미터값을 읽기 위해 호출 제어데이타 저장조정기(118)에 요구를 전달하는 분석 실행 입력 데이타 조정기(110)를 호출한다. 이 파라미터 값은 전달되어, 제1분석모듈(150)내의 다음 모듈 참조영역(166) 즉, 제1분석모듈(150)의 실행후 실행될 다음 분석 모듈(130)로부터 적절한 출구를 선택하기 위하여 인덱스 선택자 분석 원시함수(120)의 실행 절차(112)에 의해 사용된다. 그다음, 다음 분석 모듈(152)은 제13도에서 설명된 바와 같이 실행될 수 있다. 편의를 위해, 제2분석모듈(152)은 또한 인덱스 선택자 형태의 분석 원시함수(120)를 참조하는 것으로 가정된다.
제13도에서는 제11도에서의 제1분석모듈(150)이 실행된 후, 제2분석모듈(152)의 실행을 설명하는 도면이 보여진다. 위에 기술된 바와 같이, 제2분석모듈(152)에 대한 포인터(토큰)가 절차분석 트리에서 제1분석모듈(150)에 의해 수행된 분석의 출력에 입각하여 선택되었다. 분석 해석기 절차(108)는 분석모듈(152)내의 원시함수 토큰(162)를 읽고, 예컨대, “인덱스 선택자”로 명명된 분석 원시함수(120)를 지시하는 값(93)을 기록한다. 이 값(93)은 분석 원시함수 토큰 목록(106)에서 분석 원시함수 인덱스 선택자의 실행 절차(112)에 대한 포인터로 변환된다. 그다음, 분석 원시함수 인덱스 선택자의 실행 절차(112)는 분석모듈(152)의 파라미터영역(164)내의 데이타를 일게된다. 제13도에 보여진 바와 같이, 분석모듈(152)의 파라미터영역(164)은 파라미터 “기점”을 위한 파라미터 ID(74) 및 분석모듈(152)에 의해 “기점”의 분석을 우해 허용된 최대값을 포함한다. 간단히 보여지는 바와 같이, 분석 원시함수 인덱스 선택자는 호출 제어 데이타 블록(116)내의 “기점” 파라미터의 값에 따라 분석모듈(152)의 다음 모듈 참조영역(166)으로부터 출구를 선택한다.
일반적으로, 파라미터 “기점”은 호출처리를 위해 같은 방법으로 교환기에 이해 처리되는 가입자들의 그룹을 식별하기 위하여 사용된다(전송, 저장등을 위한 다른 “기점” 파라미터들이 있을 수 있다). 전송을 위해, 파라미터 “기점”의 값은 예컨대, 국가숫자화 계획에 의해 중앙국지역에 할당된 지역 코드는 물론 A 가입자가 위치하고 있는 중앙국 또는 A 가입자가 속하는 사업 그룹과 같은 다른 형태의 기점에 의해 사용된 지역의 일부를 표시할 수 있다. 전송 “기점” 파라미터를 위해 허용가능한 최대값은 숫자화 계획, 예약형태등에 의존하며, 여기서는 7이 선택된다(7보다 큰 “기점” 파라미터의 값은 예컨대, 처리 에러를 나타내거나, 값들 8과 9가 사업(PBX 또는 센트렉스) 그룹들을 위해 역전된다면, 또다른 분석 모듈내의 “기점”의 분석을 요구하는 사업 가입자로부터의 호출를 지시한다).
제13도에서, 분석 원시함수 인덱스 선택자의 실행 프로시져(112)는 “기점”을 위한 파라미터 ID(74)를 분석되는 호출(116)를 위해 호출 제어 데이타내의 “기점” 데이타를 읽기 위해 호출 제어 데이타 저장조정기(118)를 요구하는 분석 실행 입력 데이타 조정기(110)로 보낸다. 그다음, “기점” 데이타의 파라미터값(여기서는 4)은 분석 원시함수 인덱스 선택자의 실행 절차(112)로 전송된다. 분석 원시함수 인덱스 선택자의 실행절차(112)는 분석모듈(152)의 파라미터영역(164)으로부터 허용가능한 최대값에 접근하여 “기점” 파라미터값을 최대 허용값과 비교한다.
“기점” 파라미터값이 최대허용값보다 작거나 같으면, 분석 원시함수 인덱스 선택자의 실행 절차(112)는 분석모듈(152)의 다음 모듈 참조영역(166)내의 목록을 인덱스하기 위해 “기점” 파라미터값을 사용하여, 분석모듈(152)로부터의 적절한 출구 즉, 실행될 다음 분석 모듈을 위한 분석모듈 토큰을 선택한다. 그러나, “기점” 파라미터값이 7보다 더컸을때(예컨대, 처리에러 때문에), 범위 이탈 분석 모듈 토큰이 진행되고 활동성 분석 모듈 토큰 목록(146)에 의해 예정된 제어 레벨 분석모듈(130)에 대한 포인터로 변환된다.
이 경우에, “기점” 파라미터값(4)은 최대 허용값(7) 보다 작기 때문에, 파라미터값(4)에 의해 인덱스된 분석모듈 토큰은 선택되어 활동성 분석모듈 토큰 목록(146)에 의해 다음 제어레벨 분석모듈(154)에 대한 포인터로 변환된다. 그다음, 다음 분석모듈(154)은 분석모듈(152)의 실행과 유사한 방법으로 실행된다. 분석은 절차분석 트리내의 다른 분석모듈(130) 뒤에 순차적으로 실행된 하나의 분석모듈(130)과 함께 이선들을 따라 계속된다. 절차 분석트리내의 분석모듈들(130)의 일부는 분석의 중간 또는 최종 결과들을 생성할 것이다(최종 결과 분석 모듈들(130)은 분석트리내의 종착점들일 것이다). 결과 생성 분석모듈들(130)은 결과 생성분석 원시함수들(120)(또는 결과 생성 분석모듈들(130)에 의해 해석되며, 결과들은 하나이상의 연속 분석들 또는 약간의 외부 프로세스를 제어하는데 사용하기 위해 호출 제어 데이타(54)내의 호출 레코드(116)로 피드백될 수 있다.
[컴파일 상태]
본 발명의 바람직한 실시예에서, 새로운 분석모듈(130)을 발생시키기 위해 오퍼레이터가 오퍼레이터 접속기(200)(분석 빌드(bulid) 절차(102)와 통한다)의 장치를 사용하는데 컴파일 상태가 기원된다. 오퍼레이터는 이제까지 논의된 세가지의 각기 다른 카테고리, (i) 다른 저-수준 분석모듈로부터 그리고 고-수준 분석모듈로부터 호출될 수 있는 단어(서브루틴)으로 구성된 저-수준 분석모듈, (ii) 고-수준 분석 원시함수과 같이 작용하는 정의단어(빌드절차과 두(do)절차)으로 구성된 고-수준 분석모듈, 그리고 (iii) 제13도에서 도시된 분석모델(152)의 다음 모듈지역(166)에서 분석모듈 토큰과 같은 이들의 제어필드(60)에서의 분석모듈 토큰을 사용하여 분석구조에서 다른 제어-수준 분석모듈로 연결되는 제어-수준 분석모듈중 어느 한 모듈에 속하는 새로운 분석모듈(130)을 발생시킬 수 있다. 새로운 제어-수준 분석모듈(130)을 포함하는 분석구조는 (i) 가령 디지트 분석 또는 경로배정 분석과 같은 완전한 분석을 형성시키는 분석 상위구조, (ii) 분석에서 여러장소로부터 호출될 수 있는 분석 하위구조일 수 있다.
분석 하위구조는 가령 처리되고 있는 호출에 대한 특정경로를 선택하는데 사용될 수 있다. 이같은 하위구조는 호출경로배정에 대한 통계를 수집하는 경로배벙 분석, 또는 특정한 경로로 향하여진 트래픽 양의 조정에서 각기 다른 부분으로부터 선택되는 때마 수행되야 하는 작용을 포함한다. 다른 하위구조는 여러 중앙 오피스에서 같은 분석 제어자료를 나타내도록 사용될 수 있으며, 따라서 오퍼레이터에 의해 한번 준비될 수 있고 다음에 오퍼레이터 접속기(200)을 통하여 각 중앙사무소내 범용 분석 시스템으로 전달될 수 있다. 이같은 다른 하부구조는 가령 번호 911, 또는 국제전화와 같은 긴급한 번호들의 경로배정 분석에서 사용될 수 있다.
바람직한 실시예에서, 분석 원시함수(130)은 범용 분석 프로그램(40)내의 하드-코드형이거나 내장형일 수 있으며 각기 다른 응용에서 사용하도록된 응용-중립형이거나, 같은 기본응용(가령 호출처리)의 각기 다른 사용자에 의해 사용하도록된 사용자-중립형 또는 이들 모두의 형태일 수 있다. 고-수준 분석 원시함수(120) 각각은 빌드절차(114)를 포함하며, 따라서 새로운 Forth 단어를 규정하기 위해 Forth에서 단어를 규정하는 내장형 사용과 유사한 방법으로 특정한 타입의 새로운 제어-수준 분석모듈을 실시하도록 사용될 수 있다. 가령, 단어 PROC(Forth에서 “:”와 유사한)를 규정하는 절차와 <BUILD(빌드)와 DOES(더즈)> 절차와 같은, Forth의 내장된 단어 몇가지와 유사한 한 세트의 저-수준 분석 원시함수(120)을 포함시키므로써, 오퍼레이터 접속기(200)은 새로운 저-수준과 고-수준 분석모듈(130)을 발생시키도록 사용될 수 있다. 다음에 고-수준 분석모듈(130)은 사용자의 응용 또는 요구의 특정필요에 맞게 만들어진 응용-특정 또는 사용자-특정 제어-수준 분석모듈(130)을 실시하도록 사용될 수 있다. 가령, 호출처리 응용에서, 스위치 오퍼레이터는 제어-수준 분석모듈(130)을 실시하며 오퍼레이터의 네트워크(넘버링 플랜등)의 특정구조를 묘사하는 제어자료로 이들을 채울 수 있다.
저-수준 및 고-수준 분석모듈(130)은 범용 분석 프로그램(40)에서 내장되거나 하드-코드화되지 않고, 사용자에 의해 만들어지고 분석 제어자료(42)내에 저장될 수 있다. 저-수준 분석모듈(130)은 내장형 전방 단어들로부터 새로운 전방단어의 규정과 다소 유사한 방법으로 저-수준 분석 원시함수(120)으로부터 반복적으로 규정된다. 저-수준 분석모듈(130)과 저-수준 분석 프리미티브 작용(120)은 다음에 사용자-규정 및 내장 Forth 단어들로부터 새로운 Forth 규정 단어의 정의와 유사한 방법으로 새로운 고-수준 분석모듈(130)을 규정하도록 사용될 수 있다. 사용자-규정의 규정 단어들로부터 새로운 전방단어들을 정의하는 것과 유사한 방법으로 새로운 제어-수준 분석모듈(130)을 정의하기 위해 고-수준 분석 원시함수(120)과 같이 새로운 고-수준 분석모듈(130)이 사용된다. 각각의 새로운 고-수준 분석모듈(130)은 규정되는 모든 새로운 제어-수준 분석모듈(130)의 컴파일-시간 행동(빌드절차(114)에 해당한다)과 실행-시간 행동(두 절차(112)에 해당한다) 모두를 명시하기 위해 <BUILD 및 DOES> 작용을 사용할 것이다.
새로운 응용-특정 또는 사용자-특정 분석 상위구조 또는 하위구조를 만들기 위해, 가령 단어(서브루틴)와 같은 내장형 저-수준 원시함수(120)의 하나나 둘이상의 새로운 자-수준 분석모듈(130), 즉 새롭게 순환적으로 규정되는 서브 루틴(<BUILDS 또는 DOES>의 새로운 버젼)과 같은 새로운 저-수준 분석모듈(130)을 발생시키도록 먼저 사용될 수 있다. 내장형의 저-수준 분석 원시함수(120)과 사용자-규정의 저-수준 분석모듈(130)이 새로운 고-수준 분석모듈(130), 즉 다음에 분석 트리에서 새로운 제어-수준 분석모듈(130)을 컴파일하기 위해 내장된 고-수준 분석 원시함수(120)과 함께 사용될 수 있는 규정단어를 규정하기 위해 사용될 수 있다(하기에서 설명되는 바와 같이, 저-수준과 고-수준 분석 원시함수(120)의 실행 또는 분석모듈(130)은 CALL RETURN(호출복귀)로 끝나며, 제어-수준 분석모듈(130)의 실행은 분석 트리내에서 다음의 제어-수준 분석모듈로의 GO TO 연결로 끝난다.
하기에서는 본 발명의 바람직한 실시예에서 (i) 내장형의 고-수준 분석 원시함수(120)으로부터 새로운 제어-수준 분석 모듈(130)을 실시하며, (ii) (내장형의) 저-수준 분석 원시함수(120)으로부터 새로운 저-수준 분석모듈(130)을 규정하고, (iii) 저-수준 분석 원시함수(120)과 저-수준 분석모듈(130)으로부터 새로운 고-수준 분석모듈(130)을 규정하며 (저-수준 분석 원시함수(120)과 저-수준 분석모듈(130)은 저-수준 분석모듈 또는 고-수준 분석모듈 어느하나를 규정하기 위해 사용될 수 있는 서브루틴이다), 그리고 (iv) 사용자-규정의 고-수준 분석모듈(130)으로부터 새로운 제어-수준 분석모듈(130)을 실시하기 위해 오퍼레이터 접속기(200)이 어떻게 사용될 수 있는가에 대한 실시예를 제공한다. 다음의 실시예에서, 오퍼레이터 접속기(200)을 통한 단어입력은 영어(국어) 단어들로부터 이들을 구분하기 위해 영어 대문자로 기재된다.
[제어-수준 분석모듈들의 컴파일에 대한 개관]
분석빌드 절차(102)와 내장형의 고-수준 분석 원시함수(120) 또는 앞서-규정된 고-수준 분석모듈(130)의 빌드 절차(114)가 특정 분석 제어자료, 가령 경로배정 분석 제어자료(136)내 새로운 제어-수준 분석모듈(130)을 규정하기 위해 직렬 사무소에서 사용될 수 있다. 일반적으로, 새로운 제어-수준 분석모듈(130)의 정의는 새로운 제어-수준 분석모듈(130)이 삽입되어야 하는 경로배정 분석과 같은 특정 분석에 해당하는 분석 제어자료의 이름 그리고 특정의 고-수준 분석 원시함수(120) 또는 고-수준 분석모듈(130)에 해당하는 규정 단어의 이름, 가령 새로운 분석모듈(130)이 특정한 경우(목적)인 제어-수준 분석모듈의 한 타입(클레스)인 일반적인 윤곽을 제공하는 “인덱스 선택기”를 포함할 것이다. 분석 빌드절차(102)는 분석 제어 자료 사전(132), 그리고 분석 원시함수 사전(104) 또는 분석모듈 사전(138)을 사용하여 정의에서 각각 명명된 분석 제어자료 그리고 고-수준 분석 원시함수(120) 또는 고-수준 분석모듈(130)을 나타내도록 한다.
제어-수준 분석모듈(130)의 컴파일에서, 오퍼레이터가 두부분으로 나뉘어질 수 있는 정보를 입력시킨다(그러나, 이같은 분할은 디자인 선택의 문제이다). 첫번째 부분은 (i) 규정되고 잇는 제어-수준 분석모듈의 특정 타입과 관계없이 모든 제어-수준 분석모듈타입(패밀리)을 위해 오퍼레이터에 의해 입력되며, 그리고 (ii) 분석 빌드 절차(102)에 의해 처리되는 정보로 이루어진다(같은 고-수준 분석 원시함수(120) 또는 같은 고-수준 분석모듈로부터 규정되거나 만들어진다면 한 그룹의 제어-수준 분석 모듈은 같은 “타입”이거나 “패밀리”가 된다). 이같은 정보는 분석에 대한 외부의 이름, 새로운 제어-수준 분석모듈에 대한 외부이름, 일정한 관리정보 그리고 새로운 제어-수준 분석모듈을 실시하기 위해 사용되는 고-수준 분석 원시함수(120) 또는 고-수준 분석모듈(130)의 외부이름을 포함한다. 고-수준 분석 원시함수(120) 또는 고-수준 분석모듈(130)의 외부이름이 새로운 제어-수준 분석모듈(130)의 분석 관리모듈헤더(160)과 원시함수 토큰(162) 각가으로 컴파일될 것이다.
오퍼레이터 입력의 두번째 부분은 (i) 일정 제어-수준 분석모듈타입에 대하여 특정되며, 즉 새로운 제어-수준 분석모듈(130)을 규정하는데 사용되는 고-수준 분석 원시함수(120) 또는 고-수준 분석모듈(130)의 타입에 따르며, 그리고 (ii) 그같은 분석 원시함수(120) 또는 그같은 분석모듈(130)의 특정 빌드 절차에 의해 처리되는 정보로 구성된다. 이같은 정보(일정한 파라미터값)은 새로운 제어-수준 분석모듈의 제어필드(60)내로 컴파일될 것이다. 제12도에서 도시된 제어-수준 분석모듈(130)의 예시적인 타입으로, 이같은 정보는 파라미터 지역(164)내로 컴파일되는 파라미터 ID(74), 그리고 새로운 제어-수준 분석모듈(130)의 다음 모듈 기준지역(166)내로 컴파일되는 다음 분석모듈의 외부이름(분석에서 끝나는 부분들이될 따라서 아무것도 갖지 않게될 제어-수준 분석모듈(130)을 제외)을 포함한다.
[고-수준 원시함수으로부터의 제어-수준 분석모듈의 컴파일]
설명의 목적을 위해 제13도에 도시된 “인덱스 선택기”타입의 제어-수준 분석모듈을 발생시키는 경우, 즉 인덱스 선택기 분석 원시함수(120)을 참조로한 제어-수준 분석모듈(130)을 택한다. 오퍼레이터는 오퍼레이터 접속기(200)을 통해 분석 빌드 절차(102)로 명령을 발행하므로써 “인덱스 선택기” 제어-수준 분석을 발생시킬 수 있다. 이같은 명령은 다음의 항을 포함한다.
1. 새로운 분석 모듈을 발생시키기 위한 명령단어.
2. 가령 “경로배정분석”(제11도에서 경로배정 분석 제어자료(136)을 위한)과 같은 새로운 분석모듈이 있는 분석 제어 자료의 외부이름.
3. 가령 “RA 275”로 발생되어질 분석모듈의 외부이름.
4. 가령 “경로배정을 위한 원점”과 같이 새로이 발생된 분석모듈(152)의 분석 모듈 관리헤더160)내로 컴파일되어질 관리정보.
5. 가령 “인덱스 선택기”와 같이 새로운 분석 모듈을 컴파일(및 실행)하는데에 사용하기 위한 분석 원시함수(120)의 외부이름.
6. 선택된 분석 원시함수에 특정인 정보, 이경우(인덱스 선택기), 다음의 정보가 필요하다.
a. “원점”(여기서는 경로배정 목적을 위한 원점)에 대한 ID(74)와 같이 분석될 호출 제어자료 파라미터에 대한 파라미터 ID 74. 이같은 파라미터 ID(74)는 토큰값일 수 있으며, 혹은 선택에 따라 카탈로그 기능을 사용하므로써 토큰값으로 번역되는 상징적인 외부이름을 갖는다.
b. 새로운 분석모듈로부터의 가능한 출구 총수의 표시, 즉 다음 분석모듈이 할당되는 분석된 파라미터의 최대 인덱스 값.
c. 각 출구(범위를 벗어난 출구포함)에 대하여, 그같은 출구를 위해 다음 분석모듈로 할당되야 하는 분석모듈의 외부이름.
본 발명의 바람직한 실시예에서, 오퍼레이터 접속기(200)은 OSI 모델에 따라 구성되고 임의 구문을 받는 컴퓨터-컴퓨터 접속기이다. 다음의 구문은 오퍼레이터 명령이 “인덱스 선택기” 분석모듈을 발생시키기 위한 구문이 어떻게 형성되는가의 일례에 불과한 것이다.
CREATE ROUTINGANALYSIS :RA275 “ORIGIN FOR ROUTING”
INDEX_SELECTOR(58, 4, RA187, RA198, RA99, RA0, RA99, RA33)
오퍼레이터로부터의 이같은 명령(텍스트 스트링)은 다음의 단계에서 분석 원시함수 “인덱스 선택기”의 분석 빌드 절차(102)와 빌드 절차(114)에 의해 판독되며 평가된다(번역된다).
1. 분석 빌드절차(102)는 새로운 분석모듈, 즉 키단어 “발생”(항목1)을 발생시키기 위한 명령을 인식하며, “발생” 작용을 수행하는 적절한 내측부분을 기원한다. 분석 빌드절차(102)가 인식할 수 있는 다른 명령으로는 기존분석모듈(130)내의 파라미터 값을 수정하기 위한 명령, 분석 제어자료(136)에서 능동적인 분석모듈 토큰 테이블(146)을 변경시키기 위한 명령, 즉 능동적인 토큰 테이블 포인터(144)의 값을 분석모듈 토큰테이블(148)로 대신에 지시하도록 능동 토큰 테이블 포인터(144)의 값의 값을 수정하도록 하기 위한 명령을 포함한다.
2. 분석 빌드 절차(102)의 기원된 부분이 분석의 외부이름, 즉 “경로배정 분석”(항목 2)의 외부이름을 얻어내고, 다음에 분석제어 자료 사전(132)(앞서-규정된 분석의 목록을 담고 있다)를 사용하여 “경로배정 분석”을 분석제어자료(136)으로의 포인터로 번역하도록 한다.
3. 분석 빌드 절차(102)의 기원된 부분이 새로운 분석모듈, 즉 “RA275”(항목 3)의 외부이름을 얻는다. 새로운 분석모듈의 외부 이름이 분석 모듈사전(138)내로 입력되며 사용되지 않은 모듈 토큰, 가령 값(65)가 새로운 분석모듈로 할당된다.
4. 분석 빌드 절차(102)의 요구된 부분은 분석 원시함수 작용의 외부이름, 즉 “인덱스 선택기”(항목 5)을 얻는다. 다음에 분석 원시함수사전(104)(앞서-규정된 분석 원시함수 작용(120)의 목록을 담고 있다)을 사용하여 “인덱스 선택기”를 이같은 분석 원시함수, 가령 값(93)을 가르키는 원시함수 작용 토큰으로 번역되도록 한다.
5. 분석 빌드 절차(102)의 요구된 부분은 분석 원시함수 작용 토큰 테이블(106)을 사용하여 원시함수 토큰(단계(4)에서 발견된다)을 분석 원시함수 인덱스 선택기의 빌드 절차(114)로의 포인터로 번역하도록 하며, 다음에 이같은 빌드절차(114)의 실행을 시작한다. 이때에, 분석빌드절차(102)로부터 인덱스 선택기의 빌드절차(114)로 제어가 통과한다.
6. 분석 원시함수 인덱스 선택기의 빌드절차(114)는 인덱스 선택기(항목 6)에 특정된 정보를 얻으며, 제12도의 형태로 새로운 인덱스 선택기 분석모듈을 위한 메모리 공간을 할당하며, 파라미터 지역(164)와 모듈 기준지역(166)을 다음단계의 적절한 값으로 채운다.
a. 분석 원시함수 인덱스 선택기의 빌드절차(114)는 분석되어질 파라미터의 호출제어자료의 파라미터 ID(74), 즉 “원점”(항목 6a)에 대한 토큰값(58), 그리고 호출 파라미터의 최대값, 즉 새로운 분석모듈로부터의 다수의 유출구가 계산될 수 있는 값(4)(항목 6b)를 얻는다(다음 모듈 기준지역(166)에서 사용되어질 공간의 수는 호출 파라미터보다 2개가 많다. 즉 값(0-4)에 대하여 각각 하나와 범위를 벗어난 것에 대하여 다른 하나의 6개 공간이 있다). 이때 새로운 분석모듈의 필요한 크기가 계산되고, 빈 분석모듈의 적절한 크기가 할당되며 얻어진 정보가 파라미터 지역(164)내로 기록된다.
b. 입력 텍스트 스트림내에서 명명된 각 유출구(범위를 벗어난 유출구를 포함한다)에 대하여, 분석 원시함수 인덱스 선택기의 빌드절차(114)가 분석모듈(항목 6c)의 외부이름을 얻으며 분석모듈사전(138)(앞서 규정된 분석모듈(130)의 목록을 포함한다)을 사용하며 상응하는 모듈 토큰을 찾도록 한다. 이같은 모듈 토큰은 다음 모듈 기준지역(166)내 적절한 슬롯내에 위치한다. 이때, 분석 원시함수 인덱스 선택기의 빌드절차(114)의 실행은 종료하며 제어가 되보내지고, 새로운 분석모듈로의 포인터가 분석 빌드 절차(102)의 초기에 요구된 부분으로 되보내진다.
7. 분석 빌드 절차(102)의 요구된 부분은 새로운 분석모듈 그리고 모듈토큰(단계 3에서 발견된다)으로 되보내진 포인터를 비활동(수동) 분석 모듈 토큰테이블(148)내로 기록한다. 즉 포인터는 수동 분석 모듈 토큰 테이블(148)내 슬롯(65)내로 기록된다. 따라서 이같이 새로운 분석모듈은 경로배정 분석제어자료(136)에 연결된다.
8. 분석빌드절차(102)의 요구된 부분은 원시함수토큰, 즉 값(93)(단계 4에서 발견된다)을 새로운 분석모듈의 원시함수 토큰필드(162)내로 기록하며, 또한 관리정보, 즉 “경로배정을 위한 원점”(항목 4)를 새로운 분석모듈의 관리헤더(160)내로 기록 한다. 따라서, 분석관리모듈헤드(160)은 새로운 분석모듈(“경로 배정에 대한 원점”)에 대한 짧은 설명을 담고 있으며 원시함수 토큰(162)는 새로운 분석모듈(“RA275”)가 분석되는때 실행되는 분석 원시함수 인덱스 선택기의 두(do) 절차(112)로 포인터를 인덱스할 것이다.
한번 규정된 바와 같이, 새로운 분석모듈 RA725가 비작동 분석모듈 토큰테이블(148)(단계 7)로부터 작동 분석모듈 토큰 테이블(146)으로 상응하는 모듈 토큰과 포인터를 복사하므로써 경로배정 분석에서 사용될 수 있다. RA275가 실행되는때, 원시함수 토큰(162)에 의해 표시된 분석 원시함수(120) 인덱스 선택기의 두 절차(112)가 실행된다. 인덱스 선택기의 두 절차(112)는 다음의 모듈 기준지역(166)에서 분석모듈 토큰의 테이블을 단순히 인덱스할 것이며 “원점” 호출 파라미터의 값에 해당하는 분석 모듈 토큰을 선택한다. 가령, “원점”의 값이 0이며, RA187이 선택되고, “원점”의 값이 1이면, RA198이 선택되게 된다. 따라서 경로배정분석은 RA275의 다음 모듈기준 지역(166)에서 분석 트리내 다음분석모듈(130)으로 분석모듈 토큰하나를 뒤따를 것이다.
새로운 분석모듈로의 포인터(130)으로의 포인터는 먼저 수동 분석모듈 토큰 테이블(148)로 삽입되고 다음에 능동분석 모듈 토큰 테이블(146)으로 전달되었다. 일반적으로, 경로배정 분석 제어 자료(136)에 대한 모든 수정은 수동분석모듈 토큰테이블(148)에서 만들어진다. 실제로, 오퍼레이터는 언제든지 단하나의 제어-수준 분석모듈(130)을 발생시키거나 수정시키지 않고 여러개의 제어-수준 분석모듈(130)으로 구성된 분석 상위구조 또는 하위구조를 발생시키거나 수정시키고자 한다. 이같은 목적을 위해, 능동분석 모듈 토큰 테이블(146)의 내용이 수동분석 모듈 토큰 테이블(148)내로 먼저 복사된다. 이같은 단계가 능동 분석 모듈 토큰 테이블(146)이 분석 상위구조 또는 하위구조가 능동분석 모듈 토큰 테이블(148)내에서 수정되고 있는 동안 전화 트래픽의 경로배정 분석에서 계속해서 사용될 수 있도록 하고, 이들 토큰 테이블이 내부적으로 서로 일관성 있도록 더욱더 보장하도록 한다.
분석 제어자료에 대한 수정은 가령 어느 포인터가 분석 모듈 토큰 테이블(148)내로 삽입되는가에 대한 새로운 분석모듈(130)의 일련의 규정, 또는 새로운 분석 상위구조 또는 하위구조를 효과적으로 발생시키는 기존 분석모듈(130)에서의 파라미터 값에 대한 일련의 수정으로 구성된다. 한번 수정되면, 분석 상부구조 또는 하부구조가 엔드리스 루우프, 루우즈 엔드 등과 같은 오차에 대하여 조사되며, 다음엥 분석 모듈 토큰 테이블(146) 대신에 분석 모듈 토큰 테이블(148)을 가르키는 능동 토큰 테이블 포인터의 값을 변경시키므로써 트래픽으로 보내진다. 이전의 능동분석모듈 토큰 테이블(146)은 예정된 시간, 가령 24시간동안 지금의 능동분석 모듈 토큰 테이블(148)의 효율이 판단될 때까지 저장될 것이다. 트래픽 방해가 발전되면, 분석모듈(130)의 증명된 한 세트를 가르키는 분석 모듈 토큰 테이블(146)이 트래픽으로 다시 보내질 수 있다.
부록 A에서, 새로운 제어-수준 분석모듈을 실시하는데 사용될 수 있는 한 세트의 고-수준 분석 원시함수(120)이 설명 된다. 이 세트는 본 발명의 바람직한 실시예에서 즉, 중앙 사무소와 같은 통신시스템에서 호출처리의 제어용 범용 분석장치의 응용과 같은 실시예에서 사용될 수 있는 고-수준 작용의 타입을 더욱더 예시하도록 한다. 본원 발명 기술분야에서 통상의 지식을 가진자에 의해 잘 알 수 있는 바와 같이, 많은 다른 고-수준 분석 원시함수가 실시될 수 있다.
[저-수준 분석모듈의 컴파일]
범용 분석장치에 대한 다음의 설명은 새로운 저-수준 분석모듈(PROC 2* DUPLICATE ADD ENDPROC)을 규정하기 위해 부록 C에서 설명된 저-수준 분석 원시함수(120)의 몇가지 사용을 설명한다.
첫번째 항목(PROC)와 마지막 항목(ENDPROC)은 Forth에서 “:”와 “;”의 사용과 유사한 방법으로 새로운 저-수준 분석모듈(130)을 빌드하기 위해 사용되는 저-수준 분석 원시함수(1200이다. PROC에 의해 규정된 각각의 새로운 저-수준 분석모듈(130)은 컴파일된 규정, 즉 PROC와 ENDPROC(2* DUPLICATE와 ADD)사이의 컴파일된 단어를 담게될 것이다. 두번째 항목(2*)은 새로운 저수준 분석모듈에 대한 외부이름이다. 세번째와 네번째 항목(DUPLICATE와 ADD)는 새로운 저-수준 분석모듈(130)의 작용을 실시하는 저-수준 분석 원시함수(120)이다. 이 실시예 에서, 이같은 작용은 그 항목의 값을 실행-시간 스택의 상부에서 그 값의 두배로 대체시키는 것이다(여기서 “스택”이라는 항목은 항목의 순차적 목록을 말하는 것으로서, 이 목록으로부터 항목들이 부가되거나 제거되어 스택으로 부가된 최종값이 되도록 하며, 잘알려진 바와 같이 이는 선입-선출, 또는 LIFO, 스택으로 인용 된다). 저-수준 분석 원시함수 DUPLICATE 및 ADD의 실행으로부터 스택에 대한 작용이 부록 C에서 더욱더 상세히 설명된다.
2*로 명명된 새로이 발생된 저-수준 분석모듈(130a)가 제14도에서 도시된다. 원시함수 토큰(162)는 분석 원시함수 토큰 테이블(106)에서 저-수준 분석 원시함수 PROC(120a)의 빌드 부분에 의해 컴파일된 제어필드(60)는 분석 원시함수 토큰 테이블(106)에서 저-수준 분석 원시함수 작용 DUPLICATE(120c), ADD(120d) 및 ENDPROC(120b)에 대한 엔트리를 언급하는 일련의 작용 토큰으로 구성된다. 새로운 저-수준 분석 모듈(130a)는 분석모듈 토큰값을 할당받으며 분석 제어자료내로 삽입되어 다른 분석모듈을 컴파일하는데 외부이름 (2*)으로 이용되며, 분석을 실용하는때 할당받은 분석 모듈 토큰으로 인용되도록 한다. 다시말해서, 마치 다른 단어(한단어가 입력 정의에서 단순히 그 이름을 사용하므로써 호출된다)인 것과 같이 뒤이어 컴파일된 단어가 단어 2*를 호출할 수 있다. 호출되는때, 2*는 그 작용을 수행하며, 다음에 복귀된다(이는 서브루틴 호출의 실행과 유사하다).
[고-수준 분석 모듈의 컴파일]
범용 분석장치로의 입력에 대한 다음의 항목들은 부록 C에서 설명된 저-수준 분석 원시함수(120), 그리고 상기에서 정의된 저-수준 분석모듈 2*의 몇가지에 대한 사용을 설명하여, 분석 트리(tree)so 제어-수준 분석모듈을 컴파일하고 실행하기 위해 사용될 수 있는 새로운 고-수준 분석모듈(130)을 규정하도록 한다.
입력 작용 및 동작
PROC 4SELECTOR -- 컴파일 시간작용을 시작한다
0 -- 새로운 분석모듈내에서 오프셋을 시작한다.
INSERT_CALLPARM -- 호출 파라미터를 위해 파라미터 ID 74를 삽입시
킨다.
INSERT_MODULE -- 값=0에 대하여 분석모듈 토큰을 삽입시킨다.
INSERT_MODULE -- 값=1에 대하여 분석모듈 토큰을 삽입시킨다.
INSERT_MODULE -- 값=2에 대하여 분석모듈 토큰을 삽입시킨다.
INSERT_MODULE -- 값=3에 대하여 분석모듈 토큰을 삽입시킨다.
DOES> -- 실행시간 작용을 시작한다.
0 -- 분석모듈(130)에서 파라미터 ID(74)로의 오프
셋.
FETCH_PARAMETER -- 분석 실행 입력 자료핸들러(110)을 통해 호출제
어자료 저장 핸들러(118)에 접근하며 스택으로
분석되는(116) 호출에 대한 파라미터의 값을 푸
쉬(push)한다.
1 ADD 2* -- 값에 대한 유출구로 분석모듈내 오프셋을 계
산한다(분석모듈 토큰이 2바이트인 것으로
생각된다).
PERFORM -- 스택상부에서의 값에 의해 표시된 오프셋
으로 분석 모듈 토큰을 판독하며, 그같은 분
석모듈로의 점프를 수행한다.
규정하는 분석모듈 4SELECTOR로 컴파일된 분석모듈의 작용은 호출제어자료(116)에서 호출 파라미터의 0-3범위내 값에 따라 유출구를 선택하는 것이다(4개의 유출구를 선택하는 것이다(4개의 유출구를 갖는 고-수준 분석모듈 4SELECTOR는 제8도와 관련하여 설명된 바와 같이 10개의 유출구를 갖는 고-수준 분석 원시함수 SELECTOR와 같이 작용 한다). 2*의 정의에서와 같이, 4SELECTOR의 정의가 저-수준 분석 원시함수 PROC 및 ENDPROC 내에 공개된다. 그러나 4SELECTOR의 정의는 저-수준 분석 원시함수(<BUILD와 DOES>)내에 포함된 빌드 절차와 저-수준 분석 원시함수(DOES>와 ENDRPOC)내에 포함된 두-절차로 나뉘어진다.
4SELECTOR의 빌드 절차는 일련의 저-수준 원시함수(120) 또는 앞서 규정된 4SELECTOR 타입의 분석모듈(130)이 어떻게 컴파일되는가를 명시하는 저-수준 분석모듈(130)로 구성 되며, 상기 분석모듈은 발생된 분석모듈(130)의 제어필드(60)의 내용을 기록하는 동작을 명시한다(4SELECTOR의 경우에 제어필드(60)은 제12도에서 도시된 바와 같이 파라미터 지역(164)와 다음 모듈 기준지역(166)으로 구성될 것이다). 상기 빌드 순서내에서 사용된 저-수준 분석 원시함수은 부록 C에서 더욱 상세하게 설명된다.
4SELECTOR의 do(두) 절차는 일련의 저-수준 분석 원시함수(120) 또는 앞서-규정된 4SELECTOR 타입의 분석모듈(130)이 어떻게 실행되는가를 명시하는 저-수준 분석모듈(130)으로 구성 되며, 상기 분석모듈은 분석트리에서 다음 분석모듈(130)을 선택 하기 위해 파라미터 지역(164)와 다음 모듈 기준지역(166)의 내용을 사용하는 동작을 명시한다. do 순서내에서 사용된 저-수준 분석 원시함수(20)(FETCH-PARAMETER, 0, 1, ADD 및 PERFORM)은 2*가 상기에서 설명된 저-수준 분석모듈인한은 부록 C에서 설명된다.
4SELECTOR라 하는 새로이-발생된 고-수준 분석모듈(130b)가 제15도에서 설명된다. 원시함수 토큰(162)는 분석 원시함수 토큰 테이블(106)에서 저-수준 분석 원시함수 PROC(120a)에 대한 엔트리와 관계가 있다. PROC(120a)의 빌드 부분에 의해 컴파일된 제어필드(60)은 먼저 <BUILD 절차의 빌드부분에 의해 순환적으로 컴파일되며 do 절차로의 한 포인터와 분석 원시함수 <BUILD(120e)와 관련이 있는 작용 토큰 모두를 담고 있는 하부분으로 구성된다. PROC 분석 원시함수의 빌드부분에 의해 컴파일된 파라미터지역(164)의 나머지 부분은 분석 원시함수(0)(상수 “0”)(120f), INSERT_CALLPARM 120g), INSERT_MODULE(120h), DOES>(120i), FETCH_PARAMETER(120j), 1(상수 “1”)(120k), ADD(120l(제14도에서 120d), PERFORM(120m) 그리고 ENDPROC(120b)와 관련이 있는 일련의 작용토큰, 그리고 2*에 대한 저-수준 분석모듈(130a)을 담고 있다. 새로운 고-수준 분석모듈(130b)는 분석모듈 토큰값을 할당 받으며 분석제어자료로 삽입되어 다른 분석모듈을 컴파일하는데 외부이름 “4SELECTOR”로 표기되고, 가령 경로배정 분석과 같은 분석을 실행하는때 할당된 분석모듈 토큰으로 표기되도록 한다.
한번 규정되면, 고-수준 분석모듈 4SELECTOR는 새로운 제어-수준 분석모듈(130)을 실시하도록 사용될 수 있다. 컴파일-시간에, 즉 4SELECTOR의 빌드 절차가 실행되는때, INSERT CALLPARM이 호출 파라미터로의 포인터로 할당받는 새로운 분석모듈(130)으로 삽입될 것이며, 즉 분석되어질 호출 파라미터의 외부 이름을 호출기록(116)에서 이같은 호출 파라미터의 위치와 관계하는 파라미터 ID(74)내로 컴파일하고, 그리고 INSERT-MODULE(순서적으로 4번 인용되는)이 컴파일되고 있는 분석모듈(130)내로 컴파일되는 분석모듈(130)을 분석 트리내의 다음 분석모듈(130)으로 연결시키는 일련의 4개의 모듈 표시기(80)(0-3 범위내 4개의 호출 파라미터 값에 해당한다)을 삽입시킬 것이다. 실행시간에, 즉 4SELECTOR의 do 절차가 실행되는때, FETCH-PRRAMETER가 가령 호출제어자료(54)로부터 파라미터 ID(74)에 의해 표시된 다이얼된 숫자인 파라미터(46)을 채취하며, 순서(A ADD 28 PERFORM)은 해석되는 4SELECTOR 타입분석 모듈(130)에서 파라미터(46)의 값(0-3)과 관련된 모듈표시기(80)에 의해 표시된 다음 분석모듈(130)을 실행을 위해 선택할 것이다.
[고-수준 분석모듈로부터 제어-수준 분석모듈의 컴파일]
범용 분석 시스템으로의 다음의 입력단어들은 고-수준 분석모듈 4SELECTOR의 사용을 설명하여 경로배정 분석 제어자료(136)내에 있는 한 분석 트리내 새로운 제어-수준 분석모듈(130)을 규정(컴파일)하도록 한다.
입력 작용 및 동작
4SELECTOR THISID -- 4SELECTOR 타입의 외부이름 THISID를 갖는
새로운 제어-수준 분석모듈을 컴파일하기
위해 범용 분석 시스템을 명령한다.
LINECLASS -- 4SELECTOR의 빌드 절차에서 INSERT_CALLPARM
으로 컴파일-시간입력 INSERT_CALLPARM은 새로
운 분석모듈내로 호출 파라미터 LINCECLASS를
위한 파라미터 ID(74)를 삽입시킬 것이다.
MODULEID_0 -- 4SELECTOR의 빌드 절차에서 첫번째 INSERT_M
ODULE로 컴파일-시간입력, INSETT MODULE은
LINECLASS의 값이 0(제로)이면 선택되기 위해
분석모듈 트리에서 다음의 분석모듈을 위한
분석모듈 토큰을 삽입시킬 것이다.
MODULEID_1 -- 두번째 INSERT_MODULE과 값=1인때와 같다.
MODULEID_1 -- 세번째 INSERT_MODULE과 값=2인때와 같다.
MODULEID_1 -- 네번째 INSERT_MODULE과 값=3인때와 같다.
이들 입력라인들에 의해 발생된 분석모듈의 구조가 제16도에서 설명된다. 4SELECTOR 타입의 새로운 분석모듈(130c)는 분석모듈 토큰 테이블(146)을 경유하여 4SELECTOR라 하는 정의 분석모듈(130b)를 나타내는 원시함수토큰(162)의 값을 담고 있다.
분석모듈(130c)의 파라미터 지역(164)는 호출 제어자료(116)에서 호출 파라미터 LINCECLASS를 나타내는 파라미터 ID(74)를 포함한다. 분석모듈(130c)의 다음 모듈 기준지역(166)은 분석모듈 토큰 테이블(146)을 경유하여 호출 파라미터 값 0, 1, 2 및 3 각각에 대하여 선택될 다음 분석모듈(130d, 130e, 130f 및 130g)를 나타내는 4개의 분석모듈 토큰의 테이블을 포함한다.
[확대가능성]
따라서, 새로운 제어-수준분석모듈(130)이 내장된 고-수준 분석 원시함수(120)으로부터 정의(규정)될 수 있으며 가령 경로배정 분석 제어자료(136)와 같은 특정한 분석을 위한 분석 제어자료로 추가되는 때와 같이, 새로운 타입의 제어-수준 분석 모듈이 사용자-규정 고-수준 분석모듈(130)으로부터 만들어질 수 있다. 가령, 인덱스 선택기 타입 분석모듈을 어떻게 발생시키는가에 대한 앞선 설명에서, 고-수준 분석 원시함수(120)이 아닌 고-수준 분석모듈(130)의 빌드 절차가 사용될 수 있었다. 고-수준 분석 원시함수(120)과 같이 작용하는 고-수준 분석모듈(130)은 내장된 저-수준 분석 원시함수(120)으로부터 그리고 앞서-규정된 저-수준 분석모듈(130)으로부터 만들어질 수 있으며, 상기의 저-수준 분석 모듈은 다시 저-수준 분석 원시함수(120)으로부터 순확적으로 규정된다. 범용 분석 시스템의 이같은 확대가능성은 특정된 타입의 내장된 작용을 통해 특정 필요조건에 맞는 범용 분석 프로그램을 새롭게 방출시키는 대신에, 사용자에게 분석 제어자료(42)내로 응용-특정 또는 사용자-특정 분석을 만드는 자유를 허용한다.
실질적인 목적을 위해 그리고 실-시간에 민감한 응용에서 최적의 성능을 위해, 전부는 아닐지라도 대부분의 자주 사용되는 분석 원시함수이 범용-분석 시스템에서 내장된 고-수준 분석 원시함수(120)으로서 제공될 수 있다. 다음에, 드물게 사용자-특정 분석 원시함수이 제14-16도에서 설명된 방식으로 내장된 저-수준 분석 원시함수(120)으로부터 발생된 사용자-규정 분석모듈(130)에 의해 제공될 수 있다. 부록 C에서, 한세트의 저-수준 분석 원시함수(120)이 설명된다. 이같은 세트는 바람직한 확대가능성을 제공 하기 위해 사용될 수 있는 각기 다른 타입의 저-수준 분석 원시함수(120)에 대한 다수의 예를 포함한다. 그러나 본 발명 기술분야에서 통상의 기술을 가진자에 의해 알 수 있는 바와 같이, 많은 다른 저-수준 분석 원시함수(120)이 사용될 수 있다.
응용-특정 또는 사용자-특정 분석을 함에 추가하여, 저-수준 분석 원시함수(120)이 특정된 버젼이 릴리이스된뒤에 범용 분석 시스템으로 새로운 기능도를 소개하도록 사용될 수 있다. 이같은 새로운 기능도는 가령 (i) 벨 오퍼레이팅 캄퍼니(Bell Operating Company)와 같은 특정 수요자의 통계 샘플링과 같은 특정한 요구조건으로 상기 범용 분석시스템을 정용시키는 것이며, 또는 (ii) 가령, 이동가입자 위치를 고정된 가입자 위치와 비교하는 것과 같은 새로운 분석 모듈 패밀리를 사용하기 위해 특정타입의 분석을 적용시키는 것이고, 또는 (iii) 기존 기능도로 범용의 확대를 제공하는 것이다. 따라서 새로운 기능도는 범용분석 시스템의 뒤이은 릴리이스에서 더욱더 나은 성능(실행속도)를 위해 내장된 분석 원시함수(120)을 통해서 제공된다. 즉, 고-수준 원시함수가 저-수준 원시함수를 간접적으로 나타내는 코드를 통해서가 아닌 적접 컴파일된 코드를 통해 제공될 수 있다.
[분석 원시함수와 분석모듈 사이의 컴피일-시간과 실행-시간 차이]
범용 분석 시스템은 내장된 분석 원시함수(120)과 같이 사용자-규정된 분석모듈(130)을 처리한다. 그러나 이들 컴파일-시간과 실행-시간 행동에는 일정한 차이가 있다. 특히, 분석 원시함수(120)의 외부이름이 분석 원시함수 사전(104)에서 발견되며 분석모듈(130)의 외부이름은 가령 경로배정 분석 제어자료(136)에서 분석모듈사전(138)과 같은 특정분석의 분석모듈 사전에서 발견될 것이다. 반대로, 어떠한 분석 원시함수(120) 또는 분석모듈(130)에서의 원시함수 토큰(162)(그리고 어떠한 다른 기능 토큰도)도 분석 원시함수 토큰 테이블(106) 또는 분석 모듈 토큰 테이블(146)도 인덱스할 수 있다(가령 제15도를 참고한다. 여기서 고-수준 분석모듈(130b)에서의 기능 토큰은 저-수준 분석모듈(130a)와 여러개의 저-수준 분석 원시함수(120a, 120b, 120e, 120f, 120g, 120h, 120i, 120j, 120k, 120l 및 120m) 모두를 가르킨다.
경로배정 분석제어자료(136)과 같은 특정분석내에서 새로운 분석모듈(130)을 만들기 위해 오퍼레이터가 오퍼레이터 접속기(200)을 통해 명령을 입력시키는 컴파일 상태중에, 새로운 분석 모듈(130)의 입력 정의는 내장된 분석 원시함수(120) 또는 앞서 정의된 분석모듈(130) 어느하나의 외부이름을 포함한다. 가령, 새로운 고-수준 분석모듈(130)의 정의는 저-수준 분석 원시함수(120) 및 저-수준 분석모듈(130)의 이름들을 포함할 수 있다. 이와 유사하게, 새로운 제어-수준 분석모듈(130)의 정의는 고-수준 분석 원시함수(120) 또는 고-수준 분석모듈(130) 어느 하나인 정의단어를 사용할 수 있으며, 여러개의 앞서-규정된 제어-수준 분석모듈(130)의 이름을 포함할 수 있다. 결과적으로, 분석 원시함수사전(104)와 분석모듈사전(138) 모두는 입력 텍스트 스트림에서 이름이 붙여진 각 분석 원시함수(120) 또는 분석모듈(130) 각각을 발견하기 위해 조사되어야 한다.
실행상태중에, 새로운 분석모듈(130)이 만들어지고 경로배정 분석 제어자료(136)으로 추가된뒤에, 호출 제어 프로그램(56)이 경로배정 분석 제어자료(136)을 실행하기 위해 한 요구를 보내는때, 새로운 분석모듈(130)내 기능토큰(162)(그리고 어떤 다른 기능 토큰)이 내장된 분석 원시함수(120) 또는 사용자-규정분석 모듈(130) 어느하나를 가르키게 된다. 결과적으로, 분석 원시함수 기능토큰 테이블(106)과 분석모듈 토큰테이블(146) 모두가 새로운 분석모듈(130)내의 원시함수토큰(162)를 앞서 새로운 분석모듈(130)을 발생시키기 위해 오퍼레이터에 의해 사용되었던 분석 원시함수(120) 또는 분석모듈(130)으로의 한 포인터로 번역되도록 조사되어야 한다.
여러개의 조사 전략이 컴파일 또는 실행중에 분석 원시함수(120)과 분석모듈(130)을 찾기 위해 개발될 수 있다. 가령 경로배정 분석을 위한 새로운 제어-수준 분석모듈(130)의 컴파일에서 고-수준 원시함수(단어를 발견하는)에 대한 조사가 내장된 분석 원시함수(120)에 의해 뒤이어지는 사용자-규정 분석모듈(130)과 함께 시작할 수 있으며, 즉 이 전략은 오퍼레이터에 의해 입력된 원시함수의 이름에 대하여 경로배정 분석 제어자료(136)에서 분석모듈사전(138)을 조사하는 것이며, 만약 이같은 조사가 이름을 발견하지 못하면, 분석 원시함수사전(104)에서 조사를 시작한다(이같은 조사명령은 사용자가 가령 분석 원시함수(120)의 특수한 버젼인 분석모듈(130)을 발생시키고, 사용자-규정 분석모듈(130)에 대하여 내장된 분석 원시함수(120)의 이름을 사용할 것을 선택할 수 있기때문에 바람직하다). 하쉬(hash) 테이블을 포함하는 모든 스탠다드 조사 가속기술은 이들 사전 조사를 수행하는데 사용될 수 있다.
그러나 실행중 보다 효율적인 조사를 위해(이는 컴파일보다 더욱 시간에 민감하다), 그리고 분석 원시함수 토큰 테이블(106)과 분석모듈 토큰 테이블(146) 모두에서의 조사를 피하기 위해, 원시함수토큰과 분석모듈 토큰(이는 내장된 분석 원시함수(120)과 사용자-규정 분석모듈(130) 각각을 나타낸다)사이를 구분할 수 있는 능력이 범용 분석 시스템에 제공된다. 원시함수 토큰과 분석 모듈 토큰 사이를 구분시키기 위한 많은 기술이 본 발명의 바람직한 실시예내에서 적용 되나, 한가지 비교적 간단한 기술은 원시함수 토큰과 분석 모듈 토큰 각각에 대하여 두개의 각기다른 번호범위, 가령 양수와 음수를 사용하는 것이다. 만약 양수와 음수가 사용된다면, 원시함수에서 최대 유효비트는 0값을 갖게 되고, 분석모듈 토큰에서 최대 유효비트는 1값을 갖게된다(또는 그 반대가 된다). 이와 같이하여, 범용 분석 시스템은 두개의 토큰 테이블(106)(104)중 어느것을 실행중에 조사할 것인가를 쉽게 정할 수 있다.
본 발명의 바람직한 실시예에서, 분리된 사전과 분리된 토큰 테이블이 한편으론 분석 원시함수(12)(제10도)를 위해 제공되며, 다른 한편으로는 각 분석 제어 자료구조에서 분석모듈(130)을 위해 제공된다. 선택적 실시예에서, 모든 다른 분석의 분석 원시함수(120)과 분석모듈(130) 모두의 외부 이름 및 토큰이 같은 사전과 같은 같은 토큰 테이블 각각에서 저장될 수 있다. 그러나 분석 원시함수(120)으로부터 분석모듈(130)을 분리하다음, 한가지 분석에 대한 분석모듈(130)을 다른 한가지 분석에 대한 분석모듈(130)으로부터 분리하는 한 장점은 범용 분석 시스템의 사용자가 모든 분석에 대하여 한 큰 세트를 갖는대신에 각각의 다른 분석에 대해 각기다른 분석모듈을 만들수 있다는 것이다. 즉 사용자가 모듈러 방식으로 각 분석에 대하여 분석 모듈 세트를 연장한다는 것이다. 바람직한 실시예에서 내장된 분석 원시함수(120)을 사용자-규정 분석모듈(130)으로부터 분리시키는 또다른 장점은 분석 원시함수(120)이 보안목적으로 허용된 기록보호(판독 접근전용) 메모리내 한 장소에 저장될 수 있으며, 분석모듈(130)이 사용자가 판독 및 기록 접근할 수 있는 메모리내 또다른 장소에 저장될 수 있다는 것이다.
[오퍼레이터 접속기]
본 발명의 기술분야에서 숙련된 자에 의해 알 수 있는 바와 같이, 여러개의 접속기술이 오퍼레이터 접속기(200)과 관련하여 실시될 수 있다. 본 발명의 바람직한 실시예에서, 통상 관리 네트워크(TMN) 프레임워크가 사용되며, 따라서 오퍼레이터 접속기(200)은 오픈 시스템 상호연결(Open System Interconnection(OSI))모델에 따른 층을 이루는 접속기이다. ANSI TI-210-1989, 통신에 대한 미국 국가표준-동작, 관리, 유지 및 관련법규(OAM&P)-기능원리, 동작시스템과 네트워크 엘리먼트사이의 접속에 대한 아키텍쳐와 프로토콜을 참고할 수 있다.
OSI 모델의 상측층에서, 공동관리 정보 서비스 엘리먼트(CMISE) 프로토콜이 사용된다. CMISE는 관리된 대상으로 적용될 수 있는 Set, Get, Delete, Modify 등과 같은 한세트의 일반 명령을 제공한다. 본 발명의 범용 분석 시스템에서, 관리된 대상으로는 경로배정 분석 제어자료(136)과 같은 분석제어 자료내 분석 모듈(130)을 포함한다. 관리된 대상에 대한 값을 명시하기 위해 CMISE를 통해 전달된 정보는 전후 문맥에 종속하여, 따라서 관리된 대상의 종류에 종속한다. 우연히, 이같은 문맥-종속 정보는 사람-기계 접속기, 가령 CCITT에 의해 규정된 사람-기계언어(MML) 또는 범용 분석 시스템을 위해 디자인된 특수한 구문을 사용하는 범용 분석 시스템에 직접 연결된 터미날과 같은 다른 수단을 통해 전달될 수 있다.
오퍼레이터 접속기(200)의 각기다른 가능한 실시는 각기다른 기술을 사용하여 분석모듈(130)을 식별하도록 하며 그러나 이들의 내부구조를 나타내기 위해 공동기술을 사용할 수 있다. 드레디드(threaded) 해석단어(TIL)의 정상적인 편이를 사용하여, 분석모듈(130)의 구조 및 값이 TIL 소스 포맷, 즉 분석모듈의 규정을 담고 있는 텍스트 스트링(단어 및 숫자)내에 표시될 수 있다. 실제로, 범용분석 시스템은 둘이상의 접속기를 지원할 필요가 없으며 다음에 오퍼레이터 접속기(200)은 여러개의 외부 접속기에 공통인 내부 시스템 접속기를 구성하는 것으로 생각될 수 있다. 이같은 상황이 제17도에서 설명된다.
제17도에서 도시된 오퍼레이터 접속기(200)은 새로운 분석 모듈을 규정하고, 사용되지 않은 분석모듈을 삭제하거나 대체하며, 어떠한 분석제어 자료내에 있는 능동 및 수동 분석 모듈 토큰 테이블의 사용도 제어하기 위해 사용되도록 한 세트의 범용 동작을 제공하는 한세트의 서브루틴으로 형성될 수 있다. 가령 분석제어 자료에서 새로운 분석모듈을 삽입시키는 서브루틴으로의 필요한 입력은 (i) 분석제어자료, 즉 분석의 외부 이름 식별, (ii) 분석모듈, 즉 분석모듈의 외부 이름식별, 그리고 (iii) 앞서 설명된 방식으로 TIL 소스포맷내에 배치된 분석모듈의 내용규정(컴파일 예)를 포함한다.
제17도에서, 로컬 접속기 어댑터(240)은 내부 시스템 접속기(200)을 오퍼레이터가 경로배정 분석 제어자료(136)과 같은 다양한 분석을 위해 분석 제어자료를 추가시키고 수정하게 되는 텍스트 터미날(245)로의 외부 시스템으로 내부 시스템 접속기(200)을 적용시킨다. 외부접속기(243)은 가령 본 발명의 컴파일 상태에 대해 앞서 제공된 예와 일관되는 텍스트를 기초로 하는 접속기로 형성될 수 있다. 터미날(245)의 오퍼레이터로부터 텍스트 스트림을 내부 시스템 접속기(200)에서의 서브루틴 호출 순서로 번역한다. CMISE-기초의 접속기 어댑터(241)은 역시 접속기(248)을 통해 외부 동작 지지시스템과 통신하기 위해 사용된다. 상기 동작 지지시스템(242)는 통신 네트워크에서 스위치와 같은 전체 통신 시스템의 관리를 위해 사용되는 지지시스템이다. 동작 지지시스템은 가령 그래픽 편집자와 같은 접속기(246)을 통해 터미탈(247)로 연결된다.
동작 지지시스템과 통신 시스템 사이에는 여러개의 각기다른 타입의 접속기가 사용되고 있다. 본 발명의 목적을 위해, 본 발명의 범용 분석시스템을 사용하는 통신시스템과 동작 지지시스템(242) 사이의 접속기(248)은 ANSI TI-210-1989에서 제공된 프레임워크를 기초로 한다. 이같은 접속기는 동작 지지시스템(242)와 범용 분석 시스템을 사용하거나 CCITT 추천 X.25를 사용하여 자료통신 네트워크를 통해 연결될 수 있는 통신 시스템 사이에서 직접적인 자료연결을 통해 사용될 수 있다. 접속기(248)은 OSI 모델의 모든 7개층을 통한 프로토콜을 포함한다. 상부층에서, CMISE 응용 서비스 엔티티(ISO 9595-2, 9596-2)가 사용된다.
CMISE-기초의 접속기 어댑터(241)은 범용 분석 시스템을 사용하는 통신 시스템을 위한 동작 지지시스템(24)로 접속기를 연결시키며 수신된 CMISE 작용을 내부시스템 접속기(200)내 서브루틴 호출의 순서로 번역한다. CMISE 작용은 Set, Get, Create, Delete 등과 같은 일반 명령을 포함한다. 이들 동작은 파라미터를 포함하거나 작용이 향하여질 대상을 식별하는데 기여한다. 가령, 분석 제어자료에서 새로운 분석모듈을 삽입시키는 작용은 분석(분석의 외부이름에 해당하는), 분석모듈의 식별(분석모듈의 외부이름에 상응하는) 분석모듈의 식별, 그리고 특정 분석모듈의 내용 규정을 식별하는 파라미터를 포함할 것이다. 예정된 프레임워크에서, CMISE 동작은 CCITT rec. X.209에서 규정된 ASN.1 기본 인코딩들을 사용하여 암호화된다. 분석모듈의 내용은 암호화된 CMISE 동작내 파라미터에서 구체화된 TIL 소스포맷을 사용하여 규정될 수 있다.
범용 분석 시스템으로의 입력의 사용에 대한 (i) 고-수준 분석 원시함수로부터 분석내에 새로운 제어-수준 분석모듈을 발생시키고, (ii) 나중에 다른 분석모듈의 규정에 포함될 수 있는 새로운 저-수준 분석모듈을 발생시키며, (iii) 한분석내에서 새로운 제어-수준 분석모듈을 발생시키기 위해 나중에 사용될 수 있는 새로운 고-수준 분석모듈을 발생시키고, 그리고 (iv) 고-수준 분석모듈로부터 새로운 제어-수준 분석모듈을 실시하기 위한 앞서 설명된 예는, 비록 범용 분석시스템에 의해 요구되는 각기다른 입력파라미터의 인코딩이 다소 다르기는 하더라도, 범용 분석 시스템으로의 입력이 CMISE-기초의 접속기 어댑터(241)을 사용하는 경우에 대하여서 유효하다.
따라서, TIL 특징으로, CMISE와 같은 범용 동작 접속기조차 본 발명에 따라 연장이 가능하다. 새로운 기능들이 추가되고 범용 접속기가 접속기를 실제로 변경시키지 않고 더욱더 복잡하게 만들어진다. 연장가능한 접속기가 내장된 분석 원시함수를 일정한 분석을 위해 독특하게 요구되는 새로운 분석 원시함수 기능을 추가하기 위해 사용될 수 있다. 사용자-규정의 분석 원시함수는 범용 분석 시스템의 실-시간 처리능력에 영향을 미치며, 매우 유용한 것으로 입증되는 것들이 당시 존재하는 분석의 어떠한 규정도 수정하지 않고 더욱 나은 수행을 위해 범용 분석 시스템의 다음 릴리이스에서 항상 하드-암호화(hard-coded)될 수 있다.
[범용 분석 시스템의 하이라이트]
앞선 설명으로부터 명확하게 이해되리라 생각되는 본 발명의 몇가지 특징을 요약하기 위해, 분석제어자료, 즉 분석제어자료(42)의 일반적인 구조가 자료베이스내에 프로그램과 같이 저장될 수 있으며 일반화된 인터프리터, 즉 범용 분석 프로그램(40)으로 번역될 수 있다. 가령 경로배정 분석과 같은 각 특정분석은 다수의 분석기능, 즉 분석제어자료(42)에서 자료로 저장되는 (제어-수준) 분석모듈(130)에 의해 표시될 수 있다. 분석모듈(130)의 적어도 몇가지는 일정한 파라미터에 작용하여 유용한 분석을 발생시키도록하며, 이들 및 다른 분석모듈(130)은 결합 및 재결합되어 더욱더 복잡한 분석을 발생시키도록 한다. (제어-수준) 분석모듈(130) 각각에 대한 표준화된 구조는 모든 분석에서 대체로 같은 방법으로 특정타입의 (제어-수준) 분석모듈(130)을 번역하는 특정 인터프리터 서브프로그램, 즉 분석 원시함수(120)으로의 한 포인터, 그리고 그같은 분석에서 뒤를 있는 또다른 (제어-수준) 분석모듈(130)으로의 포인터를 포함한다. 결과적으로, 한 분석이 (제어-수준) 분석모듈(130) 사이의 포인터들을 변경시키므로써 용이하게 수정될 수 있다.
만약 한 분석이 분석으로 추가될 새로운 기능, 혹은 분석되어질 새로운 파라미터를 필요로 한다면, 새로운 기능도를 제공하고 새로운 파라미터로 동작하도록 하기 위해 하나 또는 둘이상의 새로운 분석모듈(130)이 분석제어자료(42)내에 만들어질 수 있다. 따라서, 본 발명의 범용 분석 시스템은 새로운 파라미터와 새로운 타입의 분석모두의 관점에서 연장 또는 확장가능하다. 더구나, 분석제어자료(42)의 일반화된 구조때문에, 오퍼레이터 접속기는 각기다른 오퍼레이터 지지시스템과 용이하게 접속되는 프로그램으로 구성될 수 있기도 하다. 고-수준 오퍼레이터 접속기는 오퍼레이터가 분석자료(42)내에서 새로운 분석모듈(130)을 발생시키는 것을 돕는 개선된 도구를 제공할 수 있다.
이와 같이하여, 본 발명의 범용 분석 시스템의 오퍼레이터는 종래기술의 분석 시스템에 의해 요구되는 특정 포맷에서 각각의 분석을 위해 자료를 준비해야 하는 많은 비용을 피할 수 있을뿐아니라, 전화 스위칭과 같은 특정 산업환경의 예측치않은 요구를 충족시키기 위해 분석을 조정할 수 있으며, 이때에도 종래기술의 분석 시스템에 따라 필요하게될 일반 분석 프로그램(40)에 대한 어떠한 수정도 할 필요가 없게 된다. 이는 본 발명의 신규한 개념으로 가능하게 되는데, 이는 자료(분석제어자료(42)가 자료를 사용하는 프로그램대신에 프로그램(범용 분석 프로그램(40))을 사용하기 때문이며, 즉 어느 자료가 번역될 것인가를 가르키는 서브프로그램 대신에 분석모듈(130)내에 담겨있는 자료를 번역하는데 어느 서브프로그램(분석 원시함수(120))을 각 분석모듈(130)이 지적하기 때문이다. 본 발명에 따라, 범용 분석 프로그램(40)의 특정 버젼에 대하여서는 설명되지 않은 새로운 기능과 새로운 파라미터는 분석 제어자료(42)내에 새로운 분석모듈(130)(분석 원시함수(120)과 같이 작용하는 분석 모듈(130)을 포함한다)을 규정하므로써 용이하게 실시될 수 있다.
[부록 A]
[고급 분석 원시함수]
본 부록에서의 고급 분석 원시함수들은 장거리 통신 시스템 예컨대, 중앙국에서의 통화처리를 위해 사용되는 본 발명의 우선 실시예의 내장함수의 실례들이다. 이 예들이 분석 원시함수들의 완전한 세트를 보이기 위해 의도된 것은 아니다.
아래 설명된 고급 분석 원시함수들은 본 발명의 주설명에 나타난 방식으로 제어레벨 분석 모듈들을 설명하기 위해 사용된다. 각 원시함수에 대해 특정 번역시간 입력이 기술된다. 모든 분석모듈을 만들때 공통적인 입력(즉, 새로운 제어 레벨 분석 모듈의 명칭 및 정의 고급 분석 원시함수의 명칭)은 표시되지 않는다.
다음의 약어들이 사용된다:
APF: (고급) 분석 원시함수
CP: 호출 파라미터 즉, 호출 제어 데이타(116)에서의 파라미터(46).
CPI: 호출 파라미터 식별자 즉, CP에 대한 외부명칭.
AM: (제어레벨) 분석모듈.
AMI: (제어레벨) 분석모듈 식별자 즉, 분석모듈에 대한 외부명칭.
BCD: 이진 코드화 십진수. 십진수 및 숫자열 값들에서 사용되는 코드.
형식 호환성을 위한 다음의 일반규칙들이 본 부록에서의 모든 고급 분석 원시함수들에 대한 검색능력이 있는 곳에 적용된다.
ㆍ정수 호출 파라미터들은 계산될 수 있는 모든 호출 파라미터 즉, 정수와 호환가능한 모든 길이 및 다른 형태의 정수들일수 있다.
ㆍ열형태의 호출 파라미터가 정수호출 파라미터가 기대되는 곳에 사용된다면 열형태의 호출 파라미터의 길이가 사용된다.
ㆍ배열형태의 호출 파라미터가 정수 호출 파라미터가 기대되는 곳에 사용된다면 배열내의 제1요소의 값이 사용될 수 있다.
[인덱스선택자(INDEXSELECTOR)]
인덱스 선택자 APF는 정수 CP를 읽어 0값에 대응하는 N+1개의 모듈 출구들의 목록을 N으로 인덱스하기 위해 그값을 사용하여 지시된 AM으로의 점프를 수행한다.
인덱스 선택자 APF는 아래의 번역시간 입력을 요구한다:
1 정수 CP에 대한 CPI
2 N, 분석된 최대값
3…(N+3) 목록에서 출구 0-N에 대한 AMI
N+4 범위 이탈 출구에 대한 AMI
[경우선택자(CASESELECTOR)]
경우 선택자 APF는 호출 제어 데이타(116)로부터 정수 CP를 읽어 N의 목록(값, 다음 모듈출구)에 있는 값을 차기 위한 시도를 한다. 그값이 쌍으로 발견되면 지시된 AM으로 점프를 하고 그렇지 않으면 NOT-FOUND(미발견) 출구에 의해 지시된 AM으로 점프 한다.
경우 선택자 APF는 다음의 번역시간 입력을 요구한다:
1 정수 CP에 대한 CPI
2 N, 값-출구쌍들의 수
3 제1출구에 대한 값
4 제1출구에 대한 AMI
(3과 4를 반복)
2N+1 마지막 출구에 대한 값
2N+2 마지막 출구에 대한 AMI쌍
2N+3 NOT-FOUND 출구에 대한 AMI
[비교(COMPARE)]
비교 APF는 호출제어 데이타로부터 CP, CP-a 및 CP-b를 읽어 이들값들을 비교한다. CP-a의 값이 CP-b 값보다 더 크면 HIGHER(더높음) 출구에 의해 지시된 AM으로의 점프가 수행된다. CP-a의 값이 CP-b의 값과 같으면 EQUAL(동일) 출구에 의해 지시된 AM으로의 점프가 수행된다. CP-a의 값이 CP-b의 값보다 작으면 LOWER(더낮음) 출구에 의해 지시된 AM으로의 점프가 수행된다.
비교 APF는 다음의 번역 시간 입력을 요구한다:
1 CP-a에 대한 CPI
2 CP-b에 대한 CPI
3 HIGHER에 대한 AMI
4 EQUAL에 대한 AMI
5 LOWER에 대한 AMI
[범위선택자(RANGESELECTOR)]
범위선택자 APF는 호출 제어 데이타(116)로부터 정수 CP를 읽어 이값을 CP의 값보다 낮은 최고값을 가진 쌍이 선택되도록 N(값, 다음모듈 출구)쌍들의 목록내의 값에 맞추기 위해 사용한다. 그다음, 지시된 AM으로의 점프를 수행한다. CP의 값이 목록내의 최저값 보다 낮으면 LOWER 출구에 의해 지시된 AM으로의 점프가 수행된다.
범위 선택자 APF는 다음의 번역시간 입력을 요구한다.
1 정수 CP에 대한 CPI
2 N, 값-출구쌍들의 수
3 제1출구에 대한 값
4 제1출구에 대한 AMI
(3과 4를 반복)
2N+1 최종 출구에 대한 값
2N+2 최종 출구에 대한 AMI쌍
2N+3 LOWER 출구에 대한 AMI
[시간선택자(TIMESELECTOR)]
시간선택자는 목록내의 시간값들과 현재 시간을 비교하기 위해 사용된 범위선택자의 특수변형이다. 그러나, 번역-시간 파라미터들은 제1CPI 파라미터가 빠진 범위선택자와 관련된다.
[날짜형태선택자(DAYTYPESELECTOR)]
날짜형태 선택자는 시스템 달력으로부터 읽은 현재의 날짜형태를 목록내의 날짜형태와 비교하기 위해 사용된 경우 선택자의 특수변형이다. 그러나, 번역시간 파라미터들은 제1CPI가 빠진 경우 선택자와 관계된다. 다른 날짜들에 대한 날짜형태는 시스템 단부에 저장되어 작업일, 휴일등을 지시한다.
[숫자선택자(DIGITSELECTOR)]
숫자선택자 APF는 위치 인덱스 CP-b의 값에 의해 지시된 열내의 위치에 있는 BCD 열 CP-a 내의 BCD 숫자를 읽어 이 숫자값을 0-9 값들에 대응하는 10개의 다음 모듈 출구들의 목록을 인덱스하기 위해 사용하여 지시된 AM으로의 점프를 수행한다. 위치 인덱스 CP-b의 값은 열로부터 숫자가 읽힌후 증가된다. BCD 숫자의 값이 무효하면(즉, >9) 또는 위치 인덱스가 BCD 열 바깥쪽 위치를 지시하면, 범위 이탈 출구에 의해 지시된 AM으로의 점프가 수행된다.
인덱스 선택자 APF는 다음의 번역 시간 입력을 요구한다:
1 BCD열(CP-a)에 대한 CPI
2 위치인덱스(CP-b)에 대한 CPI
3…13 목록내의 출구 0-9에 대한 AMI
14 범위 이탈 출구에 대한 AMI
[숫자배열선택자(DIGITSEQUENCESELECTOR)]
숫자배열 서낵자 APF는 위치 인덱스 CP-b의 값에 의해 지시된 열내의 위치에서 시작되는 BCD 열 CP-a 내의 열 슬라이스를 읽는다. 열슬라이스는 N쌍(BCD열, 다음 모듈 출구)의 목록내의 BCD 문자열의 세트와 부합된다. BCD 열의 값이 호출제어 데이타로부터 읽은 열슬라이스의 시작과 같도록 BCD 열이 하나의 쌍에서 발견된다면, 대응하는 다음 모듈출구에 의해 지시된 AM으로의 점프를 수행하며, 그렇지 않으면 NOT-FOUND에 의해 지시된 AM으로의 점프가 수행된다. 목록내의 BCD 열들은 다른 길이를 가질수 있으며, 위치 인덱스 CP-b의 값이 BCD 열 CP-a 내의 부합된 열슬라이스 뒤의 다음 위치를 가르키기 위해 바뀐다.
숫자배열 선택자 APF는 다음의 번역시간 입력을 요구한다:
1 BCD열 (CP-a)에 대한 CPI
2 위치 인덱스(CP-b)에 대한 CPI
3 N, 목록내의 쌍들의 수
4 제1BCD 문자열
5 목록내의 제1출구에 대한 AMI
2N+4 최종 BCD 문자열
2N+5 목록내의 최종출구에 대한 AMI
14 NOT-FOUND 출구에 대한 AMI.
[원형분포(CIRCULARDISTRIBUTION)]
원형분포 APF는 N개의 다음 모듈 출구들의 목록 및 원형분포 형태의 AM이 마지막 실행될 때 선택된 출구의 트랙을 유지하는 은닉변수를 포함한다. 목록내의 다음출구를 실행할 때가 선택되고 출구에 의해 지시된 AM으로의 점프가 수행되며 은닉변수가 갱신된다. 선택된 출구가 목록내의 최종출구이면 분석모듈이 실행된 다음 제1출구가 선택되도록 은닉변수가 초기화된다.
원형분포 APF는 다음의 번역시간 입력을 요구한다:
1 N, 출구들의 수
2…N+1 출구들에 대한 AMI의 목록.
[임의분포(RANDOMDISTRIBUTION)]
임의분포 APF는 N개의 다음 보듈출구들의 목록을 포함한다. 목록내의 임이ㅡ 출구가 실행될때가 선택되고 출구에 의해 지시된 AM으로의 점프가 수행된다.
임의분포 APF는 다음의 번역시간 입력을 요구한다:
1 N, 출구들의 수
2…N+1 출구들에 대한 AMI의 목록.
[백분율분포(PERCENTAGEDISTRIBUTION)]
백분율분포 APF는 목록이 100개의 출구들을 포함하도록된 임의분포 APF의 특수변형이며, 출구들이 번역될 시기는 각각의 다음 모듈 지시자가 다음모듈 지시자들상의 백분율 분포에 대응하는 목록내에서 P번 나타나도록 N(<100)개의 상이한 다음 모듈 지시자들로 채워진다.
경우 선택자 APF는 다음의 번역 시간 입력을 요구한다:
1 N, AMI들의 수
2 P, 제1출구에 대한 백분율
3 제1출구에 대한 AMI
(3과 4를 반복)
2N P, 마지막 출구에 대한 백분율
2N+1 마지막 출구에 대한 AMI쌍.
[하위구조순서(SUBSTRUCTURE-SEQUENCE)]
하위구조 순서 APF는 각각이 분석 하위구조에 대한 진입점을 구성하는 AM의 목록을 포함한다. 하위구조들은 END 형태의 AM이 하위구조에서 실행될때 목록내의 다음 하위구조가 실행되도록 하나씩 호출된다. 목록내의 최종 하위구조가 실행될때 실행은 NEXT 출구에 의해 지시된 AM에서 계속된다.
하위구조 순서 APF는 다음의 번역시간 입력을 요구한다:
1 N, 분석 하위구조들의 수
2…N+1 하위구조들에 대한 AMI의 목록
N+2 NEXT 출구에 대한 AMI.
[하위구조호출(CALL-SUBSTRUCTURE)]
하위구조 호출은 단일 하위구조(즉, N=1)를 호출하기 위해 사용된 하위구조 순서 APF의 특수변형이다. 그러나, 번역시간 파라미터들은 제1파라미터(N)가 빠진 하위구조 순서와 관련된다.
[분석호출(INVOKE-ANALYSIS)]
분석호출은 또다른 분석의 분석제어 데이타내의 시작점으로의 제어레벨 분석 모듈 실행의 분기를 위해 사용된다. 분석의 끝에 도달했을 때(즉, END APF), 그 효과는 마치 분석 분석 호출 APF에 의해 분석이 호출된 점에서 END APF가 실행된 것과 같다.
분석 호출 APF는 다음의 번역 시간 입력을 요구한다:
1 호출될 분석의 외부명.
[종료(END)]
종료 APF는 분석 또는 분석 하위구조의 실행을 종료한다. 분석 또는 분석 하위구조가 하위구조 순서 또는 호출 하위구조 APF로부터 호출되었을때, 실행은 호출점으로 되돌아간다. 그렇지 않으면, 분석의 실행은 정지된다.
종료 APF는 번역시간 입력을 요구하지 않는다:
[정지(STOP)]
정지 APF는 무조건적으로 분석의 실행을 정지시킨다. 즉, 실행이 분석 하위구조내에 있을때조차도 분석이 정진된다.
정지 APF는 번역시간 입력을 필요로 하지 않는다.
[재실행(REDO)]
재실행 APF는 분석 또는 분석 하위구조의 시작으로부터 분석 또는 분석 하위구조의 실행을 재시작한다.
재실행 APF는 번역시간 입력을 요구하지 않는다.
[루프(LOOP)]
루프 APF는 분석내에 루프구조들을 만들기 위해 종료 루프 (ENDLOOP) 및 탈출루프(LEAVELOOP)와 연결하여 사용된다. 루프구조들은 중첩될 수 있다. 루프형태의 AM 실행은 범용 분석 시스템내에 은닉 루프 계수기를 만든다. 루프 계수기는 정수 CP로부터 초기화되며, 그값은 루프가 실행되는 횟수이다. 그러나, 루프는 값이 1보다 작을때에도 적어도 한번은 실행된다. 루프 계수기는 종료루프 또는 탈출루프 형태의 부합 AM이 실행되거나 현재 분석 또는 분석 하위구조에서 실행이 종료될때 제거된다. 루프몸체는 FIRST 다음 모듈 지시기에 의해 지시된 AM과 함께 시작된다.
루프 APF는 다음의 번역 시간 입력을 요구한다:
1 루프 계수기 초기화 CP에 대한 CPI
2 루프몸체내의 FIRST AM에 대한 AMI.
[종료루프(ENDLOOP)]
종료루프 APF는 분석내의 루프구조들에서 종점 AM들을 위해 사용된다. 종류루프 형태의 AM 실행은 감소된 루프형태의 부합 AM에 의해 루프계수기가 생성되게 하며, 따라서, 루프 계수기의 값이 0이면, 루프가 종료되고 NEXT 출구와 함께 실행이 계속된다.
종료루프 APF는 다음의 번역시간 입력을 요구한다:
1 NEXT AM에 대한 AMI.
[탈출루프(LEAVELOOP)]
탈출루프 APF는 분석내에 한세트의 중첩 루프들의 실행을 중지하기 위해 사용된다. 탈출 루프형태의 AM 실행은 N번 중첩된 루프-종료루프 루프들의 실행을 중지시키고 NEXT 출구와 함께 실행을 계속한다.
종료 루프 APF는 다음의 번역 시간 입력을 요구한다:
1 N, 종료되는 중첩 루프 레벨들의 수
2 NEXT AM에 대한 AMI.
[결과(RESULT)]
결과 APF는 결과 CP에 하나의 값을 기록하고 NEXT 출구에 의해 지시된 AM으로 점프한다.
결과 APF는 다음의 번역 시간 입력을 요구한다:
1 결과 CP에 대한 CPI
2 CP 안에 기록될 값
3 NEXT 출구에 대한 AMI.
값2가 CP의 데이타 형태와 호환되는 번역시간 검사가 수행된다.
[다중결과(MULTIPLERESULT)]
다중결과 APF는 N개의 결과 CP 세트에 하나의 값을 기록한 후 NEXT 출구에 의해 지시된 AM으로 점프한다.
다중결과 APF는 다음의 번역 시간 입력을 요구한다:
1 N, 결과들의 수
2 제1결과 CP에 대한 CPI
3 제1CP에 기록될 값
2N N번째 결과 CP에 대한 CPI
2N+1 N번째 CP에 기록될 값
2N+2 NEXT 출구에 대한 AMI.
이 값들이 대응하는 CP들의 데이타형태와 호환가능한 번역 시간 검사가 수행된다.
[할당(ASSIGN)]
할당 APF는 하나의 CP-a의 값을 읽어 그값을 또하나의 CP-b에 할당한다. 따라서, NEXT 출구에 의해 지시된 AM 에서 실행이 계속된다.
할당 APF는 다음의 번역 시간 입력을 요구한다:
1 원시 CP-a에 대한 CPI
2 수신지 CP-b에 대한 CPI
3 NEXT 출구에 대한 AMI.
[열추가(APPEND-STRING)]
열추가 APF는 BCD 열 CP-a의 값을 읽어 이 값을 또하나의 BCD 열 CP-b에 추가한다. 따라서 NEXT 출구에 의해 지시된 AM에서 실행이 계속된다.
할당 APF는 다음의 번역 시간 입력을 요구한다:
1 원시 CP-a에 대한 CPI
2 수신지 CP-b에 대한 CPI
3 NEXT 출구에 대한 AMI.
[하위열할당(ASSIGN-SUBSTRING)]
하위열 할당 CPF는 하나의 BCD 열 CP-a로부터 하위열 값을 읽어 그값을 또 하나의 BCD열 CP-b에 할당한다. CP-a 내의 하위열의 시작 및 종료위치는 두개의 정수 CP들, CP-c 및 CP-d 각각의 값에 의해 지시된다. 지시된 하위열의 일부가 CP-a의 실제적인 열값의 바깥쪽에 있으면 실제값내의(더 짧은) 하위열이 CP-b에 할당된다. 따라서, NEXT 출구에 의해 지시된 AM에서 실행이 계속된다.
하위열 할당 APF는 다음의 번역 시간 입력을 요구한다:
1 원시 CP-a에 대한 CPI
2 시작위치 CP-C에 대한 CPI
3 종료위치 CP-d에 대한 CPI
2 수신지 CP-b에 대한 CPI
3 NEXT 출구에 대한 AMI.
[숫자수정(MODIFY-NUMBER)]
숫자수정 APF는 정수 CP-c에 의해 지시된 위치에서 시작하는 BCD 열 CP-b의 슬라이스에 BCD 열 CP-a를 기록하고 NEXT 출구에 의해 지시된 AM으로 점프한다. BCD 열 CP-b의 실제길이는 연산의 결과로서 확장될 수 있다.
숫자수정 APF는 다음의 번역 시간 입력을 요구한다:
1 수정될 BCD 열 CP-b에 대한 CPI
2 CP-b에서 열슬라이스가 수정될 시작위치에 대한 CPI
3 열슬라이스에 쓰여질 BCD열 CP-a에 대한 CPI
4 NEXT 출구에 대한 AMI.
[숫자삽입(INSERT-NUMBER)]
숫자삽입 APF는 정수 AP-a에 의해 지시된 위치에서 시작하는 BCD-열 CP-b의 슬라이스에 BCD열 CP-a를 삽입하고 NEXT 출구에 의해 지시된 AM으로 점프한다. 결과적으로 BCD 열 CP-b의 실제길이는 두열들의 합이 된다.
숫자 삽입 APF는 다음의 번역 시간 입력을 요구한다:
1 수정될 BCD-열 CP-b에 대한 CPI
2 CP-b 내의 시작위치에 대한 CPI
3 CP-b 내로 삽입될 BCD열 CP-a에 대한 CPI
4 NEXT 출구에 대한 AMI.
[계수기(COUNTER)]
계수기 APF는 분석구조에서 통과 계수 제어레벨 분석 모듈들을 위해 사용된다. 계수기 형태의 AM은 계수기 위치 및 계수기 형태의 분석모듈이 번역될때 맞춰지는 한계값을 포함한다. 실행이 계수기 분석 모듈을 통과할때마다 내부 계수기는 1씩 증가한다. 계수기가 한계값을 초과하도록 통과가 이루어지면 LIMIT 출구에 의해 지시된 AM으로의 점프가 수행되며, 그렇지 않으면 NEXT 출구에 의해 지시된 AM으로의 점프가 수행된다.
계수기 형태의 분석 모듈들내의 계수기 위치는 또한 계수기 또는 계수기조정(SETCOUNTER) 형태의 제어레벨 분석모듈들에 의해 분석 제어 데이타내의 다른 장소들로부터 조작될 수 있다.
계수기 APF는 다음의 번역 시간 입력을 요구한다:
1 계수기에 대한 한계값
2 NEXT 출구에 대한 AMI
3 LIMIT 출구에 대한 AMI.
계수기들은 연산자 인터페이스를 통해 읽혀지고 수정될 수 있으며, 또한 계수기의 주문형 관리를 제공하기 위해 저급 분석 원시함수들에 의해 조작될 수 있다.
[누산기(ACCUMULATOR)]
누산기 APF는 이 부록내에 기술된 다른 APF들과 약간 다르다. 누산기 형태의 제어레벨 분석모듈들은 분석 제어 데이타내의 다른 제어레벨 분석 모듈들 및 분석 하위구조들로부터 격리되어 있다. 누산기 형태의 제어 레벨 분석 모듈들은 계수기 또는 계수기 조정형태의 분석모듈들에 의해 분석 제어 데이타내의 다른 장소들로부터 조작될 수 있는 통계 누산기를 위한 장소 홀더들이다.
제어레벨 분석모듈은 누산기외에 누산기형태의 제어레벨 분석모듈이 번역될때 맞춰지는 한계값을 포함한다. 계수기 형태의 모든 제어 레벨 분석모듈로부터 누산기 형태의 제어레벨 분석모듈내의 내부 계수기의 조작이 계수기가 한계값을 초과하도록 하면 LIMIT 출구에 의해 지시된 분석 하위구조 호출이 수행된다(즉, 분석 하위구조가 종료형태의 분석 모듈을 실행한 후 제어가 계수기 형태의 분석모듈로 되돌아간다).
누산기 APF는 다음의 번역 시간 입력을 요구한다:
1 누산기에 대한 한계값
2 LIMIT 출구에 대한 AMI.
누산기 형태의 제어 레벨 분석 모듈들내의 누산기들은 연산자 인터페이스를 통해 일기혀지고 수정되며, 또한 누산기의 주문형 관리를 제공하기 위해 저레벨 분석 원시함수들에 의해 조작될 수 있다.
[계수기조정(SET-COUNTER)]
계수지 조정 APF는 계수기 또는 누산기 형태의 AM 내의 계수기에 시작값(V)을 기록하고 NEXT 출구에 의해 지시된 AM으로 점프한다.
계수기 조정 APF는 다음의 번역 시간 입력을 요구한다:
1 계수기 또는 누산기 형태의 AM 내의 계수기에 할당될값
2 계수기 또는 누산기형태의 AM에 대한 AMI
3 NEXT 출구에 대한 AMI.
계수기 조정형태의 AM의 실행이 누산기형태의 AM 내의 계수기가 한계값을 초과하도록 할지라도 예외처리가 제공되지 않는다. 계수기가 계수기 형태의 AM의 통과에 의해 수정된 후 또는 계수 AM이 실행될때 조건이 유지될때만 예외처리가 진행된다.
[계수(COUNT)]
계수 APF는 게수기 또는 누산기 형태의 AM 내의 계수기에 하나의 값(V)을 더한다. 연산후 계수기가 여전히 한계값 보다 작으면 NEXT 출구에 의해 지시된 AM으로의 점프가 수행되고, 그렇지 않으면 LIMIT 출구에 의해 지시된 AM으로의 점프가 수행된다.
계수 APF는 다음의 번역 시간 입력을 요구한다:
1 계수기 또는 누산기형태의 AM 내의 계수기에 더해질값
2 계수기 또는 누산기형태의 AM에 대한 AMI
3 LIMIT 출구에 대한 AMI
4 NEXT 출구에 대한 AMI.
[부록 B]
[분석례]
이 부록에서의 분석례는 부록 A에 기술된 고급 분석 원시함수들을 사용한다. 분석례는 범용 분석 시스템의 우선 실시예가 아래의 예에서 나오는 장거리 통신 시스템내에서 사용될 수 있는 방법에 대한 더 나은 이해를 제공하기 위해 의도된다.
[* 시나리오]
본 예의 시나리오는 아래의 그림에 따른 기상 전화망에 있는 지역 교환기(9)에서 시작된 전화호출을 위해 사용된 분석 함수들이다.
그림에서 다른 사무실의 가입자들은 지역코드와 지역코드내의 지역번호로 구성된 할당된 번호들을 갖고 있다. 그림에서 전화망 내의 가입자들은 동일 지역코드(073)를 가지는 것으로 가정된다. 번호의 총길이는 12 숫자이다. 지역코드내의 번호는 중앙국을 표시하는 접두번호 및 개인 가입자를 표시하는 부분으로 더욱 세분될 수 있다.
[도표 1]
번호표
국제 호출은 접두번호 “00”으로 시작되며 한두개의 숫자지역 코드로 이어진다. 긴급 호출은 번호 911을 사용한다.
교환기(P)는 교환기들 T1, T2 및 Q로의 세개의 루트들 R1, R2 및 R3를 각각 갖고 있다. Q 교환기에 의해 써비스를 받는 가입자에 대한 통신은 직선 루트(R3)를 사용하는 것이 바람직하지만, 이 루트가 혼잡하면 루트 R2를 사용하는 통과 교환기(T2)를 통해 전송되어야 한다. 교환기(R)에 의해 써비스되는 가입자에 대한 통신은 루트 R1을 사용하는 통과 교환기 T1을 통해 전송되어야 하지만 이 루트가 혼잡할 경우 루트 R2를 사용하는 통과 교환기 T2를 통해 전송되어야 한다. 동일 지역 코드의 다른 부분들을 포함하는 잔여 전화망으로의 통신은 통과 교환기들 T1 및 T2로의 루트들 R1 및 R2로 균일하게 분산되어야 한다.
이 부록에서는 교환기(P)내의 범용 분석시스템을 사용하는 전화망 작업자에 의해 만들어진 한 세트의 분석 정의들이 보여질 것이다. 보여진 예들은 피호출 가입자의 전화망 위치가 결정될 수 있도록 교환기 P에 연결된 가입자로부터 입력된 숫자들의 분석 및 피호출 가입자의 망위치에 도달하기 위해 통화가 전송되는 방법의 분석을 수행한다. 분석정의들은 위에 기술된 숫자표 및 전송형태를 수행한다.
분석의 실행을 보이기 위하여 우리는 먼저 여러 분석들이 수행될때 호출처리에 대한 시나리오 및 분석되어질 호출 제어 데이타내의 한 세트의 호출 파라미터들을 정의해야 한다.
[* 호출처리에 의해 호출된 분석 함수들]
교환기에 의해 써비스되는 가입자으로부터의 전화호출을 위한 지역 교환기 P에서 사용된 호출처리함수들은 다음의 작업흐름을 갖는 것으로 가정된다:
1. 호출후의 OFF-HOOK 상태가 탐지되고 새로운 호출의 처리가 시작된다.
2. 가입자는 신호음을 듣고 피호출후의 전화번호를 다이얼하기 시작한다. 숫자가 수신될때마다 범용 분석 시스템이 “DIGIT ANALYSIS”를 수행하기 위해 호출된다.
3. “DIGIT ANALYSIS”가 피호출측의 전화망 위치를 결정했을때 호출 파라미터 OutletState는 “DIGIT ANALYSIS”에 의해 “Destination Identified”로 조정되어야 한다.
4a. “DIGIT ANALYSIS”는 또다른 결과들이 얻어질 수 있도록(전체 번호를 구성하는 숫자들의 수 또는 호출을 위해 지원되어야 하는 부하) 호출측으로부터 수신된 각각의 숫자에 대해 계속 호출된다. 모든 결과들이 결정되었을때 호출 파라미터 InletState는 “DIGIT ANALYSIS”에 의해 “Analysis Complete”로 조정되어야 한다. 이것은 호출처리 소프트웨어가 각 숫자에 대한 “DIGIT ANALYSIS”를 호출하는 것을 정지시키도록 한다.
4b. 호출처리 소프트웨어가 3에서 상태변화를 탐지하여 확인된 수신지가 자신의 교환범위에 있지 않을때 “ROUTING ANALYSIS”를 수행하기 위해 범용 분석 시스템이 다시 호출된다. 이러한 경로 분석은 수신지에 도달하기 위해 교환기로부터 호출이 경로를 따라가야 하는 방법 및 호출경로내의 다음 교환기가 호출되어야 하는 호출상의 시점을 결정하게 된다.
5. 가입자 번호의 나머지 부분이 수집되고, “ROUTING ANALYSIS”의 결과에 의해 지시된 숫자들의 수가 수집될때 선택된 경로상의 자유 트렁크 회로가 호출을 위해 할당되고, 이 호출은 호출경로내의 다음 교환기로 전달된다.
6. 자유 트렁크의 선택시 문제점이 발생하거나 다른 내부 혼잡 상황이 호출처리시 발생하면 문제의 원인에 대한 분석이 수행된다. 이것은 범용 분석 시스템이 분석을 시작하기 위해 호출되지만, 이 부록내의 예제의 영역을 벗어난다는 것을 내포한다.
문제분석은 신호음 또는 기록된 유성 메세지가 호출가입자에게 전달되거나 문제의 원인이 선택된 경로상의 혼잡이었다면 “ROUTING ANALYSIS”이 대체경로를 발견하기 위해 제시되어야 한다는 것을 지시할 수 있다.
[* 호출 제어 데이타]
호출처리에 사용되는 호출제어 데이타는 범용 분석 시스템에서 분석 제어 데이타로부터 접근 가능하다. 예제에서 교환기 P내의 호출처리 함수들에서 호출 제어 데이타가 다음의 호출 파라미터들을 포함하는 것으로 간주된다.
[도표 2]
호출 파라미터
[도표 2]
통화 파라미터
수신지 정보의 코딩은 전화망 및 교환기에 의존한다. 이러한 특정 교환기를 위해 작업자는 다음의 교환기 의존 코딩을 선택한다.
[표 3]
교한기 의존 코딩
[* 숫자분석(DIGIT ANALYSIS)]
분석구조를 설명하기 위해, 우리는 DIGIT_ANALYSIS의 아래 간단한 설치에 따라 간략화된 도표를 사용한다.
이러한 매우 간단한 설치에 있어서, CASE, DIGITSELECTOR, DIGITSEQUENCESELECTOR, RESULT, MUlTIPLERESULT 및 END 고급 분석 원시함수들만이 사용된다. 사용된 표식들은 다음과 같이 해석되어야 한다.
위의 숫자분석 제어 데이타의 기능은 다음과 같다.
ㆍ분석은 제어 레벨 분석모듈 “DA”에서 시작한다. 이 모듈은 수신된 숫자들을 포함한 BCD 열의 길이를 분석한다. 숫자분석 제어데이타가 실행되는 제1, 제2시점에서 “DA”모듈은 ANALYSIS 제어데이타의 실행을 끝내는 END 형태의 모듈 “DA_E1”으로 실행을 분기시킨다. 세개의 숫자들이 수신될때 분석모듈 “DA_X”내의 제1숫자와 함께 시작하는 하나의 단계에서 완전한 분석이 수행된다.
ㆍ“DA_X” 모듈 및 다음 모듈들 “DA_OX”, “DA_IX” 및 “DA_2X”는 상이한 전화망 수신지들을 구별하여 결과형태의 한세트의 분석 모듈들로 분기시킨다. 구분된 번호형식은 다음과 같다.
“00n”(International prefix) DA_X→DA_0X→DA_R4
“0nn”(Area code) DA_X→DA_0X→DA_R3
“101”(Exchange Q) DA_X→DA_1X→DA_R123
“10n”(Other part of own area code) DA_X→DA_1X→DA_R2
“11n”(Own Exchange) DA_X→DA_1X→DA_R1
“12n”(Exchange R) DA_X→DA_1X→DA_R127
“1nn”(Other part of own area code) DA_X→DA_1X→DA_R2
“911”(Emergency number) DA_X→DA_2X→DA_R255
“9nn”(Other part of own area code) DA_X→DA_2X→DA_R2
“nnn”(Other part of own area code) DA_X→DA_R2
ㆍ결과형의 지시된 제어레벨 분석모듈들은 호출 제어 데이타에 수신지 및 장소와 관련하여 필요한 번호길이를 기록하며, 따라서 모든 분석경로들은 숫자분석이 종료되고 망수신지가 결정된 것을 지시하는 호출 제어 데이타네 관련상태 정보를 기록하는 “DA_E2” 분석모듈에 연결된다.
숫자 분석을 위한 분석 제어 데이타는 작업자 인터페이스를 통해 교환기 P에 연결된다. 이것은 여러종류가 될 수 있지만, 일반적으로 사용자에 친숙한 방식으로 분석 데이타의 생성을 지원하는 몇가지 지원시스템을 포함하는 작업 지원 시스템 컴퓨터에 대한 인터페이스가 된다. 이경우, 교환기에 대한 작업자 인터페이스는 예컨대, 데이타를 범용분석 시스템으로 코드화하기 위해 ASN.1(요약구문표시 1)을 사용할 수 있다.
그러나, 간략성의 이유로 우리는 이 예에서 데이타가 교환기에 연결된 컴퓨터 단말기를 통해 범용 분석 시스템으로 입력된다고 가정한다. 숫자분석을 설치하기 위해 필요한 입력은 다음의 예처럼 매우 간단한 구문을 사용할 수 있다.
DEFINE_ANALYSIS “DIGIT_ANALYSIS” 비어있는 분석제어데이타를 외부명
“DIGIT ANALYISIS”로 설치한다
MODIFY “DIGIT_ANALYSIS” “DIGIT_ANALYSIS”을 위한 분석제어 데이타를
갱신상태로 조정한다. 즉, 비활성 분석모듈
토큰 목록을 사용하여 수정된 분석 제어 데
이타를 구성한다.
AMI APF APF-파라미터들 분석 원시함수를 사용하여 외부명 AMI와 함께 분석모듈을 번역한다.
(필요한 만큼 반복)
START AMI 분석 제어 데이타에서 시작모듈을 정의한다.
ENDMODIFY 수정종료, 새로운 분석제어데이타가 호출처리를 위해 사용되도록 작동된다.
위의 표식에 보여진 바와 같은 분석제어데이타를 구성하기 위해, 다음의 제어레벨 분석모듈들이 번역되어야 한다:
이러한 가설적인 예는 망수신지를 확인하기 위해 입력된 번호와 다른 어떤것도 사용하지 못하는 매우 기본적인 숫자 분석 능력을 제공한다. 그러나, 통화 제어 데이타는 분석에 영향을 주기 위해 사용될 수 있는 추가 정보를 포함한다.
범용 분석 시스템의 유연성을 설명하기 위하여, 작업자가 교환기 P에서 매우 간단한 센트렉스 써비스를 정의해야 한다고 가정한다. 써비스는 교환기에 의해 써비스되는 최대 7개의 사업 그룹들의 각각을 위한 비밀번호표로 구성된다. 특정 가입자를 위한 사업그룹은 1-7 사이의 값을 가지는 호출 파라미터 “Subscriber_Class”에 의해 식별된다. 0 값은 정규 거주 가입자를 나타낸다. 비밀번호표는 외부 호출을 공공망으로 입력할때 사용된 에스케이프 코드(접두문자 0)를 포함한다.
써비스를 구성하기 위하여, 작업자는 각 사업그룹의 비밀번호표를 위한 숫자 분석 제어 데이타에서 분석 하위구조를 정의한다. 일례로서, 세개의 교환번호들 1, 2 및 3을 가진 소형 사업그룹에 대한 숫자 분석을 보인다. 공공 숫자표에서 교환번호는 111234567, 117654321 및 121122334를 각각 사용한다. 처음 두 교환번호는 P 교환기에 의해 써비스되고 세번째는 교환기 R에 의해 써비스된다.
위에서 입력된 분석 제어 데이타의 수정은 다음의 과정으로 수행된다.
1. 사업그룹내에 비밀번호표에 대한 숫자 분석을 도입한다. 숫자 분석은 비밀번호표내의 1 번호를 대응하는 공공번호로 바꾸고 나서 공공번호표에서 2번호에 대한 분석을 실행해야 한다. 또한 비밀번호표에서 공번호들과 공공 에스케이프 코드(0)의 구별을 포함해야 한다.
2. 호출 파라미터 “Subscriber_Class”의 값에 의존하는 번호표를 선택하는 제어레벨 분석모듈을 도입한다.
3. 숫자분석을 위한 시작모듈을 3에 맞춘다.
위와 같은 동일 구문을 사용할때 다음의 작업자 입력은 써비스를 제공할 것이다:
[* 경로분석(ROUTING ANALYSIS)]
범용 분석 시스템의 장점들을 더욱 예시하기 위해 분석에 시나리오를 위해 논의된 경로형식을 위해 필요한 경로분석이 아래 도표에 보여진다.
경로분석은 출력경로가 이미 선택되었을때 분석되는 CASESELECTOR형의 제어 레벨 분석모듈 “RA”에서 시작한다. 조건이 맞으면 대체 경로가 선택된다. 그렇지 않으면, 망 수신지가 CASESELECTOR형의 제어레벨 분석모듈들 "RA-1"에서 분석되고 적절한 출력경로가 RESULT 형의 제어레벨 분석모듈들 RA-R1, RA-R2 및 RA-R3에 의해 호출제어 데이타에 기록된다. 국내/국제호출 및 자체 지역코드의 불특정 부분에 대한 호출에 대해 통신은 RANDOMDISTRIBUTION형의 제어레벨 분석모듈 RA-512를 통해 경로들 R1 및 R2 사이에서 균일하게 분리된다. P 교환기와 동일한 지역 코드내의 수신지 및 비상호출을 위해, 호출이 통과 교환기들로 전달될때 사용될 접두부호가 RESULT형의 제어레벨 분석모듈들 RA-D2, RA-D123, RA-D127 및 RA-D255에 의해 호출 제어 데이타에 기록된다.
대체 경로 방식은 이 간단한 예에서 전에 선택된 최초 경로에만 의존한다. 이것은 시작모듈 “RA”로부터의 출구들을 결과 제공 모듈들 RA-R1, RA-R2 및 RA-R3에 연결하므로써 수행된다.
경로선택후, 모든 분석경로는 END형의 분석모듈 RA-E2에 의해 이어지는 MULTIPLERESULR형의 제어레벨 분석모듈 RA-E2에 합쳐진다.
이 예에서, 작업자는 분석에서 다른 경로들을 통과한 통신의 양을 측정하는 통과 계수기들의 세트를 포함하도록 선택해야 한다. COUNTER형의 제어레벨 분석모듈들 RA-D123, RA-D127 및 RA-D2는 Q 및 R 교환기들에서, 또한 자체지역 코드의 나머지에서 각각의 수신지와 함께 통신량을 측정한다. COUNTER형의 제어레벨 분석 모듈들 RA-AR12, RA-AR22 및 RA-AR21은 경로 R1으로부터 경로 K2까지, 경로 R3로부터 경로 R2까지, 또한 경보 K2로부터 경로 R1까지 각각 재분기된 통신량을 측정한다.
[* 요약]
오늘날 공공전화망내의 실제 작업에서, 교환기에서 수행된 분석과 비교할때 간략화 되었을지라도 본 예제는 여전히 범용 분석 시스템의 특징들의 일부를 나타내고 있는데, 예컨대 다음과 같다.
ㆍ숫자분석을 작업자 인터페이스를 사용하는 작업자에 의해 전적으로 정의된다. 호출 제어 소프트웨어의 수정이 가상교환기 P에 필요한 특정분석을 확립하기 위해 전혀 필요치 않다. 정확하게 같은 호출 제어 소프트웨어를 사용하는 다른 교환기내의 다른 작업자는 예컨대, 호출가입자 주소번호의 분석과 함께 시작하는 매우 다른 분석구조를 구성할 수 있기 때문에 숫자분석을 예컨대, 호출가입자에 대한 지역코드에 의존할 수 있다.
ㆍ작업자는 호출제어 소프트웨어가 스위치 업자에 의해 설계되었을때 기대할 수 없는 간단한 센트렉스형의 써비스를 정의하기 위해 범용 분석 시스템을 사용했다.
ㆍ분석은 범용 작업자 인터페이스를 사용하여 정의되었다. 즉, 분석 정의의 구분은 상술된 특정 분석에 독립적이다. 이 예에서 간단한 구문이 대부분의 사용자에게 친숙하지 않을지라도, 문맥 독립 구문은 예컨대, 위에 사용된 그래픽 표시를 사용한 사용자에게 더욱 친숙한 분석 정의환경을 제공하는 지원 컴퓨터에 의해 생성될 수 있다는 것을 내포한다.
본 예제의 간단한 사용자 인터페이스를 사용할때조차 숫자 분석을 위해 필요한 특수성의 도입이 작업자 컴퓨터 프로그래밍 기술을 가질 것을 요구하지 않는다. 작업자는 그의 전화망의 번호표에 대해 필요한 분석을 인식했으며, 범용 분석 시스템의 분석 원시함수들을 직접 사용하여 그 지식에 들어갈 수 있다.
[부록 C]
[저급 분석 원시함수들]
이 부록의 저급 분석 함수들은 본 발명의 우선 실시예에서의 저급 분석 원시함수들의 예들이다. 이 예들은 분석원시함수들의 완성세트를 보이기 위해 의도된 것은 아니다.
저급 분석 원시함수들은 분석 트리들 또는 하위 구조들내의 제어 레벨분석 모듈들의 실증을 위해 직접 사용되기 위한 것이 아니라 분석트리들 또는 하위구조들에서 제어레벨 분석모듈들을 번역하기 위해 사용될 수 있는 고급 분석모듈들을 구성하기 위해 사용된다. 저급 분석 원시함수들은 또한 저급 원시함수들의 세트를 확장하는 저급 분석 모듈들을 구성하기 위해 사용될 수 있다.
저급 분석 원시함수들은 실행시간에서 호출될때 입력 파라미터들을 사용할 수 있으며 결과값들을 생성할 수 있다. 범용 분석 시스템은 이값들을 위해 대부분의 저급 분석 원시함수들에 의해 사용되는 선행시간 스텍을 포함한다. 이 스택은 항목화된 스택이다. 즉, 스택은 스택으로 밀려 검색되는 여러 크기의 데이타를 제공한다. 각각의 저급 분석 원시함수에 대해, 스택으로부터 소모되는 입력 데이타 및 스택상에 생성된 출력 데이타가 또한 기술된다.
각각의 분석 원시함수에 대해, 특수 번역시간 입력이 또한 기술된다.
다음의 약어들이 사용된다:
APF 분석 원시함수
PFI 원시 함수 식별자, 특, APF에 대한 외부명 또는 분석 정의 모듈에 대한 외부명.
CP 호출 파라미터. 즉, 호출제어 데이티 116 내의 파라미터 46
CPI 호출 파라미터. 즉, CP에 대한 외부명.
CPP 호출 파라미터. 즉, CP에 대한 실행시간표시
AM 분석모듈
AMI 분석모듈 지시자. 즉, 분석모듈에 대한 외부명.
AMT 분석모듈 토큰. 즉, 분석모듈 진입에 대한 분석모듈 토큰 목록내의 인덱스.
AMA 분석모듈 주소. 즉, 분석모듈 파라미터 지역내의 제1메모리 위치에 대한 주소.
BCD 2진 코드화 십진수. 십진수를 위해, 또한 번호 열값들에서 사용된 코딩.
[분석모듈 생성]
[* PROC 고급 또는 저급 분석모듈 정의]
PROC APF는 새로운 분석 원시함수들을 수행하는 고급 또는 저급 분석모듈들 예컨대, 제어레벨 분석모듈들의 실증을 위해 사용된 고급 분석모듈들에 대한 정의 함수로서 사용된다. PROC는 새로운 분석모듈에 대한 명칭(AMI)을 요구하며 번역시간 입력으로부터 분석 원시함수 토큰들 또는 (저급) 분석모듈 토큰들의 대응순서까지의 PFI들의 순서를 새로운 분석 정의모듈의 파라미터 영역으로 번역하는 번역 상태에 들어간다. 이 순서에서 최종 PFI는 ENDPROC PFI가 되어야 한다.
PROC APF는 다음의 번역시간 입력을 필요로 한다:
1 새로운 고급 분석모듈에 대한 AMI로서 사용될 명칭
2…N 분석모듈이 수행될때 호출되어야 하는 저급 분석 원시함수들 또는
저급 분석모듈들에 대한 PFI
N+1 ENDPROC PFI
[* ENDPROC]
ENDPROC APF는 분석모듈 정의의 번역을 정지시키고 분석 제어 데이타내의 번역된 AM에 들어가 번역을 위해 할당된 비활성 분석모듈 토큰목록(148)내의 모듈 토큰 AMT를 할당하고 PROC APF 및 AMT에 의해 수신된 AMI를 분석모듈 목록(138)안으로 진입시킨다.
실행시 ENDPROC는 PROC형의 분석모듈의 실행을 종료시키고 실행을 호출점으로 반환한다.
[* <BUILD]
<BUILD APF는 PROC형의 분석모듈(XXX)에서 BUILD 프로시져의 시작을 표시한다. <BUILD는 PROC-ENDPROC 몸체내의 대응하는 DOES>와 균형을 유지해야 한다.
원시함수로서 XXX를 사용하는 AM(YYY)을 번역할때 <BUILD는 AM YYY의 AMI를 분석모듈 목록(138)안으로 진입시킨다. AM YYY가 실행될때 <BUILD는 분석모듈(XXX)의 PROC-ENDPROC 정의의 몸체내의 대응하는 DO 프로시져로 제어를 보낸다.
<BVILD는 주로 고급 분석모듈들 즉, 제어 레벨 분석모듈들을 실증하기 위해 사용되는 분석모듈들에서 사용된다. 그러나, 분석모듈들에 대한 정의함수 예컨대, 후에 기술될 GLOBAL APF의 특수 변형으로 사용되는 새로운 저급 분석모듈들을 실행시키기 위해 사용될 수도 있다.
<BUILD APF는 다음의 번역시간 입력을 요구한다:
1 새로운 제어레벨 분석모듈에 대한 AMIF로 사용될 명칭
예제
(번역) PROC XXX<BUILD a b c DOES> d e f ENDPROC.
(번역) XXX RA2374…-- RA2374는 분석모듈목록(138)안으로 진입되고 BUILD
프로시져(a,b,c)는 새로운 제어레벨 분석모듈(RA23
74)의 파라미터 영역(164)을 번역하기 위해 실행된
다.
(실행) RA 2374 <BUILD는 DO 프로시져의 시작(즉, d)으로 제어를 보낸다.
AMA(파라미터 영역에 대한 주소)는 스택을 거쳐 <BUILD에
의해 DO 프로시져(d,e,f)로 보낸다.
[* DOES>]
DOES>는 PROC형의 분석모듈내의 DO 프로시져의 시작 즉, XXX형의 제어레벨 분석모듈이 실행될때 실행되어야 하는 부분을 표시한다. <BUILD 참조.
[* <IMMEDIATE]
몇몇 경우에 APF의 실행이 PROC-ENDPROC형의 고급 분석모듈의 번역시 만날때 직접 수행되도록 하는 것이 필요하다. <IMMEDIATE APF 및 평형 END_IMMEDIATE> APF는 PROC-ENDPROC형의 분석모듈의 파라미터 영역안으로 번역되는 대신 번역할때 직접 실행되는 APF들의 세트를 포함한다. 일반적으로 LITERAL APF 등과 유사한 새로한 APF들을 설계하기 위해 사용된다.
[* END_IMMEDIATE>]
<IMMEDIATE 참조
구성 부분(BUILD-PART) 연산
다음의 연산들은 번역상태에서만 실행된다. 즉, 고급 분석 모듈이 제어레벨 분석모듈의 번역시 분석 원시함수로 사용될때만 실행된다. 따라서, 이들은 BUILD 프로시져 내에서만 즉, <BUILD 및 DOES> 사이에서 호출될 수 있다. 구성부분 연산들은 번역된 제어레벨 분석모듈안으로 삽입될 값들을 얻기 위하여 작업자 인터페이스(200)로부터 입력을 요구할 수 있다.
번역된 제어레벨 분석모듈은 번역시 범용 분석 시스템내의 임시장소에 기억된다. 범용 분석 시스템에서 상이한 데이타형들을 저장하기 위해 필요한 공간은 다음과 같다(이 값들은 아래의 단락 “CONSTANTS AND GLOBAL VARIABLES”에서 상수로 정의된다):
CPP 호출 파라미터 포인터 16비트
AMT 분석 모듈 토큰 32비트
시간값 16비트
날짜형 값 8비트
날짜값 32비트
BCD 열(N 숫자) 8+Nㆍ4비트+4비트정력(N이 홀수일때)
번역된 제어레벨 분석모듈이 ENDPROC APF에 의해 포함될때, BUILD 부분내에서 수행된 기록 연산으로부터 결정된 크기를 가진 파라미터 영역을 포함할 것이다.
[* ZEROFILL]
ZEROFILL APF는 번역될 제어레벨 분석모듈의 파라미터 영역에서 N개의 팔중수들을 예약하고 예약된 영역을 모두 0으로 채운다.
[* INSERT_CALLPARM]
INSERT_CALLPARM APF는 호출 파라미터의 외부명(CPI)을 FETCH_PARAMETER 및 PUT_PARAMETER APF들과 함께 CP 값들을 읽거나 쓰기 위해 실행시 사용될 수 있는 포인터 CPP로 번역된다. CPP는 BUILD 프로시져에 의해 번역된 제어레벨 AM의 파라미터 영역에 삽입된다.
<INSERT_MODULE APT는 다음의 번역 시간 입력을 요구한다:
1 호출 파라미터에 대한 CPI
[* INSERT_MODULE]
INSERT_MODULE APF는 현재의 제어레벨 AM의 외부명을 예컨대, PERFORM APF에서 제어레벨 분석모듈을 확인하기 위해 실행시 사용될 수 있는 토큰(AMT)으로 번역하기 위해 분석모듈 목록(138)을 사용한다. AMT는 BUILD 프로시져에 의해 번역되고 있는 제어레벨 AM의 파라미터 영역에 삽입된다.
<INSERT_MOUDLE APT는 다음의 번역 시간입력을 요구한다:
1 참조된 제어레벨 분석모듈에 대한 외부명
[* INSERT_NUMBER]
INSERT_NUMBER APF는 BUILD 프로시져에 의해 번역되고 있는 제어레벨 AM의 파라미터 영역에 BCD 열 값을 삽입한다.
INSERT_NUMBER APF는 다음의 번역 시간 입력을 요구한다:
1 번호열에 대한 외부명
[* INPUT_OCTER]
INPUT_OCTET APF는 번역시간 입력으로부터 0-255 범위의 비부호 정수값을 읽어 그 값을 포함하는 스택 목록을 생성한다.
INPUT_OCTET APF는 다음의 번역 시간 입력을 요구한다:
1 정수값(예컨대, ASCII에서 123)에 대한 외부명
[* INPUT_SHORT]
INPUT-SHORT APF는 번역 시간 입력으로부터 16비트 정수값을 읽어 그 값을 포함하는 스택 목록을 생성한다.
INPUT-SHORT APF는 다음의 번역 시간입력을 요구한다:
1 정수값(예컨대, ASCII에서 1234)에 대한 외부 표시
[* INPUT-TIME]
INPUT-TIME APF는 번역시간 입력으로부터 시간값을 읽어 그 값을 포함하는 스택 목록을 생성한다.
INPUT-TIME APF는 다음의 번역시간 입력을 요구한다:
1 시간값(예컨대, 4:30 PM)에 대한 외부 표시
[* INPUT_LONG]
INPUT_LONG APF는 번역시간 입력으로부터 32비트 정수값을 읽어 그 값을 포함하는 스택 목록을 생성한다.
INPUT_LONG APF는 다음의 번역시간 입력을 요구한다:
1 정수값(예컨대, ASCII에서 123456)에 대한 오부표시
[* INPUT_DATE]
INPUT_DATE APF는 번역시간 입력으로부터 날짜값을 읽어 그 값을 포함하는 스택 목록을 생성한다.
INPUT_DATE APF는 다음의 번역시간 입력을 요구한다:
1 날짜값(예컨대, ASCII에서 25.02.53)에 대한 외부표시
[* INSERT_OCTET]
INSERT_OCTET APF는 BUILD 프로시져에 의해 번역되고 있는 제어레벨 AM의 파라미터 영역에 8비트 값을 삽입한다.
[* INSERT_SHORT]
INSERT_SHORT APF는 BUILD 프로시져에 의해 번역되고 있는 제어레벨 AM의 파라미터 영역에 16비트 값을 삽입한다.
[* INSERT_LONG]
INSERT_LONG APF는 BUILD 프로시져에 의해 번역되고 있는 제어레벨 사이의 파라미터 영역에 32비트 값을 삽입한다.
[실행 제어 연산]
실행 제어 연산들은 PROC형의 분석 정의 모듈내의 어디에서나 사용될 수 있다. 따라서, 분석모듈의 번역을 제어하기 위해 BUILD 부분에서도 사용될 수 있다.
[* EXITPROC]
EXITPROC APF는 PROC형의 제어레벨 분석모듈의 실행을 멈추고 호출점으로 실행을 반환한다.
[* PERFORM]
PERFORM APF는 PROC형의 제어레벨 분석 모듈의 실행을 종료하고, 제어레벨 AM 내의 한 장소(L)로부터 다음 분석모듈 토큰 AMT를 읽으며, 활성 분석모듈 토큰목록(146)으로부터 새로운 AMA를 가져와 지시된 제어레벨 AM을 실행하기 시작한다(즉, 지시된 제어레벨 AM 내의 원시함수 토큰(162)에 의해 지시된 분석 원시함수를 호출한다).
[* IFTHEN]
IF APT가 (1) IFTHEN…ELSE…ENDIF 또는 (2) IFTHEN…ENDIF 형태로 ELSE 및 ENDIF APF와 함께 PROC-ENDPROC 정의내에서 사용된다.
최상의 스택 목록이 부울 참값 또는 0값과 동일하면 IF 및 ELSE (1) 또는 IF 및 ENDIF (2) 사이의 부분이 실행된다. 그렇지 않으면, ELSE 및 ENDIF 사이의 부분이 존재할 경우 실행된다. 이후, 실행은 ENDIF APF를 따라 계속된다.
[* ELSE, ENDIF]
이들은 ELSE 부분의 시작 및 IFTHEN 부분의 끝을 지시하기 위해 IF APF와 함께 조화되어 사용된다. IF 참조
[* BEGIN]
BEGIN APF는 (1) BEGIN…EXIT…EXIT…REPEAT 형태로 WHILE 및 REPEAT APF와 함께 PROC-ENDPROC 정의내의 루프 구조들을 위해 사용된다.
BEGIN 및 REPEAT는 루프의 경계를 표시하며, EXIT는 무조적으로 루프를 벗어하는 점프를 제공한다. EXIT는 정상적으로 조건적인 EXIT를 제공하기 위해 IFTHEN_ENDIF 내에서 사용된다.
BEGIN은 번역시 직접 실행되며 실행시에는 효력이 없다.
[* REPEAT]
REPEAT APF는 PROC_ENDPROC 정의(BEGIN 참조)내의 대응하는 BEGIN APF와 일치한다.
실행시 REPEAT는 실행이 루프의 시작 즉 BEGIN 직후로 점프하게 한다.
[* EXIT]
EXIT APF는 PROC_ENDPROC 정의(BEGIN 참조)내의 BEGIN-REPEAT 내에 위치해야 한다.
실행시 EXIT는 실행을 루프밖으로 즉, REPEAT 바로 뒤로 점프시킨다.
[READ-WRITE 연산]
읽고 쓰는 연산들은 범용 분석 시스템에 의해 지원된 여러 데이타 구조들로 접근을 위해 사용된다.
[* AM_READ.8, AM_READ.S, AM_READ.L]
AM_READ APF들은 분석모듈내의 파라미터 영역에서 8비트, 16비트, 32비트 장소의 값을 각각 읽어 스택에 저장한다. 이 장소는 AM까지의 AMT 및 AM 내의 장소까지의 오프셋(0)에 의해 확인된다.
[* AM_WRITE.8, AM_WRITE.S, AM_WRITE.L]
AM-WRITE APT들은 스택의 최상에 있는 값을 분석모듈내의 파라미터 영역내의 8비트, 16비트, 32비트 장소에 각각 기록한다. 이 장소는 AM까지의 AMT 및 AM 내의 장소까지의 오프셋(0)에 의해 확인된다.
[* FETCH_PARAMETER]
FETCH_PARAMETER APF들은 호출 제어 데이타 저장 조정기에 접근하여 호출제어 데이타내의 수치 CP의 값을 검색한다. CP는 분석 모듈내의 피라미터 영역내의 한 장소로부터 읽혀지는 CPP에 의해 확인된다. 이 장소는 AM까지의 AMT 및 AM 내의 장소까지의 오프셋에 의해 확인된다.
[* PUT_PARAMETER]
PUT_PARAMETER APF들은 호출제어 데이타 저장 조정기에 접근하여 호출제어 데이타내의 수치 CP에 하나의 값을 할당한다. CP는 분석모듈내의 파라미터 영역내의 한 장소로부터 읽혀진 CPP에 의해 확인된다. 이 장소는 AM까지의 AMT 및 AM 내의 장소까지의 오프셋(0)에 의해 확인된다.
[상수 및 전역 변수 연산]
[* LITERAL]
LITERAL APF는 최근 PROC-ENDPROC형의 분석모듈로 번역될때, 또한 후에 분석모듈이 LITERAL APF가 고급 분석 정의모듈의 BUILD 부분에 위치되었을때 분석모듈이 번역될때, 또는 LITERAL APF가 분석모듈의 DO 부분에 위치되었을때 분석모듈이 실행될때 실행된다.
번역시 번역시간 입력내의 문자값을 작업자 인터페이스를 통해 읽게 된다. 실행될때 이 값을 포함하는 스택 목록을 생성하게 된다.
LITERAL APF는 다음의 번역시간 입력을 요구한다:
1 하나의 값(예컨대, ASCII에서 123)에 대한 외부표시
[* CONSTANT]
CONSTANT APF는 여러 PROC-ENDPROC 정의들로부터 사용될 수 있는 상수값을 위한 장소 홀더로 사용되는 새로운 저급 분석모듈을 즉시 정의한다.
번역시 작업자 인터페이스로부터의 번역시간 입력으로부터 문자값을 읽는다. 상수형의 분석모듈이 PROC-ENDPROC형의 분석 정의 모듈내에서 실행될때마다 이 값을 포함하는 스택 목록을 생성한다.
CONSTANT APF는 다음의 번역시간 입력을 요구한다:
1 CONSTANT 형의 새로운 저급 분석모듈에 대한 AMI로서 사용될 명칭
2 하나의 값(예컨대, ASCII에서 123)에 대한 외부표시. 이것은 (번역시) 즉시 실행되는 APF에 대한 참조가 제공될 수 있다.
[* GLOBAL]
GLOBAL APF는 PROC-ENDPROC형의 여러 분석모듈로부터 사용될 수 있는 전역 변수를 위한 장소 홀더로 사용되는 새로운 저급 분석모듈을 즉시 정의한다. 따라서 이것은 분석모듈과 함께 번역되는 여러 분석모듈들 사이에서 분산될 수 있는 변수위치를 제공한다. 전역 변수는 또한 작업자 인터페이스를 통해 외부적으로 접근이 가능하다. 전역 변수들의 일반적인 용도는 통계적인 측정들에 있다.
전역 변수의 이름이 저급 또는 고급 분석모듈의 PROC-ENDPROC 정의에서 발견될때, 전역 분석모듈에 대한 분석 모듈 토큰 AMT를 포함하는 스택목록을 생성하는 연산에 의해 대체될 것이다. 그후, 변수의 값은 AM-READ 및 AM-WRITE APF들에 의해 접근될 수 있다.
따라서, GLOBAL은 GLOBAL 분석모듈의 이름에 대한 참조를 포함하는 고급 분석 모듈과 함께 번역되는 모든 제어레벨 분석 모듈들 사이에서 분산될 수 있는 변수 위치를 제공한다. 전역 변수는 또한 작업자 인터페이스를 통해 외부적으로 접근 가능하다. 전역 변수들의 일반적인 용도는 통계 측정등에 있다.
GLOBAL APF는 다음의 번역시간 입력을 요구한다:
1 GLOBAL형의 새로운 저급 분석모듈에 대한 AMI로 사용될 이름.
2 팔중수들의 수에서 전역변수의 크기. 이것에는(번역시) 즉시 실행될 수 있는 APF에 대한 참조가 제공될 수 있다.
GLOBAL의 일반적인 용도의 예: GLOBAL 자기이름 TIME
[* -9…-1 0 1…9]
상수들로 사용되는 이들은 독립 APF들로 정의된다. 실행시 이들은 값 -9, -8, …, -1, 0, 1, …, 9를 각각 포함하는 스택 목록을 생성한다.
[* 데이타 형식의 크기]
일반적인 시스템에 사용되는 다른 데이타 형식들의 크기는 PROC-ENDPROC 정의들과 위의 GLOBAL에서는 일반적으로 상수들로 사용된다. 그러므로 이것들은 분리된(개별적인) APF′S로서 정의된다. 실행될때 이것들은 데이타 형식의 값들을 취하는데 필요한 8중수(octet)의 갯수와 같은 값을 포함하는 스택 목록을 생성한다.
이런 종류의 APF들은
CPP 요구매개 변수 포인터 2개의 8중수
TOKEN 분석모듈 토큰 4개의 8중수
TIME 시간값 2개의 8중수
DAYTYPE 날짜형 값 1개의 8중수
DATE 날짜값 4개의 8중수
OCTET 8-비트값 1개의 8중수
SHORT 16-비트값 2개의 8중수
LONG 32-비트값 4개의 8중수
문자열 형식의 데이타 형식의 크기를 얻기 위해서 이 크기를 계산하는 한 세트의 APF′S가 정의된다. 복귀된 이 값은 문자열에 있는 길이필드를 포함하는 문자열의 길이이다.
STRING 8중수 문자열(N개의 8중수) N+1 8중수
NUMBER BCD 문자열(N개의 숫자) N/2+1(만약 N이 홀수이면 +1). (제18중수는 문자열에 있는 8중수들의 갯수를 포함한다)
이런 APF들은 다음의 컴파일 시간입력을 필요로 한다:
1 N, 문자열에 있는 원소들의 갯수, 이것은 (편집동안) 즉시 실행되는 APF와 관련하여 제공된다.
사용예:
CONSTANT numbersize 16
GLOBAL myglobal NUMBER numbersize
배열 데이타 형식들의 크기를 얻기 위해서 이 크기를 계산하는 APF′S가 정의된다. 북귀되는 이 값은 배열에 필요한 8중수 갯수이다.
ARRAY 형식 T의 N개의 원소들의 배열 N*T의 크기
배열 APF들은 다음의 컴파일 시간입력을 필요로 한다:
1 N, 배열에 있는 원소들의 갯수. 이것은(편집동안) 즉시 수행되는 APF와 관련하여 제공될 수 있다.
2 배열의 원소크기, 이것은(편집동안) 즉시 수행되는 APF와 관련하여 제공될 수 있다.
사용예:
GLOBAL myglobal ARRAY 8 TIME
(8개의 시간값들의 배열을 포함하는 분석모듈을 정의한다)
[스택연산]
스택연산은 최상부 스택목록의 내용물들에 대한 연산을 수행시킨다. 이 스택은 항목화된 스택이며 그러므로 연산은 가변크기 스택목록들에 대해 이루어진다.
[* SWAP(교환)]
이 스택에 대한 두개의 최상부 목록들이 교환된다.
[* ROTATE(교대)]
이 스택에 대한 세개의 최상부 목록들이 교대된다.
[* DUPLICATE(복사)]
최상부 스택 목록이 복사된다.
[* OVER]
이 스택에 대한 제2스택 목록이 이 스택의 최상부에 복사된다.
[값 조작 연산]
두개의 피연산자에 대한 연산들은 다음의 일반적인 구조를 갖는다:
스택상의 두개의 최상 목록들은 초기 목록들에 2 피연산자가 연산자를 적용한 결과를 포함한 목록을 대체된다.
ADD V3는 피연산자들의 대수합이다.
SUBTRCT V3는 V2로부터 V1을 뺀 값이다(V3=V2-V1)
DIVIDE V3는 V2를 V1으로 나눈 몫의 최정 정수값이다.
MODULO V3는 V2를 V1으로 나눈 나머지 값이다.
MULTIPLY V3는 V1에 V2를 곱한 값이다(V3=V2·V1)
AND V3는 피연산자들의 비트형 논리곱이다.
OR V3는 피연산들의 비트형 논립합니다.
XOR V3는 피연산들의 비트형 논리 “XOR”이다.
MAX V3는 피연산자들의 최고값이다.
MIN V3는 피연산자들의 최소값이다.
EQUAL V3는 피연산자의 값이 동일하면 부울값 “참”이다.
LESS_EQ V3는 피연산자 V2의 값이 피연산자 V1의 값보다 작거나 같
으면 부울값 “참”이다.
GREATER V3는 피연산자 V2의 값이 피연산자 V1의 값보다 크면 부울값
“참”이다.
GREATER_EQ V3는 피연산자 V2의 값이 피연산자 V1의 값보다 크거나 같
으면 부울값 “참”이다.
1 피연산자 연산들은 다음의 일반적 구조를 갖는다:
스택상의 최상 목록이 초기 목록상의 단항 연산자에 적용된 결과를 포함하는 목록으로 대체한다.
ABS V2는 피연산자의 절대값이다.
NEGATE V2는 피연산자의 2의 보수이다. 즉 0-V1의 값.
NOT V2는 피연산자의 1의 보수이다.
LENGTH V2는 V1에서 열 값이 길이이다.

Claims (52)

  1. 다수의 분석 모듈을 포함하는 분석 제어자료(analysis control data), 그리고 한세트의 자료를 통해 적어도 하나의 분석을 수행하기 위한 범용 분석 프로그램을 포함하며, 상기 범용 분석 프로그램이 다수의 분석 원시함수를 포함하고, 상기 적어도 하나의 분석이 다수의 분석모듈 한세트로부터 구성되며, 상기 수행이 상기 분석 원시함수중 적어도 하나를 사용하므로써 설치됨을 특징으로 하는 범용 분석 시스템.
  2. 제1항에 있어서, 상기 범용 분석 프로그램이 새로운 분석모듈을 추가시키기 위한 수단을 더욱더 포함함을 특징으로 하는 범용 분석 시스템.
  3. 제1항에 있어서, 상기 분석 원시함수 각각이 특정타입의 분석모듈을 번역함을 특징으로 하는 범용 분석 시스템.
  4. 제3항에 있어서, 상기 분석모듈 각각이 그 타입을 번역하는 분석 원시 함수의 표시, 그리고 상기 적어도 한 분석의 일부를 제어하는 제어자료를 포함함을 특징으로 하는 범용 분석 시스템.
  5. 적어도 하나의 교환기를 포함하며, 그리고 각 교환기에서, 다수의 분석 원시함수를 포함하는 범용 분석 프로그램, 다수의 분석모듈을 포함하는 분석제어자료, 그리고 상기 교환기를 통해 각각의 전화호출에 대해 하나씩 다수의 호출기록을 포함하는 호출제어자료를 포함하는 전화 호출 처리용 시스템.
  6. 제5항에 있어서, 상기 분석모듈이 다수의 분석구조로 그룹을 이루고, 각각이 각기다른 분석을 제어함을 특징으로 하는 전화 호출 처리용 시스템.
  7. 제6항에 있어서, 상기 분석구조가 경로배정 분석 구조와 목적지 분석 구조를 포함함을 특징으로 하는 전화 호출 처리용 시스템.
  8. 제6항에 있어서, 각 호출 기록이 발신하는 가입자의 서비스 프로파일에서의 자료를 포함하는 가입자 자료, 상기 발신 가입자에 의해 다이얼되는 숫자를 포함하는 가입자 입력, 상기 분석구조중 한 구조의 제어하에서 범용 분석 프로그램에 의해 수행되는 분석의 결과의 적어도 하나에 대한 다수의호출 파라미터 값을 저장하며, 상기의 결과가 상기 범용 분석 프로그램에 의해 호출기록내로 기재되고, 다른 자료가 각기다른 분석을 실행하기 위해 상기 범용 분석 프로그램을 명령하는 호출 제어 프로그램에 의해 호출기록으로 기재됨을 특징으로 하는 전화 호출 처리용 시스템.
  9. 제8항에 있어서, 상기 결과가 또다른 분석을 수행하기 위해 상기 범용 분석 프로그램에 의해 사용됨을 특징으로 하는 전화 호출 처리용 시스템.
  10. 제8항에 있어서, 상기 결과가 호출처리를 제어하기 위해 호출 제어프로그램에 의해 사용됨을 특징으로 하는 전화 호출 처리용 시스템.
  11. 산업처리를 위해 다수의 파라미터를 저장하며, 상기 다수의 파라미터 각각이 상기 산업처리로부터 발생된 입력, 상기 산업처리의 특징을 규정하는 자료, 그리고 앞서 실행된 분석의 결과를 포함하고, 각각이 상기 파라미터의 분석 일부를 제어하며 상기 분석모듈 적어도 하나가 상기 분석으로부터의 한 결과를 발생시키며, 그리고 상기 결과를 기초로한 상기 산업처리를 제어하는 단계를 포함하는 산업처리 제어용 방법.
  12. 제11항에 있어서, 상기 결과가 상기 분석으로부터의 중간 결과임을 특징으로 하는 산업처리 제어용 방법.
  13. 제11항에 있어서, 상기 결과가 상기 분석으로부터의 최종 결과임을 특징으로 하는 산업처리 제어용 방법.
  14. 제11항에 있어서, 상기 산업처리가 전화호출의 연결을 위한 처리이고 상기 파라미터가 호출과 관련된 자료임을 특징으로 하는 산업처리 제어용 방법.
  15. 제11항에 있어서, 상기 분석모듈 각각이 관련 분석모듈이 실행되는때 실행되어질 기능을 나타내는 기능표시기, 그리고 상기 기능에 의해 해석되어질 제어자료를 포함하는 제어필드, 그리고 상기 기능에 의해 해석되어질 제어자료를 담고있는 제어필드를 포함함을 특징으로 하는 산업처리 제어용 방법.
  16. 제15항에 있어서, 상기 제어필드가 실행되어질 다음 분석 모듈을 나타내는 적어도 하나의 모듈 표시기를 포함함을 특징으로 하는 산업처리 제어용 방법.
  17. 제16항에 있어서, 상기 제어필드가 메모리내에 있는 한 파라미터의 위치를 나타내는 적어도 하나의 파라미터 표시를 포함함을 특징으로 하는 산업처리 제어용 방법.
  18. 제17항에 있어서, 상기 기능이 상기 메모리 위치내에 저장된 파라미터 값을 분석함을 특징으로 하는 산업처리 제어용 방법.
  19. 제17항에 있어서, 상기 제어필드가 적어도 하나의 예정된 값을 포함하고 상기 기능이 예정된 값을 상기 메모리 위치내로 기재함을 특징으로 하는 산업처리 제어용 방법.
  20. 각각이 빌드(build) 절차와 두(do) 절차를 포함하는 다수의 고-수준분석 원시함수를 제공하고, 상기 고-수준 분석 원시함수중 적어도 하나의 빌드 절차를 사용하여 다수의 제어-수준 분석모듈을 컴파일하며, 상기 제어-수준 분석모듈이 상기 적어도 하나의 분석을 나타내는 트리(tree) 구조를 형성하고, 그리고 상기 제어-수준 분석모듈을 컴파일하기 위해 사용되었던 고-수준 분석 원시 함수의 do 절차를 사용하여 상기 트리 구조에서 각 제어-수준 분석모듈을 실행하는 단계를 포함하는 산업처리를 제어하기 위해 사용된 적어도 하나의 분석을 컴파일하고 실행하기 위한 방법.
  21. 제20항에 있어서, 다수의 저-수준 분석 원시함수를 제공하고, 상기의 저-수준 분석 원시함수를 사용하여 다수의 저-수준 분석모듈을 컴파일하며, 상기 저-수준 분석모듈을 사용하여 다수의 고-수준 분석모듈을 컴파일하고, 상기 고-수준 분석모듈 각각이 빌드 절차와 두 절차를 포함하며, 상기 고-수준 분석모듈중 적어도 한 모듈의 빌드 절차를 사용하여 다수의 새로운 제어-수준 분석모듈을 컴파일하고, 상기 새로운 제어-수준 분석모듈이 상기 트리 구조로 추가되며, 그리고 상기 새로운 제어-수준 분석모듈을 컴파일하기 위해 사용되었던 고-수준 분석모듈의 두 절차를 사용하여 상기 트리구조에서 각각의 새로운 제어-수준 분석모듈을 실행하는 단계를 더욱더 포함함을 특징으로 하는 방법.
  22. 제21항에 있어서, 상기 고-수준 분석 원시함수와 상기 저-수준 분석 원시함수가 내장된 기능임을 특징으로 하는 방법.
  23. 제21항에 있어서, 상기 고-수준 분석모듈과 상기 저-수준 분석모듈이 사용자-규정의 기능임을 특징으로 하는 방법.
  24. 다수의 저-수준 분석 원시함수와 다수의 고-수준 분석 원시함수를 포함하며, 상기 저-수준 분석 원시함수 각각이 특정기능을 수행하는 서브루틴을 포함하고, 상기 고-수준 분석 원시함수 각각이 빌드절차와 두 절차를 갖는 범용 분석 프로그램, 그리고 다수의 저-수준 분석모듈, 다수의 고-수준 분석모듈 그리고 다수의 제어-수준 분석모듈을 포함하며, 상기 저-수준 분석모듈 각각이 상기 저-수준 분석 원시함수중 적어도 한 원시함수로부터 컴파일되고, 상기 고-수준 분석모듈 각각이 빌드절차와 두 절차를 가지며, 상기 제어-수준 분석모듈 각각이 빌드 절차로 컴파일되고, 상기 고-수준 분석 원시함수중 한 원시함수 또는 상기 고-수준 분석 모듈중 한 모듈의 두 절차로 해석되는 분석제어 자료를 포함함을 특징으로 하는 범용 분석 시스템.
  25. 제24항에 있어서, 상기 저-수준과 고-수준 분석 원시함수가 내장되며 상기 저-수준, 고-수준 및 제어-수준 분석모듈이 사용자-규정임을 특징으로 하는 범용 분석 시스템.
  26. 제24항에 있어서, 상기 제어-수준 분석모듈 각각이 고-수준 분석 원시함수 또는 고-수준 분석모듈을 나타내는 한 기능 표시기, 그리고 분석의 일부를 제어하기 위한 제어자료를 담고 있는 한 제어필드를 포함함을 특징으로 하는 범용 분석 시스템.
  27. 제26항에 있어서, 상기 제어-수준 분석모듈의 적어도 몇가지 각각이 참조되는 제어-수준 분석모듈에 의해 분석되어질 파라미터에 참조부호를 붙인 파라미터 식별표시를 더욱더 포함함을 특징으로 하는 범용 분석 시스템.
  28. 각각이 외부 이름을 갖는 다수의 분석을 위한 다수의 분석 제어자료 구조로서, 각각이 각각이 하나의 외부이름을 가지며 적어도 몇가지 분석이 수행되는때 실행되는 다수의 분석모듈, 상기 분석모듈의 이름들을 상응하는 모듈 토큰으로 번역하는 분석모듈 사전, 그리고 상기 모듈 토큰을 상기 분석모듈에 상응하는 포인터로 번역하는 적어도 하나의 분석모듈 토큰 테이블을 포함하는 다수의 분석제어자료, 상기 분석의 이름들을 분석제어 자료구조에 상응하는 포인터로 번역하는 분석제어자료 사전, 각각이 외부이름을 가지며, 적어도 몇가지는 특정타입의 상기 분석모듈을 컴파일하고 번역하는 다수의 분석 원시함수, 상기 분석 원시함수의 이름들을 상응하는 원시함수 토큰으로 번역하는 분석 원시함수 사전, 상기 원시함수 토큰을 상기 분석 원시함수에 상응하는 포인터로 번역하는 분석 원시함수토큰, 상기 선택된 분석의 이름을 포함하는 입력자료의 수령에 응답하여 선택된 분석의 실행을 시작하는 한 분석 인터프리터 절차 그리고 분석되어질 한 세트의 파라미터를 담고 있는 한 기록을 가리키는 파라미터 기록포인터, 상기 파라미터 기록 포인터를 저장하며 상기 분석 원시함수가 상기 선택된 분석의 실행중에 상기 파라미터에 접근할 수 있도록 하는 분석 실행 입력 자료 핸들러(handler), 그리고 상기 분석 제어자료 구조중 적어도 한 구조내 적어도 한 분석의 이름, 컴파일되어질 분석모듈의 이름, 새로운 분석모듈을 컴파일하는데 사용되어질 분석 원시함수의 이름을 포함하는 명령의 수령에 응답해서 새로운 분석모듈의 컴파일을 개시하는 분석 빌드 절차를 포함함을 특징으로 하는 범용 분석 시스템.
  29. 제28항에 있어서, 상기 적어도 몇 개의 분석 원시함수 각각이 특정타입의 분석모듈을 컴파일하기 위해 사용되는 빌드 절차 그리고 상기 분석모듈 타입을 번역하기 위해 사용되는 두 절차를 포함하며, 상기 분석 원시함수 토큰 테이블이 상기 적어도 몇 개의 분석 원시함수 각각을 위한 원시함수 토큰을 두 개의 포인터, 즉 상기 빌드 절차로의 첫 번째 포인터와 상기 두 절차로의 두 번째 포인터로 번역함을 특징으로 하는 범용 분석 시스템.
  30. 제28항에 있어서, 상기 입력자료가 통신시스템을 통해 전화트래픽의 처리를 제어하는 호출제어 프로그램에 의해 송신되며, 그리고 상기 파라미터가 적어도하나의 전화호출과 관련된 자료를 포함함을 특징으로 하는 범용 분석 시스템.
  31. 제28항에 있어서, 상기 입력자료가 상기 선택된 분석에 특정된 다른 정보를 더욱더 포함하고, 그리고 상기 다른 정보가 상기 분석 실행 입력자료 처리기내에 저장됨을 특징으로 하는 범용 분석 시스템.
  32. 제31항에 있어서, 상기 다른 정보가 분석되어질 다른 파라미터 기록으로부터의 포인터를 포함함을 특징으로 하는 범용 분석 시스템.
  33. 제28항에 있어서, 상기 분석 실행 입력자료 처리기가 파라미터 기록으로부터의 파리미터값의 판독과 기록을 처리하는 자료저장 처리기와 통신함을 특징으로 하는 범용 분석 시스템.
  34. 제28항에 있어서, 상기 분석 제어자료구조 각각이 다수의 분석모듈 토큰 테이블, 상기 능동 모듈 토큰 테이블중 한 능동테이블을 가르키는 한 능동 토큰 테이블, 그리고 분석이 수행되는때 첫 번째 분석모듈을 참고로 기호표시하고 상기 능동 모듈 토큰테이블에 의해 첫 번재 분석모듈로의 포인터내로 번역되는 분석 시작 토큰을 포함함을 특징으로 하는 범용 분석 시스템.
  35. 제34항에 있어서, 상기 분석 시작 토큰 및 상기 작동 토큰 테이블 포인터가 상기 분석 제어자료 구조 각각의 분석 실행시간 자료구조에 속함을 특징으로 하는 범용 분석 시스템.
  36. 제34항에 있어서, 상기 분석 빌드 절차가 상기 능동 토큰 테이블 포인터의 값을 수정하기 위한 명령을 수신함을 특징으로 하는 범용 분석 시스템.
  37. 제28항에 있어서, 상기 분석 각각의 이름이 상응하는 분석제어 자료 구조로의 포인터와 분석에서 수행될 첫 번째 분석모듈로의 토큰 모두로 번역됨을 특징으로 하는 범용 분석 시스템.
  38. 제28항에 있어서, 상기 명령이 상기 분석 빌드절차와 통신하는 오퍼레이터 접속기를 통해 입력됨을 특징으로 하는 범용 분석 시스템.
  39. 제28항에 있어서, 상기 분석 빌드 절차가 적어도 하나의 기존 분석모듈 내용을 수정하기 위한 명령을 수신함을 특징으로 하는 범용 분석 시스템.
  40. 상기 파라미터 각각이 상기 산업처리로부터 발생된 입력, 상기 산업처리의 특징을 규정하는 자료, 그리고 앞서-실행된 분석의 결과를 포함하는, 산업처리를 위한 다수의 파라미터를 저장하기 위한 수단, 각각이 상기 파라미터 분석의 일부를 제어하고 적어도 하나가 상기 분석으로부터 한 결과를 발생시키는 다수의 분석모듈을 실행하기 위한 수단, 그리고 상기 결과를 기초로한 산업처리를 제어하기 위한 수단을 포함하는 산업처리를 제어하기 위한 시스템.
  41. 제39항에 있어서, 상기 결과가 상기 분석으로부터의 중간 결과임을 특징으로 하는 산업처리를 제어하기 위한 시스템.
  42. 제39항에 있어서, 상기 결과가 상기 분석으로부터의 최종 결과임을 특징으로 하는 산업처리를 제어하기 위한 시스템.
  43. 제39항에 있어서, 상기 산업처리가 전화호출의 연결을 위한 처리이며 상기 파라미터가 호출과 관련된 자료임을 특징으로 하는 산업처리를 제어하기 위한 시스템.
  44. 제39항에 있어서, 상기 분석모듈 각각이 관련된 분석모듈이 실행되는때 실행되어질 기능을 나타내는 기능표시기, 그리고 상기 기능에 의해 번역되어질 제어자료를 담고 있는 제어필드를 포함함을 특징으로 하는 산업처리를 제어하기 위한 시스템.
  45. 제44항에 있어서, 상기 제어필드가 실행되어질 다음 분석모듈을 나타내는 적어도 하나의 모듈표시기를 포함함을 특징으로 하는 산업처리를 제어하기 위한 시스템.
  46. 제44항에 있어서, 상기 제어필드가 메모리내에서 파라미터의 위치를 나타내는 적어도 하나의 파라미터 식별을 포함하는 산업처리를 제어하기 위한 시스템.
  47. 제46항에 있어서, 상기 기능이 상기 메모리 위치내에 저장된 파라미터 값을 분석하는 산업처리를 제어하기 위한 시스템.
  48. 제46항에 있어서, 상기 제어필드가 적어도 하나의 예정된 값을 더욱더 포함하며, 상기 기능이 상기 예정된 값을 상기 메모리 위치내로 기록함을 특징으로 하는 산업처리를 제어하기 위한 시스템.
  49. 각각이 빌드절차와 두 절차를 포함하는 다수의 고-수준 분석 원시함수를 제공하는 수단, 상기 고-수준 분석 원시함수중 적어도 하나의 빌드 절차를 사용하여 다수의 제어-수준 분석모듈들 컴파일하고, 상기 제어-수준 분석모듈은 상기 적어도 하나의 분석을 나타내는 트리(tree) 구조를 형성하는 수단, 상기 제어-수준 분석모듈을 컴파일하기 위해 사용되었던 고-수준 분석 원시 함수의 두 절차를 사용하여 상기 트리 구조에서 각각의 제어-수준 분석모듈을 실행하기 위한 수단을 포함하는, 산업처리를 제어하기 위한 적어도 하나의 분석을 컴파일하고 실행하기 위한 시스템.
  50. 제49항에 있어서, 다수의 저-수준 분석 원시함수를 제공하기 위한 수단, 상기 저-수준 분석 원시함수를 사용하여 다수의 저-수준 분석모듈을 컴파일하기 위한 수단, 저-수준 분석모듈을 사용하여 다수의 고-수준 분석모듈을 컴파일하기 위한 수단으로서, 상기 고-수준 분석모듈 각각은 빌드 절차와 두 절차를 포함하는 수단, 적어도 하나의 상기 고-수준 분석모듈을 사용하여 다수의 새로운 제어-수준 분석모듈을 컴파일하기 위한 수단으로서, 상기 새로운 제어-수준 분석모듈이 상기 새로운 구조로 추가되는 수단, 그리고 상기의 새로운 제어-수준 분석모듈을 컴파일하기 위해 사용되었던 고-수준 분석모듈의 두 절차를 사용하여 상기 트리구조에서 각각의 새로운 제어-수준 분석모듈을 실행하기 위한 수단을 더욱더 포함함을 특징으로 하는 시스템.
  51. 제50항에 있어서, 상기 고-수준 분석 원시함수와 상기 저-수준 분석원시함수가 내장된 기능임을 특징으로 하는 시스템.
  52. 제50항에 있어서, 상기 고-수준 분석모듈와 상기 저-수준 분석모듈이 사용자-규정 기능임을 특징으로 하는 시스템.
KR1019950701834A 1992-11-10 1993-10-26 범용분석시스템 KR100305373B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/974,165 US6134304A (en) 1992-11-10 1992-11-10 General analysis system
US974165 1992-11-10
PCT/SE1993/000882 WO1994011996A1 (en) 1992-11-10 1993-10-26 General analysis system

Publications (2)

Publication Number Publication Date
KR950704917A KR950704917A (ko) 1995-11-20
KR100305373B1 true KR100305373B1 (ko) 2001-12-17

Family

ID=25521680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950701834A KR100305373B1 (ko) 1992-11-10 1993-10-26 범용분석시스템

Country Status (13)

Country Link
US (2) US6134304A (ko)
EP (1) EP0669071B1 (ko)
JP (1) JPH08505740A (ko)
KR (1) KR100305373B1 (ko)
CN (1) CN1091577A (ko)
AU (1) AU698159B2 (ko)
BR (1) BR9307416A (ko)
CA (1) CA2146243C (ko)
DE (1) DE69328784T2 (ko)
FI (1) FI952252A (ko)
MX (1) MX9306218A (ko)
NO (1) NO951809L (ko)
WO (1) WO1994011996A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE518247C2 (sv) * 1992-08-28 2002-09-17 Ericsson Telefon Ab L M Programvarustruktur för ett telekommunikationssystem
SE503376C2 (sv) * 1994-06-13 1996-06-03 Ericsson Telefon Ab L M Kundprofilerad telekommunikationstjänst
FI100443B (fi) * 1995-04-10 1997-11-28 Nokia Telecommunications Oy Liikenteen väylöitys tietoliikenneverkon solmussa
US5757900A (en) * 1995-06-02 1998-05-26 Bell Communications Research, Inc. System and method for single access database retrievals
US5826030A (en) * 1995-11-30 1998-10-20 Excel Switching Corporation Telecommunication switch having a universal API with a single call processing message including user-definable data and response message each having a generic format
US6028924A (en) * 1996-06-13 2000-02-22 Northern Telecom Limited Apparatus and method for controlling processing of a service call
US5991389A (en) * 1996-06-13 1999-11-23 Northern Telecom Limited Programmable service architecture for call control processing
US6038309A (en) * 1996-06-13 2000-03-14 Northern Telecom Limited Apparatus and method for externally controlling processing of a service call
US5930334A (en) * 1997-03-28 1999-07-27 Telefonaktiebolaget Lm Ericsson Method and apparatus for monitoring the operation of telecommunications equipment
US6198813B1 (en) * 1997-09-30 2001-03-06 Alcatel Usa Sourcing, L.P. System and method for providing call processing services using call independent building blocks
US6069947A (en) * 1997-12-16 2000-05-30 Nortel Networks Corporation Communication system architecture and operating protocol therefor
EP1062559A2 (en) 1998-03-12 2000-12-27 DMW Worldwide, Inc. Operational system for operating on client defined rules
FI106168B (fi) 1998-12-09 2000-11-30 Nokia Networks Oy Järjestelmä ja menetelmä analyysin optimoimiseksi
WO2000062517A1 (en) 1999-04-14 2000-10-19 Vocaldata, Inc. Telephony server
US6396913B1 (en) * 1999-10-22 2002-05-28 Convergys Cmg Utah Inc. System and method for processing call detail records
JP2002041697A (ja) * 2000-07-25 2002-02-08 Toshiba Corp 電子カタログシステムおよびその管理運用装置および管理運用方法
DE10313910A1 (de) * 2003-03-27 2004-10-07 Rohde & Schwarz Gmbh & Co. Kg Verfahren zur Ermittlung von Abweichungen einer Endsystem-Nachricht von einer Referenznachricht
CN100561408C (zh) * 2005-12-30 2009-11-18 中国科学院计算技术研究所 一种基于原语机制的外设网络调用方法
CN101424941B (zh) * 2007-10-31 2011-05-25 北京北方微电子基地设备工艺研究中心有限责任公司 一种控制实现方法和系统
US8208606B2 (en) * 2007-12-20 2012-06-26 At&T Intellectual Property I, Lp Method and system for verifying the status of 911 emergency telephone services
US20090192868A1 (en) * 2008-01-24 2009-07-30 Vrinda Rajiv Method and System for Analyzing Performance of a Wind Farm
US9335761B2 (en) * 2008-09-30 2016-05-10 Rockwell Automation Technologies, Inc. Procedure classification for industrial automation
GB0909695D0 (en) * 2009-06-05 2009-07-22 Maxymiser Ltd On page console
CN102026223A (zh) * 2010-08-03 2011-04-20 武汉易思达科技有限公司 一种3g基站基带与射频单元间接口协议的测试方法
US8595219B1 (en) * 2012-05-16 2013-11-26 Trans Union, Llc System and method for contextual and free format matching of addresses
JP2019185314A (ja) * 2018-04-06 2019-10-24 株式会社日立製作所 分析シーケンス制御システムおよび分析シーケンス制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1097782A (en) * 1978-06-05 1981-03-17 John J. Den Otter Modular time division switching system
US4688195A (en) * 1983-01-28 1987-08-18 Texas Instruments Incorporated Natural-language interface generating system
SE467229B (sv) * 1983-08-19 1992-06-15 Kurt Katzeff Anordning foer bildande av en information och/eller instruktion avsedd att inmatas i en datamaskins programminne
US4656603A (en) * 1984-03-01 1987-04-07 The Cadware Group, Ltd. Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons
US5371895A (en) * 1985-10-08 1994-12-06 The Foxboro Company Local equipment controller for computerized process control applications utilizing language structure templates in a hierarchical organization and method of operating the same
US4910691A (en) * 1987-09-30 1990-03-20 E.I. Du Pont De Nemours & Co. Process control system with multiple module sequence options
US4965742A (en) * 1987-09-30 1990-10-23 E. I. Du Pont De Nemours And Company Process control system with on-line reconfigurable modules
US4868770A (en) * 1987-12-02 1989-09-19 Analogy, Inc. Simulation results enhancement method and system
JPH01227552A (ja) * 1988-03-07 1989-09-11 Fujitsu Ltd Lanアナライザ
US4864497A (en) * 1988-04-13 1989-09-05 Digital Equipment Corporation Method of integrating software application programs using an attributive data model database
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5051898A (en) * 1988-06-13 1991-09-24 Eda Systems, Inc. Method for specifying and controlling the invocation of a computer program
US5068812A (en) * 1989-07-18 1991-11-26 Vlsi Technology, Inc. Event-controlled LCC stimulation
US5212771A (en) * 1990-04-27 1993-05-18 Bachman Information Systems, Inc. System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US5323452A (en) * 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
US5251255A (en) * 1991-04-17 1993-10-05 At&T Bell Laboratories Processing interactions among telecommunications call features
US5335268A (en) * 1992-10-22 1994-08-02 Mci Communications Corporation Intelligent routing of special service telephone traffic

Also Published As

Publication number Publication date
DE69328784D1 (de) 2000-07-06
CN1091577A (zh) 1994-08-31
NO951809L (no) 1995-07-07
AU5436294A (en) 1994-06-08
WO1994011996A1 (en) 1994-05-26
KR950704917A (ko) 1995-11-20
US5553127A (en) 1996-09-03
EP0669071B1 (en) 2000-05-31
FI952252A0 (fi) 1995-05-09
CA2146243A1 (en) 1994-05-26
CA2146243C (en) 2002-02-26
JPH08505740A (ja) 1996-06-18
MX9306218A (es) 1994-05-31
DE69328784T2 (de) 2000-11-16
AU698159B2 (en) 1998-10-22
US6134304A (en) 2000-10-17
NO951809D0 (no) 1995-05-09
BR9307416A (pt) 1999-08-31
EP0669071A1 (en) 1995-08-30
FI952252A (fi) 1995-05-09

Similar Documents

Publication Publication Date Title
KR100305373B1 (ko) 범용분석시스템
CN102521411B (zh) 公式及公式数据处理装置和公式及公式数据处理方法
US4698752A (en) Data base locking
EP1014265B1 (en) Method and apparatus for testing event driven software
EP0456249B1 (en) System for integrating application programs in a heterogeneous network enviroment
KR100297299B1 (ko) 통신네트워크용데이터정정시스템
US6636877B1 (en) Method for analyzing the quality of telecommunications switch command tables
US7742576B2 (en) Processes and systems for creating and for managing trouble tickets and work orders
US6678370B1 (en) Data extraction process
KR100538371B1 (ko) 분산데이터처리환경에 레거시 어플리케이션을 통합시키기위한 방법 및 시스템
AU4516493A (en) System for changing software during computer operation
WO1994005112A1 (en) System and method for creating, transferring, and monitoring services in a telecommunication system
EP0238039B1 (en) Network event identifiers
CN100561476C (zh) 一种基于asn类型对象的代码生成方法
Delatore et al. The 5ESS switching system: operational software
EP0126122B1 (en) Data base locking
WO2022004455A1 (ja) 入出力をカテゴライズされたオブジェクト間の協働を、配置可能なオブジェクトカテゴリが定義されたオブジェクトグループを利用して実現するコンピュータシステム及びアプリケーションプログラミングインターフェイス装置
CN117743422A (zh) 数据处理方法及装置、存储介质及电子设备
CN1082320C (zh) 构成呼叫处理的方法和电话呼叫处理的交换系统
CN116627423A (zh) 一种数字硬件电路描述方法、装置、设备及存储介质
EP1018684A2 (en) Method and apparatus for developing event driven software
CN113590686A (zh) 生态环境数据指标的处理方法、装置及设备
AOG SYSTEMS CORP HARVARD MA Design Concepts for Data Base Utilities.
Clemm et al. TREGRM-83 Report and User's Manual
d'Auriol et al. COMMAN: a communication analyzer for OCCAM 2

Legal Events

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

Payment date: 20070725

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee