KR20150138821A - 콘텐츠 액세스 방법 및 시스템 - Google Patents

콘텐츠 액세스 방법 및 시스템 Download PDF

Info

Publication number
KR20150138821A
KR20150138821A KR1020150076570A KR20150076570A KR20150138821A KR 20150138821 A KR20150138821 A KR 20150138821A KR 1020150076570 A KR1020150076570 A KR 1020150076570A KR 20150076570 A KR20150076570 A KR 20150076570A KR 20150138821 A KR20150138821 A KR 20150138821A
Authority
KR
South Korea
Prior art keywords
standard
data
record
content
travel
Prior art date
Application number
KR1020150076570A
Other languages
English (en)
Other versions
KR101767725B1 (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
Priority claimed from EP14305812.1A external-priority patent/EP2950245A1/en
Priority claimed from US14/291,892 external-priority patent/US9619568B2/en
Application filed by 아마데우스 에스.에이.에스. filed Critical 아마데우스 에스.에이.에스.
Publication of KR20150138821A publication Critical patent/KR20150138821A/ko
Application granted granted Critical
Publication of KR101767725B1 publication Critical patent/KR101767725B1/ko

Links

Images

Classifications

    • H04L67/2823
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • G06F17/227
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies
    • H04L67/2838

Abstract

애플리케이션의 세트와 확장된 레코드 데이터 구조를 포함하는 콘텐츠 관리 시스템의 콘텐츠에 액세스하는 방법이 제공된다. 확장된 데이터 구조는 레코드- 상기 레코드는 미리 정의된 표준 타입의 표준 데이터 엘리먼트를 표준 데이터 컨테이너의 형태로 포함함 - 를 저장하기 위한 표준 레코드 데이터 구조 및 미리 정의된 표준 타입과는 상이한 타입을 갖는 비표준 데이터 엘리먼트를 포함하는 레코드를 저장하기 위한 비표준 레코드 데이터 구조를 포함한다. 상기 방법은, 확장된 레코드 데이터 구조로부터의 관련 데이터 엘리먼트의 세트에 액세스 기준에 따라 액세스하기 위한 애플리케이션으로부터의 요청에 응답하여:
a. 관련 데이터 엘리먼트의 세트 내의 각각의 데이터 엘리먼트에 대해, 확장된 레코드 데이터 구조 내의 상기 엘리먼트와 관련된 데이터 컨테이너의 속성을 필터링 규칙에 따라 필터링하는 단계(805), 및
b. 고유의 추상 타입을 할당받으며 상기 데이터 컨테이너의 상기 필터링된 속성의 세트를 포함하는 추상 컨테이너를 생성하는 단계(806)를 포함한다.

Description

콘텐츠 액세스 방법 및 시스템{CONTENT ACCESS METHOD AND SYSTEM}
배경
본 발명은 일반적으로 데이터 관리에 관한 것으로, 특히, 콘텐츠 관리 시스템의 콘텐츠에 액세스하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품에 관한 것이다.
콘텐츠 관리 시스템은 전용 통신 네트워크를 통해 시스템에 연결된 하나 이상의 클라이언트들(예를 들면, 최종 소비자)에게 특정 콘텐츠에 대한 액세스를 제공할 수 있다.
각 산업 영역에서의 엄청나게 많은 수의 콘텐츠 유통 공급자들의 출현과 함께, 각 소비자가 고유의 콘텐츠 관리 시스템을 통해 다수의 콘텐츠 공급자들에게 액세스할 수 있게 될 필요성이 존재한다.
예를 들면, 여행(travel) 산업에서, 여행 공급자 시스템(콘텐츠 공급자)의 세트로부터 획득된 콘텐츠를 다수의 여행 에이전시 시스템들(콘텐츠 소비자들)에게 분배하는 데 여행 관리 시스템이 사용될 수 있다. 지난 수십 년에 걸쳐 여행 산업은 비약적으로 성장했고 동일한 시간에 여행 산업에 의해 제공되는 서비스도 크게 변경되어 이제 이질적 콘텐츠를 포함하는 아주 다양한 서비스들이 최종 소비자에게 제공되고 있다. 또한, 여행 산업은 이제 여행 공급자에서부터 최종 소비자에 이르기까지 많은 플레이어들을, 이들 플레이어들 사이에서 관리되어야 하는 거대한 양의 데이터와 함께, 포함한다. 여행 공급자와 최종 유저 사이에서, GDS(Global Distribution Systems; 글로벌 디스트리뷰션 시스템)와 같은 여행 매개체(intermediary)는, 여행 에이전트가 전통적인 여행 공급자(항공노선(airline) 공급자)로부터 정보를 검색하거나(retrieve), 또는 최종 소비자와 전통적인 여행 공급자 사이에서 트랜잭션을 행하는 것을 허용하는 여행 관리 시스템을 제공한다.
순수하게 항공 운송 유통에 주로 초점을 맞추어 왔던 여행 에이전시 비즈니스 모델이 진화하고 있고 플레이어들은 이제 비항공 관련 콘텐츠 덕분에 더 높은 수익을 올리고 있다. 따라서, 새로운 종류의 여행 공급자로부터의 아주 중요하고 다양한 서비스는 목적지에서 제안된다.
이러한 대안적인 유통 채널의 매력을 통해, 여행 에이전시는 보통의 GDS 콘텐츠(예를 들면, 비행기 여행(flight) 또는 기차 여행(rail) 콘텐츠)뿐만 아니라 비GDS 콘텐츠(예를 들면, 호텔, 렌트카 등)를 점점 더 많이 유통하는 경향이 있다.
그러나, 종래의 여행 관리 시스템은 비GDS 콘텐츠에 관련된 정보를 여행 에이전시에게 직접 제공할 적절한 수단을 제공하지 못한다.
도 1에 도시된 바와 같이, 여행 관리 시스템(1)은, GDS 콘텐츠 공급자(40)로부터 직접 수신된 GDS 콘텐츠와 관련된 레코드를 저장하기 위한, "여객 예약 기록(Passenger Name Record)" 데이터 구조(900)로서 알려진 레코드 데이터 구조를 일반적으로 포함한다. 각각의 레코드(PNR)는 레코드 로케이터에 의해 데이터베이스(DB)에서 식별된다. 그 다음, PNR 레코드 로케이터는 GDS 콘텐츠에 액세스하여 그것을 여행 에이전트 또는 최종 소비자 시스템(60)과 같은 클라이언트 디바이스로 분배하는 데 사용될 수 있다.
PNR(900) 데이터 구조는 주어진 승객 또는 함께 여행하는 승객들의 그룹과 관련된 여행 데이터와 관련하여 레코드 로케이터를 유지한다(레코드 로케이터는 확인 번호, 예약 번호, 확인 코드, 부킹 레퍼런스(booking reference) 등으로서 또한 알려져 있다). 예를 들면, 한 승객 또는 승객들의 그룹에 대한 예약이 행해지는 경우, 데이터 구조(900) 내에 PNR이 생성되고, 이 PNR은 레코드 로케이터 및 예약 내용에 대응하는 데이터(예를 들면, 도착 시간, 출발 시간 등과 같은 비행기 여행 데이터)를 포함한다.
현재로선, 여행 관리 시스템은 표준화 제약으로 인해 비GDS 여행 공급자(50)로부터 비GDS 콘텐츠를 직접 수신할 수 없다.
실제, 여행 관리 시스템이 표준 여행 공급자(40)와 교환하는 방식은, AIRIMP(ATA/IATA Reservations Interline Message Procedures - Passenger)를 통해 정의된 IATA(International Air Transport Association; 국제 항공 운송 협회)에 의해 정의된 규칙에 종속된다. 구체적으로는, 표준 여행 공급자(40)와 여행 콘텐츠 관리 엔진(30) 사이에서 교환되는 메시지는 IATA 표준에 의해 정의되는 메시지 교환 포맷(TTY(Teletype format; 텔레타입 포맷))을 만족해야 하고 종래의 PNR(900)은 이러한 TTY 포맷으로 수신되는 콘텐츠만을 핸들링하도록 구성된다.
PNR(900)의 콘텐츠 및 레이아웃에 대해 보통 말하는 산업 표준은 정의되어 있지 않다. 그러나, 각각의 여행 관리 시스템(예를 들면, CRS(Computer Reservation System; 컴퓨터 예약 시스템))은, PNR의 콘텐츠 및 레이아웃에 대해, AIRIMP의 제약 및 특히 PNR 데이터를 AIRIMP 메시지로 쉽게 매핑할 필요성을 고려하여 자기 자신의 독점적 표준을 정의한다. 따라서, 상이한 여행 관리 시스템에 의해 유지되는 PNR(900)의 포맷과 데이터 콘텐츠에 관해 많은 유사성이 존재한다. 특히, 각각의 PNR 데이터 구조(900)는, 레코드 로케이터와 관련된 여행 데이터가, IATA에 의해 표준화된 GDS 콘텐츠(비행기 여행 데이터, 기차 여행 데이터 등)에 대응하는 다수의 미리 정의된 타입들을 만족해야 하는 그러한 구조이다.
따라서, GDS 콘텐츠(예를 들면, 비행기 여행, 기차 여행 데이터)만이 IATA 메시지 교환 표준에 관련된 제약을 만족하는 정적 포맷으로 PNR 데이터 구조(900)에 유지될 수 있다. 그러므로, 비GDS 콘텐츠(차량 렌트, 제트 스키 등)에 대한 레코드를 생성하는 것은 불가능하다.
US2012259667호는 PNR(900)에 비GDS 콘텐츠를 적요(remark), 기타 또는 고스트 세그먼트의 형태로 저장하는 해결책을 제공한다. 그러나, 이러한 해결책은, 비표준 여행 공급자로부터 직접 수신되는 비GDS 콘텐츠를, 여행 관리 시스템이 다른 GDS 엘리먼트들 중 PNR(900)의 선두에 구조화된 방식으로 동적으로 그리고 원활하게(seamlessly) 저장하는 것을 허용하지 않는다.
따라서, 종래의 여행 관리 시스템(1)은 항공노선 공급자와 같은 GDS 여행 공급자로부터의 콘텐츠만을 핸들링한다. 종래의 여행 관리 시스템은 엄청나게 많은 수의 애플리케이션들을 사용하는 여행 콘텐츠 관리 엔진(30)을 포함하는데, 각각의 애플리케이션은 특정 여행 서비스(예를 들면, 부킹, 쇼핑, 가격책정(pricing) 등)에 관련된다. 주어진 여행 에이전트(Ai)(70)로부터의 요청에 응답하여, 여행 콘텐츠 관리 엔진(30)은 GDS 여행 공급자(40)로부터의 콘텐츠만을 검색하고, PNR(900) 내에 레코드를 생성하고, 이렇게 생성된 PNR 레코드의 표현(representation)을 여행 에이전트(Ai)에게 리턴할 수 있다.
각각의 여행 에이전트는, 여행 에이전트가 비GDS 콘텐츠에 액세스할 필요가 있는 경우 비GDS 공급자(50)의 세트에 직접 연결되어야 하지만, 여행 관리 시스템(1)은 GDS 콘텐츠 공급자(40)에게만 직접 연결된다. 한편, 각각의 여행 에이전트는 비GDS 여행 콘텐츠(택시, 엔터테인먼트 티켓 등)를 획득하기 위해 여행 공급자(50)의 특정 세트에 직접 연결된다. 따라서, 여행 콘텐츠 관리 엔진(30)은 n개의 여행 서비스 플랫폼(각각의 여행 에이전트(A1 내지 An)에 대해 하나의 플랫폼(2.1, 2.2...2.i, 2.n))을 노출시키지만, 표준 여행 공급자(40)로부터의 표준 여행 콘텐츠(GDS 콘텐츠)만을 핸들링한다.
따라서, 주어진 여행 에이전트(Ai)가 비표준 여행 공급자(50)로부터의 특정 콘텐츠(예를 들면, 박물관 티켓팅)를 원하는 경우, 이러한 콘텐츠는 여행 에이전트(Ai)에 의해 자체 구현되어야 한다. 이러한 자체 구현은 여행 에이전트에게는 특히 비용이 많이 들고 복잡하다.
또한, 종래의 방식에서, 여행 관리 시스템(100)은 PNR 콘텐츠를 로컬 포맷(소스 PNR 콘텐츠 포맷)으로 저장한다. 그러나, 여행 관리 시스템은 PNR로부터의 데이터를, PNR 데이터에 대해 그들 고유의 포맷(목표 PNR 콘텐츠 포맷)을 갖는 다른 외부 시스템들(여행 공급자, 여행 에이전시)과 교환하도록 요구받을 수도 있다. 따라서, 목표 시스템에 따라, 여행 관리 시스템의 PNR 레코드와 관련된 PNR 콘텐츠의 변환은 목표 PNR 콘텐츠 포맷으로 수행될 수 있다. 이러한 변환은 현재로선, 비용이 많이 들며 정적인 방식에서, 하드 코딩과 재컴파일링을 수반한다. 마찬가지로, 여행 관리 시스템(100) 내부의 PNR 콘텐츠를 사용하는 애플리케이션 플로우에서, PNR 콘텐츠를 수신하는 애플리케이션 플로우 내의 각각의 내부 애플리케이션(체인화된 애플리케이션)은, PNR 콘텐츠를 처리하기 위해 PNR 콘텐츠를 애플리케이션 포맷으로 변환하도록 요구받는다. 따라서, 체인의 각 애플리케이션은 PNR 콘텐츠를 기록 또는 판독할 수 있도록 PNR 콘텐츠를 디코딩하고, 타당성 검증하고 인코딩하도록 요구받으며, 이것은 손으로 코딩되는 컴포넌트를 필요로 하고 비용이 많이 든다.
또한, 종래의 관리 시스템에서, PNR은 현재로선 표준 타입의 콘텐츠 만을 처리하도록 엄청나게 많은 수의 애플리케이션들에 의해 사용될 수 있다. 따라서, 새로운 콘텐츠 타입을 처리할 수 있기 위해선, 현재로선, 콘텐츠 관리 시스템의 모든 애플리케이션들을 재코딩해야 할 필요가 있고, 이것은 비용이 많이 든다.
따라서, 콘텐츠를 동적으로 그리고 원활하게 교환하기 위한 향상된 콘텐츠 관리 시스템, 방법 및 컴퓨터 프로그램 제품에 대한 필요성이 존재한다.
개요
이들 및 다른 문제를 해결하기 위해, 첨부된 독립 청구항 제 1항에서 정의되는 바와 같은 콘텐츠 관리 방법, 첨부된 청구항 제13항에서 정의되는 바와 같은 콘텐츠 관리 시스템이 제공된다. 양호한 실시형태는 종속 청구항에서 정의된다.
따라서, 본 발명의 다양한 실시형태에 따른 방법 및 시스템은, 새로운 타입의 콘텐츠가 확장된 레코드 데이터 구조에 추가될 때마다 내부 애플리케이션들 모두를 재코딩할 필요 없이, 임의의 애플리케이션이 임의의 타입의 콘텐츠를 동적으로 액세스하는 것을 가능하게 한다.
본 발명의 추가 이점은 도면 및 상세한 설명의 검토시 당업자에게 명확해질 것이다. 임의의 추가적인 이점이 본원에 통합되어야 한다는 것이 의도된다.
본 명세서에 통합되며 그 일부를 구성하는 첨부의 도면은, 본 발명의 다양한 실시형태를 예시하며, 위에서 주어진 본 발명의 일반적인 설명, 및 하기에 주어지는 실시형태의 상세한 설명과 함께, 본 발명의 실시형태를 설명하는 데 이바지한다.
도 1은 종래기술에 따른 종래의 콘텐츠 관리 시스템의 개략도이다;
도 2는 네트워크를 통해 연결된 복수의 컴퓨팅 시스템들을 포함하는 소정의 실시형태에 따른 콘텐츠 관리 시스템의 개략도이다;
도 3은 콘텐츠 관리 시스템을 포함하는 예시적인 동작 환경의 개략도이다;
도 4는 도 2 및 도 3의 예시적인 컴퓨팅 시스템의 개략도이다;
도 5는 확장된 레코드 데이터 구조에 새로운 콘텐츠를 추가하기 위해 실행될 수도 있는 프로세스를 묘사하는 순서도이다;
도 6은 소정의 실시형태에 따른 콘텐츠 관리 시스템에서 실행하는 내부 애플리케이션의 구조의 개략도이다;
도 7은 비즈니스 모델 객체 타입의 기술적 객체에 기초한 내부 애플리케이션의 동작을 묘사하는 개략도이다;
도 8은 내부 애플리케이션 사이의 예시적인 상호작용을 묘사하는 콘텐츠 관리 시스템의 개략도이다;
도 9는 키값의 세트에 의해 정의된 예시적인 비표준 데이터 컨테이너의 개략도이다;
도 10은 예시적인 직렬화 포맷의 개략도이다;
도 11은 비표준 데이터 컨테이너에 포함된 타입 정보를 갖는 도 9의 예시적인 비표준 데이터 컨테이너의 개략도이다;
도 12는 도 11의 비표준 데이터 컨테이너에 관련된 예시적인 구조 설명 파일의 개략도이다;
도 13은 애플리케이션에 의한 콘텐츠 액세스를 위해 실행될 수도 있는 프로세스의 순서도이다;
도 14는 예시적인 콘텐츠 교환 유닛의 개략도이다;
도 15는 콘텐츠를 클라이언트 디바이스로 송신하기 위해 실행될 수도 있는 프로세스의 순서도이다;
도 16은 타입 C의 표준 데이터 컨테이너의 XSLT 변환의 개략도이다;
도 17은 도 16의 표준 데이터 컨테이너와 동일한 타입 C의 비표준 데이터 컨테이너의 XSLT 변환의 개략도이다;
도 18은 속성의 세트를 포함하는 타입 D의 표준 데이터 컨테이너의 XSLT 변환의 개략도이다;
도 19는 도 18의 표준 데이터 컨테이너의 속성과 동일한 몇몇 속성을 갖는 타입 E의 비표준 데이터 컨테이너의 XSLT 변환의 개략도이다;
도 20은 데이터 엘리먼트를 재배열하기 위해 실행될 수도 있는 프로세스의 흐름도이다; 그리고
도 21은 소정의 실시형태에 따른, 확장된 레코드 데이터 구조의 개략도이다.
상세한 설명
본 발명의 실시형태에 따른 방법, 시스템, 및 컴퓨터 프로그램 제품은, 콘텐츠 공급자로부터 수신되는 임의의 타입의 콘텐츠(표준 및 비표준)의 동적 관리 및 콘텐츠의 타입이 무엇이든 간에 이러한 콘텐츠와 관련된 레코드의 중앙집중식 저장(centralized storage)을 허용할 수도 있다. 콘텐츠 관리 시스템(100)은 클라이언트 요청의 수신을 가능하게 하는 클라이언트/서버 아키텍쳐에 기초할 수도 있다.
도 2를 참조하면, 콘텐츠 관리 시스템(100)이 제공되며, 이 콘텐츠 관리 시스템(100)을 통해 다수의 유저 클라이언트들(7)은 콘텐츠 공급자 시스템들(4, 5)의 세트에 의해 제공되는 임의의 타입의 콘텐츠에 고유의 플랫폼을 통해 직접 액세스할 수도 있다. 콘텐츠 관리 시스템(100)에 의해 핸들링되는 콘텐츠는, 미리 정의된 표준화된 메시지 교환 포맷과 같은 제1의 타입의 메시지 교환 포맷(14)에 따라 콘텐츠 관리 시스템(100)과 통신하는 표준 콘텐츠 공급자 시스템(4)으로부터 또는 제2의 타입의 메시지 교환 포맷(15)에 따라 콘텐츠 관리 시스템(100)과 통신하는 비표준 콘텐츠 공급자 시스템(5)으로부터 수신될 수도 있다.
콘텐츠 관리 시스템(100)은 통신 네트워크(13)에 연결될 수도 있고, 통신 네트워크(13)는 인터넷, LAN(local area network; 근거리 통신망), WAN(wide area network; 광역 통신망), 셀룰러 음성/데이터 네트워크, 하나 이상의 고속 버스 접속, 및/또는 다른 이러한 타입의 통신 네트워크를 포함할 수도 있다.
콘텐츠 관리 시스템(100)은 하나 이상의 특정 서비스 분야(예를 들면, 여행 분야)에 전용될 수도 있다. 하나 이상의 클라이언트 디바이스(7) 각각은 통신 네트워크(13)에 연결될 수도 있고, 그 결과 유저는 여행 관리 시스템(1)과의 서비스 요청 세션을 개시할 수도 있고 서비스 요청에 응답하여 여행 관리 시스템(1)으로부터 콘텐츠를 수신할 수도 있다.
본 발명의 실시형태는 하나 이상의 네트워크화된 컴퓨터 또는 서버를 포함하는 컴퓨팅 시스템에 의해 구현될 수도 있다. 컴퓨팅 시스템은 콘텐츠 관리를 위한 프로세싱 및 데이터베이스 기능을 제공할 수도 있다.
각각의 클라이언트 디바이스(7)는 퍼스널 컴퓨팅 디바이스, 태블릿 컴퓨터, 씬 클라이언트 터미널, 스마트폰, 및/또는 다른 이러한 컴퓨팅 디바이스일 수도 있다. 각각의 클라이언트 디바이스(7)는 웹브라우저 및/또는 커스텀 애플리케이션 소프트웨어(예를 들면, 클라이언트 시스템)를 호스팅할 수도 있고 클라이언트 유저 인터페이스를 포함할 수도 있다.
각각의 콘텐츠 공급자 시스템(4 또는 5)은 통신 네트워크(13)에 연결될 수도 있다. 각각의 콘텐츠 공급자 시스템(4 또는 5)은 하나 이상의 웹사이트를 호스팅할 수도 있고 및/또는 호스팅 서비스에게 하나 이상의 웹사이트를 호스팅하게 할 수도 있다.
클라이언트 디바이스(7) 중 하나를 조작하는 유저(즉, 여행자)는, (예를 들면, 웹 서비스에 연결하는 것에 의해 액세스되는) 애플리케이션과 관련된 서비스 요청 세션 동안 클라이언트 디바이스(7)를 사용하여 콘텐츠 관리 시스템(100)과 인터페이싱할 수도 있다. 콘텐츠 관리 시스템(100)은 클라이언트 디바이스(7)로부터 수신되는 서비스 요청을 프로세싱하기 위한 콘텐츠 관리 엔진(3)을 포함한다.
콘텐츠 관리 엔진(3)은 IATA 표준에 따른 표준화된 TTY 메시지 교환 포맷(제1의 메시지 교환 포맷(14))을 사용하여 표준 여행 공급자(4)와 메시지를 교환할 수도 있다.
콘텐츠 관리 엔진(3)은 데이터 교환 유닛(11)(본 설명에서 "액세스 액세스 유닛"으로 또한 칭해짐)을 통해 비표준 공급자(5)와 메시지를 더 교환할 수도 있다. 데이터 교환 유닛(11)은, 예를 들면 여행 에이전트 엔티티(예를 들면, 여행 에이전트 오퍼레이터 또는 여행 에이전트 시스템)와 관련된 검색, 부킹, 가격책정, 발행, 유저 클라이언트(7)로부터의 취소 요청에 응답하여, 비표준 콘텐츠 공급자와 통신하기 위해, 확장 마크업 언어(eXtensible Markup Language)(제2의 메시지 교환 포맷(15))와 같은 데이터 설명 언어에 따라 정의된 메시지를 사용할 수도 있다.
유저는, (예를 들면, 웹 서비스의 형태로) 콘텐츠 관리 시스템(100) 상에서 실행하는 애플리케이션에 의해 클라이언트 디바이스(7) 상에 생성된 유저 그래픽 인터페이스를 통해 클라이언트 디바이스(7)에 정보를 입력하는 것에 의해, 콘텐츠 관리 시스템(100)에 서비스 요청을 제출할 수도 있다. 유저로부터 수신되는 정보는, 유저가 (예를 들면, 제출 액션을 수행하는 것에 의해) 콘텐츠 관리 시스템(100)으로 서비스 요청을 제출할 때까지 축적될 수도 있다.
유저 요청에 응답하여, 콘텐츠 관리 엔진(3)은 메시지 교환 포맷들(14 및/또는 15)에 따라 콘텐츠 공급자 시스템들(4 및/또는 5)로부터 콘텐츠를 요청하여 획득할 수도 있고 검색된 콘텐츠에 관련된 레코드를 확장된 레코드 데이터 구조(9)에 저장할 수도 있다. 확장된 레코드 데이터 구조(9)는 컨텍스트(context)에 저장될 수도 있고 저장 요청에 응답하여 또는 주기적으로 하나 이상의 데이터베이스(8)에 저장될 수도 있다. 대안적으로, 소정의 실시형태에서, 확장된 레코드 데이터 구조(9)는 하나 이상의 데이터베이스(8)에 직접 저장될 수도 있다.
확장된 레코드 데이터 구조(9)는 표준 데이터와 관련하여 레코드를 저장하는 표준 레코드 데이터 구조(90) 및 비표준 데이터와 관련하여 레코드를 저장하는 비표준 레코드 데이터 구조(91)를 포함한다.
레코드는 관련 데이터 엘리먼트와 관련하여 레코드 식별자("레코드 로케이터"로 또한 칭해짐)를 포함한다. 레코드 식별자는 임의의 타입 그리고 숫자와 같은 임의의 포맷으로 이루어질 수도 있다.
표준 레코드 데이터 구조(90)는, 미리 정의된 속성들의 세트 중 하나 이상의 속성들을 구비하는 미리 정의된 타입의 콘텐츠에 대한 레코드만을 저장하도록 적응되기 때문에, 정적이다. 본원에서 사용되는 바와 같이, 용어 "표준"은 미리 정의된 포맷 및/또는 그 포맷에 대응하는 타입 및/또는 표준 레코드 데이터 구조(90)에 의해 지원되는 포맷 및/또는 타입을 갖는 표준 콘텐츠를 지칭한다.
관련 데이터 엘리먼트를 포함하는 수신된 콘텐츠에 대해, 그 수신된 콘텐츠가 표준 데이터 엘리먼트만을 포함하면, 표준 레코드 데이터 구조(90)에 레코드가 추가될 수도 있다. 레코드는 데이터 엘리먼트와 관련하여 레코드 식별자를 포함한다.
대안적으로, 관련 데이터 엘리먼트를 포함하는 수신된 콘텐츠에 대해, 그 수신된 콘텐츠가 비표준 데이터 엘리먼트만을 포함하면, 비표준 레코드 데이터 구조(91)에 레코드가 추가될 수도 있다. 레코드는 비표준 데이터 엘리먼트를 포함하는 적어도 하나의 비표준 데이터 컨테이너와 관련하여 레코드 식별자를 포함한다.
또한, 관련 데이터 엘리먼트를 포함하는 수신된 콘텐츠에 대해, 그 수신된 콘텐츠가 비표준 데이터 엘리먼트와 표준 레코드 데이터 구조(90)를 포함하면, 표준 레코드 데이터 구조(90)에 그리고 비표준 레코드 데이터 구조(91)에 레코드가 추가될 수도 있다. 수신된 콘텐츠에 대해 표준 레코드 데이터 구조(90)에 그리고 비표준 레코드 데이터 구조(91)에 추가된 2개의 레코드들 둘 다는 동일한 레코드 식별자(이하, "공통 레코드 식별자"로 칭함)를 할당받을 수도 있다. 공통 레코드 식별자는 표준 레코드 데이터 구조(90) 내의 하나 이상의 표준 데이터 엘리먼트들(표준 콘텐츠) 및/또는 비표준 레코드 데이터 구조(91) 내의 하나 이상의 비표준 데이터 컨테이너들(비표준 데이터 엘리먼트를 포함함) 사이에서 공유된다.
관련 표준 및 비표준 데이터 엘리먼트를 식별하기 위해 레코드 데이터 구조들(90 및 91) 둘 다에서 동일한 식별자를 사용함으로써, 콘텐츠 관리 시스템(100)은 2개의 레코드 데이터 구조들을, 마치 그들이 고유의 레코드 데이터 구조를 형성하는 것처럼, 투명하게 관리한다.
콘텐츠 관리 엔진(3)은 상이한 서비스와 관련된 다수의 애플리케이션들을 유지할 수도 있다. 콘텐츠 관리 엔진(3)은 클라이언트 디바이스(7)로부터 수신되는 서비스 요청에 따라 하나 이상의 애플리케이션들을 실행할 수 있고, 이것은 콘텐츠 공급자 시스템으로부터의 콘텐츠 검색 및 이러한 수신된 콘텐츠에 관련된 레코드를 확장된 데이터 구조(9)에 저장하는 것을 트리거할 수도 있다. 콘텐츠 관리 엔진은, 콘텐츠의 타입이 무엇이든 간에, 확장된 레코드 데이터 구조(9)에 저장된 레코드에 기초하여, 서비스 요청에 대한 응답을, 레코드 데이터 구조(9)에 레코딩된 콘텐츠를 사용하는 유저 클라이언트에게 리턴하도록 더 구성될 수도 있다. 클라이언트에게 응답을 리턴하기 위해, 콘텐츠 관리 엔진(3)은, 확장된 레코드 데이터 구조(9)로부터 검색된 레코드에 포함된 콘텐츠의 타입들이 무엇이든 간에, 클라이언트 디바이스(7) 상에 콘텐츠의 균일한 표현을 생성하는 데이터 교환 유닛(11)을 사용할 수도 있다. 따라서, 콘텐츠 관리 엔진(3)은 유저 클라이언트(7)로 서비스를 제공하기 위한 애플리케이션 집약체(aggregator)로서 기능한다.
본 발명의 양호한 실시형태에서, 콘텐츠 관리 시스템(100)은 여행 관리 시스템일 수도 있다. 여행 관리 시스템(100)은 여행 콘텐츠의 중앙집중식 관리를 허용하기 위한 매개체 오퍼레이터(예를 들면, 여행의 분야에서 GDS(Global Distribution System))에 의해 구현될 수도 있다, 예를 들면 GDS(Global Distribution System에 대한 약어)에서 구현될 수도 있다.
도 3은 GDS(1)에서 구현되는 이러한 여행 관리 시스템(100)의 예시적인 동작 환경(10)을 도시한다. 이러한 실시형태에서, 표준 콘텐츠는 표준 여행 공급자 시스템(4)에 의해 제공되는 IATA 제약을 준수하는 GDS 콘텐츠(예컨대 비행기 여행, 기차 여행 콘텐츠)를 지칭하고, 한편, 비표준 콘텐츠는 비표준 여행 공급자 시스템(5)에 의해 제공되는 또는 GDS 외부에서 부킹된 IATA 제약을 충족하지 않는 임의의 타입의 비GDS 콘텐츠(예를 들면, 차량 렌트)일 수 있다. 표준 레코드 데이터 구조(90)는 표준 콘텐츠를 저장하도록 구성되는 표준 PNR 데이터 구조(이하, "표준 PNR"로도 칭해지며, PNR은 Passenger Name Record의 약어이다)일 수도 있고, 한편 비표준 레코드 데이터 구조(91)(이하, "비표준 PNR"로 칭함)는, 데이터 매핑 및 편집 메커니즘을 하드 코딩하는 것에 의해 비표준 콘텐츠의 타입 및 속성을 미리 정의할 필요 없이, 임의의 타입의 비표준 콘텐츠를 동적으로 레코딩하도록 구성된다. 표준 PNR(90)은, 미리 정의된 데이터 구조(타입, 속성, 패밀리) 및/또는 호텔 및 렌트카 예약과 같은 짧은 여행(trip)을 포함하는 다른 여행 서비스를 갖는 짧은 여행의 일정(다수의 캐리어들로부터의 구간(segment)들을 포함함)에 대한 완전한 데이터 세트를 일반적으로 포함한다.
확장된 레코드 데이터 구조(9)는 확장된 여행 레코드(Extended Travel Record; 이하, "ETR"로도 칭함)를 형성하는데, ETR에서는 각각의 콘텐츠 레코드는 레코드와 관련된 콘텐츠의 타입이 무엇이든 간에 콘텐츠 관리 엔진(3)에 의해 원활하게 조작될 수 있다.
클라이언트 디바이스(7)는 각각의 클라이언트 인터페이스(2)를 통해 서비스를 요청하는 복수의 여행 에이전시 시스템들(700)과 관련될 수도 있다. 더 일반적으로는, 여행 관리 시스템(100)은, (예를 들면 확장된 여행 레코드(9)에 저장된 콘텐츠를 교환하기 위해) 각각의 유저 인터페이스(2) 또는 심지어는 여행 공급자 시스템(4 또는 5)을 통해 클라이언트/서버 방식에 따라 상이한 타입의 요청을 제출하는 상이한 타입의 클라이언트 디바이스, 예컨대 여행자 디바이스(6)에 의해 액세스될 수 있다.
표준 여행 공급자 시스템(4)은 복수의 캐리어 시스템들 또는 여행자 시스템들을 포함할 수도 있다. 비표준 여행 제품 공급자 시스템(5)은 차량 렌트 시스템, 박물관 예약 시스템 등을 포함할 수도 있다. 캐리어 시스템은, 구현시, CRS(Computer Reservation System; 컴퓨터 예약 시스템) 및/또는 GDS(1)를 가능하게 하는 각각의 항공노선에 대한 과금 시스템을 포함할 수도 있다. 여행 에이전시 시스템(700)은 비표준 여행 공급자(5)에 의해 제공되는 여행 티켓 및/또는 추가적인 서비스에 대해 예약하고 비용을 지불하도록 구성될 수도 있다. 몇몇 표준 여행 공급자 시스템(4)은, 오퍼레이팅 캐리어(operating carrier)에 의해 제공되는 좌석에 대한 티켓을 밸리데이팅 캐리어(validating carrier)가 판매하는 것을 가능하게 하기 위해, 직접 또는 GDS(1)를 통해, 서로 상호작용할 수도 있다. 그 다음, 오퍼레이팅 캐리어는 제공된 서비스에 대해 밸리데이팅 캐리어에게 비용을 청구할 수도 있다.
GDS(1)는, 여행 에이전트, 밸리데이팅 캐리어, 또는 다른 간접 셀러가 GDS(1)를 통해 하나 이상의 캐리어 시스템들(4) 상에서 가용 구간을 검색하여 예약을 부킹하고 추가적인 서비스(예를 들면, 차량 렌트, 박물관 티켓 등)를 검색하여 부킹하는 것을 가능하게 하는 것에 의해, 여행 공급자들(4 및 5)과 여행 에이전시 시스템(700) 사이의 통신을 조장하도록 구성될 수도 있다.
각각의 여행 에이전시 시스템(70)은 공개적으로 액세스 가능한 웹사이트를 제공하는 웹 서버를 포함할 수도 있다. 이 웹사이트는, 여행 요청과 일치하는 여행 제품을 검색하는 능력과 같은 여행 계획 피쳐에 대한 액세스를 제공하도록 구성될 수도 있다. 이를 위해, 여행 에이전시 시스템(70)은, GDS(1), 여행 공급자들(4 및 5), 및 여행 에이전시 시스템(70)에 의해 호스팅되는 하나 이상의 데이터베이스들로부터의 데이터에 대한 액세스를 여행자에게 제공할 수도 있다. 본 발명의 대안적 실시형태에서, 여행 에이전시 시스템(70)은 여행 서비스 공급자 또는 여행 에이전트에 대한 액세스를 제한하는 독점적 시스템일 수도 있으며, 그 경우 액세스는 사설 웹사이트 또는 다른 애플리케이션을 통해 제공될 수도 있다.
여행자 또는 여행 에이전트는, 특정 여행 애플리케이션(예를 들면, 여행 계획 애플리케이션)을 사용하는 여행자로부터 수신되는 여행 요청을 충족하는 여행 제안을 생성하고 및/또는 검색하기 위해 여행 에이전시 시스템(70)을 사용할 수도 있다.
여행자 디바이스(6)는 공개 또는 사설 네트워크(13)(예를 들면, 인터넷)를 통해 여행 관리 시스템(100)에 직접 연결될 수도 있다. 여행자 디바이스(6)는 네트워크(13)를 통해 여행 관리 시스템(100)과 통신하도록 구성된 임의의 적절한 컴퓨팅 시스템일 수도 있다. 예를 들면, 여행자 디바이스(6)는 데스크탑, 랩탑, 또는 태블릿 컴퓨터, 스마트폰, 또는 여행자가 네트워크(20)를 통해 여행 서비스를 검색하여 부킹하는 것을 가능하게 하는 임의의 다른 컴퓨팅 디바이스를 포함할 수도 있다. 본 발명의 실시형태에서, 여행자 디바이스(6)는, 웹 서비스 애플리케이션에 따라 여행 요청을 제출하도록 여행 관리 시스템(100)의 콘텐츠 관리 엔진(3)에 의해 호스팅되는 웹 서비스 애플리케이션과 통신하는 웹 브라우저 애플리케이션을 포함할 수도 있다.
대안적으로, 여행자 디바이스(6)는 여행 에이전시 시스템(70)에 의해 호스팅되는 웹 서비스 애플리케이션과 통신하는 웹 브라우저 애플리케이션을 포함할 수도 있다. 웹 서비스 애플리케이션은, 결국에는, 여행 서비스 애플리케이션에 따라 여행 요청을 제출하도록 여행 관리 시스템(100)과 통신할 수도 있다.
여행 요청은, GDS(1)를 통해 또는 다른 GDS를 통해 제공되는 여행과 관련하여, 예를 들면 가용 여행 구간에 관련된 데이터를 획득하기 위해, 여행 요청을 충족하는 여행 제한을 생성하기 위해 및/또는 비표준 공급자(5)에 의해 제공되는 비표준 콘텐츠에 대응하는 보조 서비스(예를 들면, 차량 렌트, 제트스키 부킹, 박물관 티켓 부킹 등)를 부킹하기 위해 제출될 수도 있다.
이제 도 4를 참조하면, 동작 환경(10)의 GDS(1), 여행 관리 시스템(100), 여행 공급자 시스템들(4 및 5), 여행 에이전시 시스템(70), 여행자 디바이스(6)는 하나 이상의 컴퓨팅 디바이스들 또는 시스템들(총체적으로 컴퓨터, 예를 들면 컴퓨터(30)로 칭해짐) 상에서 구현될 수도 있다. 컴퓨터(30)는 프로세서(32), 메모리(34), 대용량 저장 메모리 디바이스(36), 입/출력(input/output; I/O) 인터페이스(38), 및 휴먼 머신 인터페이스(Human Machine Interface; HMI; 40)를 포함할 수도 있다. 컴퓨터(30)는 네트워크(22) 및/또는 I/O 인터페이스(38)를 통해 하나 이상의 외부 리소스들(42)에 동작적으로 커플링될 수도 있다. 외부 리소스는 서버, 데이터베이스, 대용량 저장 디바이스, 주변 디바이스, 클라우드 기반 네트워크 서비스, 또는 컴퓨터(30)에 의해 사용될 수도 있는 임의의 다른 적절한 컴퓨팅 리소스를 포함할 수도 있지만, 이들로 한정되는 것은 아니다.
프로세서(32)는 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서, 마이크로컴퓨터, 중앙 처리 유닛, 필드 프로그래머블 게이트 어레이, 프로그래머블 로직 디바이스, 상태 머신, 로직 회로, 아날로그 회로, 디지털 회로, 또는 메모리(34)에 저장되는 연산 명령에 기초하여 신호(아날로그 또는 디지털)를 처리하는 임의의 다른 디바이스에서 선택된 하나 이상의 디바이스들을 포함할 수도 있다. 메모리(34)는, ROM(read-only memory; 판독 전용 메모리), RAM(random access memory; 랜덤 액세스 메모리), 휘발성 메모리, 불휘발성 메모리, SRAM(static random access memory; 스테틱 램), DRAM(dynamic random access memory; D램), 플래시 메모리, 캐시 메모리, 또는 정보를 저장할 수 있는 임의의 다른 디바이스를 포함하지만 이들로 한정되지 않는 단일의 메모리 디바이스 또는 복수의 메모리 디바이스들을 포함할 수도 있다. 대용량 저장 메모리 디바이스(36)는 하드 드라이브, 광 드라이브, 테이프 드라이브, 불휘발성 솔리드 스테이트 드라이브, 또는 정보를 저장할 수 있는 임의의 다른 디바이스와 같은 데이터 저장 디바이스를 포함할 수도 있다. 데이터베이스(44)는 대용량 저장 메모리 디바이스(36) 상에 상주할 수도 있고, 본원에서 설명되는 다양한 시스템 및 모듈에 의해 사용되는 데이터를 수집하여 편제하는(organize) 데 사용될 수도 있다.
프로세서(32)는 메모리(34) 내에 상주하는 운영체제(46)의 제어 하에서 동작할 수도 있다. 운영체제(46)는, 하나 이상의 컴퓨터 소프트웨어 애플리케이션들, 예컨대 메모리(34) 내에 상주하는 애플리케이션(48)으로서 구체화되는 컴퓨터 프로그램 코드가 프로세서(32)에 의해 실행되는 명령을 가질 수도 있도록 컴퓨팅 리소스를 관리할 수도 있다. 대안적인 실시형태에서, 프로세서(32)는 애플리케이션(48)을 직접 실행할 수도 있고, 그 경우 운영체제(46)는 생략될 수도 있다. 하나 이상의 데이터 구조들(50)이 메모리(34) 내에 또한 상주할 수도 있고, 데이터를 저장 또는 처리하도록 프로세서(32), 운영체제(46), 및/또는 애플리케이션(48)에 의해 사용될 수도 있다.
I/O 인터페이스(38)는 프로세서(32)를 네트워크(22) 및/또는 외부 리소스(42)와 같은 다른 디바이스 및 시스템에 동작적으로 커플링하는 머신 인터페이스를 제공할 수도 있다. 이로써, 애플리케이션(48)은 I/O 인터페이스(38)를 통해 통신하는 것에 의해 네트워크(22) 및/또는 외부 리소스(42)와 협력적으로 작동하여, 본 발명의 실시형태를 포함하는 다양한 피쳐, 기능, 애플리케이션, 프로세스, 및/또는 모듈을 제공할 수도 있다. 애플리케이션(48)은, 하나 이상의 외부 리소스들(42)에 의해 실행되는 프로그램 코드를 또한 구비하거나, 또는 다르게는 컴퓨터(30) 외부의 다른 시스템 또는 네트워크 컴포넌트에 의해 제공되는 기능 및/또는 신호에 의존할 수도 있다. 실제, 거의 무한의 하드웨어 및 소프트웨어 구성이 가능한 것을 고려하면, 종래기술의 당업자는, 컴퓨터(30) 외부에 위치되는, 다수의 컴퓨터들 또는 다른 외부 리소스들(42) 사이에 분포되는, 또는 클라우드 컴퓨팅 서비스와 같이 네트워크(22)를 통한 서비스로서 제공되는 컴퓨팅 리소스(하드웨어 및 소프트웨어)에 의해 제공되는 애플리케이션을 본 발명의 실시형태가 포함할 수도 있다는 것을 이해할 것이다.
HMI(40)는, 컴퓨터(30)의 유저가 컴퓨터(30)와 직접 상호작용하는 것을 허용하는 공지의 방식으로, 컴퓨터(30)의 프로세서(32)에 동작적으로 커플링될 수도 있다. HMI(40)는 비디오 및/또는 영숫자 디스플레이, 터치 스크린, 스피커, 및 유저에게 정보를 제공할 수 있는 임의의 다른 적절한 청각적 그리고 시각적 표시기(indicator)를 포함할 수도 있다. HMI(40)는, 유저로부터 명령 또는 입력을 수용할 수 있고 입력된 입력을 프로세서(32)로 송신할 수 있는 영숫자 키보드, 포인팅 디바이스, 키패드, 푸시버튼, 제어 노브(knob), 마이크 등과 같은 입력 디바이스 및 컨트롤을 또한 포함할 수도 있다.
하기의 설명은 단지 예시적인 목적만을 위한 도 3의 콘텐츠 관리 시스템(100)을 참조로 행해질 것이다.
따라서, 각각의 여행 에이전시 시스템(70)을 통해 여행 관리 시스템(100)에 연결된 상이한 여행 에이전트는, 콘텐츠의 타입(예컨대 표준 항공노선 콘텐츠, 택시, 엔터테인먼트 티켓 등)이 무엇이든 간에, 여행 공급자 시스템들(4, 5)의 세트에 의해 제공되는 임의의 타입의 콘텐츠에 고유의 플랫폼을 통해 직접 액세스할 수 있다. 따라서, 여행 관리 시스템(100)은, 여행 에이전시가 GDS 시스템 밖의 이러한 비표준 콘텐츠를 전화에 의해 또는 인터넷 등을 통해 부킹해야 할 필요성을 방지하면서, 표준 PNR 데이터 구조(90)를 준수하는 표준 콘텐츠뿐만 아니라 임의의 새로운 타입의 콘텐츠(즉, 택시 경로, 영화 티켓, 콘서트, 먹거리(goody) 등)를 저장할 가능성을 제공한다.
표준 PNR(90)에 비표준 PNR(91)을 첨부하는 것에 의해, 여행 관리 시스템은 한없이 많은 여행 서비스들을 여행 에이전시 시스템(70)에 동적으로 그리고 원활하게 제공할 수 있다.
따라서, 2배 확장된 여행 레코드(9)는 임의의 여행 공급자 시스템(4 또는 5)에 의해 제공되는 콘텐츠(이것은 GDS 밖에서 부킹된 제품에 대응할 수도 있다)의 구조화된 표현을 형성하지만, ETR(9) 내에 유지되는 레코드는 마치 표준 PNR(90) 및 비표준 PNR(91)이 고유의 레코드 데이터 구조를 형성한 것처럼, 액세스되고 관리될 수도 있다.
표준 PNR(90) 내의 표준 데이터 엘리먼트(예를 들면, 제품)는, IATA 표준을 준수하도록 GDS(1)에 의해 구현되는 표준 레이아웃 및 포맷에 따른 필수사항(mandatory) 또는 옵션사항으로서 자격을 부여받을 수 있는 속성의 세트와 관련된다.
확장된 여행 레코드(9) 내에 유지되는 데이터는 복수의 패밀리들로 분류될 수도 있는데, 각각의 패밀리는 예를 들면 표 1에 표시되는 5개의 패미리들과 같이 여러 데이터 엘리먼트를 포함한다. ETR(9)은 임의의 수의 새로운 데이터 엘리먼트 타입 및 패밀리를 지원하도록 적응된다.
이동 숙소 식사 및 음료 활동 서비스
비행기 호텔 레스토랑 스포츠 활동 보험
페리 아파트 바 & 클럽 쇼핑 비자
크루즈 캠핑 기타 쇼 & 이벤트 먹거리
기차 B&B 도보 여행 문서화
마차 기타 견학 레저 장비
도시 교통 기타 로컬 서비스
환승 미팅
택시 백신
자동차 기타
자전거
주차
콘텐츠 관리 엔진(3)은 ETR(9)의 이질적인 콘텐츠를 관리하도록 구성되며, 그 관리는 다음을 포함할 수도 있다:
- 예를 들면, 여행 에이전시 시스템(70)으로부터의 요청에 응답하여, 임의의 여행 공급자 시스템(4 또는 5)으로부터의 새로운 데이터 엘리먼트를, 그 콘텐츠 타입이 무엇이든 간에, 확장된 여행 레코드(9)에 추가하는 것;
- (예를 들면, 박물관에 대한 2회 입장의 사전 부킹에 대응하는 "박물관" 제품의 시작 날짜를 변경하는 것에 의해) 확장된 여행 레코드(9) 내의 데이터 엘리먼트를 수정하는 것;
- (예를 들면, 유저가 자신의 뉴욕 여행에서 제품 "박물관"을 제거할 것을 결정한 경우, 확장된 여행 레코드에서 이 제품의 부킹을 제거하는 것에 의해) 확장된 여행 레코드(9)에서 데이터 엘리먼트를 삭제하는 것;
- (예를 들면, 특정 여행 레코드에서 "박물관" 제품의 모든 구조화된 속성을 검색하는 것에 의해) 확장된 여행 레코드(9)에서 데이터 엘리먼트를 검색하는 것.
따라서, 확장된 여행 레코드(9)는 비표준 콘텐츠 및 표준 콘텐츠 둘 다가 고유한 레코드 데이터 구조(PNR)의 일부인 것처럼 이들을 저장할 수도 있다. 콘텐츠 관리 엔진(3)은 확장된 여행 레코드(9)에 유지되는 이질적 콘텐츠를 유저 클라이언트에 대해 투명한 방식으로 관리한다. 확장된 여행 레코드(9)는 더 유연하며 또한 임의의 타입의 새로운 콘텐츠(택시, 메트로, 버스, 박물관 티켓팅 등)에, 그 새로운 콘텐츠와 관련된 속성이 무엇이든 간에, 적응된다.
표준 PNR(90)은 IATA 표준에 따라 편제된다. 데이터 엘리먼트의 주어진 세트가 주어진 서비스(예를 들면, 부킹 관리 플로우)와 관련된 애플리케이션 플로우에서 제1의 메시지 교환 포맷(14)에 따른 메시지를 통해 표준 여행 공급자 시스템(4)으로부터 콘텐츠 관리 엔진(3)으로 송신되는 경우, 하기의 단계들이 콘텐츠 관리 엔진(3)에 의해 수행될 수도 있다:
i. 데이터는, 표준 여행 공급자 시스템(4)에 의해 송신되는 유입 메시지(incoming message)로부터 콘텐츠 관리 엔진(3)에 의해 추출될 수도 있고, 그리고
ii. 레코드가 표준 PNR(90)에 추가될 수도 있는데, 그 레코드는 콘텐츠 관리 엔진(3)에 의해 추출된 데이터(콘텐츠 데이터)에 대응하는 데이터 엘리먼트와 관련하여 레코드 식별자를 포함한다.
이렇게 획득된 데이터는 애플리케이션 플로우의 다음 애플리케이션에 전송될 다른 메시지를 구축하는 데 사용될 수도 있다.
애플리케이션 플로우가 체인화된 내부 애플리케이션의 세트를 수반하는 경우, 단계 i는 애플리케이션 플로우의 주어진 내부 애플리케이션에 의해 수행될 수도 있지만 단계 ii는 플로우의 다른 애플리케이션에 의해 트리거될 수도 있다.
표준 PNR(90)에 추가되는 데이터는 한정된 수의 미리 정의된 속성들만을 구비할 수 있고 하나 이상의 미리 정의된 타입들 및 포맷들(표준화된 속성들)을 만족해야 한다.
비표준 PNR(91)은 표준(IATA 콘텐츠 정의, TTY 메시지, IATA 메시지)의 규칙 및 이력적 제약(historical constraint)을 준수하지 않는다. 그러나, 비표준 콘텐츠는 확장된 여행 레코드(9)의 일부일 수 있고 콘텐츠 관리 엔진(3)에 의해 실행되는 애플리케이션에 의해 원활하게 그리고 투명하게 액세스된다.
따라서, 확장된 여행 레코드(9)는 임의의 타입의 표준 콘텐츠(예를 들면, 비행기 여행, 호텔, 자동차, 크루즈, 보험, 페리와 같은 GDS 콘텐츠) 및 비표준 콘텐츠(예컨대 버스/택시/레스토랑/기타 등등)를 구조화된 방식으로 그리고 보편적 포맷으로 저장할 수도 있다.
임의의 타입의 콘텐츠를 동적으로 관리하기 위해, 콘텐츠 관리 엔진(3)은, 비표준 콘텐츠 공급자 시스템(5)으로부터 여행 관리 시스템(100)으로 송신되는 비표준 데이터 엘리먼트를 포함하는 수신된 콘텐츠에 응답하여, 비표준 데이터 컨테이너를 생성하도록 구성된다. 비표준 데이터 컨테이너는, 비표준 데이터 컨테이너의 자동 직렬화 특성으로 인해 데이터 엘리먼트를 수신하는 콘텐츠 관리 시스템의 내부 애플리케이션의 포맷에 동적으로 적응될 수도 있다. 수신하는 내부 애플리케이션이 체인화된 애플리케이션들(내부 애플리케이션들)의 세트를 수반하는 애플리케이션 플로우의 애플리케이션인 경우, 비표준 데이터 컨테이너는, 비표준 데이터 컨테이너의 자동 직렬화 특성을 사용하여 데이터 엘리먼트가 송신되는 각각의 내부 애플리케이션의 포맷에 동적으로 적응될 수도 있다.
더 구체적으로는, 여행 관리 시스템(100)이 비표준 콘텐츠 타입을 제공하는 새로운 여행 공급자(5)에게 연결되는 경우, 비표준 콘텐츠 공급자 시스템(5)으로부터 수신되는 비표준 데이터 엘리먼트는 비표준 콘텐츠 타입을 할당받은 이러한 비표준 데이터 컨테이너에 저장된다. 그 다음, (예를 들면, 애플리케이션 플로우의) 내부 애플리케이션에 의해 비표준 레코드 데이터 구조(91)에 레코드가 추가될 수 있다. 그 레코드는 레코드 식별자와 비표준 콘텐츠 타입을 갖는 비표준 데이터 컨테이너를 포함할 수도 있다. 비표준 데이터 컨테이너는 속성들의 리스트를 포함할 수도 있는데, 각각의 속성은 키와 값에 의해 표현된다. 각각의 속성 그 자체는 부속성들의 리스트를 포함하며, 각각은 (부속성들 등에 대해서도 마찬가지로) 키와 값에 의해 표현된다. 각각의 속성 키는 이름 및 타입과 관련된다. 비표준 데이터 컨테이너는 자신이 나타내는 구조가 무엇이든 간에 또는 자신이 포함하는 데이터가 무엇이든 간에, 그 자신을 자체 구현하도록 구성된다: 비표준 데이터 컨테이너의 일부인 임의의 속성의 임의의 값의 판독 전용 액세스 또는 판독/기록 액세스(즉, 획득 및 설정)를 위해, 비표준 데이터 컨테이너는, 하드 코딩에 의한 게터/세터(getter/setter) 방법을 구현할 필요 없이, 키 이름 또는 키 타입 어느 것에도 의존하지 않는 방법을 통해 이러한 액세스를 가능하게 한다.
따라서, 비표준 데이터 컨테이너는, 콘텐츠의 타입이 무엇이든 간에, 비표준 PNR(91)에 새로운 레코드를 생성하는 데 사용될 수 있다. 이러한 레코드는, 예를 들면, 여행 애플리케이션을 실행하거나, 클라이언트 디바이스(7)에 대한 서비스 요청 결과의 표시를 생성하거나, 또는 콘텐츠를 외부 디바이스(예를 들면, 여행 공급자 시스템 또는 여행 디바이스)로 송신하기 위한 임의의 타입의 콘텐츠 관리 액션에 대해 콘텐츠 관리 엔진(3)에 의해 투명하게 액세스될 수 있다.
이제 도 5를 참조하면, 하나 이상의 여행 공급자 시스템들로부터 수신되는 콘텐츠에 응답하여 확장된 여행 레코드(9)에 새로운 레코드를 생성하기 위한 프로세스를 묘사하는 순서도가 제공된다.
블록 501에서, 콘텐츠 관리 엔진(3)은, 예를 들면, 여행 에이전시 시스템과 같은 클라이언트 디바이스(7)로부터의 서비스 요청에 응답하여, 메시지 교환 포맷들(14 및/또는 15)을 통해 하나 이상의 여행 공급자들(4, 5)로부터 콘텐츠를 수신할 수도 있다.
콘텐츠는 복수의 관련 데이터 엘리먼트들, 예를 들면, 순차적으로 수신되는 비행기 여행 제품(flight product)(표준 데이터 엘리먼트) 및 택시 제품(taxi product )(비표준 콘텐츠)과 같은 동일한 여행에 관련된 데이터 엘리먼트들을 포함할 수도 있다. 공통 콘텐츠와 관련되는 데이터 엘리먼트는 순차적으로 또는 병렬로 수신될 수도 있다. 데이터 엘리먼트들은 그들이 동일한 콘텐츠의 일부임을 식별하는 정보를 포함할 수도 있다.
데이터 엘리먼트는 표준 데이터 엘리먼트(예를 들면, 비행기 여행 제품) 및/또는 비표준 데이터 엘리먼트(예를 들면, 택시 제품)를 포함할 수도 있다.
표준 데이터 엘리먼트(예를 들면, GDS 콘텐츠)는 TTY와 같은 제1의 메시지 교환 포맷(14)에 따라 수신될 수도 있다.
비표준 데이터 엘리먼트는 제2의 메시지 교환 포맷(15)에 따라 XML과 같은 마크업 설명 언어(markup description language)에 따라 정의되는 메시지의 형태로 데이터 교환 유닛(11)에 의해 수신될 수도 있다. 하기의 설명은 여행 관리 시스템(100)과 외부 시스템 사이의 데이터 교환에 대해 XML 메시지(XML 다큐먼트 또는 파일로 또한 칭해짐)를 참조로 이루어 질 것이다. 데이터 교환 메시지는 메시지의 구조 및 메시지 내에 포함되는 데이터의 타입과 포맷을 설명하기 위한 구조 설명 파일(structure description file)을 포함할 수도 있다. 예를 들면, 타입 XML의 데이터 교환 메시지에 대해, XML 메시지의 속성의 구조의 표현을 제공하기 위한 구조 설명 파일로서 XML XSD 스키마가 사용될 수도 있다.
블록 502에서, 공통 콘텐츠에 대해 수신되는 각각의 엘리먼트에 대해, 콘텐츠 관리 엔진(3)은 데이터 엘리먼트를 추출할 수도 있다. 콘텐츠 추출은 콘텐츠 관리 엔진(3)의 내부 애플리케이션에 의해 수행될 수도 있다.
데이터 엘리먼트가 표준 콘텐츠(예를 들면, 비행기 여행 제품)에 대응하면, 콘텐츠 관리 엔진(3)은, 블록 503에서 데이터 엘리먼트의 타입(예를 들면 비행기 여행 타입)을 갖는 표준 데이터 컨테이너(이하, "표준 컨테이너"로 또한 칭해짐)를 사용하여 표준 콘텐츠(예를 들면, 비행기 여행 제품)에 대한 표준 PNR(90)에 레코드(R)를 생성한다. 표준 데이터 컨테이너는 미리 정의된 타입의 데이터 엘리먼트(표준 데이터 엘리먼트)에 대해 구성된 정적 컨테이너일 수도 있다. 레코드(R)는 레코드 식별자(I)를 할당받을 수도 있고 블록 504에서 표준 데이터 컨테이너와 관련될 수도 있다. 레코드는 일시적 컨텍스트에 및/또는 적어도 하나의 데이터베이스(8)에 저장될 수도 있다.
데이터 엘리먼트가 비표준 콘텐츠(예를 들면, 택시 제품)에 대응하면, 콘텐츠 관리 엔진(3)은 블록 505에서 비표준 데이터 컨테이너(이하, "비표준 컨테이너"로 또한 칭해짐)를 사용하여 비표준 콘텐츠(예를 들면, 택시 제품)에 대한 비표준 PNR(91)에 레코드(R)를 생성한다. 단계 505는 애플리케이션 플로우의 하나의 내부 애플리케이션에 의해 트리거될 수도 있다. ETR에서 레코드의 생성을 트리거하는 내부 애플리케이션은 데이터 교환 유닛(11)으로부터 비표준 데이터 엘리먼트를 수신하는 내부 애플리케이션과는 상이할 수도 있다. 예를 들면, 제1의 내부 애플리케이션(A1)은 비표준 데이터 엘리먼트를 애플리케이션(A1)의 포맷(F1)으로 수신할 수도 있고, 비표준 데이터 엘리먼트는, 비표준 데이터 엘리먼트가 내부 애플리케이션(An)에 애플리케이션(An)의 포맷(Fn)으로 도달할 때까지, 체인 내의 다른 내부 애플리케이션으로 송신될 수도 있고, 최종적으로, 애플리케이션(An)은 비표준 레코드 데이터 구조(91)(포맷(Fn)을 갖는 비표준 데이터 컨테이너) 내에 레코드의 생성을 트리거한다. 비표준 데이터 컨테이너는 데이터 엘리먼트의 타입(예를 들면, 택시 타입)에 할당될 수도 있다.
비표준 데이터 컨테이너는 임의의 타입의 데이터 엘리먼트(비표준 데이터 엘리먼트)를 포함하도록 적응된다. 레코드(R)는 레코드 식별자(I)를 할당받을 수도 있고 블록 506에서 비표준 데이터 컨테이너와 관련될 수도 있다. 레코드는 일시적 컨텍스트에 및/또는 적어도 하나의 데이터베이스에 저장될 수도 있다.
일 실시형태에서, 블록 506에서 생성된 비표준 데이터 컨테이너는 블록 507에서 태그를 더 할당받을 수도 있다. 이러한 태그는, 예를 들면, 클라이언트 디바이스(7)에 송신되지 않아야 하는 데이터 엘리먼트를 식별하기 위해, 레코드(R)에 액세스할 때 콘텐츠 관리 엔진(3)에 의해 사용될 수도 있다.
따라서, 공통 콘텐츠(관련 데이터 엘리먼트)에 대응하는 모든 표준 데이터 엘리먼트 및 비표준 데이터 엘리먼트에 대해 표준 PNR(90) 및 비표준 PNR(91)에 고유의 레코드 식별자(I)가 생성될 수도 있다. 따라서, 이 공통 레코드 식별자는, 이질적 데이터 엘리먼트들이 고유의 레코드 데이터 구조에 유지되는 것처럼, 그들에 대응하는 레코드를 처리하도록 공유될 수 있다. 예를 들면, 레코드 식별자(I)는 애플리케이션이 비표준 데이터 엘리먼트를, 그 데이터의 타입이 무엇이든 간에, 판독/기록하는 것을 허용하도록 콘텐츠 관리 엔진(3)에 의해 사용될 수도 있다.
단순화된 예에서, 확장된 여행 레코드(9)는 예를 들면 공통 레코드 식별자(I1)를 할당받은 여러 레코드들을 포함할 수도 있으며, 이러한 레코드 식별자(ID1)는 공통적으로 하기의 데이터 엘리먼트와 관련된다:
- 타입1의 표준 데이터 엘리먼트(D1)
- 타입2의 표준 데이터 엘리먼트(D2)
- 타입3의 표준 데이터 엘리먼트(D3)
- 타입4의 태깅된 비표준 데이터 엘리먼트(D4)
- 타입5의 비표준 데이터 엘리먼트(D5)
- 타입2의 태깅된 비표준 데이터 엘리먼트(D6)
데이터 엘리먼트(D1, D2, D3)에 대한 레코드는 레코드 식별자(ID1)와 관련하여 표준 레코드 데이터 구조(90)에 유지된다.
데이터 엘리먼트(D4, D5, D6)에 대한 레코드는 (비표준 데이터 컨테이너에서) 레코드 식별자(ID1)와 관련하여 비표준 레코드 데이터 구조(91)에 유지된다.
표준 데이터 엘리먼트를 저장하는 데 사용된 표준 데이터 컨테이너는 IATA 표준에 따른 미리 정의된 타입 및 속성의 세트를 구비하는 데이터 엘리먼트를 포함하도록 명확히 적응된다. 따라서, 표준 데이터 컨테이너는 표준화된 데이터 포맷과 데이터 타입에만 적응된다.
비표준 데이터 컨테이너는 비표준 데이터 엘리먼트의 타입, 속성 및 포맷이 무엇이든 간에 생성될 수 있다. 각각의 속성 그 자체는 다수의 부속성들을 포함할 수 있다.
따라서, 콘텐츠 관리 엔진(3)은 확장 여행 레코드(9)에 새로운 타입의 콘텐츠를, 그 콘텐츠의 타입이 무엇이든 간에, 동적으로 생성하기 위해 비표준 데이터 컨테이너를 사용한다.
비표준 데이터 컨테이너는, 표준 컨테이너와는 달리, 주어진 엘리먼트에 대한 코드로 하드 코딩되지 않는 다형 데이터 컨테이너(polymorphic data container)일 수도 있다. 대조적으로, 그것이 취해야 하는 형태는 동적으로 정의될 수도 있다.
비표준 데이터 컨테이너는 자동 직렬화/역직렬화(deserialization) 특성을 또한 구비할 수도 있다.
소정의 실시형태에서, 비표준 데이터 컨테이너는, 비표준 데이터 컨테이너를 처리하는 내부 애플리케이션의 비즈니스 객체 모델(21)에 의해 표현되는 기술적 객체일 수도 있으며, 이것은 확장된 여행 레코드(9)에 새로운 콘텐츠의 통합을 용이하게 한다.
도 6은 본 발명의 소정의 실시형태에 따른 콘텐츠 관리 엔진(3)의 내부 애플리케이션의 구조를 개략적으로 묘사하는데, 여기서 비표준 데이터 컨테이너는 비즈니스 객체 모델(Business Object Model; 21)이다. 내부 애플리케이션은 독립형 애플리케이션 또는 (관련 애플리케이션을 형성하는) 애플리케이션들의 체인 내의 한 애플리케이션일 수도 있다.
내부 애플리케이션은 다음을 포함한다:
- 구조화된 인터페이스(2),
- 비즈니스 객체 모델(21),
- 비즈니스 레이어(22).
구조화된 인터페이스(2)는 애플리케이션들이 서로 통신하는 방식을 나타낸다. 구조화된 인터페이스는 애플리케이션에 의해 프로세싱될 기능성 데이터를 전달할 수도 있다. 이들은 타당성 검증 액션(validation action)을 수행하고 동작하기 위해 비즈니스 레이어(22)에 의해 사용되는 비즈니스 객체 모델(21)로 매핑될 수 있다. 타당성 검증 액션은 문법적 체크 외에 비즈니스 레이어(22)에 의해 데이터에 대해 수행되는 기능성 체크에 대응한다. 데이터 엘리먼트는 타당성 검증 이후에 구조화된 방식으로 확장된 레코드 데이터 구조(9)에 삽입될 수 있다.
결과로서, 확장된 PNR(9)의 데이터 구조에서의 수정은 애플리케이션 비즈니스 객체 모델(21)의 수정 및 그 구조화된 인터페이스의 수정을 수반할 수도 있다. 또한, 데이터 구조 수정으로부터 이익을 얻기 위해, 가능한 다른 관련 애플리케이션은 그들의 비즈니스 객체 모델(21), 그들의 구조화된 인터페이스(2)를 또한 적응시키고 또한 다른 모듈 인터페이스에 데이터 모델의 새로운 버전을 통합시키는 것을 필요로 할 수도 있다.
본 발명의 다양한 실시형태는 비표준 데이터 컨테이너 모델을 사용하는 것에 의해 이러한 수정에 관련된 비용을 제한하는 것을 가능하게 한다.
콘텐츠 관리 엔진(3)에서 실행되는 여행 서비스 애플리케이션은 도 7의 도면에 따라 동작할 수도 있다. BOM(21)은 애플리케이션에 의해 사용되는 내부 데이터 모델을 나타내기 위해 사용되는 비즈니스 객체 모델(Business Object Model; 21)을 나타낸다.
서비스(210)는 애플리케이션이 목표를 삼을 수 있는 여행자 디바이스(6), 클라이언트 디바이스(7), 또는 비표준 여행 공급자(5)로부터 여행 관리 시스템(100)에 의해 수신되는 임의의 구조화된 메시지(예컨대 XML 또는 전자 데이터 교환(Edifact) 메시지)를 나타낸다.
컨텍스트 서버(211)는 다른 애플리케이션과의 비동기 상호작용들 사이에서 애플리케이션에 의해 사용되는 데이터의 컨텍스트의 스토리지("컨텍스트"로 또한 칭해짐)를 나타낸다.
컨텍스트로부터의 데이터는 요청에 응답하여, 주기적으로, 또는 소정의 조건에 따라 데이터베이스(8)에 저장될 수도 있다.
도 8은, 소정의 실시형태에 따른, 콘텐츠 관리 엔진(3)의 체인화된 애플리케이션(A1 내지 AN) 사이의 상호작용을 예시한다. 여행 관리 시스템(100)이 분산형 아키텍쳐에서 동작되는 경우, 프로세스를 담당하는 체인화된 내부 애플리케이션들(A1 내지 AN)은 서로를 호출할 수도 있고, 이것은 도 7의 아키텍쳐의 다수의 애플리케이션 서버들(30)(백엔드 서버로 또한 칭해짐)로의 몇몇 복제로 귀결될 수도 있고, 각각의 애플리케이션 서버(30)는 각각의 체인화된 애플리케이션(Ai)과 관련된다. 프로세스들의 체인의 각 단계에서, 종래 방식에서는, 애플리케이션(A1)에 대한 제1의 백엔드 서버(30)로부터 애플리케이션(An)에 대한 최종 서버(30)로 전달되는 데이터는, 서버(30)에서 프로세스 중간의 다른 서버로 전달되기 이전에 상이한 방식으로 변환되고, 인코딩되고 그리고 디코딩된다. 각각의 백엔드 서버(30)는 유입 데이터 엘리먼트를 또한 디코딩하고 그 데이터를 자신의 전용 프로세스를 위해 데이터 엘리먼트에 액세스하기 이전에 타당성 검증을 행한다. 그 다음 데이터는 인코딩되어 체인의 다음 애플리케이션(Ai+1)으로 송신된다. 또한, 비즈니스 객체 모델(21)은 정보를 구조화된 인터페이스(2) 안에 채우거나 또는 정보를 구조화된 인터페이스(2)로부터 검색하는 프로세스에 연루될 수도 있고 데이터를 기록/판독하는 데 사용될 수도 있다. 종래의 방식에서, 그것은 구조화된 인터페이스(2) 및 중앙 레코드 저장소 안으로/로부터 데이터를 기록/판독하기 위해 손으로 코딩된 컴포넌트(hand-coded component)를 필요로 한다. 따라서, 데이터 모델로의 단일의 변경은 비용이 많이 들 수도 있다. 또한, 애플리케이션이 처리하고 있는 데이터 엘리먼트는 일반적으로 많은 기능적 제약을 가지며 그 결과 각각의 애플리케이션은, 처리되는 데이터가 산업적 제약과 호환되는 적절한 포맷인 것을 보장하도록 요구받을 수도 있다.
결과적으로, 종래의 방식에서는, 데이터 엘리먼트는 이러한 체인화된 애플리케이션들에서 매번 수정되어야 하며, 프로세스의 모든 단계들은, 각각의 프로세스가 새로운 데이터를 다음 프로세스로 송신해야 하고 따라서 그것을 디코딩해야 하고, 그것의 타당성 검증을 행해야 하고, 그리고 그것을 인코딩해야 할 것이기 때문에, 영향을 받을 수 있다. 또한, 새로운 콘텐츠가 기존 애플리케이션에 추가되어야 하는 경우, 각각의 프로세스는 새로운 콘텐츠를 다음 프로세스로 추가로 송신해야 하고 체인에서의 각 프로세스는 그 새로운 엘리먼트를 디코딩하고, 타당성 검증을 행하고 그리고 인코딩해야 하다.
소정의 실시형태에 따른 본 발명은 BOM 타입의 비표준 데이터 컨테이너의 자기 직렬화 특성(self-serialization property)을 사용하는 것에 의해 상황을 향상시킨다.
구체적으로는, 비표준 데이터 컨테이너는, 비표준 콘텐츠 공급자(5)로부터의 데이터 엘리먼트(D1, D2 및 D3)의 수신에 응답하여, 체인의 제1의 애플리케이션(A1)에 의해 생성될 수도 있다. 이러한 비표준 콘텐츠는, 그것이 PNR(90)의 표준 구조를 준수하는 데이터 타입과 속성을 포함하지 않기 때문에 그대로는 표준 PNR(90)에 저장될 수 없다. 비표준 콘텐츠는 다양한 형태들을 취할 수도 있고 다양한 타입들 및 속성들과 관련될 수도 있다.
제1의 애플리케이션(A1)은 예를 들면 각각의 비표준 데이터 엘리먼트(Dk)에 대한 비표준 컨테이너를 제1의 내부 애플리케이션(A1)(예를 들면, 프로토콜 버퍼)의 포맷(F1)으로 생성할 수도 있다. 그 다음, 제1의 애플리케이션(A1)은 비표준 컨테이너의 자동 직렬화/역직렬화 특성을 사용하는 메시지(M1)를 사용하여 비표준 컨테이너를 체인의 다음 애플리케이션으로 전달한다. 메시지(M1)는 자동 직렬화/역직렬화 정보를 반송하는 블롭(blob)일 수도 있다. 그 다음, 제2의 애플리케이션(A2)은 비표준 데이터 컨테이너를 내부 애플리케이션(A2)의 포맷(F2)으로 추출할 수도 있다. 마찬가지로, 제2의 애플리케이션은, 애플리케이션(An)이 ETR(9)에서 레코드의 생성을 트리거할 때까지, 자동 직렬화/역직렬화 정보를 반송하는 메시지(M2, M3, 등)를 사용하여 체인 내의 다른 애플리케이션으로 비표준 컨테이너를 송신할 수도 있다.
따라서, 비표준 데이터 컨테이너를 사용하는 것에 의해, 새로운 데이터 구조를 ETR(9)에 추가하거나, 데이터 구조를 업데이트하거나 또는 내부 애플리케이션의 체인에 데이터 엘리먼트를 송신하는 데 코드 변경은 불필요하다. 또한, 기존 데이터 구조를 수정할 필요도 없다. 비표준 데이터 컨테이너에 의해 포함되는 데이터는, 그것을 추출하여 한 포맷에서 다른 포맷으로 변환할 필요 없이, 이용가능하게 될 수 있다. 따라서, 중간의/손으로 코딩되는 레이어가 감소될 수 있다.
도 9의 예에 묘사된 바와 같이, 비표준 데이터 컨테이너(50)는, 애플리케이션에 의해 처리될 수 있는 비즈니스 객체 모델을 설명하는 키 값의 세트에 의해 정의될 수도 있다. 각각의 키(51)는 BOM의 속성을 정의하고 관련 값(52)(도 9에서 "데이터"로 또한 칭해짐)을 포함한다. 예를 들면, 키 "city"에 의해 정의되는 비표준 데이터 컨테이너는 값 "Paris"와 관련된다. 데이터 컨테이너는 복잡한 구조를 포함할 수도 있고 임의의 종류의 데이터와 관련될 수도 있다. 예를 들면, 데이터 컨테이너의 하나 이상의 키들은, 주어진 데이터 컨테이너를 관련 데이터 컨테이너의 세트와 관련시키기 위해 레퍼런스(reference; 53)(도 9에서 "REF"로 칭해짐)와 더 관련될 수도 있다. 예를 들면, "phone/+335551213"의 키/값의 쌍에 의해 지정되는 데이터 컨테이너는 다음의 데이터 컨테이너에 대한 레퍼런스("REF")를 포함한다: "mobile/+336123456" 및 "home/+335551213".
비표준 데이터 컨테이너(50)는 비표준 데이터 컨테이너에 포함된 임의의 데이터 엘리먼트에 대한 기록 모드에서 콘텐츠 관리 엔진(3)에 대한 액세스를, 이러한 액세스를 허용할 액세서(accessor)를 개발할 필요 없이, 허용한다. 이것은 유연성과 확장성(scalability)을 보장한다.
또한, 비표준 데이터 컨테이너에 포함된 데이터 엘리먼트에 대한 액세스는, Xpath와 같은 적절한 쿼리 언어에 따른 쿼리를 사용하는 것에 의해 애플리케이션 프로세싱의 임의의 시간에서 콘텐츠 관리 엔진(3)에 의해 수행될 수 있다.
비표준 데이터 컨테이너는 프로그램적으로 이전 버전 및 미래 버전(backward and forward)과 호환될 수 있다. 프로그래밍의 관점에서, 비표준 데이터 컨테이너와 관련되는 데이터 엘리먼트 구조의 신규 버전의 사용에 코드 변경이 불필요하다.
비표준 데이터 컨테이너는 직렬화/역직렬화를 지원하도록 구성된다. 특히, 직렬화는 데이터 컨테이너를 확장가능 포맷으로 인코딩하기 위해 비표준 콘텐츠의 하나 또는 여러 속성들의 생성 및 수정시에 수행될 수도 있고 역직렬화는 애플리케이션이 비표준 콘텐츠의 적어도 하나의 속성을 판독할 필요가 있을 때마다 수행될 수도 있다.
구체적으로는, 비표준 데이터 컨테이너의 키 및 값은 비표준 데이터 컨테이너를 나타내는 기술적 객체(예를 들면, BOM)의 상태를, 저장될 수 있는 또한 데이터 컨테이너를 그 원래의 상태로 복원하도록 역직렬화 메커니즘에 의해 재구성될 수 있는 포맷(예를 들면, 이진 표현)으로 변환하는 것에 의해 임의의 시간에 직렬화될 수 있다. 따라서, 비표준 데이터 컨테이너는 데이터 컨테이너에 포함된 데이터가 무엇이든 간에 임의의 목표 포맷으로 변환될 수 있다. 직렬화 및 역직렬화 메커니즘은 하드 코딩을 필요로 하지 않는다. 직렬화 정보는 데이터 컨테이너와 관련된 라이브러리에 임베딩될 수도 있다. 따라서, 이러한 BOM의 사용은, 특정 코딩을 필요로 하지 않으면서, 비표준 데이터 컨테이너의 키에 의해 정의되는 임의의 종류의 구조에 대해 지원될 수도 있는 직렬화 메커니즘을 기본적으로 제공한다. 소정의 예시적인 실시형태에서, 직렬화/역직렬화 메커니즘에 따라 비표준 데이터 컨테이너의 상태를 변환하기 위해 사용되는 비표준 데이터 컨테이너의 표현 포맷은, 도 10에 예시된 바와 같이, 예를 들면, XML, ASCII, JSON, 이진 포맷에 기초할 수도 있다.
비표준 데이터 컨테이너의 값의 타당성 검증은 비표준 데이터 컨테이너 객체에 의해 표현되는 데이터 엘리먼트의 생성 및 수정시에만 요구될 수도 있다. 따라서, 키와 관련된 데이터 엘리먼트의 타당성을 다시 검증하는 데 판독 프로세스는 불필요하다.
비표준 데이터 컨테이너의 사용을 통해, 콘텐츠 타입(예를 들면, 항공편, 택시, 스포츠 쇼, 주차, 도시 교통 등)에 관련된 정보는 비표준 데이터 컨테이너 그 자체 안으로 전달될 수 있다. 비표준 데이터 컨테이너의 타입은 키로서 비표준 데이터 컨테이너에 직접 저장될 수도 있다.
몇몇 실시형태에서, 주어진 비표준 데이터 컨테이너의 생성 또는 수정에서의 타당성 검증 메커니즘은, 종래 방식에서와 같이 C++ 타입 대신 키로서 비표준 데이터 엘리먼트에 저장된 기능성 타입에 기초할 수도 있다.
소정의 실시형태에서, 비표준 데이터 컨테이너의 각각의 타입은 데이터 엘리먼트의 속성 구조(속성 레이아웃, 속성 의존성, 및 속성 포맷 등)를 설명하는 구조 설명 파일(예를 들면, XSD)과 관련될 수도 있다.
구조 설명 파일(예를 들면, XSD)은 기술적 객체(예를 들면, XML 객체)로서 표현되는 비표준 데이터 컨테이너의 속성과 엘리먼트 사이의 관계를 더 표현한다. 비표준 데이터 컨테이너와 관련되는 XSD 스키마 내에서, 비표준 데이터 컨테이너의 상이한 키/값과 그것에 적용되는 보조 제약은 XML 태그의 세트를 사용하여 설명될 수 있다. 구조 설명 파일은 비표준 데이터 컨테이너의 생성 및 수정에서 사용될 수도 있다. 또한, 보조 제약은 구조 설명 파일(예를 들면, XSD)을 사용하여 비표준 데이터 컨테이너에 적용될 수도 있다.
각각의 비표준 데이터 컨테이너와 관련되는 구조 설명 파일은 비표준 데이터 컨테이너의 생성 또는 수정에서 비표준 데이터 컨테이너의 속성의 타당성 검증을 행하는 데 사용될 수도 있다. 타당성 검증 메커니즘은, 비표준 데이터 컨테이너에 의해 표현되는 비표준 데이터 엘리먼트가, 콘텐츠가 위치될 데이터 엘리먼트의 설명을 고수하는지를 검증하는 것을 포함할 수도 있다. 소정의 실시형태에서, 타당성 검증 메커니즘은, 비표준 데이터 컨테이너와 관련된 구조 설명 파일을 사용하는 것에 의해 비표준 데이터 컨테이너에 저장된 데이터가 목표 포맷과 매치하는지를 확인하도록 구현될 수도 있다.
여행 관리 시스템(100)은 비표준 데이터 컨테이너와 관련된 구조 설명 파일과 대응하여 비표준 데이터 컨테이너의 데이터 타입을 저장하기 위한 테이블을 유지할 수도 있다. 테이블은 프로세스의 실행시 업데이트될 수도 있다.
콘텐츠 관리 엔진(3)은, 새로운 속성과 같은 비표준 데이터 컨테이너 구조를 설명하는 구조 설명 파일(예를 들면, XSD)을 업데이트하는 것에 의해 새로운 데이터를 비표준 데이터 컨테이너에 추가하도록 구성될 수도 있다.
비표준 데이터 컨테이너를 정의하는 구조 설명 파일(예를 들면, XSD)은, 변경사항을 하드 코딩하고 코드를 재컴파일할 필요 없이, 수정될 수 있다. 따라서, 비표준 데이터 컨테이너의 수정은 동적이고 실행시 업데이트 가능하다.
도 11은 도 9의 예시적인 비표준 데이터 컨테이너들의 개략도로서 그들 각각의 타입: 전화번호 타입, 주소 타입, GPS 타입을 도시하고 있다. 정보 타입은 속성으로서 비표준 데이터 컨테이너에 저장될 수도 있다. 이러한 정보는 비표준 데이터 컨테이너와 관련된 구조 설명 파일을 검색하는 데 사용될 수도 있다.
도 12는 상이한 타입(전화번호 타입, 주소 타입, GPS 타입)을 갖는 도 11의 예시적인 비표준 데이터 컨테이너에 대한 XSD 설명 파일을 예시한다.
소정의 실시형태에 따르면, 콘텐츠 관리 엔진(3)은, 클라이언트 디바이스(7)로 리턴되는 콘텐츠의 타입과 콘텐츠 관리 엔진(3)에 의해 유지되는 애플리케이션이 무엇이든 간에, 여행 관리 시스템(100)에 의해 클라이언트 디바이스(7)로 노출되는 고유 플랫폼의 내부 서비스 인터페이스들(2)의 세트를 더 생성할 수 있다.
확장된 여행 레코드(9)는 엄청나게 많은 수의 애플리케이션들에 의해 사용될 수도 있다. 예를 들면, 콘텐츠 관리 엔진(3)은, 표준 여행 공급자 시스템(4)(예를 들면, 항공편 제품)으로부터 또한 임의의 다른 여행 공급자 시스템(5)(예를 들면, 비항공편 제품)으로부터 수신되는 외부 콘텐츠에 기초하여, 콘텐츠의 타입이 무엇이든 간에, 여행 서비스들의 상이한 타입을 클라이언트 디바이스(7)로 전달하기 위한 애플리케이션들(예를 들면, 여행 애플리케이션)의 세트를 포함할 수도 있다. 이러한 서비스는 예를 들면, 쇼핑, 부킹, 가격책정, 발행, 환불 서비스를 포함할 수도 있다.
이러한 서비스 애플리케이션은, 하드 코딩에 의해 ETR(9)에 추가되는 N개의 타입들의 데이터에 각각의 애플리케이션을 적응시킬 필요 없이, 클라이언트 디바이스(7)를 통해 여행 관리 시스템(100)에 연결된 시스템(예를 들면, 에이전시 시스템(70))으로부터의 서비스 요청에 응답하여 실행될 수도 있다.
결과는 XML 메시지와 같은 주어진 포맷의 응답 메시지를 사용하여 데이터 교환 유닛(11)을 통해 리턴될 수도 있다. 따라서, 여행 관리 시스템(100)에 의해 생성되는 내부 서비스 인터페이스(2)는 XML 타입을 가질 수도 있다.
임의의 수의 새로운 타입들의 비표준 데이터 컨테이너들을 지원하기 위해 각각의 애플리케이션을 재코딩하고 재컴파일하기 위한 필요성을 방지하기 위해, 고유의 타입을 갖는 제너릭(generic) 엘리먼트(제너릭 엘리먼트 타입)가 사용될 수도 있다. 제너릭 엘리먼트는 임의의 타입의 비표준 데이터 컨테이너를 포함하도록 구성된 메가 데이터 컨테이너이다. 제너릭 엘리먼트는 모든 서비스 애플리케이션들에 의해 고유한 타입의 컨테이너로서 보일 수도 있지만(이하, "제너릭 엘리먼트 타입"으로 칭함) 제너릭 엘리먼트는 한없이 많은 수의 비표준 데이터 타입들을 포함할 수 있다.
따라서, 각각의 애플리케이션은 데이터 컨테이너에 포함되는 데이터 엘리먼트의 타입과 무관하게 비표준 컨테이너를 원활하게 처리할 수 있도록 제너릭 엘리먼트를 인스턴스화(instantiate)할 수도 있다. 따라서, 각각의 애플리케이션은 새로운 데이터 타입들만큼 많은 비표준 데이터 컨테이너들을 인스턴스화할 필요가 없다.
결과적으로, 비표준 PNR(91)로의 새로운 콘텐츠 타입의 추가는 콘텐츠 관리 엔진(3)에 의해 핸들링되는 애플리케이션에 영향을 끼치지 않거나 그에 대한 적응을 필요로 하지 않아서, (예를 들면, 하드 코딩에 의해) 이전 버전과의 호환성을 보장한다.
도 13은 주어진 레코드 식별자(I)를 갖는 ETR(9)로부터의 레코드에 대한 애플리케이션에 의한 액세스를 묘사하는 순서도이다. 예를 들면, 레코드 식별자(I)는 다음을 포함할 수도 있다:
- 타입 T1의 표준 데이터 엘리먼트(SD2)
- 타입 T2의 표준 데이터 엘리먼트(SD2)
- 타입 T3의, 비표준 데이터 컨테이너에 포함된 비표준 데이터 엘리먼트(NSD3)
- 타입 T4의, 비표준 데이터 컨테이너에 포함된 비표준 데이터 엘리먼트(NSD4).
블록 600에서, 레코드 식별자(I)와 관련된 레코드는 ETR(9)로부터 검색된다. 레코드는 각각의 타입(T1, T2, T3, T4)을 갖는 표준 데이터 엘리먼트(SD1, SD2) 및 비표준 데이터 엘리먼트(NSD3, NSD4)(비표준 데이터 컨테이너)와 관련될 수도 있다.
그 다음, 각각의 데이터 엘리먼트(SD1, SD2, NSD3 및 NSD4)는 개별적으로 프로세싱된다.
구체적으로는, 예를 들면 NSD3과 같은 각각의 데이터 엘리먼트에 대해, 그 데이터 엘리먼트가 비표준 데이터 엘리먼트이면(블록 601), 타입 T3의 비표준 데이터 엘리먼트는, 블록 602에서, 타입 T3의 비표준 데이터 엘리먼트를 포함하는 고유의 제너릭 엘리먼트 타입의 제너릭 엘리먼트로 변환된다. 메가 데이터 컨테이너로서의 제너릭 엘리먼트 그 자체는 특정 타입을 갖는 비표준 데이터 컨테이너를 포함할 수도 있다. 제너릭 엘리먼트는 BOM과 같은 기술적 객체로서 구현될 수도 있고, 비표준 데이터 컨테이너와 동일한 기술에 기초할 수도 있다.
데이터 엘리먼트가 예를 들면 SD1과 같은 표준 데이터 엘리먼트이면(블록 603), 타입 T1의 표준 데이터 엘리먼트는, 블록 604에서, 동일한 타입 T1의 비표준 데이터 컨테이너로 변환될 수도 있다.
블록 602에서, 이렇게 획득된 비표준 데이터 엘리먼트는, 그 다음, 표준 데이터 엘리먼트(NSD1)에 대응하는 타입 T1의 비표준 데이터 엘리먼트를 포함하는 고유의 제너릭 엘리먼트 타입의 제너릭 엘리먼트로 변환된다.
제너릭 엘리먼트는 애플리케이션이 표준 데이터 엘리먼트와 비표준 데이터 엘리먼트를, 그들의 타입이 무엇이든 간에, 처리하는 것을 가능하게 하는 비표준 데이터 엘리먼트의 일시적 상태(transitory state)를 형성한다. 따라서, 애플리케이션은 ETR(9)의 데이터 엘리먼트들을, 마치 그들이 고유의 타입을 갖는 것처럼 명시적으로 비표준 콘텐츠의 타입을 알지 않고도, 처리할 수 있다.
블록 605에서, 하나 이상의 데이터 엘리먼트들이 서비스 요청을 발신하는 클라이언트 디바이스(7)의 인터페이스에 전송되어야 한다는 것을 애플리케이션의 실행이 필요로 하면, 애플리케이션은 데이터 엘리먼트의 타입에 액세스하기 위해 제너릭 엘리먼트를 내관할(introspect) 수도 있다.
본 발명의 소정의 실시형태에서, 비표준 데이터 엘리먼트는 각각의 태그와 관련될 수도 있다. 이러한 실시형태에서는, 블록 601에서, 각각의 태그와 관련된 비표준 데이터 엘리먼트만이 애플리케이션에 의해 선택되고 제너릭 엘리먼트로 변환될 수도 있다.
따라서, 제너릭 엘리먼트는 비표준 데이터 엘리먼트의 타입을 추상화한다: 새로운 타입의 콘텐츠(ETR(9)에 추가되는 새로운 콘텐츠)가 애플리케이션에 의해 핸들링될 때마다 새로운 엘리먼트 타입을 정의하는 대신, 각각의 애플리케이션은 임의의 새로운 콘텐츠 타입 및 속성을 지원할 수 있는 고유의 제너릭 엘리먼트를 이와 같이 인스턴스화한다.
다시 도 3으로 돌아가면, 여행 관리 시스템(100)은 임의의 타입의 콘텐츠(표준 및 비표준 콘텐츠)를, 여행 에이전시 시스템(70), 비표준 여행 공급자 시스템(5), 또는 동일한 GSD 내부의 임의의 다른 백엔드 서버와 같은 임의의 외부 클라이언트 디바이스와 내부 인터페이스(2)를 통해 교환하도록 적응될 수도 있다.
종래 방식에서, 여행 관리 시스템(100)은, 목표 클라이언트 디바이스의 인터페이스에 의해 지원되는 표준 포맷으로 하드 코딩 변환을 구현하는 것에 의해, 표준 PNR로부터의 데이터를, PNR 콘텐츠의 포맷(목표 PNR 콘텐츠 포맷)에 대해 자기 자신의 표준을 갖는 다른 목표 클라이언트 디바이스(예를 들면, 여행 공급자 시스템, 여행 에이전시 시스템)와 교환할 수 있다. 이것은 여행 관리 시스템(100)에서는 인코딩 메커니즘을 그리고 목표 디바이스에서는 디코딩/타당성 검증 메커니즘을 요구한다. 실제, 각각의 여행 관리 시스템은 PNR 콘텐츠의 포맷(소스 PNR 콘텐츠 포맷)에 대해 그러므로 이러한 포맷만을 지원하는 목표 디바이스의 인터페이스에 대해 자기 자신의 표준을 구비할 수도 있다. 이러한 변환(인코딩/디코딩/타당성 검증)은 현재로선, 비용이 많이 들며 정적인 방식에서, 하드 코딩과 재컴파일링을 수반한다.
데이터 교환 유닛(11)은, 임의의 타입의 콘텐츠를 교환하기 위해, 제2의 데이터 교환 포맷(15)에 따라 외부 클라이언트 디바이스로부터의 데이터 교환 메시지의 수신 또는 송신을 허용한다. 바람직한 실시형태에서, 제2의 데이터 교환 포맷(15)은 XML과 같은 마크업 설명 언어이다. 비표준 데이터 엘리먼트에 대응하는 각각의 데이터 교환 메시지는 데이터 엘리먼트의 속성(속성 레이아웃 및 포맷)을 정의하는 구조 설명 파일, 예컨대 XML 메시지에 대한 XSD, 및 속성의 값에 대응하는 값의 세트를 포함한다.
도 14는 소정의 실시형태에 따른 데이터 교환 유닛(11)의 구조를 보다 상세히 나타낸다.
데이터 교환 유닛(11)은, 비표준 여행 공급자(5), 여행 에이전시 시스템 또는 다른 비GDS 시스템과 같은 외부 클라이언트 디바이스와 데이터 엘리먼트를 교환하기 위해 사용될 수도 있다. 특히, 데이터 교환 유닛(11)은:
- 클라이언트 디바이스로부터 비표준 데이터 엘리먼트를 수신하기 위해; 또는
- 데이터 엘리먼트를 ETR(9)로부터 클라이언트 디바이스로 송신하기 위해 사용될 수도 있다.
데이터 교환 유닛(11)은, XSD와 같은 구조 설명 파일을 소스 구조 설명 파일(XSD1)로부터 목표 구조 설명 파일(XSD2)로 변환하기 위한 XSLT 엔진과 같은 구조 변환 엔진(111) 및 XML과 같은 설명 언어에 따라 정의되는 메시지의 형태로 데이터를 송신하기 위한 데이터 교환 메시지 생성기(112)를 포함할 수도 있다. XSLT 엔진은, 수신 모드에서는 소스 구조 설명 파일(XSD1)을 변환하기 위한 변환 규칙을 정의하는 미리 정의된 로컬 매핑 규칙(113)(예를 들면, XSLT 스타일 시트)을 사용할 수도 있거나 또는 송신 모드에서는 소스 구조 설명 파일(XSD1)을 변환하기 위한 변환 규칙을 정의하는 미리 정의된 클라이언트 매핑 규칙(117)(예를 들면, XSLT 스타일 시트)을 사용할 수도 있다.
여행 관리 시스템(100)은, 상이한 콘텐츠 타입과 관련되며 여행 관리 시스템(100)에 의해 로컬하게 적용될 구조 설명 파일에 대응하는 하나 이상의 미리 정의된 로컬 구조 설명 파일들(115)을 유지할 수도 있거나 또는 실행시 동적으로 로딩할 수도 있다.
수신 모드에서, 데이터 교환 유닛(11)은 외부 클라이언트 디바이스(7)에 의해 정의된 소스 구조 설명 파일(XSD1)을 준수하는 외부 클라이언트 디바이스(7)로부터 유입 데이터 교환 메시지(XML1)를 수신할 수도 있다. 유입 메시지(XML1)는 주어진 타입 Ti의 비표준 데이터 엘리먼트를 포함한다.
이러한 유입 데이터 교환 메시지(XML1)가 비표준 데이터 엘리먼트를 포함하는 여행 관리 시스템(100)에 의해 수신될 때마다, 변환 엔진(111)은, 데이터 교환 메시지(XML1)에 포함된 데이터 엘리먼트의 타입과 관련된 로컬 매핑 규칙(113)을 사용하여, 유입 메시지의 구조 설명 파일(XSD1)을 목표 구조 설명 파일(XSD2)로 변환할 수도 있다. 그 다음, 목표 구조 설명 파일(XSD2)은 로컬 구조 설명 파일(115)의 세트에 추가된다.
데이터 교환 유닛(11)은, 구조 설명 파일(XSD1)의 속성과 관련된 다수의 조건들(예를 들면, 필수 속성의 존재)의 타당성을 검증하기 위해, 소스 구조 설명 파일(XSD1)을 목표 구조 설명 파일(XSD2)로 변환하기 이전에, 유입 메시지(XML1)에 대해 타당성 검증 메커니즘을 추가로 적용할 수도 있다.
그 다음, 타입 Ti의 비표준 데이터 컨테이너는 데이터 교환 메시지(XML1)의 필드를 비표준 데이터 컨테이너의 프리미티브(primitive)로 매핑하는 것에 의해 생성될 수도 있다. 그 다음, 비표준 데이터 컨테이너는, 도 5와 관련하여 설명되는 바와 같이, 타입 Ti에 대해 115에 저장된 목표 구조 설명 파일(XSD2)과 관련하여 ETR(9)에 추가된다. ETR(9)에서의 새로운 콘텐츠의 임의의 업데이트 또는 추가는 실행시 행해질 수 있다.
따라서, 데이터 교환 유닛(11)의 사용은, 콘텐츠 공급자 시스템들(4, 5)로부터 수신되는 임의의 유입 데이터 교환 메시지를, 어떠한 코드 변경을 요구하지 않고도, 추가/수정될 엘리먼트를 나타내는 여러 비표준 데이터 컨테이너 객체로 동적으로 변환하는 것을 가능하게 한다.
송신 모드(점선)에서, 여행 관리 시스템(100)은 ETR로부터의 임의의 데이터 엘리먼트를 외부 클라이언트 디바이스(7)의 목표 인터페이스로 데이터 교환 유닛을 통해 송신할 수도 있다.
송신 모드에서, 데이터 교환 유닛(11)은 입력으로서 비표준 데이터 컨테이너(비표준 데이터 컨테이너로 이전에 변환된 타입 Ti의 표준 데이터 엘리먼트 또는 비표준 데이터 엘리먼트를 포함함)를 수신한다.
타입 Ti의 비표준 데이터 컨테이너는, 비표준 데이터 컨테이너의 속성(키)의, 속성의 레이아웃의 그리고 속성 포맷의 설명을 포함하는 구조 설명 파일(소스 구조 설명 파일로 또한 칭해짐), 예컨대 XSD 파일(115)과 관련된다. 비표준 데이터 컨테이너는 속성의 값에 대응하는 키 값과 또한 관련된다.
여행 관리 시스템(100)에 의해 송신될 데이터 엘리먼트가 ETR(9)로부터의 주어진 타입 Ti의 비표준 데이터 컨테이너를 포함하면, 변환 엔진(111)은, 비표준 데이터 엘리먼트의 타입과 관련된 클라이언트 매핑 규칙(117)을 사용하는 것에 의해, 로컬 구조 설명 파일(115)의 비표준 데이터 컨테이너와 관련된 구조 설명 파일(XSD3)을 목표 구조 설명 파일(XSD4)로 변환할 수도 있다. 클라이언트 매핑 규칙(117)은, 예를 들면 목표 클라이언트 디바이스(7)의 GUI(graphical user interface; 그래픽 유저 인터페이스)에 대한 표시를 위해, 목표 클라이언트 디바이스(7)의 인터페이스의 포맷을 향해 변환 규칙을 정의한다.
클라이언트 디바이스(7)로 송신될 데이터 엘리먼트가 타입 Ti의 표준 데이터 엘리먼트(예를 들면, GDS 엘리먼트)이면, 표준 데이터 엘리먼트는 데이터 컨테이너 컨버터(12)를 사용하여 동일한 타입의 비표준 데이터 컨테이너로 미리 변환될 수도 있다. 그 다음, 표준 데이터 엘리먼트는 목표 클라이언트 디바이스(7)로의 송신을 위한 비표준 데이터 컨테이너의 형태로 데이터 교환 유닛(11)으로 전송될 수도 있다.
도 15는, 소정의 실시형태에 따른, 타입 Ti의 데이터 엘리먼트를 클라이언트 디바이스(7)의 목표 인터페이스(그래픽 유저 인터페이스(GUI))로 송신하기 위한 순서도를 묘사한다.
데이터 엘리먼트가 표준 데이터 엘리먼트이면(블록 700), 타입 Ti의 표준 데이터 엘리먼트는, 블록 701에서 (도 12의 블록 604와 마찬가지로), 동일한 타입 Ti의 비표준 데이터 컨테이너로 변환될 수도 있다. 그 다음, 표준 데이터 엘리먼트는, 블록 703에서, 구조 설명 파일(XSD1) 및 키 값(Vi)과 관련된, 타입 Ti의 비표준 데이터 컨테이너의 형태로 프로세싱된다.
데이터 엘리먼트가 구조 설명 파일(XSD1) 및 키 값(Vi)과 관련된 타입 Ti의 비표준 데이터 컨테이너의 형태의 비표준 데이터 엘리먼트이면(블록 700), 타입 Ti의 비표준 데이터 엘리먼트는 블록 703에서 직접 프로세싱된다.
블록 703에서, 비표준 데이터 컨테이너와 관련된 소스 구조 설명 파일(XSD1)이 검색된다.
블록 704에서, 소스 구조 설명 파일(XSD1)은, 소스 구조 설명 파일(XSD1)을 파싱하고 파싱된 필드를 매핑 규칙(113)(예를 들면, XSLT 스타일 시트)을 사용하여 목표 구조 설명 파일(XSD2)로 변환하기 위해, 매핑 엔진(110)(예를 들면, XSLT 엔진)을 사용하여 목표 구조 설명 파일(XSD2)로 변환된다. 매핑 규칙(113)은 클라이언트 디바이스(7)의 목표 인터페이스의 포맷에 따라 정의된다.
블록 705에서, 클라이언트 디바이스로 송신될 데이터 엘리먼트를 포함하는 XML 메시지는 비표준 데이터 컨테이너와 관련된 값(Vi)을 추가하는 것에 의해 생성된다.
블록 706에서, XML 메시지는 네트워크(13)를 통해 클라이언트 디바이스(7)의 목표 인터페이스로 전송된다. 목표 인터페이스는 XML 메시지의 응답에 응답하여 동적으로 그리고 투명하게 적응될 수도 있다.
또한, 외부 클라이언트 디바이스(7)는, 데이터에 대해, 그 데이터의 타입 및 목표 인터페이스의 포맷이 무엇이든 간에, 디코딩 및 복잡한 타당성 검증 메커니즘을 적용할 필요 없이, XML 메시지에 포함된 데이터 엘리먼트를 추출하고 자기 자신의 표준에 따라 저장한다.
구조 설명 파일(XSD)와 관련되며 임의의 포맷(15)(예를 들면, XML)의 데이터 교환 메시지로서 그 자신을 직렬화하는 능력을 갖는 비표준 데이터 컨테이너를 사용하는 것에 의해, 새로운 종류의 인터페이스(2)가 구축될 수 있다.
일 실시형태에서, 데이터 교환 유닛(11)은, 가능한 한 손으로 코딩되는 소프트웨어를 최소로 하여, 콘텐츠의 타입(표준, 비표준, 혼합형 콘텐츠)이 무엇이든 간에, 클라이언트 디바이스(7)(예를 들면, 여행 에이전시 시스템)의 인터페이스에 부합하는 요청 결과의 표현을 동적으로 생성하도록 콘텐츠 관리 엔진(3)에 의해 사용될 수도 있다.
서비스 애플리케이션은 데이터를 인터페이스(2)에 저장하기 위해 동질적인 데이터 구조를 직접 사용할 수 있다. 이것은 인터페이스 레이어와 BOM 레이어 사이에서 데이터 구조의 또 다른 포맷을 교환할 필요성을 없앤다. 이것은 또한, 고유의 플랫폼을 통해 클라이언트 디바이스(7)(예를 들면, 여행 에이전시 시스템)에 노출된 서비스 인터페이스에서의 데이터 표현과 확장된 여행 레코드에 저장된 데이터 사이의 오버헤드를 감소시키는 것을 허용한다.
구체적으로는, 도 13의 방법은, 클라이언트 디바이스(7)(예를 들면, 여행 에이전시 시스템(70))로부터의 서비스 요청에 응답하는 결과의 표현 및 클라이언트 디바이스 인터페이스 상의 서비스와 관련된 유저 그래픽 인터페이스 상에서의 그러한 표현의 표시를, 콘텐츠 타입(표준 콘텐츠 또는 비표준 콘텐츠)이 무엇이든 간에 그 표시가 동질적인 것을 보장하면서, 생성하도록 적용될 수도 있다.
비표준 콘텐츠 및/또는 표준 콘텐츠와 관련된 레코드 식별자가 확장된 레코드 데이터 구조(9)에 추가되는 경우, 서비스 애플리케이션은 새로운 타입이 무엇이든 간에 레코드의 표현을 동적으로 그리고 동질적으로 생성하도록 적응된다.
서비스 요청에 대응하는 콘텐츠 관리 엔진(3)의 애플리케이션은, 제너릭 엘리먼트를 사용하여 도 12의 액세스 방법에 따라 ETR로부터 획득되는 결과에 대응하는 레코드에 액세스할 수도 있다.
클라이언트 디바이스(7)로 리턴될 콘텐츠의 타입이 무엇이든 간에 고유의 제너릭 엘리먼트에 기초한 비표준 데이터 컨테이너(50)에 대한 액세스의 구현은, 비표준 콘텐츠 공급자 시스템(5)으로부터의 임의의 타입의 콘텐츠를 각각의 애플리케이션이 지원하는 것을 허용한다. 따라서, 콘텐츠 관리 엔진(3)의 애플리케이션은 콘텐츠의 타입과는 무관하다.
결과를 여행 에이전시 시스템(70)의 인터페이스로 리턴하기 위해, 애플리케이션은 비표준 데이터 컨테이너에 액세스할 제너릭 엘리먼트를 내관할 수도 있다(도 6의 블록 605). 이렇게 액세스되는 비표준 데이터 컨테이너는 도 14의 방법에 따라 리턴될 수도 있다.
따라서, 콘텐츠 관리 엔진(3)은, 처리될 제품의 타입(예를 들면: 전통적인 GDS 항공편 제품(비행기 여행)/ GDS 차량 렌트/ 비GDS 택시/비GDS 레스토랑....)과 무관하게 고유의 응답을 나타내는 서비스(예를 들면, 여행 서비스)마다의 인터페이스의 세트를 포함하는 모든 클라이언트 디바이스들(7)로 고유의 플랫폼을 제공하도록 적응된다.
새로운 콘텐츠를 애플리케이션에 통합하는 것을 용이하게 하기 위해, 애플리케이션과 관련된 내부 서비스 인터페이스(2)는 각각의 콘텐츠 패밀리에 대한 공통 속성의 세트를 구비할 수도 있다. 이것은 이미 존재하는 콘텐츠 패밀리의 새로운 엘리먼트가 패밀리에 대해 이용 가능한 모든 표시 기능들로부터 이익을 얻는 것을 가능하게 한다.
구체적으로는, 비표준 데이터 컨테이너(50)의 기저의 데이터 구조는 특정 엘리먼트 카테고리 내의 공통 포맷을 공유할 수도 있다. 예를 들면, 타입 항공노선 구간의 데이터 엘리먼트를 나타내기 위해 사용되는 포맷 설명 파일(XSDi)은, 여행 관리 시스템(100)을 통해 또는 다른 외부 부킹 시스템을 통해 항공노선 구간이 부킹되었는지의 여부에 무관하게 동일할 수도 있다. 또한, 항공노선 구간은 공통 데이터의 세트를 다른 카테고리(예를 들면, 운송 카테고리)로부터의 엘리먼트와 공유할 수도 있다.
특히, 변환 엔진(111)은, 비표준 데이터 엘리먼트 및 표준 데이터 엘리먼트 둘 다와 관련된 ETR(9) 내의 주어진 레코드 식별자(I1)에 대해, 비표준 데이터 엘리먼트와 표준 데이터 엘리먼트가 동일한 일반적 타입(예를 들면, "호텔")을 가지면, 비표준 데이터 엘리먼트와 관련된 구조 설명 파일(XSD1)과 표준 데이터 엘리먼트와 관련된 구조 설명 파일(XSD2)을, 목표 인터페이스를 준수하는 공통 타입의 동일한 구조 설명 파일에 매핑하는 것에 의해, 양 데이터 엘리먼트에 대해 동일한 표현이 생성될 수도 있도록 정의될 수도 있다.
예를 들면, 도 15에 묘사된 바와 같이, 타입(타입 C)의 표준 데이터 엘리먼트가, 동일한 타입(타입 C)과 관련된 비표준 컨테이너로 먼저 변환되고(도 7의 블록 701), 그 다음, 변환 엔진(111) 및 클라이언트 디바이스에서 타입 C에 대해 정의된 매핑 규칙(117)(스타일 시트)을 사용하여 타입 C에 대한 표현(XSD2)이 클라이언트 디바이스에 대해 생성된다. 도 17의 예에 도시된 바와 같이, 타입(타입 C)의 비표준 컨테이너에 대해 동일한 표현(XSD2)이 사용될 것이다.
또한, 변환 규칙(117)은, 임의의 데이터 엘리먼트의 동일한 타입의 속성이, 콘텐츠 타입(비표준 또는 표준)이 무엇이든 간에, (목표 설명 파일에) 속성을 포함하는 동일한 부표현(sub-representation)으로 매핑되도록 정의될 수도 있다.
도 18에 묘사된 예에서, (소스 구조 설명 파일(XSD1)에서 정의된 바와 같은) 속성의 세트(A1, A2, A3, A4)를 포함하는 타입(타입 D)의 표준 컨테이너가, 동일한 타입(타입 D)과 관련된 비표준 컨테이너로 먼저 변환되고(도 15의 블록 701), 그 다음, 변환 엔진(111)을 사용하여 타입 D에 대한 표현(XSD2)(목표 구조 설명 파일)이 클라이언트 디바이스로 생성되는데, 표현(XSD2)은 소스 속성 {A1, A2, A3, A4}에 대응하는 표현 속성 {E1, E2, E3, E4}를 포함한다. 도 19의 예에 도시된 바와 같이, 소스 구조 정의 파일(XSD)의 유사한 속성들에 대해 동일한 매핑 규칙(117)을 적용하는 것에 의해, 속성의 세트 {C1, A2, A3, C4}를 포함하는 다른 타입(타입 C)의 비표준 컨테이너의 속성(A2, A3)에 대해 동일한 표현 {E2, E3}이 생성될 수도 있다. 따라서, 매핑 엔진(11)은 속성들(A2 및 A3)에 대해 각각 동일한 표현(E2 및 E3)을 갖는 표현(XSD3= {F1, E2, E3, F4, F5})을 생성할 것이다.
따라서, 콘텐츠 관리 엔진(3)은, 애플리케이션 마다 인터페이스의 세트를 포함하는 모든 클라이언트 디바이스(7)(예를 들면, 여행 에이전시 시스템과 관련됨)로 고유의 플랫폼을 제공하지만, 고유의 응답은 처리될 콘텐츠의 타입(예를 들면, GDS 비행기 여행 제품, GDS 차량 렌트, 비GDS 택시, 비GDS 레스토랑 등)과 무관하게 생성될 수 있다.
따라서, 서비스 애플리케이션은 데이터를 인터페이스에 저장하기 위해 동질적인 데이터 구조를 직접 사용할 수 있다. 이것은 인터페이스 레이어와 BOM 레이어 사이에서 데이터 구조의 또 다른 포맷을 교환할 필요성을 없앤다. 이것은 또한, 고유의 플랫폼을 통해 클라이언트 디바이스(7)(예를 들면, 여행 에이전시 시스템)에 노출된 서비스 인터페이스에서의 데이터 표현과 확장된 여행 레코드(9)에 저장된 데이터 사이의 오버헤드를 감소시키는 것을 허용한다.
따라서, 데이터 교환 유닛(11)은, 가능한 한 손으로 코딩되는 소프트웨어를 최소로 하여, 콘텐츠의 타입(표준, 비표준, 혼합형 콘텐츠)이 무엇이든 간에, 결과에 부합하는 표현을 동적으로 생성하는 것을 가능하게 한다.
특히, 결과를 클라이언트 디바이스(7)로 리턴하기 위해 사용되는 데이터 교환 메시지는 내부 구조(예를 들면, XML)와 가까운 포맷을 가지며 이 포맷은 제너릭 엘리먼트에서 엘리먼트 자체를 정의하기 위해 사용된 구조 설명 파일(예를 들면, XSD)로부터 유전된다.
따라서, 콘텐츠 관리 시스템(100)은, 처리될 제품의 타입(예를 들면: 전통적인 GDS 항공편 제품(비행기 여행)/ GDS 차량 렌트/ 비GDS 택시/비GDS 레스토랑....)과 무관하게 고유의 응답을 나타내는 여행 서비스마다의 인터페이스의 세트를 제공한다.
도 20은 소정의 실시형태에 따른 콘텐츠 재배치 방법의 순서도를 묘사한다. ETR(9)의 공통 레코드 식별자와 관련된 콘텐츠는 동일한 여행에 관련된 데이터 엘리먼트의 세트를 포함한다. ETR(9)에 특정 레코드 식별자를 요구하는 애플리케이션에 따라, 애플리케이션은, 주어진 레코드 로케이터와 관련된 상이한 데이터 엘리먼트가 애플리케이션에 의해 액세스될 때 미리 정의된 재배열 기준(예를 들면, 재정렬 기준)에 따라 배열되어야(정렬되어야) 하는 것을 요구할 수도 있다.
콘텐츠 재배열 방법은, 연대기적 순서, 랭킹 기준 등과 같은 애플리케이션에 의해 미리 정의되는 재배열 기준에 따라 데이터 엘리먼트를 재배열하도록 구현될 수도 있다. 재배열 방법은 표준 및 비표준 데이터 엘리먼트를 추상 엘리먼트(abstract element)에 기초한 추상 랭킹 모델로 병합할 수도 있다. 추상 엘리먼트는 재배열 기준에 따라 데이터 엘리먼트를 소팅(sorting)하는 데 사용될 수도 있다. 따라서, 애플리케이션은 목표 인터페이스 제약에 따라 정렬된 병합된 데이터 엘리먼트를 리턴할 수 있다. 이것은 예를 들면 집약된 여정 다큐먼트로 귀결될 수도 있는데, 여기서 PNR 세그먼트와 확장 엘리먼트(비표준 콘텐츠)는 동일한 뷰에 병합될 수 있다.
구체적으로는, 각각의 데이터 엘리먼트에 대해, 데이터 엘리먼트가 비표준 데이터 엘리먼트이면(블록 801), 타입 Ti의 비표준 데이터 엘리먼트는, 블록 802에서, 타입 Ti의 비표준 데이터 엘리먼트의 속성의 서브셋을 포함하는 고유의 타입의 추상 엘리먼트로 변환된다. 비표준 데이터 컨테이너의 속성은 예를 들면 재배열 기준(예를 들면, 필터링 기준이 날짜 속성을 선택할 연대기적 순서)에 기초하여 생성된 필터링 규칙에 따라 필터링된다. 추상 엘리먼트는 BOM과 같은 기술적 객체로서 구현될 수도 있고, 비표준 데이터 컨테이너 및/또는 제너릭 엘리먼트와 동일한 기술에 기초할 수도 있다. 제너릭 엘리먼트 및 추상 엘리먼트 둘 다가 데이터 엘리먼트의 타입의 추상화를 허용함을 유의해야 한다.
데이터 엘리먼트가 타입 Ti의 표준 데이터 엘리먼트이면(블록 803), 그것은, 블록 804에서 (도 6의 블록 604와 마찬가지로), 동일한 타입 Ti의 비표준 데이터 컨테이너로 변환될 수도 있다.
블록 805에서, 이렇게 획득된 비표준 데이터 엘리먼트의 속성은 필터링 기준에 따라 필터링된다.
블록 806에서, 단계 804에서 획득된 비표준 데이터 엘리먼트는, 타입 Ti의 표준 데이터 엘리먼트에 대응하는 타입 Ti의 비표준 데이터 엘리먼트의 필터링된 속성의 세트를 포함하는 추상 엘리먼트로 변환된다.
제너릭 엘리먼트와 마찬가지로, 획득된 추상 엘리먼트는, 데이터 컨테이너 타입을 추상화하는 것을 가능하게 하는 비표준 데이터 엘리먼트의 일시적 상태를 형성한다. 그것은 또한, 추상 모델을 내관하는 것에 의해, 필터링된 데이터 엘리먼트들의, 그들의 속성들의 타입이 무엇이든 간에, 전역적인 처리를 가능하게 하고, 재배열 기준에 따라 그들을 명확히 배열한다.
여행 분야에서, 표준 PNR(90)은 복수의 시스템들 사이에서 공유되는 저장 영역에 저장될 수도 있다. 표준 PNR(90)에 유지되는 표준 데이터 엘리먼트들은 상이한 타입을 가질 수도 있고 각각의 엘리먼트는 그 자신의 직렬화 포맷을 가질 수도 있다. 표준 데이터 엘리먼트는, 데이터 엘리먼트가 관련되는(예를 들면, 동일한 승객 또는 여정에 대해 공통인) 동일한 레코드 식별자를 공유할 수도 있다.
마찬가지로, 비표준 PNR(91)의 데이터 엘리먼트는, 비표준 PNR(91) 또는 표준 PNR의 다른 데이터 엘러먼트와, 데이터 엘리먼트들이 관련되면, 동일한 레코드 식별자를 공유할 수도 있다. 비표준 PNR(91)은 표준 PNR과 동일한 저장 영역에 저장될 수도 있다. 대안적으로 표준 PNR(90) 및 비표준 PNR(91)은 상이한 저장 영역에 저장될 수도 있다. 2개의 영역들은 공통 데이터의 동기화를 허용하기 위해 전역적 관리 메커니즘에 의해 관리될 수도 있다. 전역적 관리 메커니즘은, 확장된 여행 레코드(9) 전체를 처리하는 것을 필요로 하는 모든 쿼리에 대해, 비표준 PNR(91)에 전용인 저장 영역을 표준 PNR(90)에 전용인 다른 저장 영역에 링크하도록 구현될 수도 있다.
ETR(9)이 2개의 레코드 구조들(90 및 91)로 분할되는 경우에도, ETR(9)은 레코드 데이터 구조 정보, 보조 컨테이너 데이터 및/또는 관련 데이터 엘리먼트를 식별하는 공통 레코드 식별자에 기초하여 전역적으로 관리될 수 있다.
보조 데이터 컨테이너 데이터는 각각의 데이터 컨테이너(예를 들면, 생성 날짜, 최종 수정 날짜 등)에 관한 제어 정보를 포함할 수도 있다. 종래의 방식에서, 이러한 정보는 레코드 식별자0과 관련하여 각각의 표준 데이터 컨테이너에 직접 저장되고 표준 PNR을 관리하기 위해(예를 들면, 표준 PNR을 주기적으로 소거하기 위해) 액세스될 수도 있다. 그러나, 이러한 방식은 2개의 레코드 데이터 구조들(90 및 91)의 최적화된 관리를 허용하지는 않는다.
도 21은 소정의 실시형태에 따른 ETR(9)의 구조를 나타낸다. 도시된 바와 같이, 2개의 레코드 데이터 구조들(90 및 91)의 전역적 관리를 최적화하기 위해, 몇몇 실시형태에서, 확장된 여행 레코드(9)는, ETR(9)에서 생성된 각각의 데이터 컨테이너에 관련된 보조 컨테이너 데이터, 예컨대 데이터 컨테이너의 생성 날짜, 데이터 컨테이너의 최종 수정 날짜 등을 유지하기 위한 보조 데이터 구조(92)("중앙 관리 데이터 구조" 또는 "중앙 관리 영역"으로 또한 칭해짐)를 더 포함할 수도 있다. 보조 데이터 구조(92)에 유지되는 정보는 두 영역들을 동기적 방식으로 관리하기 위해 사용될 수도 있다. 보조 데이터 구조(92)의 각각의 엔트리는 ETR(9)에서 생성된 데이터 컨테이너와 동일한 레코드 식별자를 공유할 수도 있다. 또한, 보조 데이터 구조(92)의 각각의 레코드는 ETR(9)에 유지되는 데이터 컨테이너(동일한 레코드 식별자를 가짐)에 관련된 보조 컨테이너 데이터의 세트와 관련될 수도 있다. 보조 데이터 구조(92)는 표준 레코드 데이터 구조(90) 및 비표준 레코드 데이터 구조에 포함된 데이터 컨테이너 정보로 채워질 수도 있다.
몇몇 실시형태에서, 보조 데이터 구조(92)의 각각의 엔트리는 확장된 레코드 데이터 구조(9)에서 동일한 레코드 식별자를 공유하는 데이터 컨테이너에 관련된 보조 속성의 세트를 포함할 수도 있다. 각각의 엔트리는 동일한 식별자를 공유하는 ETR(9)의 레코드와 관련된 보조 컨테이너 데이터의 세트를 저장하기 위한 보조 데이터 컨테이너를 포함할 수도 있다. 보조 컨테이너 데이터의 세트는, 레코드의 소거의 이전의 날짜와 같은, 동일한 레코드 식별자를 공유하는 ETR(9)의 레코드에 관련된 제어 정보를 나타내는 제어 속성을 포함할 수도 있다.
몇몇 실시형태에서, 주어진 레코드 데이터 구조(90 또는 91)의 모든 레코드에 관련된 데이터 컨테이너 정보는 이 레코드 데이터 구조(90 또는 91)의 전용 레코드("컨테이너 정보 레코드"로 또한 칭해짐)에 유지될 수도 있고 특정 레코드 식별자(예를 들면 레코드 식별자0)를 할당받을 수도 있다. 표준 레코드 데이터 구조(90)의 컨테이너 정보 레코드 및/또는 비표준 레코드 데이터 구조(91)의 컨테이너 정보 레코드는 상이한 시간 간격에서, 예를 들면 주기적으로 또는 쿼리에 응답하여 또는 대안적으로 ETR(9)이 하나 이상의 데이터베이스들(8)에 저장될 때마다, 비보조 데이터 구조(92)에 복사될 수도 있다.
보조 데이터 구조(92)는 표준 레코드 데이터 구조에 및/또는 비표준 레코드 데이터 구조에 관련된 레코드 데이터 구조 정보, 예컨대 데이터베이스에서 표준 레코드 데이터 구조(90)의 그리고 비표준 레코드 데이터 구조의 최종 버전을 식별하는 버전 정보를 더 유지할 수도 있다.
여행 관리 시스템(100)은 보조 데이터 구조(92)에 포함된 데이터(보조 컨테이너 데이터 정보 및/또는 표준 레코드 데이터 구조 정보(90) 및/또는 비표준 레코드 데이터 구조 정보(91))에 기초하여 ETR(9)을 관리하기 위한 ETR 제어 유닛(18)을 포함할 수도 있다
일 실시형태에서, ETR 제어 유닛(18)은, 공통 레코드 식별자를 사용하는 공통 데이터, 보조 데이터 구조(92)에 유지된 보조 컨테이너 데이터, 및/또는 레코드 데이터 구조 정보에 대한 표준 PNR(90)로부터의 그리고 비표준 PNR(91)로부터의 레코드들을 동기적 방식으로 주기적으로 소거하도록 구성된 소거 모듈(180)을 포함할 수도 있다.
소정의 실시형태에서, ETR 제어 유닛(18)은, 보조 데이터 구조(92)에 유지된 데이터에 기초하여 표준 PNR(90) 내의 그리고 비표준 PNR(91) 내의 동일한 레코드 식별자에 대한 동시적 액세스를 핸들링하기 위한 액세스 매니저(181)를 포함할 수도 있다. 이러한 실시형태에서, 보조 데이터 구조는 데이터베이스(8)에서의 표준 레코드 데이터 구조(90) 및 비표준 레코드 데이터 구조(91)의 최종 버전을 식별하는 버전 정보를 더 유지할 수도 있다. 예를 들면, ETR(9)이 컨텍스트로부터 데이터베이스에 저장될 때마다, 버전 정보는 보조 데이터 구조(92)에서 업데이트된다. 액세스 매니저(18)는 보조 데이터 구조(92)에 유지된 버전 정보에 기초하여 ETR(9)에 대한 액세스를 관리하도록 구성될 수도 있다.
본원에서 설명된 본 발명의 임의의 실시형태를 구체화하는 프로그램 코드는 다양한 다른 형태들의 프로그램 제품으로서 개별적으로 또는 일괄적으로 배포될 수도 있다. 특히, 프로그램 코드는, 컴퓨터 판독가능 저장 매체 및 통신 매체를 포함할 수도 있는 컴퓨터 판독가능 매체를 사용하여 배포될 수도 있다. 본질적으로 비일시적인 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 불휘발성의, 그리고 착탈가능한 및 착탈불가능한 유형의 매체를 포함할 수도 있다. 컴퓨터 판독가능 저장 매체는, RAM, ROM, EPROM(erasable programmable read-only memory; 소거가능 프로그래머블 ROM), EEPROM(electrically erasable programmable read-only memory; 전기적 EPROM), 플래시 메모리 또는 다른 솔리드 스테이트 메모리 기술, 휴대형 CD-ROM(compact disc read-only memory ; 컴팩트 디스크 ROM), 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스, 또는 소망의 정보를 저장하는 데 사용될 수 있고 컴퓨터에 의해 판독될 수 있는 임의의 다른 매체를 더 포함할 수도 있다. 통신 매체는 컴퓨터 판독가능 명령, 데이터 구조, 또는 다른 프로그램 모듈을 구체화할 수 있다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직결 접속과 같은 유선 매체, 및 음향, RF, 적외선과 같은 무선 매체 및 다른 무선 매체를 포함할 수도 있다. 위의 것의 임의의 조합들도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
본원에서 설명된 방법은, 본원에서 특정된 기능/작용을 구현하기 위한 명령을 실행하는 프로세서를 구비한 머신을 생성하도록, 임의의 타입의 컴퓨터의 프로세서에 제공되는 컴퓨터 프로그램 명령에 의해 구현될 수 있다. 이들 컴퓨터 프로그램 명령은, 컴퓨터에게 특정 방식으로 기능하도록 명령할 수 있는 컴퓨터 판독가능 매체에 또한 저장될 수도 있다. 이를 위해, 컴퓨터 프로그램 명령은 일련의 동작 단계들의 수행을 야기시키도록 로딩되어, 실행되는 명령이 본원에서 특정된 기능/작용을 구현하기 위한 프로세스를 제공하도록 하는 컴퓨터 구현 프로세스를 생성할 수도 있다.
본 발명의 실시형태들이 다양한 예들의 설명에 의해 예시되었고, 또한 이들 실시형태들이 상세히 고려되었지만, 이러한 상세가 첨부된 특허청구범위의 범위를 어떤 식으로든 제한하거나 한정하는 것은 본 출원인의 의도가 아니다. 추가적인 이점 및 수정은 종래기술의 당업자에게는 명백할 것이다. 따라서, 본 발명은 그 광의의 양태에서, 도시되고 설명된 특정 상세, 대표적인 방법, 및 예시적인 예에 제한되지 않는다. 특히, 콘텐츠를 재배열하기 위해 추상 엘리먼트가 설명되었지만, 그것은 상이한 종류의 동작을 위해 콘텐츠에 액세스하는 내부 애플리케이션에 의해 더 일반적으로 사용될 수도 있다. 데이터 컨테이너의 속성을 필터링하기 위해 적용된 필터링 규칙은 의도되는 동작에 따라 변할 수도 있다.

Claims (13)

  1. 애플리케이션들의 세트와 확장된 레코드 데이터 구조를 포함하는 콘텐츠 관리 시스템(100)에서 콘텐츠에 액세스하는 방법에 있어서,
    상기 확장된 데이터 구조는 레코드 - 상기 레코드는 미리 정의된 표준 타입의 표준 데이터 엘리먼트를 표준 데이터 컨테이너의 형태로 포함함 - 를 저장하기 위한 표준 레코드 데이터 구조(90) 및 상기 미리 정의된 표준 타입과는 상이한 타입을 갖는 비표준 데이터 엘리먼트를 포함하는 레코드를 저장하기 위한 비표준 레코드 데이터 구조(91)를 포함하고,
    상기 방법은, 상기 확장된 레코드 데이터 구조로부터의 관련 데이터 엘리먼트들의 세트에 액세스 기준에 따라 액세스하기 위한 애플리케이션으로부터의 요청에 응답하여:
    a. 상기 관련 데이터 엘리먼트들의 세트 내의 각각의 데이터 엘리먼트에 대해, 상기 확장된 레코드 데이터 구조(9) 내의 상기 엘리먼트와 연관된 상기 데이터 컨테이너의 속성을 필터링 규칙에 따라 필터링하는 단계, 및
    b. 고유의 추상 타입이 할당되며 상기 데이터 컨테이너의 상기 필터링된 속성들의 세트를 포함하는 추상 컨테이너를 생성하는 단계를 포함하는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  2. 제1항에 있어서,
    각각의 비표준 데이터 컨테이너는 상기 비표준 데이터 컨테이너의 속성의 구조를 설명하는 구조 설명 파일과 연관되고, 상기 단계 a는 미리 정의된 매핑 방식에 따라 상기 비표준 데이터 컨테이너와 연관된 상기 구조 설명 파일을 목표 구조 설명 파일로 변환하는 단계를 더 포함하고, 상기 필터링 규칙은 상기 목표 구조 설명 파일에 적용되는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  3. 제1항 또는 제 2항에 있어서,
    상기 단계 a는, 각각의 표준 데이터 엘리먼트에 대해, 상기 확장된 레코드 데이터 구조(9) 내의 상기 데이터 엘리먼트와 연관된 상기 비표준 데이터 컨테이너를, 구조 설명 파일과 연관된 비표준 데이터 컨테이너로 미리 변환하는 단계를 포함하는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 추상 컨테이너는 비즈니스 객체 모델인 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 액세스 기준은 정렬 기준인 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  6. 제5항에 있어서,
    상기 방법은:
    c. 상기 정렬 기준에 따라 상기 추상 엘리먼트들을 정렬하는 단계; 및
    d. 상기 정렬된 추상 엘리먼트들을 상기 애플리케이션으로 리턴하는 단계를 더 포함하는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 정렬 기준은 시간 속성에 관련된 연대기적 순서를 포함하고 상기 미리 정의된 필터링 규칙은 상기 시간 속성에 대응하는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  8. 제5항 또는 제6항에 있어서,
    상기 미리 정의된 순서는 속성의 타입에 관련된 알파벳 순서이고 상기 미리 정의된 필터링 기준은 상기 타입의 속성에 대응하는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  9. 제2항 내지 제8항 중 어느 한 항에 있어서,
    상기 비표준 데이터 컨테이너는 자신의 타입을 정의하는 속성을 포함하고 상기 구조 설명 파일은 상기 타입과 연관하여 저장되는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  10. 제2항 내지 제8항 중 어느 한 항에 있어서,
    상기 구조 설명 파일은 XSD 스키마이고 상기 미리 정의된 매핑 방식은 XSLT 스타일 시트인 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 확장된 레코드 데이터 구조(9) 내의 각각의 레코드는 레코드 식별자를 포함하고, 상기 확장된 레코드 데이터 구조 내의 레코드는 공통 레코드 식별자를 공유하는 관련 데이터 엘리먼트에 대응하고, 상기 관련 데이터 엘리먼트들의 세트를 식별하는 상기 애플리케이션은 상기 공통 레코드 식별자를 사용하는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 비표준 데이터 엘리먼트는 자신을 임의의 애플리케이션 포맷으로 직렬화할 수 있는 비즈니스 객체 모델인 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 방법.
  13. 애플리케이션들의 세트와 확장된 레코드 데이터 구조를 포함하는 콘텐츠 관리 시스템(100)에서 콘텐츠에 액세스하는 시스템에 있어서,
    상기 확장된 데이터 구조는 레코드 - 상기 레코드는 미리 정의된 표준 타입의 표준 데이터 엘리먼트를 표준 데이터 컨테이너의 형태로 포함함 - 를 저장하기 위한 표준 레코드 데이터 구조(90) 및 상기 미리 정의된 표준 타입과는 상이한 타입을 갖는 비표준 데이터 엘리먼트를 포함하는 레코드를 저장하기 위한 비표준 레코드 데이터 구조(91)를 포함하고, 상기 시스템은:
    - 미리 정의된 필터링 규칙에 따라 상기 관련 데이터 엘리먼트들의 세트 내의 각각의 데이터 엘리먼트와 연관된 데이터 컨테이너의 속성을 필터링하도록, 그리고
    - 고유의 추상 타입이 할당되며 상기 데이터 컨테이너의 상기 필터링된 속성들의 세트를 포함하는 추상 컨테이너를 생성하도록 구성되는 것인, 콘텐츠 관리 시스템에서 콘텐츠에 액세스하는 시스템.
KR1020150076570A 2014-05-30 2015-05-29 콘텐츠 액세스 방법 및 시스템 KR101767725B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP14305812.1 2014-05-30
US14/291,892 2014-05-30
EP14305812.1A EP2950245A1 (en) 2014-05-30 2014-05-30 Content access method and system
US14/291,892 US9619568B2 (en) 2014-05-30 2014-05-30 Content access in a travel management system

Publications (2)

Publication Number Publication Date
KR20150138821A true KR20150138821A (ko) 2015-12-10
KR101767725B1 KR101767725B1 (ko) 2017-08-11

Family

ID=54544808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150076570A KR101767725B1 (ko) 2014-05-30 2015-05-29 콘텐츠 액세스 방법 및 시스템

Country Status (4)

Country Link
JP (1) JP2015228218A (ko)
KR (1) KR101767725B1 (ko)
CN (1) CN105321034B (ko)
FR (1) FR3021788B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107103540A (zh) * 2016-02-22 2017-08-29 易保网络技术(上海)有限公司 一种计算机执行的访问保险产品数据结构中的具体数据元素的方法和系统
WO2018134426A1 (en) * 2017-01-23 2018-07-26 Amadeus S.A.S. Record aggregation database
FR3062228A1 (fr) * 2017-01-23 2018-07-27 Amadeus S.A.S. Base de donnees agregative d'enregistrements contexte
WO2018153782A1 (en) * 2017-02-21 2018-08-30 Amadeus S.A.S. Non-standard data management in a data management system
FR3094809A1 (fr) * 2019-04-02 2020-10-09 Amadeus Sas Procédé et dispositif pour la gestion d’évènements
FR3096799B1 (fr) * 2019-05-29 2021-11-05 Amadeus Agrégation et mise à jour d’objets de donnée hétérogènes
CN112214516A (zh) * 2020-10-29 2021-01-12 株洲中车时代电气股份有限公司 数据序列化和反序列化的方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316783A (ja) * 2002-04-24 2003-11-07 Nippon Telegr & Teleph Corp <Ntt> 異種半構造化情報源統合検索装置、方法、プログラム及び該プログラムを記録した記録媒体
AU2002953555A0 (en) * 2002-12-23 2003-01-16 Canon Kabushiki Kaisha Method for presenting hierarchical data
US7962354B2 (en) * 2003-06-06 2011-06-14 Orbitz Llc Booking engine for booking airline tickets on multiple host environments
US20060235852A1 (en) * 2005-04-14 2006-10-19 Lockheed Martin Corporation System for inter-database communication
US7630999B2 (en) * 2005-07-15 2009-12-08 Microsoft Corporation Intelligent container index and search
JP4822889B2 (ja) * 2006-03-20 2011-11-24 富士通株式会社 データベース統合参照プログラム、データベース統合参照方法及びデータベース統合参照装置
EP2092419B1 (en) * 2006-11-13 2020-01-01 IP Reservoir, LLC Method and system for high performance data metatagging and data indexing using coprocessors
US20090126020A1 (en) * 2007-11-09 2009-05-14 Norton Richard Elliott Engine for rule based content filtering
EP2509035A1 (en) 2011-04-05 2012-10-10 Amadeus S.A.S. Reservation method and system with improved PNR handling

Also Published As

Publication number Publication date
JP2015228218A (ja) 2015-12-17
FR3021788A1 (ko) 2015-12-04
FR3021788B1 (fr) 2023-07-21
KR101767725B1 (ko) 2017-08-11
CN105321034B (zh) 2019-07-30
CN105321034A (zh) 2016-02-10

Similar Documents

Publication Publication Date Title
KR101767725B1 (ko) 콘텐츠 액세스 방법 및 시스템
KR101699613B1 (ko) 콘텐츠 교환 방법 및 시스템
US9367563B2 (en) Managing records in a travel management system
KR101695544B1 (ko) 레코드 데이터 구조를 관리하기 위한 방법 및 시스템
US11113637B2 (en) Content exchange with a travel management system
US10891279B2 (en) Content management in a travel management system
KR101700509B1 (ko) 콘텐츠 관리 시스템
US9619568B2 (en) Content access in a travel management system
US20130346123A1 (en) Reservation method and system with improved pnr handling
EP2950246A1 (en) Content exchange method and system
EP2950225B1 (en) A method and a system for managing a record data structure
EP2950244A1 (en) Content management system
EP2950245A1 (en) Content access method and system
US20230127638A1 (en) Key-based handling of product purchases

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant